@acorex/components 7.1.50 → 7.1.52

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 (64) hide show
  1. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +6 -6
  2. package/button/src/button-group.component.d.ts +6 -6
  3. package/button/src/button-item.component.d.ts +6 -6
  4. package/chips/src/chips.component.d.ts +6 -6
  5. package/color-picker/src/color-picker.component.d.ts +16 -16
  6. package/common/src/components/base-component.class.d.ts +1 -0
  7. package/date-picker/src/datepicker.component.d.ts +1 -1
  8. package/esm2022/button/src/button.component.mjs +2 -2
  9. package/esm2022/calendar/src/calendar.component.mjs +3 -3
  10. package/esm2022/collapse/src/collapse.component.mjs +2 -2
  11. package/esm2022/color-palette/src/color-palette-input.component.mjs +3 -3
  12. package/esm2022/color-picker/src/color-picker.component.mjs +3 -3
  13. package/esm2022/common/src/components/base-component.class.mjs +5 -1
  14. package/esm2022/common/src/components/value-component.class.mjs +3 -1
  15. package/esm2022/date-picker/src/datepicker.component.mjs +5 -32
  16. package/esm2022/form/src/form.component.mjs +6 -2
  17. package/esm2022/popup/src/popup.component.mjs +4 -3
  18. package/esm2022/search-box/src/search-box.component.mjs +15 -7
  19. package/esm2022/select-box/src/selectbox.component.mjs +6 -7
  20. package/esm2022/select-box/src/selectbox.module.mjs +4 -7
  21. package/esm2022/tabs/src/tabs.component.mjs +2 -2
  22. package/fesm2022/acorex-components-button.mjs +2 -2
  23. package/fesm2022/acorex-components-button.mjs.map +1 -1
  24. package/fesm2022/acorex-components-calendar.mjs +2 -2
  25. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  26. package/fesm2022/acorex-components-collapse.mjs +2 -2
  27. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  28. package/fesm2022/acorex-components-color-palette.mjs +2 -2
  29. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  30. package/fesm2022/acorex-components-color-picker.mjs +2 -2
  31. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  32. package/fesm2022/acorex-components-common.mjs +6 -0
  33. package/fesm2022/acorex-components-common.mjs.map +1 -1
  34. package/fesm2022/acorex-components-date-picker.mjs +3 -30
  35. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  36. package/fesm2022/acorex-components-form.mjs +5 -1
  37. package/fesm2022/acorex-components-form.mjs.map +1 -1
  38. package/fesm2022/acorex-components-popup.mjs +4 -3
  39. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  40. package/fesm2022/acorex-components-search-box.mjs +12 -4
  41. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  42. package/fesm2022/acorex-components-select-box.mjs +8 -12
  43. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  44. package/fesm2022/acorex-components-tabs.mjs +2 -2
  45. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  46. package/mixin/src/base-components.class.d.ts +2 -2
  47. package/mixin/src/base-menu-mixin.class.d.ts +5 -5
  48. package/mixin/src/button-mixin.class.d.ts +2 -2
  49. package/mixin/src/clickable-mixin.class.d.ts +2 -2
  50. package/mixin/src/color-look-mixing.class.d.ts +2 -2
  51. package/mixin/src/datalist-component.class.d.ts +10 -10
  52. package/mixin/src/dropdown-mixin.class.d.ts +2 -2
  53. package/mixin/src/interactive-mixin.class.d.ts +4 -4
  54. package/mixin/src/loading-mixin.class.d.ts +2 -2
  55. package/mixin/src/mixin.class.d.ts +61 -61
  56. package/mixin/src/page-component.class.d.ts +2 -2
  57. package/mixin/src/selection-component.class.d.ts +2 -2
  58. package/mixin/src/sizable-mixin.class.d.ts +2 -2
  59. package/mixin/src/textbox-mixin.class.d.ts +2 -2
  60. package/mixin/src/value-mixin.class.d.ts +8 -8
  61. package/package.json +7 -7
  62. package/search-box/src/search-box.component.d.ts +2 -0
  63. package/select-box/src/selectbox.module.d.ts +4 -5
  64. package/tabs/src/tab-item.component.d.ts +2 -2
@@ -9,6 +9,7 @@ import * as i3 from "@angular/common";
9
9
  import * as i4 from "@angular/cdk/drag-drop";
10
10
  import * as i5 from "@angular/cdk/a11y";
11
11
  import * as i6 from "@angular/cdk/portal";
