@libs-ui/components-gallery 0.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # gallery
2
+
3
+ This library was generated with [Nx](https://nx.dev).
@@ -0,0 +1,122 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, computed, effect, inject, input, model, output, signal } from '@angular/core';
4
+ import { LibsUiIconsGetIconComponentPipe } from '@libs-ui/icons';
5
+ import { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';
6
+ import { isEmbedFrame, UtilsCommunicateMicro, uuid } from '@libs-ui/utils';
7
+ import dayjs from 'dayjs';
8
+ import * as i0 from "@angular/core";
9
+ export class LibsUiComponentsGalleryComponent {
10
+ /* PROPERTY */
11
+ imagesDisplay = computed(() => {
12
+ return this.images().slice(this.start(), this.end());
13
+ });
14
+ idOverlay = signal(uuid());
15
+ idInterval = signal(undefined);
16
+ viewerRef;
17
+ /* INPUT */
18
+ images = model.required();
19
+ start = input(0);
20
+ end = input(3);
21
+ zIndex = input(1200);
22
+ fieldDisplaySrcImage = input('url');
23
+ ignoreOverlayCountImage = input();
24
+ imageArrayStringConvert = input(); // sử dụng trong 1 số trường hợp images là Array<string>
25
+ /* OUTPUT */
26
+ outFunctionsControl = output();
27
+ /* INJECT */
28
+ dynamicComponent = inject(LibsUiDynamicComponentService);
29
+ constructor() {
30
+ effect(() => {
31
+ if (this.imageArrayStringConvert()?.length && this.fieldDisplaySrcImage()) {
32
+ const convertedImages = this.imageArrayStringConvert()?.map(item => {
33
+ return {
34
+ [this.fieldDisplaySrcImage()]: item
35
+ };
36
+ }) || [];
37
+ this.images.set(convertedImages);
38
+ }
39
+ }, { allowSignalWrites: true });
40
+ }
41
+ ngOnInit() {
42
+ this.outFunctionsControl.emit({
43
+ open: (imageSelected) => this.handlerSelectImage(undefined, imageSelected),
44
+ viewerRef: this.ViewerRef
45
+ });
46
+ }
47
+ /* FUNCTIONS */
48
+ async handlerSelectImage(event, imageSelected) {
49
+ event?.stopPropagation();
50
+ if (this.viewerRef) {
51
+ return;
52
+ }
53
+ const viewerComponent = await import('./viewer/viewer.component').then(c => c.LibsUiComponentsGalleryViewerComponent);
54
+ this.viewerRef = this.dynamicComponent.resolveComponentFactory(viewerComponent);
55
+ this.outFunctionsControl.emit({ viewerRef: this.ViewerRef, open: (imageSelected) => this.handlerSelectImage(undefined, imageSelected) });
56
+ this.viewerRef.setInput('fieldDisplaySrcImage', this.fieldDisplaySrcImage());
57
+ this.viewerRef.setInput('images', this.images());
58
+ this.viewerRef.setInput('imageSelected', imageSelected);
59
+ this.viewerRef.setInput('zIndex', this.zIndex());
60
+ this.viewerRef.setInput('singleImage', this.images().length <= 1);
61
+ const sub = this.viewerRef.instance.outClose.subscribe(() => {
62
+ sub.unsubscribe();
63
+ this.closePopup();
64
+ });
65
+ this.dynamicComponent.addToBody(this.viewerRef);
66
+ if (isEmbedFrame()) {
67
+ const data = {
68
+ type: "MICRO_SITE_MODAL_EVENT",
69
+ response: {
70
+ message: 'open',
71
+ state: true,
72
+ idOverlay: this.idOverlay,
73
+ timeLiveUpdate: dayjs().unix()
74
+ }
75
+ };
76
+ UtilsCommunicateMicro.PostMessageToParent(data);
77
+ this.idInterval.set(setInterval(() => {
78
+ data.response.timeLiveUpdate = dayjs().unix();
79
+ UtilsCommunicateMicro.PostMessageToParent(data);
80
+ }, 2000));
81
+ }
82
+ }
83
+ handlerImageError(e, image) {
84
+ const event = e;
85
+ event.stopPropagation();
86
+ image['isError'] = true;
87
+ }
88
+ closePopup() {
89
+ clearInterval(this.idInterval());
90
+ this.dynamicComponent.remove(this.viewerRef);
91
+ this.viewerRef = undefined;
92
+ this.outFunctionsControl.emit({ viewerRef: this.ViewerRef, open: (imageSelected) => this.handlerSelectImage(undefined, imageSelected) });
93
+ if (isEmbedFrame()) {
94
+ const data = {
95
+ type: "MICRO_SITE_MODAL_EVENT",
96
+ response: {
97
+ message: 'close',
98
+ state: false,
99
+ idOverlay: this.idOverlay
100
+ }
101
+ };
102
+ UtilsCommunicateMicro.PostMessageToParent(data);
103
+ }
104
+ }
105
+ get ViewerRef() {
106
+ return this.viewerRef;
107
+ }
108
+ ngOnDestroy() {
109
+ this.viewerRef?.destroy();
110
+ this.closePopup();
111
+ }
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsGalleryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsGalleryComponent, isStandalone: true, selector: "libs_ui-components-gallery", inputs: { images: { classPropertyName: "images", publicName: "images", isSignal: true, isRequired: true, transformFunction: null }, start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: false, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, fieldDisplaySrcImage: { classPropertyName: "fieldDisplaySrcImage", publicName: "fieldDisplaySrcImage", isSignal: true, isRequired: false, transformFunction: null }, ignoreOverlayCountImage: { classPropertyName: "ignoreOverlayCountImage", publicName: "ignoreOverlayCountImage", isSignal: true, isRequired: false, transformFunction: null }, imageArrayStringConvert: { classPropertyName: "imageArrayStringConvert", publicName: "imageArrayStringConvert", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { images: "imagesChange", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "@if(images()) {\n<div class=\"flex nowrap w-100 h-100\">\n @for (image of imagesDisplay(); track $index; let last = $last) {\n <div class=\"w-full h-full libs-ui-border-general relative cursor-pointer\"\n [class.mr-[12px]]=\"!last\"\n (click)=\"handlerSelectImage($event, image)\">\n <div class=\"flex items-center justify-center w-full h-full\">\n @if(!image['isError']) {\n <img [src]=\"image[fieldDisplaySrcImage()]\"\n class=\"flex mo-lib-percent-max-height-100 mo-lib-percent-max-width-100 m-auto\"\n (error)='handlerImageError($event, image)' />\n }\n @if(image['isError']) {\n <div *ngComponentOutlet=\"'image-default' | LibsUiIconsGetIconComponentPipe | async\"></div>\n }\n </div>\n @if(last && images().length > end() && !ignoreOverlayCountImage()) {\n <div class=\"flex w-full h-full absolute top-0 left-0 items-center justify-center bg-[#000] opacity-5\">\n </div>\n <div class=\"flex w-full h-full absolute top-0 left-0 items-center justify-center\">\n <span class=\"libs-ui-font-h3s libs-ui-font-size-20px text-[#ffffff]\">+ {{images().length - end()}}</span>\n </div>\n }\n </div>\n }\n</div>\n}", styles: [""], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: LibsUiIconsGetIconComponentPipe, name: "LibsUiIconsGetIconComponentPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsGalleryComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'libs_ui-components-gallery', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
118
+ NgComponentOutlet, AsyncPipe,
119
+ LibsUiIconsGetIconComponentPipe
120
+ ], template: "@if(images()) {\n<div class=\"flex nowrap w-100 h-100\">\n @for (image of imagesDisplay(); track $index; let last = $last) {\n <div class=\"w-full h-full libs-ui-border-general relative cursor-pointer\"\n [class.mr-[12px]]=\"!last\"\n (click)=\"handlerSelectImage($event, image)\">\n <div class=\"flex items-center justify-center w-full h-full\">\n @if(!image['isError']) {\n <img [src]=\"image[fieldDisplaySrcImage()]\"\n class=\"flex mo-lib-percent-max-height-100 mo-lib-percent-max-width-100 m-auto\"\n (error)='handlerImageError($event, image)' />\n }\n @if(image['isError']) {\n <div *ngComponentOutlet=\"'image-default' | LibsUiIconsGetIconComponentPipe | async\"></div>\n }\n </div>\n @if(last && images().length > end() && !ignoreOverlayCountImage()) {\n <div class=\"flex w-full h-full absolute top-0 left-0 items-center justify-center bg-[#000] opacity-5\">\n </div>\n <div class=\"flex w-full h-full absolute top-0 left-0 items-center justify-center\">\n <span class=\"libs-ui-font-h3s libs-ui-font-size-20px text-[#ffffff]\">+ {{images().length - end()}}</span>\n </div>\n }\n </div>\n }\n</div>\n}" }]
121
+ }], ctorParameters: () => [] });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZ2FsbGVyeS9zcmMvZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZ2FsbGVyeS9zcmMvZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWdCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7O0FBZ0IxQixNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLGNBQWM7SUFDSixhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBRUssU0FBUyxHQUFHLE1BQU0sQ0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELFNB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LElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxpQkFBaUIsRUFBRSxTQUFTO3dCQUM1QiwrQkFBK0I7cUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYnNVaUljb25zR2V0SWNvbkNvbXBvbmVudFBpcGUgfSBmcm9tICdAbGlicy11aS9pY29ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbmltcG9ydCB7IExpYnNVaUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtZHluYW1pYy1jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNFbWJlZEZyYW1lLCBVdGlsc0NvbW11bmljYXRlTWljcm8sIHV1aWQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgSUdhbGxlcnlGdW5jdGlvbnNDb250cm9sRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNHYWxsZXJ5Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3ZXIvdmlld2VyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1nYWxsZXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDb21wb25lbnRPdXRsZXQsIEFzeW5jUGlwZSxcbiAgICBMaWJzVWlJY29uc0dldEljb25Db21wb25lbnRQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0dhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qIFBST1BFUlRZICovXG4gIHByb3RlY3RlZCBpbWFnZXNEaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmltYWdlcygpLnNsaWNlKHRoaXMuc3RhcnQoKSwgdGhpcy5lbmQoKSk7XG4gIH0pO1xuXG4gIHByaXZhdGUgaWRPdmVybGF5ID0gc2lnbmFsPHN0cmluZz4odXVpZCgpKTtcbiAgcHJpdmF0ZSBpZEludGVydmFsID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSB2aWV3ZXJSZWY6IENvbXBvbmVudFJlZjxMaWJzVWlDb21wb25lbnRzR2FsbGVyeVZpZXdlckNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgLyogSU5QVVQgKi9cbiAgcmVhZG9ubHkgaW1hZ2VzID0gbW9kZWwucmVxdWlyZWQ8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+KCk7XG4gIHJlYWRvbmx5IHN0YXJ0ID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcmVhZG9ubHkgZW5kID0gaW5wdXQ8bnVtYmVyPigzKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyPigxMjAwKTtcbiAgcmVhZG9ubHkgZmllbGREaXNwbGF5U3JjSW1hZ2UgPSBpbnB1dDxzdHJpbmc+KCd1cmwnKTtcbiAgcmVhZG9ubHkgaWdub3JlT3ZlcmxheUNvdW50SW1hZ2UgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBpbWFnZUFycmF5U3RyaW5nQ29udmVydCA9IGlucHV0PEFycmF5PHN0cmluZz4+KCk7IC8vIHPhu60gZOG7pW5nIHRyb25nIDEgc+G7kSB0csaw4budbmcgaOG7o3AgaW1hZ2VzIGzDoCBBcnJheTxzdHJpbmc+XG5cbiAgLyogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SUdhbGxlcnlGdW5jdGlvbnNDb250cm9sRXZlbnQ+KCk7XG5cbiAgLyogSU5KRUNUICovXG4gIHByaXZhdGUgZHluYW1pY0NvbXBvbmVudCA9IGluamVjdChMaWJzVWlEeW5hbWljQ29tcG9uZW50U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmltYWdlQXJyYXlTdHJpbmdDb252ZXJ0KCk/Lmxlbmd0aCAmJiB0aGlzLmZpZWxkRGlzcGxheVNyY0ltYWdlKCkpIHtcbiAgICAgICAgY29uc3QgY29udmVydGVkSW1hZ2VzID0gdGhpcy5pbWFnZUFycmF5U3RyaW5nQ29udmVydCgpPy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFt0aGlzLmZpZWxkRGlzcGxheVNyY0ltYWdlKCldOiBpdGVtXG4gICAgICAgICAgfSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgICB9KSB8fCBbXTtcblxuICAgICAgICB0aGlzLmltYWdlcy5zZXQoY29udmVydGVkSW1hZ2VzKTtcbiAgICAgIH1cbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbnNDb250cm9sLmVtaXQoe1xuICAgICAgb3BlbjogKGltYWdlU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHRoaXMuaGFuZGxlclNlbGVjdEltYWdlKHVuZGVmaW5lZCwgaW1hZ2VTZWxlY3RlZCksXG4gICAgICB2aWV3ZXJSZWY6IHRoaXMuVmlld2VyUmVmXG4gICAgfSlcbiAgfVxuXG4gIC8qIEZVTkNUSU9OUyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlclNlbGVjdEltYWdlKGV2ZW50OiBNb3VzZUV2ZW50IHwgdW5kZWZpbmVkLCBpbWFnZVNlbGVjdGVkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMudmlld2VyUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld2VyQ29tcG9uZW50ID0gYXdhaXQgaW1wb3J0KCcuL3ZpZXdlci92aWV3ZXIuY29tcG9uZW50JykudGhlbihjID0+IGMuTGlic1VpQ29tcG9uZW50c0dhbGxlcnlWaWV3ZXJDb21wb25lbnQpO1xuXG4gICAgdGhpcy52aWV3ZXJSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnQucmVzb2x2ZUNvbXBvbmVudEZhY3Rvcnkodmlld2VyQ29tcG9uZW50KTtcblxuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KHsgdmlld2VyUmVmOiB0aGlzLlZpZXdlclJlZiwgb3BlbjogKGltYWdlU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHRoaXMuaGFuZGxlclNlbGVjdEltYWdlKHVuZGVmaW5lZCwgaW1hZ2VTZWxlY3RlZCkgfSk7XG5cbiAgICB0aGlzLnZpZXdlclJlZi5zZXRJbnB1dCgnZmllbGREaXNwbGF5U3JjSW1hZ2UnLCB0aGlzLmZpZWxkRGlzcGxheVNyY0ltYWdlKCkpO1xuICAgIHRoaXMudmlld2VyUmVmLnNldElucHV0KCdpbWFnZXMnLCB0aGlzLmltYWdlcygpKTtcbiAgICB0aGlzLnZpZXdlclJlZi5zZXRJbnB1dCgnaW1hZ2VTZWxlY3RlZCcsIGltYWdlU2VsZWN0ZWQpO1xuICAgIHRoaXMudmlld2VyUmVmLnNldElucHV0KCd6SW5kZXgnLCB0aGlzLnpJbmRleCgpKTtcbiAgICB0aGlzLnZpZXdlclJlZi5zZXRJbnB1dCgnc2luZ2xlSW1hZ2UnLCB0aGlzLmltYWdlcygpLmxlbmd0aCA8PSAxKTtcblxuICAgIGNvbnN0IHN1YiA9IHRoaXMudmlld2VyUmVmLmluc3RhbmNlLm91dENsb3NlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5keW5hbWljQ29tcG9uZW50LmFkZFRvQm9keSh0aGlzLnZpZXdlclJlZik7XG5cbiAgICBpZiAoaXNFbWJlZEZyYW1lKCkpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIHR5cGU6IFwiTUlDUk9fU0lURV9NT0RBTF9FVkVOVFwiLFxuICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgIG1lc3NhZ2U6ICdvcGVuJyxcbiAgICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgICBpZE92ZXJsYXk6IHRoaXMuaWRPdmVybGF5LFxuICAgICAgICAgIHRpbWVMaXZlVXBkYXRlOiBkYXlqcygpLnVuaXgoKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBVdGlsc0NvbW11bmljYXRlTWljcm8uUG9zdE1lc3NhZ2VUb1BhcmVudChkYXRhKTtcblxuICAgICAgdGhpcy5pZEludGVydmFsLnNldCgoc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICBkYXRhLnJlc3BvbnNlLnRpbWVMaXZlVXBkYXRlID0gZGF5anMoKS51bml4KCk7XG5cbiAgICAgICAgVXRpbHNDb21tdW5pY2F0ZU1pY3JvLlBvc3RNZXNzYWdlVG9QYXJlbnQoZGF0YSk7XG4gICAgICB9LCAyMDAwKSBhcyB1bmtub3duKSBhcyBudW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVySW1hZ2VFcnJvcihlOiBFcnJvckV2ZW50LCBpbWFnZTogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGNvbnN0IGV2ZW50ID0gZSBhcyBJRXZlbnQ7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGltYWdlWydpc0Vycm9yJ10gPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVBvcHVwKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pZEludGVydmFsKCkpO1xuICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudC5yZW1vdmUodGhpcy52aWV3ZXJSZWYpO1xuICAgIHRoaXMudmlld2VyUmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KHsgdmlld2VyUmVmOiB0aGlzLlZpZXdlclJlZiwgb3BlbjogKGltYWdlU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHRoaXMuaGFuZGxlclNlbGVjdEltYWdlKHVuZGVmaW5lZCwgaW1hZ2VTZWxlY3RlZCkgfSk7XG4gICAgaWYgKGlzRW1iZWRGcmFtZSgpKSB7XG4gICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICB0eXBlOiBcIk1JQ1JPX1NJVEVfTU9EQUxfRVZFTlRcIixcbiAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICBtZXNzYWdlOiAnY2xvc2UnLFxuICAgICAgICAgIHN0YXRlOiBmYWxzZSxcbiAgICAgICAgICBpZE92ZXJsYXk6IHRoaXMuaWRPdmVybGF5XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIFV0aWxzQ29tbXVuaWNhdGVNaWNyby5Qb3N0TWVzc2FnZVRvUGFyZW50KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IFZpZXdlclJlZigpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3ZXJSZWY7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnZpZXdlclJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xuICB9XG59XG4iLCJAaWYoaW1hZ2VzKCkpIHtcbjxkaXYgY2xhc3M9XCJmbGV4IG5vd3JhcCB3LTEwMCBoLTEwMFwiPlxuICBAZm9yIChpbWFnZSBvZiBpbWFnZXNEaXNwbGF5KCk7IHRyYWNrICRpbmRleDsgbGV0IGxhc3QgPSAkbGFzdCkge1xuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBsaWJzLXVpLWJvcmRlci1nZW5lcmFsIHJlbGF0aXZlIGN1cnNvci1wb2ludGVyXCJcbiAgICBbY2xhc3MubXItWzEycHhdXT1cIiFsYXN0XCJcbiAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdEltYWdlKCRldmVudCwgaW1hZ2UpXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctZnVsbCBoLWZ1bGxcIj5cbiAgICAgIEBpZighaW1hZ2VbJ2lzRXJyb3InXSkge1xuICAgICAgPGltZyBbc3JjXT1cImltYWdlW2ZpZWxkRGlzcGxheVNyY0ltYWdlKCldXCJcbiAgICAgICAgY2xhc3M9XCJmbGV4IG1vLWxpYi1wZXJjZW50LW1heC1oZWlnaHQtMTAwIG1vLWxpYi1wZXJjZW50LW1heC13aWR0aC0xMDAgbS1hdXRvXCJcbiAgICAgICAgKGVycm9yKT0naGFuZGxlckltYWdlRXJyb3IoJGV2ZW50LCBpbWFnZSknIC8+XG4gICAgICB9XG4gICAgICBAaWYoaW1hZ2VbJ2lzRXJyb3InXSkge1xuICAgICAgPGRpdiAqbmdDb21wb25lbnRPdXRsZXQ9XCInaW1hZ2UtZGVmYXVsdCcgfCBMaWJzVWlJY29uc0dldEljb25Db21wb25lbnRQaXBlIHwgYXN5bmNcIj48L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICBAaWYobGFzdCAmJiBpbWFnZXMoKS5sZW5ndGggPiBlbmQoKSAmJiAhaWdub3JlT3ZlcmxheUNvdW50SW1hZ2UoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBoLWZ1bGwgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1bIzAwMF0gb3BhY2l0eS01XCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGgtZnVsbCBhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImxpYnMtdWktZm9udC1oM3MgbGlicy11aS1mb250LXNpemUtMjBweCB0ZXh0LVsjZmZmZmZmXVwiPisge3tpbWFnZXMoKS5sZW5ndGggLSBlbmQoKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIH1cbjwvZGl2PlxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './gallery.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZ2FsbGVyeS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2FsbGVyeS5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2dhbGxlcnkvc3JjL2ludGVyZmFjZXMvZnVuY3Rpb25zLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHYWxsZXJ5RnVuY3Rpb25zQ29udHJvbEV2ZW50IHtcbiAgb3BlbjogKGltYWdlU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IFByb21pc2U8dm9pZD47XG4gIHZpZXdlclJlZjogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQ7XG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZ2FsbGVyeS9zcmMvaW50ZXJmYWNlcy96b29tLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJWm9vbURyYWdIVE1MRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcbiAgc3RvcERyYWdnYWJsZUJlaGF2aW9yPygpOiBJWm9vbURyYWdIVE1MRWxlbWVudCB8IG51bGw7XG59Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWdhbGxlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZ2FsbGVyeS9zcmMvbGlicy11aS1jb21wb25lbnRzLWdhbGxlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=