@leanix/components 0.4.493 → 0.4.495

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.
@@ -202,7 +202,7 @@ export class ModalComponent {
202
202
  this.focusTrap.create(hostElement);
203
203
  }
204
204
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalComponent, deps: [{ token: i1.Overlay }, { token: i0.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component }); }
205
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalComponent, isStandalone: true, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", minWidth: "minWidth", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalComponent, isStandalone: true, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", minWidth: "minWidth", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <!-- TODO lx-button doesn't comply with modal close button style yet -->\n <!-- eslint-disable-next-line @nx/workspace-no-icon-in-button-content -->\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], animations: [
206
206
  trigger('modal', [
207
207
  transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
208
208
  transition(':leave', animate('0.15s', style({ opacity: 0 })))
@@ -216,7 +216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
216
216
  transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
217
217
  transition(':leave', animate('0.15s', style({ opacity: 0 })))
218
218
  ])
219
- ], standalone: true, imports: [PortalModule, NgIf, NgTemplateOutlet, TranslateModule], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"] }]
219
+ ], standalone: true, imports: [PortalModule, NgIf, NgTemplateOutlet, TranslateModule], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <!-- TODO lx-button doesn't comply with modal close button style yet -->\n <!-- eslint-disable-next-line @nx/workspace-no-icon-in-button-content -->\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"] }]
220
220
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i5.Observable, decorators: [{
221
221
  type: Optional
222
222
  }, {
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
261
261
  type: HostListener,
262
262
  args: ['document:keydown.escape']
263
263
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbW9kYWwtdWkvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC11aS9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBRTlFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFjSCxNQUFNLE9BQU8sY0FBYztJQW1EekIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDdEQsQ0FBQztJQUVELGdCQUFnQjtJQUN5QixRQUFRO1FBQy9DLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQ1UsT0FBZ0IsRUFDaEIsUUFBbUIsRUFDYyxXQUEwRCxFQUMzRixTQUF1QztRQUh2QyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDYyxnQkFBVyxHQUFYLFdBQVcsQ0FBK0M7UUFDM0YsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFqRWpELGdCQUFnQjtRQUNQLFNBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUNqQywyQ0FBMkM7UUFDbEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUMvQix3Q0FBd0M7UUFDL0Isb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDaEMsdUNBQXVDO1FBQzlCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2hDOzs7V0FHRztRQUNNLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLDZCQUE2QjtRQUNwQixTQUFJLEdBQTZDLFlBQVksQ0FBQztRQUN2RTs7OztXQUlHO1FBQ00sYUFBUSxHQUFXLE9BQU8sQ0FBQztRQUNwQyx5Q0FBeUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHdEMsOENBQThDO1FBQ3BDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUM5RCxxREFBcUQ7UUFDM0MsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFVMUMsZ0JBQWdCO1FBQ2hCLGtCQUFhLEdBQUcsdUJBQXVCLENBQUM7UUFFeEMsZ0JBQWdCO1FBQ1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUF3QnZDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVc7WUFDZCxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2pDLFNBQVMsQ0FBQyxDQUFDLGFBQWdELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUVuRyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNyQixLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsT0FBTzthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUNwQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ3JCLGdCQUFnQjtnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLEtBQUssRUFBRSxLQUFLO2dCQUNaLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0I7WUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixnQkFBZ0I7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7YUFDdEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVTtpQkFDWixhQUFhLEVBQUU7aUJBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDbkUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixTQUFTO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWdEO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV6QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixDQUFDO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RHLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBd0I7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0E3S1UsY0FBYyxrRUFpRUgsV0FBVztrR0FqRXRCLGNBQWMsNmJBZ0NYLG9CQUFvQix5RUFFcEIsb0JBQW9CLGtGQWVwQixxQkFBcUIsMkJBQVUsV0FBVyxzRkFiN0MsU0FBUyxzTUM3SHRCLDRyQ0FvQ0EsMHlGRG1EWSxZQUFZLDRIQUFFLElBQUksNkZBQUUsZ0JBQWdCLG1KQUFFLGVBQWUsOEVBUG5EO1lBQ1YsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDZixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzlELENBQUM7U0FDSDs7MkZBSVUsY0FBYztrQkFiMUIsU0FBUzsrQkFDRSxVQUFVLGNBR1I7d0JBQ1YsT0FBTyxDQUFDLE9BQU8sRUFBRTs0QkFDZixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3RGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUM5RCxDQUFDO3FCQUNILGNBQ1csSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUM7OzBCQW1FN0QsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXO29GQTdEeEIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFFRyxJQUFJO3NCQUFiLE1BQU07Z0JBRzZCLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUVFLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUVNLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVVSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHNEIsZUFBZTtzQkFBeEYsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPL0IsUUFBUTtzQkFBaEQsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWwsIFBvcnRhbCwgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tb2RhbC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNT0RBTF9DTE9TRSwgTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfSBmcm9tICcuLi8uLi9tb2RhbC5jb25zdGFudHMnO1xuaW1wb3J0IHsgTW9kYWxGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWhlYWRlci9tb2RhbC1oZWFkZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBUaGlzIGRvY3VtZW50YXRpb24gcHJvdmlkZXMgZGV0YWlscyBvbiB0aGUgdXNhZ2UgYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhlIE1vZGFsLlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IGBMeE1vZGFsTW9kdWxlYCBhbmQgYEx4Q29yZVVpTW9kdWxlYCBtb2R1bGVzIGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEx4TW9kYWxNb2R1bGUsIEx4Q29yZVVpTW9kdWxlIH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICpcbiAqIDIuIFVzZSB0aGUgKipseC1tb2RhbCoqIGNvbXBvbmVudCBpbiB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHBhcmFtZXRlcnMgZGVzY3JpYmVkIGJlbG93LlxuICpcbiAqIC0gKipgb3BlbmAqKjogV2hldGhlciB0aGUgbW9kYWwgaXMgb3BlbiBvciBjbG9zZWQuXG4gKiAtICoqYHNpemVgKio6ICdkaWFsb2cnIHwgJ2RpYWxvZy1sYXJnZScuXG4gKiAtICoqYHZlcnRpY2FsU2Nyb2xsYCoqOiBXaGV0aGVyIHRoZSBtb2RhbCBpcyBzY3JvbGxhYmxlIG9yIG5vdC5cbiAqIC0gKipgc2hvd0hlYWRlcmAqKjogV2hldGhlciB0aGUgbW9kYWwgaGFzIGEgaGVhZGVyIG9yIG5vdC5cbiAqIC0gKipgc2hvd0Zvb3RlcmAqKjogV2hldGhlciB0aGUgbW9kYWwgaGFzIGEgZm9vdGVyIG9yIG5vdC5cbiAqIC0gKipgc2hvd0Nsb3NlQnV0dG9uYCoqOiBXaGV0aGVyIHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbi5cbiAqIC0gKipgc2hvd0JhY2tCdXR0b25gKio6IFdoZXRoZXIgdG8gc2hvdyB0aGUgYmFjayBidXR0b24uXG4gKlxuICogMy4gVXNlIG9wdGlvbmFsICoqbHgtbW9kYWwtaGVhZGVyKiogY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgcGFyYW1ldGVycyBkZXNjcmliZWQgYmVsb3cuXG4gKlxuICogLSAqKmB0aXRsZWAqKjogVGl0bGUgb2YgdGhlIG1vZGFsLlxuICogLSAqKmBzdWJ0aXRsZWAqKjogU3VidGl0bGUgb2YgdGhlIG1vZGFsLlxuICogLSAqKmBib3R0b21Cb3JkZXJgKio6IFdoZXRoZXIgdG8gc2hvdyBhIGJvdHRvbSBib3JkZXIuXG4gKlxuICogNC4gVXNlIG9wdGlvbmFsICoqbHgtbW9kYWwtZm9vdGVyKiogY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgcGFyYW1ldGVycyBkZXNjcmliZWQgYmVsb3cuXG4gKlxuICogLSAqKmBib3JkZXJgKio6IFdoZXRoZXIgdG8gc2hvdyB0aGUgZm9vdGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIG1vZGFsLlxuICpcbiAqICoqR0xPQkFMIFBST1ZJREVSUyoqIHJlcXVpcmVkIGZvciB0aGlzIGNvbXBvbmVudDpcbiAqIC0gYHByb3ZpZGVBbmltYXRpb25zKClgXG4gKlxuICogKipBVFRFTlRJT04gLSBTQ1JPTExBQkxFIERJQUxPRyoqOlxuICogVGhlIDxseC1tb2RhbD4gY29tcG9uZW50IHdoZW4gdXNlZCBhcyBcImRpYWxvZ1wiIGlzIG5vdCBkZXNpZ25lZCB0byB3b3JrIHdpdGggYVxuICogc2Nyb2xsYWJsZSBib2R5ICh2aWEgYG92ZXJmbG93OiBhdXRvIHwgc2Nyb2xsYCkgaW4gY29tYmluYXRpb24gd2l0aCBkcm9wZG93bnMuXG4gKiBUaGUgb3ZlcmZsb3cgb24gdGhlIGJvZHkgd2lsbCBhbHNvIGNsaXAgdGhlIGRyb3Bkb3ducywgd2hpY2ggaXMgZXhwZWN0ZWQuXG4gKlxuICogUmVhc29uaW5nOlxuICogVGhlIGNvbnRlbnRzIHdpdGhpbiB0aGUgZGlhbG9nIHNob3VsZCBiZSBqdXN0IGEgZmV3IGVsZW1lbnRzIHdoaWNoIGZpdCBhbmRcbiAqIGp1c3RpZnkgdGhlIHVzYWdlIG9mIGEgZGlhbG9nLiBJZiB0aGUgY29udGVudCBpcyBsYXJnZXIgdGhhbiB0aGUgZGlhbG9nLCBhbmQgdGh1c1xuICogcmVxdWlyZXMgc2Nyb2xsaW5nLCB3ZSBzaG91bGQgZGlzY3VzcyB3aGV0aGVyIHRvIHB1dCBpdCBpbnRvIGEgZGlhbG9nIGF0IGFsbFxuICogYW5kIHJhdGhlciB0aGluayBhYm91dCBwdXR0aW5nIHRoZSBjb250ZW50IG9uIGEgc2VwYXJhdGUgcm91dGUgb3JcbiAqIHVzaW5nIHRoZSBmdWxsc2NyZWVuIHZlcnNpb24gb2YgdGhlIG1vZGFsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ21vZGFsJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgnMC4xNXMnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBhbmltYXRlKCcwLjE1cycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpXG4gICAgXSlcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAvKiogQGludGVybmFsICovXG4gIHJlYWRvbmx5IE5BTUUgPSAnTW9kYWxDb21wb25lbnQnO1xuICAvKiogV2hldGhlciB0aGUgbW9kYWwgaXMgb3BlbiBvciBjbG9zZWQuICovXG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgY2xvc2UgYnV0dG9uLiAqL1xuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBiYWNrIGJ1dHRvbi4gKi9cbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSBmYWxzZTtcbiAgLypcbiAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgdmVydGljYWxseSBpbnN0ZWFkIG9mIGV4cGFuZGluZyBpdHMgaGVpZ2h0LlxuICAgKiBUaGlzIGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIGNvbnRlbnQgaGFzIGRyb3Bkb3ducyBvciBkYXRlIGlucHV0cywgYnV0IGNhbiBiZSBnb29kIGlmIHRoZSBjb250ZW50IGhhcyBhIGh1Z2UgYW1vdW50IG9mIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFNjcm9sbCA9IGZhbHNlO1xuICAvKiogVGhlIHNpemUgb2YgdGhlIG1vZGFsLiAqL1xuICBASW5wdXQoKSBzaXplOiAnZnVsbHNjcmVlbicgfCAnZGlhbG9nLWxhcmdlJyB8ICdkaWFsb2cnID0gJ2Z1bGxzY3JlZW4nO1xuICAvKipcbiAgICogTWluaW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG4gICAqXG4gICAqIF9OQjogU29tZSBtb2RhbCBpbXBsZW1lbnRhdGlvbnMgcmVseSBvbiB0aGlzIG1pbldpZHRoIGJlaW5nIDYwMHB4X1xuICAgKi9cbiAgQElucHV0KCkgbWluV2lkdGg6IHN0cmluZyA9ICc2MDBweCc7XG4gIC8qKiBXaGV0aGVyIHRoZSBtb2RhbCBpcyBhIGZvY3VzIHRyYXAuICovXG4gIEBJbnB1dCgpIGlzRm9jdXNUcmFwOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgbW9kYWwgY2FuIGJlIGNsb3NlZC4gKi9cbiAgQElucHV0KCkgY2FuTW9kYWxCZUNsb3NlZD86IChjbG9zZUxvY2F0aW9uOiBNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbiB8IGJvb2xlYW4pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZC4gKi9cbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbj4oKTtcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgQE91dHB1dCgpIGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKE1vZGFsSGVhZGVyQ29tcG9uZW50KSBoZWFkZXI/OiBNb2RhbEhlYWRlckNvbXBvbmVudDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKE1vZGFsRm9vdGVyQ29tcG9uZW50KSBmb290ZXI/OiBNb2RhbEZvb3RlckNvbXBvbmVudDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKENka1BvcnRhbCwgeyBzdGF0aWM6IHRydWUgfSkgY2RrUG9ydGFsITogUG9ydGFsPENka1BvcnRhbD47XG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgb2xkT3ZlcmZsb3c/OiBzdHJpbmc7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY2xvc2VMb2NhdGlvbiA9IE1vZGFsQ2xvc2VDbGlja0xvY2F0aW9uO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZChNb2RhbENvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBleHBsaWNpdENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmV4cGxpY2l0Q29udGVudCB8fCB0aGlzLmltcGxpY2l0Q29udGVudDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKSBvbkVzY2FwZSgpIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICB0aGlzLmNsb3NlTW9kYWwoTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24uRXNjYXBlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ0xPU0UpIHByaXZhdGUgY2xvc2VNb2RhbCQ6IE9ic2VydmFibGU8TW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfCBib29sZWFuPixcbiAgICBwcml2YXRlIGZvY3VzVHJhcDogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsJFxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoY2xvc2VMb2NhdGlvbjogTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfCBib29sZWFuKSA9PiB0aGlzLmNsb3NlTW9kYWwoY2xvc2VMb2NhdGlvbikpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zaXplID09PSAnZGlhbG9nLWxhcmdlJykge1xuICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCgnNHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxuICAgICAgICBoZWlnaHQ6ICc5MHZoJ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNpemUgJ2RpYWxvZydcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS50b3AoJzh2aCcpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuc2l6ZSxcbiAgICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2l6ZSAhPT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlTW9kYWwoTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24uT3V0c2lkZUNsaWNrKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiB0aGlzLm92ZXJsYXlSZWYgJiYgIXRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLm92ZXJsYXlSZWYgJiYgdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuY2xvc2VNb2RhbChNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbi5PdGhlcik7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpICYmIHRoaXMuaXNGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW5Nb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLm9sZE92ZXJmbG93ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93WTtcbiAgICBpZiAodGhpcy5zaXplID09PSAnZnVsbHNjcmVlbicpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5jZGtQb3J0YWwpO1xuICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBlbWl0QmFjaygpIHtcbiAgICB0aGlzLmJhY2suZW1pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcblxuICAgIGlmICh0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsICdvdmVyZmxvd1knLCB0aGlzLm9sZE92ZXJmbG93KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYXN5bmMgY2xvc2VNb2RhbChjbG9zZUxvY2F0aW9uOiBNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbiB8IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuY2FuTW9kYWxCZUNsb3NlZCB8fCAoYXdhaXQgdGhpcy5jYW5Nb2RhbEJlQ2xvc2VkKGNsb3NlTG9jYXRpb24pKSkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG5cbiAgICAgIGlmICh0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsIHRoaXMub2xkT3ZlcmZsb3cpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNsb3NlLmVtaXQodHlwZW9mIGNsb3NlTG9jYXRpb24gPT09ICdib29sZWFuJyA/IE1vZGFsQ2xvc2VDbGlja0xvY2F0aW9uLk90aGVyIDogY2xvc2VMb2NhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFwRm9jdXNJbk1vZGFsKGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuZm9jdXNUcmFwLmNyZWF0ZShob3N0RWxlbWVudCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWw+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm9wZW5cIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGNsYXNzPVwibHhtb2RhbFwiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWZ1bGxzY3JlZW5dPVwic2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nXCJcbiAgICBbY2xhc3MubHhtb2RhbC0tZGlhbG9nXT1cInNpemUgPT09ICdkaWFsb2cnXCJcbiAgICBbY2xhc3MubHhtb2RhbC0tZGlhbG9nLWxhcmdlXT1cInNpemUgPT09ICdkaWFsb2ctbGFyZ2UnXCJcbiAgICBbY2xhc3MubHhtb2RhbC0td2l0aEZvb3Rlcl09XCIhIWZvb3RlclwiXG4gICAgW2NsYXNzLmx4bW9kYWwtLXZlcnRpY2FsU2Nyb2xsXT1cInZlcnRpY2FsU2Nyb2xsXCJcbiAgICBAbW9kYWxcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nICYmIHNob3dCYWNrQnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJlbWl0QmFjaygpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJlbWl0QmFjaygpXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZmFsIGZhLWxvbmctYXJyb3ctbGVmdFwiXG4gICAgPjwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU1vZGFsKGNsb3NlTG9jYXRpb24uQ2xvc2VCdXR0b24pXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiTkFNRSArICcuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNsYXNzPVwiZmFsIGZhLXRpbWVzIGNsb3NlQnV0dG9uXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJoZWFkZXJcIiBzZWxlY3Q9XCJseC1tb2RhbC1oZWFkZXJcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbENvbnRlbnRDb250YWluZXJcIiBbY2xhc3MubHhUaGluU2Nyb2xsYmFyXT1cInZlcnRpY2FsU2Nyb2xsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJmb290ZXJcIiBzZWxlY3Q9XCJseC1tb2RhbC1mb290ZXJcIiAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ltcGxpY2l0Q29udGVudD5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbW9kYWwtdWkvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC11aS9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0Is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O2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFFRyxJQUFJO3NCQUFiLE1BQU07Z0JBRzZCLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUVFLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUVNLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVVSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHNEIsZUFBZTtzQkFBeEYsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPL0IsUUFBUTtzQkFBaEQsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWwsIFBvcnRhbCwgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tb2RhbC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNT0RBTF9DTE9TRSwgTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfSBmcm9tICcuLi8uLi9tb2RhbC5jb25zdGFudHMnO1xuaW1wb3J0IHsgTW9kYWxGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWhlYWRlci9tb2RhbC1oZWFkZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBUaGlzIGRvY3VtZW50YXRpb24gcHJvdmlkZXMgZGV0YWlscyBvbiB0aGUgdXNhZ2UgYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhlIE1vZGFsLlxuICpcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IGBMeE1vZGFsTW9kdWxlYCBhbmQgYEx4Q29yZVVpTW9kdWxlYCBtb2R1bGVzIGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEx4TW9kYWxNb2R1bGUsIEx4Q29yZVVpTW9kdWxlIH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICpcbiAqIDIuIFVzZSB0aGUgKipseC1tb2RhbCoqIGNvbXBvbmVudCBpbiB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHBhcmFtZXRlcnMgZGVzY3JpYmVkIGJlbG93LlxuICpcbiAqIC0gKipgb3BlbmAqKjogV2hldGhlciB0aGUgbW9kYWwgaXMgb3BlbiBvciBjbG9zZWQuXG4gKiAtICoqYHNpemVgKio6ICdkaWFsb2cnIHwgJ2RpYWxvZy1sYXJnZScuXG4gKiAtICoqYHZlcnRpY2FsU2Nyb2xsYCoqOiBXaGV0aGVyIHRoZSBtb2RhbCBpcyBzY3JvbGxhYmxlIG9yIG5vdC5cbiAqIC0gKipgc2hvd0hlYWRlcmAqKjogV2hldGhlciB0aGUgbW9kYWwgaGFzIGEgaGVhZGVyIG9yIG5vdC5cbiAqIC0gKipgc2hvd0Zvb3RlcmAqKjogV2hldGhlciB0aGUgbW9kYWwgaGFzIGEgZm9vdGVyIG9yIG5vdC5cbiAqIC0gKipgc2hvd0Nsb3NlQnV0dG9uYCoqOiBXaGV0aGVyIHRvIHNob3cgdGhlIGNsb3NlIGJ1dHRvbi5cbiAqIC0gKipgc2hvd0JhY2tCdXR0b25gKio6IFdoZXRoZXIgdG8gc2hvdyB0aGUgYmFjayBidXR0b24uXG4gKlxuICogMy4gVXNlIG9wdGlvbmFsICoqbHgtbW9kYWwtaGVhZGVyKiogY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgcGFyYW1ldGVycyBkZXNjcmliZWQgYmVsb3cuXG4gKlxuICogLSAqKmB0aXRsZWAqKjogVGl0bGUgb2YgdGhlIG1vZGFsLlxuICogLSAqKmBzdWJ0aXRsZWAqKjogU3VidGl0bGUgb2YgdGhlIG1vZGFsLlxuICogLSAqKmBib3R0b21Cb3JkZXJgKio6IFdoZXRoZXIgdG8gc2hvdyBhIGJvdHRvbSBib3JkZXIuXG4gKlxuICogNC4gVXNlIG9wdGlvbmFsICoqbHgtbW9kYWwtZm9vdGVyKiogY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgcGFyYW1ldGVycyBkZXNjcmliZWQgYmVsb3cuXG4gKlxuICogLSAqKmBib3JkZXJgKio6IFdoZXRoZXIgdG8gc2hvdyB0aGUgZm9vdGVyIGF0IHRoZSBib3R0b20gb2YgdGhlIG1vZGFsLlxuICpcbiAqICoqR0xPQkFMIFBST1ZJREVSUyoqIHJlcXVpcmVkIGZvciB0aGlzIGNvbXBvbmVudDpcbiAqIC0gYHByb3ZpZGVBbmltYXRpb25zKClgXG4gKlxuICogKipBVFRFTlRJT04gLSBTQ1JPTExBQkxFIERJQUxPRyoqOlxuICogVGhlIDxseC1tb2RhbD4gY29tcG9uZW50IHdoZW4gdXNlZCBhcyBcImRpYWxvZ1wiIGlzIG5vdCBkZXNpZ25lZCB0byB3b3JrIHdpdGggYVxuICogc2Nyb2xsYWJsZSBib2R5ICh2aWEgYG92ZXJmbG93OiBhdXRvIHwgc2Nyb2xsYCkgaW4gY29tYmluYXRpb24gd2l0aCBkcm9wZG93bnMuXG4gKiBUaGUgb3ZlcmZsb3cgb24gdGhlIGJvZHkgd2lsbCBhbHNvIGNsaXAgdGhlIGRyb3Bkb3ducywgd2hpY2ggaXMgZXhwZWN0ZWQuXG4gKlxuICogUmVhc29uaW5nOlxuICogVGhlIGNvbnRlbnRzIHdpdGhpbiB0aGUgZGlhbG9nIHNob3VsZCBiZSBqdXN0IGEgZmV3IGVsZW1lbnRzIHdoaWNoIGZpdCBhbmRcbiAqIGp1c3RpZnkgdGhlIHVzYWdlIG9mIGEgZGlhbG9nLiBJZiB0aGUgY29udGVudCBpcyBsYXJnZXIgdGhhbiB0aGUgZGlhbG9nLCBhbmQgdGh1c1xuICogcmVxdWlyZXMgc2Nyb2xsaW5nLCB3ZSBzaG91bGQgZGlzY3VzcyB3aGV0aGVyIHRvIHB1dCBpdCBpbnRvIGEgZGlhbG9nIGF0IGFsbFxuICogYW5kIHJhdGhlciB0aGluayBhYm91dCBwdXR0aW5nIHRoZSBjb250ZW50IG9uIGEgc2VwYXJhdGUgcm91dGUgb3JcbiAqIHVzaW5nIHRoZSBmdWxsc2NyZWVuIHZlcnNpb24gb2YgdGhlIG1vZGFsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ21vZGFsJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgnMC4xNXMnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBhbmltYXRlKCcwLjE1cycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSkpXG4gICAgXSlcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAvKiogQGludGVybmFsICovXG4gIHJlYWRvbmx5IE5BTUUgPSAnTW9kYWxDb21wb25lbnQnO1xuICAvKiogV2hldGhlciB0aGUgbW9kYWwgaXMgb3BlbiBvciBjbG9zZWQuICovXG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgY2xvc2UgYnV0dG9uLiAqL1xuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBiYWNrIGJ1dHRvbi4gKi9cbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSBmYWxzZTtcbiAgLypcbiAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgdmVydGljYWxseSBpbnN0ZWFkIG9mIGV4cGFuZGluZyBpdHMgaGVpZ2h0LlxuICAgKiBUaGlzIGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIGNvbnRlbnQgaGFzIGRyb3Bkb3ducyBvciBkYXRlIGlucHV0cywgYnV0IGNhbiBiZSBnb29kIGlmIHRoZSBjb250ZW50IGhhcyBhIGh1Z2UgYW1vdW50IG9mIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFNjcm9sbCA9IGZhbHNlO1xuICAvKiogVGhlIHNpemUgb2YgdGhlIG1vZGFsLiAqL1xuICBASW5wdXQoKSBzaXplOiAnZnVsbHNjcmVlbicgfCAnZGlhbG9nLWxhcmdlJyB8ICdkaWFsb2cnID0gJ2Z1bGxzY3JlZW4nO1xuICAvKipcbiAgICogTWluaW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXG4gICAqXG4gICAqIF9OQjogU29tZSBtb2RhbCBpbXBsZW1lbnRhdGlvbnMgcmVseSBvbiB0aGlzIG1pbldpZHRoIGJlaW5nIDYwMHB4X1xuICAgKi9cbiAgQElucHV0KCkgbWluV2lkdGg6IHN0cmluZyA9ICc2MDBweCc7XG4gIC8qKiBXaGV0aGVyIHRoZSBtb2RhbCBpcyBhIGZvY3VzIHRyYXAuICovXG4gIEBJbnB1dCgpIGlzRm9jdXNUcmFwOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgbW9kYWwgY2FuIGJlIGNsb3NlZC4gKi9cbiAgQElucHV0KCkgY2FuTW9kYWxCZUNsb3NlZD86IChjbG9zZUxvY2F0aW9uOiBNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbiB8IGJvb2xlYW4pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZC4gKi9cbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbj4oKTtcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgQE91dHB1dCgpIGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKE1vZGFsSGVhZGVyQ29tcG9uZW50KSBoZWFkZXI/OiBNb2RhbEhlYWRlckNvbXBvbmVudDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKE1vZGFsRm9vdGVyQ29tcG9uZW50KSBmb290ZXI/OiBNb2RhbEZvb3RlckNvbXBvbmVudDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKENka1BvcnRhbCwgeyBzdGF0aWM6IHRydWUgfSkgY2RrUG9ydGFsITogUG9ydGFsPENka1BvcnRhbD47XG4gIHByaXZhdGUgb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgb2xkT3ZlcmZsb3c/OiBzdHJpbmc7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY2xvc2VMb2NhdGlvbiA9IE1vZGFsQ2xvc2VDbGlja0xvY2F0aW9uO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZChNb2RhbENvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBleHBsaWNpdENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmV4cGxpY2l0Q29udGVudCB8fCB0aGlzLmltcGxpY2l0Q29udGVudDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKSBvbkVzY2FwZSgpIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICB0aGlzLmNsb3NlTW9kYWwoTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24uRXNjYXBlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ0xPU0UpIHByaXZhdGUgY2xvc2VNb2RhbCQ6IE9ic2VydmFibGU8TW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfCBib29sZWFuPixcbiAgICBwcml2YXRlIGZvY3VzVHJhcDogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsJFxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoY2xvc2VMb2NhdGlvbjogTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24gfCBib29sZWFuKSA9PiB0aGlzLmNsb3NlTW9kYWwoY2xvc2VMb2NhdGlvbikpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zaXplID09PSAnZGlhbG9nLWxhcmdlJykge1xuICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCgnNHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxuICAgICAgICBoZWlnaHQ6ICc5MHZoJ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNpemUgJ2RpYWxvZydcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS50b3AoJzh2aCcpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuc2l6ZSxcbiAgICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2l6ZSAhPT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlTW9kYWwoTW9kYWxDbG9zZUNsaWNrTG9jYXRpb24uT3V0c2lkZUNsaWNrKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiB0aGlzLm92ZXJsYXlSZWYgJiYgIXRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLm92ZXJsYXlSZWYgJiYgdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMuY2xvc2VNb2RhbChNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbi5PdGhlcik7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpICYmIHRoaXMuaXNGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW5Nb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICB0aGlzLm9sZE92ZXJmbG93ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93WTtcbiAgICBpZiAodGhpcy5zaXplID09PSAnZnVsbHNjcmVlbicpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy5jZGtQb3J0YWwpO1xuICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBlbWl0QmFjaygpIHtcbiAgICB0aGlzLmJhY2suZW1pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcblxuICAgIGlmICh0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsICdvdmVyZmxvd1knLCB0aGlzLm9sZE92ZXJmbG93KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYXN5bmMgY2xvc2VNb2RhbChjbG9zZUxvY2F0aW9uOiBNb2RhbENsb3NlQ2xpY2tMb2NhdGlvbiB8IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuY2FuTW9kYWxCZUNsb3NlZCB8fCAoYXdhaXQgdGhpcy5jYW5Nb2RhbEJlQ2xvc2VkKGNsb3NlTG9jYXRpb24pKSkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG5cbiAgICAgIGlmICh0aGlzLnNpemUgPT09ICdmdWxsc2NyZWVuJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsIHRoaXMub2xkT3ZlcmZsb3cpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNsb3NlLmVtaXQodHlwZW9mIGNsb3NlTG9jYXRpb24gPT09ICdib29sZWFuJyA/IE1vZGFsQ2xvc2VDbGlja0xvY2F0aW9uLk90aGVyIDogY2xvc2VMb2NhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFwRm9jdXNJbk1vZGFsKGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuZm9jdXNUcmFwLmNyZWF0ZShob3N0RWxlbWVudCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWw+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm9wZW5cIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGNsYXNzPVwibHhtb2RhbFwiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWZ1bGxzY3JlZW5dPVwic2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nXCJcbiAgICBbY2xhc3MubHhtb2RhbC0tZGlhbG9nXT1cInNpemUgPT09ICdkaWFsb2cnXCJcbiAgICBbY2xhc3MubHhtb2RhbC0tZGlhbG9nLWxhcmdlXT1cInNpemUgPT09ICdkaWFsb2ctbGFyZ2UnXCJcbiAgICBbY2xhc3MubHhtb2RhbC0td2l0aEZvb3Rlcl09XCIhIWZvb3RlclwiXG4gICAgW2NsYXNzLmx4bW9kYWwtLXZlcnRpY2FsU2Nyb2xsXT1cInZlcnRpY2FsU2Nyb2xsXCJcbiAgICBAbW9kYWxcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nICYmIHNob3dCYWNrQnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJlbWl0QmFjaygpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJlbWl0QmFjaygpXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiZmFsIGZhLWxvbmctYXJyb3ctbGVmdFwiXG4gICAgPjwvZGl2PlxuICAgIDwhLS0gVE9ETyBseC1idXR0b24gZG9lc24ndCBjb21wbHkgd2l0aCBtb2RhbCBjbG9zZSBidXR0b24gc3R5bGUgeWV0IC0tPlxuICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBueC93b3Jrc3BhY2Utbm8taWNvbi1pbi1idXR0b24tY29udGVudCAtLT5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbChjbG9zZUxvY2F0aW9uLkNsb3NlQnV0dG9uKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIk5BTUUgKyAnLmNsb3NlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBjbGFzcz1cImZhbCBmYS10aW1lcyBjbG9zZUJ1dHRvblwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiaGVhZGVyXCIgc2VsZWN0PVwibHgtbW9kYWwtaGVhZGVyXCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxDb250ZW50Q29udGFpbmVyXCIgW2NsYXNzLmx4VGhpblNjcm9sbGJhcl09XCJ2ZXJ0aWNhbFNjcm9sbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiZm9vdGVyXCIgc2VsZWN0PVwibHgtbW9kYWwtZm9vdGVyXCIgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpbXBsaWNpdENvbnRlbnQ+XG4gIDxuZy1jb250ZW50IC8+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -9469,7 +9469,7 @@ class ModalComponent {
9469
9469
  this.focusTrap.create(hostElement);
9470
9470
  }
9471
9471
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ModalComponent, deps: [{ token: i1$3.Overlay }, { token: i0.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component }); }
9472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalComponent, isStandalone: true, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", minWidth: "minWidth", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: [
9472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ModalComponent, isStandalone: true, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", minWidth: "minWidth", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <!-- TODO lx-button doesn't comply with modal close button style yet -->\n <!-- eslint-disable-next-line @nx/workspace-no-icon-in-button-content -->\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i3.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: [
9473
9473
  trigger('modal', [
9474
9474
  transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
9475
9475
  transition(':leave', animate('0.15s', style({ opacity: 0 })))
@@ -9483,7 +9483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
9483
9483
  transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
9484
9484
  transition(':leave', animate('0.15s', style({ opacity: 0 })))
9485
9485
  ])
9486
- ], standalone: true, imports: [PortalModule, NgIf, NgTemplateOutlet, TranslateModule], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"] }]
9486
+ ], standalone: true, imports: [PortalModule, NgIf, NgTemplateOutlet, TranslateModule], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <!-- TODO lx-button doesn't comply with modal close button style yet -->\n <!-- eslint-disable-next-line @nx/workspace-no-icon-in-button-content -->\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal(closeLocation.CloseButton)\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\" />\n <div class=\"modalContentContainer\" [class.lxThinScrollbar]=\"verticalScroll\">\n <ng-container *ngTemplateOutlet=\"content\" />\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\" />\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content />\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--withFooter.lxmodal--fullscreen:not(.lxmodal--verticalScroll) .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto;padding:16px}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;right:36px;top:12px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;width:48px;height:48px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#61779d;font-size:26px;height:32px;width:32px;z-index:999;right:10px;top:20px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog .modalContentContainer{padding:16px 16px 0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{padding:16px;max-height:calc(84vh - 136px)}.lxmodal--dialog-large .modalContentContainer{padding:16px;height:calc(100% - 136px)}.modalContentContainer{flex:1}\n"] }]
9487
9487
  }], ctorParameters: () => [{ type: i1$3.Overlay }, { type: i0.Renderer2 }, { type: i5.Observable, decorators: [{
9488
9488
  type: Optional
9489
9489
  }, {