@wizishop/img-manager 15.2.63-beta → 15.2.65-beta

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.
Files changed (27) hide show
  1. package/assets/i18n/en.json +1 -1
  2. package/assets/i18n/es.json +1 -1
  3. package/assets/i18n/fr.json +1 -1
  4. package/assets/i18n/it.json +1 -1
  5. package/esm2020/lib/components/images-view/images-actions-handler.mjs +2 -1
  6. package/esm2020/lib/components/images-view/images-view.component.mjs +12 -9
  7. package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +3 -3
  8. package/esm2020/lib/components/img-editor/img-editor.component.mjs +3 -3
  9. package/esm2020/lib/components/img-editor/show-iframe/show-iframe.component.mjs +62 -11
  10. package/esm2020/lib/components/img-selection/img-selection.component.mjs +3 -3
  11. package/esm2020/lib/components/shared/table/table.component.mjs +2 -1
  12. package/esm2020/lib/dto/img-manager.dto.mjs +1 -1
  13. package/esm2020/lib/services/img-manager.service.mjs +3 -2
  14. package/esm2020/lib/services/table/filters-table.service.mjs +2 -1
  15. package/fesm2015/wizishop-img-manager.mjs +77 -20
  16. package/fesm2015/wizishop-img-manager.mjs.map +1 -1
  17. package/fesm2020/wizishop-img-manager.mjs +76 -19
  18. package/fesm2020/wizishop-img-manager.mjs.map +1 -1
  19. package/lib/components/images-view/images-view.component.d.ts +3 -2
  20. package/lib/components/img-editor/show-iframe/show-iframe.component.d.ts +2 -1
  21. package/lib/dto/img-manager.dto.d.ts +8 -0
  22. package/lib/services/img-manager.service.d.ts +8 -14
  23. package/lib/services/table/filters-table.service.d.ts +1 -0
  24. package/package.json +1 -1
  25. package/wizishop-img-manager-15.2.65-beta.tgz +0 -0
  26. package/wz-img-manager.scss +124 -14
  27. package/wizishop-img-manager-15.2.63-beta.tgz +0 -0
@@ -141,14 +141,14 @@ export class ImgEditorComponent {
141
141
  }
142
142
  }
143
143
  ImgEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgEditorComponent, deps: [{ token: i1.ImgManagerService }, { token: i2.RenamePictureService }], target: i0.ɵɵFactoryTarget.Component });
144
- ImgEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgEditorComponent, selector: "img-editor", inputs: { stateDisplayed: "stateDisplayed", imgToEdit: "imgToEdit", isVideoEdit: "isVideoEdit" }, outputs: { editClosed: "editClosed" }, ngImport: i0, template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\r\n\r\n <!-- Button Action Section -->\r\n\r\n <div class=\"img-editor__infoSection__actions\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"button img-editor__infoSection__actions__cancel\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <div\r\n class=\"button danger button img-editor__infoSection__actions__save\"\r\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\r\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ng-scrollbar\r\n class=\"img-editor__scroll\"\r\n style=\"min-height: 500px\"\r\n [ngClass]=\"{\r\n 'img-editor__scroll--full': stateDisplayed === 'full',\r\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'img-editor__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n\r\n <div class=\"columns\">\r\n <!-- Left section -->\r\n <div class=\"column is-one-third img-editor__infoSection\">\r\n\r\n <ul class=\"img-editorVideo__tabs\">\r\n <li [ngClass]=\"{'active': !isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = !isEditorLinkActive\">Informations</span></li>\r\n <li [ngClass]=\"{'active': isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = !isEditorLinkActive\">Associer une vid\u00E9o</span></li>\r\n </ul>\r\n\r\n <info-section\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isNameModified)]=\"isNameModified\"\r\n >\r\n </info-section>\r\n <info-video\r\n *ngIf=\"isEditorLinkActive\"\r\n [(videoLink)]=\"imgToEdit.video_link\"\r\n [(isVideoModified)]=\"isVideoModified\"\r\n (deleteVideo)=\"onDeleteVideo()\">\r\n </info-video>\r\n </div>\r\n\r\n\r\n <!-- Right section -->\r\n <div class=\"column img-editor__container\">\r\n <cropper\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isImgModified)]=\"isImgModified\"\r\n (currentCroppedImageChange)=\"onImgCropped($event)\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </cropper>\r\n <show-iframe\r\n style=\"display: block;width: 100%\"\r\n [videoLink]=\"imgToEdit.video_link\"\r\n *ngIf=\"isEditorLinkActive\">\r\n\r\n </show-iframe>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "component", type: i5.EditorInfoSectionComponent, selector: "info-section", inputs: ["imgToEdit", "isNameModified"], outputs: ["isNameModifiedChange"] }, { kind: "component", type: i6.EditorInfoVideoComponent, selector: "info-video", inputs: ["videoLink", "isVideoModified"], outputs: ["videoLinkChange", "isVideoModifiedChange", "deleteVideo"] }, { kind: "component", type: i7.EditorShowIframeComponent, selector: "show-iframe", inputs: ["videoLink"] }, { kind: "component", type: i8.CropperComponent, selector: "cropper", inputs: ["imgToEdit", "isImgModified"], outputs: ["isImgModifiedChange", "editClosed", "currentCroppedImageChange"] }, { kind: "directive", type: i9.LoadingDirective, selector: "[btnLoadingAnim]" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], animations: [
144
+ ImgEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgEditorComponent, selector: "img-editor", inputs: { stateDisplayed: "stateDisplayed", imgToEdit: "imgToEdit", isVideoEdit: "isVideoEdit" }, outputs: { editClosed: "editClosed" }, ngImport: i0, template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\r\n\r\n <!-- Button Action Section -->\r\n\r\n <div class=\"img-editor__infoSection__actions\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"button img-editor__infoSection__actions__cancel\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <div\r\n class=\"button danger button img-editor__infoSection__actions__save\"\r\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\r\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ng-scrollbar\r\n class=\"img-editor__scroll\"\r\n style=\"min-height: 500px\"\r\n [ngClass]=\"{\r\n 'img-editor__scroll--full': stateDisplayed === 'full',\r\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'img-editor__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n\r\n <div class=\"columns\">\r\n <!-- Left section -->\r\n <div class=\"column is-one-third img-editor__infoSection\">\r\n\r\n <ul class=\"img-editorVideo__tabs\">\r\n <li [ngClass]=\"{'active': !isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = false;\">{{ 'ImgManager.ImgLib.informations' | translate }}</span></li>\r\n <li [ngClass]=\"{'active': isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = true;\">{{ 'ImgManager.ImgLib.associateVideo' | translate }}</span></li>\r\n </ul>\r\n\r\n <info-section\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isNameModified)]=\"isNameModified\"\r\n >\r\n </info-section>\r\n <info-video\r\n *ngIf=\"isEditorLinkActive\"\r\n [(videoLink)]=\"imgToEdit.video_link\"\r\n [(isVideoModified)]=\"isVideoModified\"\r\n (deleteVideo)=\"onDeleteVideo()\">\r\n </info-video>\r\n </div>\r\n\r\n\r\n <!-- Right section -->\r\n <div class=\"column img-editor__container\">\r\n <cropper\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isImgModified)]=\"isImgModified\"\r\n (currentCroppedImageChange)=\"onImgCropped($event)\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </cropper>\r\n <show-iframe\r\n style=\"display: block;width: 100%\"\r\n [videoLink]=\"imgToEdit.video_link\"\r\n *ngIf=\"isEditorLinkActive\">\r\n\r\n </show-iframe>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "component", type: i5.EditorInfoSectionComponent, selector: "info-section", inputs: ["imgToEdit", "isNameModified"], outputs: ["isNameModifiedChange"] }, { kind: "component", type: i6.EditorInfoVideoComponent, selector: "info-video", inputs: ["videoLink", "isVideoModified"], outputs: ["videoLinkChange", "isVideoModifiedChange", "deleteVideo"] }, { kind: "component", type: i7.EditorShowIframeComponent, selector: "show-iframe", inputs: ["videoLink"] }, { kind: "component", type: i8.CropperComponent, selector: "cropper", inputs: ["imgToEdit", "isImgModified"], outputs: ["isImgModifiedChange", "editClosed", "currentCroppedImageChange"] }, { kind: "directive", type: i9.LoadingDirective, selector: "[btnLoadingAnim]" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], animations: [
145
145
  easeInOut