12
+ import * as i7 from "@acorex/components/decorators";
12
13
  /**
13
14
  * The Button is a component which detects user interaction and triggers a corresponding event
14
15
  *
@@ -133,14 +134,14 @@ class AXPopupComponent extends AXBaseComponentMixin {
133
134
  }
134
135
  onFullScreen() { }
135
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXPopupComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: i1.AXLoadingService }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
136
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{title}}</span>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXPopupComponent, selector: "ax-popup", host: { listeners: { "keydown.escape": "onKeydownHandler($event)" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{ title }}</span>\n <!-- <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span> -->\n <ax-close-button (click)=\"_handleCloseClick()\" tabindex=\"1\"></ax-close-button>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>\n", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: "directive", type: i4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
137
138
  }
138
139
  export { AXPopupComponent };
139
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXPopupComponent, decorators: [{
140
141
  type: Component,
141
- args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{title}}</span>\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"] }]
142
+ args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXPopupComponent }], template: "<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\n <div class=\"ax-popup ax-popup-{{ size }}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\n <div cdkDragHandle class=\"ax-popup-header-container\">\n <div class=\"ax-popup-header\" *ngIf=\"showHeader\">\n <span class=\"ax-popup-title\">{{ title }}</span>\n <!-- <span class=\"ax-icon ax-icon-close\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></span> -->\n <ax-close-button (click)=\"_handleCloseClick()\" tabindex=\"1\"></ax-close-button>\n </div>\n </div>\n <div class=\"ax-popup-main-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\n </div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n</div>\n", styles: [".ax-popup{display:flex;flex-direction:column;background-color:rgba(var(--ax-color-surface));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border-radius:var(--ax-rounded-border-default);outline:unset;padding:0;width:50%;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));min-height:-moz-fit-content;min-height:fit-content;margin:0 auto;width:auto;overflow:hidden}.ax-popup .ax-popup-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid;border-color:rgba(var(--ax-color-border-default))}.ax-popup .ax-popup-header .ax-popup-title{font-size:1.125rem;font-weight:500}@media (max-width: 599px){.ax-popup .ax-popup-header .ax-popup-title{font-size:1rem}}.ax-popup .ax-popup-header .ax-icon-close{font-size:1.25rem;cursor:pointer}.ax-popup .ax-popup-header .ax-icon-close:hover{opacity:.5}.ax-popup ax-footer{padding:.75rem;display:flex;align-items:center;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface))}.ax-popup:focus{outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-color-primary-500))}.ax-popup .ax-popup-main-container{overflow:auto;flex:1 1 0%}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:-moz-fit-content;width:fit-content}@media (max-width: 599px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-main-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-main-container>ng-component>div{width:100%}}@media (min-width: 600px){.ax-popup.ax-popup-sm{min-width:60vw!important;max-width:85vw!important}.ax-popup.ax-popup-md{min-width:70vw!important;max-width:85vw!important}.ax-popup.ax-popup-lg{min-width:85vw!important;max-width:90vw!important}}@media (min-width: 1200px){.ax-popup.ax-popup-sm{min-width:25vw!important;max-width:35vw!important}.ax-popup.ax-popup-md{min-width:45vw!important;max-width:55vw!important}.ax-popup.ax-popup-lg{min-width:75vw!important;max-width:95vw!important}}@media (min-width: 1800px){.ax-popup.ax-popup-sm{min-width:15vw!important;max-width:25vw!important}.ax-popup.ax-popup-md{min-width:30vw!important;max-width:50vw!important}.ax-popup.ax-popup-lg{min-width:45vw!important;max-width:85vw!important}}\n"] }]
142
143
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: i1.AXLoadingService }, { type: i2.AXPlatform }]; }, propDecorators: { onKeydownHandler: [{
143
144
  type: HostListener,
144
145
  args: ['keydown.escape', ['$event']]
145
146
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAvc3JjL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3BvcHVwL3NyYy9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFJdkIsWUFBWSxFQUVaLFlBQVksRUFDWixXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGVBQWUsRUFFZixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksR0FDYixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7OztBQUVoRTs7OztHQUlHO0FBQ0gsTUFRYSxnQkFBaUIsU0FBUSxvQkFBb0I7SUE2QjlDO0lBQ0E7SUFDQTtJQUNBO0lBL0JWLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDbEIsVUFBVSxDQUFTO0lBRTNCLEtBQUssQ0FBUztJQUVkLFFBQVEsR0FDTixJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUU1QyxJQUFJLEdBQWdDLElBQUksQ0FBQztJQUN6QyxTQUFTLEdBQVksSUFBSSxDQUFDO0lBRTFCLElBQUksR0FBUSxFQUFFLENBQUM7SUFFZixlQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFFM0IsT0FBTyxDQUFNO0lBRWIsZUFBZSxDQUFjO0lBQzdCLGFBQWEsQ0FBYztJQUMzQixhQUFhLENBQWM7SUFFM0I7O09BRUc7SUFDSCxZQUNFLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ2Qs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O1FBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxhQUFhLENBQWlCLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUMzRSxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixzQkFBc0I7WUFDdEIsWUFBWTtZQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUztZQUN2QyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtTQUNwQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLEtBQUksQ0FBQzt1R0FsSk4sZ0JBQWdCOzJGQUFoQixnQkFBZ0IsMEdBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUMsaURDeEM5RSwrd0JBYU07O1NENkJPLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVI1QixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQzs2T0FxSDVFLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmLFxuICBDb21wb25lbnRQb3J0YWwsXG4gIFBvcnRhbCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cbmltcG9ydCB7XG4gIEFYQ2xvc2JhbGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50Q2xvc2VFdmVudCxcbiAgVEFCX01FVEFfS0VZLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnRNaXhpbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XG5cbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBvcHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcHVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wdXBDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUG9wdXBDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX2xvYWRpbmdJZDogbnVtYmVyO1xuXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgb25DbG9zZWQ6IEV2ZW50RW1pdHRlcjxBWENvbXBvbmVudENsb3NlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYQ29tcG9uZW50Q2xvc2VFdmVudD4oKTtcblxuICBzaXplOiAnc20nIHwgJ21kJyB8ICdsZycgfCAnZnVsbCcgPSAnc20nO1xuICBkcmFnZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGRhdGE6IGFueSA9IHt9O1xuXG4gIHNob3dDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnRlbnQ6IGFueTtcblxuICBfc2VsZWN0ZWRQb3J0YWw6IFBvcnRhbDxhbnk+O1xuICBfZm9vdGVyUG9ydGFsOiBQb3J0YWw8YW55PjtcbiAgX2hlYWRlclBvcnRhbDogUG9ydGFsPGFueT47XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZTogQVhMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybVxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgb25Jbml0KCkge1xuICAgIHN1cGVyLm9uSW5pdCgpO1xuICAgIGlmICh0aGlzLl9wbGF0Zm9ybS5pcygnTW9iaWxlJykpIHtcbiAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5fbG9hZGluZ0lkID0gdGhpcy5sb2FkaW5nU2VydmljZS5zaG93KFxuICAgICAgLy9UT0RPOiBjaGVjayB0cyBlcnJvclxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1wb3B1cC1ib2R5LWNvbnRhaW5lcicpXG4gICAgKTtcbiAgICAvL1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gICB0aGlzLnJlbmRlcmVyU2VydmljZS5maW5kTG9hZGVkQ29tcG9uZW50QnlSb3V0ZSh0aGlzLmNvbnRlbnQsIDIwKS50aGVuKHJvdXRlID0+IHtcbiAgICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vICAgICAgIHRoaXMubG9hZENvbXBvbmVudChyb3V0ZS5jb21wb25lbnQpO1xuICAgICAgLy8gICAgIH0sIDMwMCk7XG4gICAgICAvLyAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHsgJGltcGxpY2l0OiB0aGlzLmRhdGEsIHJlZjogdGhpcyB9XG4gICAgICApO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29udGVudCk7XG4gICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIC8vXG4gICAgLy8gdGhpcy5fcGxhdGZvcm0ua2V5ZG93bi5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAvLyAgICAgdGhpcy5jbG9zZSgpO1xuICAgIC8vICAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIH0pO1xuICB9XG5cbiAgX2hhbmRsZUF0dGNoZWQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHJlZiA9IHJlZiBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICBpZiAocmVmLmluc3RhbmNlKSB7XG4gICAgICB0aGlzW1RBQl9NRVRBX0tFWV0uY29tcG9uZW50ID0gcmVmLmluc3RhbmNlO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzW1RBQl9NRVRBX0tFWV0uY29tcG9uZW50LCB0aGlzLmRhdGEpO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzW1RBQl9NRVRBX0tFWV0uY29tcG9uZW50LCB7IF9pc1BvcHVwOiB0cnVlIH0pO1xuICAgICAgaWYgKHJlZi5pbnN0YW5jZS5vbkNsb3NlZCkge1xuICAgICAgICByZWYuaW5zdGFuY2Uub25DbG9zZWQuc3Vic2NyaWJlKChlOiBBWENvbXBvbmVudENsb3NlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBtYWluID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcbiAgICAgICAgICAnLmF4LXBvcHVwLW1haW4tY29udGFpbmVyJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwb3BIZWFkZXIgPSB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KFxuICAgICAgICAgICcuYXgtcG9wdXAtaGVhZGVyLWNvbnRhaW5lcidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wRm9vdGVyID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcbiAgICAgICAgICAnLmF4LXBvcHVwLWZvb3Rlci1jb250YWluZXInXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IG1haW4hLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCdheC1mb290ZXInKTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gbWFpbiEucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJ2F4LWhlYWRlcicpO1xuICAgICAgICBpZiAoZm9vdGVyKSB7XG4gICAgICAgICAgcG9wRm9vdGVyIS5hcHBlbmQoZm9vdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgICAgLy9UT0RPOiBjaGVjayB0cyBlcnJvclxuICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgIHBvcEhlYWRlci5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICBwb3BIZWFkZXIhLmFwcGVuZChoZWFkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuaGlkZSh0aGlzLl9sb2FkaW5nSWQpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGxldCBmb2N1c2VkT3JIYXNGb2N1c2VkID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJyk7XG4gICAgaWYgKHRoaXMuc2hvd0Nsb3NlQnV0dG9uICYmIGZvY3VzZWRPckhhc0ZvY3VzZWQpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT5cbiAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cCcpPy5mb2N1cygpXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICAvL1RPRE86IGNoZWNrIHRzIGVycm9yXG4gICAgICAvL0B0cy1pZ25vcmVcbiAgICAgIGNvbXBvbmVudDogdGhpc1tUQUJfTUVUQV9LRVldLmNvbXBvbmVudCxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZ1bGxTY3JlZW4oKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LXBvcHVwLXdyYXBwZXJcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiIFtjZGtUcmFwRm9jdXNdPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cCBheC1wb3B1cC17e3NpemV9fVwiIHRhYmluZGV4PVwiMFwiIGNka0RyYWcgW2Nka0RyYWdEaXNhYmxlZF09XCIhZHJhZ2dhYmxlXCI+XG4gICAgICAgIDxkaXYgY2RrRHJhZ0hhbmRsZSBjbGFzcz1cImF4LXBvcHVwLWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cC1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXBvcHVwLXRpdGxlXCI+e3t0aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCIgKGNsaWNrKT1cIl9oYW5kbGVDbG9zZUNsaWNrKClcIiB0YWJpbmRleD1cIjFcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cC1tYWluLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NlbGVjdGVkUG9ydGFsXCIgKGF0dGFjaGVkKT1cIl9oYW5kbGVBdHRjaGVkKCRldmVudClcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXBvcHVwLWZvb3Rlci1jb250YWluZXJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAvc3JjL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3BvcHVwL3NyYy9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFJdkIsWUFBWSxFQUVaLFlBQVksRUFDWixXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGVBQWUsRUFFZixjQUFjLEdBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUc3QixPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksR0FDYixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFFaEU7Ozs7R0FJRztBQUNILE1BUWEsZ0JBQWlCLFNBQVEsb0JBQW9CO0lBNkI5QztJQUNBO0lBQ0E7SUFDQTtJQS9CVixTQUFTLEdBQVksSUFBSSxDQUFDO0lBQ2xCLFVBQVUsQ0FBUztJQUUzQixLQUFLLENBQVM7SUFFZCxRQUFRLEdBQ04sSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFFNUMsSUFBSSxHQUFnQyxJQUFJLENBQUM7SUFDekMsU0FBUyxHQUFZLElBQUksQ0FBQztJQUUxQixJQUFJLEdBQVEsRUFBRSxDQUFDO0lBRWYsZUFBZSxHQUFZLElBQUksQ0FBQztJQUNoQyxVQUFVLEdBQVksSUFBSSxDQUFDO0lBRTNCLE9BQU8sQ0FBTTtJQUViLGVBQWUsQ0FBYztJQUM3QixhQUFhLENBQWM7SUFDM0IsYUFBYSxDQUFjO0lBRTNCOztPQUVHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixHQUFzQixFQUNk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SztRQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FDZCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsYUFBYSxDQUFpQixXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsc0JBQXNCO1lBQ3RCLFlBQVk7WUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVM7WUFDdkMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDcEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWSxLQUFJLENBQUM7dUdBbEpOLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLDBHQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLGlEQ3hDOUUsZzBCQWVBOztTRDJCYSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUM7Nk9BcUg1RSxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZixcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBQb3J0YWwsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuXG5pbXBvcnQge1xuICBBWENsb3NiYWxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudENsb3NlRXZlbnQsXG4gIFRBQl9NRVRBX0tFWSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50TWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3B1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ2xvc2JhbGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBvcHVwQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcHVwQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50TWl4aW4ge1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIF9sb2FkaW5nSWQ6IG51bWJlcjtcblxuICB0aXRsZTogc3RyaW5nO1xuXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhDb21wb25lbnRDbG9zZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWENvbXBvbmVudENsb3NlRXZlbnQ+KCk7XG5cbiAgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnID0gJ3NtJztcbiAgZHJhZ2dhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICBkYXRhOiBhbnkgPSB7fTtcblxuICBzaG93Q2xvc2VCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb250ZW50OiBhbnk7XG5cbiAgX3NlbGVjdGVkUG9ydGFsOiBQb3J0YWw8YW55PjtcbiAgX2Zvb3RlclBvcnRhbDogUG9ydGFsPGFueT47XG4gIF9oZWFkZXJQb3J0YWw6IFBvcnRhbDxhbnk+O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IEFYTG9hZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm1cbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcbiAgfVxuXG4gIG9uSW5pdCgpIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgICBpZiAodGhpcy5fcGxhdGZvcm0uaXMoJ01vYmlsZScpKSB7XG4gICAgICB0aGlzLmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuX2xvYWRpbmdJZCA9IHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdyhcbiAgICAgIC8vVE9ETzogY2hlY2sgdHMgZXJyb3JcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtcG9wdXAtYm9keS1jb250YWluZXInKVxuICAgICk7XG4gICAgLy9cbiAgICBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vICAgdGhpcy5yZW5kZXJlclNlcnZpY2UuZmluZExvYWRlZENvbXBvbmVudEJ5Um91dGUodGhpcy5jb250ZW50LCAyMCkudGhlbihyb3V0ZSA9PiB7XG4gICAgICAvLyAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyAgICAgICB0aGlzLmxvYWRDb21wb25lbnQocm91dGUuY29tcG9uZW50KTtcbiAgICAgIC8vICAgICB9LCAzMDApO1xuICAgICAgLy8gICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICB7ICRpbXBsaWNpdDogdGhpcy5kYXRhLCByZWY6IHRoaXMgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbCh0aGlzLmNvbnRlbnQpO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICAvL1xuICAgIC8vIHRoaXMuX3BsYXRmb3JtLmtleWRvd24uc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgLy8gICAgIHRoaXMuY2xvc2UoKTtcbiAgICAvLyAgICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIF9oYW5kbGVBdHRjaGVkKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICByZWYgPSByZWYgYXMgQ29tcG9uZW50UmVmPGFueT47XG4gICAgaWYgKHJlZi5pbnN0YW5jZSkge1xuICAgICAgdGhpc1tUQUJfTUVUQV9LRVldLmNvbXBvbmVudCA9IHJlZi5pbnN0YW5jZTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpc1tUQUJfTUVUQV9LRVldLmNvbXBvbmVudCwgdGhpcy5kYXRhKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpc1tUQUJfTUVUQV9LRVldLmNvbXBvbmVudCwgeyBfaXNQb3B1cDogdHJ1ZSB9KTtcbiAgICAgIGlmIChyZWYuaW5zdGFuY2Uub25DbG9zZWQpIHtcbiAgICAgICAgcmVmLmluc3RhbmNlLm9uQ2xvc2VkLnN1YnNjcmliZSgoZTogQVhDb21wb25lbnRDbG9zZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNsb3NlZC5lbWl0KGUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbWFpbiA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXG4gICAgICAgICAgJy5heC1wb3B1cC1tYWluLWNvbnRhaW5lcidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wSGVhZGVyID0gdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcbiAgICAgICAgICAnLmF4LXBvcHVwLWhlYWRlci1jb250YWluZXInXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBvcEZvb3RlciA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oXG4gICAgICAgICAgJy5heC1wb3B1cC1mb290ZXItY29udGFpbmVyJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb290ZXIgPSBtYWluIS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignYXgtZm9vdGVyJyk7XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IG1haW4hLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCdheC1oZWFkZXInKTtcbiAgICAgICAgaWYgKGZvb3Rlcikge1xuICAgICAgICAgIHBvcEZvb3RlciEuYXBwZW5kKGZvb3Rlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlYWRlcikge1xuICAgICAgICAgIC8vVE9ETzogY2hlY2sgdHMgZXJyb3JcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICBwb3BIZWFkZXIuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgcG9wSGVhZGVyIS5hcHBlbmQoaGVhZGVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXG4gIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgZm9jdXNlZE9ySGFzRm9jdXNlZCA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpO1xuICAgIGlmICh0aGlzLnNob3dDbG9zZUJ1dHRvbiAmJiBmb2N1c2VkT3JIYXNGb2N1c2VkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZUNsb3NlQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKHRoaXMuX2xvYWRpbmdJZCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+XG4gICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtcG9wdXAnKT8uZm9jdXMoKVxuICAgICk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLm9uQ2xvc2VkLmVtaXQoe1xuICAgICAgLy9UT0RPOiBjaGVjayB0cyBlcnJvclxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBjb21wb25lbnQ6IHRoaXNbVEFCX01FVEFfS0VZXS5jb21wb25lbnQsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICB9KTtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25GdWxsU2NyZWVuKCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1wb3B1cC13cmFwcGVyXCIgYXJpYS1tb2RhbD1cInRydWVcIiBbY2RrVHJhcEZvY3VzXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cImF4LXBvcHVwIGF4LXBvcHVwLXt7IHNpemUgfX1cIiB0YWJpbmRleD1cIjBcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRyYWdnYWJsZVwiPlxuICAgIDxkaXYgY2RrRHJhZ0hhbmRsZSBjbGFzcz1cImF4LXBvcHVwLWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cC1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1wb3B1cC10aXRsZVwiPnt7IHRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCIgKGNsaWNrKT1cIl9oYW5kbGVDbG9zZUNsaWNrKClcIiB0YWJpbmRleD1cIjFcIj48L3NwYW4+IC0tPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uIChjbGljayk9XCJfaGFuZGxlQ2xvc2VDbGljaygpXCIgdGFiaW5kZXg9XCIxXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtbWFpbi1jb250YWluZXJcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9zZWxlY3RlZFBvcnRhbFwiIChhdHRhY2hlZCk9XCJfaGFuZGxlQXR0Y2hlZCgkZXZlbnQpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtZm9vdGVyLWNvbnRhaW5lclwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,8 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, ViewChild, } from '@angular/core';
2
- import { AXSearchableComponent, } from '@acorex/components/common';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, ViewChild } from '@angular/core';
2
+ import { AXSearchableComponent } from '@acorex/components/common';
3
3
  import { AXTextBoxComponent } from '@acorex/components/textbox';
4
4
  import { AXBaseComponentMixin } from '@acorex/components/mixin';
5
+ import { Subject, debounceTime, distinctUntilChanged, filter, tap } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/common";
7
8
  import * as i2 from "@acorex/components/decorators";
@@ -18,11 +19,18 @@ class AXSearchBoxComponent extends AXBaseComponentMixin {
18
19
  placeholder = 'common.search';
19
20
  debounceTime = 500;
20
21
  searchExp = '';
22
+ subject = new Subject();
23
+ ngOnInit() {
24
+ this.subject
25
+ .pipe(filter(Boolean), debounceTime(this.debounceTime), distinctUntilChanged(), tap(text => {
26
+ if (this._parent && this._parent.search) {
27
+ this._parent.search(text);
28
+ }
29
+ }))
30
+ .subscribe();
31
+ }
21
32
  _onSearchExprChanged(e) {
22
- //TODO: debounceTime
23
- if (this._parent && this._parent.search) {
24
- this._parent.search(e.value);
25
- }
33
+ this.subject.next(e.value);
26
34
  }
27
35
  focus() {
28
36
  this._textbox?.focus();
@@ -52,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
52
60
  }], searchExp: [{
53
61
  type: Input
54
62
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94L3NyYy9zZWFyY2gtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gvc3JjL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEdBRXRCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFaEUsTUFNYSxvQkFBcUIsU0FBUSxvQkFBb0I7SUFTbEQ7SUFQVixRQUFRLENBQXFCO0lBRTdCLFlBQ0UsV0FBdUIsRUFDdkIsSUFBdUIsRUFHZixPQUE4QjtRQUV0QyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRmpCLFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBR3hDLENBQUM7SUFHRCxXQUFXLEdBQVcsZUFBZSxDQUFDO0lBR3RDLFlBQVksR0FBVyxHQUFHLENBQUM7SUFHM0IsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUV2QixvQkFBb0IsQ0FBQyxDQUE4QjtRQUNqRCxvQkFBb0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQXBDVSxvQkFBb0IsNkVBUXJCLHFCQUFxQjsyRkFScEIsb0JBQW9CLDZMQUNwQixrQkFBa0IsdUVDekIvQiwyZEFVYzs7U0RjRCxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxlQUFlLG1CQUVSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQVNsQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLHFCQUFxQjs0Q0FOL0IsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFjN0IsV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9wdGlvbmFsLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhTZWFyY2hhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0Ym94JztcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VhcmNoLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VhcmNoQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50TWl4aW4ge1xuICBAVmlld0NoaWxkKEFYVGV4dEJveENvbXBvbmVudClcbiAgX3RleHRib3g6IEFYVGV4dEJveENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQVhTZWFyY2hhYmxlQ29tcG9uZW50KVxuICAgIHByaXZhdGUgX3BhcmVudDogQVhTZWFyY2hhYmxlQ29tcG9uZW50XG4gICkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfY2RyKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnY29tbW9uLnNlYXJjaCc7XG5cbiAgQElucHV0KClcbiAgZGVib3VuY2VUaW1lOiBudW1iZXIgPSA1MDA7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoRXhwOiBzdHJpbmcgPSAnJztcblxuICBfb25TZWFyY2hFeHByQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PHN0cmluZz4pIHtcbiAgICAvL1RPRE86IGRlYm91bmNlVGltZVxuICAgIGlmICh0aGlzLl9wYXJlbnQgJiYgdGhpcy5fcGFyZW50LnNlYXJjaCkge1xuICAgICAgdGhpcy5fcGFyZW50LnNlYXJjaChlLnZhbHVlIGFzIGFueSk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5fdGV4dGJveD8uZm9jdXMoKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX3RleHRib3gudmFsdWUgPSAnJztcbiAgfVxufVxuIiwiPGF4LXRleHQtYm94IHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCB0cmFucyB9fVwiIFsodmFsdWUpXT1cInNlYXJjaEV4cFwiXG4gICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9vblNlYXJjaEV4cHJDaGFuZ2VkKCRldmVudClcIj5cbiAgICA8YXgtcHJlZml4PlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1zZWFyY2ggYXgtZWRpdG9yLWNvbnRyb2xcIj48L3NwYW4+XG4gICAgPC9heC1wcmVmaXg+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaEV4cFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2xvc2VcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvYXgtc3VmZml4PlxuPC9heC10ZXh0LWJveD4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94L3NyYy9zZWFyY2gtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gvc3JjL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBaUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBRWhGLE1BTWEsb0JBQXFCLFNBQVEsb0JBQW9CO0lBU2xEO0lBUFYsUUFBUSxDQUFxQjtJQUU3QixZQUNFLFdBQXVCLEVBQ3ZCLElBQXVCLEVBR2YsT0FBOEI7UUFFdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUZqQixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUd4QyxDQUFDO0lBR0QsV0FBVyxHQUFXLGVBQWUsQ0FBQztJQUd0QyxZQUFZLEdBQVcsR0FBRyxDQUFDO0lBRzNCLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFFZixPQUFPLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7SUFFakQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDZixZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUMvQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsQ0FBOEI7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQWxEVSxvQkFBb0IsNkVBUXJCLHFCQUFxQjsyRkFScEIsb0JBQW9CLDZMQUNwQixrQkFBa0IsdUVDYi9CLDJkQVVjOztTREVELG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBU2xDLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMscUJBQXFCOzRDQU4vQixRQUFRO3NCQURQLFNBQVM7dUJBQUMsa0JBQWtCO2dCQWM3QixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgT3B0aW9uYWwsIEluamVjdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTZWFyY2hhYmxlQ29tcG9uZW50LCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFRleHRCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dGJveCc7XG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnRNaXhpbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTZWFyY2hCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XG4gIEBWaWV3Q2hpbGQoQVhUZXh0Qm94Q29tcG9uZW50KVxuICBfdGV4dGJveDogQVhUZXh0Qm94Q29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBWFNlYXJjaGFibGVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFyZW50OiBBWFNlYXJjaGFibGVDb21wb25lbnRcbiAgKSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9jZHIpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdjb21tb24uc2VhcmNoJztcblxuICBASW5wdXQoKVxuICBkZWJvdW5jZVRpbWU6IG51bWJlciA9IDUwMDtcblxuICBASW5wdXQoKVxuICBzZWFyY2hFeHA6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgc3ViamVjdDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCh0ZXh0ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcGFyZW50ICYmIHRoaXMuX3BhcmVudC5zZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudC5zZWFyY2godGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgX29uU2VhcmNoRXhwckNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxzdHJpbmc+KSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoZS52YWx1ZSk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl90ZXh0Ym94Py5mb2N1cygpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5fdGV4dGJveC52YWx1ZSA9ICcnO1xuICB9XG59XG4iLCI8YXgtdGV4dC1ib3ggcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB8IHRyYW5zIH19XCIgWyh2YWx1ZSldPVwic2VhcmNoRXhwXCJcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiX29uU2VhcmNoRXhwckNoYW5nZWQoJGV2ZW50KVwiPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNlYXJjaCBheC1lZGl0b3ItY29udHJvbFwiPjwvc3Bhbj5cbiAgICA8L2F4LXByZWZpeD5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VhcmNoRXhwXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9heC1zdWZmaXg+XG48L2F4LXRleHQtYm94PiJdfQ==
@@ -10,10 +10,9 @@ import * as i1 from "@acorex/core/platform";
10
10
  import * as i2 from "@angular/common";
11
11
  import * as i3 from "@acorex/components/decorators";
12
12
  import * as i4 from "@acorex/components/popover";
13
- import * as i5 from "@acorex/components/button";
14
- import * as i6 from "@acorex/components/loading";
15
- import * as i7 from "@angular/cdk/a11y";
16
- import * as i8 from "@acorex/core/translation";
13
+ import * as i5 from "@acorex/components/loading";
14
+ import * as i6 from "@angular/cdk/a11y";
15
+ import * as i7 from "@acorex/core/translation";
17
16
  /**
18
17
  * The Button is a component which detects user interaction and triggers a corresponding event
19
18
  *
@@ -312,7 +311,7 @@ class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
312
311
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", allowNull: "allowNull", value: "value", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", autoComplete: "autoComplete", readonly: "readonly", pageSize: "pageSize", items: "items", valueField: "valueField", textField: "textField", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, providers: [
313
312
  { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
314
313
  { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
315
- ], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\" *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\n</ax-button>\n<button [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-control\" (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\" [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\"> </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\" *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "directive", type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
314
+ ], queries: [{ propertyName: "_searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }, { propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div\n class=\"ax-select-box-selection\"\n [tabindex]=\"tabIndex\"\n (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button\n class=\"ax-general-button ax-button-icon\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [position]=\"position\"\n [openTrigger]=\"'manual'\"\n [closeTrigger]=\"'clickout'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button\n class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li\n class=\"ax-list-item\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span\n class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title" }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
316
315
  }
317
316
  export { AXSelectBoxComponent };
318
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
@@ -344,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
344
343
  ], outputs: ['onOpened', 'onClosed', 'onBlur', 'onFocus', 'valueChange', 'onValueChanged'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
345
344
  { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },
346
345
  { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },
347
- ], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\" *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <ax-icon icon=\"ax-icon ax-icon-close\"></ax-icon>\n</ax-button>\n<button [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-control\" (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"true\" (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button class=\"ax-icon\" [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\"> </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input class=\"ax-checkbox\" type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\" *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}\n"] }]
346
+ ], host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\n <div\n class=\"ax-select-box-selection\"\n [tabindex]=\"tabIndex\"\n (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\n <ng-template #singleSelectedTemplate>\n <ng-container *ngFor=\"let item of selectedItems\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n </ng-container>\n </ng-template>\n <ng-template #multipleSelectedTemplate>\n <div class=\"ax-select-box-multi-selection\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-select-multi-item\">\n {{ _getItemDisplayTextTemplte(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #showPlaceholder>\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n </ng-template>\n </div>\n</div>\n<button\n class=\"ax-general-button ax-button-icon\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\n <span class=\"ax-icon ax-icon-close\"></span>\n</button>\n<button\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"_handleArrowClickEvent($event)\">\n <ng-container *ngIf=\"isLoading && !this.popover.isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span\n class=\"ax-icon ax-icon-chevron-left ax-transition-all\"\n [ngClass]=\"{\n '-ax-rotation-90': !isOpen,\n 'ax-rotation-90': isOpen\n }\"></span>\n </ng-template>\n</button>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [position]=\"position\"\n [openTrigger]=\"'manual'\"\n [closeTrigger]=\"'clickout'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\">\n <div\n class=\"ax-overlay-pane\"\n (keydown)=\"_handlePopoverKeydown($event)\"\n tabindex=\"0\"\n aria-modal=\"true\"\n cdkTrapFocus\n [class.ax-overlay-actionsheet]=\"_isActionSheet\"\n [class.ax-full]=\"_searchBox || isLazy\"\n [style.min-width.px]=\"_popoverWidth\">\n <div class=\"ax-list\">\n <ax-header *ngIf=\"_isActionSheet\">\n <ax-title>{{ _popoverTitle }}</ax-title>\n <ax-close-button\n class=\"ax-icon\"\n [icon]=\"multiple ? 'ax-icon-done !ax-text-primary-500' : 'ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-box-container\" [class.ax-state-hidden]=\"!_searchBox\" [cdkTrapFocus]=\"_searchBox != null\">\n <ng-content select=\"ax-search-box\"></ng-content>\n </div>\n <div class=\"ax-content ax-list-items-container ax-default\" (scroll)=\"_handleListScroll($event)\" #listContainer>\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul>\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: displayItems }\"> </ng-container>\n <ng-template #tmpTree let-list=\"list\">\n <ng-container *ngFor=\"let item of list; let i = index; trackBy: _trackByFunction\">\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\n <li\n class=\"ax-list-item\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, direction: direction }\">\n </ng-container>\n </li>\n </ng-container>\n <ng-template #defualtTemplate>\n <ng-container *ngIf=\"item.children?.length > 0; else tmpItem\">\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <ul *ngIf=\"item.children?.length > 0\">\n <ng-container *ngTemplateOutlet=\"tmpTree; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n </ng-container>\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\n <span class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item)\"></span>\n </li>\n </ng-container>\n <ng-template #multipleTemplate>\n <li\n class=\"ax-list-item\"\n [class.ax-state-selected]=\"isItemSelected(item)\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [class.ax-state-checkbox]=\"checkbox\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"item[this.valueField]\">\n <span>\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n *ngIf=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\" />\n <span class=\"ax-checkbox-label\">{{ _getItemDisplayTextTemplte(item) }}</span>\n </span>\n <span\n class=\"ax-icon ax-icon-done ax-selected-icon\"\n *ngIf=\"isItemSelected(item) && !checkbox\"></span>\n </li>\n </ng-template>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-template>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseLoadingTemplate>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n </ng-container>\n <ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-p-4\"\n [innerHTML]=\"\n 'common.no-result-for'\n | trans\n : {\n exp: this._searchBox ? this._searchBox.searchExp : ''\n }\n \"></div>\n </ng-template>\n </ng-container>\n </ng-template>\n </div>\n <!-- <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\"\n >\n \n </div> -->\n <!-- <div class=\"ax-footer\">footer</div> -->\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-select-box .ax-select-multi-item{display:flex;align-items:center;padding:.25rem .5rem;background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore));border-radius:var(--ax-rounded-border-default);margin-inline-end:.5rem}ax-select-box .ax-select-multi-item .ax-icon-close{cursor:pointer;margin-inline-start:.5rem}ax-select-box .ax-select-box-selection{display:flex;justify-content:center;align-items:center;outline-color:transparent;outline:transparent;-webkit-user-select:none;user-select:none}ax-select-box .ax-select-box-selection>span{padding-inline-start:1rem;padding-inline-end:.75rem;white-space:nowrap}ax-select-box .ax-select-box-selection .ax-selectbox-input{opacity:0;width:0}ax-select-box .ax-select-box-multi-selection{padding:0 .5rem;display:flex;justify-content:center;align-items:center}ax-select-box .ax-placeholder{padding-inline-start:1rem;padding-inline-end:.75rem}\n"] }]
348
347
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.AXPlatform }]; }, propDecorators: { popover: [{
349
348
  type: ViewChild,
350
349
  args: [AXPopoverComponent, { static: true }]
@@ -365,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
365
364
  type: HostListener,
366
365
  args: ['keydown', ['$event']]
367
366
  }] } });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94L3NyYy9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUF1QixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEUsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBRXhFOzs7O0dBSUc7QUFDSCxNQXNDYSxvQkFBcUIsU0FBUSw0QkFBNEI7SUEwQ2hEO0lBQWlEO0lBQWlDO0lBQXVCO0lBeEM3SCxPQUFPLENBQXFCO0lBRzVCLFVBQVUsQ0FBdUI7SUFFakMsT0FBTyxDQUFpQjtJQUN4QixhQUFhLENBQVM7SUFDdEIsYUFBYSxDQUFTO0lBRXRCOztPQUVHO0lBRUgsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUU3Qjs7T0FF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Uzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSS9DLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBV3BELFdBQVc7c0JBRFYsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBSUUsYUFBYTtzQkFEcEIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlwQyxxQkFBcUI7c0JBRDVCLFlBQVk7dUJBQUMsZUFBZTtnQkFzSDdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBOZ1pvbmUsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kTGFzdCwgZmluZExhc3RJbmRleCwgZmlyc3QsIGxhc3QsIG50aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYQ2xvc2JhbGVDb21wb25lbnQsIEFYU2VhcmNoYWJsZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuXG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYQmFzZVNlbGVjdGlvbkRyb3Bkb3duTWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdGJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnaXNPcGVuJyxcbiAgICAnZml0UGFyZW50JyxcbiAgICAnZHJvcGRvd25XaWR0aCcsXG4gICAgJ3Bvc2l0aW9uJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ2FsbG93TnVsbCcsXG4gICAgJ3ZhbHVlJyxcbiAgICAnbmFtZScsXG4gICAgJ2NoZWNrZWQnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ21heExlbmd0aCcsXG4gICAgJ3R5cGUnLFxuICAgICdhdXRvQ29tcGxldGUnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3BhZ2VTaXplJyxcbiAgICAnaXRlbXMnLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgICAnZGlzYWJsZWRGaWVsZCcsXG4gICAgJ2Rpc2FibGVkQ2FsbGJhY2snLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3NlbGVjdGlvbk1vZGUnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29uT3BlbmVkJywgJ29uQ2xvc2VkJywgJ29uQmx1cicsICdvbkZvY3VzJywgJ3ZhbHVlQ2hhbmdlJywgJ29uVmFsdWVDaGFuZ2VkJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ2xvc2JhbGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhTZWFyY2hhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgXSxcbiAgaG9zdDogeyBjbGFzczogJ2F4LWVkaXRvci1jb250YWluZXIgYXgtZHJvcC1kb3duJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdEJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVNlbGVjdGlvbkRyb3Bkb3duTWl4aW4ge1xuICBAVmlld0NoaWxkKEFYUG9wb3ZlckNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhTZWFyY2hCb3hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIF9zZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIF90YXJnZXQ6IEhUTUxEaXZFbGVtZW50O1xuICBfcG9wb3ZlclRpdGxlOiBzdHJpbmc7XG4gIF9wb3BvdmVyV2lkdGg6IG51bWJlcjtcblxuICAvKipcbiAgICogIERlZmluZXMgdGhlIGNsZWFyQnV0dG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgY2xlYXJCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogIERlZmluZXMgdGhlIGNoZWNrYm94LlxuICAgKi9cbiAgQElucHV0KClcbiAgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBsaXN0Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbXB0eVRlbXBsYXRlO1xuICB9XG5cbiAgX2lzQWN0aW9uU2hlZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2ZvcmNlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiwgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBfem9uZTogTmdab25lLCBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBfY2RyKTtcbiAgICB0aGlzLl9pc0FjdGlvblNoZWV0ID0gdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJyk7XG4gICAgdGhpcy5fcGxhdGZvcm0ucmVzaXplLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9pc0FjdGlvblNoZWV0ID0gdGhpcy5fcGxhdGZvcm0uaXMoJ1NNJyk7XG4gICAgICB0aGlzLnBvcG92ZXIuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5fZGV0ZWN0UG9wdXBTaXplKCk7XG4gICAgfSk7XG4gIH1cblxuICBfaGFuZGxlQXJyb3dDbGlja0V2ZW50KGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIGUubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIF9oYW5kbGVJbnB1dENsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy50b2dnbGUoKTtcbiAgfVxuXG4gIG9uSW5pdCgpIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgICB0aGlzLl90YXJnZXQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLl91cGRhdGVQb3B1cFRpdGxlKCk7XG4gIH1cblxuICBvblZpZXdJbml0KCkge1xuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQb3B1cFNpemUoKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgc3VwZXIucmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlUG9wdXBUaXRsZSgpIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoIHx8IDA7XG4gICAgLy90aGlzLl9wb3BvdmVyVGl0bGUgPSBjb3VudCA+IDEgPyBgKCR7Y291bnR9KSBpdGVtcyBzZWxlY3RlZGAgOiAodGhpcy5wbGFjZWhvbGRlciB8fCBBWFRyYW5zbGF0b3IuZ2V0KCdzZWxlY3Rib3gucG9wb3Zlci50aXRsZScpKTtcbiAgICB0aGlzLl9wb3BvdmVyVGl0bGUgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IEFYVHJhbnNsYXRvci5nZXQoJ3NlbGVjdGJveC5wb3BvdmVyLnRpdGxlJyk7XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RQb3B1cFNpemUoKSB7XG4gICAgdGhpcy5fcG9wb3ZlcldpZHRoID0gdGhpcy5faXNBY3Rpb25TaGVldCA/IDAgOiB0aGlzLl90YXJnZXQub2Zmc2V0V2lkdGg7XG4gIH1cblxuICBfaGFuZGxlT25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB0aGlzLmNsb3NlKCk7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIF9oYW5kbGVMaXN0U2Nyb2xsKGU6IEV2ZW50KSB7XG4gICAgY29uc3QgbGlzdCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGlmIChsaXN0LnNjcm9sbFRvcCA8IGxpc3Quc2Nyb2xsSGVpZ2h0IC0gbGlzdC5jbGllbnRIZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0ZvckxvYWREYXRhKCkge1xuICAgIGNvbnN0IGxpc3Q6IGFueSA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgIGlmICh0aGlzLmxvYWRlZENvdW50IDwgdGhpcy50b3RhbENvdW50ICYmIGxpc3Quc2Nyb2xsSGVpZ2h0IDwgbGlzdC5wYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodCAqIDEuNSkge1xuICAgICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgX29uRGF0YUxvYWRlZCgpIHtcbiAgICBpZiAodGhpcy5wb3BvdmVyLmlzT3Blbikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoZWNrRm9yTG9hZERhdGEoKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLl9mb3JjZUZvY3VzKSB7XG4gICAgICAgICAgdGhpcy5fZm9jdXNTZWxlY3RlZEl0ZW0oKTtcbiAgICAgICAgICB0aGlzLl9mb3JjZUZvY3VzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9jdXNTZWFyY2hCb3goKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5fb25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIF9oYW5kbGVPblJlbW92ZUl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIF9oYW5kbGVCYWRnZVJlbW92ZShlOiBNb3VzZUV2ZW50LCBpdGVtKSB7XG4gICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIF9oYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBpc0xldHRlciA9IG5ldyBSZWdFeHAoL1thLXpBLVowLTlcXC1dLykudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUua2V5Q29kZSkpO1xuICAgIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnICYmIGUudHlwZSA9PT0gJ2tleWRvd24nICYmICgodGhpcy5hbGxvd051bGwgPT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHx8ICh0aGlzLmFsbG93TnVsbCAhPT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMSkpKSB7XG4gICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoKGUuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5jb2RlID09PSAnQXJyb3dVcCcgfHwgZS5jb2RlID09PSAnU3BhY2UnKSAmJiAhdGhpcy5wb3BvdmVyLmlzT3BlbiAmJiBlLnR5cGUgPT09ICdrZXlkb3duJykge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKGUuY3RybEtleSB8fCBlLmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1CeU5hdihlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChpc0xldHRlcikge1xuICAgICAgdGhpcy50ZXh0ID0gZS5rZXk7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlUG9wb3ZlcktleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgPT0gJ0lOUFVUJyAmJiBbJ1NwYWNlJywgJ0JhY2tzcGFjZSddLmluY2x1ZGVzKGUuY29kZSkpIHJldHVybjtcbiAgICBpZiAoKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5TmF2KGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnICYmICgodGhpcy5hbGxvd051bGwgPT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHx8ICh0aGlzLmFsbG93TnVsbCAhPT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMSkpKSB7XG4gICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZS5jb2RlID09PSAnU3BhY2UnIHx8IGUuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgZm9jdXNlZEl0ZW1JZCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuYXgtc3RhdGUtZm9jdXMnKT8uZGF0YXNldD8uaWQ7XG4gICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IGZpbmRMYXN0KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBmb2N1c2VkSXRlbUlkXSk7XG4gICAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoZm9jdXNlZEl0ZW0pKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QoZm9jdXNlZEl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbXMoZm9jdXNlZEl0ZW0pO1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZS5jb2RlID09PSAnVGFiJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBfaGFuZGxlUG9wdXBPbk9wZW5lZChlKSB7XG4gICAgdGhpcy5fZGV0ZWN0UG9wdXBTaXplKCk7XG4gICAgdGhpcy5wb3BvdmVyLmZvY3VzKCk7XG4gICAgaWYgKHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLl9mb3JjZUZvY3VzID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9mb2N1c1NlbGVjdGVkSXRlbSgpO1xuICAgIH1cbiAgICB0aGlzLl9mb2N1c1NlYXJjaEJveCgpO1xuICB9XG5cbiAgX2hhbmRsZVBvcHVwT25DbG9zZWQoZSkge1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzU2VhcmNoQm94KCkge1xuICAgIGlmICh0aGlzLl9zZWFyY2hCb3ggJiYgKCF0aGlzLl9pc0FjdGlvblNoZWV0IHx8IHRoaXMuX3NlYXJjaEJveC5zZWFyY2hFeHApKSB7XG4gICAgICB0aGlzLl9zZWFyY2hCb3guZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9mb2N1c0l0ZW1CeU5hdihzaWduOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm4gPSBzID0+IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4ocyk7XG4gICAgY29uc3QgaXRlbURpdjogYW55ID0gZm4oYC5heC1saXN0LWl0ZW0uYXgtc3RhdGUtZm9jdXNgKSB8fCBmbihgLmF4LWxpc3QtaXRlbS5heC1zdGF0ZS1zZWxlY3RlZGApIHx8IGZuKGAuYXgtbGlzdC1pdGVtYCk7XG4gICAgbGV0IG5leHQgPSAoc2lnbiA9PSAxID8gaXRlbURpdi5uZXh0RWxlbWVudFNpYmxpbmcgOiBpdGVtRGl2LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KG5leHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXJlbnQgPSBpdGVtRGl2LmNsb3Nlc3QoJy5heC1saXN0LWl0ZW0tZ3JvdXAnKTtcbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgY29uc3QgbGlzID0gKHNpZ24gPT0gMSA/IHBhcmVudC5uZXh0RWxlbWVudFNpYmxpbmcgOiBwYXJlbnQucHJldmlvdXNFbGVtZW50U2libGluZyk/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJyk7XG4gICAgICAgIGNvbnN0IGEgPSBzaWduID09IDEgPyBmaXJzdChsaXMpIDogbGFzdChsaXMpO1xuICAgICAgICBpZiAoYSkge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbUVsZW1lbnQoYSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNTZWxlY3RlZEl0ZW0oKSB7XG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBmbiA9IHMgPT4gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihzKTtcbiAgICAgIGNvbnN0IGl0ZW1EaXYgPSBmbihgLmF4LWxpc3QtaXRlbS5heC1zdGF0ZS1zZWxlY3RlZGApIHx8IGZuKGAuYXgtbGlzdC1pdGVtYCk7XG4gICAgICBpZiAoaXRlbURpdikge1xuICAgICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KGl0ZW1EaXYpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNJdGVtRWxlbWVudChlbDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGxpc3QucXVlcnlTZWxlY3RvckFsbCgnLmF4LWxpc3QtaXRlbScpLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmIChjID09IGVsKSB7XG4gICAgICAgICAgYy5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1mb2N1cycpO1xuICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjLmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLWZvY3VzJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCF0aGlzLl9pc0FjdGlvblNoZWV0ICYmIHRoaXMuX3NlYXJjaEJveCkgdGhpcy5fc2VhcmNoQm94LmZvY3VzKCk7XG4gICAgICBlbHNlIGVsLmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZEl0ZW1CeU5hdihzaWduOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBfbGFzdDogYW55ID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIGxldCBpID0gMDtcbiAgICBpZiAoX2xhc3QpIHtcbiAgICAgIGkgPSBmaW5kTGFzdEluZGV4KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBfbGFzdFt0aGlzLnZhbHVlRmllbGRdXSk7XG4gICAgfVxuICAgIGkgKz0gc2lnbjtcbiAgICBsZXQgbmV4dCA9IG50aDxhbnk+KHRoaXMuZmxhdEl0ZW1zLCBpKTtcbiAgICB3aGlsZSAobmV4dD8uY2hpbGRyZW4gJiYgbmV4dD8uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBpICs9IHNpZ247XG4gICAgICBuZXh0ID0gbnRoPGFueT4odGhpcy5mbGF0SXRlbXMsIGkpO1xuICAgIH1cbiAgICBpZiAobmV4dCkge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtcyhuZXh0KTtcbiAgICB9IGVsc2UgaWYgKG5leHQgPT0gbnVsbCAmJiBzaWduID09IDEpIHtcbiAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaChleHA6IHN0cmluZykge1xuICAgIHRoaXMuZW1wdHkoKTtcbiAgICB0aGlzLl9mb3JjZUZvY3VzID0gdHJ1ZTtcbiAgICB0aGlzLl9mZXRjaERhdGEoKTtcbiAgfVxuXG4gIF9mZXRjaERhdGEoKSB7XG4gICAgc3VwZXIuX2ZldGNoRGF0YSh7IHNlYXJjaFF1ZXJ5OiB0aGlzLl9zZWFyY2hCb3g/LnNlYXJjaEV4cCB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1kcm9wZG93bi1jb250ZW50XCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cIl9oYW5kbGVJbnB1dENsaWNrRXZlbnQoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiAoZm9jdXMpPVwiX2VtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cIl9lbWl0T25CbHVyRXZlbnQoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zICYmIHNlbGVjdGVkSXRlbXMubGVuZ3RoOyBlbHNlIHNob3dQbGFjZWhvbGRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgdGhlbiBzaW5nbGVTZWxlY3RlZFRlbXBsYXRlOyBlbHNlIG11bHRpcGxlU2VsZWN0ZWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVTZWxlY3RlZFRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3RlZFRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1tdWx0aS1zZWxlY3Rpb25cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1zZWxlY3QtbXVsdGktaXRlbVwiPlxuICAgICAgICAgICAgICB7eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiPiA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1BsYWNlaG9sZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXBsYWNlaG9sZGVyXCIgcm9sZT1cInRleHRib3hcIiBhcmVhLXJlYWRvbmx5PVwidHJ1ZVwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImNsZWFyKClcIiBbdGFiSW5kZXhdPVwiLTFcIiAqbmdJZj1cInZhbHVlICYmIGNsZWFyQnV0dG9uICYmICEoZGlzYWJsZWQgfHwgcmVhZG9ubHkpXCI+XG4gIDxheC1pY29uIGljb249XCJheC1pY29uIGF4LWljb24tY2xvc2VcIj48L2F4LWljb24+XG48L2F4LWJ1dHRvbj5cbjxidXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgY2xhc3M9XCJheC1lZGl0b3ItY29udHJvbFwiIChjbGljayk9XCJfaGFuZGxlQXJyb3dDbGlja0V2ZW50KCRldmVudClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZyAmJiAhdGhpcy5wb3BvdmVyLmlzT3BlbjsgZWxzZSBpY29uVGVtcGxhdGVcIj5cbiAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWxlZnQgYXgtdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnLWF4LXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgJ2F4LXJvdGF0aW9uLTkwJzogaXNPcGVuXG4gICAgICB9XCI+PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuPC9idXR0b24+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbjxheC1wb3BvdmVyIFt0YXJnZXRdPVwiX3RhcmdldFwiIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiIFtvcGVuVHJpZ2dlcl09XCInbWFudWFsJ1wiIFtjbG9zZVRyaWdnZXJdPVwiJ2NsaWNrb3V0J1wiIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCIgKG9uT3BlbmVkKT1cIl9oYW5kbGVQb3B1cE9uT3BlbmVkKCRldmVudClcIiAob25DbG9zZWQpPVwiX2hhbmRsZVBvcHVwT25DbG9zZWQoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIlxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVQb3BvdmVyS2V5ZG93bigkZXZlbnQpXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBjZGtUcmFwRm9jdXNcbiAgICBbY2xhc3MuYXgtb3ZlcmxheS1hY3Rpb25zaGVldF09XCJfaXNBY3Rpb25TaGVldFwiXG4gICAgW2NsYXNzLmF4LWZ1bGxdPVwiX3NlYXJjaEJveCB8fCBpc0xhenlcIlxuICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiX3BvcG92ZXJXaWR0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1saXN0XCI+XG4gICAgICA8YXgtaGVhZGVyICpuZ0lmPVwiX2lzQWN0aW9uU2hlZXRcIj5cbiAgICAgICAgPGF4LXRpdGxlPnt7IF9wb3BvdmVyVGl0bGUgfX08L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uIGNsYXNzPVwiYXgtaWNvblwiIFtpY29uXT1cIm11bHRpcGxlID8gJ2F4LWljb24tZG9uZSAhYXgtdGV4dC1wcmltYXJ5LTUwMCcgOiAnYXgtaWNvbi1jbG9zZSdcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgIDwvYXgtaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXNlYXJjaC1ib3gtY29udGFpbmVyXCIgW2NsYXNzLmF4LXN0YXRlLWhpZGRlbl09XCIhX3NlYXJjaEJveFwiIFtjZGtUcmFwRm9jdXNdPVwiX3NlYXJjaEJveCAhPSBudWxsXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXNlYXJjaC1ib3hcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb250ZW50IGF4LWxpc3QtaXRlbXMtY29udGFpbmVyIGF4LWRlZmF1bHRcIiAoc2Nyb2xsKT1cIl9oYW5kbGVMaXN0U2Nyb2xsKCRldmVudClcIiAjbGlzdENvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlJdGVtcy5sZW5ndGg7IGVsc2UgdG1wRW1wdHlcIj5cbiAgICAgICAgICA8dWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG1wVHJlZTsgY29udGV4dDogeyBsaXN0OiBkaXNwbGF5SXRlbXMgfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wVHJlZSBsZXQtbGlzdD1cImxpc3RcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0OyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiBfdHJhY2tCeUZ1bmN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1UZW1wbGF0ZTsgZWxzZSBkZWZ1YWx0VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIChjbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBkaXJlY3Rpb246IGRpcmVjdGlvbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZnVhbHRUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwOyBlbHNlIHRtcEl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYXgtbGlzdC1pdGVtLWdyb3VwXCIgW2F0dHIuZGF0YS1pZF09XCJpdGVtW3RoaXMudmFsdWVGaWVsZF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6IHsgbGlzdDogaXRlbS5jaGlsZHJlbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWxpc3QtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb25lIGF4LXNlbGVjdGVkLWljb25cIiAqbmdJZj1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWxpc3QtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1jaGVja2JveF09XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIml0ZW1bdGhpcy52YWx1ZUZpZWxkXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImF4LWNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCIgKm5nSWY9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCIgW2Rpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1jaGVja2JveC1sYWJlbFwiPnt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tZG9uZSBheC1zZWxlY3RlZC1pY29uXCIgKm5nSWY9XCJpc0l0ZW1TZWxlY3RlZChpdGVtKSAmJiAhY2hlY2tib3hcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdUZW1wbGF0ZTsgZWxzZSBlbHNlTG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUxvYWRpbmdUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgICAgICAgICAgPGF4LWxvYWRpbmcgW29wdGlvbnNdPVwiX2xvYWRpbmdPcHRpb25zXCI+PC9heC1sb2FkaW5nPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wRW1wdHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eVRlbXBsYXRlOyBlbHNlIGVsc2VFbXB0eVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VFbXB0eVRlbXBsYXRlPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAnY29tbW9uLm5vLXJlc3VsdC1mb3InXG4gICAgICAgICAgICAgICAgICAgIHwgdHJhbnNcbiAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwOiB0aGlzLl9zZWFyY2hCb3ggPyB0aGlzLl9zZWFyY2hCb3guc2VhcmNoRXhwIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbXMtY29udGFpbmVyIGF4LXZlcnRpY2FsIGF4LWRlZmF1bHRcIiBbY2xhc3MuYXgtZnVsbF09XCJfaXNNb2JpbGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYXgtZm9vdGVyXCI+Zm9vdGVyPC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94L3NyYy9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUF1QixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEUsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFFeEU7Ozs7R0FJRztBQUNILE1Bc0NhLG9CQUFxQixTQUFRLDRCQUE0QjtJQTBDaEQ7SUFBaUQ7SUFBaUM7SUFBdUI7SUF4QzdILE9BQU8sQ0FBcUI7SUFHNUIsVUFBVSxDQUF1QjtJQUVqQyxPQUFPLENBQWlCO0lBQ3hCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFFdEI7O09BRUc7SUFFSCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCOztPQUVH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O3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0MsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFXcEQsV0FBVztzQkFEVixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFJRSxhQUFhO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXBDLHFCQUFxQjtzQkFENUIsWUFBWTt1QkFBQyxlQUFlO2dCQXNIN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE5nWm9uZSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmRMYXN0LCBmaW5kTGFzdEluZGV4LCBmaXJzdCwgbGFzdCwgbnRoIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDbG9zYmFsZUNvbXBvbmVudCwgQVhTZWFyY2hhYmxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhCYXNlU2VsZWN0aW9uRHJvcGRvd25NaXhpbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XG5cbi8qKlxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNlbGVjdC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0Ym94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0Ym94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogW1xuICAgICdpc09wZW4nLFxuICAgICdmaXRQYXJlbnQnLFxuICAgICdkcm9wZG93bldpZHRoJyxcbiAgICAncG9zaXRpb24nLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAnYWxsb3dOdWxsJyxcbiAgICAndmFsdWUnLFxuICAgICduYW1lJyxcbiAgICAnY2hlY2tlZCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAnbWF4TGVuZ3RoJyxcbiAgICAndHlwZScsXG4gICAgJ2F1dG9Db21wbGV0ZScsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncGFnZVNpemUnLFxuICAgICdpdGVtcycsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICAgICdkaXNhYmxlZEZpZWxkJyxcbiAgICAnZGlzYWJsZWRDYWxsYmFjaycsXG4gICAgJ211bHRpcGxlJyxcbiAgICAnc2VsZWN0aW9uTW9kZScsXG4gIF0sXG4gIG91dHB1dHM6IFsnb25PcGVuZWQnLCAnb25DbG9zZWQnLCAnb25CbHVyJywgJ29uRm9jdXMnLCAndmFsdWVDaGFuZ2UnLCAnb25WYWx1ZUNoYW5nZWQnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICBdLFxuICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlU2VsZWN0aW9uRHJvcGRvd25NaXhpbiB7XG4gIEBWaWV3Q2hpbGQoQVhQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwb3BvdmVyOiBBWFBvcG92ZXJDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChBWFNlYXJjaEJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgX3NlYXJjaEJveDogQVhTZWFyY2hCb3hDb21wb25lbnQ7XG5cbiAgX3RhcmdldDogSFRNTERpdkVsZW1lbnQ7XG4gIF9wb3BvdmVyVGl0bGU6IHN0cmluZztcbiAgX3BvcG92ZXJXaWR0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAgRGVmaW5lcyB0aGUgY2xlYXJCdXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBjbGVhckJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgRGVmaW5lcyB0aGUgY2hlY2tib3guXG4gICAqL1xuICBASW5wdXQoKVxuICBjaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3RDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGxpc3RDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2VtcHR5VGVtcGxhdGUnKVxuICBwcml2YXRlIF9jb250ZW50RW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgZW1wdHlUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEVtcHR5VGVtcGxhdGU7XG4gIH1cblxuICBfaXNBY3Rpb25TaGVldDogYm9vbGVhbiA9IGZhbHNlO1xuICBfZm9yY2VGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBfbG9hZGluZ09wdGlvbnMgPSB7XG4gICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnbGF5b3V0LmxvYWRpbmcudGV4dCcpLFxuICB9O1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF96b25lOiBOZ1pvbmUsIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtKSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIF9jZHIpO1xuICAgIHRoaXMuX2lzQWN0aW9uU2hlZXQgPSB0aGlzLl9wbGF0Zm9ybS5pcygnU00nKTtcbiAgICB0aGlzLl9wbGF0Zm9ybS5yZXNpemUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2lzQWN0aW9uU2hlZXQgPSB0aGlzLl9wbGF0Zm9ybS5pcygnU00nKTtcbiAgICAgIHRoaXMucG9wb3Zlci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9kZXRlY3RQb3B1cFNpemUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgX2hhbmRsZUlucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnRvZ2dsZSgpO1xuICB9XG5cbiAgb25Jbml0KCkge1xuICAgIHN1cGVyLm9uSW5pdCgpO1xuICAgIHRoaXMuX3RhcmdldCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuX3VwZGF0ZVBvcHVwVGl0bGUoKTtcbiAgfVxuXG4gIG9uVmlld0luaXQoKSB7XG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xuICAgIHRoaXMuX2RldGVjdFBvcHVwU2l6ZSgpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICBzdXBlci5yZWZyZXNoKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVQb3B1cFRpdGxlKCkge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggfHwgMDtcbiAgICAvL3RoaXMuX3BvcG92ZXJUaXRsZSA9IGNvdW50ID4gMSA/IGAoJHtjb3VudH0pIGl0ZW1zIHNlbGVjdGVkYCA6ICh0aGlzLnBsYWNlaG9sZGVyIHx8IEFYVHJhbnNsYXRvci5nZXQoJ3NlbGVjdGJveC5wb3BvdmVyLnRpdGxlJykpO1xuICAgIHRoaXMuX3BvcG92ZXJUaXRsZSA9IHRoaXMucGxhY2Vob2xkZXIgfHwgQVhUcmFuc2xhdG9yLmdldCgnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFBvcHVwU2l6ZSgpIHtcbiAgICB0aGlzLl9wb3BvdmVyV2lkdGggPSB0aGlzLl9pc0FjdGlvblNoZWV0ID8gMCA6IHRoaXMuX3RhcmdldC5vZmZzZXRXaWR0aDtcbiAgfVxuXG4gIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtKTtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX2hhbmRsZUxpc3RTY3JvbGwoZTogRXZlbnQpIHtcbiAgICBjb25zdCBsaXN0ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgaWYgKGxpc3Quc2Nyb2xsVG9wIDwgbGlzdC5zY3JvbGxIZWlnaHQgLSBsaXN0LmNsaWVudEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mZXRjaERhdGEoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRm9yTG9hZERhdGEoKSB7XG4gICAgY29uc3QgbGlzdDogYW55ID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubG9hZGVkQ291bnQgPCB0aGlzLnRvdGFsQ291bnQgJiYgbGlzdC5zY3JvbGxIZWlnaHQgPCBsaXN0LnBhcmVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICogMS41KSB7XG4gICAgICB0aGlzLl9mZXRjaERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBfb25EYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLnBvcG92ZXIuaXNPcGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2hlY2tGb3JMb2FkRGF0YSgpO1xuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuX2ZvcmNlRm9jdXMpIHtcbiAgICAgICAgICB0aGlzLl9mb2N1c1NlbGVjdGVkSXRlbSgpO1xuICAgICAgICAgIHRoaXMuX2ZvcmNlRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb2N1c1NlYXJjaEJveCgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICBfb25WYWx1ZUNoYW5nZWQob2xkVmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueSkge1xuICAgIHN1cGVyLl9vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgX2hhbmRsZU9uUmVtb3ZlSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xuICAgIHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgX2hhbmRsZUJhZGdlUmVtb3ZlKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGlzTGV0dGVyID0gbmV3IFJlZ0V4cCgvW2EtekEtWjAtOVxcLV0vKS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKSk7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScgJiYgZS50eXBlID09PSAna2V5ZG93bicgJiYgKCh0aGlzLmFsbG93TnVsbCA9PT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkgfHwgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcbiAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICgoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJyB8fCBlLmNvZGUgPT09ICdTcGFjZScpICYmICF0aGlzLnBvcG92ZXIuaXNPcGVuICYmIGUudHlwZSA9PT0gJ2tleWRvd24nKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgICBpZiAoZS5jdHJsS2V5IHx8IGUuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbUJ5TmF2KGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGlzTGV0dGVyKSB7XG4gICAgICB0aGlzLnRleHQgPSBlLmtleTtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIF9oYW5kbGVQb3BvdmVyS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSA9PSAnSU5QVVQnICYmIFsnU3BhY2UnLCAnQmFja3NwYWNlJ10uaW5jbHVkZXMoZS5jb2RlKSkgcmV0dXJuO1xuICAgIGlmICgoZS5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGUua2V5ID09PSAnQXJyb3dVcCcpICYmIHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgdGhpcy5fZm9jdXNJdGVtQnlOYXYoZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScgJiYgKCh0aGlzLmFsbG93TnVsbCA9PT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkgfHwgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcbiAgICAgIHRoaXMuaXNVc2VySW5wdXQgPSB0cnVlO1xuICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdTcGFjZScgfHwgZS5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBmb2N1c2VkSXRlbUlkID0gdGhpcy5saXN0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5heC1zdGF0ZS1mb2N1cycpPy5kYXRhc2V0Py5pZDtcbiAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gZmluZExhc3QodGhpcy5mbGF0SXRlbXMsIFt0aGlzLnZhbHVlRmllbGQsIGZvY3VzZWRJdGVtSWRdKTtcbiAgICAgIGlmIChmb2N1c2VkSXRlbSkge1xuICAgICAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChmb2N1c2VkSXRlbSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdChmb2N1c2VkSXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhmb2N1c2VkSXRlbSk7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdUYWInKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIF9oYW5kbGVQb3B1cE9uT3BlbmVkKGUpIHtcbiAgICB0aGlzLl9kZXRlY3RQb3B1cFNpemUoKTtcbiAgICB0aGlzLnBvcG92ZXIuZm9jdXMoKTtcbiAgICBpZiAodGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuX2ZvcmNlRm9jdXMgPSB0cnVlO1xuICAgICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZvY3VzU2VsZWN0ZWRJdGVtKCk7XG4gICAgfVxuICAgIHRoaXMuX2ZvY3VzU2VhcmNoQm94KCk7XG4gIH1cblxuICBfaGFuZGxlUG9wdXBPbkNsb3NlZChlKSB7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXNTZWFyY2hCb3goKSB7XG4gICAgaWYgKHRoaXMuX3NlYXJjaEJveCAmJiAoIXRoaXMuX2lzQWN0aW9uU2hlZXQgfHwgdGhpcy5fc2VhcmNoQm94LnNlYXJjaEV4cCkpIHtcbiAgICAgIHRoaXMuX3NlYXJjaEJveC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZvY3VzSXRlbUJ5TmF2KHNpZ246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBmbiA9IHMgPT4gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihzKTtcbiAgICBjb25zdCBpdGVtRGl2OiBhbnkgPSBmbihgLmF4LWxpc3QtaXRlbS5heC1zdGF0ZS1mb2N1c2ApIHx8IGZuKGAuYXgtbGlzdC1pdGVtLmF4LXN0YXRlLXNlbGVjdGVkYCkgfHwgZm4oYC5heC1saXN0LWl0ZW1gKTtcbiAgICBsZXQgbmV4dCA9IChzaWduID09IDEgPyBpdGVtRGl2Lm5leHRFbGVtZW50U2libGluZyA6IGl0ZW1EaXYucHJldmlvdXNFbGVtZW50U2libGluZykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzSXRlbUVsZW1lbnQobmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGl0ZW1EaXYuY2xvc2VzdCgnLmF4LWxpc3QtaXRlbS1ncm91cCcpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBjb25zdCBsaXMgPSAoc2lnbiA9PSAxID8gcGFyZW50Lm5leHRFbGVtZW50U2libGluZyA6IHBhcmVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKT8ucXVlcnlTZWxlY3RvckFsbCgnbGknKTtcbiAgICAgICAgY29uc3QgYSA9IHNpZ24gPT0gMSA/IGZpcnN0KGxpcykgOiBsYXN0KGxpcyk7XG4gICAgICAgIGlmIChhKSB7XG4gICAgICAgICAgdGhpcy5fZm9jdXNJdGVtRWxlbWVudChhIGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9mb2N1c1NlbGVjdGVkSXRlbSgpIHtcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IGZuID0gcyA9PiBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KHMpO1xuICAgICAgY29uc3QgaXRlbURpdiA9IGZuKGAuYXgtbGlzdC1pdGVtLmF4LXN0YXRlLXNlbGVjdGVkYCkgfHwgZm4oYC5heC1saXN0LWl0ZW1gKTtcbiAgICAgIGlmIChpdGVtRGl2KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzSXRlbUVsZW1lbnQoaXRlbURpdik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9mb2N1c0l0ZW1FbGVtZW50KGVsOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgbGlzdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtbGlzdC1pdGVtJykuZm9yRWFjaChjID0+IHtcbiAgICAgICAgaWYgKGMgPT0gZWwpIHtcbiAgICAgICAgICBjLmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLWZvY3VzJyk7XG4gICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ2F1dG8nIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGMuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtZm9jdXMnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuX2lzQWN0aW9uU2hlZXQgJiYgdGhpcy5fc2VhcmNoQm94KSB0aGlzLl9zZWFyY2hCb3guZm9jdXMoKTtcbiAgICAgIGVsc2UgZWwuZm9jdXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbUJ5TmF2KHNpZ246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IF9sYXN0OiBhbnkgPSBsYXN0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgbGV0IGkgPSAwO1xuICAgIGlmIChfbGFzdCkge1xuICAgICAgaSA9IGZpbmRMYXN0SW5kZXgodGhpcy5mbGF0SXRlbXMsIFt0aGlzLnZhbHVlRmllbGQsIF9sYXN0W3RoaXMudmFsdWVGaWVsZF1dKTtcbiAgICB9XG4gICAgaSArPSBzaWduO1xuICAgIGxldCBuZXh0ID0gbnRoPGFueT4odGhpcy5mbGF0SXRlbXMsIGkpO1xuICAgIHdoaWxlIChuZXh0Py5jaGlsZHJlbiAmJiBuZXh0Py5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGkgKz0gc2lnbjtcbiAgICAgIG5leHQgPSBudGg8YW55Pih0aGlzLmZsYXRJdGVtcywgaSk7XG4gICAgfVxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW1zKG5leHQpO1xuICAgIH0gZWxzZSBpZiAobmV4dCA9PSBudWxsICYmIHNpZ24gPT0gMSkge1xuICAgICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoKGV4cDogc3RyaW5nKSB7XG4gICAgdGhpcy5lbXB0eSgpO1xuICAgIHRoaXMuX2ZvcmNlRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xuICB9XG5cbiAgX2ZldGNoRGF0YSgpIHtcbiAgICBzdXBlci5fZmV0Y2hEYXRhKHsgc2VhcmNoUXVlcnk6IHRoaXMuX3NlYXJjaEJveD8uc2VhcmNoRXhwIH0pO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj4gPC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImF4LWRyb3Bkb3duLWNvbnRlbnRcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwiX2hhbmRsZUlucHV0Q2xpY2tFdmVudCgkZXZlbnQpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uXCJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aDsgZWxzZSBzaG93UGxhY2Vob2xkZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IHRoZW4gc2luZ2xlU2VsZWN0ZWRUZW1wbGF0ZTsgZWxzZSBtdWx0aXBsZVNlbGVjdGVkVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlU2VsZWN0ZWRUZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XG4gICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlU2VsZWN0ZWRUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdC1ib3gtbXVsdGktc2VsZWN0aW9uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LW11bHRpLWl0ZW1cIj5cbiAgICAgICAgICAgICAge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2xvc2VcIiAoY2xpY2spPVwiX2hhbmRsZUJhZGdlUmVtb3ZlKCRldmVudCwgaXRlbSlcIj4gPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3Nob3dQbGFjZWhvbGRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1wbGFjZWhvbGRlclwiIHJvbGU9XCJ0ZXh0Ym94XCIgYXJlYS1yZWFkb25seT1cInRydWVcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG48YnV0dG9uXG4gIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gIFt0YWJJbmRleF09XCItMVwiXG4gICpuZ0lmPVwidmFsdWUgJiYgY2xlYXJCdXR0b24gJiYgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cbiAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2xvc2VcIj48L3NwYW4+XG48L2J1dHRvbj5cbjxidXR0b25cbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3RhYkluZGV4XT1cIi0xXCJcbiAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiXG4gIChjbGljayk9XCJfaGFuZGxlQXJyb3dDbGlja0V2ZW50KCRldmVudClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZyAmJiAhdGhpcy5wb3BvdmVyLmlzT3BlbjsgZWxzZSBpY29uVGVtcGxhdGVcIj5cbiAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjaWNvblRlbXBsYXRlPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWxlZnQgYXgtdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnLWF4LXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgJ2F4LXJvdGF0aW9uLTkwJzogaXNPcGVuXG4gICAgICB9XCI+PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuPC9idXR0b24+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbjxheC1wb3BvdmVyXG4gIFt0YXJnZXRdPVwiX3RhcmdldFwiXG4gIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXG4gIFtvcGVuVHJpZ2dlcl09XCInbWFudWFsJ1wiXG4gIFtjbG9zZVRyaWdnZXJdPVwiJ2NsaWNrb3V0J1wiXG4gIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcbiAgKG9uT3BlbmVkKT1cIl9oYW5kbGVQb3B1cE9uT3BlbmVkKCRldmVudClcIlxuICAob25DbG9zZWQpPVwiX2hhbmRsZVBvcHVwT25DbG9zZWQoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIlxuICAgIChrZXlkb3duKT1cIl9oYW5kbGVQb3BvdmVyS2V5ZG93bigkZXZlbnQpXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBjZGtUcmFwRm9jdXNcbiAgICBbY2xhc3MuYXgtb3ZlcmxheS1hY3Rpb25zaGVldF09XCJfaXNBY3Rpb25TaGVldFwiXG4gICAgW2NsYXNzLmF4LWZ1bGxdPVwiX3NlYXJjaEJveCB8fCBpc0xhenlcIlxuICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiX3BvcG92ZXJXaWR0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1saXN0XCI+XG4gICAgICA8YXgtaGVhZGVyICpuZ0lmPVwiX2lzQWN0aW9uU2hlZXRcIj5cbiAgICAgICAgPGF4LXRpdGxlPnt7IF9wb3BvdmVyVGl0bGUgfX08L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJheC1pY29uXCJcbiAgICAgICAgICBbaWNvbl09XCJtdWx0aXBsZSA/ICdheC1pY29uLWRvbmUgIWF4LXRleHQtcHJpbWFyeS01MDAnIDogJ2F4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1zZWFyY2gtYm94LWNvbnRhaW5lclwiIFtjbGFzcy5heC1zdGF0ZS1oaWRkZW5dPVwiIV9zZWFyY2hCb3hcIiBbY2RrVHJhcEZvY3VzXT1cIl9zZWFyY2hCb3ggIT0gbnVsbFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zZWFyY2gtYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udGVudCBheC1saXN0LWl0ZW1zLWNvbnRhaW5lciBheC1kZWZhdWx0XCIgKHNjcm9sbCk9XCJfaGFuZGxlTGlzdFNjcm9sbCgkZXZlbnQpXCIgI2xpc3RDb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6IHsgbGlzdDogZGlzcGxheUl0ZW1zIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RtcFRyZWUgbGV0LWxpc3Q9XCJsaXN0XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdDsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogX3RyYWNrQnlGdW5jdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGU7IGVsc2UgZGVmdWFsdFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1saXN0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIml0ZW1bdGhpcy52YWx1ZUZpZWxkXVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgZGlyZWN0aW9uOiBkaXJlY3Rpb24gfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZ1YWx0VGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMDsgZWxzZSB0bXBJdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbS1ncm91cFwiIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0bXBUcmVlOyBjb250ZXh0OiB7IGxpc3Q6IGl0ZW0uY2hpbGRyZW4gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RtcEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlwbGU7IGVsc2UgbXVsdGlwbGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1saXN0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlT25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIml0ZW1bdGhpcy52YWx1ZUZpZWxkXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tZG9uZSBheC1zZWxlY3RlZC1pY29uXCIgKm5nSWY9XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1saXN0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtY2hlY2tib3hdPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJpdGVtW3RoaXMudmFsdWVGaWVsZF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtY2hlY2tib3gtbGFiZWxcIj57eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWRvbmUgYXgtc2VsZWN0ZWQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSkgJiYgIWNoZWNrYm94XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7IGVsc2UgZWxzZUxvYWRpbmdUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VMb2FkaW5nVGVtcGxhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC00XCI+XG4gICAgICAgICAgICAgIDxheC1sb2FkaW5nIFtvcHRpb25zXT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC00XCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgJ2NvbW1vbi5uby1yZXN1bHQtZm9yJ1xuICAgICAgICAgICAgICAgICAgICB8IHRyYW5zXG4gICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4cDogdGhpcy5fc2VhcmNoQm94ID8gdGhpcy5fc2VhcmNoQm94LnNlYXJjaEV4cCA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCI+PC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJheC1saXN0LWl0ZW1zLWNvbnRhaW5lciBheC12ZXJ0aWNhbCBheC1kZWZhdWx0XCIgW2NsYXNzLmF4LWZ1bGxdPVwiX2lzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPmZvb3RlcjwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2F4LXBvcG92ZXI+XG4iXX0=