@pepperi-addons/ngx-lib 0.3.15-beta.50 → 0.3.15-beta.51
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/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +71 -50
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
- package/esm2015/images-filmstrip/images-filmstrip.component.js +71 -46
- package/esm2015/images-filmstrip/images-filmstrip.module.js +3 -3
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +67 -47
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +0 -3
- package/images-filmstrip/package.json +0 -1
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild, ElementRef, Input, TemplateRef, Renderer2, ChangeDetectorRef, Inject, Optional, } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
4
3
|
import { Gallery, LoadingStrategy, SlidingDirection, ThumbnailsPosition, ImageItem, } from 'ng-gallery';
|
|
5
4
|
import { PepCustomizationService, PepLayoutService, PepFileService, DEFAULT_HORIZONTAL_ALIGNMENT, PepImagesField, PepUtilitiesService, PepGuid } from '@pepperi-addons/ngx-lib';
|
|
6
5
|
import { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';
|
|
@@ -16,44 +15,70 @@ import 'hammerjs';
|
|
|
16
15
|
// animate(400, style({ transform: 'translateY(-100%)', opacity: 0 }))
|
|
17
16
|
// ])
|
|
18
17
|
// ]);
|
|
19
|
-
import {
|
|
18
|
+
// import {
|
|
19
|
+
// IMAGEVIEWER_CONFIG,
|
|
20
|
+
// ImageViewerConfig,
|
|
21
|
+
// createButtonConfig,
|
|
22
|
+
// } from '@hallysonh/ngx-imageviewer';
|
|
20
23
|
import { DOCUMENT } from '@angular/common';
|
|
21
|
-
export function createViewerConfig(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
24
|
+
// export function createViewerConfig(
|
|
25
|
+
// translate: TranslateService
|
|
26
|
+
// ): ImageViewerConfig {
|
|
27
|
+
// return {
|
|
28
|
+
// // width: 850,
|
|
29
|
+
// // height: 150,
|
|
30
|
+
// bgStyle: '#FFF', // component background style
|
|
31
|
+
// // scaleStep: 0.1, // zoom scale step (using the zoom in/out buttons)
|
|
32
|
+
// // rotateStepper: false, // touch rotate should rotate only 90 to 90 degrees
|
|
33
|
+
// loadingMessage: translate.instant('MESSAGES.INFO_LOADING_FILE'), // 'Loading...',
|
|
34
|
+
// // buttonStyle: {
|
|
35
|
+
// // iconFontFamily: 'Material Icons', // font used to render the button icons
|
|
36
|
+
// // alpha: 0.5, // buttons' transparence value
|
|
37
|
+
// // hoverAlpha: 0.7, // buttons' transparence value when mouse is over
|
|
38
|
+
// // bgStyle: '#000000', // buttons' background style
|
|
39
|
+
// // iconStyle: '#ffffff', // buttons' icon colors
|
|
40
|
+
// // borderStyle: '#000000', // buttons' border style
|
|
41
|
+
// // borderWidth: 0, // buttons' border width (0 == disabled)
|
|
42
|
+
// // },
|
|
43
|
+
// // tooltips: {
|
|
44
|
+
// // enabled: true, // enable or disable tooltips for buttons
|
|
45
|
+
// // bgStyle: '#000000', // tooltip background style
|
|
46
|
+
// // bgAlpha: 0.5, // tooltip background transparence
|
|
47
|
+
// // textStyle: '#ffffff', // tooltip's text style
|
|
48
|
+
// // textAlpha: 0.9, // tooltip's text transparence
|
|
49
|
+
// // padding: 15, // tooltip padding
|
|
50
|
+
// // radius: 20, // tooltip border radius
|
|
51
|
+
// // },
|
|
52
|
+
// // shorter button configuration style
|
|
53
|
+
// nextPageButton: createButtonConfig(
|
|
54
|
+
// 'navigate_next',
|
|
55
|
+
// 'Next page',
|
|
56
|
+
// 0,
|
|
57
|
+
// false
|
|
58
|
+
// ),
|
|
59
|
+
// beforePageButton: createButtonConfig(
|
|
60
|
+
// 'navigate_before',
|
|
61
|
+
// 'Previous page',
|
|
62
|
+
// 1,
|
|
63
|
+
// false
|
|
64
|
+
// ),
|
|
65
|
+
// zoomOutButton: createButtonConfig('zoom_out', 'Zoom out', 0, false),
|
|
66
|
+
// zoomInButton: createButtonConfig('zoom_in', 'Zoom in', 1, false),
|
|
67
|
+
// rotateLeftButton: createButtonConfig(
|
|
68
|
+
// 'rotate_left',
|
|
69
|
+
// 'Rotate left',
|
|
70
|
+
// 2,
|
|
71
|
+
// false
|
|
72
|
+
// ),
|
|
73
|
+
// rotateRightButton: createButtonConfig(
|
|
74
|
+
// 'rotate_right',
|
|
75
|
+
// 'Rotate right',
|
|
76
|
+
// 3,
|
|
77
|
+
// false
|
|
78
|
+
// ),
|
|
79
|
+
// resetButton: createButtonConfig('autorenew', 'Reset', 4, false),
|
|
80
|
+
// };
|
|
81
|
+
// }
|
|
57
82
|
export class PepImagesFilmstripComponent {
|
|
58
83
|
constructor(customizationService, dialogService, layoutService, fileService, iconRegistry, utilitiesService, gallery, renderer, element, cd, document, dialogRef, data) {
|
|
59
84
|
this.customizationService = customizationService;
|
|
@@ -327,15 +352,15 @@ export class PepImagesFilmstripComponent {
|
|
|
327
352
|
PepImagesFilmstripComponent.decorators = [
|
|
328
353
|
{ type: Component, args: [{
|
|
329
354
|
selector: 'pep-images-filmstrip',
|
|
330
|
-
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template>",
|
|
355
|
+
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<!-- <ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template> -->",
|
|
331
356
|
// animations: [slideInAnimation],
|
|
332
357
|
providers: [
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
358
|
+
// {
|
|
359
|
+
// provide: IMAGEVIEWER_CONFIG,
|
|
360
|
+
// // useValue: IMAGEVIEWER_CONFIG_DEFAULT,
|
|
361
|
+
// useFactory: createViewerConfig,
|
|
362
|
+
// deps: [TranslateService],
|
|
363
|
+
// },
|
|
339
364
|
],
|
|
340
365
|
styles: [":host{width:100%;height:inherit;display:block}:host>*{align-self:center}.gallery-dialog{height:inherit}.images-filmstrip-container{height:100%}.images-filmstrip-container .img-wrapper{height:100%;position:relative}.images-filmstrip-container .gallery-arrow{padding:.5rem;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.images-filmstrip-container .gallery-arrow.start-arrow{left:0}.images-filmstrip-container .gallery-arrow.end-arrow{right:0}gallery{direction:ltr;height:100%;min-height:100%}.gallery-dialog-content{position:relative}.gallery-dialog-content .gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.gallery-dialog-content .gallery-arrow.start-arrow{left:0}.gallery-dialog-content .gallery-arrow.end-arrow{right:0}.gallery-dialog-content gallery{min-width:65vw}.gallery-dialog-content ::ng-deep gallery-item gallery-image .g-image-item{background-size:content!important}.gallery-dialog-content ::ng-deep gallery-item .g-item-template ngx-imageviewer canvas{max-width:100%!important;max-height:100%!important}::ng-deep gallery-thumbs{margin:0 1rem 0 .5rem;margin:0 var(--pep-spacing-lg,1rem) 0 var(--pep-spacing-sm,.5rem)}::ng-deep gallery-thumbs gallery-thumb{padding:0!important;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);margin:.5rem 0;margin:var(--pep-spacing-sm,.5rem) 0}::ng-deep gallery-thumbs gallery-thumb .g-image-item{background-size:cover!important}::ng-deep gallery-item gallery-image .g-image-item{border-radius:.5rem;border-radius:var(--pep-border-radius-lg,.5rem)}::ng-deep gallery-item:hover{cursor:pointer}::ng-deep gallery-dots{position:absolute!important;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem)}::ng-deep gallery-dots.pep-button,::ng-deep gallery-dots.pepperi-button{display:flex!important}::ng-deep .img-container{display:flex;align-items:center}::ng-deep gallery-nav{display:none}.vertical-gallery ::ng-deep gallery-thumbs{margin:1rem 0 .5rem;margin:var(--pep-spacing-lg,1rem) 0 var(--pep-spacing-sm,.5rem) 0}.vertical-gallery ::ng-deep gallery-thumbs gallery-thumb{margin:0 .5rem;margin:0 var(--pep-spacing-sm,.5rem)}", "gallery{background-color:transparent}::ng-deep gallery-thumb{box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .g-nav-next,::ng-deep .g-nav-prev{background:hsla(0,0%,100%,.5);background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.5)}::ng-deep .g-nav-next:hover,::ng-deep .g-nav-prev:hover{background:hsla(0,0%,100%,.5);background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.5);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);cursor:pointer}::ng-deep .g-nav-next:focus,::ng-deep .g-nav-prev:focus{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .g-nav-next:active,::ng-deep .g-nav-prev:active{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .g-nav-next:disabled,::ng-deep .g-nav-prev:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:hsla(0,0%,100%,.08)!important;background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.08)!important}::ng-deep .g-nav-next:disabled:after,::ng-deep .g-nav-prev:disabled:after{border:unset}::ng-deep .g-nav-next:disabled .svg-icon,::ng-deep .g-nav-prev:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .g-nav-next:disabled .svg-icon.stroke,::ng-deep .g-nav-prev:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep gallery-dots{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]
|
|
341
366
|
},] }
|
|
@@ -372,4 +397,4 @@ PepImagesFilmstripComponent.propDecorators = {
|
|
|
372
397
|
galleryDialogTemplate: [{ type: ViewChild, args: ['galleryDialogTemplate', { read: TemplateRef },] }],
|
|
373
398
|
galleryDialogCont: [{ type: ViewChild, args: ['galleryDialogCont',] }]
|
|
374
399
|
};
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBSVQsVUFBVSxFQUNWLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNILE9BQU8sRUFFUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixTQUFTLEdBRVosTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNILHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLE9BQU8sRUFDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBNkMsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNILE9BQU8sVUFBVSxDQUFDO0FBWWxCLDhEQUE4RDtBQUM5RCxzRUFBc0U7QUFDdEUsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSx1QkFBdUI7QUFDdkIsVUFBVTtBQUNWLDZCQUE2QjtBQUM3Qiw4RUFBOEU7QUFDOUUsU0FBUztBQUNULE1BQU07QUFFTixPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLGtCQUFrQixHQUNyQixNQUFNLDRCQUE0QixD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QUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQywwREFBMEQ7UUFDMUQscUNBQXFDO1FBQ3JDLDBCQUEwQjtRQUMxQixJQUFJO0lBQ1IsQ0FBQzs7O1lBNVdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxrd0ZBQWdEO2dCQUVoRCxrQ0FBa0M7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsa0JBQWtCO3dCQUMzQix3Q0FBd0M7d0JBQ3hDLFVBQVUsRUFBRSxrQkFBa0I7d0JBQzlCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO3FCQUMzQjtpQkFDSjs7YUFDSjs7O1lBbkhHLHVCQUF1QjtZQVVsQixnQkFBZ0I7WUFSckIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFRa0MsZUFBZTtZQUovRCxtQkFBbUI7WUFqQm5CLE9BQU87WUFsQlAsU0FBUztZQUhULFVBQVU7WUFJVixpQkFBaUI7NENBME5aLFFBQVEsWUFBSSxNQUFNLFNBQUMsUUFBUTtZQTVNVixZQUFZLHVCQTZNN0IsUUFBUTs0Q0FFUixRQUFRLFlBQ1IsTUFBTSxTQUFDLGVBQWU7OztrQkE1RTFCLEtBQUs7b0JBQ0wsS0FBSztvQkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBR0wsS0FBSzttQkFXTCxLQUFLO2tCQUNMLEtBQUs7d0JBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUdMLEtBQUs7d0JBU0wsS0FBSzs2QkFDTCxLQUFLOzBCQUVMLFNBQVMsU0FBQyxhQUFhO29DQUN2QixTQUFTLFNBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dDQUV4RCxTQUFTLFNBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPbkNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICB0cmlnZ2VyLFxuICAgIHN0YXRlLFxuICAgIHN0eWxlLFxuICAgIHRyYW5zaXRpb24sXG4gICAgYW5pbWF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIEdhbGxlcnksXG4gICAgR2FsbGVyeUNvbmZpZyxcbiAgICBMb2FkaW5nU3RyYXRlZ3ksXG4gICAgU2xpZGluZ0RpcmVjdGlvbixcbiAgICBUaHVtYm5haWxzUG9zaXRpb24sXG4gICAgR2FsbGVyeUl0ZW0sXG4gICAgSW1hZ2VJdGVtLFxuICAgIEdhbGxlcnlSZWYsXG59IGZyb20gJ25nLWdhbGxlcnknO1xuaW1wb3J0IHtcbiAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICBQZXBMYXlvdXRUeXBlLFxuICAgIFBlcExheW91dFNlcnZpY2UsXG4gICAgUGVwRmlsZVNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIFBlcEltYWdlc0ZpZWxkLFxuICAgIFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgUGVwR3VpZFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBQZXBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZGlhbG9nJztcbmltcG9ydCB7IHBlcEljb25BcnJvd1JpZ2h0QWx0LCBwZXBJY29uQXJyb3dMZWZ0QWx0LCBQZXBJY29uUmVnaXN0cnksIHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5pbXBvcnQgJ2hhbW1lcmpzJztcblxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWxtc3RyaXBEaWFsb2dEYXRhIHtcbiAgICBjdXJySW5kZXg6IG51bWJlcjtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgICB1aWQ6IHN0cmluZztcbiAgICBzaG93VGh1bWJuYWlsczogYm9vbGVhbjtcbn1cblxuLy8gZXhwb3J0IGNvbnN0IHNsaWRlSW5BbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZUFuaW1hdGlvbicsIFtcbi8vICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAxIH0pKSxcbi8vICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4vLyAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTAwJSknLCBvcGFjaXR5OiAwIH0pLFxuLy8gICAgICAgICBhbmltYXRlKDQwMClcbi8vICAgICBdKSxcbi8vICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4vLyAgICAgICAgIGFuaW1hdGUoNDAwLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJywgb3BhY2l0eTogMCB9KSlcbi8vICAgICBdKVxuLy8gXSk7XG5cbmltcG9ydCB7XG4gICAgSU1BR0VWSUVXRVJfQ09ORklHLFxuICAgIEltYWdlVmlld2VyQ29uZmlnLFxuICAgIGNyZWF0ZUJ1dHRvbkNvbmZpZyxcbn0gZnJvbSAnQGhhbGx5c29uaC9uZ3gtaW1hZ2V2aWV3ZXInO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmlld2VyQ29uZmlnKFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuKTogSW1hZ2VWaWV3ZXJDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIHdpZHRoOiA4NTAsXG4gICAgICAgIC8vIGhlaWdodDogMTUwLFxuICAgICAgICBiZ1N0eWxlOiAnI0ZGRicsIC8vIGNvbXBvbmVudCBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgIC8vIHNjYWxlU3RlcDogMC4xLCAvLyB6b29tIHNjYWxlIHN0ZXAgKHVzaW5nIHRoZSB6b29tIGluL291dCBidXR0b25zKVxuICAgICAgICAvLyByb3RhdGVTdGVwcGVyOiBmYWxzZSwgLy8gdG91Y2ggcm90YXRlIHNob3VsZCByb3RhdGUgb25seSA5MCB0byA5MCBkZWdyZWVzXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlOiB0cmFuc2xhdGUuaW5zdGFudCgnTUVTU0FHRVMuSU5GT19MT0FESU5HX0ZJTEUnKSwgLy8gJ0xvYWRpbmcuLi4nLFxuICAgICAgICAvLyBidXR0b25TdHlsZToge1xuICAgICAgICAvLyAgICAgaWNvbkZvbnRGYW1pbHk6ICdNYXRlcmlhbCBJY29ucycsIC8vIGZvbnQgdXNlZCB0byByZW5kZXIgdGhlIGJ1dHRvbiBpY29uc1xuICAgICAgICAvLyAgICAgYWxwaGE6IDAuNSwgLy8gYnV0dG9ucycgdHJhbnNwYXJlbmNlIHZhbHVlXG4gICAgICAgIC8vICAgICBob3ZlckFscGhhOiAwLjcsIC8vIGJ1dHRvbnMnIHRyYW5zcGFyZW5jZSB2YWx1ZSB3aGVuIG1vdXNlIGlzIG92ZXJcbiAgICAgICAgLy8gICAgIGJnU3R5bGU6ICcjMDAwMDAwJywgLy8gIGJ1dHRvbnMnIGJhY2tncm91bmQgc3R5bGVcbiAgICAgICAgLy8gICAgIGljb25TdHlsZTogJyNmZmZmZmYnLCAvLyBidXR0b25zJyBpY29uIGNvbG9yc1xuICAgICAgICAvLyAgICAgYm9yZGVyU3R5bGU6ICcjMDAwMDAwJywgLy8gYnV0dG9ucycgYm9yZGVyIHN0eWxlXG4gICAgICAgIC8vICAgICBib3JkZXJXaWR0aDogMCwgLy8gYnV0dG9ucycgYm9yZGVyIHdpZHRoICgwID09IGRpc2FibGVkKVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyB0b29sdGlwczoge1xuICAgICAgICAvLyAgICAgZW5hYmxlZDogdHJ1ZSwgLy8gZW5hYmxlIG9yIGRpc2FibGUgdG9vbHRpcHMgZm9yIGJ1dHRvbnNcbiAgICAgICAgLy8gICAgIGJnU3R5bGU6ICcjMDAwMDAwJywgLy8gdG9vbHRpcCBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgIC8vICAgICBiZ0FscGhhOiAwLjUsIC8vIHRvb2x0aXAgYmFja2dyb3VuZCB0cmFuc3BhcmVuY2VcbiAgICAgICAgLy8gICAgIHRleHRTdHlsZTogJyNmZmZmZmYnLCAvLyB0b29sdGlwJ3MgdGV4dCBzdHlsZVxuICAgICAgICAvLyAgICAgdGV4dEFscGhhOiAwLjksIC8vIHRvb2x0aXAncyB0ZXh0IHRyYW5zcGFyZW5jZVxuICAgICAgICAvLyAgICAgcGFkZGluZzogMTUsIC8vIHRvb2x0aXAgcGFkZGluZ1xuICAgICAgICAvLyAgICAgcmFkaXVzOiAyMCwgLy8gdG9vbHRpcCBib3JkZXIgcmFkaXVzXG4gICAgICAgIC8vIH0sXG4gICAgICAgIC8vIHNob3J0ZXIgYnV0dG9uIGNvbmZpZ3VyYXRpb24gc3R5bGVcbiAgICAgICAgbmV4dFBhZ2VCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICduYXZpZ2F0ZV9uZXh0JyxcbiAgICAgICAgICAgICdOZXh0IHBhZ2UnLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIGJlZm9yZVBhZ2VCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICduYXZpZ2F0ZV9iZWZvcmUnLFxuICAgICAgICAgICAgJ1ByZXZpb3VzIHBhZ2UnLFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHpvb21PdXRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZygnem9vbV9vdXQnLCAnWm9vbSBvdXQnLCAwLCBmYWxzZSksXG4gICAgICAgIHpvb21JbkJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKCd6b29tX2luJywgJ1pvb20gaW4nLCAxLCBmYWxzZSksXG4gICAgICAgIHJvdGF0ZUxlZnRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICdyb3RhdGVfbGVmdCcsXG4gICAgICAgICAgICAnUm90YXRlIGxlZnQnLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHJvdGF0ZVJpZ2h0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoXG4gICAgICAgICAgICAncm90YXRlX3JpZ2h0JyxcbiAgICAgICAgICAgICdSb3RhdGUgcmlnaHQnLFxuICAgICAgICAgICAgMyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHJlc2V0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoJ2F1dG9yZW5ldycsICdSZXNldCcsIDQsIGZhbHNlKSxcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbWFnZXMtZmlsbXN0cmlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuc2NzcycsICcuL2ltYWdlcy1maWxtc3RyaXAuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbiAgICAvLyBhbmltYXRpb25zOiBbc2xpZGVJbkFuaW1hdGlvbl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElNQUdFVklFV0VSX0NPTkZJRyxcbiAgICAgICAgICAgIC8vIHVzZVZhbHVlOiBJTUFHRVZJRVdFUl9DT05GSUdfREVGQVVMVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVZpZXdlckNvbmZpZyxcbiAgICAgICAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vIEBWaWV3Q2hpbGQoJ25neFZpZXdlckltYWdlJykgbmd4Vmlld2VySW1hZ2U6IGFueTsgLy8gVE9ETzogQ2hlY2sgaWYgd2UgbmVlZCB0byB1c2UgdGhpcz8/XG4gICAgQElucHV0KCkga2V5ID0gJyc7XG4gICAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuXG4gICAgcHJpdmF0ZSBfcm93U3BhbiA9IDE7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93U3Bhbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yb3dTcGFuID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IHJvd1NwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd1NwYW47XG4gICAgfVxuXG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2VzJztcblxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgQElucHV0KCkgdWlkID0gJzAnO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX2xheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG4gICAgQElucHV0KClcbiAgICBzZXQgbGF5b3V0VHlwZSh2YWx1ZTogUGVwTGF5b3V0VHlwZSkge1xuICAgICAgICB0aGlzLl9sYXlvdXRUeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IGxheW91dFR5cGUoKTogUGVwTGF5b3V0VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXRUeXBlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGN1cnJJbmRleCA9IDA7XG4gICAgQElucHV0KCkgc2hvd1RodW1ibmFpbHMgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlDb250JykgZ2FsbGVyeUNvbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeURpYWxvZ1RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdhbGxlcnlEaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5RGlhbG9nQ29udCcpIGdhbGxlcnlEaWFsb2dDb250OiBFbGVtZW50UmVmO1xuXG4gICAgY29uZmlnOiBHYWxsZXJ5Q29uZmlnO1xuICAgIGl0ZW1zOiBHYWxsZXJ5SXRlbVtdID0gbnVsbDtcbiAgICBpbkRpYWxvZyA9IGZhbHNlO1xuICAgIHNob3dGb290ZXIgPSBmYWxzZTtcbiAgICBzaG93Q2xvc2UgPSB0cnVlO1xuICAgIFxuICAgIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBmaWVsZEhlaWdodCA9ICcnO1xuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcblxuICAgIGdhbGxlcnlXaWR0aCA9IDA7XG4gICAgZ2FsbGVyeUhlaWdodDtcbiAgICBpc1ZlcnRpY2FsID0gZmFsc2U7XG4gICAgZ2FsbGVyeVJlZjogR2FsbGVyeVJlZjtcbiAgICBkaWFsb2dHYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuICAgIGd1aWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgZW5sYXJnZUltYWdlRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBQZXBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5LFxuICAgICAgICBwcml2YXRlIHV0aWxpdGllc1NlcnZpY2U6IFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2FsbGVyeTogR2FsbGVyeSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgZGF0YTogSVBlcEltYWdlc0ZpbG1zdHJpcERpYWxvZ0RhdGFcbiAgICApIHtcbiAgICAgICAgLy8gSWYgZGF0YSBleGlzdCBjb3B5IGFsbCBkYXRhIHByb3BlcnRpZXMgaW50byB0aGlzLlxuICAgICAgICBpZiAoZGlhbG9nUmVmICYmIGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaW5EaWFsb2cgPSB0cnVlO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICBuYXY6IGZhbHNlLCAvLyBTaG93IG5hdmlnYXRpb24gYnV0dG9uc1xuICAgICAgICAgICAgLy8gbmF2SWNvbjogcGVwSWNvbkFycm93UmlnaHRBbHQuZGF0YSxcbiAgICAgICAgICAgIC8vIGxvb3A6IHRydWUsXG4gICAgICAgICAgICAvLyB6b29tT3V0OiAwLFxuICAgICAgICAgICAgLy8gZG90czogZmFsc2UsXG4gICAgICAgICAgICAvLyBkb3RzUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICAgICAgLy8gY291bnRlclBvc2l0aW9uOiAndG9wJyxcbiAgICAgICAgICAgIC8vIHRodW1iOiB0cnVlLFxuICAgICAgICAgICAgY291bnRlcjogZmFsc2UsIC8vIFNob3cgY291bnRlclxuICAgICAgICAgICAgZ2VzdHVyZXM6IHRydWUsIC8vIFVzZSB0b3VjaCBldmVudHMgKHJlcXVpcmVzIGhhbW1lci5qcylcbiAgICAgICAgICAgIC8vIGF1dG9QbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHRodW1iV2lkdGg6IDEyMCxcbiAgICAgICAgICAgIC8vIHRodW1iSGVpZ2h0OiA5MCxcbiAgICAgICAgICAgIGltYWdlU2l6ZTogJ2NvbnRhaW4nLFxuICAgICAgICAgICAgLy8gcGFuU2Vuc2l0aXZpdHk6IDI1LFxuICAgICAgICAgICAgLy8gZGlzYWJsZVRodW1iOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHBsYXllckludGVydmFsOiAzMDAwLFxuICAgICAgICAgICAgLy8gdGh1bWJNb2RlOiBUaHVtYm5haWxzTW9kZS5GcmVlLFxuICAgICAgICAgICAgLy8gdGh1bWJQb3NpdGlvbjogVGh1bWJuYWlsc1Bvc2l0aW9uLkJvdHRvbSxcbiAgICAgICAgICAgIGxvYWRpbmdTdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5LlByZWxvYWQsXG4gICAgICAgICAgICAvLyBzbGlkaW5nRGlyZWN0aW9uOiBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWwsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ndWlkID0gUGVwR3VpZC5uZXdHdWlkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGaWVsZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZEhlaWdodCA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuY2FsY3VsYXRlRmllbGRIZWlnaHQoXG4gICAgICAgICAgICB0aGlzLmxheW91dFR5cGUsXG4gICAgICAgICAgICB0aGlzLnJvd1NwYW4sXG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBJbWFnZXNGaWVsZCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtYW5kYXRvcnk6IHRoaXMubWFuZGF0b3J5LFxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChwZXBGaWVsZCk7XG4gICAgfVxuXG4gICAgLy8gcHJpdmF0ZSByZW5kZXJOYXZJY29uKGdhbGxlcnlDb250YWluZXIsIGlzTGVmdDogYm9vbGVhbikge1xuICAgIC8vICAgICBsZXQgaWNvbk5hbWUgPSBpc0xlZnQgPyBwZXBJY29uQXJyb3dMZWZ0QWx0Lm5hbWUgOiBwZXBJY29uQXJyb3dSaWdodEFsdC5uYW1lO1xuICAgIC8vICAgICBjb25zdCBzdmdEYXRhID0gdGhpcy5pY29uUmVnaXN0cnkuZ2V0SWNvbihpY29uTmFtZSk7XG4gICAgLy8gICAgIGNvbnN0IHN2Z0ljb24gPSB0aGlzLnV0aWxpdGllc1NlcnZpY2UuZ2V0U3ZnRWxlbWVudEZyb21TdHJpbmcoXG4gICAgLy8gICAgICAgICB0aGlzLmRvY3VtZW50LFxuICAgIC8vICAgICAgICAgc3ZnRGF0YVxuICAgIC8vICAgICApO1xuXG4gICAgLy8gICAgIGNvbnN0IGVsZW1lbnROYW1lVG9GaW5kID0gaXNMZWZ0ID8gJ2ctbmF2LXByZXYnIDogJ2ctbmF2LW5leHQnXG5cbiAgICAvLyAgICAgY29uc3QgZWxlbWVudEFyciA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtlbGVtZW50TmFtZVRvRmluZH1gKTtcbiAgICAvLyAgICAgaWYgKGVsZW1lbnRBcnIgJiYgZWxlbWVudEFyci5sZW5ndGggPiAwKSB7XG4gICAgLy8gICAgICAgICBlbGVtZW50QXJyWzBdLmFwcGVuZENoaWxkKHN2Z0ljb24pO1xuICAgIC8vICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzdmdJY29uLCAnc3ZnLWljb24nKTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGltZ0FyciA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlLnNwbGl0KCc7JykgOiBbXTtcbiAgICAgICAgICAgIC8vIGFkZCBObyBpbWFnZSBpbWFnZSB3aGVuIHRoZXJlIGlzIG5vIGltYWdlc1xuICAgICAgICAgICAgaWYgKGltZ0Fyci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub0ltYWdlU3JjID0gdGhpcy5maWxlU2VydmljZS5nZXRTdmdBc0ltYWdlU3JjKFxuICAgICAgICAgICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaW1nQXJyLnB1c2gobm9JbWFnZVNyYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBpbWdBcnIubWFwKFxuICAgICAgICAgICAgICAgIChpbWcpID0+IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IGltZywgdGh1bWI6IGltZyB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLmRvdHMgPSB0aGlzLmNvbmZpZy5uYXYgPSB0aGlzLml0ZW1zLmxlbmd0aCA+IDE7XG4gICAgICAgIHRoaXMuY29uZmlnLnRodW1iID1cbiAgICAgICAgICAgICh0aGlzLmtleSA9PT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnIHx8IHRoaXMuc2hvd1RodW1ibmFpbHMpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJySW5kZXggPVxuICAgICAgICAgICAgdGhpcy5rZXkgPT09ICdJdGVtRmlsbXN0cmlwSW1hZ2VzJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID09PSAwICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgPyBNYXRoLmZsb29yKHRoaXMuaXRlbXMubGVuZ3RoIC8gMikgLSAxXG4gICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJJbmRleDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmFmdGVyRGlhbG9nT3BlbmVkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlSZWYgPSB0aGlzLmdhbGxlcnkucmVmKFxuICAgICAgICAgICAgICAgIGAke3RoaXMuZ3VpZH0tZ2FsbGVyeWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmluaXRHYWxsZXJ5U3R5bGUodGhpcy5nYWxsZXJ5Q29udCwgdGhpcy5nYWxsZXJ5UmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGFuZEFsb25lKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeVJlZikge1xuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dHYWxsZXJ5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0dhbGxlcnlSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmICh0aGlzLm15UGluY2gpIHsgdGhpcy5teVBpbmNoLmRlc3Ryb3koKTsgfVxuICAgIH1cblxuICAgIGluaXRHYWxsZXJ5U3R5bGUoZ2FsbGVyeUNvbnRhaW5lciwgZ2FsbGVyeVJlZik6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldCB0aHVtYm5haWxzIHBvc2l0aW9uIGFuZCBzbGlkaW5nIGRpcmVjdGlvblxuICAgICAgICAgICAgdGhpcy5zZXRUaHVtYm5haWxEaW1lbnNpb24oZ2FsbGVyeUNvbnRhaW5lcik7XG4gICAgICAgICAgICBnYWxsZXJ5UmVmLnNldENvbmZpZyh0aGlzLmNvbmZpZyk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgdHJ1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgZmFsc2UpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJJbmRleDtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYubG9hZCh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgICAgICBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FcnJvcihlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBub2ltZyA9IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IG5vSW1hZ2VTcmMsIHRodW1iOiBub0ltYWdlU3JjIH0pO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShlLml0ZW1JbmRleCwgMSwgbm9pbWcpO1xuICAgIH1cblxuICAgIGVubGFyZ2VJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXREaWFsb2dDb25maWcoe30sICdpbmxpbmUnKTtcbiAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xuICAgICAgICBjb25maWcuaGVpZ2h0ID0gJzk1dmgnO1xuXG4gICAgICAgIHRoaXMuZW5sYXJnZUltYWdlRGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlEaWFsb2dUZW1wbGF0ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjdXJySW5kZXg6IHRoaXMuY3VyckluZGV4LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZW5sYXJnZUltYWdlRGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGN1cnJlbnRJbmRleCBpbiBnYWxsZXJ5UmVmXG4gICAgICAgIC8vIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLmdhbGxlcnlSZWYuc2V0KHRoaXMuY3VyckluZGV4KTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgYWZ0ZXJEaWFsb2dPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nR2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICBgJHt0aGlzLmd1aWR9LWRsZ0dhbGxlcnlgXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5pdEdhbGxlcnlTdHlsZSh0aGlzLmdhbGxlcnlEaWFsb2dDb250LCB0aGlzLmRpYWxvZ0dhbGxlcnlSZWYpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWY/LmNsb3NlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFRodW1ibmFpbERpbWVuc2lvbihnYWxsZXJ5Q29udGFpbmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2FsbGVyeVdpZHRoID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAvLyB0aGlzLmdhbGxlcnlIZWlnaHQgPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzI7IC8vIFRPRE8gLSBUQUxLIFdJVEggVE9NRVJcbiAgICAgICAgdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gdGhpcy5pbkRpYWxvZ1xuICAgICAgICAgICAgPyBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzJcbiAgICAgICAgICAgIDogZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgLy8gdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmVydGljYWwgPSB0aGlzLmdhbGxlcnlXaWR0aCA8IHRoaXMuZ2FsbGVyeUhlaWdodDtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIGxldCB3aWR0aCA9XG4gICAgICAgICAgICAgICAgKHRoaXMuZ2FsbGVyeVdpZHRoIC0gKHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgKiAxNikgL1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgd2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgMjQpLCA5Nik7XG5cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iSGVpZ2h0ID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYldpZHRoID0gd2lkdGggKyAxNjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPVxuICAgICAgICAgICAgICAgICh0aGlzLmdhbGxlcnlIZWlnaHQgLSAodGhpcy5pdGVtcy5sZW5ndGggLSAxKSAqIDE2KSAvXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICBoZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChoZWlnaHQsIDI0KSwgOTYpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYkhlaWdodCA9IGhlaWdodCArIDE2O1xuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJXaWR0aCA9IGhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLnRodW1iUG9zaXRpb24gPSB0aGlzLmlzVmVydGljYWxcbiAgICAgICAgICAgID8gVGh1bWJuYWlsc1Bvc2l0aW9uLkJvdHRvbVxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuaXNSdGwoKVxuICAgICAgICAgICAgICAgID8gVGh1bWJuYWlsc1Bvc2l0aW9uLlJpZ2h0XG4gICAgICAgICAgICAgICAgOiBUaHVtYm5haWxzUG9zaXRpb24uTGVmdDtcbiAgICAgICAgdGhpcy5jb25maWcuc2xpZGluZ0RpcmVjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmtleSAhPT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnXG4gICAgICAgICAgICAgICAgPyBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWxcbiAgICAgICAgICAgICAgICA6IHRoaXMuaXNWZXJ0aWNhbFxuICAgICAgICAgICAgICAgICAgICA/IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICA6IFNsaWRpbmdEaXJlY3Rpb24uVmVydGljYWw7XG5cbiAgICAgICAgdGhpcy5jb25maWcuaW1hZ2VTaXplID0gJ2NvbnRhaW4nO1xuICAgIH1cblxuICAgIGluZGV4Q2hhbmdlKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9IGl0ZW0uY3VyckluZGV4O1xuICAgICAgICAvLyBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZSAmJiB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID0gMTtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuXG4gICAgLy8gc2Nyb2xsRnVuY3Rpb24oZTogYW55KTogYm9vbGVhbiB7XG4gICAgLy8gICAgIGUuZGVsdGFZID4gMCA/IHRoaXMuem9vbU91dCgpIDogdGhpcy56b29tSW4oKTtcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vIH1cblxuICAgIC8vIHpvb21JbigpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPCAyKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlICo9ICgxICsgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5jb25maWcuem9vbUZhY3Rvcik7XG4gICAgLy8gICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID0gMjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gem9vbU91dCgpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPiB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlIC89ICgxICsgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5jb25maWcuem9vbUZhY3Rvcik7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgIC8vIH1cblxuICAgIC8vIHByaXZhdGUgdXBkYXRlU3R5bGUoKTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3RoaXMubmd4Vmlld2VySW1hZ2UudHJhbnNsYXRlWH1weCxcbiAgICAvLyAgICAgICAgICR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS50cmFuc2xhdGVZfXB4KSByb3RhdGUoJHt0aGlzLm5neFZpZXdlckltYWdlLnJvdGF0aW9ufWRlZykgc2NhbGUoJHt0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlfSlgO1xuXG4gICAgLy8gICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIH1cbn1cbiJdfQ==
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBSVQsVUFBVSxFQUNWLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUNILE9BQU8sRUFFUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixTQUFTLEdBRVosTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNILHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLE9BQU8sRUFDVixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBNkMsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNILE9BQU8sVUFBVSxDQUFDO0FBWWxCLDhEQUE4RDtBQUM5RCxzRUFBc0U7QUFDdEUsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSx1QkFBdUI7QUFDdkIsVUFBVTtBQUNWLDZCQUE2QjtBQUM3Qiw4RUFBOEU7QUFDOUUsU0FBUztBQUNULE1BQU07QUFFTixXQUFXO0FBQ1gsMEJBQTBCO0FBQzFCLHlCQUF5QjtBQUN6QiwwQkFBMEI7QUFDMUIsdUNBQXVDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIs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Z0JBQ2hDLDJ3RkFBZ0Q7Z0JBRWhELGtDQUFrQztnQkFDbEMsU0FBUyxFQUFFO2dCQUNQLElBQUk7Z0JBQ0osbUNBQW1DO2dCQUNuQywrQ0FBK0M7Z0JBQy9DLHNDQUFzQztnQkFDdEMsZ0NBQWdDO2dCQUNoQyxLQUFLO2lCQUNSOzthQUNKOzs7WUFuSEcsdUJBQXVCO1lBVWxCLGdCQUFnQjtZQVJyQixnQkFBZ0I7WUFDaEIsY0FBYztZQVFrQyxlQUFlO1lBSi9ELG1CQUFtQjtZQWpCbkIsT0FBTztZQWxCUCxTQUFTO1lBSFQsVUFBVTtZQUlWLGlCQUFpQjs0Q0EwTlosUUFBUSxZQUFJLE1BQU0sU0FBQyxRQUFRO1lBNU1WLFlBQVksdUJBNk03QixRQUFROzRDQUVSLFFBQVEsWUFDUixNQUFNLFNBQUMsZUFBZTs7O2tCQTVFMUIsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFHTCxLQUFLO21CQVdMLEtBQUs7a0JBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBR0wsS0FBSzt3QkFTTCxLQUFLOzZCQUNMLEtBQUs7MEJBRUwsU0FBUyxTQUFDLGFBQWE7b0NBQ3ZCLFNBQVMsU0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0NBRXhELFNBQVMsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIHRyaWdnZXIsXG4gICAgc3RhdGUsXG4gICAgc3R5bGUsXG4gICAgdHJhbnNpdGlvbixcbiAgICBhbmltYXRlLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgR2FsbGVyeSxcbiAgICBHYWxsZXJ5Q29uZmlnLFxuICAgIExvYWRpbmdTdHJhdGVneSxcbiAgICBTbGlkaW5nRGlyZWN0aW9uLFxuICAgIFRodW1ibmFpbHNQb3NpdGlvbixcbiAgICBHYWxsZXJ5SXRlbSxcbiAgICBJbWFnZUl0ZW0sXG4gICAgR2FsbGVyeVJlZixcbn0gZnJvbSAnbmctZ2FsbGVyeSc7XG5pbXBvcnQge1xuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICBQZXBGaWxlU2VydmljZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgUGVwSW1hZ2VzRmllbGQsXG4gICAgUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICBQZXBHdWlkXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgcGVwSWNvbkFycm93UmlnaHRBbHQsIHBlcEljb25BcnJvd0xlZnRBbHQsIFBlcEljb25SZWdpc3RyeSwgcGVwSWNvbk5vSW1hZ2UyIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5cbmltcG9ydCAnaGFtbWVyanMnO1xuXG5pbnRlcmZhY2UgSVBlcEltYWdlc0ZpbG1zdHJpcERpYWxvZ0RhdGEge1xuICAgIGN1cnJJbmRleDogbnVtYmVyO1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBzaG93Rm9vdGVyOiBib29sZWFuO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIHNob3dUaHVtYm5haWxzOiBib29sZWFuO1xufVxuXG4vLyBleHBvcnQgY29uc3Qgc2xpZGVJbkFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlQW5pbWF0aW9uJywgW1xuLy8gICAgIHN0YXRlKCdpbicsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsIG9wYWNpdHk6IDEgfSkpLFxuLy8gICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbi8vICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScsIG9wYWNpdHk6IDAgfSksXG4vLyAgICAgICAgIGFuaW1hdGUoNDAwKVxuLy8gICAgIF0pLFxuLy8gICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbi8vICAgICAgICAgYW5pbWF0ZSg0MDAsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTAwJSknLCBvcGFjaXR5OiAwIH0pKVxuLy8gICAgIF0pXG4vLyBdKTtcblxuLy8gaW1wb3J0IHtcbi8vICAgICBJTUFHRVZJRVdFUl9DT05GSUcsXG4vLyAgICAgSW1hZ2VWaWV3ZXJDb25maWcsXG4vLyAgICAgY3JlYXRlQnV0dG9uQ29uZmlnLFxuLy8gfSBmcm9tICdAaGFsbHlzb25oL25neC1pbWFnZXZpZXdlcic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWaWV3ZXJDb25maWcoXG4vLyAgICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4vLyApOiBJbWFnZVZpZXdlckNvbmZpZyB7XG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgICAgLy8gd2lkdGg6IDg1MCxcbi8vICAgICAgICAgLy8gaGVpZ2h0OiAxNTAsXG4vLyAgICAgICAgIGJnU3R5bGU6ICcjRkZGJywgLy8gY29tcG9uZW50IGJhY2tncm91bmQgc3R5bGVcbi8vICAgICAgICAgLy8gc2NhbGVTdGVwOiAwLjEsIC8vIHpvb20gc2NhbGUgc3RlcCAodXNpbmcgdGhlIHpvb20gaW4vb3V0IGJ1dHRvbnMpXG4vLyAgICAgICAgIC8vIHJvdGF0ZVN0ZXBwZXI6IGZhbHNlLCAvLyB0b3VjaCByb3RhdGUgc2hvdWxkIHJvdGF0ZSBvbmx5IDkwIHRvIDkwIGRlZ3JlZXNcbi8vICAgICAgICAgbG9hZGluZ01lc3NhZ2U6IHRyYW5zbGF0ZS5pbnN0YW50KCdNRVNTQUdFUy5JTkZPX0xPQURJTkdfRklMRScpLCAvLyAnTG9hZGluZy4uLicsXG4vLyAgICAgICAgIC8vIGJ1dHRvblN0eWxlOiB7XG4vLyAgICAgICAgIC8vICAgICBpY29uRm9udEZhbWlseTogJ01hdGVyaWFsIEljb25zJywgLy8gZm9udCB1c2VkIHRvIHJlbmRlciB0aGUgYnV0dG9uIGljb25zXG4vLyAgICAgICAgIC8vICAgICBhbHBoYTogMC41LCAvLyBidXR0b25zJyB0cmFuc3BhcmVuY2UgdmFsdWVcbi8vICAgICAgICAgLy8gICAgIGhvdmVyQWxwaGE6IDAuNywgLy8gYnV0dG9ucycgdHJhbnNwYXJlbmNlIHZhbHVlIHdoZW4gbW91c2UgaXMgb3ZlclxuLy8gICAgICAgICAvLyAgICAgYmdTdHlsZTogJyMwMDAwMDAnLCAvLyAgYnV0dG9ucycgYmFja2dyb3VuZCBzdHlsZVxuLy8gICAgICAgICAvLyAgICAgaWNvblN0eWxlOiAnI2ZmZmZmZicsIC8vIGJ1dHRvbnMnIGljb24gY29sb3JzXG4vLyAgICAgICAgIC8vICAgICBib3JkZXJTdHlsZTogJyMwMDAwMDAnLCAvLyBidXR0b25zJyBib3JkZXIgc3R5bGVcbi8vICAgICAgICAgLy8gICAgIGJvcmRlcldpZHRoOiAwLCAvLyBidXR0b25zJyBib3JkZXIgd2lkdGggKDAgPT0gZGlzYWJsZWQpXG4vLyAgICAgICAgIC8vIH0sXG4vLyAgICAgICAgIC8vIHRvb2x0aXBzOiB7XG4vLyAgICAgICAgIC8vICAgICBlbmFibGVkOiB0cnVlLCAvLyBlbmFibGUgb3IgZGlzYWJsZSB0b29sdGlwcyBmb3IgYnV0dG9uc1xuLy8gICAgICAgICAvLyAgICAgYmdTdHlsZTogJyMwMDAwMDAnLCAvLyB0b29sdGlwIGJhY2tncm91bmQgc3R5bGVcbi8vICAgICAgICAgLy8gICAgIGJnQWxwaGE6IDAuNSwgLy8gdG9vbHRpcCBiYWNrZ3JvdW5kIHRyYW5zcGFyZW5jZVxuLy8gICAgICAgICAvLyAgICAgdGV4dFN0eWxlOiAnI2ZmZmZmZicsIC8vIHRvb2x0aXAncyB0ZXh0IHN0eWxlXG4vLyAgICAgICAgIC8vICAgICB0ZXh0QWxwaGE6IDAuOSwgLy8gdG9vbHRpcCdzIHRleHQgdHJhbnNwYXJlbmNlXG4vLyAgICAgICAgIC8vICAgICBwYWRkaW5nOiAxNSwgLy8gdG9vbHRpcCBwYWRkaW5nXG4vLyAgICAgICAgIC8vICAgICByYWRpdXM6IDIwLCAvLyB0b29sdGlwIGJvcmRlciByYWRpdXNcbi8vICAgICAgICAgLy8gfSxcbi8vICAgICAgICAgLy8gc2hvcnRlciBidXR0b24gY29uZmlndXJhdGlvbiBzdHlsZVxuLy8gICAgICAgICBuZXh0UGFnZUJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKFxuLy8gICAgICAgICAgICAgJ25hdmlnYXRlX25leHQnLFxuLy8gICAgICAgICAgICAgJ05leHQgcGFnZScsXG4vLyAgICAgICAgICAgICAwLFxuLy8gICAgICAgICAgICAgZmFsc2Vcbi8vICAgICAgICAgKSxcbi8vICAgICAgICAgYmVmb3JlUGFnZUJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKFxuLy8gICAgICAgICAgICAgJ25hdmlnYXRlX2JlZm9yZScsXG4vLyAgICAgICAgICAgICAnUHJldmlvdXMgcGFnZScsXG4vLyAgICAgICAgICAgICAxLFxuLy8gICAgICAgICAgICAgZmFsc2Vcbi8vICAgICAgICAgKSxcbi8vICAgICAgICAgem9vbU91dEJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKCd6b29tX291dCcsICdab29tIG91dCcsIDAsIGZhbHNlKSxcbi8vICAgICAgICAgem9vbUluQnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoJ3pvb21faW4nLCAnWm9vbSBpbicsIDEsIGZhbHNlKSxcbi8vICAgICAgICAgcm90YXRlTGVmdEJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKFxuLy8gICAgICAgICAgICAgJ3JvdGF0ZV9sZWZ0Jyxcbi8vICAgICAgICAgICAgICdSb3RhdGUgbGVmdCcsXG4vLyAgICAgICAgICAgICAyLFxuLy8gICAgICAgICAgICAgZmFsc2Vcbi8vICAgICAgICAgKSxcbi8vICAgICAgICAgcm90YXRlUmlnaHRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbi8vICAgICAgICAgICAgICdyb3RhdGVfcmlnaHQnLFxuLy8gICAgICAgICAgICAgJ1JvdGF0ZSByaWdodCcsXG4vLyAgICAgICAgICAgICAzLFxuLy8gICAgICAgICAgICAgZmFsc2Vcbi8vICAgICAgICAgKSxcbi8vICAgICAgICAgcmVzZXRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZygnYXV0b3JlbmV3JywgJ1Jlc2V0JywgNCwgZmFsc2UpLFxuLy8gICAgIH07XG4vLyB9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWltYWdlcy1maWxtc3RyaXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbWFnZXMtZmlsbXN0cmlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbWFnZXMtZmlsbXN0cmlwLmNvbXBvbmVudC5zY3NzJywgJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudGhlbWUuc2NzcyddLFxuICAgIC8vIGFuaW1hdGlvbnM6IFtzbGlkZUluQW5pbWF0aW9uXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgICAgcHJvdmlkZTogSU1BR0VWSUVXRVJfQ09ORklHLFxuICAgICAgICAvLyAgICAgLy8gdXNlVmFsdWU6IElNQUdFVklFV0VSX0NPTkZJR19ERUZBVUxULFxuICAgICAgICAvLyAgICAgdXNlRmFjdG9yeTogY3JlYXRlVmlld2VyQ29uZmlnLFxuICAgICAgICAvLyAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2VdLFxuICAgICAgICAvLyB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlc0ZpbG1zdHJpcENvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gQFZpZXdDaGlsZCgnbmd4Vmlld2VySW1hZ2UnKSBuZ3hWaWV3ZXJJbWFnZTogYW55OyAvLyBUT0RPOiBDaGVjayBpZiB3ZSBuZWVkIHRvIHVzZSB0aGlzPz9cbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG5cbiAgICBwcml2YXRlIF9yb3dTcGFuID0gMTtcbiAgICBASW5wdXQoKVxuICAgIHNldCByb3dTcGFuKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Jvd1NwYW4gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgcm93U3BhbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93U3BhbjtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xuXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICBASW5wdXQoKSB1aWQgPSAnMCc7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRUeXBlKHZhbHVlOiBQZXBMYXlvdXRUeXBlKSB7XG4gICAgICAgIHRoaXMuX2xheW91dFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VHlwZSgpOiBQZXBMYXlvdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFR5cGU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY3VyckluZGV4ID0gMDtcbiAgICBASW5wdXQoKSBzaG93VGh1bWJuYWlscyA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeUNvbnQnKSBnYWxsZXJ5Q29udDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5RGlhbG9nVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZ2FsbGVyeURpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlEaWFsb2dDb250JykgZ2FsbGVyeURpYWxvZ0NvbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25maWc6IEdhbGxlcnlDb25maWc7XG4gICAgaXRlbXM6IEdhbGxlcnlJdGVtW10gPSBudWxsO1xuICAgIGluRGlhbG9nID0gZmFsc2U7XG4gICAgc2hvd0Zvb3RlciA9IGZhbHNlO1xuICAgIHNob3dDbG9zZSA9IHRydWU7XG4gICAgXG4gICAgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuXG4gICAgZ2FsbGVyeVdpZHRoID0gMDtcbiAgICBnYWxsZXJ5SGVpZ2h0O1xuICAgIGlzVmVydGljYWwgPSBmYWxzZTtcbiAgICBnYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuICAgIGRpYWxvZ0dhbGxlcnlSZWY6IEdhbGxlcnlSZWY7XG4gICAgZ3VpZDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBlbmxhcmdlSW1hZ2VEaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IFBlcERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnYWxsZXJ5OiBHYWxsZXJ5LFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICAgICAgcHJpdmF0ZSBkYXRhOiBJUGVwSW1hZ2VzRmlsbXN0cmlwRGlhbG9nRGF0YVxuICAgICkge1xuICAgICAgICAvLyBJZiBkYXRhIGV4aXN0IGNvcHkgYWxsIGRhdGEgcHJvcGVydGllcyBpbnRvIHRoaXMuXG4gICAgICAgIGlmIChkaWFsb2dSZWYgJiYgZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5pbkRpYWxvZyA9IHRydWU7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgICAgICAgIG5hdjogZmFsc2UsIC8vIFNob3cgbmF2aWdhdGlvbiBidXR0b25zXG4gICAgICAgICAgICAvLyBuYXZJY29uOiBwZXBJY29uQXJyb3dSaWdodEFsdC5kYXRhLFxuICAgICAgICAgICAgLy8gbG9vcDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIHpvb21PdXQ6IDAsXG4gICAgICAgICAgICAvLyBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGRvdHNQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgICAvLyBjb3VudGVyUG9zaXRpb246ICd0b3AnLFxuICAgICAgICAgICAgLy8gdGh1bWI6IHRydWUsXG4gICAgICAgICAgICBjb3VudGVyOiBmYWxzZSwgLy8gU2hvdyBjb3VudGVyXG4gICAgICAgICAgICBnZXN0dXJlczogdHJ1ZSwgLy8gVXNlIHRvdWNoIGV2ZW50cyAocmVxdWlyZXMgaGFtbWVyLmpzKVxuICAgICAgICAgICAgLy8gYXV0b1BsYXk6IGZhbHNlLFxuICAgICAgICAgICAgLy8gdGh1bWJXaWR0aDogMTIwLFxuICAgICAgICAgICAgLy8gdGh1bWJIZWlnaHQ6IDkwLFxuICAgICAgICAgICAgaW1hZ2VTaXplOiAnY29udGFpbicsXG4gICAgICAgICAgICAvLyBwYW5TZW5zaXRpdml0eTogMjUsXG4gICAgICAgICAgICAvLyBkaXNhYmxlVGh1bWI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gcGxheWVySW50ZXJ2YWw6IDMwMDAsXG4gICAgICAgICAgICAvLyB0aHVtYk1vZGU6IFRodW1ibmFpbHNNb2RlLkZyZWUsXG4gICAgICAgICAgICAvLyB0aHVtYlBvc2l0aW9uOiBUaHVtYm5haWxzUG9zaXRpb24uQm90dG9tLFxuICAgICAgICAgICAgbG9hZGluZ1N0cmF0ZWd5OiBMb2FkaW5nU3RyYXRlZ3kuUHJlbG9hZCxcbiAgICAgICAgICAgIC8vIHNsaWRpbmdEaXJlY3Rpb246IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmd1aWQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZpZWxkSGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpZWxkSGVpZ2h0ID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5jYWxjdWxhdGVGaWVsZEhlaWdodChcbiAgICAgICAgICAgIHRoaXMubGF5b3V0VHlwZSxcbiAgICAgICAgICAgIHRoaXMucm93U3BhbixcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcEZpZWxkID0gbmV3IFBlcEltYWdlc0ZpZWxkKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICAvLyBwcml2YXRlIHJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgaXNMZWZ0OiBib29sZWFuKSB7XG4gICAgLy8gICAgIGxldCBpY29uTmFtZSA9IGlzTGVmdCA/IHBlcEljb25BcnJvd0xlZnRBbHQubmFtZSA6IHBlcEljb25BcnJvd1JpZ2h0QWx0Lm5hbWU7XG4gICAgLy8gICAgIGNvbnN0IHN2Z0RhdGEgPSB0aGlzLmljb25SZWdpc3RyeS5nZXRJY29uKGljb25OYW1lKTtcbiAgICAvLyAgICAgY29uc3Qgc3ZnSWNvbiA9IHRoaXMudXRpbGl0aWVzU2VydmljZS5nZXRTdmdFbGVtZW50RnJvbVN0cmluZyhcbiAgICAvLyAgICAgICAgIHRoaXMuZG9jdW1lbnQsXG4gICAgLy8gICAgICAgICBzdmdEYXRhXG4gICAgLy8gICAgICk7XG5cbiAgICAvLyAgICAgY29uc3QgZWxlbWVudE5hbWVUb0ZpbmQgPSBpc0xlZnQgPyAnZy1uYXYtcHJldicgOiAnZy1uYXYtbmV4dCdcblxuICAgIC8vICAgICBjb25zdCBlbGVtZW50QXJyID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke2VsZW1lbnROYW1lVG9GaW5kfWApO1xuICAgIC8vICAgICBpZiAoZWxlbWVudEFyciAmJiBlbGVtZW50QXJyLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgICAgICAgIGVsZW1lbnRBcnJbMF0uYXBwZW5kQ2hpbGQoc3ZnSWNvbik7XG4gICAgLy8gICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHN2Z0ljb24sICdzdmctaWNvbicpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbkRpYWxvZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9OT19TUEFDSU5HX0NMQVNTX05BTUVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgaW1nQXJyID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3BsaXQoJzsnKSA6IFtdO1xuICAgICAgICAgICAgLy8gYWRkIE5vIGltYWdlIGltYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2VzXG4gICAgICAgICAgICBpZiAoaW1nQXJyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpbWdBcnIucHVzaChub0ltYWdlU3JjKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGltZ0Fyci5tYXAoXG4gICAgICAgICAgICAgICAgKGltZykgPT4gbmV3IEltYWdlSXRlbSh7IHNyYzogaW1nLCB0aHVtYjogaW1nIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcuZG90cyA9IHRoaXMuY29uZmlnLm5hdiA9IHRoaXMuaXRlbXMubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5jb25maWcudGh1bWIgPVxuICAgICAgICAgICAgKHRoaXMua2V5ID09PSAnSXRlbUZpbG1zdHJpcEltYWdlcycgfHwgdGhpcy5zaG93VGh1bWJuYWlscykgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9XG4gICAgICAgICAgICB0aGlzLmtleSA9PT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5pdGVtcy5sZW5ndGggLyAyKSAtIDFcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VyckluZGV4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5ndWlkfS1nYWxsZXJ5YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdEdhbGxlcnlTdHlsZSh0aGlzLmdhbGxlcnlDb250LCB0aGlzLmdhbGxlcnlSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0dhbGxlcnlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nR2FsbGVyeVJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMubXlQaW5jaCkgeyB0aGlzLm15UGluY2guZGVzdHJveSgpOyB9XG4gICAgfVxuXG4gICAgaW5pdEdhbGxlcnlTdHlsZShnYWxsZXJ5Q29udGFpbmVyLCBnYWxsZXJ5UmVmKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2V0IHRodW1ibmFpbHMgcG9zaXRpb24gYW5kIHNsaWRpbmcgZGlyZWN0aW9uXG4gICAgICAgICAgICB0aGlzLnNldFRodW1ibmFpbERpbWVuc2lvbihnYWxsZXJ5Q29udGFpbmVyKTtcbiAgICAgICAgICAgIGdhbGxlcnlSZWYuc2V0Q29uZmlnKHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyTmF2SWNvbihnYWxsZXJ5Q29udGFpbmVyLCB0cnVlKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyTmF2SWNvbihnYWxsZXJ5Q29udGFpbmVyLCBmYWxzZSk7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VyckluZGV4O1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYuc2V0KGN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIGdhbGxlcnlSZWYuc2V0KGN1cnJlbnRJbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnYWxsZXJ5UmVmLmxvYWQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkVycm9yKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9JbWFnZVNyYyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0U3ZnQXNJbWFnZVNyYyhcbiAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vaW1nID0gbmV3IEltYWdlSXRlbSh7IHNyYzogbm9JbWFnZVNyYywgdGh1bWI6IG5vSW1hZ2VTcmMgfSk7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGUuaXRlbUluZGV4LCAxLCBub2ltZyk7XG4gICAgfVxuXG4gICAgZW5sYXJnZUltYWdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ0NvbmZpZyh7fSwgJ2lubGluZScpO1xuICAgICAgICBjb25maWcubWF4V2lkdGggPSAnNzV2dyc7XG4gICAgICAgIGNvbmZpZy5oZWlnaHQgPSAnOTV2aCc7XG5cbiAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeURpYWxvZ1RlbXBsYXRlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGN1cnJJbmRleDogdGhpcy5jdXJySW5kZXgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uZmlnXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZnRlckRpYWxvZ09wZW5lZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY3VycmVudEluZGV4IGluIGdhbGxlcnlSZWZcbiAgICAgICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuZ2FsbGVyeVJlZi5zZXQodGhpcy5jdXJySW5kZXgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBhZnRlckRpYWxvZ09wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmID0gdGhpcy5nYWxsZXJ5LnJlZihcbiAgICAgICAgICAgIGAke3RoaXMuZ3VpZH0tZGxnR2FsbGVyeWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pbml0R2FsbGVyeVN0eWxlKHRoaXMuZ2FsbGVyeURpYWxvZ0NvbnQsIHRoaXMuZGlhbG9nR2FsbGVyeVJlZik7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZShldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVubGFyZ2VJbWFnZURpYWxvZ1JlZj8uY2xvc2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGh1bWJuYWlsRGltZW5zaW9uKGdhbGxlcnlDb250YWluZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nYWxsZXJ5V2lkdGggPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIC8vIHRoaXMuZ2FsbGVyeUhlaWdodCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMjsgLy8gVE9ETyAtIFRBTEsgV0lUSCBUT01FUlxuICAgICAgICB0aGlzLmdhbGxlcnlIZWlnaHQgPSB0aGlzLmluRGlhbG9nXG4gICAgICAgICAgICA/IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMlxuICAgICAgICAgICAgOiBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAvLyB0aGlzLmdhbGxlcnlIZWlnaHQgPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzI7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuaXNWZXJ0aWNhbCA9IHRoaXMuZ2FsbGVyeVdpZHRoIDwgdGhpcy5nYWxsZXJ5SGVpZ2h0O1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgbGV0IHdpZHRoID1cbiAgICAgICAgICAgICAgICAodGhpcy5nYWxsZXJ5V2lkdGggLSAodGhpcy5pdGVtcy5sZW5ndGggLSAxKSAqIDE2KSAvXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB3aWR0aCA9IE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCAyNCksIDk2KTtcblxuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJIZWlnaHQgPSB3aWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iV2lkdGggPSB3aWR0aCArIDE2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGhlaWdodCA9XG4gICAgICAgICAgICAgICAgKHRoaXMuZ2FsbGVyeUhlaWdodCAtICh0aGlzLml0ZW1zLmxlbmd0aCAtIDEpICogMTYpIC9cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIGhlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KGhlaWdodCwgMjQpLCA5Nik7XG5cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iSGVpZ2h0ID0gaGVpZ2h0ICsgMTY7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYldpZHRoID0gaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcudGh1bWJQb3NpdGlvbiA9IHRoaXMuaXNWZXJ0aWNhbFxuICAgICAgICAgICAgPyBUaHVtYm5haWxzUG9zaXRpb24uQm90dG9tXG4gICAgICAgICAgICA6IHRoaXMubGF5b3V0U2VydmljZS5pc1J0bCgpXG4gICAgICAgICAgICAgICAgPyBUaHVtYm5haWxzUG9zaXRpb24uUmlnaHRcbiAgICAgICAgICAgICAgICA6IFRodW1ibmFpbHNQb3NpdGlvbi5MZWZ0O1xuICAgICAgICB0aGlzLmNvbmZpZy5zbGlkaW5nRGlyZWN0aW9uID1cbiAgICAgICAgICAgIHRoaXMua2V5ICE9PSAnSXRlbUZpbG1zdHJpcEltYWdlcydcbiAgICAgICAgICAgICAgICA/IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgIDogdGhpcy5pc1ZlcnRpY2FsXG4gICAgICAgICAgICAgICAgICAgID8gU2xpZGluZ0RpcmVjdGlvbi5Ib3Jpem9udGFsXG4gICAgICAgICAgICAgICAgICAgIDogU2xpZGluZ0RpcmVjdGlvbi5WZXJ0aWNhbDtcblxuICAgICAgICB0aGlzLmNvbmZpZy5pbWFnZVNpemUgPSAnY29udGFpbic7XG4gICAgfVxuXG4gICAgaW5kZXhDaGFuZ2UoaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VyckluZGV4ID0gaXRlbS5jdXJySW5kZXg7XG4gICAgICAgIC8vIGlmICh0aGlzLm5neFZpZXdlckltYWdlICYmIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPSAxO1xuICAgICAgICAvLyAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG5cbiAgICAvLyBzY3JvbGxGdW5jdGlvbihlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyAgICAgZS5kZWx0YVkgPiAwID8gdGhpcy56b29tT3V0KCkgOiB0aGlzLnpvb21JbigpO1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgLy8gem9vbUluKCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA8IDIpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgKj0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPSAyO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB6b29tT3V0KCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA+IHRoaXMubmd4Vmlld2VySW1hZ2UuY29uZmlnLnpvb21GYWN0b3IpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgLz0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gcHJpdmF0ZSB1cGRhdGVTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS50cmFuc2xhdGVYfXB4LFxuICAgIC8vICAgICAgICAgJHt0aGlzLm5neFZpZXdlckltYWdlLnRyYW5zbGF0ZVl9cHgpIHJvdGF0ZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uucm90YXRpb259ZGVnKSBzY2FsZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGV9KWA7XG5cbiAgICAvLyAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gfVxufVxuIl19
|
|
@@ -11,7 +11,7 @@ import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
|
11
11
|
import { PepIconModule, PepIconRegistry, pepIconSystemEdit, pepIconSystemClose, pepIconArrowRightAlt, pepIconArrowLeftAlt, } from '@pepperi-addons/ngx-lib/icon';
|
|
12
12
|
import { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
|
|
13
13
|
import { GalleryModule } from 'ng-gallery';
|
|
14
|
-
import { ImageViewerModule } from '@hallysonh/ngx-imageviewer';
|
|
14
|
+
// import { ImageViewerModule } from '@hallysonh/ngx-imageviewer';
|
|
15
15
|
import { PepImagesFilmstripComponent } from './images-filmstrip.component';
|
|
16
16
|
export class PepImagesFilmstripModule {
|
|
17
17
|
constructor(pepIconRegistry) {
|
|
@@ -36,7 +36,7 @@ PepImagesFilmstripModule.decorators = [
|
|
|
36
36
|
MatIconModule,
|
|
37
37
|
// External modules
|
|
38
38
|
GalleryModule,
|
|
39
|
-
ImageViewerModule,
|
|
39
|
+
// ImageViewerModule,
|
|
40
40
|
// ImageViewerModule.forRoot({
|
|
41
41
|
// btnClass: 'default', // The CSS class(es) that will apply to the buttons
|
|
42
42
|
// zoomFactor: 0.1, // The amount that the scale will be increased by
|
|
@@ -68,4 +68,4 @@ PepImagesFilmstripModule.decorators = [
|
|
|
68
68
|
PepImagesFilmstripModule.ctorParameters = () => [
|
|
69
69
|
{ type: PepIconRegistry }
|
|
70
70
|
];
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQ0gsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixtQkFBbUIsR0FDdEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxrRUFBa0U7QUFFbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUF5QzNFLE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQy9CLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtTQUN0QixDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUEvQ0osUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsb0JBQW9CO29CQUNwQixlQUFlO29CQUNmLGtCQUFrQjtvQkFDbEIsZUFBZTtvQkFDZixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYixxQkFBcUI7b0JBQ3JCLDhCQUE4QjtvQkFDOUIsK0VBQStFO29CQUMvRSx5RUFBeUU7b0JBQ3pFLDRIQUE0SDtvQkFDNUgsMEVBQTBFO29CQUMxRSx5SEFBeUg7b0JBQ3pILGtCQUFrQjtvQkFDbEIsZ0dBQWdHO29CQUNoRyxnQ0FBZ0M7b0JBQ2hDLGtDQUFrQztvQkFDbEMsMkNBQTJDO29CQUMzQyxnREFBZ0Q7b0JBQ2hELHFDQUFxQztvQkFDckMsb0NBQW9DO29CQUNwQyx5Q0FBeUM7b0JBQ3pDLFFBQVE7b0JBQ1IsTUFBTTtvQkFDTixrQkFBa0I7b0JBQ2xCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsZUFBZTtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQ3RDLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQzlDOzs7WUFuREcsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcEZpZWxkVGl0bGVNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9maWVsZC10aXRsZSc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uU3lzdGVtRWRpdCxcbiAgICBwZXBJY29uU3lzdGVtQ2xvc2UsXG4gICAgcGVwSWNvbkFycm93UmlnaHRBbHQsXG4gICAgcGVwSWNvbkFycm93TGVmdEFsdCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5pbXBvcnQgeyBQZXBEaWFsb2dNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuXG5pbXBvcnQgeyBHYWxsZXJ5TW9kdWxlIH0gZnJvbSAnbmctZ2FsbGVyeSc7XG4vLyBpbXBvcnQgeyBJbWFnZVZpZXdlck1vZHVsZSB9IGZyb20gJ0BoYWxseXNvbmgvbmd4LWltYWdldmlld2VyJztcblxuaW1wb3J0IHsgUGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZXMtZmlsbXN0cmlwLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIC8vIE1hdGVyaWFsIG1vZHVsZXMsXG4gICAgICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIC8vIEV4dGVybmFsIG1vZHVsZXNcbiAgICAgICAgR2FsbGVyeU1vZHVsZSxcbiAgICAgICAgLy8gSW1hZ2VWaWV3ZXJNb2R1bGUsXG4gICAgICAgIC8vIEltYWdlVmlld2VyTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAvLyAgICAgYnRuQ2xhc3M6ICdkZWZhdWx0JywgLy8gVGhlIENTUyBjbGFzcyhlcykgdGhhdCB3aWxsIGFwcGx5IHRvIHRoZSBidXR0b25zXG4gICAgICAgIC8vICAgICB6b29tRmFjdG9yOiAwLjEsIC8vIFRoZSBhbW91bnQgdGhhdCB0aGUgc2NhbGUgd2lsbCBiZSBpbmNyZWFzZWQgYnlcbiAgICAgICAgLy8gICAgIGNvbnRhaW5lckJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JywgLy8gVGhlIGNvbG9yIHRvIHVzZSBmb3IgdGhlIGJhY2tncm91bmQuIFRoaXMgY2FuIHByb3ZpZGVkIGluIGhleCwgb3IgcmdiKGEpLlxuICAgICAgICAvLyAgICAgd2hlZWxab29tOiB0cnVlLCAvLyBJZiB0cnVlLCB0aGUgbW91c2Ugd2hlZWwgY2FuIGJlIHVzZWQgdG8gem9vbSBpblxuICAgICAgICAvLyAgICAgYWxsb3dGdWxsc2NyZWVuOiBmYWxzZSwgLy8gSWYgdHJ1ZSwgdGhlIGZ1bGxzY3JlZW4gYnV0dG9uIHdpbGwgYmUgc2hvd24sIGFsbG93aW5nIHRoZSB1c2VyIHRvIGVudHIgZnVsbHNjcmVlbiBtb2RlXG4gICAgICAgIC8vICAgICBidG5JY29uczoge1xuICAgICAgICAvLyAgICAgICAgIC8vIFRoZSBpY29uIGNsYXNzZXMgdGhhdCB3aWxsIGFwcGx5IHRvIHRoZSBidXR0b25zLiBCeSBkZWZhdWx0LCBmb250LWF3ZXNvbWUgaXMgdXNlZC5cbiAgICAgICAgLy8gICAgICAgICB6b29tSW46ICdmYSBmYS1wbHVzJyxcbiAgICAgICAgLy8gICAgICAgICB6b29tT3V0OiAnZmEgZmEtbWludXMnLFxuICAgICAgICAvLyAgICAgICAgIHJvdGF0ZUNsb2Nrd2lzZTogJ2ZhIGZhLXJlcGVhdCcsXG4gICAgICAgIC8vICAgICAgICAgcm90YXRlQ291bnRlckNsb2Nrd2lzZTogJ2ZhIGZhLXVuZG8nLFxuICAgICAgICAvLyAgICAgICAgIG5leHQ6ICdmYSBmYS1hcnJvdy1yaWdodCcsXG4gICAgICAgIC8vICAgICAgICAgcHJldjogJ2ZhIGZhLWFycm93LWxlZnQnLFxuICAgICAgICAvLyAgICAgICAgIGZ1bGxzY3JlZW46ICdmYSBmYS1hcnJvd3MtYWx0J1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KSxcbiAgICAgICAgLy8gbmd4LWxpYiBtb2R1bGVzXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBJY29uTW9kdWxlLFxuICAgICAgICBQZXBGaWVsZFRpdGxlTW9kdWxlLFxuICAgICAgICBQZXBEaWFsb2dNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbUGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBJbWFnZXNGaWxtc3RyaXBNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbXG4gICAgICAgICAgICBwZXBJY29uU3lzdGVtRWRpdCxcbiAgICAgICAgICAgIHBlcEljb25TeXN0ZW1DbG9zZSxcbiAgICAgICAgICAgIHBlcEljb25BcnJvd1JpZ2h0QWx0LFxuICAgICAgICAgICAgcGVwSWNvbkFycm93TGVmdEFsdCxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
|
|
@@ -11,46 +11,66 @@ import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
|
11
11
|
import { pepIconNoImage2, PepIconRegistry, pepIconSystemEdit, pepIconSystemClose, pepIconArrowRightAlt, pepIconArrowLeftAlt, PepIconModule } from '@pepperi-addons/ngx-lib/icon';
|
|
12
12
|
import { PepDialogService, PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
|
|
13
13
|
import { LoadingStrategy, ImageItem, ThumbnailsPosition, SlidingDirection, Gallery, GalleryModule } from 'ng-gallery';
|
|
14
|
-
import { createButtonConfig, IMAGEVIEWER_CONFIG, ImageViewerModule } from '@hallysonh/ngx-imageviewer';
|
|
15
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
16
14
|
import 'hammerjs';
|
|
17
15
|
|
|
18
|
-
function createViewerConfig(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
16
|
+
// export function createViewerConfig(
|
|
17
|
+
// translate: TranslateService
|
|
18
|
+
// ): ImageViewerConfig {
|
|
19
|
+
// return {
|
|
20
|
+
// // width: 850,
|
|
21
|
+
// // height: 150,
|
|
22
|
+
// bgStyle: '#FFF', // component background style
|
|
23
|
+
// // scaleStep: 0.1, // zoom scale step (using the zoom in/out buttons)
|
|
24
|
+
// // rotateStepper: false, // touch rotate should rotate only 90 to 90 degrees
|
|
25
|
+
// loadingMessage: translate.instant('MESSAGES.INFO_LOADING_FILE'), // 'Loading...',
|
|
26
|
+
// // buttonStyle: {
|
|
27
|
+
// // iconFontFamily: 'Material Icons', // font used to render the button icons
|
|
28
|
+
// // alpha: 0.5, // buttons' transparence value
|
|
29
|
+
// // hoverAlpha: 0.7, // buttons' transparence value when mouse is over
|
|
30
|
+
// // bgStyle: '#000000', // buttons' background style
|
|
31
|
+
// // iconStyle: '#ffffff', // buttons' icon colors
|
|
32
|
+
// // borderStyle: '#000000', // buttons' border style
|
|
33
|
+
// // borderWidth: 0, // buttons' border width (0 == disabled)
|
|
34
|
+
// // },
|
|
35
|
+
// // tooltips: {
|
|
36
|
+
// // enabled: true, // enable or disable tooltips for buttons
|
|
37
|
+
// // bgStyle: '#000000', // tooltip background style
|
|
38
|
+
// // bgAlpha: 0.5, // tooltip background transparence
|
|
39
|
+
// // textStyle: '#ffffff', // tooltip's text style
|
|
40
|
+
// // textAlpha: 0.9, // tooltip's text transparence
|
|
41
|
+
// // padding: 15, // tooltip padding
|
|
42
|
+
// // radius: 20, // tooltip border radius
|
|
43
|
+
// // },
|
|
44
|
+
// // shorter button configuration style
|
|
45
|
+
// nextPageButton: createButtonConfig(
|
|
46
|
+
// 'navigate_next',
|
|
47
|
+
// 'Next page',
|
|
48
|
+
// 0,
|
|
49
|
+
// false
|
|
50
|
+
// ),
|
|
51
|
+
// beforePageButton: createButtonConfig(
|
|
52
|
+
// 'navigate_before',
|
|
53
|
+
// 'Previous page',
|
|
54
|
+
// 1,
|
|
55
|
+
// false
|
|
56
|
+
// ),
|
|
57
|
+
// zoomOutButton: createButtonConfig('zoom_out', 'Zoom out', 0, false),
|
|
58
|
+
// zoomInButton: createButtonConfig('zoom_in', 'Zoom in', 1, false),
|
|
59
|
+
// rotateLeftButton: createButtonConfig(
|
|
60
|
+
// 'rotate_left',
|
|
61
|
+
// 'Rotate left',
|
|
62
|
+
// 2,
|
|
63
|
+
// false
|
|
64
|
+
// ),
|
|
65
|
+
// rotateRightButton: createButtonConfig(
|
|
66
|
+
// 'rotate_right',
|
|
67
|
+
// 'Rotate right',
|
|
68
|
+
// 3,
|
|
69
|
+
// false
|
|
70
|
+
// ),
|
|
71
|
+
// resetButton: createButtonConfig('autorenew', 'Reset', 4, false),
|
|
72
|
+
// };
|
|
73
|
+
// }
|
|
54
74
|
class PepImagesFilmstripComponent {
|
|
55
75
|
constructor(customizationService, dialogService, layoutService, fileService, iconRegistry, utilitiesService, gallery, renderer, element, cd, document, dialogRef, data) {
|
|
56
76
|
this.customizationService = customizationService;
|
|
@@ -324,15 +344,15 @@ class PepImagesFilmstripComponent {
|
|
|
324
344
|
PepImagesFilmstripComponent.decorators = [
|
|
325
345
|
{ type: Component, args: [{
|
|
326
346
|
selector: 'pep-images-filmstrip',
|
|
327
|
-
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template>",
|
|
347
|
+
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #formGallery id=\"{{guid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\" sizeType=\"sm\"\n (click)=\"formGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"showFooter\" [showClose]=\"showClose\" (close)=\"closeDialog($event)\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_left_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.prev()\" class=\"gallery-arrow start-arrow\">\n </pep-button>\n <gallery #dialogGallery id=\"{{guid}}-dlgGallery\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n <pep-button *ngIf=\"items?.length > 1\" iconName=\"arrow_right_alt\" styleType=\"weak-invert\"\n (click)=\"dialogGallery.next()\" class=\"gallery-arrow end-arrow\">\n </pep-button>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<!-- <ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template> -->",
|
|
328
348
|
// animations: [slideInAnimation],
|
|
329
349
|
providers: [
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
350
|
+
// {
|
|
351
|
+
// provide: IMAGEVIEWER_CONFIG,
|
|
352
|
+
// // useValue: IMAGEVIEWER_CONFIG_DEFAULT,
|
|
353
|
+
// useFactory: createViewerConfig,
|
|
354
|
+
// deps: [TranslateService],
|
|
355
|
+
// },
|
|
336
356
|
],
|
|
337
357
|
styles: [":host{width:100%;height:inherit;display:block}:host>*{align-self:center}.gallery-dialog{height:inherit}.images-filmstrip-container{height:100%}.images-filmstrip-container .img-wrapper{height:100%;position:relative}.images-filmstrip-container .gallery-arrow{padding:.5rem;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.images-filmstrip-container .gallery-arrow.start-arrow{left:0}.images-filmstrip-container .gallery-arrow.end-arrow{right:0}gallery{direction:ltr;height:100%;min-height:100%}.gallery-dialog-content{position:relative}.gallery-dialog-content .gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.gallery-dialog-content .gallery-arrow.start-arrow{left:0}.gallery-dialog-content .gallery-arrow.end-arrow{right:0}.gallery-dialog-content gallery{min-width:65vw}.gallery-dialog-content ::ng-deep gallery-item gallery-image .g-image-item{background-size:content!important}.gallery-dialog-content ::ng-deep gallery-item .g-item-template ngx-imageviewer canvas{max-width:100%!important;max-height:100%!important}::ng-deep gallery-thumbs{margin:0 1rem 0 .5rem;margin:0 var(--pep-spacing-lg,1rem) 0 var(--pep-spacing-sm,.5rem)}::ng-deep gallery-thumbs gallery-thumb{padding:0!important;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);margin:.5rem 0;margin:var(--pep-spacing-sm,.5rem) 0}::ng-deep gallery-thumbs gallery-thumb .g-image-item{background-size:cover!important}::ng-deep gallery-item gallery-image .g-image-item{border-radius:.5rem;border-radius:var(--pep-border-radius-lg,.5rem)}::ng-deep gallery-item:hover{cursor:pointer}::ng-deep gallery-dots{position:absolute!important;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem)}::ng-deep gallery-dots.pep-button,::ng-deep gallery-dots.pepperi-button{display:flex!important}::ng-deep .img-container{display:flex;align-items:center}::ng-deep gallery-nav{display:none}.vertical-gallery ::ng-deep gallery-thumbs{margin:1rem 0 .5rem;margin:var(--pep-spacing-lg,1rem) 0 var(--pep-spacing-sm,.5rem) 0}.vertical-gallery ::ng-deep gallery-thumbs gallery-thumb{margin:0 .5rem;margin:0 var(--pep-spacing-sm,.5rem)}", "gallery{background-color:transparent}::ng-deep gallery-thumb{box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32)}::ng-deep .g-nav-next,::ng-deep .g-nav-prev{background:hsla(0,0%,100%,.5);background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.5)}::ng-deep .g-nav-next:hover,::ng-deep .g-nav-prev:hover{background:hsla(0,0%,100%,.5);background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.5);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);cursor:pointer}::ng-deep .g-nav-next:focus,::ng-deep .g-nav-prev:focus{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}::ng-deep .g-nav-next:active,::ng-deep .g-nav-prev:active{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%));box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16)}::ng-deep .g-nav-next:disabled,::ng-deep .g-nav-prev:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:hsla(0,0%,100%,.08)!important;background:hsla(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%),.08)!important}::ng-deep .g-nav-next:disabled:after,::ng-deep .g-nav-prev:disabled:after{border:unset}::ng-deep .g-nav-next:disabled .svg-icon,::ng-deep .g-nav-prev:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .g-nav-next:disabled .svg-icon.stroke,::ng-deep .g-nav-prev:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep gallery-dots{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}"]
|
|
338
358
|
},] }
|
|
@@ -393,7 +413,7 @@ PepImagesFilmstripModule.decorators = [
|
|
|
393
413
|
MatIconModule,
|
|
394
414
|
// External modules
|
|
395
415
|
GalleryModule,
|
|
396
|
-
ImageViewerModule,
|
|
416
|
+
// ImageViewerModule,
|
|
397
417
|
// ImageViewerModule.forRoot({
|
|
398
418
|
// btnClass: 'default', // The CSS class(es) that will apply to the buttons
|
|
399
419
|
// zoomFactor: 0.1, // The amount that the scale will be increased by
|
|
@@ -434,5 +454,5 @@ PepImagesFilmstripModule.ctorParameters = () => [
|
|
|
434
454
|
* Generated bundle index. Do not edit.
|
|
435
455
|
*/
|
|
436
456
|
|
|
437
|
-
export { PepImagesFilmstripComponent, PepImagesFilmstripModule
|
|
457
|
+
export { PepImagesFilmstripComponent, PepImagesFilmstripModule };
|
|
438
458
|
//# sourceMappingURL=pepperi-addons-ngx-lib-images-filmstrip.js.map
|