UNPKG

@rybos/ngx-gallery

Version:

A simple responsive native gallery component for Angular 15.

96 lines 29.9 kB
import { NgxGalleryAction } from './ngx-gallery-action'; import { NgxGalleryOrder } from './ngx-gallery-order'; import { NgxGalleryLayout } from './ngx-gallery-layout'; import { NgxGalleryAnimation } from './ngx-gallery-animation'; import { NgxGalleryImageSize } from './ngx-gallery-image-size'; export class NgxGalleryOptions { constructor(obj) { const preventDefaults = obj.breakpoint === undefined ? false : true; function use(source, defaultValue) { return obj && (source !== undefined || preventDefaults) ? source : defaultValue; } this.breakpoint = use(obj.breakpoint, undefined); this.width = use(obj.width, '500px'); this.height = use(obj.height, '400px'); this.fullWidth = use(obj.fullWidth, false); this.layout = use(obj.layout, NgxGalleryLayout.ThumbnailsBottom); this.startIndex = use(obj.startIndex, 0); this.linkTarget = use(obj.linkTarget, '_blank'); this.lazyLoading = use(obj.lazyLoading, true); this.image = use(obj.image, true); this.imagePercent = use(obj.imagePercent, 75); this.imageArrows = use(obj.imageArrows, true); this.imageArrowsAutoHide = use(obj.imageArrowsAutoHide, false); this.imageSwipe = use(obj.imageSwipe, false); this.imageAnimation = use(obj.imageAnimation, NgxGalleryAnimation.Fade); this.imageSize = use(obj.imageSize, NgxGalleryImageSize.Cover); this.imageAutoPlay = use(obj.imageAutoPlay, false); this.imageAutoPlayInterval = use(obj.imageAutoPlayInterval, 2000); this.imageAutoPlayPauseOnHover = use(obj.imageAutoPlayPauseOnHover, false); this.imageInfinityMove = use(obj.imageInfinityMove, false); if (obj && obj.imageActions && obj.imageActions.length) { obj.imageActions = obj.imageActions.map(action => new NgxGalleryAction(action)); } this.imageActions = use(obj.imageActions, []); this.imageDescription = use(obj.imageDescription, false); this.imageBullets = use(obj.imageBullets, false); this.thumbnails = use(obj.thumbnails, true); this.thumbnailsColumns = use(obj.thumbnailsColumns, 4); this.thumbnailsRows = use(obj.thumbnailsRows, 1); this.thumbnailsPercent = use(obj.thumbnailsPercent, 25); this.thumbnailsMargin = use(obj.thumbnailsMargin, 10); this.thumbnailsArrows = use(obj.thumbnailsArrows, true); this.thumbnailsArrowsAutoHide = use(obj.thumbnailsArrowsAutoHide, false); this.thumbnailsSwipe = use(obj.thumbnailsSwipe, false); this.thumbnailsMoveSize = use(obj.thumbnailsMoveSize, 1); this.thumbnailsOrder = use(obj.thumbnailsOrder, NgxGalleryOrder.Column); this.thumbnailsRemainingCount = use(obj.thumbnailsRemainingCount, false); this.thumbnailsAsLinks = use(obj.thumbnailsAsLinks, false); this.thumbnailsAutoHide = use(obj.thumbnailsAutoHide, false); this.thumbnailMargin = use(obj.thumbnailMargin, 10); this.thumbnailSize = use(obj.thumbnailSize, NgxGalleryImageSize.Cover); if (obj && obj.thumbnailActions && obj.thumbnailActions.length) { obj.thumbnailActions = obj.thumbnailActions.map(action => new NgxGalleryAction(action)); } this.thumbnailActions = use(obj.thumbnailActions, []); this.thumbnailClasses = use(obj.thumbnailClasses, []); this.preview = use(obj.preview, true); this.previewDescription = use(obj.previewDescription, true); this.previewArrows = use(obj.previewArrows, true); this.previewArrowsAutoHide = use(obj.previewArrowsAutoHide, false); this.previewSwipe = use(obj.previewSwipe, false); this.previewFullscreen = use(obj.previewFullscreen, false); this.previewForceFullscreen = use(obj.previewForceFullscreen, false); this.previewCloseOnClick = use(obj.previewCloseOnClick, false); this.previewCloseOnEsc = use(obj.previewCloseOnEsc, false); this.previewKeyboardNavigation = use(obj.previewKeyboardNavigation, false); this.previewAnimation = use(obj.previewAnimation, true); this.previewAutoPlay = use(obj.previewAutoPlay, false); this.previewAutoPlayInterval = use(obj.previewAutoPlayInterval, 2000); this.previewAutoPlayPauseOnHover = use(obj.previewAutoPlayPauseOnHover, false); this.previewInfinityMove = use(obj.previewInfinityMove, false); this.previewZoom = use(obj.previewZoom, false); this.previewZoomStep = use(obj.previewZoomStep, 0.1); this.previewZoomMax = use(obj.previewZoomMax, 2); this.previewZoomMin = use(obj.previewZoomMin, 0.5); this.previewRotate = use(obj.previewRotate, false); this.previewDownload = use(obj.previewDownload, false); this.previewCustom = use(obj.previewCustom, undefined); this.previewBullets = use(obj.previewBullets, false); this.arrowPrevIcon = use(obj.arrowPrevIcon, 'fa fa-arrow-circle-left'); this.arrowNextIcon = use(obj.arrowNextIcon, 'fa fa-arrow-circle-right'); this.closeIcon = use(obj.closeIcon, 'fa fa-times-circle'); this.fullscreenIcon = use(obj.fullscreenIcon, 'fa fa-arrows-alt'); this.spinnerIcon = use(obj.spinnerIcon, 'fa fa-spinner fa-pulse fa-3x fa-fw'); this.zoomInIcon = use(obj.zoomInIcon, 'fa fa-search-plus'); this.zoomOutIcon = use(obj.zoomOutIcon, 'fa fa-search-minus'); this.rotateLeftIcon = use(obj.rotateLeftIcon, 'fa fa-undo'); this.rotateRightIcon = use(obj.rotateRightIcon, 'fa fa-repeat'); this.downloadIcon = use(obj.downloadIcon, 'fa fa-arrow-circle-down'); if (obj && obj.actions && obj.actions.length) { obj.actions = obj.actions.map(action => new NgxGalleryAction(action)); } this.actions = use(obj.actions, []); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWdhbGxlcnktb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbGxlcnkvc3JjL2xpYi9uZ3gtZ2FsbGVyeS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQThFN0QsTUFBTSxPQUFPLGlCQUFpQjtJQTJFMUIsWUFBWSxHQUF1QjtRQUUvQixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFcEUsU0FBUyxHQUFHLENBQUksTUFBUyxFQUFFLFlBQWU7WUFDdEMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNwRixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxH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Q0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFckUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMxQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05neEdhbGxlcnlBY3Rpb259IGZyb20gJy4vbmd4LWdhbGxlcnktYWN0aW9uJztcclxuaW1wb3J0IHtOZ3hHYWxsZXJ5T3JkZXJ9IGZyb20gJy4vbmd4LWdhbGxlcnktb3JkZXInO1xyXG5pbXBvcnQge05neEdhbGxlcnlMYXlvdXR9IGZyb20gJy4vbmd4LWdhbGxlcnktbGF5b3V0JztcclxuaW1wb3J0IHtOZ3hHYWxsZXJ5QW5pbWF0aW9ufSBmcm9tICcuL25neC1nYWxsZXJ5LWFuaW1hdGlvbic7XHJcbmltcG9ydCB7Tmd4R2FsbGVyeUltYWdlU2l6ZX0gZnJvbSAnLi9uZ3gtZ2FsbGVyeS1pbWFnZS1zaXplJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU5neEdhbGxlcnlPcHRpb25zIHtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gICAgYnJlYWtwb2ludD86IG51bWJlcjtcclxuICAgIGZ1bGxXaWR0aD86IGJvb2xlYW47XHJcbiAgICBsYXlvdXQ/OiBzdHJpbmc7XHJcbiAgICBzdGFydEluZGV4PzogbnVtYmVyO1xyXG4gICAgbGlua1RhcmdldD86IHN0cmluZztcclxuICAgIGxhenlMb2FkaW5nPzogYm9vbGVhbjtcclxuICAgIGltYWdlPzogYm9vbGVhbjtcclxuICAgIGltYWdlUGVyY2VudD86IG51bWJlcjtcclxuICAgIGltYWdlQXJyb3dzPzogYm9vbGVhbjtcclxuICAgIGltYWdlQXJyb3dzQXV0b0hpZGU/OiBib29sZWFuO1xyXG4gICAgaW1hZ2VTd2lwZT86IGJvb2xlYW47XHJcbiAgICBpbWFnZUFuaW1hdGlvbj86IHN0cmluZztcclxuICAgIGltYWdlU2l6ZT86IHN0cmluZztcclxuICAgIGltYWdlQXV0b1BsYXk/OiBib29sZWFuO1xyXG4gICAgaW1hZ2VBdXRvUGxheUludGVydmFsPzogbnVtYmVyO1xyXG4gICAgaW1hZ2VBdXRvUGxheVBhdXNlT25Ib3Zlcj86IGJvb2xlYW47XHJcbiAgICBpbWFnZUluZmluaXR5TW92ZT86IGJvb2xlYW47XHJcbiAgICBpbWFnZUFjdGlvbnM/OiBOZ3hHYWxsZXJ5QWN0aW9uW107XHJcbiAgICBpbWFnZURlc2NyaXB0aW9uPzogYm9vbGVhbjtcclxuICAgIGltYWdlQnVsbGV0cz86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzPzogYm9vbGVhbjtcclxuICAgIHRodW1ibmFpbHNDb2x1bW5zPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsc1Jvd3M/OiBudW1iZXI7XHJcbiAgICB0aHVtYm5haWxzUGVyY2VudD86IG51bWJlcjtcclxuICAgIHRodW1ibmFpbHNNYXJnaW4/OiBudW1iZXI7XHJcbiAgICB0aHVtYm5haWxzQXJyb3dzPzogYm9vbGVhbjtcclxuICAgIHRodW1ibmFpbHNBcnJvd3NBdXRvSGlkZT86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzU3dpcGU/OiBib29sZWFuO1xyXG4gICAgdGh1bWJuYWlsc01vdmVTaXplPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsc09yZGVyPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsc1JlbWFpbmluZ0NvdW50PzogYm9vbGVhbjtcclxuICAgIHRodW1ibmFpbHNBc0xpbmtzPzogYm9vbGVhbjtcclxuICAgIHRodW1ibmFpbHNBdXRvSGlkZT86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxNYXJnaW4/OiBudW1iZXI7XHJcbiAgICB0aHVtYm5haWxTaXplPzogc3RyaW5nO1xyXG4gICAgdGh1bWJuYWlsQWN0aW9ucz86IE5neEdhbGxlcnlBY3Rpb25bXTtcclxuICAgIHRodW1ibmFpbENsYXNzZXM/OiBzdHJpbmdbXTtcclxuICAgIHByZXZpZXc/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0Rlc2NyaXB0aW9uPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdBcnJvd3M/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0Fycm93c0F1dG9IaWRlPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdTd2lwZT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3RnVsbHNjcmVlbj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3Rm9yY2VGdWxsc2NyZWVuPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdDbG9zZU9uQ2xpY2s/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0Nsb3NlT25Fc2M/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0tleWJvYXJkTmF2aWdhdGlvbj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3QW5pbWF0aW9uPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdBdXRvUGxheT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3QXV0b1BsYXlJbnRlcnZhbD86IG51bWJlcjtcclxuICAgIHByZXZpZXdBdXRvUGxheVBhdXNlT25Ib3Zlcj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3SW5maW5pdHlNb3ZlPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdab29tPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdab29tU3RlcD86IG51bWJlcjtcclxuICAgIHByZXZpZXdab29tTWF4PzogbnVtYmVyO1xyXG4gICAgcHJldmlld1pvb21NaW4/OiBudW1iZXI7XHJcbiAgICBwcmV2aWV3Um90YXRlPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdEb3dubG9hZD86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3Q3VzdG9tPzogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XHJcbiAgICBwcmV2aWV3QnVsbGV0cz86IGJvb2xlYW47XHJcbiAgICBhcnJvd1ByZXZJY29uPzogc3RyaW5nO1xyXG4gICAgYXJyb3dOZXh0SWNvbj86IHN0cmluZztcclxuICAgIGNsb3NlSWNvbj86IHN0cmluZztcclxuICAgIGZ1bGxzY3JlZW5JY29uPzogc3RyaW5nO1xyXG4gICAgc3Bpbm5lckljb24/OiBzdHJpbmc7XHJcbiAgICB6b29tSW5JY29uPzogc3RyaW5nO1xyXG4gICAgem9vbU91dEljb24/OiBzdHJpbmc7XHJcbiAgICByb3RhdGVMZWZ0SWNvbj86IHN0cmluZztcclxuICAgIHJvdGF0ZVJpZ2h0SWNvbj86IHN0cmluZztcclxuICAgIGRvd25sb2FkSWNvbj86IHN0cmluZztcclxuICAgIGFjdGlvbnM/OiBOZ3hHYWxsZXJ5QWN0aW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hHYWxsZXJ5T3B0aW9ucyBpbXBsZW1lbnRzIElOZ3hHYWxsZXJ5T3B0aW9ucyB7XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIGhlaWdodD86IHN0cmluZztcclxuICAgIGJyZWFrcG9pbnQ/OiBudW1iZXI7XHJcbiAgICBmdWxsV2lkdGg/OiBib29sZWFuO1xyXG4gICAgbGF5b3V0Pzogc3RyaW5nO1xyXG4gICAgc3RhcnRJbmRleD86IG51bWJlcjtcclxuICAgIGxpbmtUYXJnZXQ/OiBzdHJpbmc7XHJcbiAgICBsYXp5TG9hZGluZz86IGJvb2xlYW47XHJcbiAgICBpbWFnZT86IGJvb2xlYW47XHJcbiAgICBpbWFnZVBlcmNlbnQ/OiBudW1iZXI7XHJcbiAgICBpbWFnZUFycm93cz86IGJvb2xlYW47XHJcbiAgICBpbWFnZUFycm93c0F1dG9IaWRlPzogYm9vbGVhbjtcclxuICAgIGltYWdlU3dpcGU/OiBib29sZWFuO1xyXG4gICAgaW1hZ2VBbmltYXRpb24/OiBzdHJpbmc7XHJcbiAgICBpbWFnZVNpemU/OiBzdHJpbmc7XHJcbiAgICBpbWFnZUF1dG9QbGF5PzogYm9vbGVhbjtcclxuICAgIGltYWdlQXV0b1BsYXlJbnRlcnZhbD86IG51bWJlcjtcclxuICAgIGltYWdlQXV0b1BsYXlQYXVzZU9uSG92ZXI/OiBib29sZWFuO1xyXG4gICAgaW1hZ2VJbmZpbml0eU1vdmU/OiBib29sZWFuO1xyXG4gICAgaW1hZ2VBY3Rpb25zPzogTmd4R2FsbGVyeUFjdGlvbltdO1xyXG4gICAgaW1hZ2VEZXNjcmlwdGlvbj86IGJvb2xlYW47XHJcbiAgICBpbWFnZUJ1bGxldHM/OiBib29sZWFuO1xyXG4gICAgdGh1bWJuYWlscz86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzQ29sdW1ucz86IG51bWJlcjtcclxuICAgIHRodW1ibmFpbHNSb3dzPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsc1BlcmNlbnQ/OiBudW1iZXI7XHJcbiAgICB0aHVtYm5haWxzTWFyZ2luPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsc0Fycm93cz86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzQXJyb3dzQXV0b0hpZGU/OiBib29sZWFuO1xyXG4gICAgdGh1bWJuYWlsc1N3aXBlPzogYm9vbGVhbjtcclxuICAgIHRodW1ibmFpbHNNb3ZlU2l6ZT86IG51bWJlcjtcclxuICAgIHRodW1ibmFpbHNPcmRlcj86IG51bWJlcjtcclxuICAgIHRodW1ibmFpbHNSZW1haW5pbmdDb3VudD86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzQXNMaW5rcz86IGJvb2xlYW47XHJcbiAgICB0aHVtYm5haWxzQXV0b0hpZGU/OiBib29sZWFuO1xyXG4gICAgdGh1bWJuYWlsTWFyZ2luPzogbnVtYmVyO1xyXG4gICAgdGh1bWJuYWlsU2l6ZT86IHN0cmluZztcclxuICAgIHRodW1ibmFpbEFjdGlvbnM/OiBOZ3hHYWxsZXJ5QWN0aW9uW107XHJcbiAgICB0aHVtYm5haWxDbGFzc2VzPzogc3RyaW5nW107XHJcbiAgICBwcmV2aWV3PzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdEZXNjcmlwdGlvbj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3QXJyb3dzPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdBcnJvd3NBdXRvSGlkZT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3U3dpcGU/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0Z1bGxzY3JlZW4/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0ZvcmNlRnVsbHNjcmVlbj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3Q2xvc2VPbkNsaWNrPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdDbG9zZU9uRXNjPzogYm9vbGVhbjtcclxuICAgIHByZXZpZXdLZXlib2FyZE5hdmlnYXRpb24/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0FuaW1hdGlvbj86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3QXV0b1BsYXk/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0F1dG9QbGF5SW50ZXJ2YWw/OiBudW1iZXI7XHJcbiAgICBwcmV2aWV3QXV0b1BsYXlQYXVzZU9uSG92ZXI/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0luZmluaXR5TW92ZT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3Wm9vbT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3Wm9vbVN0ZXA/OiBudW1iZXI7XHJcbiAgICBwcmV2aWV3Wm9vbU1heD86IG51bWJlcjtcclxuICAgIHByZXZpZXdab29tTWluPzogbnVtYmVyO1xyXG4gICAgcHJldmlld1JvdGF0ZT86IGJvb2xlYW47XHJcbiAgICBwcmV2aWV3RG93bmxvYWQ/OiBib29sZWFuO1xyXG4gICAgcHJldmlld0N1c3RvbT86IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xyXG4gICAgcHJldmlld0J1bGxldHM/OiBib29sZWFuO1xyXG4gICAgYXJyb3dQcmV2SWNvbj86IHN0cmluZztcclxuICAgIGFycm93TmV4dEljb24/OiBzdHJpbmc7XHJcbiAgICBjbG9zZUljb24/OiBzdHJpbmc7XHJcbiAgICBmdWxsc2NyZWVuSWNvbj86IHN0cmluZztcclxuICAgIHNwaW5uZXJJY29uPzogc3RyaW5nO1xyXG4gICAgem9vbUluSWNvbj86IHN0cmluZztcclxuICAgIHpvb21PdXRJY29uPzogc3RyaW5nO1xyXG4gICAgcm90YXRlTGVmdEljb24/OiBzdHJpbmc7XHJcbiAgICByb3RhdGVSaWdodEljb24/OiBzdHJpbmc7XHJcbiAgICBkb3dubG9hZEljb24/OiBzdHJpbmc7XHJcbiAgICBhY3Rpb25zPzogTmd4R2FsbGVyeUFjdGlvbltdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9iajogSU5neEdhbGxlcnlPcHRpb25zKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IHByZXZlbnREZWZhdWx0cyA9IG9iai5icmVha3BvaW50ID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IHRydWU7XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIHVzZTxUPihzb3VyY2U6IFQsIGRlZmF1bHRWYWx1ZTogVCk6IFQge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqICYmIChzb3VyY2UgIT09IHVuZGVmaW5lZCB8fCBwcmV2ZW50RGVmYXVsdHMpID8gc291cmNlIDogZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5icmVha3BvaW50ID0gdXNlKG9iai5icmVha3BvaW50LCB1bmRlZmluZWQpO1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB1c2Uob2JqLndpZHRoLCAnNTAwcHgnKTtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IHVzZShvYmouaGVpZ2h0LCAnNDAwcHgnKTtcclxuICAgICAgICB0aGlzLmZ1bGxXaWR0aCA9IHVzZShvYmouZnVsbFdpZHRoLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQgPSB1c2Uob2JqLmxheW91dCwgTmd4R2FsbGVyeUxheW91dC5UaHVtYm5haWxzQm90dG9tKTtcclxuICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSB1c2Uob2JqLnN0YXJ0SW5kZXgsIDApO1xyXG4gICAgICAgIHRoaXMubGlua1RhcmdldCA9IHVzZShvYmoubGlua1RhcmdldCwgJ19ibGFuaycpO1xyXG4gICAgICAgIHRoaXMubGF6eUxvYWRpbmcgPSB1c2Uob2JqLmxhenlMb2FkaW5nLCB0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbWFnZSA9IHVzZShvYmouaW1hZ2UsIHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VQZXJjZW50ID0gdXNlKG9iai5pbWFnZVBlcmNlbnQsIDc1KTtcclxuICAgICAgICB0aGlzLmltYWdlQXJyb3dzID0gdXNlKG9iai5pbWFnZUFycm93cywgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUFycm93c0F1dG9IaWRlID0gdXNlKG9iai5pbWFnZUFycm93c0F1dG9IaWRlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZVN3aXBlID0gdXNlKG9iai5pbWFnZVN3aXBlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUFuaW1hdGlvbiA9IHVzZShvYmouaW1hZ2VBbmltYXRpb24sIE5neEdhbGxlcnlBbmltYXRpb24uRmFkZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZVNpemUgPSB1c2Uob2JqLmltYWdlU2l6ZSwgTmd4R2FsbGVyeUltYWdlU2l6ZS5Db3Zlcik7XHJcbiAgICAgICAgdGhpcy5pbWFnZUF1dG9QbGF5ID0gdXNlKG9iai5pbWFnZUF1dG9QbGF5LCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUF1dG9QbGF5SW50ZXJ2YWwgPSB1c2Uob2JqLmltYWdlQXV0b1BsYXlJbnRlcnZhbCwgMjAwMCk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUF1dG9QbGF5UGF1c2VPbkhvdmVyID0gdXNlKG9iai5pbWFnZUF1dG9QbGF5UGF1c2VPbkhvdmVyLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUluZmluaXR5TW92ZSA9IHVzZShvYmouaW1hZ2VJbmZpbml0eU1vdmUsIGZhbHNlKTtcclxuICAgICAgICBpZiAob2JqICYmIG9iai5pbWFnZUFjdGlvbnMgJiYgb2JqLmltYWdlQWN0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgb2JqLmltYWdlQWN0aW9ucyA9IG9iai5pbWFnZUFjdGlvbnMubWFwKGFjdGlvbiA9PiBuZXcgTmd4R2FsbGVyeUFjdGlvbihhY3Rpb24pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWFnZUFjdGlvbnMgPSB1c2Uob2JqLmltYWdlQWN0aW9ucywgW10pO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VEZXNjcmlwdGlvbiA9IHVzZShvYmouaW1hZ2VEZXNjcmlwdGlvbiwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VCdWxsZXRzID0gdXNlKG9iai5pbWFnZUJ1bGxldHMsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxzID0gdXNlKG9iai50aHVtYm5haWxzLCB0cnVlKTtcclxuICAgICAgICB0aGlzLnRodW1ibmFpbHNDb2x1bW5zID0gdXNlKG9iai50aHVtYm5haWxzQ29sdW1ucywgNCk7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxzUm93cyA9IHVzZShvYmoudGh1bWJuYWlsc1Jvd3MsIDEpO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc1BlcmNlbnQgPSB1c2Uob2JqLnRodW1ibmFpbHNQZXJjZW50LCAyNSk7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxzTWFyZ2luID0gdXNlKG9iai50aHVtYm5haWxzTWFyZ2luLCAxMCk7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxzQXJyb3dzID0gdXNlKG9iai50aHVtYm5haWxzQXJyb3dzLCB0cnVlKTtcclxuICAgICAgICB0aGlzLnRodW1ibmFpbHNBcnJvd3NBdXRvSGlkZSA9IHVzZShvYmoudGh1bWJuYWlsc0Fycm93c0F1dG9IaWRlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxzU3dpcGUgPSB1c2Uob2JqLnRodW1ibmFpbHNTd2lwZSwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc01vdmVTaXplID0gdXNlKG9iai50aHVtYm5haWxzTW92ZVNpemUsIDEpO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc09yZGVyID0gdXNlKG9iai50aHVtYm5haWxzT3JkZXIsIE5neEdhbGxlcnlPcmRlci5Db2x1bW4pO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc1JlbWFpbmluZ0NvdW50ID0gdXNlKG9iai50aHVtYm5haWxzUmVtYWluaW5nQ291bnQsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnRodW1ibmFpbHNBc0xpbmtzID0gdXNlKG9iai50aHVtYm5haWxzQXNMaW5rcywgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc0F1dG9IaWRlID0gdXNlKG9iai50aHVtYm5haWxzQXV0b0hpZGUsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnRodW1ibmFpbE1hcmdpbiA9IHVzZShvYmoudGh1bWJuYWlsTWFyZ2luLCAxMCk7XHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxTaXplID0gdXNlKG9iai50aHVtYm5haWxTaXplLCBOZ3hHYWxsZXJ5SW1hZ2VTaXplLkNvdmVyKTtcclxuICAgICAgICBpZiAob2JqICYmIG9iai50aHVtYm5haWxBY3Rpb25zICYmIG9iai50aHVtYm5haWxBY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBvYmoudGh1bWJuYWlsQWN0aW9ucyA9IG9iai50aHVtYm5haWxBY3Rpb25zLm1hcChhY3Rpb24gPT4gbmV3IE5neEdhbGxlcnlBY3Rpb24oYWN0aW9uKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsQWN0aW9ucyA9IHVzZShvYmoudGh1bWJuYWlsQWN0aW9ucywgW10pO1xyXG4gICAgICAgIHRoaXMudGh1bWJuYWlsQ2xhc3NlcyA9IHVzZShvYmoudGh1bWJuYWlsQ2xhc3NlcywgW10pO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3ID0gdXNlKG9iai5wcmV2aWV3LCB0cnVlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdEZXNjcmlwdGlvbiA9IHVzZShvYmoucHJldmlld0Rlc2NyaXB0aW9uLCB0cnVlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdBcnJvd3MgPSB1c2Uob2JqLnByZXZpZXdBcnJvd3MsIHRydWUpO1xyXG4gICAgICAgIHRoaXMucHJldmlld0Fycm93c0F1dG9IaWRlID0gdXNlKG9iai5wcmV2aWV3QXJyb3dzQXV0b0hpZGUsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdTd2lwZSA9IHVzZShvYmoucHJldmlld1N3aXBlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RnVsbHNjcmVlbiA9IHVzZShvYmoucHJldmlld0Z1bGxzY3JlZW4sIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdGb3JjZUZ1bGxzY3JlZW4gPSB1c2Uob2JqLnByZXZpZXdGb3JjZUZ1bGxzY3JlZW4sIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdDbG9zZU9uQ2xpY2sgPSB1c2Uob2JqLnByZXZpZXdDbG9zZU9uQ2xpY2ssIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdDbG9zZU9uRXNjID0gdXNlKG9iai5wcmV2aWV3Q2xvc2VPbkVzYywgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMucHJldmlld0tleWJvYXJkTmF2aWdhdGlvbiA9IHVzZShvYmoucHJldmlld0tleWJvYXJkTmF2aWdhdGlvbiwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMucHJldmlld0FuaW1hdGlvbiA9IHVzZShvYmoucHJldmlld0FuaW1hdGlvbiwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3QXV0b1BsYXkgPSB1c2Uob2JqLnByZXZpZXdBdXRvUGxheSwgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMucHJldmlld0F1dG9QbGF5SW50ZXJ2YWwgPSB1c2Uob2JqLnByZXZpZXdBdXRvUGxheUludGVydmFsLCAyMDAwKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdBdXRvUGxheVBhdXNlT25Ib3ZlciA9IHVzZShvYmoucHJldmlld0F1dG9QbGF5UGF1c2VPbkhvdmVyLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3SW5maW5pdHlNb3ZlID0gdXNlKG9iai5wcmV2aWV3SW5maW5pdHlNb3ZlLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3Wm9vbSA9IHVzZShvYmoucHJldmlld1pvb20sIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdab29tU3RlcCA9IHVzZShvYmoucHJldmlld1pvb21TdGVwLCAwLjEpO1xyXG4gICAgICAgIHRoaXMucHJldmlld1pvb21NYXggPSB1c2Uob2JqLnByZXZpZXdab29tTWF4LCAyKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdab29tTWluID0gdXNlKG9iai5wcmV2aWV3Wm9vbU1pbiwgMC41KTtcclxuICAgICAgICB0aGlzLnByZXZpZXdSb3RhdGUgPSB1c2Uob2JqLnByZXZpZXdSb3RhdGUsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnByZXZpZXdEb3dubG9hZCA9IHVzZShvYmoucHJldmlld0Rvd25sb2FkLCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3Q3VzdG9tID0gdXNlKG9iai5wcmV2aWV3Q3VzdG9tLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIHRoaXMucHJldmlld0J1bGxldHMgPSB1c2Uob2JqLnByZXZpZXdCdWxsZXRzLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIHRoaXMuYXJyb3dQcmV2SWNvbiA9IHVzZShvYmouYXJyb3dQcmV2SWNvbiwgJ2ZhIGZhLWFycm93LWNpcmNsZS1sZWZ0Jyk7XHJcbiAgICAgICAgdGhpcy5hcnJvd05leHRJY29uID0gdXNlKG9iai5hcnJvd05leHRJY29uLCAnZmEgZmEtYXJyb3ctY2lyY2xlLXJpZ2h0Jyk7XHJcbiAgICAgICAgdGhpcy5jbG9zZUljb24gPSB1c2Uob2JqLmNsb3NlSWNvbiwgJ2ZhIGZhLXRpbWVzLWNpcmNsZScpO1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkljb24gPSB1c2Uob2JqLmZ1bGxzY3JlZW5JY29uLCAnZmEgZmEtYXJyb3dzLWFsdCcpO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lckljb24gPSB1c2Uob2JqLnNwaW5uZXJJY29uLCAnZmEgZmEtc3Bpbm5lciBmYS1wdWxzZSBmYS0zeCBmYS1mdycpO1xyXG4gICAgICAgIHRoaXMuem9vbUluSWNvbiA9IHVzZShvYmouem9vbUluSWNvbiwgJ2ZhIGZhLXNlYXJjaC1wbHVzJyk7XHJcbiAgICAgICAgdGhpcy56b29tT3V0SWNvbiA9IHVzZShvYmouem9vbU91dEljb24sICdmYSBmYS1zZWFyY2gtbWludXMnKTtcclxuICAgICAgICB0aGlzLnJvdGF0ZUxlZnRJY29uID0gdXNlKG9iai5yb3RhdGVMZWZ0SWNvbiwgJ2ZhIGZhLXVuZG8nKTtcclxuICAgICAgICB0aGlzLnJvdGF0ZVJpZ2h0SWNvbiA9IHVzZShvYmoucm90YXRlUmlnaHRJY29uLCAnZmEgZmEtcmVwZWF0Jyk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEljb24gPSB1c2Uob2JqLmRvd25sb2FkSWNvbiwgJ2ZhIGZhLWFycm93LWNpcmNsZS1kb3duJyk7XHJcblxyXG4gICAgICAgIGlmIChvYmogJiYgb2JqLmFjdGlvbnMgJiYgb2JqLmFjdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG9iai5hY3Rpb25zID0gb2JqLmFjdGlvbnMubWFwKGFjdGlvbiA9PiBuZXcgTmd4R2FsbGVyeUFjdGlvbihhY3Rpb24pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdXNlKG9iai5hY3Rpb25zLCBbXSk7XHJcbiAgICB9XHJcbn1cclxuIl19