@wizishop/img-manager 0.2.49 → 0.2.53
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/assets/i18n/en.json +1 -1
- package/assets/i18n/fr.json +1 -1
- package/bundles/wizishop-img-manager.umd.js +4 -15
- package/bundles/wizishop-img-manager.umd.js.map +1 -1
- package/bundles/wizishop-img-manager.umd.min.js +1 -1
- package/bundles/wizishop-img-manager.umd.min.js.map +1 -1
- package/esm2015/lib/components/canva-btn/canva-btn.component.js +2 -13
- package/esm2015/lib/components/images-view/images-view.component.js +2 -2
- package/esm2015/lib/components/img-selection/img-selection.component.js +2 -2
- package/esm2015/lib/services/user-settings.service.js +2 -2
- package/esm2015/lib/wz-img-manager.component.js +1 -2
- package/esm5/lib/components/canva-btn/canva-btn.component.js +2 -13
- package/esm5/lib/components/images-view/images-view.component.js +2 -2
- package/esm5/lib/components/img-selection/img-selection.component.js +2 -2
- package/esm5/lib/services/user-settings.service.js +2 -2
- package/esm5/lib/wz-img-manager.component.js +1 -2
- package/fesm2015/wizishop-img-manager.js +4 -15
- package/fesm2015/wizishop-img-manager.js.map +1 -1
- package/fesm5/wizishop-img-manager.js +4 -15
- package/fesm5/wizishop-img-manager.js.map +1 -1
- package/lib/components/canva-btn/canva-btn.component.d.ts +1 -4
- package/package.json +1 -1
- package/wizishop-img-manager-0.2.53.tgz +0 -0
- package/wizishop-img-manager.metadata.json +1 -1
- package/wz-img-manager.scss +29 -4
- package/wizishop-img-manager-0.2.49.tgz +0 -0
|
@@ -480,7 +480,7 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
480
480
|
ImagesViewComponent = __decorate([
|
|
481
481
|
Component({
|
|
482
482
|
selector: 'images-view',
|
|
483
|
-
template: "<div class=\"images-view\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\n <!-- Subheader : Img number and actions btn (sup img list, switch forma display) -->\n <div\n *ngIf=\"(stateDisplayed !== 'small' || tabDisplayed === 'img-upload')\"\n class=\"images-view__container\"\n [ngClass]=\"{'images-view__container--uploadTab': tabDisplayed === 'img-upload', 'images-view__container--window': stateDisplayed === 'window'}\"\n >\n\n <div *ngIf=\"tabDisplayed !== 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.nbImg' | translate }} : {{length}}</p>\n </div>\n <div *ngIf=\"tabDisplayed === 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.lastImgs' | translate }}</p>\n </div>\n\n <div class=\"field has-addons subHeaderActions\" *ngIf=\"tabDisplayed !== 'img-upload'\">\n\n <!-- For listforma : Display btn del multiple img & Confirm action -->\n <div class=\"images-view__container__boxAction\">\n\n\n <!-- S\u00E9lectionner -->\n <button\n class=\"button success images-view__container__boxAction__import\"\n @insertRemoveAnnim\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup && !delListImgLoader && multipleImgMode\"\n (click)=\"selectImgChosen()\"\n >\n <i class=\"fal fa-check\"></i>\n {{ 'ImgManager.ImgLib.select' | translate }} ({{nbImgToDelSelected}})\n </button>\n\n <!-- Display btn del multiple img -->\n <button\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup\"\n (click)=\"displayConfirmImgSup()\"\n class=\"button images-view__container__boxAction__delBtn danger\"\n @insertRemoveAnnim\n >\n <i class=\"fal fa-times\"></i>{{ 'ImgManager.ImgLib.delMlt' | translate }} ({{nbImgToDelSelected}})\n <span btnLoadingAnim *ngIf=\"delListImgLoader\" class=\"btnLoadingAnnimation\"></span>\n </button>\n\n <!-- Confirm action -->\n <div\n class=\"images-view__container__boxAction__confirmSup\"\n [ngClass]=\"{'images-view__container__boxAction__confirmSup--visible': confirmImgSup}\">\n <p class=\"images-view__container__boxAction__confirmSup__text\">{{
|
|
483
|
+
template: "<div class=\"images-view\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\n <!-- Subheader : Img number and actions btn (sup img list, switch forma display) -->\n <div\n *ngIf=\"(stateDisplayed !== 'small' || tabDisplayed === 'img-upload')\"\n class=\"images-view__container\"\n [ngClass]=\"{'images-view__container--uploadTab': tabDisplayed === 'img-upload', 'images-view__container--window': stateDisplayed === 'window'}\"\n >\n\n <div *ngIf=\"tabDisplayed !== 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.nbImg' | translate }} : {{length}}</p>\n </div>\n <div *ngIf=\"tabDisplayed === 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.lastImgs' | translate }}</p>\n </div>\n\n <div class=\"field has-addons subHeaderActions\" *ngIf=\"tabDisplayed !== 'img-upload'\">\n\n <!-- For listforma : Display btn del multiple img & Confirm action -->\n <div class=\"images-view__container__boxAction\">\n\n\n <!-- S\u00E9lectionner -->\n <button\n class=\"button success images-view__container__boxAction__import\"\n @insertRemoveAnnim\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup && !delListImgLoader && multipleImgMode\"\n (click)=\"selectImgChosen()\"\n >\n <i class=\"fal fa-check\"></i>\n {{ 'ImgManager.ImgLib.select' | translate }} ({{nbImgToDelSelected}})\n </button>\n\n <!-- Display btn del multiple img -->\n <button\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup\"\n (click)=\"displayConfirmImgSup()\"\n class=\"button images-view__container__boxAction__delBtn danger\"\n @insertRemoveAnnim\n >\n <i class=\"fal fa-times\"></i>{{ 'ImgManager.ImgLib.delMlt' | translate }} ({{nbImgToDelSelected}})\n <span btnLoadingAnim *ngIf=\"delListImgLoader\" class=\"btnLoadingAnnimation\"></span>\n </button>\n\n <!-- Confirm action -->\n <div\n class=\"images-view__container__boxAction__confirmSup\"\n [ngClass]=\"{'images-view__container__boxAction__confirmSup--visible': confirmImgSup}\">\n <p *ngIf=\"nbImgToDelSelected > 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestions' | translate:{nbImage: nbImgToDelSelected} }}</p>\n <p *ngIf=\"nbImgToDelSelected === 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestion' | translate:{nbImage: nbImgToDelSelected} }}</p>\n <div>\n <button\n class=\"button images-view__container__boxAction__confirmSup__cancel\"\n (click)=\"cancelSup()\"\n >\n {{ 'ImgManager.ImgLib.cancel' | translate }}\n </button>\n <button\n (click)=\"removeListImg()\"\n class=\"button images-view__container__delBtn danger\"\n >\n {{ 'ImgManager.ImgLib.confirm' | translate }}\n </button>\n </div>\n </div>\n\n </div>\n\n\n <!-- Swith mosaic/list forma -->\n <div class=\"field has-addons images-view__container__buttonBox\">\n <p class=\"control\">\n <button\n class=\"button is-lighted images-view__container__buttonBox__btn\"\n [ngClass]=\"{'actifDisplayed': !listDisplayed}\"\n (click)=\"onSwitchFormatDisplayed(false)\"\n >\n <span class=\"icon is-small\">\n <i class=\"far fa-th\"></i>\n </span>\n </button>\n </p>\n\n <p class=\"control\">\n <button class=\"button is-lighted images-view__container__buttonBox__btn\"\n [ngClass]=\"{'actifDisplayed': listDisplayed}\"\n (click)=\"onSwitchFormatDisplayed(true)\"\n >\n <span class=\"icon is-small\">\n <i class=\"fas fa-bars\"></i>\n </span>\n </button>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n\n <!-- Images section -->\n<ng-scrollbar\n #scrollable\n [visibility]=\"'native'\"\n class=\"images-view__scroll\"\n [ngClass]=\"{\n 'images-view__scroll--hide--mosaic': displayPexelsResults && !listDisplayed,\n 'images-view__scroll--hide--mosaic--small': displayPexelsResults && !listDisplayed && stateDisplayed === 'small',\n 'images-view__scroll--hide--table': displayPexelsResults && listDisplayed,\n 'images-view__scroll--full': stateDisplayed === 'full',\n 'images-view__scroll--smallDisplay' : stateDisplayed === 'small' && tabDisplayed !== 'img-upload',\n 'images-view__scroll--smallUploadDisplay' : stateDisplayed === 'small' && tabDisplayed === 'img-upload',\n 'images-view__scroll--window': stateDisplayed === 'window'\n}\"\n>\n <div #imgLibContainer class=\"images-view__wrapper\">\n <div *ngIf=\"!listDisplayed || stateDisplayed === 'small'\" [@easeInOut]=\"'in'\">\n <mosaic-view\n [picturesList]=\"picturesList\"\n (picturesListChange)=\"onPicturesListChange()\"\n [tableFilters]=\"tableFilters\"\n (filtersChange)=\"onFiltersChange()\"\n [(disable)]=\"disable\"\n (pictureNameChange)=\"onRenamePicture($event)\"\n [nbFakeImg]=\"nbFakeImg\"\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabDisplayed\"\n [displayPexelsResults]=\"displayPexelsResults\"\n [isLoading]=\"isLoading\"\n [fullSize]=\"fullSize\"\n >\n </mosaic-view>\n </div>\n\n <div *ngIf=\"listDisplayed && stateDisplayed !== 'small'\" [@easeInOut]=\"'in'\">\n <table-view\n [picturesList]=\"picturesList\"\n (picturesListChange)=\"onPicturesListChange()\"\n [tableFilters]=\"tableFilters\"\n (filtersChange)=\"onFiltersChange()\"\n [(disable)]=\"disable\"\n (pictureNameChange)=\"onRenamePicture($event)\"\n [displayPexelsResults]=\"displayPexelsResults\"\n [stateDisplayed]=\"stateDisplayed\"\n [isLoading]=\"isLoading\"\n >\n </table-view>\n </div>\n\n </div>\n</ng-scrollbar>\n\n<!-- Pexels Section - When no img found -->\n<div\n *ngIf=\"displayPexelsResults\"\n class=\"images-view--pexels\"\n [@easeInOut]=\"'in'\">\n <pexels-lib\n [searchValue]=\"tableFilters.searchValue\"\n (showImgUploaded)=\"onShowImgUploaded()\"\n [disableSearch]=\"true\"\n >\n </pexels-lib>\n</div>\n",
|
|
484
484
|
animations: [
|
|
485
485
|
easeInOut,
|
|
486
486
|
insertRemove
|
|
@@ -496,4 +496,4 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
496
496
|
return ImagesViewComponent;
|
|
497
497
|
}());
|
|
498
498
|
export { ImagesViewComponent };
|
|
499
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVEO0lBa0lFLDZCQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFt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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTywgSW1nUGljdHVyZXNEVE8sIFBhcmFtc0ltZ01hbmFnZXJEVE8gfSBmcm9tICcuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlRmlsdGVycyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQaWN0dXJlTmFtZVVwZGF0ZSB9IGZyb20gJy4uLy4uL2R0by9waWN0dXJlLW5hbWUtdXBkYXRlLmR0byc7XG5pbXBvcnQgeyBlYXNlSW5PdXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2Vhc2VJbk91dC9lYXNlLWluLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9pbnNlcnRSZW1vdmUvaW5zZXJ0LXJlbW92ZS5hbmltYXRpb24nO1xuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQsIHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgUmVuYW1lUGljdHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZW5hbWUtcGljdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWFnZXMtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZXMtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBlYXNlSW5PdXQsXG4gICAgaW5zZXJ0UmVtb3ZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xuICBASW5wdXQoKSB0YWJEaXNwbGF5ZWQ6IHRhYkRpc3BsYXllZDtcbiAgQElucHV0KCkgZnVsbFNpemU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heExlbmd0aENhcmRTaG93OiBudW1iZXI7XG4gIEBJbnB1dCgpIGxpc3REaXNwbGF5ZWQgPSBmYWxzZTsgLy8gRGlzcGxheSBmb3JtYXQgbGlzdCBvciBtb3NhaWNcbiAgQElucHV0KCkgbXVsdGlwbGVJbWdNb2RlID0gZmFsc2U7XG5cbiAgLy8gRGF0YSBmaWx0ZXJzXG4gIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzID0ge1xuICAgIHNvcnQ6IHVuZGVmaW5lZCxcbiAgICBvcmRlcjogdW5kZWZpbmVkLFxuICAgIHNlYXJjaFZhbHVlOiAnJyxcbiAgICB0b3RhbEl0ZW1zOiAwLFxuICAgIGl0ZW1zUGVyUGFnZTogMCxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2ltZ0xpYkNvbnRhaW5lcicpIGltZ0xpYkNvbnRhaW5lciA6IEVsZW1lbnRSZWY7XG4gIHdpZHRoTGFyZ2VDYXJkOiBudW1iZXIgPSAyMTk7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE5OSArIG1hcmdpbiAyMFxuICB3aWR0aFNtYWxsQ2FyZDogbnVtYmVyID0gMTYwOyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxNDAgKyBtYXJnaW4gMjBcbiAgbmJNaW5JbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iTWF4SW1nUGVyTGluZTogbnVtYmVyO1xuICBuYkZha2VJbWc6IG51bWJlciA9IDA7XG5cbiAgaW1nRnVsbFdpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDQxOSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA0OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNzE5LCAvLyB0YWJsZXRcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4zMzMzXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEwMjMsIC8vIGRlc2tvcFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTExMVxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMTY2NixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjFcbiAgICB9XG4gIF07XG5cbiAgaW1nV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogMTAyNCxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDExOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMjk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNFxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9XG4gIF07XG5cbiAgaW1nU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XG4gIGltZ1JlbW92ZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdBZGRlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ1NlbGVjdGlvbkNoYW5nZTogU3Vic2NyaXB0aW9uO1xuICBzZWFyY2hRdWVyeUNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgZmlsdGVyc0NoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHBpY3R1cmVzTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIHNhdmVQaWN0dXJlTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIGltZ1NlbGVjdGVkTGlzdDogSW1nUGljdHVyZURUT1tdO1xuICBzZWFyY2hlZFZhbHVlOiBzdHJpbmc7IC8vIFZhbHVlIGZyb20gdGhlIHNlYXJjaCBiYXIgb3IgaW1nIGFkZGVkIGJ5IGNhbnZhXG4gIG5iSW1nVG9EZWxTZWxlY3RlZDogbnVtYmVyID0gMDtcbiAgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2UgdG8gZGlzYWJsZSBhY3Rpb24gZHVyaW5nIHNlcnZlciByZXF1ZXN0XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBQYWdpbmF0b3IgUGFyYW1zXG4gIHBhZ2VJbmRleDogbnVtYmVyID0wO1xuICBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAzMDsgLy8gRGVmYXVsdCB2YWx1ZVxuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgMTAwLCAyNTBdO1xuXG4gIC8vIEFwaSBJbWcgbWFuYWdlciBQYXJhbXNcbiAgcGFyYW1zOlBhcmFtc0ltZ01hbmFnZXJEVE87XG5cbiAgcHJpdmF0ZSBlcnJvckdldEFsbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldEFsbEltZyc7XG4gIHByaXZhdGUgZXJyb3JHZXRJbWcgPSAnSW1nTWFuYWdlci5JbWdMaWIuZXJyb3JHZXRDYW52YUltZyc7XG4gIHByaXZhdGUgbXNnTm9JbWdGb3VuZCA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5ub0ltZ0ZvdW5kJztcbiAgcHJpdmF0ZSBlcnJvclJlbW92ZUltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpc3QuZXJyb3JSZW1vdmVJbWcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nTWFuYWdlcjogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXR0aW5nc1NlcnZpY2U6IFVzZXJTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5hbWVQaWN0dXJlU2VydmljZTogUmVuYW1lUGljdHVyZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1heExlbmd0aENhcmRTaG93KSB7XG4gICAgICB0aGlzLnJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0RXZlbnRzKCk7XG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGlzcGxheSgpO1xuICAgIHRoaXMuX2dldEltZ0xpc3QoKTtcbiAgICBpZiAoIXRoaXMuc2F2ZVBpY3R1cmVMaXN0KSB7XG4gICAgICB0aGlzLnNhdmVQaWN0dXJlTGlzdCA9IHRoaXMucGljdHVyZXNMaXN0O1xuICAgIH1cbiAgfVxuXG4gIHJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCkge1xuICAgIHRoaXMucGljdHVyZXNMaXN0LnNwbGljZSgwLCB0aGlzLm1heExlbmd0aENhcmRTaG93KTtcbiAgfVxuXG4gIGdldEltZ0xpc3QoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogdHJ1ZSA6IGdvIHRvIGxpc3QgZGlzcGxheVxuICAgKiBmYWxzZSA6IGdvIHRvIG1vc2FpYyBkaXNwbGF5XG4gICAqIEBwYXJhbSBhY3RpdmF0ZVxuICAgKi9cbiAgb25Td2l0Y2hGb3JtYXREaXNwbGF5ZWQoYWN0aXZhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxpc3REaXNwbGF5ZWQgPSBhY3RpdmF0ZTtcbiAgICB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2Uuc2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKGFjdGl2YXRlKTtcbiAgICB0aGlzLmltZ0V2ZW50U2VydmljZS5lbWl0bGlzdERpc3BsYXllZENoYW5nZShhY3RpdmF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsIHRoZSBudW1iZXIgb2YgaW1nIHNlbGVjdGVkIGZvciBtYXNzZSBkZWxldGlvblxuICAgKi9cbiAgb25JbWdTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25TaG93SW1nVXBsb2FkZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaGVkVmFsdWUgPSBudWxsO1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgb25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkOiBQaWN0dXJlTmFtZVVwZGF0ZSkge1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uub25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHJlbW92ZUxpc3RJbWcoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgdGhlIGlkIG9mIHRoZSBpbWcgdG8gcmVtb3ZlXG4gICAgLy8gQW5kIGFkZCBkZWxldGVkIHByb3BlcnR5XG4gICAgY29uc3QgaWRJbWdUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKCBpbWcgPT4ge1xuICAgICAgaWYgKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIGlkSW1nVG9SZW1vdmUucHVzaChpbWcuaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIucmVtb3ZlTXVsdGlwbGVJbWcoaWRJbWdUb1JlbW92ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGlvbkJ5SWRzKGlkSW1nVG9SZW1vdmUpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yUmVtb3ZlSW1nKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgfVxuXG4gIHNlbGVjdEltZ0Nob3NlbigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBpY3R1cmVzTGlzdFNlbGVjdGVkOiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5tYXAoaW1nID0+IHtcbiAgICAgIGlmKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsU2VsZWN0ZWQgPWZhbHNlO1xuICAgICAgICBpbWcuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGltZy5zZWxlY3RlZCkge1xuICAgICAgICBwaWN0dXJlc0xpc3RTZWxlY3RlZC5wdXNoKGltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHBpY3R1cmVzTGlzdFNlbGVjdGVkKTtcbiAgfVxuXG4gIGRpc3BsYXlDb25maXJtSW1nU3VwKCl7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsU3VwKCkge1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXQgd2hlbiBhIGltZyBzZWxlY3RlZCBpbiBvcmRlciB0byBkZWxldGVcbiAgICovXG4gIG9uUGljdHVyZXNMaXN0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvbkZpbHRlcnNDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgbnVtYmVyIG9mIGltZyBwZXIgcGFnZSB0byBkaXNwbGF5IGF0IHRoZSBpbml0aWFsaXNhdGlvblxuICAgKiBUaGlzIG51bWJlciBpcyBiZXR3ZWVuIDMwIGFuZCA1MFxuICAgKi9cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGlzcGxheSgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuaW1nTGliQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAzMDsgLy8gKyAzMHB4IC0+IGxlZnQgKyByaWdodCBtYXJnaW5cbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IFttYXhJbWdXaWR0aEZhY3RvciwgbWluSW1nV2lkdGhGYWN0b3JdID0gdGhpcy5nZXRJbWdXaWR0aEZhY3RvcnMoKTtcblxuICAgIGNvbnN0IG1pbkltZ1dpZHRoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAqIG1pbkltZ1dpZHRoRmFjdG9yKTtcbiAgICBjb25zdCBtYXhJbWdXaWR0aCA9IE1hdGguY2VpbCgoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApICogbWF4SW1nV2lkdGhGYWN0b3IpO1xuXG4gICAgdGhpcy5uYk1heEltZ1BlckxpbmUgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluSW1nV2lkdGgpO1xuICAgIHRoaXMubmJNaW5JbWdQZXJMaW5lID0gTWF0aC5mbG9vciggKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAvIG1heEltZ1dpZHRoKTtcblxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdldFRvdGFsSW1nUGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdXaWR0aEZhY3RvcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1pbldpZHRoOm51bWJlciA9IDA7XG4gICAgbGV0IGltZ1NpemVzQ29uZmlnOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEltZ1dpZHRoQ29uZmlnID0gdGhpcy5mdWxsU2l6ZSA/IHRoaXMuaW1nRnVsbFdpZHRoQ29uZmlnIDogdGhpcy5pbWdXaWR0aENvbmZpZztcblxuICAgIGZvciAoY29uc3Qgd2lkdGhDb25maWcgb2YgY3VycmVudEltZ1dpZHRoQ29uZmlnKSB7XG4gICAgICAgIGlmICghd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbldpZHRoIDwgc2NyZWVuV2lkdGggJiYgc2NyZWVuV2lkdGggPD0gd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgbWluV2lkdGggPSB3aWR0aENvbmZpZy5tYXg7XG4gICAgfVxuICAgIHJldHVybiBpbWdTaXplc0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxJbWdQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgbGV0IHRvdGFsID0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICB3aGlsZSAodG90YWwgPCAzMCB8fCB0b3RhbCAlIHRoaXMubmJNYXhJbWdQZXJMaW5lICE9PSAwIHx8ICB0b3RhbCAlIHRoaXMubmJNaW5JbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0b3RhbCArPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcbiAgICB9XG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXJhbXMoKSB7XG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICBsaW1pdDogdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID8gdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCkgOiB0aGlzLnBhZ2VTaXplLnRvU3RyaW5nKCksXG4gICAgICBwYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZS50b1N0cmluZygpXG4gICAgfTtcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1zW1wiZGlzcGxheV9uYW1lOmNvbnRhaW5zXCJdID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nU3Vic2NyaWJlID0gdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWcoaWRfZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgKHBpY3R1cmU6IEltZ1BpY3R1cmVEVE8pID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0SW1nKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdSZW1vdmVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBpbWcgZnJvbSBDYW52YVxuICAgIHRoaXMuaW1nQWRkZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ0FkZGVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICBpZiAoaWRfZmlsZSAmJiAhdGhpcy5pbWdBbHJlYWR5RXhpc3QoaWRfZmlsZSkpIHtcbiAgICAgICAgdGhpcy5nZXRJbWcoaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZSA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcbiAgICB0aGlzLmltZ1N1YnNjcmliZSA9IHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nTGlzdCh0aGlzLnBhcmFtcykuc3Vic2NyaWJlKChkYXRhOiBJbWdQaWN0dXJlc0RUTykgPT4ge1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKHRydWUpO1xuICAgICAgY29uc3QgbmJJbWdEaXNwbGF5ZWQgPSBkYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgdGhpcy5jYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQpO1xuICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnNldFBpY3R1cmVzTGlzdCh0aGlzLnBpY3R1cmVzTGlzdCk7XG4gICAgICB0aGlzLnNlbGVjdEltZ1NlbGVjdGVkKCk7XG4gICAgICB0aGlzLmxlbmd0aCA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID0gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgOiB0aGlzLnBhZ2VTaXplO1xuICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpIHtcbiAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgOCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERpc3BsYXkgUGV4ZWxzIGlmIG5vIHJlc3VsdFxuICAgICAgaWYgKGRhdGEudG90YWxSZWNvcmRzID09PSAwKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVBleGVsc0xpYigpO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRBbGxJbWcpO1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVEO0lBa0lFLDZCQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFt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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTywgSW1nUGljdHVyZXNEVE8sIFBhcmFtc0ltZ01hbmFnZXJEVE8gfSBmcm9tICcuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlRmlsdGVycyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQaWN0dXJlTmFtZVVwZGF0ZSB9IGZyb20gJy4uLy4uL2R0by9waWN0dXJlLW5hbWUtdXBkYXRlLmR0byc7XG5pbXBvcnQgeyBlYXNlSW5PdXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2Vhc2VJbk91dC9lYXNlLWluLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9pbnNlcnRSZW1vdmUvaW5zZXJ0LXJlbW92ZS5hbmltYXRpb24nO1xuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQsIHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgUmVuYW1lUGljdHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZW5hbWUtcGljdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWFnZXMtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZXMtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBlYXNlSW5PdXQsXG4gICAgaW5zZXJ0UmVtb3ZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xuICBASW5wdXQoKSB0YWJEaXNwbGF5ZWQ6IHRhYkRpc3BsYXllZDtcbiAgQElucHV0KCkgZnVsbFNpemU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heExlbmd0aENhcmRTaG93OiBudW1iZXI7XG4gIEBJbnB1dCgpIGxpc3REaXNwbGF5ZWQgPSBmYWxzZTsgLy8gRGlzcGxheSBmb3JtYXQgbGlzdCBvciBtb3NhaWNcbiAgQElucHV0KCkgbXVsdGlwbGVJbWdNb2RlID0gZmFsc2U7XG5cbiAgLy8gRGF0YSBmaWx0ZXJzXG4gIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzID0ge1xuICAgIHNvcnQ6IHVuZGVmaW5lZCxcbiAgICBvcmRlcjogdW5kZWZpbmVkLFxuICAgIHNlYXJjaFZhbHVlOiAnJyxcbiAgICB0b3RhbEl0ZW1zOiAwLFxuICAgIGl0ZW1zUGVyUGFnZTogMCxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2ltZ0xpYkNvbnRhaW5lcicpIGltZ0xpYkNvbnRhaW5lciA6IEVsZW1lbnRSZWY7XG4gIHdpZHRoTGFyZ2VDYXJkOiBudW1iZXIgPSAyMTk7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE5OSArIG1hcmdpbiAyMFxuICB3aWR0aFNtYWxsQ2FyZDogbnVtYmVyID0gMTYwOyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxNDAgKyBtYXJnaW4gMjBcbiAgbmJNaW5JbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iTWF4SW1nUGVyTGluZTogbnVtYmVyO1xuICBuYkZha2VJbWc6IG51bWJlciA9IDA7XG5cbiAgaW1nRnVsbFdpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDQxOSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA0OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNzE5LCAvLyB0YWJsZXRcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4zMzMzXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEwMjMsIC8vIGRlc2tvcFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTExMVxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMTY2NixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjFcbiAgICB9XG4gIF07XG5cbiAgaW1nV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogMTAyNCxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDExOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMjk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNFxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9XG4gIF07XG5cbiAgaW1nU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XG4gIGltZ1JlbW92ZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdBZGRlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ1NlbGVjdGlvbkNoYW5nZTogU3Vic2NyaXB0aW9uO1xuICBzZWFyY2hRdWVyeUNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgZmlsdGVyc0NoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHBpY3R1cmVzTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIHNhdmVQaWN0dXJlTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIGltZ1NlbGVjdGVkTGlzdDogSW1nUGljdHVyZURUT1tdO1xuICBzZWFyY2hlZFZhbHVlOiBzdHJpbmc7IC8vIFZhbHVlIGZyb20gdGhlIHNlYXJjaCBiYXIgb3IgaW1nIGFkZGVkIGJ5IGNhbnZhXG4gIG5iSW1nVG9EZWxTZWxlY3RlZDogbnVtYmVyID0gMDtcbiAgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2UgdG8gZGlzYWJsZSBhY3Rpb24gZHVyaW5nIHNlcnZlciByZXF1ZXN0XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBQYWdpbmF0b3IgUGFyYW1zXG4gIHBhZ2VJbmRleDogbnVtYmVyID0wO1xuICBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAzMDsgLy8gRGVmYXVsdCB2YWx1ZVxuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgMTAwLCAyNTBdO1xuXG4gIC8vIEFwaSBJbWcgbWFuYWdlciBQYXJhbXNcbiAgcGFyYW1zOlBhcmFtc0ltZ01hbmFnZXJEVE87XG5cbiAgcHJpdmF0ZSBlcnJvckdldEFsbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldEFsbEltZyc7XG4gIHByaXZhdGUgZXJyb3JHZXRJbWcgPSAnSW1nTWFuYWdlci5JbWdMaWIuZXJyb3JHZXRDYW52YUltZyc7XG4gIHByaXZhdGUgbXNnTm9JbWdGb3VuZCA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5ub0ltZ0ZvdW5kJztcbiAgcHJpdmF0ZSBlcnJvclJlbW92ZUltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpc3QuZXJyb3JSZW1vdmVJbWcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nTWFuYWdlcjogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXR0aW5nc1NlcnZpY2U6IFVzZXJTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5hbWVQaWN0dXJlU2VydmljZTogUmVuYW1lUGljdHVyZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1heExlbmd0aENhcmRTaG93KSB7XG4gICAgICB0aGlzLnJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0RXZlbnRzKCk7XG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGlzcGxheSgpO1xuICAgIHRoaXMuX2dldEltZ0xpc3QoKTtcbiAgICBpZiAoIXRoaXMuc2F2ZVBpY3R1cmVMaXN0KSB7XG4gICAgICB0aGlzLnNhdmVQaWN0dXJlTGlzdCA9IHRoaXMucGljdHVyZXNMaXN0O1xuICAgIH1cbiAgfVxuXG4gIHJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCkge1xuICAgIHRoaXMucGljdHVyZXNMaXN0LnNwbGljZSgwLCB0aGlzLm1heExlbmd0aENhcmRTaG93KTtcbiAgfVxuXG4gIGdldEltZ0xpc3QoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogdHJ1ZSA6IGdvIHRvIGxpc3QgZGlzcGxheVxuICAgKiBmYWxzZSA6IGdvIHRvIG1vc2FpYyBkaXNwbGF5XG4gICAqIEBwYXJhbSBhY3RpdmF0ZVxuICAgKi9cbiAgb25Td2l0Y2hGb3JtYXREaXNwbGF5ZWQoYWN0aXZhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxpc3REaXNwbGF5ZWQgPSBhY3RpdmF0ZTtcbiAgICB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2Uuc2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKGFjdGl2YXRlKTtcbiAgICB0aGlzLmltZ0V2ZW50U2VydmljZS5lbWl0bGlzdERpc3BsYXllZENoYW5nZShhY3RpdmF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsIHRoZSBudW1iZXIgb2YgaW1nIHNlbGVjdGVkIGZvciBtYXNzZSBkZWxldGlvblxuICAgKi9cbiAgb25JbWdTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25TaG93SW1nVXBsb2FkZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaGVkVmFsdWUgPSBudWxsO1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgb25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkOiBQaWN0dXJlTmFtZVVwZGF0ZSkge1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uub25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHJlbW92ZUxpc3RJbWcoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgdGhlIGlkIG9mIHRoZSBpbWcgdG8gcmVtb3ZlXG4gICAgLy8gQW5kIGFkZCBkZWxldGVkIHByb3BlcnR5XG4gICAgY29uc3QgaWRJbWdUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKCBpbWcgPT4ge1xuICAgICAgaWYgKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIGlkSW1nVG9SZW1vdmUucHVzaChpbWcuaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIucmVtb3ZlTXVsdGlwbGVJbWcoaWRJbWdUb1JlbW92ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGlvbkJ5SWRzKGlkSW1nVG9SZW1vdmUpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yUmVtb3ZlSW1nKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgfVxuXG4gIHNlbGVjdEltZ0Nob3NlbigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBpY3R1cmVzTGlzdFNlbGVjdGVkOiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5tYXAoaW1nID0+IHtcbiAgICAgIGlmKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsU2VsZWN0ZWQgPWZhbHNlO1xuICAgICAgICBpbWcuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGltZy5zZWxlY3RlZCkge1xuICAgICAgICBwaWN0dXJlc0xpc3RTZWxlY3RlZC5wdXNoKGltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHBpY3R1cmVzTGlzdFNlbGVjdGVkKTtcbiAgfVxuXG4gIGRpc3BsYXlDb25maXJtSW1nU3VwKCl7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsU3VwKCkge1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXQgd2hlbiBhIGltZyBzZWxlY3RlZCBpbiBvcmRlciB0byBkZWxldGVcbiAgICovXG4gIG9uUGljdHVyZXNMaXN0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvbkZpbHRlcnNDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgbnVtYmVyIG9mIGltZyBwZXIgcGFnZSB0byBkaXNwbGF5IGF0IHRoZSBpbml0aWFsaXNhdGlvblxuICAgKiBUaGlzIG51bWJlciBpcyBiZXR3ZWVuIDMwIGFuZCA1MFxuICAgKi9cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGlzcGxheSgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuaW1nTGliQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAzMDsgLy8gKyAzMHB4IC0+IGxlZnQgKyByaWdodCBtYXJnaW5cbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IFttYXhJbWdXaWR0aEZhY3RvciwgbWluSW1nV2lkdGhGYWN0b3JdID0gdGhpcy5nZXRJbWdXaWR0aEZhY3RvcnMoKTtcblxuICAgIGNvbnN0IG1pbkltZ1dpZHRoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAqIG1pbkltZ1dpZHRoRmFjdG9yKTtcbiAgICBjb25zdCBtYXhJbWdXaWR0aCA9IE1hdGguY2VpbCgoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApICogbWF4SW1nV2lkdGhGYWN0b3IpO1xuXG4gICAgdGhpcy5uYk1heEltZ1BlckxpbmUgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluSW1nV2lkdGgpO1xuICAgIHRoaXMubmJNaW5JbWdQZXJMaW5lID0gTWF0aC5mbG9vciggKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAvIG1heEltZ1dpZHRoKTtcblxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdldFRvdGFsSW1nUGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdXaWR0aEZhY3RvcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1pbldpZHRoOm51bWJlciA9IDA7XG4gICAgbGV0IGltZ1NpemVzQ29uZmlnOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEltZ1dpZHRoQ29uZmlnID0gdGhpcy5mdWxsU2l6ZSA/IHRoaXMuaW1nRnVsbFdpZHRoQ29uZmlnIDogdGhpcy5pbWdXaWR0aENvbmZpZztcblxuICAgIGZvciAoY29uc3Qgd2lkdGhDb25maWcgb2YgY3VycmVudEltZ1dpZHRoQ29uZmlnKSB7XG4gICAgICAgIGlmICghd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbldpZHRoIDwgc2NyZWVuV2lkdGggJiYgc2NyZWVuV2lkdGggPD0gd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgbWluV2lkdGggPSB3aWR0aENvbmZpZy5tYXg7XG4gICAgfVxuICAgIHJldHVybiBpbWdTaXplc0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxJbWdQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgbGV0IHRvdGFsID0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICB3aGlsZSAodG90YWwgPCAzMCB8fCB0b3RhbCAlIHRoaXMubmJNYXhJbWdQZXJMaW5lICE9PSAwIHx8ICB0b3RhbCAlIHRoaXMubmJNaW5JbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0b3RhbCArPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcbiAgICB9XG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXJhbXMoKSB7XG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICBsaW1pdDogdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID8gdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCkgOiB0aGlzLnBhZ2VTaXplLnRvU3RyaW5nKCksXG4gICAgICBwYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZS50b1N0cmluZygpXG4gICAgfTtcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1zW1wiZGlzcGxheV9uYW1lOmNvbnRhaW5zXCJdID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nU3Vic2NyaWJlID0gdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWcoaWRfZmlsZSkuc3Vic2NyaWJlKFxuICAgICAgKHBpY3R1cmU6IEltZ1BpY3R1cmVEVE8pID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0SW1nKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdSZW1vdmVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBpbWcgZnJvbSBDYW52YVxuICAgIHRoaXMuaW1nQWRkZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ0FkZGVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICBpZiAoaWRfZmlsZSAmJiAhdGhpcy5pbWdBbHJlYWR5RXhpc3QoaWRfZmlsZSkpIHtcbiAgICAgICAgdGhpcy5nZXRJbWcoaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZSA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcbiAgICB0aGlzLmltZ1N1YnNjcmliZSA9IHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nTGlzdCh0aGlzLnBhcmFtcykuc3Vic2NyaWJlKChkYXRhOiBJbWdQaWN0dXJlc0RUTykgPT4ge1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKHRydWUpO1xuICAgICAgY29uc3QgbmJJbWdEaXNwbGF5ZWQgPSBkYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgdGhpcy5jYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQpO1xuICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnNldFBpY3R1cmVzTGlzdCh0aGlzLnBpY3R1cmVzTGlzdCk7XG4gICAgICB0aGlzLnNlbGVjdEltZ1NlbGVjdGVkKCk7XG4gICAgICB0aGlzLmxlbmd0aCA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID0gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgOiB0aGlzLnBhZ2VTaXplO1xuICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpIHtcbiAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgOCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERpc3BsYXkgUGV4ZWxzIGlmIG5vIHJlc3VsdFxuICAgICAgaWYgKGRhdGEudG90YWxSZWNvcmRzID09PSAwKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVBleGVsc0xpYigpO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRBbGxJbWcpO1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -52,11 +52,11 @@ var ImgSelectionComponent = /** @class */ (function () {
|
|
|
52
52
|
ImgSelectionComponent = __decorate([
|
|
53
53
|
Component({
|
|
54
54
|
selector: 'img-selection',
|
|
55
|
-
template: "<div\n class=\"trash\"\n [ngClass]=\"{'trash--visible': dragStart}\"\n cdkDropList\n #unSelectList=\"cdkDropList\"\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\n\n <i class=\"far fa-trash\"></i>\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\n</div>\n\n<div\n class=\"img-selection\"\n [ngClass]=\"{'img-selection--visible' : imgSelectedList && imgSelectedList.length}\">\n\n <div\n cdkDropList\n #selectionList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n class=\"list_img_selection\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"[unSelectList]\"\n >\n\n <div\n class=\"img_box\"\n *ngFor=\"let picture of imgSelectedList; let index = index\"\n cdkDrag\n (cdkDragStarted)=\"dragStart = true;\"\n (cdkDragEnded)=\"dragStart = false;\"\n >\n\n <img\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '
|
|
55
|
+
template: "<div\n class=\"trash\"\n [ngClass]=\"{'trash--visible': dragStart}\"\n cdkDropList\n #unSelectList=\"cdkDropList\"\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\n\n <i class=\"far fa-trash\"></i>\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\n</div>\n\n<div\n class=\"img-selection\"\n [ngClass]=\"{'img-selection--visible' : imgSelectedList && imgSelectedList.length}\">\n\n <div\n cdkDropList\n #selectionList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n class=\"list_img_selection\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"[unSelectList]\"\n >\n\n <div\n class=\"img_box\"\n *ngFor=\"let picture of imgSelectedList; let index = index\"\n cdkDrag\n (cdkDragStarted)=\"dragStart = true;\"\n (cdkDragEnded)=\"dragStart = false;\"\n >\n\n <img\n *ngIf=\"index < 1\"\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '400'\"\n [title]=\"picture.display_name\"\n />\n\n <img\n *ngIf=\"index > 0\"\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '200'\"\n [title]=\"picture.display_name\"\n />\n\n </div>\n </div>\n</div>\n\n<!-- Loader -->\n<ng-container *ngIf=\"isLoading && !(imgSelectedList && imgSelectedList.length)\">\n <wz-loader></wz-loader>\n</ng-container>\n"
|
|
56
56
|
}),
|
|
57
57
|
__metadata("design:paramtypes", [ImgSelectionService])
|
|
58
58
|
], ImgSelectionComponent);
|
|
59
59
|
return ImgSelectionComponent;
|
|
60
60
|
}());
|
|
61
61
|
export { ImgSelectionComponent };
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbWctc2VsZWN0aW9uL2ltZy1zZWxlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBVTNFO0lBWUUsK0JBQ1UsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFWeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRCxvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFDdEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQVksS0FBSyxDQUFDO0lBSXJCLENBQUM7SUFFUCx3Q0FBUSxHQUFSO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDZCQUE2QixFQUFFLENBQUMsU0FBUyxDQUFDLFVBQUEsT0FBTztZQUN4RSxLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxvQ0FBSSxHQUFKO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELDhDQUFjLEdBQWQ7UUFDRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRUQseUNBQVMsR0FBVCxVQUFVLEtBQWE7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxvQ0FBSSxHQUFKLFVBQUssS0FBNEI7UUFDL0IsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxzREFBc0IsR0FBdEIsVUFBdUIsS0FBNEI7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDOztnQkFoQzhCLG1CQUFtQjs7SUFYekM7UUFBUixLQUFLLEVBQUU7OytEQUE0QjtJQUMxQjtRQUFULE1BQU0sRUFBRTs7bUVBQXVDO0lBSHJDLHFCQUFxQjtRQUpqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZUFBZTtZQUN6QiwyK0NBQTZDO1NBQzlDLENBQUM7eUNBYytCLG1CQUFtQjtPQWJ2QyxxQkFBcUIsQ0E4Q2pDO0lBQUQsNEJBQUM7Q0FBQSxBQTlDRCxJQThDQztTQTlDWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8gfSBmcm9tICcuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7Q2RrRHJhZ0Ryb3B9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1nLXNlbGVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJbWdTZWxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBAT3V0cHV0KCkgaW1nTWFuYWdlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBpbWdTZWxlY3RlZExpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICByZW1vdmluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBjYW5jZWxsaW5nQWxsOiBib29sZWFuID0gZmFsc2U7XG4gIGltcG9ydGluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBkcmFnU3RhcnQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlXG4gICAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldEltZ1NlbGVjdGVkKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ0xpc3RMb2FkaW5nRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGxvYWRpbmcgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgIH0pXG4gIH1cblxuICBpbml0KCkge1xuICAgIHRoaXMucmVtb3ZpbmdBbGwgPSBmYWxzZTtcbiAgICB0aGlzLmNhbmNlbGxpbmdBbGwgPSBmYWxzZTtcbiAgICB0aGlzLmltcG9ydGluZ0FsbCA9IGZhbHNlO1xuICB9XG5cbiAgZ2V0SW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCk7XG4gIH1cblxuICByZW1vdmVJbWcoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3RlZEJ5SW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzSW5kZXggIT09IGV2ZW50LmN1cnJlbnRJbmRleCkge1xuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLm1vdmVJbWdPcmRlcihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlSW1nRnJvbVNlbGVjdGlvbihldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJbmRleChldmVudC5wcmV2aW91c0luZGV4KTtcbiAgfVxufVxuIl19
|
|
@@ -15,7 +15,7 @@ var UserSettingsService = /** @class */ (function () {
|
|
|
15
15
|
};
|
|
16
16
|
UserSettingsService.prototype.getUserDisplayPreference = function () {
|
|
17
17
|
var value = localStorage.getItem(this.userdisplayPreference);
|
|
18
|
-
return value == 'true'
|
|
18
|
+
return value == 'true';
|
|
19
19
|
};
|
|
20
20
|
UserSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsService_Factory() { return new UserSettingsService(); }, token: UserSettingsService, providedIn: "root" });
|
|
21
21
|
UserSettingsService = __decorate([
|
|
@@ -27,4 +27,4 @@ var UserSettingsService = /** @class */ (function () {
|
|
|
27
27
|
return UserSettingsService;
|
|
28
28
|
}());
|
|
29
29
|
export { UserSettingsService };
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0M7SUFJSTtRQUZRLDBCQUFxQixHQUFHLDJCQUEyQixDQUFDO0lBRzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsc0RBQXdCLEdBQXhCLFVBQXlCLEtBQWM7UUFDbkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxzREFBd0IsR0FBeEI7UUFDSSxJQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUMzQixDQUFDOztJQW5CUSxtQkFBbUI7UUFIL0IsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQzs7T0FDVyxtQkFBbUIsQ0FxQi9COzhCQTFCRDtDQTBCQyxBQXJCRCxJQXFCQztTQXJCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXR0aW5nc1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSB1c2VyZGlzcGxheVByZWZlcmVuY2UgPSAnV3pJbWdNYW5hZ2VyTGlzdERpc3BsYXllZCc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0cnVlIDogZGlzcGxheSBsaXN0XG4gICAgICogZmFsc2UgOiBkaXNwbGF5IG1vc2FpY1xuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVzZXJkaXNwbGF5UHJlZmVyZW5jZSwgJycgKyB2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMudXNlcmRpc3BsYXlQcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09ICd0cnVlJztcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -76,7 +76,6 @@ var WzImgManagerComponent = /** @class */ (function () {
|
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
78
|
WzImgManagerComponent.prototype.setCurrentTab = function (event) {
|
|
79
|
-
console.log(event);
|
|
80
79
|
if (event === 'img-edition') {
|
|
81
80
|
this.hideTab = true;
|
|
82
81
|
return;
|
|
@@ -205,4 +204,4 @@ var WzImgManagerComponent = /** @class */ (function () {
|
|
|
205
204
|
return WzImgManagerComponent;
|
|
206
205
|
}());
|
|
207
206
|
export { WzImgManagerComponent };
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3otaW1nLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL3d6LWltZy1tYW5hZ2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzdDO0lBMkNFLCtCQUNVLG1CQUF3QyxFQUN4QyxxQkFBOEMsRUFDOUMsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLFVBQXNCO1FBTHRCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBL0N2QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBRyxJQUFJLFlB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LEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsMkNBQVcsR0FBWDtRQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7Z0JBckg4QixtQkFBbUI7Z0JBQ2pCLHVCQUF1QjtnQkFDekIsbUJBQW1CO2dCQUMxQixZQUFZO2dCQUNULGVBQWU7Z0JBQ3BCLFVBQVU7O0lBaER2QjtRQUFSLEtBQUssRUFBRTs7aUVBQWdDO0lBQy9CO1FBQVIsS0FBSyxFQUFFOztnRUFBZ0M7SUFDL0I7UUFBUixLQUFLLEVBQUU7a0NBQWlCLG1CQUFtQjtpRUFBQztJQUNuQztRQUFULE1BQU0sRUFBRTs7bUVBQXVDO0lBR3ZDO1FBQVIsS0FBSyxFQUFFOzs7Z0VBR1A7SUFPUTtRQUFSLEtBQUssRUFBRTs7O3FFQUtQO0lBTW9EO1FBQXBELFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzt5Q0FBeUIsYUFBYTs7aUVBSXpGO0lBaENVLHFCQUFxQjtRQUpqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLG1xREFBOEM7U0FDL0MsQ0FBQzt5Q0E2QytCLG1CQUFtQjtZQUNqQix1QkFBdUI7WUFDekIsbUJBQW1CO1lBQzFCLFlBQVk7WUFDVCxlQUFlO1lBQ3BCLFVBQVU7T0FqRHJCLHFCQUFxQixDQWtLakM7SUFBRCw0QkFBQztDQUFBLEFBbEtELElBa0tDO1NBbEtZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyQ29uZmlnRHRvIH0gZnJvbSAnLi9kdG8vY29uZmlnL2V4dGVybmFsL2V4dGVybmFsLWNvbmZpZy5kdG8nO1xuaW1wb3J0IHsgSW1nTWFuYWdlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbmZpZy9leHRlcm5hbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYW52YVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhbnZhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XG5pbXBvcnQgeyBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3d6LWltZy1tYW5hZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3d6LWltZy1tYW5hZ2VyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXekltZ01hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZXh0ZXJuYWxDb25maWc6IEltZ01hbmFnZXJDb25maWdEdG87XG4gIEBPdXRwdXQoKSBpbWdNYW5hZ2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwcml2YXRlIF9tdWx0aXBsZUltZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgbXVsdGlwbGVJbWdNb2RlKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbXVsdGlwbGVJbWdNb2RlID0gYWN0aXZhdGU7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldE11bHRpcGxlSW1nTW9kZSh0aGlzLl9tdWx0aXBsZUltZ01vZGUpO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlSW1nTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGVJbWdNb2RlO1xuICB9XG5cbiAgX3Nob3dJbWdNYW5hZ2VyTW9kdWxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNldCBzaG93SW1nTWFuYWdlck1vZHVsZShhY3RpdmF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dJbWdNYW5hZ2VyTW9kdWxlID0gYWN0aXZhdGU7XG4gICAgaWYgKGFjdGl2YXRlKSB7XG4gICAgICB0aGlzLmRpc3BsYXlTbWFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93SW1nTWFuYWdlck1vZHVsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGVJbWdNb2RlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc3RhdGVEaXNwbGF5ZWQgJiYgdGhpcy5zdGF0ZURpc3BsYXllZCAhPT0gJ3dpbmRvdycpIHtcbiAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlOiBib29sZWFuID0gZmFsc2VcbiAgc2VsZWN0SW1nRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgbGlzdERpc3BsYXllZDogYm9vbGVhbiA9IGZhbHNlO1xuICBsaXN0RGlzcGxheWVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaGlkZVRhYjogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBTYXZlIHRoZSBkZWZhdXQgb3ZlcmZsb3cgYXBwbHkgdG8gaHRtbCB0YWcsIHdoZW4gdGhlIG1vZHVsZSBpcyBmdWxsIG9wZW5cbiAgcHJpdmF0ZSBvdmVyZmxvd0hUTUw6IHN0cmluZztcbiAgcHJpdmF0ZSBib2R5UGFkZGluZzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGV4dGVybmFsQ29uZmlnU2VydmljZTogSW1nTWFuYWdlckNvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FudmFTZXJ2aWNlOiBDYW52YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGRvbVNlcnZpY2U6IERvbVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZXh0ZXJuYWxDb25maWdTZXJ2aWNlLnNldEV4dGVybmFsQ29uZmlnKHRoaXMuZXh0ZXJuYWxDb25maWcpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRNdWx0aXBsZUltZ01vZGUodGhpcy5fbXVsdGlwbGVJbWdNb2RlKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW5pdEltZ1NlbGVjdGVkTGlzdChudWxsKTtcbiAgICB0aGlzLnNlbGVjdEltZ0V2ZW50ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbkNoYW5nZSgpLnN1YnNjcmliZShpbWdTbGVjdGlvbiA9PntcblxuICAgICAgaWYgKGltZ1NsZWN0aW9uICYmIGltZ1NsZWN0aW9uLmxlbmd0aCAmJiB0aGlzLmNoZWNrQ2xvc2VJbWdNYW5hZ2VyKCkpIHtcbiAgICAgICAgLy8gQ2xvc2UgdGhlIGltZyBtYW5hZ2VyXG4gICAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2hlY2tVc2VyRGlzcGxheVByZWZlcmVuY2UoKTtcbiAgICAvLyBVc2Ugd2hlbiB0aGUgaW1nIG1hbmFnZXIgaXMgZnVsbCBvcGVuIG9yIG9wZW4gaW4gcGFnZS4gVGhpcyBkaXNwbGF5IHRoZSB1c2VyIHByZWZlcmVuY2UgZGlzcGxheSwgbW9zYWljIG9yIGxpc3QuXG4gICAgdGhpcy5saXN0RGlzcGxheWVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRsaXN0RGlzcGxheWVkQ2hhbmdlKCkuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMubGlzdERpc3BsYXllZCA9IHZhbHVlKTtcbiAgICAvLyBSZWdpc3RlciBkb20gc2VydmljZSB0byBsaXN0ZW4gb24gYWxsIGV2ZW50IG9uIHRoZSBib2R5IHRvIGF2b2lkIGhhdmluZyBtdWx0aXBsZSBpbnN0YW5jZSBvZiB0aGUgc2FtZSB0aGluZyBldmVyeSB3aGVyZVxuICAgIHRoaXMuZG9tU2VydmljZS5zZXREb2N1bWVudEV2ZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIGNoZWNrVXNlckRpc3BsYXlQcmVmZXJlbmNlKCkge1xuICAgIGlmICh0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnd2luZG93JyB8fCB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnZnVsbCcpIHtcbiAgICAgIHRoaXMubGlzdERpc3BsYXllZCA9IHRoaXMudXNlclNldHRpbmdzU2VydmljZS5nZXRVc2VyRGlzcGxheVByZWZlcmVuY2UoKTtcbiAgICB9XG4gIH1cblxuICBzZXRDdXJyZW50VGFiKGV2ZW50KSB7XG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xuICAgIGlmIChldmVudCA9PT0gJ2ltZy1lZGl0aW9uJykge1xuICAgICAgdGhpcy5oaWRlVGFiID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oaWRlVGFiID0gZmFsc2U7XG4gIH1cblxuICBkaXNwbGF5U21hbGwoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdzbWFsbCc7XG4gICAgICAgIHRoaXMuYWRkQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU21hbGwoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdzbWFsbCc7XG4gICAgdGhpcy5zZXRCb2R5TWFpblNjcm9sbCgpO1xuICAgIHRoaXMubGlzdERpc3BsYXllZCA9IGZhbHNlO1xuICB9XG5cbiAgb3BlbkZ1bGwoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdmdWxsJztcbiAgICB0aGlzLmNoZWNrVXNlckRpc3BsYXlQcmVmZXJlbmNlKCk7XG4gICAgdGhpcy5oaWRlQm9keU1haW5TY3JvbGwoKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVRhYiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0Qm9keU1haW5TY3JvbGwoKTtcbiAgICB0aGlzLnJlbW92ZUJvZHlCb3R0b21QYWRkaW5nRm9yTW9kdWxlKCk7XG4gICAgLy8gV2FpdCB0aGUgZW5kIG9mIHRoZSBjbG9zaW5nIGFubmltYXRpb25cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW1nTWFuYWdlckNsb3NlZC5lbWl0KCk7XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIG9uSW1nTWFuYWdlckNsb3NlZCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgaW1nIG1hbmFnZXIgYWZ0ZXIgb25lIGltZyBpcyBzZWxlY3RlZCwgaWYgbm90IGluIG11bHRpcGxlIGltZyB0byBzZWxlY3RcbiAgICovXG4gIGNoZWNrQ2xvc2VJbWdNYW5hZ2VyKCkge1xuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZUltZ01vZGUgJiYgdGhpcy5zdGF0ZURpc3BsYXllZCAhPT0gJ3dpbmRvdycgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBoaWRlQm9keU1haW5TY3JvbGwoKSB7XG4gICAgY29uc3QgaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF07XG5cbiAgICBpZiAoIXRoaXMub3ZlcmZsb3dIVE1MKSB7XG4gICAgICB0aGlzLm92ZXJmbG93SFRNTCA9IGh0bWwuc3R5bGUub3ZlcmZsb3dZO1xuICAgIH1cblxuICAgIGh0bWwuc3R5bGUub3ZlcmZsb3dZID0gXCJoaWRkZW5cIjtcbiAgfVxuXG4gIHNldEJvZHlNYWluU2Nyb2xsKCkge1xuICAgIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdO1xuICAgIGh0bWwuc3R5bGUub3ZlcmZsb3dZID0gdGhpcy5vdmVyZmxvd0hUTUwgPyB0aGlzLm92ZXJmbG93SFRNTCA6IFwic2Nyb2xsXCI7XG4gIH1cblxuICBhZGRCb2R5Qm90dG9tUGFkZGluZ0Zvck1vZHVsZSgpIHtcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTtcbiAgICB0aGlzLmJvZHlQYWRkaW5nID0gdGhpcy5ib2R5UGFkZGluZyA/IHBhcnNlSW50KGJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbSkgOiAwO1xuICAgIGJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbSA9IHRoaXMuYm9keVBhZGRpbmcgKyAzMDAgKyAncHgnO1xuICB9XG5cbiAgcmVtb3ZlQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmJvZHlQYWRkaW5nICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07XG4gICAgICBib2R5LnN0eWxlLnBhZGRpbmdCb3R0b20gPSB0aGlzLmJvZHlQYWRkaW5nICsgJ3B4JztcbiAgICAgIHRoaXMuYm9keVBhZGRpbmcgPSAwO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0SW1nRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNhbnZhU2VydmljZS5leHBlY3RlZEltZ1NpemVzQ2hhbmdlKG51bGwpO1xuICAgIHRoaXMubGlzdERpc3BsYXllZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3otaW1nLW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL3d6LWltZy1tYW5hZ2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzdDO0lBMkNFLCtCQUNVLG1CQUF3QyxFQUN4QyxxQkFBOEMsRUFDOUMsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLFVBQXNCO1FBTHRCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBL0N2QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUU5QixxQkFBZ0IsR0FBRyxJQUFJLFlB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SUFBSSxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELDJDQUFXLEdBQVg7UUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7O2dCQXBIOEIsbUJBQW1CO2dCQUNqQix1QkFBdUI7Z0JBQ3pCLG1CQUFtQjtnQkFDMUIsWUFBWTtnQkFDVCxlQUFlO2dCQUNwQixVQUFVOztJQWhEdkI7UUFBUixLQUFLLEVBQUU7O2lFQUFnQztJQUMvQjtRQUFSLEtBQUssRUFBRTs7Z0VBQWdDO0lBQy9CO1FBQVIsS0FBSyxFQUFFO2tDQUFpQixtQkFBbUI7aUVBQUM7SUFDbkM7UUFBVCxNQUFNLEVBQUU7O21FQUF1QztJQUd2QztRQUFSLEtBQUssRUFBRTs7O2dFQUdQO0lBT1E7UUFBUixLQUFLLEVBQUU7OztxRUFLUDtJQU1vRDtRQUFwRCxZQUFZLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7eUNBQXlCLGFBQWE7O2lFQUl6RjtJQWhDVSxxQkFBcUI7UUFKakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixtcURBQThDO1NBQy9DLENBQUM7eUNBNkMrQixtQkFBbUI7WUFDakIsdUJBQXVCO1lBQ3pCLG1CQUFtQjtZQUMxQixZQUFZO1lBQ1QsZUFBZTtZQUNwQixVQUFVO09BakRyQixxQkFBcUIsQ0FpS2pDO0lBQUQsNEJBQUM7Q0FBQSxBQWpLRCxJQWlLQztTQWpLWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nTWFuYWdlckNvbmZpZ0R0byB9IGZyb20gJy4vZHRvL2NvbmZpZy9leHRlcm5hbC9leHRlcm5hbC1jb25maWcuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25maWcvZXh0ZXJuYWwtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FudmFTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jYW52YS5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ0V2ZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG9tLnNlcnZpY2UnO1xuaW1wb3J0IHsgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1pbWctbWFuYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93ei1pbWctbWFuYWdlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3pJbWdNYW5hZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xuICBASW5wdXQoKSBzaG93U2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4dGVybmFsQ29uZmlnOiBJbWdNYW5hZ2VyQ29uZmlnRHRvO1xuICBAT3V0cHV0KCkgaW1nTWFuYWdlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBfbXVsdGlwbGVJbWdNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IG11bHRpcGxlSW1nTW9kZShhY3RpdmF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlSW1nTW9kZSA9IGFjdGl2YXRlO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRNdWx0aXBsZUltZ01vZGUodGhpcy5fbXVsdGlwbGVJbWdNb2RlKTtcbiAgfVxuXG4gIGdldCBtdWx0aXBsZUltZ01vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlSW1nTW9kZTtcbiAgfVxuXG4gIF9zaG93SW1nTWFuYWdlck1vZHVsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgc2hvd0ltZ01hbmFnZXJNb2R1bGUoYWN0aXZhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93SW1nTWFuYWdlck1vZHVsZSA9IGFjdGl2YXRlO1xuICAgIGlmIChhY3RpdmF0ZSkge1xuICAgICAgdGhpcy5kaXNwbGF5U21hbGwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0ltZ01hbmFnZXJNb2R1bGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlSW1nTW9kZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnN0YXRlRGlzcGxheWVkICYmIHRoaXMuc3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnKSB7XG4gICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZTogYm9vbGVhbiA9IGZhbHNlXG4gIHNlbGVjdEltZ0V2ZW50OiBTdWJzY3JpcHRpb247XG4gIGxpc3REaXNwbGF5ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbGlzdERpc3BsYXllZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGhpZGVUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8gU2F2ZSB0aGUgZGVmYXV0IG92ZXJmbG93IGFwcGx5IHRvIGh0bWwgdGFnLCB3aGVuIHRoZSBtb2R1bGUgaXMgZnVsbCBvcGVuXG4gIHByaXZhdGUgb3ZlcmZsb3dIVE1MOiBzdHJpbmc7XG4gIHByaXZhdGUgYm9keVBhZGRpbmc6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHRlcm5hbENvbmZpZ1NlcnZpY2U6IEltZ01hbmFnZXJDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNldHRpbmdzU2VydmljZTogVXNlclNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGNhbnZhU2VydmljZTogQ2FudmFTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmV4dGVybmFsQ29uZmlnU2VydmljZS5zZXRFeHRlcm5hbENvbmZpZyh0aGlzLmV4dGVybmFsQ29uZmlnKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0TXVsdGlwbGVJbWdNb2RlKHRoaXMuX211bHRpcGxlSW1nTW9kZSk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmluaXRJbWdTZWxlY3RlZExpc3QobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RJbWdFdmVudCA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2xlY3Rpb24gPT57XG5cbiAgICAgIGlmIChpbWdTbGVjdGlvbiAmJiBpbWdTbGVjdGlvbi5sZW5ndGggJiYgdGhpcy5jaGVja0Nsb3NlSW1nTWFuYWdlcigpKSB7XG4gICAgICAgIC8vIENsb3NlIHRoZSBpbWcgbWFuYWdlclxuICAgICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNoZWNrVXNlckRpc3BsYXlQcmVmZXJlbmNlKCk7XG4gICAgLy8gVXNlIHdoZW4gdGhlIGltZyBtYW5hZ2VyIGlzIGZ1bGwgb3BlbiBvciBvcGVuIGluIHBhZ2UuIFRoaXMgZGlzcGxheSB0aGUgdXNlciBwcmVmZXJlbmNlIGRpc3BsYXksIG1vc2FpYyBvciBsaXN0LlxuICAgIHRoaXMubGlzdERpc3BsYXllZEV2ZW50ID0gdGhpcy5pbWdFdmVudFNlcnZpY2UuZ2V0bGlzdERpc3BsYXllZENoYW5nZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmxpc3REaXNwbGF5ZWQgPSB2YWx1ZSk7XG4gICAgLy8gUmVnaXN0ZXIgZG9tIHNlcnZpY2UgdG8gbGlzdGVuIG9uIGFsbCBldmVudCBvbiB0aGUgYm9keSB0byBhdm9pZCBoYXZpbmcgbXVsdGlwbGUgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgdGhpbmcgZXZlcnkgd2hlcmVcbiAgICB0aGlzLmRvbVNlcnZpY2Uuc2V0RG9jdW1lbnRFdmVudExpc3RlbmVyKCk7XG4gIH1cblxuICBjaGVja1VzZXJEaXNwbGF5UHJlZmVyZW5jZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZURpc3BsYXllZCA9PT0gJ3dpbmRvdycgfHwgdGhpcy5zdGF0ZURpc3BsYXllZCA9PT0gJ2Z1bGwnKSB7XG4gICAgICB0aGlzLmxpc3REaXNwbGF5ZWQgPSB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2UuZ2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q3VycmVudFRhYihldmVudCkge1xuICAgIGlmIChldmVudCA9PT0gJ2ltZy1lZGl0aW9uJykge1xuICAgICAgdGhpcy5oaWRlVGFiID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oaWRlVGFiID0gZmFsc2U7XG4gIH1cblxuICBkaXNwbGF5U21hbGwoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGVEaXNwbGF5ZWQgIT09ICd3aW5kb3cnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdzbWFsbCc7XG4gICAgICAgIHRoaXMuYWRkQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU21hbGwoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdzbWFsbCc7XG4gICAgdGhpcy5zZXRCb2R5TWFpblNjcm9sbCgpO1xuICAgIHRoaXMubGlzdERpc3BsYXllZCA9IGZhbHNlO1xuICB9XG5cbiAgb3BlbkZ1bGwoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdmdWxsJztcbiAgICB0aGlzLmNoZWNrVXNlckRpc3BsYXlQcmVmZXJlbmNlKCk7XG4gICAgdGhpcy5oaWRlQm9keU1haW5TY3JvbGwoKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5zdGF0ZURpc3BsYXllZCA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVRhYiA9IGZhbHNlO1xuICAgIHRoaXMuc2V0Qm9keU1haW5TY3JvbGwoKTtcbiAgICB0aGlzLnJlbW92ZUJvZHlCb3R0b21QYWRkaW5nRm9yTW9kdWxlKCk7XG4gICAgLy8gV2FpdCB0aGUgZW5kIG9mIHRoZSBjbG9zaW5nIGFubmltYXRpb25cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW1nTWFuYWdlckNsb3NlZC5lbWl0KCk7XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIG9uSW1nTWFuYWdlckNsb3NlZCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgaW1nIG1hbmFnZXIgYWZ0ZXIgb25lIGltZyBpcyBzZWxlY3RlZCwgaWYgbm90IGluIG11bHRpcGxlIGltZyB0byBzZWxlY3RcbiAgICovXG4gIGNoZWNrQ2xvc2VJbWdNYW5hZ2VyKCkge1xuICAgIHJldHVybiAhdGhpcy5tdWx0aXBsZUltZ01vZGUgJiYgdGhpcy5zdGF0ZURpc3BsYXllZCAhPT0gJ3dpbmRvdycgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBoaWRlQm9keU1haW5TY3JvbGwoKSB7XG4gICAgY29uc3QgaHRtbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF07XG5cbiAgICBpZiAoIXRoaXMub3ZlcmZsb3dIVE1MKSB7XG4gICAgICB0aGlzLm92ZXJmbG93SFRNTCA9IGh0bWwuc3R5bGUub3ZlcmZsb3dZO1xuICAgIH1cblxuICAgIGh0bWwuc3R5bGUub3ZlcmZsb3dZID0gXCJoaWRkZW5cIjtcbiAgfVxuXG4gIHNldEJvZHlNYWluU2Nyb2xsKCkge1xuICAgIGNvbnN0IGh0bWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdO1xuICAgIGh0bWwuc3R5bGUub3ZlcmZsb3dZID0gdGhpcy5vdmVyZmxvd0hUTUwgPyB0aGlzLm92ZXJmbG93SFRNTCA6IFwic2Nyb2xsXCI7XG4gIH1cblxuICBhZGRCb2R5Qm90dG9tUGFkZGluZ0Zvck1vZHVsZSgpIHtcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTtcbiAgICB0aGlzLmJvZHlQYWRkaW5nID0gdGhpcy5ib2R5UGFkZGluZyA/IHBhcnNlSW50KGJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbSkgOiAwO1xuICAgIGJvZHkuc3R5bGUucGFkZGluZ0JvdHRvbSA9IHRoaXMuYm9keVBhZGRpbmcgKyAzMDAgKyAncHgnO1xuICB9XG5cbiAgcmVtb3ZlQm9keUJvdHRvbVBhZGRpbmdGb3JNb2R1bGUoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmJvZHlQYWRkaW5nICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF07XG4gICAgICBib2R5LnN0eWxlLnBhZGRpbmdCb3R0b20gPSB0aGlzLmJvZHlQYWRkaW5nICsgJ3B4JztcbiAgICAgIHRoaXMuYm9keVBhZGRpbmcgPSAwO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0SW1nRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNhbnZhU2VydmljZS5leHBlY3RlZEltZ1NpemVzQ2hhbmdlKG51bGwpO1xuICAgIHRoaXMubGlzdERpc3BsYXllZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -348,7 +348,7 @@ let UserSettingsService = class UserSettingsService {
|
|
|
348
348
|
}
|
|
349
349
|
getUserDisplayPreference() {
|
|
350
350
|
const value = localStorage.getItem(this.userdisplayPreference);
|
|
351
|
-
return value == 'true'
|
|
351
|
+
return value == 'true';
|
|
352
352
|
}
|
|
353
353
|
};
|
|
354
354
|
UserSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsService_Factory() { return new UserSettingsService(); }, token: UserSettingsService, providedIn: "root" });
|
|
@@ -570,7 +570,6 @@ let WzImgManagerComponent = class WzImgManagerComponent {
|
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
572
|
setCurrentTab(event) {
|
|
573
|
-
console.log(event);
|
|
574
573
|
if (event === 'img-edition') {
|
|
575
574
|
this.hideTab = true;
|
|
576
575
|
return;
|
|
@@ -1749,12 +1748,11 @@ ImgEditorComponent = __decorate([
|
|
|
1749
1748
|
], ImgEditorComponent);
|
|
1750
1749
|
|
|
1751
1750
|
let CanvaBtnComponent = class CanvaBtnComponent {
|
|
1752
|
-
constructor(canvaService, imgManager, wzImgEventService, translateService,
|
|
1751
|
+
constructor(canvaService, imgManager, wzImgEventService, translateService, alertService, renderer) {
|
|
1753
1752
|
this.canvaService = canvaService;
|
|
1754
1753
|
this.imgManager = imgManager;
|
|
1755
1754
|
this.wzImgEventService = wzImgEventService;
|
|
1756
1755
|
this.translateService = translateService;
|
|
1757
|
-
this.imgSelectionService = imgSelectionService;
|
|
1758
1756
|
this.alertService = alertService;
|
|
1759
1757
|
this.renderer = renderer;
|
|
1760
1758
|
this.showImgUploaded = new EventEmitter();
|
|
@@ -1790,12 +1788,10 @@ let CanvaBtnComponent = class CanvaBtnComponent {
|
|
|
1790
1788
|
if (mediaDTO) {
|
|
1791
1789
|
this.expectedWidth = parseInt(mediaDTO.image_width, 10);
|
|
1792
1790
|
this.expectedHeight = parseInt(mediaDTO.image_height, 10);
|
|
1793
|
-
this.imgExpectedByWiziblock = true;
|
|
1794
1791
|
}
|
|
1795
1792
|
else {
|
|
1796
1793
|
this.expectedWidth = undefined;
|
|
1797
1794
|
this.expectedHeight = undefined;
|
|
1798
|
-
this.imgExpectedByWiziblock = false;
|
|
1799
1795
|
}
|
|
1800
1796
|
});
|
|
1801
1797
|
this.subs.push(subExpectedImgSizesChange);
|
|
@@ -1835,11 +1831,6 @@ let CanvaBtnComponent = class CanvaBtnComponent {
|
|
|
1835
1831
|
const subUploadImg = this.imgManager.uploadFileByUrl(exportUrl, designTitle).subscribe((img) => {
|
|
1836
1832
|
this.imgLoading = false;
|
|
1837
1833
|
this.removeOverflowBody();
|
|
1838
|
-
// Close the img manager and display the img create in the wiziblock
|
|
1839
|
-
if (this.imgExpectedByWiziblock) {
|
|
1840
|
-
this.imgSelectionService.addImgSelected(img);
|
|
1841
|
-
return;
|
|
1842
|
-
}
|
|
1843
1834
|
this.wzImgEventService.emitImgAdded(img.id_file);
|
|
1844
1835
|
this.alertService.openAlert(this.successUploadPhoto);
|
|
1845
1836
|
}, error => {
|
|
@@ -1869,7 +1860,6 @@ CanvaBtnComponent.ctorParameters = () => [
|
|
|
1869
1860
|
{ type: ImgManagerService },
|
|
1870
1861
|
{ type: ImgEventService },
|
|
1871
1862
|
{ type: TranslateService },
|
|
1872
|
-
{ type: ImgSelectionService },
|
|
1873
1863
|
{ type: AlertService },
|
|
1874
1864
|
{ type: Renderer2 }
|
|
1875
1865
|
];
|
|
@@ -1890,7 +1880,6 @@ CanvaBtnComponent = __decorate([
|
|
|
1890
1880
|
ImgManagerService,
|
|
1891
1881
|
ImgEventService,
|
|
1892
1882
|
TranslateService,
|
|
1893
|
-
ImgSelectionService,
|
|
1894
1883
|
AlertService,
|
|
1895
1884
|
Renderer2])
|
|
1896
1885
|
], CanvaBtnComponent);
|
|
@@ -1946,7 +1935,7 @@ __decorate([
|
|
|
1946
1935
|
ImgSelectionComponent = __decorate([
|
|
1947
1936
|
Component({
|
|
1948
1937
|
selector: 'img-selection',
|
|
1949
|
-
template: "<div\n class=\"trash\"\n [ngClass]=\"{'trash--visible': dragStart}\"\n cdkDropList\n #unSelectList=\"cdkDropList\"\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\n\n <i class=\"far fa-trash\"></i>\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\n</div>\n\n<div\n class=\"img-selection\"\n [ngClass]=\"{'img-selection--visible' : imgSelectedList && imgSelectedList.length}\">\n\n <div\n cdkDropList\n #selectionList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n class=\"list_img_selection\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"[unSelectList]\"\n >\n\n <div\n class=\"img_box\"\n *ngFor=\"let picture of imgSelectedList; let index = index\"\n cdkDrag\n (cdkDragStarted)=\"dragStart = true;\"\n (cdkDragEnded)=\"dragStart = false;\"\n >\n\n <img\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '
|
|
1938
|
+
template: "<div\n class=\"trash\"\n [ngClass]=\"{'trash--visible': dragStart}\"\n cdkDropList\n #unSelectList=\"cdkDropList\"\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\n\n <i class=\"far fa-trash\"></i>\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\n</div>\n\n<div\n class=\"img-selection\"\n [ngClass]=\"{'img-selection--visible' : imgSelectedList && imgSelectedList.length}\">\n\n <div\n cdkDropList\n #selectionList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n class=\"list_img_selection\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListConnectedTo]=\"[unSelectList]\"\n >\n\n <div\n class=\"img_box\"\n *ngFor=\"let picture of imgSelectedList; let index = index\"\n cdkDrag\n (cdkDragStarted)=\"dragStart = true;\"\n (cdkDragEnded)=\"dragStart = false;\"\n >\n\n <img\n *ngIf=\"index < 1\"\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '400'\"\n [title]=\"picture.display_name\"\n />\n\n <img\n *ngIf=\"index > 0\"\n class=\"drag__img\"\n [src]=\"picture.file_name | imgSrc : '200'\"\n [title]=\"picture.display_name\"\n />\n\n </div>\n </div>\n</div>\n\n<!-- Loader -->\n<ng-container *ngIf=\"isLoading && !(imgSelectedList && imgSelectedList.length)\">\n <wz-loader></wz-loader>\n</ng-container>\n"
|
|
1950
1939
|
}),
|
|
1951
1940
|
__metadata("design:paramtypes", [ImgSelectionService])
|
|
1952
1941
|
], ImgSelectionComponent);
|
|
@@ -2872,7 +2861,7 @@ __decorate([
|
|
|
2872
2861
|
ImagesViewComponent = __decorate([
|
|
2873
2862
|
Component({
|
|
2874
2863
|
selector: 'images-view',
|
|
2875
|
-
template: "<div class=\"images-view\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\n <!-- Subheader : Img number and actions btn (sup img list, switch forma display) -->\n <div\n *ngIf=\"(stateDisplayed !== 'small' || tabDisplayed === 'img-upload')\"\n class=\"images-view__container\"\n [ngClass]=\"{'images-view__container--uploadTab': tabDisplayed === 'img-upload', 'images-view__container--window': stateDisplayed === 'window'}\"\n >\n\n <div *ngIf=\"tabDisplayed !== 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.nbImg' | translate }} : {{length}}</p>\n </div>\n <div *ngIf=\"tabDisplayed === 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.lastImgs' | translate }}</p>\n </div>\n\n <div class=\"field has-addons subHeaderActions\" *ngIf=\"tabDisplayed !== 'img-upload'\">\n\n <!-- For listforma : Display btn del multiple img & Confirm action -->\n <div class=\"images-view__container__boxAction\">\n\n\n <!-- S\u00E9lectionner -->\n <button\n class=\"button success images-view__container__boxAction__import\"\n @insertRemoveAnnim\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup && !delListImgLoader && multipleImgMode\"\n (click)=\"selectImgChosen()\"\n >\n <i class=\"fal fa-check\"></i>\n {{ 'ImgManager.ImgLib.select' | translate }} ({{nbImgToDelSelected}})\n </button>\n\n <!-- Display btn del multiple img -->\n <button\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup\"\n (click)=\"displayConfirmImgSup()\"\n class=\"button images-view__container__boxAction__delBtn danger\"\n @insertRemoveAnnim\n >\n <i class=\"fal fa-times\"></i>{{ 'ImgManager.ImgLib.delMlt' | translate }} ({{nbImgToDelSelected}})\n <span btnLoadingAnim *ngIf=\"delListImgLoader\" class=\"btnLoadingAnnimation\"></span>\n </button>\n\n <!-- Confirm action -->\n <div\n class=\"images-view__container__boxAction__confirmSup\"\n [ngClass]=\"{'images-view__container__boxAction__confirmSup--visible': confirmImgSup}\">\n <p class=\"images-view__container__boxAction__confirmSup__text\">{{
|
|
2864
|
+
template: "<div class=\"images-view\" [ngClass]=\"{'fullSize': fullSize, 'small': stateDisplayed === 'small'}\" [@easeInOut]=\"'in'\">\n <!-- Subheader : Img number and actions btn (sup img list, switch forma display) -->\n <div\n *ngIf=\"(stateDisplayed !== 'small' || tabDisplayed === 'img-upload')\"\n class=\"images-view__container\"\n [ngClass]=\"{'images-view__container--uploadTab': tabDisplayed === 'img-upload', 'images-view__container--window': stateDisplayed === 'window'}\"\n >\n\n <div *ngIf=\"tabDisplayed !== 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.nbImg' | translate }} : {{length}}</p>\n </div>\n <div *ngIf=\"tabDisplayed === 'img-upload'\">\n <p class=\"mainColor\">{{ 'ImgManager.ImgLib.lastImgs' | translate }}</p>\n </div>\n\n <div class=\"field has-addons subHeaderActions\" *ngIf=\"tabDisplayed !== 'img-upload'\">\n\n <!-- For listforma : Display btn del multiple img & Confirm action -->\n <div class=\"images-view__container__boxAction\">\n\n\n <!-- S\u00E9lectionner -->\n <button\n class=\"button success images-view__container__boxAction__import\"\n @insertRemoveAnnim\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup && !delListImgLoader && multipleImgMode\"\n (click)=\"selectImgChosen()\"\n >\n <i class=\"fal fa-check\"></i>\n {{ 'ImgManager.ImgLib.select' | translate }} ({{nbImgToDelSelected}})\n </button>\n\n <!-- Display btn del multiple img -->\n <button\n *ngIf=\"listDisplayed && nbImgToDelSelected && !confirmImgSup\"\n (click)=\"displayConfirmImgSup()\"\n class=\"button images-view__container__boxAction__delBtn danger\"\n @insertRemoveAnnim\n >\n <i class=\"fal fa-times\"></i>{{ 'ImgManager.ImgLib.delMlt' | translate }} ({{nbImgToDelSelected}})\n <span btnLoadingAnim *ngIf=\"delListImgLoader\" class=\"btnLoadingAnnimation\"></span>\n </button>\n\n <!-- Confirm action -->\n <div\n class=\"images-view__container__boxAction__confirmSup\"\n [ngClass]=\"{'images-view__container__boxAction__confirmSup--visible': confirmImgSup}\">\n <p *ngIf=\"nbImgToDelSelected > 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestions' | translate:{nbImage: nbImgToDelSelected} }}</p>\n <p *ngIf=\"nbImgToDelSelected === 1\" class=\"images-view__container__boxAction__confirmSup__text\">{{ 'ImgManager.ImgLib.confirmSupQuestion' | translate:{nbImage: nbImgToDelSelected} }}</p>\n <div>\n <button\n class=\"button images-view__container__boxAction__confirmSup__cancel\"\n (click)=\"cancelSup()\"\n >\n {{ 'ImgManager.ImgLib.cancel' | translate }}\n </button>\n <button\n (click)=\"removeListImg()\"\n class=\"button images-view__container__delBtn danger\"\n >\n {{ 'ImgManager.ImgLib.confirm' | translate }}\n </button>\n </div>\n </div>\n\n </div>\n\n\n <!-- Swith mosaic/list forma -->\n <div class=\"field has-addons images-view__container__buttonBox\">\n <p class=\"control\">\n <button\n class=\"button is-lighted images-view__container__buttonBox__btn\"\n [ngClass]=\"{'actifDisplayed': !listDisplayed}\"\n (click)=\"onSwitchFormatDisplayed(false)\"\n >\n <span class=\"icon is-small\">\n <i class=\"far fa-th\"></i>\n </span>\n </button>\n </p>\n\n <p class=\"control\">\n <button class=\"button is-lighted images-view__container__buttonBox__btn\"\n [ngClass]=\"{'actifDisplayed': listDisplayed}\"\n (click)=\"onSwitchFormatDisplayed(true)\"\n >\n <span class=\"icon is-small\">\n <i class=\"fas fa-bars\"></i>\n </span>\n </button>\n </p>\n </div>\n </div>\n </div>\n</div>\n\n\n <!-- Images section -->\n<ng-scrollbar\n #scrollable\n [visibility]=\"'native'\"\n class=\"images-view__scroll\"\n [ngClass]=\"{\n 'images-view__scroll--hide--mosaic': displayPexelsResults && !listDisplayed,\n 'images-view__scroll--hide--mosaic--small': displayPexelsResults && !listDisplayed && stateDisplayed === 'small',\n 'images-view__scroll--hide--table': displayPexelsResults && listDisplayed,\n 'images-view__scroll--full': stateDisplayed === 'full',\n 'images-view__scroll--smallDisplay' : stateDisplayed === 'small' && tabDisplayed !== 'img-upload',\n 'images-view__scroll--smallUploadDisplay' : stateDisplayed === 'small' && tabDisplayed === 'img-upload',\n 'images-view__scroll--window': stateDisplayed === 'window'\n}\"\n>\n <div #imgLibContainer class=\"images-view__wrapper\">\n <div *ngIf=\"!listDisplayed || stateDisplayed === 'small'\" [@easeInOut]=\"'in'\">\n <mosaic-view\n [picturesList]=\"picturesList\"\n (picturesListChange)=\"onPicturesListChange()\"\n [tableFilters]=\"tableFilters\"\n (filtersChange)=\"onFiltersChange()\"\n [(disable)]=\"disable\"\n (pictureNameChange)=\"onRenamePicture($event)\"\n [nbFakeImg]=\"nbFakeImg\"\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabDisplayed\"\n [displayPexelsResults]=\"displayPexelsResults\"\n [isLoading]=\"isLoading\"\n [fullSize]=\"fullSize\"\n >\n </mosaic-view>\n </div>\n\n <div *ngIf=\"listDisplayed && stateDisplayed !== 'small'\" [@easeInOut]=\"'in'\">\n <table-view\n [picturesList]=\"picturesList\"\n (picturesListChange)=\"onPicturesListChange()\"\n [tableFilters]=\"tableFilters\"\n (filtersChange)=\"onFiltersChange()\"\n [(disable)]=\"disable\"\n (pictureNameChange)=\"onRenamePicture($event)\"\n [displayPexelsResults]=\"displayPexelsResults\"\n [stateDisplayed]=\"stateDisplayed\"\n [isLoading]=\"isLoading\"\n >\n </table-view>\n </div>\n\n </div>\n</ng-scrollbar>\n\n<!-- Pexels Section - When no img found -->\n<div\n *ngIf=\"displayPexelsResults\"\n class=\"images-view--pexels\"\n [@easeInOut]=\"'in'\">\n <pexels-lib\n [searchValue]=\"tableFilters.searchValue\"\n (showImgUploaded)=\"onShowImgUploaded()\"\n [disableSearch]=\"true\"\n >\n </pexels-lib>\n</div>\n",
|
|
2876
2865
|
animations: [
|
|
2877
2866
|
easeInOut,
|
|
2878
2867
|
insertRemove
|