@kolkov/ngx-gallery
Version:
A simple responsive native gallery component for Angular 8+ and 13+.
96 lines • 29.1 kB
JavaScript
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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Q0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFckUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMxQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05neEdhbGxlcnlBY3Rpb259IGZyb20gJy4vbmd4LWdhbGxlcnktYWN0aW9uJztcbmltcG9ydCB7Tmd4R2FsbGVyeU9yZGVyfSBmcm9tICcuL25neC1nYWxsZXJ5LW9yZGVyJztcbmltcG9ydCB7Tmd4R2FsbGVyeUxheW91dH0gZnJvbSAnLi9uZ3gtZ2FsbGVyeS1sYXlvdXQnO1xuaW1wb3J0IHtOZ3hHYWxsZXJ5QW5pbWF0aW9ufSBmcm9tICcuL25neC1nYWxsZXJ5LWFuaW1hdGlvbic7XG5pbXBvcnQge05neEdhbGxlcnlJbWFnZVNpemV9IGZyb20gJy4vbmd4LWdhbGxlcnktaW1hZ2Utc2l6ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5neEdhbGxlcnlPcHRpb25zIHtcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBoZWlnaHQ/OiBzdHJpbmc7XG4gICAgYnJlYWtwb2ludD86IG51bWJlcjtcbiAgICBmdWxsV2lkdGg/OiBib29sZWFuO1xuICAgIGxheW91dD86IHN0cmluZztcbiAgICBzdGFydEluZGV4PzogbnVtYmVyO1xuICAgIGxpbmtUYXJnZXQ/OiBzdHJpbmc7XG4gICAgbGF6eUxvYWRpbmc/OiBib29sZWFuO1xuICAgIGltYWdlPzogYm9vbGVhbjtcbiAgICBpbWFnZVBlcmNlbnQ/OiBudW1iZXI7XG4gICAgaW1hZ2VBcnJvd3M/OiBib29sZWFuO1xuICAgIGltYWdlQXJyb3dzQXV0b0hpZGU/OiBib29sZWFuO1xuICAgIGltYWdlU3dpcGU/OiBib29sZWFuO1xuICAgIGltYWdlQW5pbWF0aW9uPzogc3RyaW5nO1xuICAgIGltYWdlU2l6ZT86IHN0cmluZztcbiAgICBpbWFnZUF1dG9QbGF5PzogYm9vbGVhbjtcbiAgICBpbWFnZUF1dG9QbGF5SW50ZXJ2YWw/OiBudW1iZXI7XG4gICAgaW1hZ2VBdXRvUGxheVBhdXNlT25Ib3Zlcj86IGJvb2xlYW47XG4gICAgaW1hZ2VJbmZpbml0eU1vdmU/OiBib29sZWFuO1xuICAgIGltYWdlQWN0aW9ucz86IE5neEdhbGxlcnlBY3Rpb25bXTtcbiAgICBpbWFnZURlc2NyaXB0aW9uPzogYm9vbGVhbjtcbiAgICBpbWFnZUJ1bGxldHM/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbHM/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbHNDb2x1bW5zPzogbnVtYmVyO1xuICAgIHRodW1ibmFpbHNSb3dzPzogbnVtYmVyO1xuICAgIHRodW1ibmFpbHNQZXJjZW50PzogbnVtYmVyO1xuICAgIHRodW1ibmFpbHNNYXJnaW4/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsc0Fycm93cz86IGJvb2xlYW47XG4gICAgdGh1bWJuYWlsc0Fycm93c0F1dG9IaWRlPzogYm9vbGVhbjtcbiAgICB0aHVtYm5haWxzU3dpcGU/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbHNNb3ZlU2l6ZT86IG51bWJlcjtcbiAgICB0aHVtYm5haWxzT3JkZXI/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsc1JlbWFpbmluZ0NvdW50PzogYm9vbGVhbjtcbiAgICB0aHVtYm5haWxzQXNMaW5rcz86IGJvb2xlYW47XG4gICAgdGh1bWJuYWlsc0F1dG9IaWRlPzogYm9vbGVhbjtcbiAgICB0aHVtYm5haWxNYXJnaW4/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsU2l6ZT86IHN0cmluZztcbiAgICB0aHVtYm5haWxBY3Rpb25zPzogTmd4R2FsbGVyeUFjdGlvbltdO1xuICAgIHRodW1ibmFpbENsYXNzZXM/OiBzdHJpbmdbXTtcbiAgICBwcmV2aWV3PzogYm9vbGVhbjtcbiAgICBwcmV2aWV3RGVzY3JpcHRpb24/OiBib29sZWFuO1xuICAgIHByZXZpZXdBcnJvd3M/OiBib29sZWFuO1xuICAgIHByZXZpZXdBcnJvd3NBdXRvSGlkZT86IGJvb2xlYW47XG4gICAgcHJldmlld1N3aXBlPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3RnVsbHNjcmVlbj86IGJvb2xlYW47XG4gICAgcHJldmlld0ZvcmNlRnVsbHNjcmVlbj86IGJvb2xlYW47XG4gICAgcHJldmlld0Nsb3NlT25DbGljaz86IGJvb2xlYW47XG4gICAgcHJldmlld0Nsb3NlT25Fc2M/OiBib29sZWFuO1xuICAgIHByZXZpZXdLZXlib2FyZE5hdmlnYXRpb24/OiBib29sZWFuO1xuICAgIHByZXZpZXdBbmltYXRpb24/OiBib29sZWFuO1xuICAgIHByZXZpZXdBdXRvUGxheT86IGJvb2xlYW47XG4gICAgcHJldmlld0F1dG9QbGF5SW50ZXJ2YWw/OiBudW1iZXI7XG4gICAgcHJldmlld0F1dG9QbGF5UGF1c2VPbkhvdmVyPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3SW5maW5pdHlNb3ZlPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Wm9vbT86IGJvb2xlYW47XG4gICAgcHJldmlld1pvb21TdGVwPzogbnVtYmVyO1xuICAgIHByZXZpZXdab29tTWF4PzogbnVtYmVyO1xuICAgIHByZXZpZXdab29tTWluPzogbnVtYmVyO1xuICAgIHByZXZpZXdSb3RhdGU/OiBib29sZWFuO1xuICAgIHByZXZpZXdEb3dubG9hZD86IGJvb2xlYW47XG4gICAgcHJldmlld0N1c3RvbT86IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHByZXZpZXdCdWxsZXRzPzogYm9vbGVhbjtcbiAgICBhcnJvd1ByZXZJY29uPzogc3RyaW5nO1xuICAgIGFycm93TmV4dEljb24/OiBzdHJpbmc7XG4gICAgY2xvc2VJY29uPzogc3RyaW5nO1xuICAgIGZ1bGxzY3JlZW5JY29uPzogc3RyaW5nO1xuICAgIHNwaW5uZXJJY29uPzogc3RyaW5nO1xuICAgIHpvb21Jbkljb24/OiBzdHJpbmc7XG4gICAgem9vbU91dEljb24/OiBzdHJpbmc7XG4gICAgcm90YXRlTGVmdEljb24/OiBzdHJpbmc7XG4gICAgcm90YXRlUmlnaHRJY29uPzogc3RyaW5nO1xuICAgIGRvd25sb2FkSWNvbj86IHN0cmluZztcbiAgICBhY3Rpb25zPzogTmd4R2FsbGVyeUFjdGlvbltdO1xufVxuXG5leHBvcnQgY2xhc3MgTmd4R2FsbGVyeU9wdGlvbnMgaW1wbGVtZW50cyBJTmd4R2FsbGVyeU9wdGlvbnMge1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICAgIGhlaWdodD86IHN0cmluZztcbiAgICBicmVha3BvaW50PzogbnVtYmVyO1xuICAgIGZ1bGxXaWR0aD86IGJvb2xlYW47XG4gICAgbGF5b3V0Pzogc3RyaW5nO1xuICAgIHN0YXJ0SW5kZXg/OiBudW1iZXI7XG4gICAgbGlua1RhcmdldD86IHN0cmluZztcbiAgICBsYXp5TG9hZGluZz86IGJvb2xlYW47XG4gICAgaW1hZ2U/OiBib29sZWFuO1xuICAgIGltYWdlUGVyY2VudD86IG51bWJlcjtcbiAgICBpbWFnZUFycm93cz86IGJvb2xlYW47XG4gICAgaW1hZ2VBcnJvd3NBdXRvSGlkZT86IGJvb2xlYW47XG4gICAgaW1hZ2VTd2lwZT86IGJvb2xlYW47XG4gICAgaW1hZ2VBbmltYXRpb24/OiBzdHJpbmc7XG4gICAgaW1hZ2VTaXplPzogc3RyaW5nO1xuICAgIGltYWdlQXV0b1BsYXk/OiBib29sZWFuO1xuICAgIGltYWdlQXV0b1BsYXlJbnRlcnZhbD86IG51bWJlcjtcbiAgICBpbWFnZUF1dG9QbGF5UGF1c2VPbkhvdmVyPzogYm9vbGVhbjtcbiAgICBpbWFnZUluZmluaXR5TW92ZT86IGJvb2xlYW47XG4gICAgaW1hZ2VBY3Rpb25zPzogTmd4R2FsbGVyeUFjdGlvbltdO1xuICAgIGltYWdlRGVzY3JpcHRpb24/OiBib29sZWFuO1xuICAgIGltYWdlQnVsbGV0cz86IGJvb2xlYW47XG4gICAgdGh1bWJuYWlscz86IGJvb2xlYW47XG4gICAgdGh1bWJuYWlsc0NvbHVtbnM/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsc1Jvd3M/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsc1BlcmNlbnQ/OiBudW1iZXI7XG4gICAgdGh1bWJuYWlsc01hcmdpbj86IG51bWJlcjtcbiAgICB0aHVtYm5haWxzQXJyb3dzPzogYm9vbGVhbjtcbiAgICB0aHVtYm5haWxzQXJyb3dzQXV0b0hpZGU/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbHNTd2lwZT86IGJvb2xlYW47XG4gICAgdGh1bWJuYWlsc01vdmVTaXplPzogbnVtYmVyO1xuICAgIHRodW1ibmFpbHNPcmRlcj86IG51bWJlcjtcbiAgICB0aHVtYm5haWxzUmVtYWluaW5nQ291bnQ/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbHNBc0xpbmtzPzogYm9vbGVhbjtcbiAgICB0aHVtYm5haWxzQXV0b0hpZGU/OiBib29sZWFuO1xuICAgIHRodW1ibmFpbE1hcmdpbj86IG51bWJlcjtcbiAgICB0aHVtYm5haWxTaXplPzogc3RyaW5nO1xuICAgIHRodW1ibmFpbEFjdGlvbnM/OiBOZ3hHYWxsZXJ5QWN0aW9uW107XG4gICAgdGh1bWJuYWlsQ2xhc3Nlcz86IHN0cmluZ1tdO1xuICAgIHByZXZpZXc/OiBib29sZWFuO1xuICAgIHByZXZpZXdEZXNjcmlwdGlvbj86IGJvb2xlYW47XG4gICAgcHJldmlld0Fycm93cz86IGJvb2xlYW47XG4gICAgcHJldmlld0Fycm93c0F1dG9IaWRlPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3U3dpcGU/OiBib29sZWFuO1xuICAgIHByZXZpZXdGdWxsc2NyZWVuPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Rm9yY2VGdWxsc2NyZWVuPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Q2xvc2VPbkNsaWNrPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Q2xvc2VPbkVzYz86IGJvb2xlYW47XG4gICAgcHJldmlld0tleWJvYXJkTmF2aWdhdGlvbj86IGJvb2xlYW47XG4gICAgcHJldmlld0FuaW1hdGlvbj86IGJvb2xlYW47XG4gICAgcHJldmlld0F1dG9QbGF5PzogYm9vbGVhbjtcbiAgICBwcmV2aWV3QXV0b1BsYXlJbnRlcnZhbD86IG51bWJlcjtcbiAgICBwcmV2aWV3QXV0b1BsYXlQYXVzZU9uSG92ZXI/OiBib29sZWFuO1xuICAgIHByZXZpZXdJbmZpbml0eU1vdmU/OiBib29sZWFuO1xuICAgIHByZXZpZXdab29tPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Wm9vbVN0ZXA/OiBudW1iZXI7XG4gICAgcHJldmlld1pvb21NYXg/OiBudW1iZXI7XG4gICAgcHJldmlld1pvb21NaW4/OiBudW1iZXI7XG4gICAgcHJldmlld1JvdGF0ZT86IGJvb2xlYW47XG4gICAgcHJldmlld0Rvd25sb2FkPzogYm9vbGVhbjtcbiAgICBwcmV2aWV3Q3VzdG9tPzogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gICAgcHJldmlld0J1bGxldHM/OiBib29sZWFuO1xuICAgIGFycm93UHJldkljb24/OiBzdHJpbmc7XG4gICAgYXJyb3dOZXh0SWNvbj86IHN0cmluZztcbiAgICBjbG9zZUljb24/OiBzdHJpbmc7XG4gICAgZnVsbHNjcmVlbkljb24/OiBzdHJpbmc7XG4gICAgc3Bpbm5lckljb24/OiBzdHJpbmc7XG4gICAgem9vbUluSWNvbj86IHN0cmluZztcbiAgICB6b29tT3V0SWNvbj86IHN0cmluZztcbiAgICByb3RhdGVMZWZ0SWNvbj86IHN0cmluZztcbiAgICByb3RhdGVSaWdodEljb24/OiBzdHJpbmc7XG4gICAgZG93bmxvYWRJY29uPzogc3RyaW5nO1xuICAgIGFjdGlvbnM/OiBOZ3hHYWxsZXJ5QWN0aW9uW107XG5cbiAgICBjb25zdHJ1Y3RvcihvYmo6IElOZ3hHYWxsZXJ5T3B0aW9ucykge1xuXG4gICAgICAgIGNvbnN0IHByZXZlbnREZWZhdWx0cyA9IG9iai5icmVha3BvaW50ID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IHRydWU7XG5cbiAgICAgICAgZnVuY3Rpb24gdXNlPFQ+KHNvdXJjZTogVCwgZGVmYXVsdFZhbHVlOiBUKTogVCB7XG4gICAgICAgICAgICByZXR1cm4gb2JqICYmIChzb3VyY2UgIT09IHVuZGVmaW5lZCB8fCBwcmV2ZW50RGVmYXVsdHMpID8gc291cmNlIDogZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5icmVha3BvaW50ID0gdXNlKG9iai5icmVha3BvaW50LCB1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLndpZHRoID0gdXNlKG9iai53aWR0aCwgJzUwMHB4Jyk7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdXNlKG9iai5oZWlnaHQsICc0MDBweCcpO1xuICAgICAgICB0aGlzLmZ1bGxXaWR0aCA9IHVzZShvYmouZnVsbFdpZHRoLCBmYWxzZSk7XG4gICAgICAgIHRoaXMubGF5b3V0ID0gdXNlKG9iai5sYXlvdXQsIE5neEdhbGxlcnlMYXlvdXQuVGh1bWJuYWlsc0JvdHRvbSk7XG4gICAgICAgIHRoaXMuc3RhcnRJbmRleCA9IHVzZShvYmouc3RhcnRJbmRleCwgMCk7XG4gICAgICAgIHRoaXMubGlua1RhcmdldCA9IHVzZShvYmoubGlua1RhcmdldCwgJ19ibGFuaycpO1xuICAgICAgICB0aGlzLmxhenlMb2FkaW5nID0gdXNlKG9iai5sYXp5TG9hZGluZywgdHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5pbWFnZSA9IHVzZShvYmouaW1hZ2UsIHRydWUpO1xuICAgICAgICB0aGlzLmltYWdlUGVyY2VudCA9IHVzZShvYmouaW1hZ2VQZXJjZW50LCA3NSk7XG4gICAgICAgIHRoaXMuaW1hZ2VBcnJvd3MgPSB1c2Uob2JqLmltYWdlQXJyb3dzLCB0cnVlKTtcbiAgICAgICAgdGhpcy5pbWFnZUFycm93c0F1dG9IaWRlID0gdXNlKG9iai5pbWFnZUFycm93c0F1dG9IaWRlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VTd2lwZSA9IHVzZShvYmouaW1hZ2VTd2lwZSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmltYWdlQW5pbWF0aW9uID0gdXNlKG9iai5pbWFnZUFuaW1hdGlvbiwgTmd4R2FsbGVyeUFuaW1hdGlvbi5GYWRlKTtcbiAgICAgICAgdGhpcy5pbWFnZVNpemUgPSB1c2Uob2JqLmltYWdlU2l6ZSwgTmd4R2FsbGVyeUltYWdlU2l6ZS5Db3Zlcik7XG4gICAgICAgIHRoaXMuaW1hZ2VBdXRvUGxheSA9IHVzZShvYmouaW1hZ2VBdXRvUGxheSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmltYWdlQXV0b1BsYXlJbnRlcnZhbCA9IHVzZShvYmouaW1hZ2VBdXRvUGxheUludGVydmFsLCAyMDAwKTtcbiAgICAgICAgdGhpcy5pbWFnZUF1dG9QbGF5UGF1c2VPbkhvdmVyID0gdXNlKG9iai5pbWFnZUF1dG9QbGF5UGF1c2VPbkhvdmVyLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VJbmZpbml0eU1vdmUgPSB1c2Uob2JqLmltYWdlSW5maW5pdHlNb3ZlLCBmYWxzZSk7XG4gICAgICAgIGlmIChvYmogJiYgb2JqLmltYWdlQWN0aW9ucyAmJiBvYmouaW1hZ2VBY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgb2JqLmltYWdlQWN0aW9ucyA9IG9iai5pbWFnZUFjdGlvbnMubWFwKGFjdGlvbiA9PiBuZXcgTmd4R2FsbGVyeUFjdGlvbihhY3Rpb24pKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmltYWdlQWN0aW9ucyA9IHVzZShvYmouaW1hZ2VBY3Rpb25zLCBbXSk7XG4gICAgICAgIHRoaXMuaW1hZ2VEZXNjcmlwdGlvbiA9IHVzZShvYmouaW1hZ2VEZXNjcmlwdGlvbiwgZmFsc2UpO1xuICAgICAgICB0aGlzLmltYWdlQnVsbGV0cyA9IHVzZShvYmouaW1hZ2VCdWxsZXRzLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy50aHVtYm5haWxzID0gdXNlKG9iai50aHVtYm5haWxzLCB0cnVlKTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxzQ29sdW1ucyA9IHVzZShvYmoudGh1bWJuYWlsc0NvbHVtbnMsIDQpO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHNSb3dzID0gdXNlKG9iai50aHVtYm5haWxzUm93cywgMSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc1BlcmNlbnQgPSB1c2Uob2JqLnRodW1ibmFpbHNQZXJjZW50LCAyNSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc01hcmdpbiA9IHVzZShvYmoudGh1bWJuYWlsc01hcmdpbiwgMTApO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHNBcnJvd3MgPSB1c2Uob2JqLnRodW1ibmFpbHNBcnJvd3MsIHRydWUpO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHNBcnJvd3NBdXRvSGlkZSA9IHVzZShvYmoudGh1bWJuYWlsc0Fycm93c0F1dG9IaWRlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc1N3aXBlID0gdXNlKG9iai50aHVtYm5haWxzU3dpcGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxzTW92ZVNpemUgPSB1c2Uob2JqLnRodW1ibmFpbHNNb3ZlU2l6ZSwgMSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc09yZGVyID0gdXNlKG9iai50aHVtYm5haWxzT3JkZXIsIE5neEdhbGxlcnlPcmRlci5Db2x1bW4pO1xuICAgICAgICB0aGlzLnRodW1ibmFpbHNSZW1haW5pbmdDb3VudCA9IHVzZShvYmoudGh1bWJuYWlsc1JlbWFpbmluZ0NvdW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc0FzTGlua3MgPSB1c2Uob2JqLnRodW1ibmFpbHNBc0xpbmtzLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudGh1bWJuYWlsc0F1dG9IaWRlID0gdXNlKG9iai50aHVtYm5haWxzQXV0b0hpZGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxNYXJnaW4gPSB1c2Uob2JqLnRodW1ibmFpbE1hcmdpbiwgMTApO1xuICAgICAgICB0aGlzLnRodW1ibmFpbFNpemUgPSB1c2Uob2JqLnRodW1ibmFpbFNpemUsIE5neEdhbGxlcnlJbWFnZVNpemUuQ292ZXIpO1xuICAgICAgICBpZiAob2JqICYmIG9iai50aHVtYm5haWxBY3Rpb25zICYmIG9iai50aHVtYm5haWxBY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgb2JqLnRodW1ibmFpbEFjdGlvbnMgPSBvYmoudGh1bWJuYWlsQWN0aW9ucy5tYXAoYWN0aW9uID0+IG5ldyBOZ3hHYWxsZXJ5QWN0aW9uKGFjdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh1bWJuYWlsQWN0aW9ucyA9IHVzZShvYmoudGh1bWJuYWlsQWN0aW9ucywgW10pO1xuICAgICAgICB0aGlzLnRodW1ibmFpbENsYXNzZXMgPSB1c2Uob2JqLnRodW1ibmFpbENsYXNzZXMsIFtdKTtcblxuXG4gICAgICAgIHRoaXMucHJldmlldyA9IHVzZShvYmoucHJldmlldywgdHJ1ZSk7XG4gICAgICAgIHRoaXMucHJldmlld0Rlc2NyaXB0aW9uID0gdXNlKG9iai5wcmV2aWV3RGVzY3JpcHRpb24sIHRydWUpO1xuICAgICAgICB0aGlzLnByZXZpZXdBcnJvd3MgPSB1c2Uob2JqLnByZXZpZXdBcnJvd3MsIHRydWUpO1xuICAgICAgICB0aGlzLnByZXZpZXdBcnJvd3NBdXRvSGlkZSA9IHVzZShvYmoucHJldmlld0Fycm93c0F1dG9IaWRlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucHJldmlld1N3aXBlID0gdXNlKG9iai5wcmV2aWV3U3dpcGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3RnVsbHNjcmVlbiA9IHVzZShvYmoucHJldmlld0Z1bGxzY3JlZW4sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3Rm9yY2VGdWxsc2NyZWVuID0gdXNlKG9iai5wcmV2aWV3Rm9yY2VGdWxsc2NyZWVuLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucHJldmlld0Nsb3NlT25DbGljayA9IHVzZShvYmoucHJldmlld0Nsb3NlT25DbGljaywgZmFsc2UpO1xuICAgICAgICB0aGlzLnByZXZpZXdDbG9zZU9uRXNjID0gdXNlKG9iai5wcmV2aWV3Q2xvc2VPbkVzYywgZmFsc2UpO1xuICAgICAgICB0aGlzLnByZXZpZXdLZXlib2FyZE5hdmlnYXRpb24gPSB1c2Uob2JqLnByZXZpZXdLZXlib2FyZE5hdmlnYXRpb24sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3QW5pbWF0aW9uID0gdXNlKG9iai5wcmV2aWV3QW5pbWF0aW9uLCB0cnVlKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3QXV0b1BsYXkgPSB1c2Uob2JqLnByZXZpZXdBdXRvUGxheSwgZmFsc2UpO1xuICAgICAgICB0aGlzLnByZXZpZXdBdXRvUGxheUludGVydmFsID0gdXNlKG9iai5wcmV2aWV3QXV0b1BsYXlJbnRlcnZhbCwgMjAwMCk7XG4gICAgICAgIHRoaXMucHJldmlld0F1dG9QbGF5UGF1c2VPbkhvdmVyID0gdXNlKG9iai5wcmV2aWV3QXV0b1BsYXlQYXVzZU9uSG92ZXIsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3SW5maW5pdHlNb3ZlID0gdXNlKG9iai5wcmV2aWV3SW5maW5pdHlNb3ZlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucHJldmlld1pvb20gPSB1c2Uob2JqLnByZXZpZXdab29tLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucHJldmlld1pvb21TdGVwID0gdXNlKG9iai5wcmV2aWV3Wm9vbVN0ZXAsIDAuMSk7XG4gICAgICAgIHRoaXMucHJldmlld1pvb21NYXggPSB1c2Uob2JqLnByZXZpZXdab29tTWF4LCAyKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3Wm9vbU1pbiA9IHVzZShvYmoucHJldmlld1pvb21NaW4sIDAuNSk7XG4gICAgICAgIHRoaXMucHJldmlld1JvdGF0ZSA9IHVzZShvYmoucHJldmlld1JvdGF0ZSwgZmFsc2UpO1xuICAgICAgICB0aGlzLnByZXZpZXdEb3dubG9hZCA9IHVzZShvYmoucHJldmlld0Rvd25sb2FkLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucHJldmlld0N1c3RvbSA9IHVzZShvYmoucHJldmlld0N1c3RvbSwgdW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5wcmV2aWV3QnVsbGV0cyA9IHVzZShvYmoucHJldmlld0J1bGxldHMsIGZhbHNlKTtcblxuICAgICAgICB0aGlzLmFycm93UHJldkljb24gPSB1c2Uob2JqLmFycm93UHJldkljb24sICdmYSBmYS1hcnJvdy1jaXJjbGUtbGVmdCcpO1xuICAgICAgICB0aGlzLmFycm93TmV4dEljb24gPSB1c2Uob2JqLmFycm93TmV4dEljb24sICdmYSBmYS1hcnJvdy1jaXJjbGUtcmlnaHQnKTtcbiAgICAgICAgdGhpcy5jbG9zZUljb24gPSB1c2Uob2JqLmNsb3NlSWNvbiwgJ2ZhIGZhLXRpbWVzLWNpcmNsZScpO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5JY29uID0gdXNlKG9iai5mdWxsc2NyZWVuSWNvbiwgJ2ZhIGZhLWFycm93cy1hbHQnKTtcbiAgICAgICAgdGhpcy5zcGlubmVySWNvbiA9IHVzZShvYmouc3Bpbm5lckljb24sICdmYSBmYS1zcGlubmVyIGZhLXB1bHNlIGZhLTN4IGZhLWZ3Jyk7XG4gICAgICAgIHRoaXMuem9vbUluSWNvbiA9IHVzZShvYmouem9vbUluSWNvbiwgJ2ZhIGZhLXNlYXJjaC1wbHVzJyk7XG4gICAgICAgIHRoaXMuem9vbU91dEljb24gPSB1c2Uob2JqLnpvb21PdXRJY29uLCAnZmEgZmEtc2VhcmNoLW1pbnVzJyk7XG4gICAgICAgIHRoaXMucm90YXRlTGVmdEljb24gPSB1c2Uob2JqLnJvdGF0ZUxlZnRJY29uLCAnZmEgZmEtdW5kbycpO1xuICAgICAgICB0aGlzLnJvdGF0ZVJpZ2h0SWNvbiA9IHVzZShvYmoucm90YXRlUmlnaHRJY29uLCAnZmEgZmEtcmVwZWF0Jyk7XG4gICAgICAgIHRoaXMuZG93bmxvYWRJY29uID0gdXNlKG9iai5kb3dubG9hZEljb24sICdmYSBmYS1hcnJvdy1jaXJjbGUtZG93bicpO1xuXG4gICAgICAgIGlmIChvYmogJiYgb2JqLmFjdGlvbnMgJiYgb2JqLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBvYmouYWN0aW9ucyA9IG9iai5hY3Rpb25zLm1hcChhY3Rpb24gPT4gbmV3IE5neEdhbGxlcnlBY3Rpb24oYWN0aW9uKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdXNlKG9iai5hY3Rpb25zLCBbXSk7XG4gICAgfVxufVxuIl19