146
146
  ] });
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgEditorComponent, decorators: [{
148
148
  type: Component,
149
149
  args: [{ selector: 'img-editor', animations: [
150
150
  easeInOut
151
- ], template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\r\n\r\n <!-- Button Action Section -->\r\n\r\n <div class=\"img-editor__infoSection__actions\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"button img-editor__infoSection__actions__cancel\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <div\r\n class=\"button danger button img-editor__infoSection__actions__save\"\r\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\r\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ng-scrollbar\r\n class=\"img-editor__scroll\"\r\n style=\"min-height: 500px\"\r\n [ngClass]=\"{\r\n 'img-editor__scroll--full': stateDisplayed === 'full',\r\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'img-editor__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n\r\n <div class=\"columns\">\r\n <!-- Left section -->\r\n <div class=\"column is-one-third img-editor__infoSection\">\r\n\r\n <ul class=\"img-editorVideo__tabs\">\r\n <li [ngClass]=\"{'active': !isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = !isEditorLinkActive\">Informations</span></li>\r\n <li [ngClass]=\"{'active': isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = !isEditorLinkActive\">Associer une vid\u00E9o</span></li>\r\n </ul>\r\n\r\n <info-section\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isNameModified)]=\"isNameModified\"\r\n >\r\n </info-section>\r\n <info-video\r\n *ngIf=\"isEditorLinkActive\"\r\n [(videoLink)]=\"imgToEdit.video_link\"\r\n [(isVideoModified)]=\"isVideoModified\"\r\n (deleteVideo)=\"onDeleteVideo()\">\r\n </info-video>\r\n </div>\r\n\r\n\r\n <!-- Right section -->\r\n <div class=\"column img-editor__container\">\r\n <cropper\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isImgModified)]=\"isImgModified\"\r\n (currentCroppedImageChange)=\"onImgCropped($event)\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </cropper>\r\n <show-iframe\r\n style=\"display: block;width: 100%\"\r\n [videoLink]=\"imgToEdit.video_link\"\r\n *ngIf=\"isEditorLinkActive\">\r\n\r\n </show-iframe>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n" }]
151
+ ], template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\r\n\r\n <!-- Button Action Section -->\r\n\r\n <div class=\"img-editor__infoSection__actions\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"button img-editor__infoSection__actions__cancel\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\r\n >\r\n {{ 'ImgManager.ImgLib.cancel' | translate }}\r\n </button>\r\n <div\r\n class=\"button danger button img-editor__infoSection__actions__save\"\r\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\r\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ng-scrollbar\r\n class=\"img-editor__scroll\"\r\n style=\"min-height: 500px\"\r\n [ngClass]=\"{\r\n 'img-editor__scroll--full': stateDisplayed === 'full',\r\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\r\n 'img-editor__scroll--window': stateDisplayed === 'window'\r\n }\"\r\n >\r\n\r\n <div class=\"columns\">\r\n <!-- Left section -->\r\n <div class=\"column is-one-third img-editor__infoSection\">\r\n\r\n <ul class=\"img-editorVideo__tabs\">\r\n <li [ngClass]=\"{'active': !isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = false;\">{{ 'ImgManager.ImgLib.informations' | translate }}</span></li>\r\n <li [ngClass]=\"{'active': isEditorLinkActive}\"><span (click)=\"isEditorLinkActive = true;\">{{ 'ImgManager.ImgLib.associateVideo' | translate }}</span></li>\r\n </ul>\r\n\r\n <info-section\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isNameModified)]=\"isNameModified\"\r\n >\r\n </info-section>\r\n <info-video\r\n *ngIf=\"isEditorLinkActive\"\r\n [(videoLink)]=\"imgToEdit.video_link\"\r\n [(isVideoModified)]=\"isVideoModified\"\r\n (deleteVideo)=\"onDeleteVideo()\">\r\n </info-video>\r\n </div>\r\n\r\n\r\n <!-- Right section -->\r\n <div class=\"column img-editor__container\">\r\n <cropper\r\n *ngIf=\"!isEditorLinkActive\"\r\n [imgToEdit]=\"imgToEdit\"\r\n [(isImgModified)]=\"isImgModified\"\r\n (currentCroppedImageChange)=\"onImgCropped($event)\"\r\n (editClosed)=\"onEditClosed($event)\">\r\n </cropper>\r\n <show-iframe\r\n style=\"display: block;width: 100%\"\r\n [videoLink]=\"imgToEdit.video_link\"\r\n *ngIf=\"isEditorLinkActive\">\r\n\r\n </show-iframe>\r\n </div>\r\n </div>\r\n </ng-scrollbar>\r\n</div>\r\n" }]
152
152
  }], ctorParameters: function () { return [{ type: i1.ImgManagerService }, { type: i2.RenamePictureService }]; }, propDecorators: { stateDisplayed: [{
153
153
  type: Input
154
154
  }], imgToEdit: [{
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
158
158
  }], editClosed: [{
159
159
  type: Output
160
160
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLWVkaXRvci9pbWctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2ltZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFTN0UsTUFBTSxPQUFPLGtCQUFrQjtJQW9DN0IsWUFDVSxpQkFBb0MsRUFDcEMsb0JBQTBDO1FBRDFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQW5CNUMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFbkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFFakYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGdCQUFXLEdBQVcsa0NBQWtDLENB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LEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdGLFdBQVc7c0JBRGQsS0FBSztnQkFlSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IFJlbmFtZVBpY3R1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltZy1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBlYXNlSW5PdXRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWdFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHN0YXRlRGlzcGxheWVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW1nVG9FZGl0OiBJbWdQaWN0dXJlRFRPO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGlzVmlkZW9FZGl0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1ZpZGVvRWRpdCA9IHZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmlzRWRpdG9yTGlua0FjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWaWRlb0VkaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNWaWRlb0VkaXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZpZGVvRWRpdCA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgZWRpdENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNJbWdNb2RpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTmFtZU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudENyb3BwZWRJbWFnZTogc3RyaW5nID0gJyc7IC8vIEltZyBtb2RpZmllZCByZXR1cm4gaW4gYmFzZTY0IGJ5IHRoZSBjcm9wcGVyXHJcbiAgcHJpdmF0ZSBwcmV2aW91c05hbWU6IHN0cmluZztcclxuICBpc0VkaXRvckxpbmtBY3RpdmUgPSBmYWxzZTtcclxuICBpc1ZpZGVvTW9kaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHByZXZpb3VzVmlkZW9MaW5rOiBzdHJpbmc7XHJcblxyXG4gIG1zZ0ZhaWxTYXZlOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbFNhdmUnO1xyXG4gIG1zZ0ZhaWxMb2FkOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbExvYWQnO1xyXG4gIG1zZ1N1Y2Nlc3NFZGl0OiBzdHJpbmcgPSBcIkxlcyBtb2RpZmljYXRpb25zIGRlIGwnaW1hZ2Ugb250IGJpZW4gw6l0w6kgZW5yZWdpc3Ryw6llcy5cIlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW1nTWFuYWdlclNlcnZpY2U6IEltZ01hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5hbWVQaWN0dXJlU2VydmljZTogUmVuYW1lUGljdHVyZVNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XHJcbiAgICB0aGlzLnByZXZpb3VzVmlkZW9MaW5rID0gdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluaztcclxuICB9XHJcblxyXG4gIG9uU2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzSW1nTW9kaWZpZWQgJiYgIXRoaXMuaXNOYW1lTW9kaWZpZWQgJiYgIXRoaXMuaXNWaWRlb01vZGlmaWVkKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25FZGl0Q2xvc2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JzUmVwbGFjZUltZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UucmVwbGFjZUltZyh0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UsIHRoaXMuaW1nVG9FZGl0LmlkX2ZpbGUpO1xyXG4gICAgY29uc3Qgb2JzQ2hhbmdlSW1nTmFtZSA9IHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2UuY2hhbmdlSW1hZ2VOYW1lKHRoaXMuaW1nVG9FZGl0LmRpc3BsYXlfbmFtZSwgdGhpcy5pbWdUb0VkaXQuaWRfZmlsZSk7XHJcbiAgICBjb25zdCBvYnNDaGFuZ2VWaWRlb0xpbmsgPSB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLmNoYW5nZVZpZGVvTGluayhcclxuICAgICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayxcclxuICAgICAgdGhpcy5pbWdUb0VkaXQuaWRfZmlsZVxyXG4gICAgKTtcclxuXHJcbiAgICBpZih0aGlzLmlzSW1nTW9kaWZpZWQgJiYgdGhpcy5pc05hbWVNb2RpZmllZCkge1xyXG4gICAgICB0aGlzLnJlbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZSwgb2JzUmVwbGFjZUltZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1ZpZGVvTW9kaWZpZWQgJiYgIXRoaXMuaXNJbWdNb2RpZmllZCAmJiAhdGhpcy5pc05hbWVNb2RpZmllZCkge1xyXG4gICAgICBvYnNDaGFuZ2VWaWRlb0xpbmsuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5wcmV2aW91c1ZpZGVvTGluayA9IHRoaXMuaW1nVG9FZGl0LnZpZGVvX2xpbms7XHJcbiAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayA9IHRoaXMucHJldmlvdXNWaWRlb0xpbms7XHJcbiAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5pc0ltZ01vZGlmaWVkKXtcclxuICAgICAgb2JzUmVwbGFjZUltZy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vbkVkaXRDbG9zZWQodGhpcy5tc2dTdWNjZXNzRWRpdCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSAnJztcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfX0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNOYW1lTW9kaWZpZWQpIHtcclxuICAgICAgb2JzQ2hhbmdlSW1nTmFtZS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XHJcbiAgICAgICAgdGhpcy5vbkVkaXRDbG9zZWQodGhpcy5tc2dTdWNjZXNzRWRpdCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWUgPSB0aGlzLnByZXZpb3VzTmFtZTtcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNOYW1lTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRWRpdENsb3NlZChtc2dLZXk/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZWRpdENsb3NlZC5lbWl0KG1zZ0tleSk7XHJcbiAgfVxyXG5cclxuICBvblJlc3RhcnRFZGl0KCkge1xyXG4gICAgdGhpcy5pc0ltZ01vZGlmaWVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTmFtZU1vZGlmaWVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWUgPSB0aGlzLnByZXZpb3VzTmFtZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5vbkVkaXRDbG9zZWQoJycpO1xyXG4gIH1cclxuXHJcbiAgb25JbWdDcm9wcGVkKGltZ0Jhc2U2NDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSBpbWdCYXNlNjQ7XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZVZpZGVvKCkge1xyXG4gICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayA9IG51bGw7XHJcbiAgICB0aGlzLmlzVmlkZW9Nb2RpZmllZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZTogT2JzZXJ2YWJsZTxhbnk+LCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4pIHtcclxuICAgIC8vIEF2b2lkIHRvIHVzZSBmb3Jram9pbiwgYmVjYXVzZSBpdCBjYW4gY3JlYXRlIGNvbmZsaWN0IGFuZCBsb29zZSB0aGUgaW1nXHJcbiAgICBvYnNDaGFuZ2VJbWdOYW1lLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlczEgPT4ge1xyXG4gICAgICAgIG9ic1JlcGxhY2VJbWcuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IHJlczIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yXCIgW0BlYXNlSW5PdXRdPVwiJ2luJ1wiPlxyXG5cclxuICAgIDwhLS0gQnV0dG9uIEFjdGlvbiBTZWN0aW9uIC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fYWN0aW9uc1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidXR0b24gaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX2FjdGlvbnNfX2NhbmNlbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICghaXNJbWdNb2RpZmllZCAgJiYgIWlzTmFtZU1vZGlmaWVkKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBkYW5nZXIgYnV0dG9uIGltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19hY3Rpb25zX19zYXZlXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX2FjdGlvbnNfX3NhdmUtLWRpc2FibGUnOiBpc0xvYWRpbmd9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLnNhdmVCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBidG5Mb2FkaW5nQW5pbSAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiYnRuTG9hZGluZ0FubmltYXRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1zY3JvbGxiYXJcclxuICAgICAgICBjbGFzcz1cImltZy1lZGl0b3JfX3Njcm9sbFwiXHJcbiAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiA1MDBweFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAnaW1nLWVkaXRvcl9fc2Nyb2xsLS1mdWxsJzogc3RhdGVEaXNwbGF5ZWQgPT09ICdmdWxsJyxcclxuICAgICAgICAgICAgJ2ltZy1lZGl0b3JfX3Njcm9sbC0tc21hbGxEaXNwbGF5Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcsXHJcbiAgICAgICAgICAgICdpbWctZWRpdG9yX19zY3JvbGwtLXdpbmRvdyc6IHN0YXRlRGlzcGxheWVkID09PSAnd2luZG93J1xyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zXCI+XHJcbiAgICAgICAgPCEtLSBMZWZ0IHNlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1vbmUtdGhpcmQgaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25cIj5cclxuXHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJpbWctZWRpdG9yVmlkZW9fX3RhYnNcIj5cclxuICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogIWlzRWRpdG9yTGlua0FjdGl2ZX1cIj48c3BhbiAoY2xpY2spPVwiaXNFZGl0b3JMaW5rQWN0aXZlID0gIWlzRWRpdG9yTGlua0FjdGl2ZVwiPkluZm9ybWF0aW9uczwvc3Bhbj48L2xpPlxyXG4gICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0VkaXRvckxpbmtBY3RpdmV9XCI+PHNwYW4gKGNsaWNrKT1cImlzRWRpdG9yTGlua0FjdGl2ZSA9ICFpc0VkaXRvckxpbmtBY3RpdmVcIj5Bc3NvY2llciB1bmUgdmlkw6lvPC9zcGFuPjwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG5cclxuICAgICAgICAgICAgPGluZm8tc2VjdGlvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWlzRWRpdG9yTGlua0FjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgW2ltZ1RvRWRpdF09XCJpbWdUb0VkaXRcIlxyXG4gICAgICAgICAgICAgIFsoaXNOYW1lTW9kaWZpZWQpXT1cImlzTmFtZU1vZGlmaWVkXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvaW5mby1zZWN0aW9uPlxyXG4gICAgICAgICAgIDxpbmZvLXZpZGVvXHJcbiAgICAgICAgICAgICAqbmdJZj1cImlzRWRpdG9yTGlua0FjdGl2ZVwiXHJcbiAgICAgICAgICAgICBbKHZpZGVvTGluayldPVwiaW1nVG9FZGl0LnZpZGVvX2xpbmtcIlxyXG4gICAgICAgICAgICAgWyhpc1ZpZGVvTW9kaWZpZWQpXT1cImlzVmlkZW9Nb2RpZmllZFwiXHJcbiAgICAgICAgICAgICAoZGVsZXRlVmlkZW8pPVwib25EZWxldGVWaWRlbygpXCI+XHJcbiAgICAgICAgICAgPC9pbmZvLXZpZGVvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPCEtLSBSaWdodCBzZWN0aW9uIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaW1nLWVkaXRvcl9fY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxjcm9wcGVyXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNFZGl0b3JMaW5rQWN0aXZlXCJcclxuICAgICAgICAgICAgICBbaW1nVG9FZGl0XT1cImltZ1RvRWRpdFwiXHJcbiAgICAgICAgICAgICAgWyhpc0ltZ01vZGlmaWVkKV09XCJpc0ltZ01vZGlmaWVkXCJcclxuICAgICAgICAgICAgICAoY3VycmVudENyb3BwZWRJbWFnZUNoYW5nZSk9XCJvbkltZ0Nyb3BwZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKGVkaXRDbG9zZWQpPVwib25FZGl0Q2xvc2VkKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9jcm9wcGVyPlxyXG4gICAgICAgICAgPHNob3ctaWZyYW1lXHJcbiAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7d2lkdGg6IDEwMCVcIlxyXG4gICAgICAgICAgICBbdmlkZW9MaW5rXT1cImltZ1RvRWRpdC52aWRlb19saW5rXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc0VkaXRvckxpbmtBY3RpdmVcIj5cclxuXHJcbiAgICAgICAgICA8L3Nob3ctaWZyYW1lPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L25nLXNjcm9sbGJhcj5cclxuPC9kaXY+XHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLWVkaXRvci9pbWctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2ltZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFTN0UsTUFBTSxPQUFPLGtCQUFrQjtJQW9DN0IsWUFDVSxpQkFBb0MsRUFDcEMsb0JBQTBDO1FBRDFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQW5CNUMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFbkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFFakYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGdCQUFXLEdBQVcsa0NBQWtDLENB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LEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdGLFdBQVc7c0JBRGQsS0FBSztnQkFlSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XHJcbmltcG9ydCB7IFJlbmFtZVBpY3R1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltZy1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBlYXNlSW5PdXRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWdFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHN0YXRlRGlzcGxheWVkO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW1nVG9FZGl0OiBJbWdQaWN0dXJlRFRPO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGlzVmlkZW9FZGl0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1ZpZGVvRWRpdCA9IHZhbHVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmlzRWRpdG9yTGlua0FjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWaWRlb0VkaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNWaWRlb0VkaXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc1ZpZGVvRWRpdCA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgZWRpdENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNJbWdNb2RpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTmFtZU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudENyb3BwZWRJbWFnZTogc3RyaW5nID0gJyc7IC8vIEltZyBtb2RpZmllZCByZXR1cm4gaW4gYmFzZTY0IGJ5IHRoZSBjcm9wcGVyXHJcbiAgcHJpdmF0ZSBwcmV2aW91c05hbWU6IHN0cmluZztcclxuICBpc0VkaXRvckxpbmtBY3RpdmUgPSBmYWxzZTtcclxuICBpc1ZpZGVvTW9kaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHByZXZpb3VzVmlkZW9MaW5rOiBzdHJpbmc7XHJcblxyXG4gIG1zZ0ZhaWxTYXZlOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbFNhdmUnO1xyXG4gIG1zZ0ZhaWxMb2FkOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbExvYWQnO1xyXG4gIG1zZ1N1Y2Nlc3NFZGl0OiBzdHJpbmcgPSBcIkxlcyBtb2RpZmljYXRpb25zIGRlIGwnaW1hZ2Ugb250IGJpZW4gw6l0w6kgZW5yZWdpc3Ryw6llcy5cIlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW1nTWFuYWdlclNlcnZpY2U6IEltZ01hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5hbWVQaWN0dXJlU2VydmljZTogUmVuYW1lUGljdHVyZVNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XHJcbiAgICB0aGlzLnByZXZpb3VzVmlkZW9MaW5rID0gdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluaztcclxuICB9XHJcblxyXG4gIG9uU2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzSW1nTW9kaWZpZWQgJiYgIXRoaXMuaXNOYW1lTW9kaWZpZWQgJiYgIXRoaXMuaXNWaWRlb01vZGlmaWVkKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25FZGl0Q2xvc2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JzUmVwbGFjZUltZyA9IHRoaXMuaW1nTWFuYWdlclNlcnZpY2UucmVwbGFjZUltZyh0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UsIHRoaXMuaW1nVG9FZGl0LmlkX2ZpbGUpO1xyXG4gICAgY29uc3Qgb2JzQ2hhbmdlSW1nTmFtZSA9IHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2UuY2hhbmdlSW1hZ2VOYW1lKHRoaXMuaW1nVG9FZGl0LmRpc3BsYXlfbmFtZSwgdGhpcy5pbWdUb0VkaXQuaWRfZmlsZSk7XHJcbiAgICBjb25zdCBvYnNDaGFuZ2VWaWRlb0xpbmsgPSB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLmNoYW5nZVZpZGVvTGluayhcclxuICAgICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayxcclxuICAgICAgdGhpcy5pbWdUb0VkaXQuaWRfZmlsZVxyXG4gICAgKTtcclxuXHJcbiAgICBpZih0aGlzLmlzSW1nTW9kaWZpZWQgJiYgdGhpcy5pc05hbWVNb2RpZmllZCkge1xyXG4gICAgICB0aGlzLnJlbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZSwgb2JzUmVwbGFjZUltZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1ZpZGVvTW9kaWZpZWQgJiYgIXRoaXMuaXNJbWdNb2RpZmllZCAmJiAhdGhpcy5pc05hbWVNb2RpZmllZCkge1xyXG4gICAgICBvYnNDaGFuZ2VWaWRlb0xpbmsuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5wcmV2aW91c1ZpZGVvTGluayA9IHRoaXMuaW1nVG9FZGl0LnZpZGVvX2xpbms7XHJcbiAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayA9IHRoaXMucHJldmlvdXNWaWRlb0xpbms7XHJcbiAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5pc0ltZ01vZGlmaWVkKXtcclxuICAgICAgb2JzUmVwbGFjZUltZy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vbkVkaXRDbG9zZWQodGhpcy5tc2dTdWNjZXNzRWRpdCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSAnJztcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfX0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNOYW1lTW9kaWZpZWQpIHtcclxuICAgICAgb2JzQ2hhbmdlSW1nTmFtZS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XHJcbiAgICAgICAgdGhpcy5vbkVkaXRDbG9zZWQodGhpcy5tc2dTdWNjZXNzRWRpdCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWUgPSB0aGlzLnByZXZpb3VzTmFtZTtcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNOYW1lTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRWRpdENsb3NlZChtc2dLZXk/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZWRpdENsb3NlZC5lbWl0KG1zZ0tleSk7XHJcbiAgfVxyXG5cclxuICBvblJlc3RhcnRFZGl0KCkge1xyXG4gICAgdGhpcy5pc0ltZ01vZGlmaWVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTmFtZU1vZGlmaWVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWUgPSB0aGlzLnByZXZpb3VzTmFtZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5vbkVkaXRDbG9zZWQoJycpO1xyXG4gIH1cclxuXHJcbiAgb25JbWdDcm9wcGVkKGltZ0Jhc2U2NDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSBpbWdCYXNlNjQ7XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZVZpZGVvKCkge1xyXG4gICAgdGhpcy5pbWdUb0VkaXQudmlkZW9fbGluayA9IG51bGw7XHJcbiAgICB0aGlzLmlzVmlkZW9Nb2RpZmllZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZTogT2JzZXJ2YWJsZTxhbnk+LCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4pIHtcclxuICAgIC8vIEF2b2lkIHRvIHVzZSBmb3Jram9pbiwgYmVjYXVzZSBpdCBjYW4gY3JlYXRlIGNvbmZsaWN0IGFuZCBsb29zZSB0aGUgaW1nXHJcbiAgICBvYnNDaGFuZ2VJbWdOYW1lLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlczEgPT4ge1xyXG4gICAgICAgIG9ic1JlcGxhY2VJbWcuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IHJlczIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbWctZWRpdG9yXCIgW0BlYXNlSW5PdXRdPVwiJ2luJ1wiPlxyXG5cclxuICAgIDwhLS0gQnV0dG9uIEFjdGlvbiBTZWN0aW9uIC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWctZWRpdG9yX19pbmZvU2VjdGlvbl9fYWN0aW9uc1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJidXR0b24gaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX2FjdGlvbnNfX2NhbmNlbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICghaXNJbWdNb2RpZmllZCAgJiYgIWlzTmFtZU1vZGlmaWVkKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBkYW5nZXIgYnV0dG9uIGltZy1lZGl0b3JfX2luZm9TZWN0aW9uX19hY3Rpb25zX19zYXZlXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25fX2FjdGlvbnNfX3NhdmUtLWRpc2FibGUnOiBpc0xvYWRpbmd9XCJcclxuICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLnNhdmVCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBidG5Mb2FkaW5nQW5pbSAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiYnRuTG9hZGluZ0FubmltYXRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1zY3JvbGxiYXJcclxuICAgICAgICBjbGFzcz1cImltZy1lZGl0b3JfX3Njcm9sbFwiXHJcbiAgICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiA1MDBweFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAnaW1nLWVkaXRvcl9fc2Nyb2xsLS1mdWxsJzogc3RhdGVEaXNwbGF5ZWQgPT09ICdmdWxsJyxcclxuICAgICAgICAgICAgJ2ltZy1lZGl0b3JfX3Njcm9sbC0tc21hbGxEaXNwbGF5Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcsXHJcbiAgICAgICAgICAgICdpbWctZWRpdG9yX19zY3JvbGwtLXdpbmRvdyc6IHN0YXRlRGlzcGxheWVkID09PSAnd2luZG93J1xyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zXCI+XHJcbiAgICAgICAgPCEtLSBMZWZ0IHNlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1vbmUtdGhpcmQgaW1nLWVkaXRvcl9faW5mb1NlY3Rpb25cIj5cclxuXHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJpbWctZWRpdG9yVmlkZW9fX3RhYnNcIj5cclxuICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogIWlzRWRpdG9yTGlua0FjdGl2ZX1cIj48c3BhbiAoY2xpY2spPVwiaXNFZGl0b3JMaW5rQWN0aXZlID0gZmFsc2U7XCI+e3sgJ0ltZ01hbmFnZXIuSW1nTGliLmluZm9ybWF0aW9ucycgfCB0cmFuc2xhdGUgfX08L3NwYW4+PC9saT5cclxuICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaXNFZGl0b3JMaW5rQWN0aXZlfVwiPjxzcGFuIChjbGljayk9XCJpc0VkaXRvckxpbmtBY3RpdmUgPSB0cnVlO1wiPnt7ICdJbWdNYW5hZ2VyLkltZ0xpYi5hc3NvY2lhdGVWaWRlbycgfCB0cmFuc2xhdGUgfX08L3NwYW4+PC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcblxyXG4gICAgICAgICAgICA8aW5mby1zZWN0aW9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNFZGl0b3JMaW5rQWN0aXZlXCJcclxuICAgICAgICAgICAgICBbaW1nVG9FZGl0XT1cImltZ1RvRWRpdFwiXHJcbiAgICAgICAgICAgICAgWyhpc05hbWVNb2RpZmllZCldPVwiaXNOYW1lTW9kaWZpZWRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9pbmZvLXNlY3Rpb24+XHJcbiAgICAgICAgICAgPGluZm8tdmlkZW9cclxuICAgICAgICAgICAgICpuZ0lmPVwiaXNFZGl0b3JMaW5rQWN0aXZlXCJcclxuICAgICAgICAgICAgIFsodmlkZW9MaW5rKV09XCJpbWdUb0VkaXQudmlkZW9fbGlua1wiXHJcbiAgICAgICAgICAgICBbKGlzVmlkZW9Nb2RpZmllZCldPVwiaXNWaWRlb01vZGlmaWVkXCJcclxuICAgICAgICAgICAgIChkZWxldGVWaWRlbyk9XCJvbkRlbGV0ZVZpZGVvKClcIj5cclxuICAgICAgICAgICA8L2luZm8tdmlkZW8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICA8IS0tIFJpZ2h0IHNlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpbWctZWRpdG9yX19jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGNyb3BwZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc0VkaXRvckxpbmtBY3RpdmVcIlxyXG4gICAgICAgICAgICAgIFtpbWdUb0VkaXRdPVwiaW1nVG9FZGl0XCJcclxuICAgICAgICAgICAgICBbKGlzSW1nTW9kaWZpZWQpXT1cImlzSW1nTW9kaWZpZWRcIlxyXG4gICAgICAgICAgICAgIChjdXJyZW50Q3JvcHBlZEltYWdlQ2hhbmdlKT1cIm9uSW1nQ3JvcHBlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoZWRpdENsb3NlZCk9XCJvbkVkaXRDbG9zZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2Nyb3BwZXI+XHJcbiAgICAgICAgICA8c2hvdy1pZnJhbWVcclxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9jazt3aWR0aDogMTAwJVwiXHJcbiAgICAgICAgICAgIFt2aWRlb0xpbmtdPVwiaW1nVG9FZGl0LnZpZGVvX2xpbmtcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImlzRWRpdG9yTGlua0FjdGl2ZVwiPlxyXG5cclxuICAgICAgICAgIDwvc2hvdy1pZnJhbWU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvbmctc2Nyb2xsYmFyPlxyXG48L2Rpdj5cclxuIl19
@@ -16,26 +16,77 @@ export class EditorShowIframeComponent {
16
16
  buildSafeIframeUrl(url) {
17
17
  if (!url)
18
18
  return null;
19
- if (url.includes('youtube.com') || url.includes('youtu.be')) {
20
- const videoId = this.extractYoutubeId(url);
19
+ if (this.isYouTubeUrl(url)) {
20
+ const { videoId, playlistId } = this.extractYouTubeIds(url);
21
+ if (!videoId && playlistId) {
22
+ const embed = `https://www.youtube.com/embed/videoseries?list=${encodeURIComponent(playlistId)}`;
23
+ return this.sanitizer.bypassSecurityTrustResourceUrl(embed);
24
+ }
21
25
  if (!videoId)
22
26
  return null;
23
- const embed = `https://www.youtube.com/embed/${videoId}`;
27
+ const base = `https://www.youtube.com/embed/${encodeURIComponent(videoId)}`;
28
+ const params = new URLSearchParams();
29
+ params.set('playsinline', '1');
30
+ if (playlistId)
31
+ params.set('list', playlistId);
32
+ const embed = params.toString() ? `${base}?${params.toString()}` : base;
24
33
  return this.sanitizer.bypassSecurityTrustResourceUrl(embed);
25
34
  }
35
+ // --- Vimeo
26
36
  if (url.includes('vimeo.com')) {
27
37
  const videoId = this.extractVimeoId(url);
28
38
  if (!videoId)
29
39
  return null;
30
- const embed = `https://player.vimeo.com/video/${videoId}`;
40
+ const embed = `https://player.vimeo.com/video/${encodeURIComponent(videoId)}`;
31
41
  return this.sanitizer.bypassSecurityTrustResourceUrl(embed);
32
42
  }
33
43
  return null;
34
44
  }
35
- extractYoutubeId(url) {
36
- const regExp = /^.*(youtu.be\/|v=|embed\/)([^#\&\?]*).*/;
37
- const match = url.match(regExp);
38
- return match && match[2].length > 0 ? match[2] : null;
45
+ isYouTubeUrl(url) {
46
+ try {
47
+ const u = new URL(url);
48
+ return (u.hostname === 'youtu.be' ||
49
+ u.hostname.endsWith('youtube.com') ||
50
+ u.hostname.endsWith('youtube-nocookie.com'));
51
+ }
52
+ catch {
53
+ return url.includes('youtube.com') || url.includes('youtu.be') || url.includes('youtube-nocookie.com');
54
+ }
55
+ }
56
+ extractYouTubeIds(rawUrl) {
57
+ try {
58
+ const url = new URL(rawUrl);
59
+ const host = url.hostname.toLowerCase();
60
+ const playlistId = url.searchParams.get('list');
61
+ if (host === 'youtu.be') {
62
+ const id = url.pathname.split('/').filter(Boolean)[0] ?? null;
63
+ return { videoId: id, playlistId };
64
+ }
65
+ const v = url.searchParams.get('v');
66
+ if (v)
67
+ return { videoId: v, playlistId };
68
+ const parts = url.pathname.split('/').filter(Boolean); // e.g. ["shorts","NquBrAU-iY8"]
69
+ const idx = parts.findIndex(p => p === 'shorts' || p === 'embed');
70
+ if (idx !== -1 && parts[idx + 1]) {
71
+ return { videoId: parts[idx + 1], playlistId };
72
+ }
73
+ const liveIdx = parts.findIndex(p => p === 'live');
74
+ if (liveIdx !== -1 && parts[liveIdx + 1]) {
75
+ return { videoId: parts[liveIdx + 1], playlistId };
76
+ }
77
+ if (parts[0] === 'playlist' && playlistId) {
78
+ return { videoId: null, playlistId };
79
+ }
80
+ return { videoId: null, playlistId };
81
+ }
82
+ catch {
83
+ const playlistMatch = rawUrl.match(/[?&]list=([^&#]+)/);
84
+ const playlistId = playlistMatch ? decodeURIComponent(playlistMatch[1]) : null;
85
+ const regExp = /^.*(youtu\.be\/|v=|embed\/|shorts\/|live\/)([^#&?\/]+).*/;
86
+ const match = rawUrl.match(regExp);
87
+ const videoId = match && match[2] ? match[2] : null;
88
+ return { videoId, playlistId };
89
+ }
39
90
  }
40
91
  extractVimeoId(url) {
41
92
  const regExp = /vimeo\.com\/(?:video\/)?(\d+)/;
@@ -44,11 +95,11 @@ export class EditorShowIframeComponent {
44
95
  }
45
96
  }
46
97
  EditorShowIframeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditorShowIframeComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
47
- EditorShowIframeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: EditorShowIframeComponent, selector: "show-iframe", inputs: { videoLink: "videoLink" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"show-iframe\" *ngIf=\"safeUrl\">\r\n <iframe\r\n width=\"100%\"\r\n [src]=\"safeUrl\"\r\n frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen>\r\n </iframe>\r\n</div>\r\n\r\n<div class=\"show-iframe__none\" *ngIf=\"!safeUrl\">\r\n <p>{{ 'ImgManager.ImgEditor.NoVideo' | translate }}</p>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
98
+ EditorShowIframeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: EditorShowIframeComponent, selector: "show-iframe", inputs: { videoLink: "videoLink" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"show-iframe\" *ngIf=\"safeUrl\">\r\n <div class=\"video-container\">\r\n <iframe\r\n [src]=\"safeUrl\"\r\n frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen>\r\n </iframe>\r\n </div>\r\n</div>\r\n\r\n<div class=\"show-iframe__none\" *ngIf=\"!safeUrl\">\r\n <p>{{ 'ImgManager.ImgEditor.NoVideo' | translate }}</p>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
48
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditorShowIframeComponent, decorators: [{
49
100
  type: Component,
50
- args: [{ selector: 'show-iframe', template: "<div class=\"show-iframe\" *ngIf=\"safeUrl\">\r\n <iframe\r\n width=\"100%\"\r\n [src]=\"safeUrl\"\r\n frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen>\r\n </iframe>\r\n</div>\r\n\r\n<div class=\"show-iframe__none\" *ngIf=\"!safeUrl\">\r\n <p>{{ 'ImgManager.ImgEditor.NoVideo' | translate }}</p>\r\n</div>\r\n" }]
101
+ args: [{ selector: 'show-iframe', template: "<div class=\"show-iframe\" *ngIf=\"safeUrl\">\r\n <div class=\"video-container\">\r\n <iframe\r\n [src]=\"safeUrl\"\r\n frameborder=\"0\"\r\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\r\n allowfullscreen>\r\n </iframe>\r\n </div>\r\n</div>\r\n\r\n<div class=\"show-iframe__none\" *ngIf=\"!safeUrl\">\r\n <p>{{ 'ImgManager.ImgEditor.NoVideo' | translate }}</p>\r\n</div>\r\n" }]
51
102
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { videoLink: [{
52
103
  type: Input
53
104
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1pZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1lZGl0b3Ivc2hvdy1pZnJhbWUvc2hvdy1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1lZGl0b3Ivc2hvdy1pZnJhbWUvc2hvdy1pZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFNMUUsTUFBTSxPQUFPLHlCQUF5QjtJQUtwQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBSGxDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUEyQixJQUFJLENBQUM7SUFFTyxDQUFDO0lBRS9DLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVc7UUFDcEMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV0QixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFMUIsTUFBTSxLQUFLLEdBQUcsaUNBQWlDLE9BQU8sRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRTFCLE1BQU0sS0FBSyxHQUFHLGtDQUFrQyxPQUFPLEVBQUUsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLHlDQUF5QyxDQUFDO1FBQ3pELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFTyxjQUFjLENBQUMsR0FBVztRQUNoQyxNQUFNLE1BQU0sR0FBRywrQkFBK0IsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDOztzSEEzQ1UseUJBQXlCOzBHQUF6Qix5QkFBeUIsNEdDUHRDLGliQWFBOzJGRE5hLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxhQUFhO21HQUtkLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2hvdy1pZnJhbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaG93LWlmcmFtZS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRvclNob3dJZnJhbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSB2aWRlb0xpbms6IHN0cmluZyA9ICcnO1xyXG4gIHNhZmVVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuYnVpbGRTYWZlSWZyYW1lVXJsKHRoaXMudmlkZW9MaW5rKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRTYWZlSWZyYW1lVXJsKHVybDogc3RyaW5nKTogU2FmZVJlc291cmNlVXJsIHwgbnVsbCB7XHJcbiAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgaWYgKHVybC5pbmNsdWRlcygneW91dHViZS5jb20nKSB8fCB1cmwuaW5jbHVkZXMoJ3lvdXR1LmJlJykpIHtcclxuICAgICAgY29uc3QgdmlkZW9JZCA9IHRoaXMuZXh0cmFjdFlvdXR1YmVJZCh1cmwpO1xyXG4gICAgICBpZiAoIXZpZGVvSWQpIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgY29uc3QgZW1iZWQgPSBgaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHt2aWRlb0lkfWA7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoZW1iZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cmwuaW5jbHVkZXMoJ3ZpbWVvLmNvbScpKSB7XHJcbiAgICAgIGNvbnN0IHZpZGVvSWQgPSB0aGlzLmV4dHJhY3RWaW1lb0lkKHVybCk7XHJcbiAgICAgIGlmICghdmlkZW9JZCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICBjb25zdCBlbWJlZCA9IGBodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8vJHt2aWRlb0lkfWA7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoZW1iZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0WW91dHViZUlkKHVybDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCByZWdFeHAgPSAvXi4qKHlvdXR1LmJlXFwvfHY9fGVtYmVkXFwvKShbXiNcXCZcXD9dKikuKi87XHJcbiAgICBjb25zdCBtYXRjaCA9IHVybC5tYXRjaChyZWdFeHApO1xyXG4gICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzJdLmxlbmd0aCA+IDAgPyBtYXRjaFsyXSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RWaW1lb0lkKHVybDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCByZWdFeHAgPSAvdmltZW9cXC5jb21cXC8oPzp2aWRlb1xcLyk/KFxcZCspLztcclxuICAgIGNvbnN0IG1hdGNoID0gdXJsLm1hdGNoKHJlZ0V4cCk7XHJcbiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaG93LWlmcmFtZVwiICpuZ0lmPVwic2FmZVVybFwiPlxyXG4gIDxpZnJhbWVcclxuICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICBbc3JjXT1cInNhZmVVcmxcIlxyXG4gICAgZnJhbWVib3JkZXI9XCIwXCJcclxuICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlXCJcclxuICAgIGFsbG93ZnVsbHNjcmVlbj5cclxuICA8L2lmcmFtZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwic2hvdy1pZnJhbWVfX25vbmVcIiAqbmdJZj1cIiFzYWZlVXJsXCI+XHJcbiAgPHA+e3sgJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLk5vVmlkZW8nIHwgdHJhbnNsYXRlIH19PC9wPlxyXG48L2Rpdj5cclxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1pZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1lZGl0b3Ivc2hvdy1pZnJhbWUvc2hvdy1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1lZGl0b3Ivc2hvdy1pZnJhbWUvc2hvdy1pZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFNMUUsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBSGxDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUEyQixJQUFJLENBQUM7SUFFTyxDQUFDO0lBRS9DLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVc7UUFDcEMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFNUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLEVBQUU7Z0JBQzFCLE1BQU0sS0FBSyxHQUFH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QUMsQ0FBQyxJQUFJLENBQUM7WUFFL0UsTUFBTSxNQUFNLEdBQUcsMERBQTBELENBQUM7WUFDMUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUVwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLCtCQUErQixDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7O3NIQXhHVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qiw0R0NQdEMsd2RBY0E7MkZEUGEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLGFBQWE7bUdBSWQsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaG93LWlmcmFtZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Nob3ctaWZyYW1lLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yU2hvd0lmcmFtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdmlkZW9MaW5rOiBzdHJpbmcgPSAnJztcclxuICBzYWZlVXJsOiBTYWZlUmVzb3VyY2VVcmwgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNhZmVVcmwgPSB0aGlzLmJ1aWxkU2FmZUlmcmFtZVVybCh0aGlzLnZpZGVvTGluayk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkU2FmZUlmcmFtZVVybCh1cmw6IHN0cmluZyk6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwge1xyXG4gICAgaWYgKCF1cmwpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmlzWW91VHViZVVybCh1cmwpKSB7XHJcbiAgICAgIGNvbnN0IHsgdmlkZW9JZCwgcGxheWxpc3RJZCB9ID0gdGhpcy5leHRyYWN0WW91VHViZUlkcyh1cmwpO1xyXG5cclxuICAgICAgaWYgKCF2aWRlb0lkICYmIHBsYXlsaXN0SWQpIHtcclxuICAgICAgICBjb25zdCBlbWJlZCA9IGBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC92aWRlb3Nlcmllcz9saXN0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBsYXlsaXN0SWQpfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChlbWJlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdmlkZW9JZCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICBjb25zdCBiYXNlID0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHZpZGVvSWQpfWA7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuICAgICAgcGFyYW1zLnNldCgncGxheXNpbmxpbmUnLCAnMScpO1xyXG4gICAgICBpZiAocGxheWxpc3RJZCkgcGFyYW1zLnNldCgnbGlzdCcsIHBsYXlsaXN0SWQpO1xyXG5cclxuICAgICAgY29uc3QgZW1iZWQgPSBwYXJhbXMudG9TdHJpbmcoKSA/IGAke2Jhc2V9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YCA6IGJhc2U7XHJcbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoZW1iZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC0tLSBWaW1lb1xyXG4gICAgaWYgKHVybC5pbmNsdWRlcygndmltZW8uY29tJykpIHtcclxuICAgICAgY29uc3QgdmlkZW9JZCA9IHRoaXMuZXh0cmFjdFZpbWVvSWQodXJsKTtcclxuICAgICAgaWYgKCF2aWRlb0lkKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgIGNvbnN0IGVtYmVkID0gYGh0dHBzOi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8ke2VuY29kZVVSSUNvbXBvbmVudCh2aWRlb0lkKX1gO1xyXG4gICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGVtYmVkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNZb3VUdWJlVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB1ID0gbmV3IFVSTCh1cmwpO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHUuaG9zdG5hbWUgPT09ICd5b3V0dS5iZScgfHxcclxuICAgICAgICB1Lmhvc3RuYW1lLmVuZHNXaXRoKCd5b3V0dWJlLmNvbScpIHx8XHJcbiAgICAgICAgdS5ob3N0bmFtZS5lbmRzV2l0aCgneW91dHViZS1ub2Nvb2tpZS5jb20nKVxyXG4gICAgICApO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiB1cmwuaW5jbHVkZXMoJ3lvdXR1YmUuY29tJykgfHwgdXJsLmluY2x1ZGVzKCd5b3V0dS5iZScpIHx8IHVybC5pbmNsdWRlcygneW91dHViZS1ub2Nvb2tpZS5jb20nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFlvdVR1YmVJZHMocmF3VXJsOiBzdHJpbmcpOiB7IHZpZGVvSWQ6IHN0cmluZyB8IG51bGw7IHBsYXlsaXN0SWQ6IHN0cmluZyB8IG51bGwgfSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHJhd1VybCk7XHJcbiAgICAgIGNvbnN0IGhvc3QgPSB1cmwuaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgIGNvbnN0IHBsYXlsaXN0SWQgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgnbGlzdCcpO1xyXG5cclxuICAgICAgaWYgKGhvc3QgPT09ICd5b3V0dS5iZScpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHVybC5wYXRobmFtZS5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKVswXSA/PyBudWxsO1xyXG4gICAgICAgIHJldHVybiB7IHZpZGVvSWQ6IGlkLCBwbGF5bGlzdElkIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHYgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgndicpO1xyXG4gICAgICBpZiAodikgcmV0dXJuIHsgdmlkZW9JZDogdiwgcGxheWxpc3RJZCB9O1xyXG5cclxuICAgICAgY29uc3QgcGFydHMgPSB1cmwucGF0aG5hbWUuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7IC8vIGUuZy4gW1wic2hvcnRzXCIsXCJOcXVCckFVLWlZOFwiXVxyXG4gICAgICBjb25zdCBpZHggPSBwYXJ0cy5maW5kSW5kZXgocCA9PiBwID09PSAnc2hvcnRzJyB8fCBwID09PSAnZW1iZWQnKTtcclxuICAgICAgaWYgKGlkeCAhPT0gLTEgJiYgcGFydHNbaWR4ICsgMV0pIHtcclxuICAgICAgICByZXR1cm4geyB2aWRlb0lkOiBwYXJ0c1tpZHggKyAxXSwgcGxheWxpc3RJZCB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBsaXZlSWR4ID0gcGFydHMuZmluZEluZGV4KHAgPT4gcCA9PT0gJ2xpdmUnKTtcclxuICAgICAgaWYgKGxpdmVJZHggIT09IC0xICYmIHBhcnRzW2xpdmVJZHggKyAxXSkge1xyXG4gICAgICAgIHJldHVybiB7IHZpZGVvSWQ6IHBhcnRzW2xpdmVJZHggKyAxXSwgcGxheWxpc3RJZCB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocGFydHNbMF0gPT09ICdwbGF5bGlzdCcgJiYgcGxheWxpc3RJZCkge1xyXG4gICAgICAgIHJldHVybiB7IHZpZGVvSWQ6IG51bGwsIHBsYXlsaXN0SWQgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHsgdmlkZW9JZDogbnVsbCwgcGxheWxpc3RJZCB9O1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIGNvbnN0IHBsYXlsaXN0TWF0Y2ggPSByYXdVcmwubWF0Y2goL1s/Jl1saXN0PShbXiYjXSspLyk7XHJcbiAgICAgIGNvbnN0IHBsYXlsaXN0SWQgPSBwbGF5bGlzdE1hdGNoID8gZGVjb2RlVVJJQ29tcG9uZW50KHBsYXlsaXN0TWF0Y2hbMV0pIDogbnVsbDtcclxuXHJcbiAgICAgIGNvbnN0IHJlZ0V4cCA9IC9eLiooeW91dHVcXC5iZVxcL3x2PXxlbWJlZFxcL3xzaG9ydHNcXC98bGl2ZVxcLykoW14jJj9cXC9dKykuKi87XHJcbiAgICAgIGNvbnN0IG1hdGNoID0gcmF3VXJsLm1hdGNoKHJlZ0V4cCk7XHJcbiAgICAgIGNvbnN0IHZpZGVvSWQgPSBtYXRjaCAmJiBtYXRjaFsyXSA/IG1hdGNoWzJdIDogbnVsbDtcclxuXHJcbiAgICAgIHJldHVybiB7IHZpZGVvSWQsIHBsYXlsaXN0SWQgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFZpbWVvSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IHJlZ0V4cCA9IC92aW1lb1xcLmNvbVxcLyg/OnZpZGVvXFwvKT8oXFxkKykvO1xyXG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2gocmVnRXhwKTtcclxuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNob3ctaWZyYW1lXCIgKm5nSWY9XCJzYWZlVXJsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInZpZGVvLWNvbnRhaW5lclwiPlxyXG4gICAgPGlmcmFtZVxyXG4gICAgICBbc3JjXT1cInNhZmVVcmxcIlxyXG4gICAgICBmcmFtZWJvcmRlcj1cIjBcIlxyXG4gICAgICBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZVwiXHJcbiAgICAgIGFsbG93ZnVsbHNjcmVlbj5cclxuICAgIDwvaWZyYW1lPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJzaG93LWlmcmFtZV9fbm9uZVwiICpuZ0lmPVwiIXNhZmVVcmxcIj5cclxuICA8cD57eyAnSW1nTWFuYWdlci5JbWdFZGl0b3IuTm9WaWRlbycgfCB0cmFuc2xhdGUgfX08L3A+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -41,13 +41,13 @@ export class ImgSelectionComponent {
41
41
  }
42
42
  }
43
43
  ImgSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgSelectionComponent, deps: [{ token: i1.ImgSelectionService }], target: i0.ɵɵFactoryTarget.Component });
44
- ImgSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgSelectionComponent, selector: "img-selection", inputs: { tabDisplayed: "tabDisplayed" }, outputs: { imgManagerClosed: "imgManagerClosed" }, ngImport: i0, template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.ImageSrcPipe, name: "imgSrc" }] });
44
+ ImgSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ImgSelectionComponent, selector: "img-selection", inputs: { tabDisplayed: "tabDisplayed" }, outputs: { imgManagerClosed: "imgManagerClosed" }, ngImport: i0, template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div *ngIf=\"picture.video_link\" class=\"img_box__video\">\r\n <i class=\"fa-solid fa-play\"></i>\r\n </div>\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.LoaderComponent, selector: "wz-loader", inputs: ["text", "small", "position"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.ImageSrcPipe, name: "imgSrc" }] });
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgSelectionComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'img-selection', template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\r\n" }]
47
+ args: [{ selector: 'img-selection', template: "<div\r\n class=\"trash\"\r\n cdkDropList\r\n #unSelectList=\"cdkDropList\"\r\n (cdkDropListDropped)=\"removeImgFromSelection($event)\">\r\n <p>{{'ImgManager.ImgSelection.unselect' | translate}}</p>\r\n</div>\r\n\r\n<ng-container *ngIf=\"vm$ | async as vm\">\r\n\r\n <div\r\n class=\"img-selection\"\r\n *ngIf=\"!vm.isLoading; else Loading\"\r\n [ngClass]=\"{'img-selection--visible' : vm.imgSelectedList && vm.imgSelectedList.length}\"\r\n >\r\n\r\n <div\r\n cdkDropList\r\n #selectionList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n class=\"list_img_selection\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n [cdkDropListConnectedTo]=\"[unSelectList]\"\r\n >\r\n\r\n <div\r\n class=\"img_box\"\r\n *ngFor=\"let picture of vm.imgSelectedList; let index = index\"\r\n cdkDrag\r\n (cdkDragStarted)=\"dragStart = true;\"\r\n (cdkDragEnded)=\"dragStart = false;\"\r\n >\r\n\r\n <img\r\n *ngIf=\"index < 1\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '400'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <img\r\n *ngIf=\"index > 0\"\r\n class=\"drag__img\"\r\n [src]=\"picture.file_name | imgSrc : '200'\"\r\n [title]=\"picture.display_name\"\r\n />\r\n\r\n <div *ngIf=\"picture.video_link\" class=\"img_box__video\">\r\n <i class=\"fa-solid fa-play\"></i>\r\n </div>\r\n\r\n <div class=\"delete-btn\" (click)=\"removeImg(index)\">{{'ImgManager.ImgSelection.deleteImg' | translate}}</div>\r\n\r\n <span class=\"drag__tooltips\">{{'ImgManager.ImgSelection.tooltips' | translate}}</span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<!-- Loader -->\r\n<ng-template #Loading>\r\n <wz-loader></wz-loader>\r\n</ng-template>\r\n" }]
48
48
  }], ctorParameters: function () { return [{ type: i1.ImgSelectionService }]; }, propDecorators: { tabDisplayed: [{
49
49
  type: Input
50
50
  }], imgManagerClosed: [{
51
51
  type: Output
52
52
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLXNlbGVjdGlvbi9pbWctc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctc2VsZWN0aW9uL2ltZy1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9yQyxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUNVLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBaEJ4QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsUUFBRyxHQUFHLGFBQWEsQ0FBQztZQUNsQixlQUFlLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWE7WUFDdkQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUI7U0FDNUQsQ0FBQyxDQUFDO1FBR0gsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUlyQixDQUFDO0lBRVAsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQTRCO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7a0hBeENVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtKQ1hsQyxnMkRBMkRBOzJGRGhEYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsZUFBZTswR0FLaEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDZGtEcmFnRHJvcH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWctc2VsZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEltZ1NlbGVjdGlvbkNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xyXG4gIEBPdXRwdXQoKSBpbWdNYW5hZ2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICByZW1vdmluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhbmNlbGxpbmdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbXBvcnRpbmdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcmFnU3RhcnQgPSBmYWxzZTtcclxuICB2bSQgPSBjb21iaW5lTGF0ZXN0KHtcclxuICAgIGltZ1NlbGVjdGVkTGlzdDogdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGlvbiQsXHJcbiAgICBpc0xvYWRpbmc6IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJFxyXG4gIH0pO1xyXG5cclxuXHJcbiAgdHJhc2hQb3NpdGlvbkluZGV4ID0gMDtcclxuICB0cmFzaFBvc2l0aW9uTGVmdCA9ICctNXB4JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLnJlbW92aW5nQWxsID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbmNlbGxpbmdBbGwgPSBmYWxzZTtcclxuICAgIHRoaXMuaW1wb3J0aW5nQWxsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJbWcoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJbmRleChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIGlmIChldmVudC5wcmV2aW91c0luZGV4ICE9PSBldmVudC5jdXJyZW50SW5kZXgpIHtcclxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLm1vdmVJbWdPcmRlcihldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVJbWdGcm9tU2VsZWN0aW9uKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3RlZEJ5SW5kZXgoZXZlbnQucHJldmlvdXNJbmRleCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cInRyYXNoXCJcclxuICBjZGtEcm9wTGlzdFxyXG4gICN1blNlbGVjdExpc3Q9XCJjZGtEcm9wTGlzdFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJyZW1vdmVJbWdGcm9tU2VsZWN0aW9uKCRldmVudClcIj5cclxuICAgIDxwPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLnVuc2VsZWN0JyB8IHRyYW5zbGF0ZX19PC9wPlxyXG48L2Rpdj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiPlxyXG5cclxuICA8ZGl2XHJcbiAgY2xhc3M9XCJpbWctc2VsZWN0aW9uXCJcclxuICAqbmdJZj1cIiF2bS5pc0xvYWRpbmc7IGVsc2UgTG9hZGluZ1wiXHJcbiAgW25nQ2xhc3NdPVwieydpbWctc2VsZWN0aW9uLS12aXNpYmxlJyA6IHZtLmltZ1NlbGVjdGVkTGlzdCAmJiB2bS5pbWdTZWxlY3RlZExpc3QubGVuZ3RofVwiXHJcbiAgPlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgI3NlbGVjdGlvbkxpc3Q9XCJjZGtEcm9wTGlzdFwiXHJcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxyXG4gICAgICAgIGNsYXNzPVwibGlzdF9pbWdfc2VsZWN0aW9uXCJcclxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW3VuU2VsZWN0TGlzdF1cIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW1nX2JveFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwaWN0dXJlIG9mIHZtLmltZ1NlbGVjdGVkTGlzdDsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnU3RhcnQgPSB0cnVlO1wiXHJcbiAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ1N0YXJ0ID0gZmFsc2U7XCJcclxuICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW5kZXggPCAxXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyYWdfX2ltZ1wiXHJcbiAgICAgICAgICAgICAgW3NyY109XCJwaWN0dXJlLmZpbGVfbmFtZSB8IGltZ1NyYyA6ICc0MDAnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwicGljdHVyZS5kaXNwbGF5X25hbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW5kZXggPiAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyYWdfX2ltZ1wiXHJcbiAgICAgICAgICAgICAgW3NyY109XCJwaWN0dXJlLmZpbGVfbmFtZSB8IGltZ1NyYyA6ICcyMDAnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwicGljdHVyZS5kaXNwbGF5X25hbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1idG5cIiAoY2xpY2spPVwicmVtb3ZlSW1nKGluZGV4KVwiPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLmRlbGV0ZUltZycgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmFnX190b29sdGlwc1wiPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLnRvb2x0aXBzJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0gTG9hZGVyIC0tPlxyXG48bmctdGVtcGxhdGUgI0xvYWRpbmc+XHJcbiAgPHd6LWxvYWRlcj48L3d6LWxvYWRlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvaW1nLXNlbGVjdGlvbi9pbWctc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWctc2VsZWN0aW9uL2ltZy1zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9yQyxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUNVLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBaEJ4QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsUUFBRyxHQUFHLGFBQWEsQ0FBQztZQUNsQixlQUFlLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWE7WUFDdkQsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUI7U0FDNUQsQ0FBQyxDQUFDO1FBR0gsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUlyQixDQUFDO0lBRVAsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQTRCO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7a0hBeENVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtKQ1hsQyx5L0RBK0RBOzJGRHBEYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsZUFBZTswR0FLaEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDZGtEcmFnRHJvcH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWctc2VsZWN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1nLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEltZ1NlbGVjdGlvbkNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xyXG4gIEBPdXRwdXQoKSBpbWdNYW5hZ2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICByZW1vdmluZ0FsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhbmNlbGxpbmdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbXBvcnRpbmdBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcmFnU3RhcnQgPSBmYWxzZTtcclxuICB2bSQgPSBjb21iaW5lTGF0ZXN0KHtcclxuICAgIGltZ1NlbGVjdGVkTGlzdDogdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGlvbiQsXHJcbiAgICBpc0xvYWRpbmc6IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5pbWdTZWxlY3RlZExpc3RMb2FkaW5nJFxyXG4gIH0pO1xyXG5cclxuXHJcbiAgdHJhc2hQb3NpdGlvbkluZGV4ID0gMDtcclxuICB0cmFzaFBvc2l0aW9uTGVmdCA9ICctNXB4JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLnJlbW92aW5nQWxsID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbmNlbGxpbmdBbGwgPSBmYWxzZTtcclxuICAgIHRoaXMuaW1wb3J0aW5nQWxsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJbWcoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGVkQnlJbmRleChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIGlmIChldmVudC5wcmV2aW91c0luZGV4ICE9PSBldmVudC5jdXJyZW50SW5kZXgpIHtcclxuICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLm1vdmVJbWdPcmRlcihldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVJbWdGcm9tU2VsZWN0aW9uKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3RlZEJ5SW5kZXgoZXZlbnQucHJldmlvdXNJbmRleCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cInRyYXNoXCJcclxuICBjZGtEcm9wTGlzdFxyXG4gICN1blNlbGVjdExpc3Q9XCJjZGtEcm9wTGlzdFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJyZW1vdmVJbWdGcm9tU2VsZWN0aW9uKCRldmVudClcIj5cclxuICAgIDxwPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLnVuc2VsZWN0JyB8IHRyYW5zbGF0ZX19PC9wPlxyXG48L2Rpdj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiPlxyXG5cclxuICA8ZGl2XHJcbiAgY2xhc3M9XCJpbWctc2VsZWN0aW9uXCJcclxuICAqbmdJZj1cIiF2bS5pc0xvYWRpbmc7IGVsc2UgTG9hZGluZ1wiXHJcbiAgW25nQ2xhc3NdPVwieydpbWctc2VsZWN0aW9uLS12aXNpYmxlJyA6IHZtLmltZ1NlbGVjdGVkTGlzdCAmJiB2bS5pbWdTZWxlY3RlZExpc3QubGVuZ3RofVwiXHJcbiAgPlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgI3NlbGVjdGlvbkxpc3Q9XCJjZGtEcm9wTGlzdFwiXHJcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxyXG4gICAgICAgIGNsYXNzPVwibGlzdF9pbWdfc2VsZWN0aW9uXCJcclxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW3VuU2VsZWN0TGlzdF1cIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW1nX2JveFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwaWN0dXJlIG9mIHZtLmltZ1NlbGVjdGVkTGlzdDsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnU3RhcnQgPSB0cnVlO1wiXHJcbiAgICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZHJhZ1N0YXJ0ID0gZmFsc2U7XCJcclxuICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW5kZXggPCAxXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyYWdfX2ltZ1wiXHJcbiAgICAgICAgICAgICAgW3NyY109XCJwaWN0dXJlLmZpbGVfbmFtZSB8IGltZ1NyYyA6ICc0MDAnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwicGljdHVyZS5kaXNwbGF5X25hbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW5kZXggPiAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyYWdfX2ltZ1wiXHJcbiAgICAgICAgICAgICAgW3NyY109XCJwaWN0dXJlLmZpbGVfbmFtZSB8IGltZ1NyYyA6ICcyMDAnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwicGljdHVyZS5kaXNwbGF5X25hbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBpY3R1cmUudmlkZW9fbGlua1wiIGNsYXNzPVwiaW1nX2JveF9fdmlkZW9cIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBsYXlcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1idG5cIiAoY2xpY2spPVwicmVtb3ZlSW1nKGluZGV4KVwiPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLmRlbGV0ZUltZycgfCB0cmFuc2xhdGV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmFnX190b29sdGlwc1wiPnt7J0ltZ01hbmFnZXIuSW1nU2VsZWN0aW9uLnRvb2x0aXBzJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0gTG9hZGVyIC0tPlxyXG48bmctdGVtcGxhdGUgI0xvYWRpbmc+XHJcbiAgPHd6LWxvYWRlcj48L3d6LWxvYWRlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -77,6 +77,7 @@ export class TableComponent {
77
77
  sort: this._filterGroup.get('sort'),
78
78
  order: this._filterGroup.get('order'),
79
79
  searchValue: this._filterGroup.get('searchValue'),
80
+ type: this._filterGroup.get('type'),
80
81
  itemsPerPage: this._filterGroup.get('itemsPerPage') ? parseInt(this._filterGroup.get('itemsPerPage')) : 0,
81
82
  currentPage: this._filterGroup.get('currentPage') ? parseInt(this._filterGroup.get('currentPage')) : 0,
82
83
  totalItems: this.tableFilters.totalItems
@@ -113,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
113
114
  }], isLoading: [{
114
115
  type: Input
115
116
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7QUFPbEcsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBNUJsRCx1QkFBa0IsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyRSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUlsQyxnQ0FBZ0M7UUFFaEMsMkRBQTJEO1FBQ2xELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsbUNBQW1DO1FBQ3pCLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLGdDQUFnQztRQUVoQyx3Q0FBd0M7UUFDL0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMseUNBQXlDO1FBQ2hDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUU1QyxzQ0FBc0M7UUFDN0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQU1vQyxDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JB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QVU7U0FDekMsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7MkdBeEdVLGNBQWM7K0ZBQWQsY0FBYyxpWENYM0IsazJDQWtDQTsyRkR2QmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVLGlCQUVMLGlCQUFpQixDQUFDLElBQUk7MEdBSzVCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUtFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IE53YkZpbHRlckdyb3VwIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXJzLCBGaWx0ZXJzVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3otdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vLyBJbnB1dC9PdXRwdXQgb2YgdGFibGUgZmlsdGVycyAvLy9cclxuXHJcbiAgQElucHV0KCkgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnM7XHJcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyc0NoYW5nZTogRXZlbnRFbWl0dGVyPFRhYmxlRmlsdGVycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHRhYmxlUm91dGluZ05hbWU6IHN0cmluZzsgLy8gTmFtZSBvZiB0aGUgdGFibGVcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlckdyb3VwOiBOd2JGaWx0ZXJHcm91cDtcclxuXHJcbiAgLy8vIElucHV0L091dHB1dCBvZiBjaGVja2JveCAvLy9cclxuXHJcbiAgLyoqIFBhc3MgdG8gdHJ1ZSB0byBkaXNwbGF5IGNoZWNrYm94IGluIHRoZSBoZWFkZXIgdGFibGUgKi9cclxuICBASW5wdXQoKSBjaGVja2JveCA9IGZhbHNlO1xyXG4gIC8qKiBFbWl0IG5ldyBoZWFkZXIgY2hlY2JveFZhbHVlICovXHJcbiAgQE91dHB1dCgpIHRvZ2dsZUFsbENoZWNrQm94OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vLyBJbnB1dCB0byBkaXNhYmxlIHNlY3Rpb24gLy8vXHJcblxyXG4gIC8qKiBQYXNzIHRvIHRydWUgdG8gaGlkZSBzZWFyY2ggaW5wdXQgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqIFBhc3MgdG8gdHJ1ZSB0byBoaWRlIHRoZSBwYWduaWF0b3IgKi9cclxuICBASW5wdXQoKSBkaXNhYmxlUGFnbmlhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLy8gSW5wdXQgZm9yIGxvYWRlciBvbiB0YWJsZSBib2R5IC8vL1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvLy8gUHJpdmF0ZSB2YXJpYWJsZXMgLy8vXHJcbiAgaGVhZGVyQ2hlY2tCb3hJZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgZmlsdGVyR3JvdXBDaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWx0ZXJzVGFibGVTZXJ2aWNlOiBGaWx0ZXJzVGFibGVTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGVhZGVyQ2hlY2tCb3hJZCA9IHV1aWQoKTsgLy8gQ3JlYXRlIGNoZWNrYm94IHVuaXF1ZSBpZFxyXG5cclxuICAgIC8qIEhhbmRsZSByb3V0aW5nIGZpbHRlcnMgKi9cclxuICAgIGlmICh0aGlzLnRhYmxlUm91dGluZ05hbWUpIHtcclxuICAgICAgdGhpcy5fZmlsdGVyR3JvdXAgPSB0aGlzLmZpbHRlcnNUYWJsZVNlcnZpY2UuZ2V0VGFibGVGaWx0ZXJHcm91cCh0aGlzLnRhYmxlUm91dGluZ05hbWUpO1xyXG5cclxuICAgICAgLy8gUGVyZm9ybWUgaW5pdGlhbCBmZXRjaCBkYXRhXHJcbiAgICAgIHRoaXMuX2ZpbHRlckdyb3VwLnZhbHVlc0NoYW5nZSQubmV4dChbXSk7XHJcblxyXG4gICAgICB0aGlzLnNldFRhYmxlc0ZpbHRlcnMoKTtcclxuXHJcbiAgICAgIC8vIExpc3RlbiB0byBmaWx0ZXJzIGNoYW5nZXMgd2l0aCBkZWJvdW5jZWQgdGltZSB0byBsaW1pdCBtdWx0aXBsZSBhcGkgY2FsbHNcclxuICAgICAgdGhpcy5maWx0ZXJHcm91cENoYW5nZVN1YiA9IHRoaXMuX2ZpbHRlckdyb3VwLnZhbHVlc0NoYW5nZSQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVzRmlsdGVycygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlQWxsQ2hlY2tCb3goZXZlbnQpIHtcclxuICAgIHRoaXMudG9nZ2xlQWxsQ2hlY2tCb3guZW1pdChldmVudC50YXJnZXQuY2hlY2tlZCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgLy8gUmVzZXQgdGFibGUgZmlsdGVyc1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnMuc29ydCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzLm9yZGVyID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcblxyXG4gICAgLy8gUmVzZXQgcm91dGluZyBmaWx0ZXJzXHJcbiAgICBpZiAodGhpcy5fZmlsdGVyR3JvdXApIHtcclxuICAgICAgdGhpcy5fZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgICBzZWFyY2hWYWx1ZTogdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUsXHJcbiAgICAgICAgc29ydDogdW5kZWZpbmVkLFxyXG4gICAgICAgIG9yZGVyOiB1bmRlZmluZWQsXHJcbiAgICAgICAgY3VycmVudFBhZ2U6IDFcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYWdlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyR3JvdXApIHtcclxuICAgICAgdGhpcy5fZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgICBpdGVtc1BlclBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSxcclxuICAgICAgICBjdXJyZW50UGFnZTogdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAgU2V0IHRhYmxlRmlsdGVycyBmcm9tIHJvdXRpbmcgZGF0YSBleGlzdGluZyBpbiB0aGUgdXJsXHJcbiAgICogKi9cclxuICBwcml2YXRlIHNldFRhYmxlc0ZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVycyA9IHtcclxuICAgICAgc29ydDogdGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCdzb3J0JyksXHJcbiAgICAgIG9yZGVyOiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ29yZGVyJyksXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ3NlYXJjaFZhbHVlJyksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykpIDogMCxcclxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiAwLFxyXG4gICAgICB0b3RhbEl0ZW1zOiB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBuZ0Rlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cENoYW5nZVN1Yikge1xyXG4gICAgICB0aGlzLmZpbHRlckdyb3VwQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3ei10YWJsZVwiPlxyXG4gIDwhLS0gSGVhZGVyIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInd6LXRhYmxlX19oZWFkXCIgaWQ9XCJoZWFkZXJUYWJsZVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJ3ei10YWJsZV9faGVhZF9fY2VsbCB3ei10YWJsZV9faGVhZF9fY2VsbC0tY2hlY2tib3hcIj5cclxuICAgICAgPHd6LWNoZWNrYm94IFtpZF09XCJoZWFkZXJDaGVja0JveElkXCIgKGNoYW5nZSk9XCJvblRvZ2dsZUFsbENoZWNrQm94KCRldmVudClcIiBbYWxvbmVdPVwidHJ1ZVwiPjwvd3otY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEhlYWRlciBjb250ZW50cyBhcmUgYWRkZWQgd2l0aCB0aGUgaGVhZGVyQ2VsbCBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyQ2VsbF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gU2VhcmNoIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgY2xhc3M9XCJ3ei10YWJsZV9fc2VhcmNoXCI+XHJcbiAgICA8d3otaW5wdXQtc2VhcmNoXHJcbiAgICAgIFsobmdNb2RlbCldPVwidGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlXCJcclxuICAgICAgKGNoYW5nZURlYm91bmNlZCk9XCJzZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXHJcbiAgICA+PC93ei1pbnB1dC1zZWFyY2g+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQm9keSBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3ei10YWJsZV9fYm9keVwiPlxyXG4gICAgPCEtLSBMb2FkZXIgb24gYm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJ3ei10YWJsZV9fYm9keV9fbG9hZGVyXCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgICAgPHd6LWxvYWRlciBbc21hbGxdPVwidHJ1ZVwiPjwvd3otbG9hZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEJvZHkgY29udGVudHMgYXJlIGFkZGVkIHdpdGggdGhlIHRhYmxlUm93IGRpcmVjdGl2ZSAtLT5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVJvd11cIiAqbmdJZj1cIiFpc0xvYWRpbmdcIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFnaW5hdGlvbiBzZWN0aW9uIC0tPlxyXG4gIDx3ei1wYWdpbmF0aW9uICpuZ0lmPVwiIWRpc2FibGVQYWduaWF0aW9uXCIgW3BhZ2luYXRpb25dPVwidGFibGVGaWx0ZXJzXCIgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgpXCI+PC93ei1wYWdpbmF0aW9uPlxyXG48L2Rpdj5cclxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7QUFPbEcsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBNUJsRCx1QkFBa0IsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyRSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUlsQyxnQ0FBZ0M7UUFFaEMsMkRBQTJEO1FBQ2xELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsbUNBQW1DO1FBQ3pCLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhFLGdDQUFnQztRQUVoQyx3Q0FBd0M7UUFDL0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDeEMseUNBQXlDO1FBQ2hDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUU1QyxzQ0FBc0M7UUFDN0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQU1vQyxDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JB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QUMsQ0FBQyxDQUFDLENBQUM7WUFDdEcsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVTtTQUN6QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekM7SUFDSCxDQUFDOzsyR0F6R1UsY0FBYzsrRkFBZCxjQUFjLGlYQ1gzQixrMkNBa0NBOzJGRHZCYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVUsaUJBRUwsaUJBQWlCLENBQUMsSUFBSTswR0FLNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUUsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBS0UsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMsIEZpbHRlcnNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3ei10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8vIElucHV0L091dHB1dCBvZiB0YWJsZSBmaWx0ZXJzIC8vL1xyXG5cclxuICBASW5wdXQoKSB0YWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycztcclxuICBAT3V0cHV0KCkgdGFibGVGaWx0ZXJzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VGFibGVGaWx0ZXJzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgdGFibGVSb3V0aW5nTmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB0YWJsZVxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyR3JvdXA6IE53YkZpbHRlckdyb3VwO1xyXG5cclxuICAvLy8gSW5wdXQvT3V0cHV0IG9mIGNoZWNrYm94IC8vL1xyXG5cclxuICAvKiogUGFzcyB0byB0cnVlIHRvIGRpc3BsYXkgY2hlY2tib3ggaW4gdGhlIGhlYWRlciB0YWJsZSAqL1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94ID0gZmFsc2U7XHJcbiAgLyoqIEVtaXQgbmV3IGhlYWRlciBjaGVjYm94VmFsdWUgKi9cclxuICBAT3V0cHV0KCkgdG9nZ2xlQWxsQ2hlY2tCb3g6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8vIElucHV0IHRvIGRpc2FibGUgc2VjdGlvbiAvLy9cclxuXHJcbiAgLyoqIFBhc3MgdG8gdHJ1ZSB0byBoaWRlIHNlYXJjaCBpbnB1dCAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUGFzcyB0byB0cnVlIHRvIGhpZGUgdGhlIHBhZ25pYXRvciAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVQYWduaWF0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vLyBJbnB1dCBmb3IgbG9hZGVyIG9uIHRhYmxlIGJvZHkgLy8vXHJcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIC8vLyBQcml2YXRlIHZhcmlhYmxlcyAvLy9cclxuICBoZWFkZXJDaGVja0JveElkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJHcm91cENoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnNUYWJsZVNlcnZpY2U6IEZpbHRlcnNUYWJsZVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5oZWFkZXJDaGVja0JveElkID0gdXVpZCgpOyAvLyBDcmVhdGUgY2hlY2tib3ggdW5pcXVlIGlkXHJcblxyXG4gICAgLyogSGFuZGxlIHJvdXRpbmcgZmlsdGVycyAqL1xyXG4gICAgaWYgKHRoaXMudGFibGVSb3V0aW5nTmFtZSkge1xyXG4gICAgICB0aGlzLl9maWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRUYWJsZUZpbHRlckdyb3VwKHRoaXMudGFibGVSb3V0aW5nTmFtZSk7XHJcblxyXG4gICAgICAvLyBQZXJmb3JtZSBpbml0aWFsIGZldGNoIGRhdGFcclxuICAgICAgdGhpcy5fZmlsdGVyR3JvdXAudmFsdWVzQ2hhbmdlJC5uZXh0KFtdKTtcclxuXHJcbiAgICAgIHRoaXMuc2V0VGFibGVzRmlsdGVycygpO1xyXG5cclxuICAgICAgLy8gTGlzdGVuIHRvIGZpbHRlcnMgY2hhbmdlcyB3aXRoIGRlYm91bmNlZCB0aW1lIHRvIGxpbWl0IG11bHRpcGxlIGFwaSBjYWxsc1xyXG4gICAgICB0aGlzLmZpbHRlckdyb3VwQ2hhbmdlU3ViID0gdGhpcy5fZmlsdGVyR3JvdXAudmFsdWVzQ2hhbmdlJC5zdWJzY3JpYmUoZmlsdGVycyA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRUYWJsZXNGaWx0ZXJzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGVBbGxDaGVja0JveChldmVudCkge1xyXG4gICAgdGhpcy50b2dnbGVBbGxDaGVja0JveC5lbWl0KGV2ZW50LnRhcmdldC5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENoYW5nZShldmVudDogc3RyaW5nKSB7XHJcbiAgICAvLyBSZXNldCB0YWJsZSBmaWx0ZXJzXHJcbiAgICB0aGlzLnRhYmxlRmlsdGVycy5zb3J0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnMub3JkZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyc0NoYW5nZS5lbWl0KHRoaXMudGFibGVGaWx0ZXJzKTtcclxuXHJcbiAgICAvLyBSZXNldCByb3V0aW5nIGZpbHRlcnNcclxuICAgIGlmICh0aGlzLl9maWx0ZXJHcm91cCkge1xyXG4gICAgICB0aGlzLl9maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZSxcclxuICAgICAgICBzb3J0OiB1bmRlZmluZWQsXHJcbiAgICAgICAgb3JkZXI6IHVuZGVmaW5lZCxcclxuICAgICAgICBjdXJyZW50UGFnZTogMVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVyc0NoYW5nZS5lbWl0KHRoaXMudGFibGVGaWx0ZXJzKTtcclxuICAgIGlmICh0aGlzLl9maWx0ZXJHcm91cCkge1xyXG4gICAgICB0aGlzLl9maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBTZXQgdGFibGVGaWx0ZXJzIGZyb20gcm91dGluZyBkYXRhIGV4aXN0aW5nIGluIHRoZSB1cmxcclxuICAgKiAqL1xyXG4gIHByaXZhdGUgc2V0VGFibGVzRmlsdGVycygpIHtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzID0ge1xyXG4gICAgICBzb3J0OiB0aGlzLl9maWx0ZXJHcm91cC5nZXQoJ3NvcnQnKSxcclxuICAgICAgb3JkZXI6IHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnb3JkZXInKSxcclxuICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnc2VhcmNoVmFsdWUnKSxcclxuICAgICAgdHlwZTogdGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCd0eXBlJyksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fZmlsdGVyR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykpIDogMCxcclxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX2ZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiAwLFxyXG4gICAgICB0b3RhbEl0ZW1zOiB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBuZ0Rlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cENoYW5nZVN1Yikge1xyXG4gICAgICB0aGlzLmZpbHRlckdyb3VwQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3ei10YWJsZVwiPlxyXG4gIDwhLS0gSGVhZGVyIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInd6LXRhYmxlX19oZWFkXCIgaWQ9XCJoZWFkZXJUYWJsZVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJ3ei10YWJsZV9faGVhZF9fY2VsbCB3ei10YWJsZV9faGVhZF9fY2VsbC0tY2hlY2tib3hcIj5cclxuICAgICAgPHd6LWNoZWNrYm94IFtpZF09XCJoZWFkZXJDaGVja0JveElkXCIgKGNoYW5nZSk9XCJvblRvZ2dsZUFsbENoZWNrQm94KCRldmVudClcIiBbYWxvbmVdPVwidHJ1ZVwiPjwvd3otY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEhlYWRlciBjb250ZW50cyBhcmUgYWRkZWQgd2l0aCB0aGUgaGVhZGVyQ2VsbCBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyQ2VsbF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gU2VhcmNoIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgY2xhc3M9XCJ3ei10YWJsZV9fc2VhcmNoXCI+XHJcbiAgICA8d3otaW5wdXQtc2VhcmNoXHJcbiAgICAgIFsobmdNb2RlbCldPVwidGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlXCJcclxuICAgICAgKGNoYW5nZURlYm91bmNlZCk9XCJzZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXHJcbiAgICA+PC93ei1pbnB1dC1zZWFyY2g+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQm9keSBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3ei10YWJsZV9fYm9keVwiPlxyXG4gICAgPCEtLSBMb2FkZXIgb24gYm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJ3ei10YWJsZV9fYm9keV9fbG9hZGVyXCIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgICAgPHd6LWxvYWRlciBbc21hbGxdPVwidHJ1ZVwiPjwvd3otbG9hZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEJvZHkgY29udGVudHMgYXJlIGFkZGVkIHdpdGggdGhlIHRhYmxlUm93IGRpcmVjdGl2ZSAtLT5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVJvd11cIiAqbmdJZj1cIiFpc0xvYWRpbmdcIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFnaW5hdGlvbiBzZWN0aW9uIC0tPlxyXG4gIDx3ei1wYWdpbmF0aW9uICpuZ0lmPVwiIWRpc2FibGVQYWduaWF0aW9uXCIgW3BhZ2luYXRpb25dPVwidGFibGVGaWx0ZXJzXCIgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgpXCI+PC93ei1wYWdpbmF0aW9uPlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9kdG8vaW1nLW1hbmFnZXIuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEltZ1BpY3R1cmVEVE8ge1xyXG4gICAgYmlnX21pbmlhdHVyZTogc3RyaW5nLFxyXG4gICAgY2F0ZWdvcnk6IHN0cmluZyxcclxuICAgIGNyb3BwZWQ6IHN0cmluZyxcclxuICAgIGRhdGU6IHN0cmluZyxcclxuICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nLFxyXG4gICAgZmlsZV9uYW1lOiBzdHJpbmcsXHJcbiAgICBnX2lkOiBzdHJpbmcsXHJcbiAgICBpZF9maWxlOiBzdHJpbmcsXHJcbiAgICBpZF9zaG9wOiBzdHJpbmcsXHJcbiAgICBuYl91c2VkOiBzdHJpbmcsXHJcbiAgICBvbGRfZmlsZV9uYW1lOiBzdHJpbmcsXHJcbiAgICByYXdfaGVpZ2h0OiBzdHJpbmcsXHJcbiAgICByYXdfd2lkdGg6IHN0cmluZyxcclxuICAgIHNpemU6IHN0cmluZyxcclxuICAgIGNoZWNrZWQ/OiBib29sZWFuLFxyXG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuLFxyXG4gICAgZGVsU2VsZWN0ZWQ/OiBib29sZWFuLFxyXG4gICAgZGVsZXRlZD86IGJvb2xlYW4sXHJcbiAgICBpbWdOb3RMb2FkZWQ/OiBib29sZWFuO1xyXG4gICAgdmlkZW9fbGluaz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWdQaWN0dXJlc0RUTyB7XHJcbiAgICBkYXRhOiBJbWdQaWN0dXJlRFRPW10sXHJcbiAgICBmaWx0ZXI6IGFueVtdLFxyXG4gICAgbGltaXQ6IG51bWJlcixcclxuICAgIHBhZ2U6IG51bWJlcixcclxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zSW1nTWFuYWdlckRUTyB7XHJcbiAgICBsaW1pdDogc3RyaW5nO1xyXG4gICAgcGFnZTogc3RyaW5nO1xyXG4gICAgc2VhcmNoPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9kdG8vaW1nLW1hbmFnZXIuZHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEltZ1BpY3R1cmVEVE8ge1xyXG4gICAgYmlnX21pbmlhdHVyZTogc3RyaW5nLFxyXG4gICAgY2F0ZWdvcnk6IHN0cmluZyxcclxuICAgIGNyb3BwZWQ6IHN0cmluZyxcclxuICAgIGRhdGU6IHN0cmluZyxcclxuICAgIGRpc3BsYXlfbmFtZTogc3RyaW5nLFxyXG4gICAgZmlsZV9uYW1lOiBzdHJpbmcsXHJcbiAgICBnX2lkOiBzdHJpbmcsXHJcbiAgICBpZF9maWxlOiBzdHJpbmcsXHJcbiAgICBpZF9zaG9wOiBzdHJpbmcsXHJcbiAgICBuYl91c2VkOiBzdHJpbmcsXHJcbiAgICBvbGRfZmlsZV9uYW1lOiBzdHJpbmcsXHJcbiAgICByYXdfaGVpZ2h0OiBzdHJpbmcsXHJcbiAgICByYXdfd2lkdGg6IHN0cmluZyxcclxuICAgIHNpemU6IHN0cmluZyxcclxuICAgIGNoZWNrZWQ/OiBib29sZWFuLFxyXG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuLFxyXG4gICAgZGVsU2VsZWN0ZWQ/OiBib29sZWFuLFxyXG4gICAgZGVsZXRlZD86IGJvb2xlYW4sXHJcbiAgICBpbWdOb3RMb2FkZWQ/OiBib29sZWFuO1xyXG4gICAgdmlkZW9fbGluaz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWdQaWN0dXJlc0RUTyB7XHJcbiAgICBkYXRhOiBJbWdQaWN0dXJlRFRPW10sXHJcbiAgICBmaWx0ZXI6IGFueVtdLFxyXG4gICAgbGltaXQ6IG51bWJlcixcclxuICAgIHBhZ2U6IG51bWJlcixcclxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zSW1nTWFuYWdlckRUTyB7XHJcbiAgICBsaW1pdDogc3RyaW5nO1xyXG4gICAgcGFnZTogc3RyaW5nO1xyXG4gICAgc2VhcmNoPzogc3RyaW5nO1xyXG4gICAgdHlwZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUxpc3REYXRhIHtcclxuICBpbWFnZUxpc3Q6IHsgZGF0YTogSW1nUGljdHVyZURUT1tdLCBwYWdlOiBudW1iZXIgfTsgaW1hZ2VUb3RhbDogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -62,6 +62,7 @@ export class ImgManagerService {
62
62
  get DEFAULT_SEARCH_PARAMS() {
63
63
  return {
64
64
  limit: '30',
65
+ type: '',
65
66
  page: '1',
66
67
  };
67
68
  }
@@ -125,7 +126,7 @@ export class ImgManagerService {
125
126
  ];
126
127
  }
127
128
  ngOnDestroy() {
128
- this.destroy$.next();
129
+ this.destroy$.next(null);
129
130
  this.destroy$.complete();
130
131
  }
131
132
  copyToClipboard(url) {
@@ -176,4 +177,4 @@ ImgManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ve
176
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ImgManagerService, decorators: [{
177
178
  type: Injectable
178
179
  }] });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXhKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUdqRCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBR21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7UUFHOUQsV0FBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVELDRCQUE0QjtRQUNwQiwyQkFBc0IsR0FBNEI7WUFDeEQsY0FBYyxFQUFFLFFBQVE7WUFDeEIsZUFBZSxFQUFFLElBQUk7WUFDckIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsSUFBSTtZQUNuQixVQUFVLEVBQUUsSUFBSTtZQUNoQixnQkFB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O1FBRXBCLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7WUFDbEMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFbEIsSUFBSTtnQkFDRixPQUFPLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9ELE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDakI7b0JBQVM7Z0JBQ1IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OzhHQXhPVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmb3JrSm9pbiwgbWFwLCBtZXJnZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xyXG5pbXBvcnQgeyBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyB9IGZyb20gJy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xyXG5pbXBvcnQgeyBJbWdNYW5hZ2VyQ29uZmlnIH0gZnJvbSAnLi4vZHRvL2NvbmZpZy9pbWctbWFuYWdlcic7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW1nTWFuYWdlclNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHVwbG9hZFNlcnZpY2UgPSBpbmplY3QoVXBsb2FkU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpOyAvLyBJbmplY3RlciBOZ1pvbmVcclxuXHJcblxyXG4gIHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwibGltaXRcIixcIjIwXCIpLnNldChcInBhZ2VcIixcIjFcIik7XHJcblxyXG4gIC8vIERpc3BsYXkgdGhlIGltZyBzZWxlY3Rpb25cclxuICBwcml2YXRlIHBhZ2VGaWNoZVByb2R1Y3RDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xyXG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICdjbG9zZWQnLFxyXG4gICAgbXVsdGlwbGVJbWdNb2RlOiB0cnVlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiB0cnVlLFxyXG4gICAgZGlzcGxheUJ0bjogdHJ1ZSxcclxuICAgIHBhZ2VmaWNoZVByb2R1Y3Q6IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYW5ndWxhckZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ2Nsb3NlZCcsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IHRydWUsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IHRydWUsXHJcbiAgICBkaXNwbGF5QnRuOiBmYWxzZSxcclxuICAgIHBhZ2VmaWNoZVByb2R1Y3Q6IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2l6aWJsb2NrQ29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcclxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgZGlzcGxheUJ0bjogZmFsc2VcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2ltcGxlV2l0aEJ1dHRvbk9wZW5lckNvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ2Nsb3NlZCcsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIGRpc3BsYXlCdG46IHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZnVsbFdpbmRvd0NvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ3dpbmRvdycsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxyXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXHJcbiAgICBzaG93U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgIGRpc3BsYXlCdG46IGZhbHNlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgZ2V0IERFRkFVTFRfU0VBUkNIX1BBUkFNUygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxpbWl0OiAnMzAnLFxyXG4gICAgICBwYWdlOiAnMScsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgREVGQVVMVF9EQVRBX0xJU1QoKToge1xyXG4gICAgaW1hZ2VMaXN0OiBJbWdQaWN0dXJlc0RUTztcclxuICAgIGltYWdlVG90YWw6IG51bWJlcjtcclxuICB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGltYWdlTGlzdDoge1xyXG4gICAgICAgIGRhdGE6IFtdLFxyXG4gICAgICAgIGZpbHRlcjogW10sXHJcbiAgICAgICAgbGltaXQ6IDAsXHJcbiAgICAgICAgcGFnZTogMCxcclxuICAgICAgICB0b3RhbFJlY29yZHM6IDBcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2VUb3RhbDogMFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFyYW1zSW1nTWFuYWdlckRUTz4odGhpcy5ERUZBVUxUX1NFQVJDSF9QQVJBTVMpO1xyXG4gIHB1YmxpYyByZWZyZXNoSW1hZ2VMaXN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHJlc2V0SW1hZ2VMaXN0JCA9IG1lcmdlKFxyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmltYWdlVXBsb2FkZWQkXHJcbiAgKTtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHByaXZhdGUgZmV0Y2hJbWFnZXNMaXN0JCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDgwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgKSxcclxuICAgICAgdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkKVxyXG4gICAgICApLFxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHBhcmFtcykgPT4gdGhpcy5nZXRIdHRwUGFyYW1ldGVycyhwYXJhbXMpKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+IGZvcmtKb2luKHtcclxuICAgICAgICBpbWFnZUxpc3Q6IHRoaXMuYXBpU2VydmljZS5nZXRTaG9wSW1nTGlzdChwYXJhbXMpLnBpcGUodGFrZSgxKSksXHJcbiAgICAgICAgaW1hZ2VUb3RhbDogdGhpcy5hcGlTZXJ2aWNlLmdldFNob3BUb3RhbEltZ0xpc3QocGFyYW1zKS5waXBlKHRha2UoMSkpXHJcbiAgICAgIH0pKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKSlcclxuICAgICk7XHJcblxyXG5cclxuICBwdWJsaWMgaW1hZ2VMaXN0JCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLmZldGNoSW1hZ2VzTGlzdCQsXHJcbiAgICAgIHRoaXMucmVzZXRJbWFnZUxpc3QkLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJC5uZXh0KHRoaXMuREVGQVVMVF9TRUFSQ0hfUEFSQU1TKSksXHJcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuREVGQVVMVF9EQVRBX0xJU1QpXHJcbiAgICAgICAgKVxyXG4gICkucGlwZShcclxuICAgIHN0YXJ0V2l0aCggdGhpcy5ERUZBVUxUX0RBVEFfTElTVCksXHJcbiAgICBzaGFyZVJlcGxheSgxKVxyXG4gICk7XHJcblxyXG5cclxuICBnZXRIdHRwUGFyYW1ldGVycyhwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKSB7XHJcbiAgICBsZXQgcGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnaWRfZmlsZTpzb3J0JywgJ2Rlc2MnKTtcclxuICAgIGZvciAoY29uc3QgcGFyYW0gaW4gcGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldChwYXJhbSwgcGFyYW1zW3BhcmFtXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcmFtcz8uc2VhcmNoKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnZGlzcGxheV9uYW1lOmNvbnRhaW5zJywgcGFyYW1zLnNlYXJjaCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0U2hvcEltZyhpZEZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlSW1nKGltYWdlQmFzZTY0OiBzdHJpbmcsIGlkX2ZpbGU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZXBsYWNlSW1nKGltYWdlQmFzZTY0LCBpZF9maWxlKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5uZXh0KCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlbW92ZUltZyhpZF9maWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucmVtb3ZlSW1nKGlkX2ZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheTogc3RyaW5nW10pe1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHRoaXMucmVmcmVzaEltYWdlTGlzdCQubmV4dCgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKGRpc3BsYXlOYW1lOiBJbWdNYW5hZ2VyQ29uZmlnKSB7XHJcbiAgICBzd2l0Y2ggKGRpc3BsYXlOYW1lKSB7XHJcbiAgICAgIGNhc2UgXCJ3aW5kb3dcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy5mdWxsV2luZG93Q29uZmlnO1xyXG5cclxuICAgICAgY2FzZSBcIndpemktYmxvY2tcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy53aXppYmxvY2tDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwiZmljaGUtcHJvZHVjdFwiOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwic2ltcGxlLXdpdGgtYnV0dG9uXCI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2ltcGxlV2l0aEJ1dHRvbk9wZW5lckNvbmZpZztcclxuXHJcbiAgICAgIGNhc2UgJ2FuZ3VsYXItZmljaGUtcHJvZHVjdCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5ndWxhckZpY2hlUHJvZHVjdENvbmZpZ1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBbGxJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZygpOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZ1tdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHRoaXMuZnVsbFdpbmRvd0NvbmZpZyxcclxuICAgICAgdGhpcy53aXppYmxvY2tDb25maWcsXHJcbiAgICAgIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyxcclxuICAgICAgdGhpcy5zaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnLFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGNvcHlUb0NsaXBib2FyZCh1cmw6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIC8vIFbDqXJpZmllciBzaSBsJ0FQSSBDbGlwYm9hcmQgZXN0IGRpc3BvbmlibGVcclxuICAgICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpIHtcclxuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh1cmwpXHJcbiAgICAgICAgICAudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKVxyXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQ6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuZmFsbGJhY2tDb3B5VG9DbGlwYm9hcmQodXJsKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBGYWxsYmFjayBwb3VyIGxlcyBuYXZpZ2F0ZXVycyBxdWkgbmUgc3VwcG9ydGVudCBwYXMgbCdBUEkgQ2xpcGJvYXJkXHJcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmZhbGxiYWNrQ29weVRvQ2xpcGJvYXJkKHVybCkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmFsbGJhY2tDb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICAvLyBFeMOpY3V0ZXIgZW4gZGVob3JzIGR1IGN5Y2xlIGRlIGTDqXRlY3Rpb24gZCdBbmd1bGFyXHJcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG4gICAgICB0ZXh0QXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICAgIHRleHRBcmVhLnN0eWxlLmxlZnQgPSAnLTk5OTk5OXB4JztcclxuICAgICAgdGV4dEFyZWEuc3R5bGUudG9wID0gJy05OTk5OTlweCc7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgICB0ZXh0QXJlYS5mb2N1cygpO1xyXG4gICAgICB0ZXh0QXJlYS5zZWxlY3QoKTtcclxuICAgICAgXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgc3VjY2VzcyA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFsbGJhY2s6IEZhaWxlZCB0byBjb3B5IHRvIGNsaXBib2FyZDonLCBlcnJvcik7XHJcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxufSJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSixNQUFNLE1BQU0sQ0FBQztBQUlkLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUdqRCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBR21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7UUFHOUQsV0FBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVELDRCQUE0QjtRQUNwQiwyQkFBc0IsR0FBNEI7WUFDeEQsY0FBYyxFQUFFLFFBQVE7WUFDeEIsZUFBZSxFQUFFLElBQUk7WUFDckIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsSUFBSTtZQUNuQixVQUFVLEVBQUUsSUFBSTtZQUNoQixnQkFB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WTtRQUMxQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFcEIscURBQXFEO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEQsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ2xDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztZQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7WUFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVsQixJQUFJO2dCQUNGLE9BQU8sR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hDO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUNqQjtvQkFBUztnQkFDUixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7OEdBek9VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgZm9ya0pvaW4sXHJcbiAgbWFwLFxyXG4gIG1lcmdlLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgc2hhcmVSZXBsYXksXHJcbiAgc3RhcnRXaXRoLFxyXG4gIFN1YmplY3QsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRha2UsXHJcbiAgdGFwXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtJbWFnZUxpc3REYXRhLCBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUT30gZnJvbSAnLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XHJcbmltcG9ydCB7IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnIH0gZnJvbSAnLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XHJcbmltcG9ydCB7IEltZ01hbmFnZXJDb25maWcgfSBmcm9tICcuLi9kdG8vY29uZmlnL2ltZy1tYW5hZ2VyJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbWdNYW5hZ2VyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdXBsb2FkU2VydmljZSA9IGluamVjdChVcGxvYWRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7IC8vIEluamVjdGVyIE5nWm9uZVxyXG5cclxuXHJcbiAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJsaW1pdFwiLFwiMjBcIikuc2V0KFwicGFnZVwiLFwiMVwiKTtcclxuXHJcbiAgLy8gRGlzcGxheSB0aGUgaW1nIHNlbGVjdGlvblxyXG4gIHByaXZhdGUgcGFnZUZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XHJcbiAgICBzdGF0ZURpc3BsYXllZDogJ2Nsb3NlZCcsXHJcbiAgICBtdWx0aXBsZUltZ01vZGU6IHRydWUsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IHRydWUsXHJcbiAgICBkaXNwbGF5QnRuOiB0cnVlLFxyXG4gICAgcGFnZWZpY2hlUHJvZHVjdDogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhbmd1bGFyRmljaGVQcm9kdWN0Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcclxuICAgIG11bHRpcGxlSW1nTW9kZTogdHJ1ZSxcclxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxyXG4gICAgc2hvd1NlbGVjdGlvbjogdHJ1ZSxcclxuICAgIGRpc3BsYXlCdG46IGZhbHNlLFxyXG4gICAgcGFnZWZpY2hlUHJvZHVjdDogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3aXppYmxvY2tDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xyXG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICdjbG9zZWQnLFxyXG4gICAgbXVsdGlwbGVJbWdNb2RlOiBmYWxzZSxcclxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxyXG4gICAgc2hvd1NlbGVjdGlvbjogZmFsc2UsXHJcbiAgICBkaXNwbGF5QnRuOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcclxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgZGlzcGxheUJ0bjogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmdWxsV2luZG93Q29uZmlnOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHN0YXRlRGlzcGxheWVkOiAnd2luZG93JyxcclxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXHJcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcclxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxyXG4gICAgZGlzcGxheUJ0bjogZmFsc2VcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgREVGQVVMVF9TRUFSQ0hfUEFSQU1TKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGltaXQ6ICczMCcsXHJcbiAgICAgIHR5cGU6ICcnLFxyXG4gICAgICBwYWdlOiAnMScsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgREVGQVVMVF9EQVRBX0xJU1QoKToge1xyXG4gICAgaW1hZ2VMaXN0OiBJbWdQaWN0dXJlc0RUTztcclxuICAgIGltYWdlVG90YWw6IG51bWJlcjtcclxuICB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGltYWdlTGlzdDoge1xyXG4gICAgICAgIGRhdGE6IFtdLFxyXG4gICAgICAgIGZpbHRlcjogW10sXHJcbiAgICAgICAgbGltaXQ6IDAsXHJcbiAgICAgICAgcGFnZTogMCxcclxuICAgICAgICB0b3RhbFJlY29yZHM6IDBcclxuICAgICAgfSxcclxuICAgICAgaW1hZ2VUb3RhbDogMFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFyYW1zSW1nTWFuYWdlckRUTz4odGhpcy5ERUZBVUxUX1NFQVJDSF9QQVJBTVMpO1xyXG4gIHB1YmxpYyByZWZyZXNoSW1hZ2VMaXN0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHJlc2V0SW1hZ2VMaXN0JCA9IG1lcmdlKFxyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmltYWdlVXBsb2FkZWQkXHJcbiAgKTtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHByaXZhdGUgZmV0Y2hJbWFnZXNMaXN0JCA9IG1lcmdlKFxyXG4gICAgICB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDgwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgKSxcclxuICAgICAgdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlYXJjaEltYWdlc1BhcmFtZXRlcnMkKVxyXG4gICAgICApLFxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHBhcmFtczogUGFyYW1zSW1nTWFuYWdlckRUTykgPT4gdGhpcy5nZXRIdHRwUGFyYW1ldGVycyhwYXJhbXMpKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+IGZvcmtKb2luKHtcclxuICAgICAgICBpbWFnZUxpc3Q6IHRoaXMuYXBpU2VydmljZS5nZXRTaG9wSW1nTGlzdChwYXJhbXMpLnBpcGUodGFrZSgxKSksXHJcbiAgICAgICAgaW1hZ2VUb3RhbDogdGhpcy5hcGlTZXJ2aWNlLmdldFNob3BUb3RhbEltZ0xpc3QocGFyYW1zKS5waXBlKHRha2UoMSkpXHJcbiAgICAgIH0pKSxcclxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKSlcclxuICAgICk7XHJcblxyXG5cclxuICBwdWJsaWMgaW1hZ2VMaXN0JDogT2JzZXJ2YWJsZTxJbWFnZUxpc3REYXRhPiA9IG1lcmdlKFxyXG4gICAgICB0aGlzLmZldGNoSW1hZ2VzTGlzdCQsXHJcbiAgICAgIHRoaXMucmVzZXRJbWFnZUxpc3QkLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nJC5uZXh0KHRydWUpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zZWFyY2hJbWFnZXNQYXJhbWV0ZXJzJC5uZXh0KHRoaXMuREVGQVVMVF9TRUFSQ0hfUEFSQU1TKSksXHJcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuREVGQVVMVF9EQVRBX0xJU1QpXHJcbiAgICAgICAgKVxyXG4gICkucGlwZShcclxuICAgIHN0YXJ0V2l0aCggdGhpcy5ERUZBVUxUX0RBVEFfTElTVCksXHJcbiAgICBzaGFyZVJlcGxheSgxKVxyXG4gICk7XHJcblxyXG5cclxuICBnZXRIdHRwUGFyYW1ldGVycyhwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKSB7XHJcbiAgICBsZXQgcGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnaWRfZmlsZTpzb3J0JywgJ2Rlc2MnKTtcclxuICAgIGZvciAoY29uc3QgcGFyYW0gaW4gcGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldChwYXJhbSwgcGFyYW1zW3BhcmFtXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcmFtcz8uc2VhcmNoKSB7XHJcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLnNldCgnZGlzcGxheV9uYW1lOmNvbnRhaW5zJywgcGFyYW1zLnNlYXJjaCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0U2hvcEltZyhpZEZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlSW1nKGltYWdlQmFzZTY0OiBzdHJpbmcsIGlkX2ZpbGU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZXBsYWNlSW1nKGltYWdlQmFzZTY0LCBpZF9maWxlKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoSW1hZ2VMaXN0JC5uZXh0KCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlbW92ZUltZyhpZF9maWxlOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucmVtb3ZlSW1nKGlkX2ZpbGUpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hJbWFnZUxpc3QkLm5leHQoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheTogc3RyaW5nW10pe1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5yZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHRoaXMucmVmcmVzaEltYWdlTGlzdCQubmV4dCgpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKGRpc3BsYXlOYW1lOiBJbWdNYW5hZ2VyQ29uZmlnKSB7XHJcbiAgICBzd2l0Y2ggKGRpc3BsYXlOYW1lKSB7XHJcbiAgICAgIGNhc2UgXCJ3aW5kb3dcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy5mdWxsV2luZG93Q29uZmlnO1xyXG5cclxuICAgICAgY2FzZSBcIndpemktYmxvY2tcIjpcclxuICAgICAgICByZXR1cm4gdGhpcy53aXppYmxvY2tDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwiZmljaGUtcHJvZHVjdFwiOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWc7XHJcblxyXG4gICAgICBjYXNlIFwic2ltcGxlLXdpdGgtYnV0dG9uXCI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2ltcGxlV2l0aEJ1dHRvbk9wZW5lckNvbmZpZztcclxuXHJcbiAgICAgIGNhc2UgJ2FuZ3VsYXItZmljaGUtcHJvZHVjdCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5ndWxhckZpY2hlUHJvZHVjdENvbmZpZ1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBbGxJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZygpOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZ1tdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHRoaXMuZnVsbFdpbmRvd0NvbmZpZyxcclxuICAgICAgdGhpcy53aXppYmxvY2tDb25maWcsXHJcbiAgICAgIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZyxcclxuICAgICAgdGhpcy5zaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnLFxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBjb3B5VG9DbGlwYm9hcmQodXJsOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAvLyBWw6lyaWZpZXIgc2kgbCdBUEkgQ2xpcGJvYXJkIGVzdCBkaXNwb25pYmxlXHJcbiAgICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KSB7XHJcbiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodXJsKVxyXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSh0cnVlKSlcclxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNvcHkgdG8gY2xpcGJvYXJkOicsIGVycm9yKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLmZhbGxiYWNrQ29weVRvQ2xpcGJvYXJkKHVybCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRmFsbGJhY2sgcG91ciBsZXMgbmF2aWdhdGV1cnMgcXVpIG5lIHN1cHBvcnRlbnQgcGFzIGwnQVBJIENsaXBib2FyZFxyXG4gICAgICAgIHJlc29sdmUodGhpcy5mYWxsYmFja0NvcHlUb0NsaXBib2FyZCh1cmwpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZhbGxiYWNrQ29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcclxuXHJcbiAgICAvLyBFeMOpY3V0ZXIgZW4gZGVob3JzIGR1IGN5Y2xlIGRlIGTDqXRlY3Rpb24gZCdBbmd1bGFyXHJcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG4gICAgICB0ZXh0QXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICAgIHRleHRBcmVhLnN0eWxlLmxlZnQgPSAnLTk5OTk5OXB4JztcclxuICAgICAgdGV4dEFyZWEuc3R5bGUudG9wID0gJy05OTk5OTlweCc7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgICB0ZXh0QXJlYS5mb2N1cygpO1xyXG4gICAgICB0ZXh0QXJlYS5zZWxlY3QoKTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgc3VjY2VzcyA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFsbGJhY2s6IEZhaWxlZCB0byBjb3B5IHRvIGNsaXBib2FyZDonLCBlcnJvcik7XHJcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -10,6 +10,7 @@ export class FiltersTableService {
10
10
  this.dataTableFilters = {
11
11
  sort: undefined,
12
12
  order: undefined,
13
+ type: '',
13
14
  searchValue: undefined,
14
15
  totalItems: 0,
15
16
  itemsPerPage: 0,
@@ -57,4 +58,4 @@ FiltersTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
57
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: FiltersTableService, decorators: [{
58
59
  type: Injectable
59
60
  }], ctorParameters: function () { return [{ type: i1.NwbFilterRoutingBuilder }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBVS9CLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFBb0Isb0JBQTZDO1FBQTdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFaakUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztRQUNqRCxxQkFBZ0IsR0FBaUI7WUFDL0IsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsU0FBUztZQUNoQixXQUFXLEVBQUUsU0FBUztZQUN0QixVQUFVLEVBQUUsQ0FBQztZQUNiLFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO1FBRU0sZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUVhLENBQUM7SUFFckUsbUJBQW1CLENBQUMsYUFBcUI7UUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsTUFBTSxXQUFXLEdBQW1CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsYUFBcUIsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELG9CQUFvQixDQUFDLGFBQXFCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFdBQW1CO1FBQ3ZHLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3BCLFlBQVk7WUFDWixXQUFXO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHFDQUFxQyxDQUFDLGFBQXFCLEVBQUUsWUFBb0IsRUFBRSxXQUFtQjtRQUNwRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUNwQixZQUFZLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWTtZQUN4RyxXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztTQUNyRyxDQUFDLENBQUM7SUFDTCxDQUFDOztnSEFwRFUsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAsIE53YkZpbHRlclJvdXRpbmdCdWlsZGVyIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25GaWx0ZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRmlsdGVycyBleHRlbmRzIFBhZ2luYXRpb25GaWx0ZXJzIHtcclxuICBzb3J0OiBzdHJpbmc7XHJcbiAgb3JkZXI6IGJvb2xlYW47XHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1RhYmxlU2VydmljZSB7XHJcbiAgZmlsdGVyR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE53YkZpbHRlckdyb3VwPigpO1xyXG4gIGRhdGFUYWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcclxuICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgIG9yZGVyOiB1bmRlZmluZWQsXHJcbiAgICBzZWFyY2hWYWx1ZTogdW5kZWZpbmVkLFxyXG4gICAgdG90YWxJdGVtczogMCxcclxuICAgIGl0ZW1zUGVyUGFnZTogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAwXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBzb3J0U3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlclJvdXRpbmdCdWlsZGVyOiBOd2JGaWx0ZXJSb3V0aW5nQnVpbGRlcikge31cclxuXHJcbiAgZ2V0VGFibGVGaWx0ZXJHcm91cChkYXRhVGFibGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlckdyb3Vwcy5oYXMoZGF0YVRhYmxlTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR3JvdXBzLmdldChkYXRhVGFibGVOYW1lKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbHRlckdyb3VwOiBOd2JGaWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyUm91dGluZ0J1aWxkZXIuZ3JvdXAodGhpcy5kYXRhVGFibGVGaWx0ZXJzLCBkYXRhVGFibGVOYW1lKTtcclxuICAgIHRoaXMuZmlsdGVyR3JvdXBzLnNldChkYXRhVGFibGVOYW1lLCBmaWx0ZXJHcm91cCk7XHJcbiAgICByZXR1cm4gZmlsdGVyR3JvdXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVc2UgdG8gcmVzZXQgdGhlIG90aGVycyBzb3J0cyBvZiB0aGUgdGFibGVcclxuICAgKiBAcGFyYW0gZGF0YVRhYmxlTmFtZVxyXG4gICAqIEBwYXJhbSBzb3J0TmFtZVxyXG4gICAqIEBwYXJhbSBvcmRlclxyXG4gICAqL1xyXG4gIGVtaXRTb3J0Q2hhbmdlKGRhdGFUYWJsZU5hbWU6IHN0cmluZywgc29ydE5hbWU6IHN0cmluZywgb3JkZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc29ydFN1YmplY3QubmV4dCh7IGRhdGFUYWJsZU5hbWUsIHNvcnROYW1lLCBvcmRlciB9KTtcclxuICB9XHJcblxyXG4gIGdldFNvcnRDaGFuZ2VMaXN0bmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdpbmF0aW9uRmlsdGVycyhkYXRhVGFibGVOYW1lOiBzdHJpbmcsIHRvdGFsSXRlbXM6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbHRlckdyb3VwID0gdGhpcy5nZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgaXRlbXNQZXJQYWdlLFxyXG4gICAgICBjdXJyZW50UGFnZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsUGFnaW5hdGlvbkZpbHRlcnNJZk5vdEV4aXN0KGRhdGFUYWJsZU5hbWU6IHN0cmluZywgaXRlbXNQZXJQYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZpbHRlckdyb3VwID0gdGhpcy5nZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgZmlsdGVyR3JvdXAuc2V0VmFsdWVzKHtcclxuICAgICAgaXRlbXNQZXJQYWdlOiBmaWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpID8gcGFyc2VJbnQoZmlsdGVyR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSkgOiBpdGVtc1BlclBhZ2UsXHJcbiAgICAgIGN1cnJlbnRQYWdlOiBmaWx0ZXJHcm91cC5nZXQoJ2N1cnJlbnRQYWdlJykgPyBwYXJzZUludChmaWx0ZXJHcm91cC5nZXQoJ2N1cnJlbnRQYWdlJykpIDogY3VycmVudFBhZ2VcclxuICAgIH0pO1xyXG4gIH1cclxufSJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBVy9CLE1BQU0sT0FBTyxtQkFBbUI7SUFjOUIsWUFBb0Isb0JBQTZDO1FBQTdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFiakUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztRQUNqRCxxQkFBZ0IsR0FBaUI7WUFDL0IsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUM7UUFFTSxnQkFBVyxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lBRWEsQ0FBQztJQUVyRSxtQkFBbUIsQ0FBQyxhQUFxQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLFdBQVcsR0FBbUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxhQUFxQixFQUFFLFFBQWdCLEVBQUUsS0FBYztRQUNwRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsYUFBcUIsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsV0FBbUI7UUFDdkcsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDcEIsWUFBWTtZQUNaLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUNBQXFDLENBQUMsYUFBcUIsRUFBRSxZQUFvQixFQUFFLFdBQW1CO1FBQ3BHLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3BCLFlBQVksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQ3hHLFdBQVcsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1NBQ3JHLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQXJEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOd2JGaWx0ZXJHcm91cCwgTndiRmlsdGVyUm91dGluZ0J1aWxkZXIgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkZpbHRlcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVGaWx0ZXJzIGV4dGVuZHMgUGFnaW5hdGlvbkZpbHRlcnMge1xyXG4gIHNvcnQ6IHN0cmluZztcclxuICBvcmRlcjogYm9vbGVhbjtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1RhYmxlU2VydmljZSB7XHJcbiAgZmlsdGVyR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE53YkZpbHRlckdyb3VwPigpO1xyXG4gIGRhdGFUYWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcclxuICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgIG9yZGVyOiB1bmRlZmluZWQsXHJcbiAgICB0eXBlOiAnJyxcclxuICAgIHNlYXJjaFZhbHVlOiB1bmRlZmluZWQsXHJcbiAgICB0b3RhbEl0ZW1zOiAwLFxyXG4gICAgaXRlbXNQZXJQYWdlOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHNvcnRTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsdGVyUm91dGluZ0J1aWxkZXI6IE53YkZpbHRlclJvdXRpbmdCdWlsZGVyKSB7fVxyXG5cclxuICBnZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyR3JvdXBzLmhhcyhkYXRhVGFibGVOYW1lKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJHcm91cHMuZ2V0KGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlsdGVyR3JvdXA6IE53YkZpbHRlckdyb3VwID0gdGhpcy5maWx0ZXJSb3V0aW5nQnVpbGRlci5ncm91cCh0aGlzLmRhdGFUYWJsZUZpbHRlcnMsIGRhdGFUYWJsZU5hbWUpO1xyXG4gICAgdGhpcy5maWx0ZXJHcm91cHMuc2V0KGRhdGFUYWJsZU5hbWUsIGZpbHRlckdyb3VwKTtcclxuICAgIHJldHVybiBmaWx0ZXJHcm91cDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZSB0byByZXNldCB0aGUgb3RoZXJzIHNvcnRzIG9mIHRoZSB0YWJsZVxyXG4gICAqIEBwYXJhbSBkYXRhVGFibGVOYW1lXHJcbiAgICogQHBhcmFtIHNvcnROYW1lXHJcbiAgICogQHBhcmFtIG9yZGVyXHJcbiAgICovXHJcbiAgZW1pdFNvcnRDaGFuZ2UoZGF0YVRhYmxlTmFtZTogc3RyaW5nLCBzb3J0TmFtZTogc3RyaW5nLCBvcmRlcjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zb3J0U3ViamVjdC5uZXh0KHsgZGF0YVRhYmxlTmFtZSwgc29ydE5hbWUsIG9yZGVyIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydENoYW5nZUxpc3RuZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0U3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2luYXRpb25GaWx0ZXJzKGRhdGFUYWJsZU5hbWU6IHN0cmluZywgdG90YWxJdGVtczogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlciwgY3VycmVudFBhZ2U6IG51bWJlcikge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2UsXHJcbiAgICAgIGN1cnJlbnRQYWdlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluaXRpYWxQYWdpbmF0aW9uRmlsdGVyc0lmTm90RXhpc3QoZGF0YVRhYmxlTmFtZTogc3RyaW5nLCBpdGVtc1BlclBhZ2U6IG51bWJlciwgY3VycmVudFBhZ2U6IG51bWJlcikge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2U6IGZpbHRlckdyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykgPyBwYXJzZUludChmaWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpKSA6IGl0ZW1zUGVyUGFnZSxcclxuICAgICAgY3VycmVudFBhZ2U6IGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiBjdXJyZW50UGFnZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==