17.0.0 • Published 4 months ago
ngx-cdk-lightbox v17.0.0
ngx-cdk-lightbox
Custom implementation of CDK to display image gallery in lightbox.
Demo
https://www.davidmyska.com/ngx-cdk-lightbox/
Installation
1. Install npm package
npm
npm install ngx-cdk-lightbox --save
yarn
yarn add ngx-cdk-lightbox
2. Import library to your module
import { NgxCdkLightboxModule } from 'ngx-cdk-lightbox';
3. Import NgxCdkLightboxModule into your module
@NgModule({
imports: [...NgxCdkLightboxModule],
})
export class SomeModule {}
Usage
this.lightboxService.open(GalleryDisplayObjectType[], GalleryConfigInterface);
type GalleryDisplayObjectType = GalleryImageInterface | GalleryVideoInterface;
interface GalleryImageInterface {
type: 'image';
source: string;
description?: string;
copyright?: string;
}
type videoResolutionsType = 240 | 360 | 480 | 720 | 1080 | 2160 | 4320;
export interface GalleryVideoInterface {
type: 'video';
mp4Source: string | Partial<Record<videoResolutionsType, string>>;
description?: string;
copyright?: string;
resolution?: {
width: number;
height: number;
};
}
interface GalleryConfigInterface {
enableZoom?: boolean;
zoomSize?: number | 'originalSize';
enableImageClick?: boolean;
loopGallery?: boolean;
enableImageCounter?: boolean;
imageCounterText?: string;
enableCloseIcon?: boolean;
closeIcon?: string;
enableArrows?: boolean;
arrowRight?: string;
arrowLeft?: string;
enableImagePreloading?: boolean;
startingIndex?: number;
enableAnimations?: boolean;
}
GalleryImageInterface
key | value |
---|---|
type | 'image' |
source | path to image |
description | optional - description of image |
copyright | optional - copyright info |
GalleryVideoInterface
key | value |
---|---|
type | 'video' |
mp4Source | path to video source/sources |
description | optional - description of video |
copyright | optional - copyright info |
resolution | width and height of video |
GalleryConfigInterface
key | type | default | value |
---|---|---|---|
enableZoom | boolean | false | display zoom on mouse hover over image |
zoomSize | number, 'originalSize' | 'originalSize' | zoom size, number for zoom multiplication, originalSize for original image size |
enableImageClick | boolean | true | enable click on image to navigate to next or previous image |
loopGallery | boolean | true | loop gallery after last image or before first image |
enableImageCounter | boolean | true | display current image counter |
imageCounterText | string | 'IMAGE_INDEX photo of IMAGE_COUNT' | format for image counter |
enableCloseIcon | boolean | true | display close icon |
closeIcon | string | https://material.io/tools/icons/?icon=close&style=baseline | HTML string containing close icon |
enableArrows | boolean | true | display next/prev icons |
arrowRight | string | https://material.io/tools/icons/?icon=keyboard_arrow_right&style=baseline | HTML string containing right arrow |
arrowLeft | string | https://material.io/tools/icons/?icon=keyboard_arrow_left&style=baseline | HTML string containing left arrow |
enableImagePreloading | boolean | enable/disable image preloading | |
startingIndex | number | 0 | index of starting image |
enableAnimations | boolean | true | enable/disable animations |
ariaLabelNext | string | 'Next' | Aria label for next button |
ariaLabelPrev | string | 'Previous' | Aria label for previous button |
Usage example
@Component({
...
})
export class SomeComponent
{
constructor(private readonly lightboxService: NgxCdkLightboxService) {}
public openLightbox(): void {
this.lightboxService.open([
{source: 'assets/images/image1.jpg', copyright: 'unknown'},
{source: 'assets/images/image5.jpg', copyright: 'unknown'},
], {
enableAnimations: false,
});
}
}
ToDo
- Support for iframe
Donate
You are currently using code that is totally for free and that is fine. But if you want to put a soup on a developer's table anyway, feel free to do so :).
17.0.0
4 months ago
16.0.0
12 months ago
15.0.1
1 year ago
15.0.0
1 year ago
14.0.0
2 years ago
13.0.0
3 years ago
1.5.1
3 years ago
1.5.0
3 years ago
1.4.0
3 years ago
1.3.0
4 years ago
1.2.1
4 years ago
1.2.0
4 years ago
1.1.1
4 years ago
1.1.0
4 years ago
1.0.0
5 years ago
0.1.0
5 years ago
0.0.23
5 years ago
0.0.22
5 years ago
0.0.21
5 years ago
0.0.20
5 years ago
0.0.19
5 years ago
0.0.18
5 years ago
0.0.17
5 years ago
0.0.16
5 years ago
0.0.15
5 years ago
0.0.14
5 years ago
0.0.13
5 years ago
0.0.12
5 years ago
0.0.11
5 years ago
0.0.10
5 years ago
0.0.9
5 years ago
0.0.8
5 years ago
0.0.7
5 years ago
0.0.6
5 years ago
0.0.5
5 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago