@acorex/components 16.18.16 → 16.18.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/esm2022/lib/base/element.class.mjs +2 -8
  2. package/esm2022/lib/button/button.component.mjs +3 -3
  3. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +3 -9
  4. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +1 -1
  5. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +1 -1
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  7. package/esm2022/lib/color-picker/color-picker.component.mjs +3 -3
  8. package/esm2022/lib/context-menu/context-menu.component.mjs +3 -9
  9. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +3 -9
  10. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +1 -1
  11. package/esm2022/lib/data-list/list/list.component.mjs +3 -3
  12. package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
  13. package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
  14. package/esm2022/lib/fieldset/fieldset.component.mjs +3 -10
  15. package/esm2022/lib/form-group/form-group.component.mjs +3 -3
  16. package/esm2022/lib/label/label.component.mjs +3 -4
  17. package/esm2022/lib/loading/loading-indicator.component.mjs +3 -9
  18. package/esm2022/lib/loading/loading-panel.component.mjs +3 -9
  19. package/esm2022/lib/menu/menu.component.mjs +3 -9
  20. package/esm2022/lib/number-box/number-box.component.mjs +3 -3
  21. package/esm2022/lib/panel-box/panel-box.component.mjs +3 -9
  22. package/esm2022/lib/password-box/password-box.component.mjs +3 -3
  23. package/esm2022/lib/popover/popover.component.mjs +3 -10
  24. package/esm2022/lib/popup/popup.component.mjs +7 -9
  25. package/esm2022/lib/popup/popup.service.mjs +2 -6
  26. package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
  27. package/esm2022/lib/search-bar/search-bar.component.mjs +3 -9
  28. package/esm2022/lib/searchbox/searchbox.component.mjs +3 -3
  29. package/esm2022/lib/selectbox/selectbox.component.mjs +3 -3
  30. package/esm2022/lib/selection-list/selection-list.component.mjs +3 -3
  31. package/esm2022/lib/switch/switch.component.mjs +7 -8
  32. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +1 -3
  33. package/esm2022/lib/tab-page/tab-page-host.component.mjs +6 -7
  34. package/esm2022/lib/tab-page/tab-page.service.mjs +3 -7
  35. package/esm2022/lib/tab-strip/tab-strip.component.mjs +3 -9
  36. package/esm2022/lib/tab-view/tab-view.component.mjs +4 -10
  37. package/esm2022/lib/tab-view/tab.component.mjs +3 -9
  38. package/esm2022/lib/textarea/textarea.component.mjs +5 -9
  39. package/esm2022/lib/textbox/textbox.component.mjs +5 -9
  40. package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
  41. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +3 -9
  42. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +18 -27
  43. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +3 -9
  44. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +3 -9
  45. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +8 -23
  46. package/esm2022/lib/toolbar/toolbar.component.mjs +5 -11
  47. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +3 -3
  48. package/esm2022/lib/tree-view/tree-view.component.mjs +3 -3
  49. package/esm2022/lib/upload-file/upload-file.component.mjs +3 -3
  50. package/fesm2022/acorex-components.mjs +117 -269
  51. package/fesm2022/acorex-components.mjs.map +1 -1
  52. package/lib/base/element.class.d.ts +1 -3
  53. package/lib/calendar/calendar-box/calendar-box.component.d.ts +1 -3
  54. package/lib/context-menu/context-menu.component.d.ts +1 -3
  55. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +1 -3
  56. package/lib/fieldset/fieldset.component.d.ts +1 -3
  57. package/lib/loading/loading-indicator.component.d.ts +1 -3
  58. package/lib/loading/loading-panel.component.d.ts +1 -3
  59. package/lib/menu/menu.component.d.ts +1 -3
  60. package/lib/panel-box/panel-box.component.d.ts +1 -3
  61. package/lib/popover/popover.component.d.ts +1 -3
  62. package/lib/popup/popup.service.d.ts +0 -2
  63. package/lib/search-bar/search-bar.component.d.ts +1 -3
  64. package/lib/tab-page/tab-page.service.d.ts +0 -2
  65. package/lib/tab-strip/tab-strip.component.d.ts +1 -3
  66. package/lib/tab-view/tab-view.component.d.ts +1 -3
  67. package/lib/tab-view/tab.component.d.ts +1 -3
  68. package/lib/toast/toast-message/toast-message.component.d.ts +1 -3
  69. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +4 -6
  70. package/lib/toolbar/menu/toolbar-menu.component.d.ts +1 -3
  71. package/lib/toolbar/search/toolbar-search.component.d.ts +1 -3
  72. package/lib/toolbar/title/toolbar-title.component.d.ts +2 -3
  73. package/lib/toolbar/toolbar.component.d.ts +1 -3
  74. package/package.json +1 -1
@@ -76,13 +76,13 @@ export class AXCheckBoxComponent extends AXValidatableComponent {
76
76
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXCheckBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
77
77
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: { readonly: "readonly", disabled: "disabled", size: "size", label: "label", tabIndex: "tabIndex", indeterminate: "indeterminate", useTreeView: "useTreeView", value: "value" }, outputs: { onValueChanged: "onValueChanged", valueChange: "valueChange", onClick: "onClick" }, providers: [
78
78
  { provide: AXValidatableComponent, useExisting: AXCheckBoxComponent },
79
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\n (click)=\"handleClick($event)\">\n {{ label }}\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\n [disabled]=\"disabled || readonly\" />\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\n\n</label> -->\n\n\n<!-- [(ngModel)]=\"value\" -->\n<!-- (click)=\"handleClick($event)\" -->\n\n<label class=\"ax-checkbox-container\" [ngClass]=\"[{'disabled': disabled, 'readonly': readonly}, axClass]\"\n [attr.for]=\"uid\" [attr.id]=\"axId\">\n\n <input #input class=\"ax-checkbox\" type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [class.checked]=\"value\"\n [checked]=\"value\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\" (click)=\"handleClick($event)\"\n [disabled]=\"disabled || readonly\" />\n\n <span>{{ label ? label : '&nbsp;' }}</span>\n</label>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
79
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\n (click)=\"handleClick($event)\">\n {{ label }}\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\n [disabled]=\"disabled || readonly\" />\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\n\n</label> -->\n\n\n<!-- [(ngModel)]=\"value\" -->\n<!-- (click)=\"handleClick($event)\" -->\n\n<label class=\"ax-checkbox-container\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\">\n\n <input #input class=\"ax-checkbox\" type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [class.checked]=\"value\"\n [checked]=\"value\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\" (click)=\"handleClick($event)\"\n [disabled]=\"disabled || readonly\" />\n\n\n <span>{{ label ? label : '&nbsp;' }}</span>\n</label>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
82
82
  type: Component,
83
83
  args: [{ selector: 'ax-check-box', encapsulation: ViewEncapsulation.None, providers: [
84
84
  { provide: AXValidatableComponent, useExisting: AXCheckBoxComponent },
85
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\n (click)=\"handleClick($event)\">\n {{ label }}\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\n [disabled]=\"disabled || readonly\" />\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\n\n</label> -->\n\n\n<!-- [(ngModel)]=\"value\" -->\n<!-- (click)=\"handleClick($event)\" -->\n\n<label class=\"ax-checkbox-container\" [ngClass]=\"[{'disabled': disabled, 'readonly': readonly}, axClass]\"\n [attr.for]=\"uid\" [attr.id]=\"axId\">\n\n <input #input class=\"ax-checkbox\" type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [class.checked]=\"value\"\n [checked]=\"value\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\" (click)=\"handleClick($event)\"\n [disabled]=\"disabled || readonly\" />\n\n <span>{{ label ? label : '&nbsp;' }}</span>\n</label>" }]
85
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\n (click)=\"handleClick($event)\">\n {{ label }}\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\n [disabled]=\"disabled || readonly\" />\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\n\n</label> -->\n\n\n<!-- [(ngModel)]=\"value\" -->\n<!-- (click)=\"handleClick($event)\" -->\n\n<label class=\"ax-checkbox-container\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\">\n\n <input #input class=\"ax-checkbox\" type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [class.checked]=\"value\"\n [checked]=\"value\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\" (click)=\"handleClick($event)\"\n [disabled]=\"disabled || readonly\" />\n\n\n <span>{{ label ? label : '&nbsp;' }}</span>\n</label>" }]
86
86
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { input: [{
87
87
  type: ViewChild,
88
88
  args: ['input', { static: true }]
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
109
109
  }], value: [{
110
110
  type: Input
111
111
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxzQkFBc0IsR0FDdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLHNCQUFzQixDQUFDOzs7QUFFakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQXVCO0lBQzlELEtBQUssQ0FBVztDQUNqQjtBQVdELE1BQU0sT0FBTyxtQkFDWCxTQUFRLHNCQUFzQjtJQThCUjtJQUFnQztJQXhCaEIsS0FBSyxDQUErQjtJQUcxRSxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFHMUIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUduQixRQUFRLEdBQVcsQ0FBQyxDQUFDO0lBR3JCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFHL0IsV0FBVyxDQUFRO0lBRW5CLEtBQUssS0FBVSxDQUFDO0lBQ2hCLFlBQXNCLEdBQXNCLEVBQVUsR0FBZTtRQUNuRSxLQUFLLEVBQUUsQ0FBQztRQURZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUVyRSxDQUFDO0lBQ0QsUUFB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O3NCQURWLE1BQU07Z0JBSVAsT0FBTztzQkFETixNQUFNO2dCQVVJLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlQ29tcG9uZW50LFxuICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICBBWEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBBWENoZWNrQm94SXRlbUNsaWNrIGV4dGVuZHMgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD4ge1xuICB2YWx1ZT86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNoZWNrLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ2hlY2tCb3hDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2hlY2tCb3hDb21wb25lbnRcbiAgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICAgIEFYQmFzZUNvbXBvbmVudCxcbiAgICBBWEJhc2VWYWx1ZUNvbXBvbmVudDxib29sZWFuPlxue1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHVzZVRyZWVWaWV3OiBmYWxzZTtcblxuICBmb2N1cygpOiB2b2lkIHt9XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgLy8gVmFsdWVcbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGJvb2xlYW4+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhWYWx1ZUV2ZW50PGJvb2xlYW4+XG4gID4oKTtcbiAgQE91dHB1dCgpXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDaGVja0JveEl0ZW1DbGljaz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhDaGVja0JveEl0ZW1DbGljaz4oKTtcblxuICBwcml2YXRlIF92YWx1ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodiAhPSB0aGlzLl92YWx1ZSAmJiB2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgb2xkVmFsdWU6IG9sZCxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kZWxDaGFuZ2UoZSkge1xuICAvLyAgIGNvbnN0IHZhbCA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gIC8vICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgLy8gfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMudXNlVHJlZVZpZXcgJiYgdGhpcy52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAvL1RPRE86IGNoZWNrIGludGVybWRkaWF0ZTtcbiAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaHRtbEV2ZW50OiBlLFxuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyAgfSwgMTAwKTtcbiAgfVxufVxuIiwiPCEtLSA8bGFiZWwgY2xhc3M9XCJheCBjaGVja2JveCB7e3NpemV9fVwiIGZvcj1cInt7dWlkfX1cIiBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZCc6IGRpc2FibGVkLCAncmVhZG9ubHknOiByZWFkb25seSB9XCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj5cbiAge3sgbGFiZWwgfX1cbiAgPGlucHV0ICNpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInt7dWlkfX1cIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbY2hlY2tlZF09XCJ2YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgLz5cbiAgPHNwYW4gY2xhc3M9XCJjaGVja21hcmtcIiBbbmdDbGFzc109XCJ7J2luZGV0ZXJtaW5hdGUnOiBpbmRldGVybWluYXRlICYmIHZhbHVlID09IG51bGx9XCI+PC9zcGFuPlxuXG48L2xhYmVsPiAtLT5cblxuXG48IS0tIFsobmdNb2RlbCldPVwidmFsdWVcIiAtLT5cbjwhLS0gKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAgLS0+XG5cbjxsYWJlbCBjbGFzcz1cImF4LWNoZWNrYm94LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIlt7J2Rpc2FibGVkJzogZGlzYWJsZWQsICdyZWFkb25seSc6IHJlYWRvbmx5fSwgYXhDbGFzc11cIlxuICBbYXR0ci5mb3JdPVwidWlkXCIgW2F0dHIuaWRdPVwiYXhJZFwiPlxuXG4gIDxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1jaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwie3t1aWR9fVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtjbGFzcy5jaGVja2VkXT1cInZhbHVlXCJcbiAgICBbY2hlY2tlZF09XCJ2YWx1ZVwiIFtuZ0NsYXNzXT1cInsnaW5kZXRlcm1pbmF0ZSc6IGluZGV0ZXJtaW5hdGUgJiYgdmFsdWUgPT0gbnVsbH1cIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgLz5cblxuICA8c3Bhbj57eyBsYWJlbCA/IGxhYmVsIDogJyZuYnNwOycgfX08L3NwYW4+XG48L2xhYmVsPiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLTCxzQkFBc0IsR0FDdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLHNCQUFzQixDQUFDOzs7QUFFakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQXVCO0lBQzlELEtBQUssQ0FBVztDQUNqQjtBQVdELE1BQU0sT0FBTyxtQkFDWCxTQUFRLHNCQUFzQjtJQThCUjtJQUFnQztJQXhCaEIsS0FBSyxDQUErQjtJQUcxRSxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFHMUIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUduQixRQUFRLEdBQVcsQ0FBQyxDQUFDO0lBR3JCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFHL0IsV0FBVyxDQUFRO0lBRW5CLEtBQUssS0FBVSxDQUFDO0lBQ2hCLFlBQXNCLEdBQXNCLEVBQVUsR0FBZTtRQUNuRSxLQUFLLEVBQUUsQ0FBQztRQURZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUVyRSxDQUFDO0lBQ0QsUUFB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O3NCQURWLE1BQU07Z0JBSVAsT0FBTztzQkFETixNQUFNO2dCQVVJLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlQ29tcG9uZW50LFxuICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICBBWEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBBWENoZWNrQm94SXRlbUNsaWNrIGV4dGVuZHMgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD4ge1xuICB2YWx1ZT86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNoZWNrLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ2hlY2tCb3hDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2hlY2tCb3hDb21wb25lbnRcbiAgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICAgIEFYQmFzZUNvbXBvbmVudCxcbiAgICBBWEJhc2VWYWx1ZUNvbXBvbmVudDxib29sZWFuPlxue1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHVzZVRyZWVWaWV3OiBmYWxzZTtcblxuICBmb2N1cygpOiB2b2lkIHt9XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgLy8gVmFsdWVcbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGJvb2xlYW4+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhWYWx1ZUV2ZW50PGJvb2xlYW4+XG4gID4oKTtcbiAgQE91dHB1dCgpXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8vXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDaGVja0JveEl0ZW1DbGljaz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8QVhDaGVja0JveEl0ZW1DbGljaz4oKTtcblxuICBwcml2YXRlIF92YWx1ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodiAhPSB0aGlzLl92YWx1ZSAmJiB2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgb2xkVmFsdWU6IG9sZCxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kZWxDaGFuZ2UoZSkge1xuICAvLyAgIGNvbnN0IHZhbCA9IGUudGFyZ2V0LmNoZWNrZWQ7XG4gIC8vICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgLy8gfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMudXNlVHJlZVZpZXcgJiYgdGhpcy52YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAvL1RPRE86IGNoZWNrIGludGVybWRkaWF0ZTtcbiAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaHRtbEV2ZW50OiBlLFxuICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyAgfSwgMTAwKTtcbiAgfVxufVxuIiwiPCEtLSA8bGFiZWwgY2xhc3M9XCJheCBjaGVja2JveCB7e3NpemV9fVwiIGZvcj1cInt7dWlkfX1cIiBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZCc6IGRpc2FibGVkLCAncmVhZG9ubHknOiByZWFkb25seSB9XCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj5cbiAge3sgbGFiZWwgfX1cbiAgPGlucHV0ICNpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInt7dWlkfX1cIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbY2hlY2tlZF09XCJ2YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgLz5cbiAgPHNwYW4gY2xhc3M9XCJjaGVja21hcmtcIiBbbmdDbGFzc109XCJ7J2luZGV0ZXJtaW5hdGUnOiBpbmRldGVybWluYXRlICYmIHZhbHVlID09IG51bGx9XCI+PC9zcGFuPlxuXG48L2xhYmVsPiAtLT5cblxuXG48IS0tIFsobmdNb2RlbCldPVwidmFsdWVcIiAtLT5cbjwhLS0gKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAgLS0+XG5cbjxsYWJlbCBjbGFzcz1cImF4LWNoZWNrYm94LWNvbnRhaW5lclwiIGZvcj1cInt7dWlkfX1cIiBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZCc6IGRpc2FibGVkLCAncmVhZG9ubHknOiByZWFkb25seSB9XCI+XG5cbiAgPGlucHV0ICNpbnB1dCBjbGFzcz1cImF4LWNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJ7e3VpZH19XCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2NsYXNzLmNoZWNrZWRdPVwidmFsdWVcIlxuICAgIFtjaGVja2VkXT1cInZhbHVlXCIgW25nQ2xhc3NdPVwieydpbmRldGVybWluYXRlJzogaW5kZXRlcm1pbmF0ZSAmJiB2YWx1ZSA9PSBudWxsfVwiIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiAvPlxuXG5cbiAgPHNwYW4+e3sgbGFiZWwgPyBsYWJlbCA6ICcmbmJzcDsnIH19PC9zcGFuPlxuPC9sYWJlbD4iXX0=
@@ -56,13 +56,13 @@ export class AXColorPickerComponent extends AXColorBoxComponent {
56
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXColorPickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
57
57
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXColorPickerComponent, selector: "ax-color-picker", inputs: { placeholder: "placeholder", showClear: "showClear", label: "label", readonly: "readonly", disabled: "disabled", size: "size", rtl: "rtl", validation: "validation" }, host: { styleAttribute: "width: 100%" }, providers: [
58
58
  { provide: AXValidatableComponent, useExisting: AXColorPickerComponent },
59
- ], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down #dropdown [fitParent]=\"false\" [size]=\"size\" [disabled]=\"disabled\" [rtl]=\"rtl\" [attr.id]=\"axId\"\n [ngClass]=\"axClass\">\n\n <ng-container start>\n <ng-content select=\"[start]\"></ng-content>\n </ng-container>\n\n <ng-container header>\n <div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <ng-container *ngIf=\"value; else elseTemplate\">\n <div [style.background-color]=\"value\" [style.color]=\"findTextColor(value)\"\n style=\"padding:0px 5px;width: 100%;display: flex;align-items: center;\">\n {{value}}&nbsp;\n </div>\n </ng-container>\n <ng-template #elseTemplate>\n {{placeholder}}&nbsp;\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container end>\n <ng-content select=\"[end]\"></ng-content>\n </ng-container>\n\n <ng-container panel>\n <ax-color-box [(value)]=\"value\" (onColorSelect)=\"handleItemClick($event)\"></ax-color-box>\n </ng-container>\n</ax-drop-down>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading", "dropdownWidth"], outputs: ["dropdownToggle", "onButtonClick"] }, { kind: "component", type: i3.AXColorBoxComponent, selector: "ax-color-box", inputs: ["value"], outputs: ["onColorSelect", "valueChange"] }] });
59
+ ], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down #dropdown fitParent=\"false\" [size]=\"size\" [disabled]=\"disabled\" [rtl]=\"rtl\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container header>\n\n <div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <ng-container *ngIf=\"value; else elseTemplate\">\n <div [style.background-color]=\"value\" [style.color]=\"findTextColor(value)\"\n style=\"padding:0px 5px;width: 100%;display: flex;align-items: center;\">\n {{value}}&nbsp;</div>\n </ng-container>\n <ng-template #elseTemplate>\n {{placeholder}}&nbsp;\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container end>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-box [(value)]=\"value\" \n (onColorSelect)=\"handleItemClick($event)\"></ax-color-box>\n </ng-container>\n</ax-drop-down>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading", "dropdownWidth"], outputs: ["dropdownToggle", "onButtonClick"] }, { kind: "component", type: i3.AXColorBoxComponent, selector: "ax-color-box", inputs: ["value"], outputs: ["onColorSelect", "valueChange"] }] });
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXColorPickerComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{ selector: 'ax-color-picker', providers: [
64
64
  { provide: AXValidatableComponent, useExisting: AXColorPickerComponent },
65
- ], host: { style: 'width: 100%' }, template: "<ax-drop-down #dropdown [fitParent]=\"false\" [size]=\"size\" [disabled]=\"disabled\" [rtl]=\"rtl\" [attr.id]=\"axId\"\n [ngClass]=\"axClass\">\n\n <ng-container start>\n <ng-content select=\"[start]\"></ng-content>\n </ng-container>\n\n <ng-container header>\n <div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <ng-container *ngIf=\"value; else elseTemplate\">\n <div [style.background-color]=\"value\" [style.color]=\"findTextColor(value)\"\n style=\"padding:0px 5px;width: 100%;display: flex;align-items: center;\">\n {{value}}&nbsp;\n </div>\n </ng-container>\n <ng-template #elseTemplate>\n {{placeholder}}&nbsp;\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container end>\n <ng-content select=\"[end]\"></ng-content>\n </ng-container>\n\n <ng-container panel>\n <ax-color-box [(value)]=\"value\" (onColorSelect)=\"handleItemClick($event)\"></ax-color-box>\n </ng-container>\n</ax-drop-down>" }]
65
+ ], host: { style: 'width: 100%' }, template: "<ax-drop-down #dropdown fitParent=\"false\" [size]=\"size\" [disabled]=\"disabled\" [rtl]=\"rtl\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container header>\n\n <div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <ng-container *ngIf=\"value; else elseTemplate\">\n <div [style.background-color]=\"value\" [style.color]=\"findTextColor(value)\"\n style=\"padding:0px 5px;width: 100%;display: flex;align-items: center;\">\n {{value}}&nbsp;</div>\n </ng-container>\n <ng-template #elseTemplate>\n {{placeholder}}&nbsp;\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container end>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-box [(value)]=\"value\" \n (onColorSelect)=\"handleItemClick($event)\"></ax-color-box>\n </ng-container>\n</ax-drop-down>" }]
66
66
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { dropdown: [{
67
67
  type: ViewChild,
68
68
  args: ['dropdown', { static: true }]
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
86
86
  }], validation: [{
87
87
  type: Input
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXdCLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLHNCQUFzQixFQUErRCxNQUFNLHVCQUF1QixDQUFDO0FBQzVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFXbEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQVd2QztJQVJwQixRQUFRLENBQXNCO0lBQ3JCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUzQixLQUFLLENBQVM7SUFFdkIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUVuQixZQUFvQixHQUFlO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUVuQyxDQUFDO0lBR0QsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBVTtJQUVsQixJQUFJLEdBQWtCLElBQUksQ0FBQztJQUczQixHQUFHLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUdsQyxrQkFBa0IsQ0FBZTtJQUVqQyxXQUFXLENBQWU7SUFFbEMsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxDQUFlO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUM3RyxDQUFDO0lBQ0wsQ0FBQztJQUdELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUNBQWlDO0lBRWpDLElBQUk7SUFFSixhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekUsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQXBFUSxzQkFBc0I7MkZBQXRCLHNCQUFzQixtUUFMcEI7WUFDUCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FDM0UsMEVBNEJhLFlBQVkseU1DekM5QixxNENBZ0NlOzsyRkRoQkYsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNJLGlCQUFpQixhQUVoQjt3QkFDUCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3FCQUMzRSxRQUNLLEVBQUUsS0FBSyxFQUFDLGFBQWEsRUFBRTsrRUFLN0IsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRTlCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBU04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlFLGtCQUFrQjtzQkFEekIsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU1qQyxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZUlucHV0Q29tcG9uZW50LCBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYQ29sb3JCb3hDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yLWJveC9jb2xvci1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29sb3JVdGlsLCBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtY29sb3ItcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb2xvclBpY2tlckNvbXBvbmVudCB9LFxuICAgIF0sXG4gICAgaG9zdDogeyBzdHlsZTond2lkdGg6IDEwMCUnIH1cbn0pXG5leHBvcnQgY2xhc3MgQVhDb2xvclBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFYQ29sb3JCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VJbnB1dENvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgZHJvcGRvd246IEFYRHJvcGRvd25Db21wb25lbnQ7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHNob3dDbGVhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIF90ZXh0OiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJ0bDogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpO1xuXG4gICAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY29udGVudFZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcblxuICAgIHByaXZhdGUgX3ZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uKCk6IEFYVmFsaWRhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGlvbiA9IHY7XG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucnRsID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHRoaXMudmFsaWRhdGlvbik7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGVWYWx1ZUNoYW5nZShjOiBzdHJpbmcpIHtcblxuICAgIC8vIH1cblxuICAgIGZpbmRUZXh0Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgICAgICBpZiAoIWNvbG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gJyMwMDAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhKEFYQ29sb3JVdGlsLmNvbnRyYXN0VG9XaGl0ZShjb2xvcikgPiAyLjApID8gJyMwMDAnIDogJyNmZmYnO1xuICAgIH1cblxuICAgIGhhbmRsZUl0ZW1DbGljayhlKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgICB9XG5cbn1cbiIsIjxheC1kcm9wLWRvd24gI2Ryb3Bkb3duIFtmaXRQYXJlbnRdPVwiZmFsc2VcIiBbc2l6ZV09XCJzaXplXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3J0bF09XCJydGxcIiBbYXR0ci5pZF09XCJheElkXCJcbiAgICBbbmdDbGFzc109XCJheENsYXNzXCI+XG5cbiAgICA8bmctY29udGFpbmVyIHN0YXJ0PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheCBmb3JtLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5pZF09XCJ1aWRcIiAjZmM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiICNjb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheCBmb3JtLWNvbnRyb2wgaW5wdXQge3tzaXplfX1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJ2YWx1ZVwiIFtzdHlsZS5jb2xvcl09XCJmaW5kVGV4dENvbG9yKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOjBweCA1cHg7d2lkdGg6IDEwMCU7ZGlzcGxheTogZmxleDthbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dmFsdWV9fSZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXJ9fSZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBlbmQ+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbmRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICAgICAgPGF4LWNvbG9yLWJveCBbKHZhbHVlKV09XCJ2YWx1ZVwiIChvbkNvbG9yU2VsZWN0KT1cImhhbmRsZUl0ZW1DbGljaygkZXZlbnQpXCI+PC9heC1jb2xvci1ib3g+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2F4LWRyb3AtZG93bj4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXdCLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLHNCQUFzQixFQUErRCxNQUFNLHVCQUF1QixDQUFDO0FBQzVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFXbEUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQVd2QztJQVJwQixRQUFRLENBQXNCO0lBQ3JCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUzQixLQUFLLENBQVM7SUFFdkIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUVuQixZQUFvQixHQUFlO1FBQy9CLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBWTtJQUVuQyxDQUFDO0lBR0QsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBVTtJQUVsQixJQUFJLEdBQWtCLElBQUksQ0FBQztJQUczQixHQUFHLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUdsQyxrQkFBa0IsQ0FBZTtJQUVqQyxXQUFXLENBQWU7SUFFbEMsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxDQUFlO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUM3RyxDQUFDO0lBQ0wsQ0FBQztJQUdELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUNBQWlDO0lBRWpDLElBQUk7SUFFSixhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekUsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQXBFUSxzQkFBc0I7MkZBQXRCLHNCQUFzQixtUUFMcEI7WUFDUCxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FDM0UsMEVBNEJhLFlBQVkseU1DekM5Qix3MUNBOEJlOzsyRkRkRixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksaUJBQWlCLGFBRWhCO3dCQUNQLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsd0JBQXdCLEVBQUU7cUJBQzNFLFFBQ0ssRUFBRSxLQUFLLEVBQUMsYUFBYSxFQUFFOytFQUs3QixRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFOUIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFTTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSUUsa0JBQWtCO3NCQUR6QixZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTWpDLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhCYXNlSW5wdXRDb21wb25lbnQsIEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhDb2xvckJveENvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItYm94L2NvbG9yLWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb2xvclV0aWwsIEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1jb2xvci1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbG9yUGlja2VyQ29tcG9uZW50IH0sXG4gICAgXSxcbiAgICBob3N0OiB7IHN0eWxlOid3aWR0aDogMTAwJScgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbG9yUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhDb2xvckJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZUlucHV0Q29tcG9uZW50IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBkcm9wZG93bjogQVhEcm9wZG93bkNvbXBvbmVudDtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gICAgX3RleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KClcbiAgICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICAgIEBJbnB1dCgpXG4gICAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XG5cbiAgICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jb250ZW50VmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHZhbGlkYXRpb24oKTogQVhWYWxpZGF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb24gPyB0aGlzLl92YWxpZGF0aW9uIDogdGhpcy5fY29udGVudFZhbGlkYXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWxpZGF0aW9uKHY6IEFYVmFsaWRhdGlvbikge1xuICAgICAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcbiAgICB9XG5cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdGhpcy52YWxpZGF0aW9uKTtcbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5mb2N1cygpO1xuICAgIH1cblxuICAgIC8vIGhhbmRsZVZhbHVlQ2hhbmdlKGM6IHN0cmluZykge1xuXG4gICAgLy8gfVxuXG4gICAgZmluZFRleHRDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIGlmICghY29sb3IpIHtcbiAgICAgICAgICAgIHJldHVybiAnIzAwMCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEoQVhDb2xvclV0aWwuY29udHJhc3RUb1doaXRlKGNvbG9yKSA+IDIuMCkgPyAnIzAwMCcgOiAnI2ZmZic7XG4gICAgfVxuXG4gICAgaGFuZGxlSXRlbUNsaWNrKGUpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jbG9zZSgpO1xuICAgIH1cblxufVxuIiwiPGF4LWRyb3AtZG93biAjZHJvcGRvd24gZml0UGFyZW50PVwiZmFsc2VcIiBbc2l6ZV09XCJzaXplXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgIFtydGxdPVwicnRsXCI+XG4gICAgPG5nLWNvbnRhaW5lciBzdGFydD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4IGZvcm0taXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdHRyLmlkXT1cInVpZFwiICNmYz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4IGZvcm0tY29udHJvbCBpbnB1dCB7e3NpemV9fVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWU7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInZhbHVlXCIgW3N0eWxlLmNvbG9yXT1cImZpbmRUZXh0Q29sb3IodmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6MHB4IDVweDt3aWR0aDogMTAwJTtkaXNwbGF5OiBmbGV4O2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2YWx1ZX19Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXJ9fSZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgZW5kPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICAgICAgPGF4LWNvbG9yLWJveCBbKHZhbHVlKV09XCJ2YWx1ZVwiIFxuICAgICAgICAgICAgKG9uQ29sb3JTZWxlY3QpPVwiaGFuZGxlSXRlbUNsaWNrKCRldmVudClcIj48L2F4LWNvbG9yLWJveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcC1kb3duPiJdfQ==
@@ -9,8 +9,6 @@ export class AXContextMenuComponent {
9
9
  onItemClick = new EventEmitter();
10
10
  onClosed = new EventEmitter();
11
11
  contex;
12
- axId;
13
- axClass;
14
12
  show = false;
15
13
  constructor(container) {
16
14
  this.container = container;
@@ -48,11 +46,11 @@ export class AXContextMenuComponent {
48
46
  }
49
47
  }
50
48
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: { size: "size", width: "width", items: "items", axId: "axId", axClass: "axClass" }, outputs: { onItemClick: "onItemClick", onClosed: "onClosed" }, host: { classAttribute: "ax context-menu-container" }, viewQueries: [{ propertyName: "contex", first: true, predicate: ["contex"], descendants: true }], ngImport: i0, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show, axClass}\" [attr.id]=\"axId\">\n\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\"></ng-container>\n </ul>\n </li>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: { size: "size", width: "width", items: "items" }, outputs: { onItemClick: "onItemClick", onClosed: "onClosed" }, host: { classAttribute: "ax context-menu-container" }, viewQueries: [{ propertyName: "contex", first: true, predicate: ["contex"], descendants: true }], ngImport: i0, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
52
50
  }
53
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXContextMenuComponent, decorators: [{
54
52
  type: Component,
55
- args: [{ selector: 'ax-context-menu', host: { class: 'ax context-menu-container' }, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show, axClass}\" [attr.id]=\"axId\">\n\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\"></ng-container>\n </ul>\n </li>\n</ng-template>" }]
53
+ args: [{ selector: 'ax-context-menu', host: { class: 'ax context-menu-container' }, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n</ng-template>" }]
56
54
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { size: [{
57
55
  type: Input
58
56
  }], width: [{
@@ -66,9 +64,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
66
64
  }], contex: [{
67
65
  type: ViewChild,
68
66
  args: ['contex']
69
- }], axId: [{
70
- type: Input
71
- }], axClass: [{
72
- type: Input
73
67
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQTBCYjtJQXhCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBRTVCLElBQUksQ0FBUztJQUViLE9BQU8sQ0FBUztJQUd6QixJQUFJLEdBQVksS0FBSyxDQUFDO0lBRXRCLFlBQW9CLFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7SUFDekMsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEdBQUcsS0FBSztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RSxJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzdELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztZQUNmLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25FLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELElBQUksR0FBRyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELEdBQUcsR0FBRyxJQUFJLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUV0RCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFHUixDQUFDO0lBSUQsZUFBZSxDQUFDLElBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7dUdBckVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDJXQ1ZuQyw2N0RBeUNjOzsyRkQvQkQsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQixRQUVyQixFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTsrRUFJNUMsSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUTtnQkFHVixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGV4JylcbiAgY29udGV4OiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGF4SWQ6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIGF4Q2xhc3M6IHN0cmluZztcblxuXG4gIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpc1xuICAgIH0pO1xuICB9XG5cblxuXG4gIG9wZW4oX2xlZnQsIF90b3AsIF9ydGwgPSBmYWxzZSkge1xuICAgIHRoaXMuc2hvdyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluUmVjID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGxldCBsZWZ0ID0gX3J0bCA9PT0gZmFsc2UgPyBfbGVmdCA6IF9sZWZ0IC0gY29udGFpblJlYy53aWR0aDtcbiAgICAgIGxldCB0b3AgPSBfdG9wO1xuICAgICAgaWYgKF9ydGwgPT09IGZhbHNlICYmIF9sZWZ0ICsgY29udGFpblJlYy53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICAgIGxlZnQgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGNvbnRhaW5SZWMud2lkdGg7XG4gICAgICB9IGVsc2UgaWYgKF9ydGwgPT09IHRydWUgJiYgX2xlZnQgLSBjb250YWluUmVjLndpZHRoIDwgMCkge1xuICAgICAgICBsZWZ0ID0gMDtcbiAgICAgIH1cbiAgICAgIGlmICh0b3AgKyBjb250YWluUmVjLmhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICB0b3AgPSBfdG9wIC0gY29udGFpblJlYy5oZWlnaHQ7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcblxuICAgIH0sIDUpO1xuXG5cbiAgfVxuXG5cblxuICBoYW5kbGVDbGlja0l0ZW0oaXRlbTogQVhNZW51SXRlbSkge1xuICAgIGlmICghaXRlbS5kaXNhYmxlIHx8IGl0ZW0uZGlzYWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19XCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLnN0YXJ0SWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3Bhbj57e2l0ZW0udGV4dH19PC9zcGFuPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmVuZEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1sZWZ0IGF4LW1lbnUtaXRlbS1kcm9wLWljb25cIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuPC91bD4gLS0+XG5cbjx1bCAjY29udGV4IGNsYXNzPVwiYXggY29udGV4dC1tZW51IHt7c2l6ZX19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbiAgICBbbmdDbGFzc109XCJ7J2FuaW1hdGVfX2FuaW1hdGVkIGFuaW1hdGVfX2Zhc3RlciBhbmltYXRlX19mYWRlSW4nOiBzaG93LCBheENsYXNzfVwiIFthdHRyLmlkXT1cImF4SWRcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVDb250ZXh0TWVudTsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbXMgfVwiPjwvbmctY29udGFpbmVyPlxuPC91bD5cblxuPG5nLXRlbXBsYXRlICNyZWN1cnNpdmVDb250ZXh0TWVudSBsZXQtaXRlbXM+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiIFtjbGFzcy5kaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2tJdGVtKGl0ZW0pXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydEljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLnN0YXJ0SWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsIGNsYXNzPVwiYXggY29udGV4dC1tZW51IGNoaWxkXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW0uaXRlbXMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQXVCYjtJQXJCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBSXJDLElBQUksR0FBWSxLQUFLLENBQUM7SUFFdEIsWUFBb0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtJQUN6QyxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxLQUFLO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hFLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNYLENBQUM7WUFDRCxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakQsR0FBRyxHQUFHLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRXRELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUdSLENBQUM7SUFJRCxlQUFlLENBQUMsSUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzt1R0FsRVUsc0JBQXNCOzJGQUF0QixzQkFBc0IseVVDVm5DLDY2REF5Q2M7OzJGRC9CRCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCLFFBRXJCLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFOytFQUk1QyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNO2dCQUlQLE1BQU07c0JBREwsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGV4JylcbiAgY29udGV4OiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG5cblxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250YWluZXI6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXNcbiAgICB9KTtcbiAgfVxuXG5cblxuICBvcGVuKF9sZWZ0LCBfdG9wLCBfcnRsID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3cgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpblJlYyA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBsZXQgbGVmdCA9IF9ydGwgPT09IGZhbHNlID8gX2xlZnQgOiBfbGVmdCAtIGNvbnRhaW5SZWMud2lkdGg7XG4gICAgICBsZXQgdG9wID0gX3RvcDtcbiAgICAgIGlmIChfcnRsID09PSBmYWxzZSAmJiBfbGVmdCArIGNvbnRhaW5SZWMud2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICBsZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSBjb250YWluUmVjLndpZHRoO1xuICAgICAgfSBlbHNlIGlmIChfcnRsID09PSB0cnVlICYmIF9sZWZ0IC0gY29udGFpblJlYy53aWR0aCA8IDApIHtcbiAgICAgICAgbGVmdCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAodG9wICsgY29udGFpblJlYy5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgdG9wID0gX3RvcCAtIGNvbnRhaW5SZWMuaGVpZ2h0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG5cbiAgICB9LCA1KTtcblxuXG4gIH1cblxuXG5cbiAgaGFuZGxlQ2xpY2tJdGVtKGl0ZW06IEFYTWVudUl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0uZGlzYWJsZSB8fCBpdGVtLmRpc2FibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSA8dWwgY2xhc3M9XCJheCBjb250ZXh0LW1lbnUge3tzaXplfX1cIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgW2NsYXNzLmRpdmlkZXJdPVwiaXRlbS5kaXZpZGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJ0SWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5lbmRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvdWw+IC0tPlxuXG48dWwgI2NvbnRleCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiXG4gICAgW25nQ2xhc3NdPVwieydhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYXN0ZXIgYW5pbWF0ZV9fZmFkZUluJzogc2hvd31cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW1zIH1cIj48L25nLWNvbnRhaW5lcj5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlQ29udGV4dE1lbnUgbGV0LWl0ZW1zPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrSXRlbShpdGVtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5pY29ufX1cIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuPnt7aXRlbS50ZXh0fX08L3NwYW4+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmVuZEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWxlZnQgYXgtbWVudS1pdGVtLWRyb3AtaWNvblwiICpuZ0lmPVwiaXRlbS5pdGVtcz8ubGVuZ3RoID4gMFwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSBjaGlsZFwiICpuZ0lmPVwiaXRlbS5pdGVtcz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUNvbnRleHRNZW51OyBjb250ZXh0OnsgJGltcGxpY2l0OiBpdGVtLml0ZW1zIH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -33,8 +33,6 @@ export class AXFilterPanelComponent {
33
33
  groups = [];
34
34
  predefinedFilters = [];
35
35
  mode = 'click';
36
- axId;
37
- axClass;
38
36
  saveItems = [
39
37
  {
40
38
  name: 'saveAs',
@@ -231,11 +229,11 @@ export class AXFilterPanelComponent {
231
229
  }, 50);
232
230
  }
233
231
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterPanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
234
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXFilterPanelComponent, selector: "ax-filter-panel", inputs: { groups: "groups", predefinedFilters: "predefinedFilters", mode: "mode", axId: "axId", axClass: "axClass" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "savedList", first: true, predicate: ["savedList"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["body"], descendants: true, static: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "tbxName", first: true, predicate: ["tbxName"], descendants: true, static: true }, { propertyName: "filters", predicate: AXFilterColumnComponent, descendants: true }], ngImport: i0, template: "<div class=\"ax-filter-panel {{axClass}}\" #panel [attr.id]=\"axId\">\n <div class=\"saved-list\" #savedList>\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" (click)=\"fb.toggle()\">\n <ax-toolbar>\n <ax-toolbar-title>\n <div>\n <i class=\"far fa-filter\"></i>\n <span>SAVED FILTERS</span>\n </div>\n </ax-toolbar-title>\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\n </ax-toolbar-menu>\n </ax-toolbar>\n </div>\n </ng-template>\n\n <div class=\"list\">\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\n <ul>\n <ng-container *ngFor=\"let f of predefinedFilters\">\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\n <li (click)=\"setFilterByName(f.name)\">\n <div class=\"item-line\" [class.selected]=\"f.selected\">\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\n class=\"far fa-times text-danger\" title=\"Remove\"\n (click)=\"removeFilter(f)\"></i></span>\n </div>\n </li>\n </ng-container>\n <ng-template #editMode>\n <li>\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\n (onKey)=\"tbxNameOnKey($event)\">\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\n <i class=\"far fa-check\"></i>\n </ax-button>\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\n <i class=\"far fa-times\"></i>\n </ax-button>\n <ax-validation>\n <ax-validation-rule type=\"required\" message=\"this field is required\">\n </ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </li>\n </ng-template>\n </ng-container>\n </ul>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"empty-list\">\n Empty\n </div>\n </ng-template>\n </div>\n </ax-panel-box>\n </div>\n <div class=\"body\" #body>\n <ng-container *ngFor=\"let g of groups\">\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\n <i\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\n <span>{{g.caption}}</span>\n </div>\n </ng-template>\n <ng-container *ngFor=\"let c of g.columns\">\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\n [(value)]=\"c.active\">\n </ax-check-box>\n </div>\n <div [hidden]=\"!c.active\">\n <ng-container [ngSwitch]=\"c.type\">\n <ng-container *ngSwitchCase=\"'selection'\">\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\n [dataType]=\"c.options.dataType\">\n </ax-filter-column-selection>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-number>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-string>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ax-panel-box>\n </ng-container>\n </div>\n\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\n <div class=\"filter-panel\">\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\n <i class=\"far fa-filter\"></i>\n Apply Filter\n </ax-button>\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\n <i class=\"far fa-eraser\"></i>\n Clear\n </ax-button>\n </div>\n </div>\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.AXPanelBoxComponent, selector: "ax-panel-box", inputs: ["size", "type", "axId", "axClass", "caption", "collapsed", "allowCollapse"], outputs: ["collapsedChange"] }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { kind: "component", type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled", "operation"] }, { kind: "component", type: i8.AXToolbarComponent, selector: "ax-toolbar", inputs: ["axId", "axClass"] }, { kind: "component", type: i9.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "floatPlacemnet", "selection", "items", "axId", "axClass"], outputs: ["onItemClick"] }, { kind: "component", type: i10.AXToolbarTitleComponent, selector: "ax-toolbar-title", inputs: ["axId", "axClass", "text"] }, { kind: "component", type: i11.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i12.AXFilterColumnStringComponent, selector: "ax-filter-column-string" }, { kind: "component", type: i13.AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: ["items", "mode", "dataType"] }, { kind: "component", type: i14.AXFilterColumnDateComponent, selector: "ax-filter-column-date" }, { kind: "component", type: i15.AXFilterColumnNumberComponent, selector: "ax-filter-column-number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXFilterPanelComponent, selector: "ax-filter-panel", inputs: { groups: "groups", predefinedFilters: "predefinedFilters", mode: "mode" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "savedList", first: true, predicate: ["savedList"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["body"], descendants: true, static: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "tbxName", first: true, predicate: ["tbxName"], descendants: true, static: true }, { propertyName: "filters", predicate: AXFilterColumnComponent, descendants: true }], ngImport: i0, template: "<div class=\"ax-filter-panel\" #panel>\n <div class=\"saved-list\" #savedList>\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" (click)=\"fb.toggle()\">\n <ax-toolbar>\n <ax-toolbar-title>\n <div>\n <i class=\"far fa-filter\"></i>\n <span>SAVED FILTERS</span>\n </div>\n </ax-toolbar-title>\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\n </ax-toolbar-menu>\n </ax-toolbar>\n </div>\n </ng-template>\n\n <div class=\"list\">\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\n <ul>\n <ng-container *ngFor=\"let f of predefinedFilters\">\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\n <li (click)=\"setFilterByName(f.name)\">\n <div class=\"item-line\" [class.selected]=\"f.selected\">\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\n class=\"far fa-times text-danger\" title=\"Remove\"\n (click)=\"removeFilter(f)\"></i></span>\n </div>\n </li>\n </ng-container>\n <ng-template #editMode>\n <li>\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\n (onKey)=\"tbxNameOnKey($event)\">\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\n <i class=\"far fa-check\"></i>\n </ax-button>\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\n <i class=\"far fa-times\"></i>\n </ax-button>\n <ax-validation>\n <ax-validation-rule type=\"required\" message=\"this field is required\">\n </ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </li>\n </ng-template>\n </ng-container>\n </ul>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"empty-list\">\n Empty\n </div>\n </ng-template>\n </div>\n </ax-panel-box>\n </div>\n <div class=\"body\" #body>\n <ng-container *ngFor=\"let g of groups\">\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\n <i\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\n <span>{{g.caption}}</span>\n </div>\n </ng-template>\n <ng-container *ngFor=\"let c of g.columns\">\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\n [(value)]=\"c.active\">\n </ax-check-box>\n </div>\n <div [hidden]=\"!c.active\">\n <ng-container [ngSwitch]=\"c.type\">\n <ng-container *ngSwitchCase=\"'selection'\">\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\n [dataType]=\"c.options.dataType\">\n </ax-filter-column-selection>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-number>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-string>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ax-panel-box>\n </ng-container>\n </div>\n\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\n <div class=\"filter-panel\">\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\n <i class=\"far fa-filter\"></i>\n Apply Filter\n </ax-button>\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\n <i class=\"far fa-eraser\"></i>\n Clear\n </ax-button>\n </div>\n </div>\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\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.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.AXPanelBoxComponent, selector: "ax-panel-box", inputs: ["size", "type", "caption", "collapsed", "allowCollapse"], outputs: ["collapsedChange"] }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { kind: "component", type: i6.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { kind: "component", type: i7.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled", "operation"] }, { kind: "component", type: i8.AXToolbarComponent, selector: "ax-toolbar" }, { kind: "component", type: i9.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "floatPlacemnet", "selection", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i10.AXToolbarTitleComponent, selector: "ax-toolbar-title", inputs: ["text"] }, { kind: "component", type: i11.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i12.AXFilterColumnStringComponent, selector: "ax-filter-column-string" }, { kind: "component", type: i13.AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: ["items", "mode", "dataType"] }, { kind: "component", type: i14.AXFilterColumnDateComponent, selector: "ax-filter-column-date" }, { kind: "component", type: i15.AXFilterColumnNumberComponent, selector: "ax-filter-column-number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
235
233
  }
236
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFilterPanelComponent, decorators: [{
237
235
  type: Component,
238
- args: [{ selector: 'ax-filter-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-filter-panel {{axClass}}\" #panel [attr.id]=\"axId\">\n <div class=\"saved-list\" #savedList>\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" (click)=\"fb.toggle()\">\n <ax-toolbar>\n <ax-toolbar-title>\n <div>\n <i class=\"far fa-filter\"></i>\n <span>SAVED FILTERS</span>\n </div>\n </ax-toolbar-title>\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\n </ax-toolbar-menu>\n </ax-toolbar>\n </div>\n </ng-template>\n\n <div class=\"list\">\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\n <ul>\n <ng-container *ngFor=\"let f of predefinedFilters\">\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\n <li (click)=\"setFilterByName(f.name)\">\n <div class=\"item-line\" [class.selected]=\"f.selected\">\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\n class=\"far fa-times text-danger\" title=\"Remove\"\n (click)=\"removeFilter(f)\"></i></span>\n </div>\n </li>\n </ng-container>\n <ng-template #editMode>\n <li>\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\n (onKey)=\"tbxNameOnKey($event)\">\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\n <i class=\"far fa-check\"></i>\n </ax-button>\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\n <i class=\"far fa-times\"></i>\n </ax-button>\n <ax-validation>\n <ax-validation-rule type=\"required\" message=\"this field is required\">\n </ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </li>\n </ng-template>\n </ng-container>\n </ul>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"empty-list\">\n Empty\n </div>\n </ng-template>\n </div>\n </ax-panel-box>\n </div>\n <div class=\"body\" #body>\n <ng-container *ngFor=\"let g of groups\">\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\n <i\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\n <span>{{g.caption}}</span>\n </div>\n </ng-template>\n <ng-container *ngFor=\"let c of g.columns\">\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\n [(value)]=\"c.active\">\n </ax-check-box>\n </div>\n <div [hidden]=\"!c.active\">\n <ng-container [ngSwitch]=\"c.type\">\n <ng-container *ngSwitchCase=\"'selection'\">\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\n [dataType]=\"c.options.dataType\">\n </ax-filter-column-selection>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-number>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-string>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ax-panel-box>\n </ng-container>\n </div>\n\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\n <div class=\"filter-panel\">\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\n <i class=\"far fa-filter\"></i>\n Apply Filter\n </ax-button>\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\n <i class=\"far fa-eraser\"></i>\n Clear\n </ax-button>\n </div>\n </div>\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"] }]
236
+ args: [{ selector: 'ax-filter-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-filter-panel\" #panel>\n <div class=\"saved-list\" #savedList>\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" (click)=\"fb.toggle()\">\n <ax-toolbar>\n <ax-toolbar-title>\n <div>\n <i class=\"far fa-filter\"></i>\n <span>SAVED FILTERS</span>\n </div>\n </ax-toolbar-title>\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\n </ax-toolbar-menu>\n </ax-toolbar>\n </div>\n </ng-template>\n\n <div class=\"list\">\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\n <ul>\n <ng-container *ngFor=\"let f of predefinedFilters\">\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\n <li (click)=\"setFilterByName(f.name)\">\n <div class=\"item-line\" [class.selected]=\"f.selected\">\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\n class=\"far fa-times text-danger\" title=\"Remove\"\n (click)=\"removeFilter(f)\"></i></span>\n </div>\n </li>\n </ng-container>\n <ng-template #editMode>\n <li>\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\n (onKey)=\"tbxNameOnKey($event)\">\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\n <i class=\"far fa-check\"></i>\n </ax-button>\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\n <i class=\"far fa-times\"></i>\n </ax-button>\n <ax-validation>\n <ax-validation-rule type=\"required\" message=\"this field is required\">\n </ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </li>\n </ng-template>\n </ng-container>\n </ul>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"empty-list\">\n Empty\n </div>\n </ng-template>\n </div>\n </ax-panel-box>\n </div>\n <div class=\"body\" #body>\n <ng-container *ngFor=\"let g of groups\">\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\n <i\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\n <span>{{g.caption}}</span>\n </div>\n </ng-template>\n <ng-container *ngFor=\"let c of g.columns\">\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\n [(value)]=\"c.active\">\n </ax-check-box>\n </div>\n <div [hidden]=\"!c.active\">\n <ng-container [ngSwitch]=\"c.type\">\n <ng-container *ngSwitchCase=\"'selection'\">\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\n [dataType]=\"c.options.dataType\">\n </ax-filter-column-selection>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-number>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-string>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ax-panel-box>\n </ng-container>\n </div>\n\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\n <div class=\"filter-panel\">\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\n <i class=\"far fa-filter\"></i>\n Apply Filter\n </ax-button>\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\n <i class=\"far fa-eraser\"></i>\n Clear\n </ax-button>\n </div>\n </div>\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"] }]
239
237
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AXToastService }], propDecorators: { panel: [{
240
238
  type: ViewChild,
241
239
  args: ['panel', { static: true }]
@@ -263,11 +261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
263
261
  type: Input
264
262
  }], mode: [{
265
263
  type: Input
266
- }], axId: [{
267
- type: Input
268
- }], axClass: [{
269
- type: Input
270
264
  }], filterChange: [{
271
265
  type: Output
272
266
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDeE0sT0FBTyxFQUF1Qix1QkFBdUIsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0SCxPQUFPLEVBQWMsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQWEzRCxNQUFNLE9BQU8sc0JBQXNCO0lBOENYO0lBQWdDO0lBNUNkLEtBQUssQ0FBNkI7SUFDakMsTUFBTSxDQUE2QjtJQUNoQyxTQUFTLENBQTZCO0lBQzNDLElBQUksQ0FBNkI7SUFDaEMsSUFBSSxDQUFrQjtJQUNwQixPQUFPLENBQXFCO0lBRTdCLE9BQU8sQ0FBcUM7SUFHbkYsTUFBTSxHQUEwQixFQUFFLENBQUM7SUFHbkMsaUJBQWlCLEdBQXlCLEVBQUUsQ0FBQztJQUc3QyxJQUFJ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QUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSCxJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFQyxPQUFPO3NCQUE3QyxZQUFZO3VCQUFDLHVCQUF1QjtnQkFHckMsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFzQk4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRmlsdGVyQ29sdW1uR3JvdXAsIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCBBWEZpbHRlckNvbmRpdGlvbiwgQVhGaWx0ZXJQcmVkZWZpbmVkIH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IEFYTWVudUl0ZW0sIEFYSHRtbFV0aWwsIEFYS2V5Ym9hcmRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcblxuXG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJQYW5lbENvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdwYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIHBhbmVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdmb290ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb290ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NhdmVkTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIHNhdmVkTGlzdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnYm9keScsIHsgc3RhdGljOiB0cnVlIH0pIGJvZHk6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWVudTogQVhNZW51Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3RieE5hbWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YnhOYW1lOiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkcmVuKEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50KSBmaWx0ZXJzOiBRdWVyeUxpc3Q8QVhGaWx0ZXJDb2x1bW5Db21wb25lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBncm91cHM6IEFYRmlsdGVyQ29sdW1uR3JvdXBbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwcmVkZWZpbmVkRmlsdGVyczogQVhGaWx0ZXJQcmVkZWZpbmVkW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogJ2NsaWNrJyB8ICdpbW1lZGlhdGUnID0gJ2NsaWNrJztcblxuICAgIEBJbnB1dCgpIGF4SWQ6IHN0cmluZztcbiAgXG4gICAgQElucHV0KCkgYXhDbGFzczogc3RyaW5nO1xuXG4gICAgc2F2ZUl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdzYXZlQXMnLFxuICAgICAgICAgICAgdGV4dDogJ1NhdmUnLFxuICAgICAgICAgICAgc3RhcnRJY29uOiAnZmFzIGZhLXNhdmUnLFxuICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzYXZlJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ1NhdmUgY3VycmVudCdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NhdmVBcycsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdTYXZlIGFzIE5ldydcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG5cbiAgICBdO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhGaWx0ZXJDb25kaXRpb25bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRmlsdGVyQ29uZGl0aW9uW10+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7IH1cblxuICAgIGFwcGx5KCkge1xuICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGUgPT4ge1xuICAgICAgICAgICAgZS5jbGVhcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgKGMgYXMgYW55KS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZShlKSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdpbW1lZGlhdGUnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgICAgICAgICAgfSwgNTApO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoZWNrVmFsdWVDaGFuZ2UodiwgZTogQVhWYWx1ZUV2ZW50PGJvb2xlYW4+KSB7XG5cblxuICAgICAgICBpZiAoIWUudmFsdWUgJiYgdGhpcy5tb2RlID09PSAnaW1tZWRpYXRlJykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGMuZmllbGQgPT09IHYuZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgYy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUuZmlsdGVyKGMgPT4gYy5maWVsZCAhPT0gdi5maWVsZCkpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgICAgICAgICAgfSwgNTApO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogQVhGaWx0ZXJDb25kaXRpb25bXSB7XG4gICAgICAgIGNvbnN0IGNvbjogQVhGaWx0ZXJDb25kaXRpb25bXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlLmFjdGl2ZSAmJiBlLmNvbmRpdGlvbiAmJiAoKGUuY29uZGl0aW9uLnZhbHVlICE9IG51bGwpIHx8IChlLmNvbmRpdGlvbi52YWx1ZSA9PSBudWxsICYmIChlLmNvbmRpdGlvbi5jb25kaXRpb24gPT09ICdpcy1lbXB0eScgfHwgZS5jb25kaXRpb24uY29uZGl0aW9uID09PSAnaXMtbm90LWVtcHR5JykpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb24ucHVzaChlLmNvbmRpdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbjtcbiAgICB9XG5cblxuXG4gICAgcHVibGljIGxvYWQoZmlsdGVyczogQVhGaWx0ZXJDb25kaXRpb25bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgIGUuY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FuY2VsU2F2ZUZpbHRlcigpO1xuICAgICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmZpbHRlcnMuZmluZChjID0+IGMuZmllbGQgPT09IGYuZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbCkge1xuICAgICAgICAgICAgICAgIGNvbC5zZXRGaWx0ZXIoZi52YWx1ZSwgZi5jb25kaXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMucGFuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9vdGVyJyk7XG4gICAgICAgIGlmICghZm9vdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnY2FsYygxMDAlIC0gMTEwcHgpJztcbiAgICAgICAgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZWRlZmluZWRGaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGaWx0ZXJCeUluZGV4KDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgICAgICB0aGlzLmFwcGx5U2l6ZSgpO1xuICAgIH1cblxuICAgIHNldEZpbHRlckJ5SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5wcmVkZWZpbmVkRmlsdGVyc1tpbmRleF07XG4gICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICB0aGlzLnNldEZpbHRlckJ5TmFtZShmLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyQnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5maW5kKGMgPT4gYy5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgaWYgKGYpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZChmLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICAoYyBhcyBhbnkpLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIChmIGFzIGFueSkuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIHJlbW92ZUZpbHRlcihmOiBBWEZpbHRlclByZWRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcmVkZWZpbmVkRmlsdGVycyA9IHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZmlsdGVyKGMgPT4gYy5uYW1lICE9IGYubmFtZSk7XG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0XG4gICAgICAgIGN1cnJlbnRGaWx0ZXIoKTogQVhGaWx0ZXJQcmVkZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZmluZChjID0+IChjIGFzIGFueSkuc2VsZWN0ZWQpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBhcHBseVNpemUoKSB7XG4gICAgICAgIGxldCBoID0gMDtcbiAgICAgICAgaCArPSB0aGlzLmZvb3Rlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgaCArPSB0aGlzLnNhdmVkTGlzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgaCArPSAxMDtcbiAgICAgICAgdGhpcy5ib2R5Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYGNhbGMoMTAwJSAtICR7aH1weClgO1xuICAgIH1cblxuICAgIC8vIFNBVkUgRklMVEVSU1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVNZW51KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUl0ZW1zWzBdLml0ZW1zWzBdLnZpc2libGUgPSB0aGlzLmN1cnJlbnRGaWx0ZXIgIT0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUl0ZW1zWzBdLml0ZW1zWzFdLnZpc2libGUgPSB0aGlzLmN1cnJlbnRGaWx0ZXIgIT0gbnVsbDtcbiAgICAgICAgICAgIC8vIHRoaXMubWVudS51cGRhdGUoKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBhcHBseVNhdmVGaWx0ZXIoKSB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmN1cnJlbnRGaWx0ZXI7XG4gICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAvLyB0aGlzLnRieE5hbWUudmFsaWRhdGUoKS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgLy8gICAgIGlmIChjLnJlc3VsdCkge1xuICAgICAgICAgICAgLy8gICAgICAgICBmLnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgICAgIC8vICAgICAgICAgKGYgYXMgYW55KS5pc0luRWRpdCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gICAgICAgICAoZiBhcyBhbnkpLmlzTmV3ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyAgICAgICAgIGYudGl0bGUgPSB0aGlzLnRieE5hbWUudmFsdWU7XG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnRmlsdGVyIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWxTYXZlRmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5jdXJyZW50RmlsdGVyO1xuICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgaWYgKChmIGFzIGFueSkuaXNOZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcihmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIChmIGFzIGFueSkuaXNJbkVkaXQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICB9XG5cbiAgICBvbk1lbnVJdGVtQ2xpY2soZTogQVhNZW51SXRlbSkge1xuICAgICAgICBpZiAoZS5uYW1lID09PSAnc2F2ZScpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTYXZlRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3NhdmVBcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGYgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogQVhIdG1sVXRpbC5nZXRVSUQoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLnB1c2goZik7XG4gICAgICAgICAgICAoZiBhcyBhbnkpLmlzTmV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyQnlOYW1lKGYubmFtZSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlbmFtZUNsaWNrKGYpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YnhOYW1lT25LZXkoZTogQVhLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXl1cCcgJiYgZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTYXZlRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleXVwJyAmJiBlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsU2F2ZUZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlUmVuYW1lQ2xpY2soZjogQVhGaWx0ZXJQcmVkZWZpbmVkKSB7XG4gICAgICAgIChmIGFzIGFueSkuaXNJbkVkaXQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50YnhOYW1lLnZhbHVlID0gZi50aXRsZTtcbiAgICAgICAgICAgIHRoaXMudGJ4TmFtZS5mb2N1cygpO1xuICAgICAgICB9LCA1MCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZpbHRlci1wYW5lbCB7e2F4Q2xhc3N9fVwiICNwYW5lbCBbYXR0ci5pZF09XCJheElkXCI+XG4gICAgPGRpdiBjbGFzcz1cInNhdmVkLWxpc3RcIiAjc2F2ZWRMaXN0PlxuICAgICAgICA8YXgtcGFuZWwtYm94ICNmYj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiZmIudG9nZ2xlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1maWx0ZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNBVkVEIEZJTFRFUlM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRvb2xiYXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci1tZW51ICNtZW51IFtpdGVtc109XCJzYXZlSXRlbXNcIiAob25JdGVtQ2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdG9vbGJhci1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcmVkZWZpbmVkRmlsdGVycyAmJiBwcmVkZWZpbmVkRmlsdGVycy5sZW5ndGg7IGVsc2UgZW1wdHlMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgcHJlZGVmaW5lZEZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWYuaXNJbkVkaXQ7IGVsc2UgZWRpdE1vZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZXRGaWx0ZXJCeU5hbWUoZi5uYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGluZVwiIFtjbGFzcy5zZWxlY3RlZF09XCJmLnNlbGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPiB7e2YudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2xzXCI+PGkgY2xhc3M9XCJmYXIgZmEtcGVuIHRleHQtcHJpbWFyeVwiIHRpdGxlPVwiUmVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVSZW5hbWVDbGljayhmKVwiPjwvaT4mbmJzcDs8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXIgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGYpXCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdE1vZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAjdGJ4TmFtZSBwbGFjZWhvbGRlcj1cIkVudGVyIGZpbHRlcidzIHRpdGxlIGhlcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbktleSk9XCJ0YnhOYW1lT25LZXkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gdGl0bGU9XCJTYXZlXCIgdHlwZT1cInByaW1hcnlcIiAob25DbGljayk9XCJhcHBseVNhdmVGaWx0ZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHRpdGxlPVwiQ2FuY2VsXCIgdHlwZT1cImRhbmdlclwiIChvbkNsaWNrKT1cImNhbmNlbFNhdmVGaWx0ZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIiBtZXNzYWdlPVwidGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9heC1wYW5lbC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIiAjYm9keT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZyBvZiBncm91cHNcIj5cbiAgICAgICAgICAgIDxheC1wYW5lbC1ib3ggI2ZiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtaGVhZGVyXCIgKm5nSWY9XCJnLmNhcHRpb25cIiAoY2xpY2spPVwiZmIudG9nZ2xlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmFyIGZhLW1pbnVzLXNxdWFyZScgOiAhZmIuY29sbGFwc2VkICwnZmFzIGZhLXBsdXMtc3F1YXJlJyA6IGZiLmNvbGxhcHNlZCB9XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tnLmNhcHRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGcuY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmlsdGVyLWl0ZW0taGVhZGVyXCIgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiYy5hY3RpdmUgPyAwIDogMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveCAob25WYWx1ZUNoYW5nZWQpPVwib25DaGVja1ZhbHVlQ2hhbmdlKGMsJGV2ZW50KVwiIFtsYWJlbF09XCJjLmNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCIhYy5hY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3Rpb24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCIgW21vZGVdPVwiYy5vcHRpb25zLm1vZGVcIiBbaXRlbXNdPVwiYy5vcHRpb25zLml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhVHlwZV09XCJjLm9wdGlvbnMuZGF0YVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZpbHRlci1jb2x1bW4tZGF0ZSAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1kYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLW51bWJlciAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1udW1iZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZmlsdGVyLWNvbHVtbi1zdHJpbmcgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtmaWVsZF09XCJjLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWZpbHRlci1jb2x1bW4tc3RyaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9heC1wYW5lbC1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIm1vZGU9PSdjbGljaydcIiBjbGFzcz1cImZvb3RlclwiICNmb290ZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItcGFuZWxcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiYXBwbHkoKVwiIHR5cGU9XCJzdWNjZXNzXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZmlsdGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgIEFwcGx5IEZpbHRlclxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cImNsZWFyKCk7XCIgdHlwZT1cImxpZ2h0IFwiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWVyYXNlclwiPjwvaT5cbiAgICAgICAgICAgICAgICBDbGVhclxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDeE0sT0FBTyxFQUF1Qix1QkFBdUIsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN0SCxPQUFPLEVBQWMsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQWEzRCxNQUFNLE9BQU8sc0JBQXNCO0lBMENYO0lBQWdDO0lBeENkLEtBQUssQ0FBNkI7SUFDakMsTUFBTSxDQUE2QjtJQUNoQyxTQUFTLENBQTZCO0lBQzNDLElBQUksQ0FBNkI7SUFDaEMsSUFBSSxDQUFrQjtJQUNwQixPQUFPLENBQXFCO0lBRTdCLE9BQU8sQ0FBcUM7SUFHbkYsTUFBTSxHQUEwQixFQUFFLENBQUM7SUFHbkMsaUJBQWlCLEdBQXlCLEVBQUUsQ0FBQztJQUc3QyxJQUFJ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Q0ssU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0ksT0FBTztzQkFBOUMsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVDLE9BQU87c0JBQTdDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUdyQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkF1Qk4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRmlsdGVyQ29sdW1uR3JvdXAsIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCBBWEZpbHRlckNvbmRpdGlvbiwgQVhGaWx0ZXJQcmVkZWZpbmVkIH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IEFYTWVudUl0ZW0sIEFYSHRtbFV0aWwsIEFYS2V5Ym9hcmRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcblxuXG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJQYW5lbENvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdwYW5lbCcsIHsgc3RhdGljOiB0cnVlIH0pIHBhbmVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdmb290ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb290ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3NhdmVkTGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIHNhdmVkTGlzdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgnYm9keScsIHsgc3RhdGljOiB0cnVlIH0pIGJvZHk6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWVudTogQVhNZW51Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3RieE5hbWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YnhOYW1lOiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkcmVuKEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50KSBmaWx0ZXJzOiBRdWVyeUxpc3Q8QVhGaWx0ZXJDb2x1bW5Db21wb25lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBncm91cHM6IEFYRmlsdGVyQ29sdW1uR3JvdXBbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwcmVkZWZpbmVkRmlsdGVyczogQVhGaWx0ZXJQcmVkZWZpbmVkW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogJ2NsaWNrJyB8ICdpbW1lZGlhdGUnID0gJ2NsaWNrJztcblxuICAgIHNhdmVJdGVtczogQVhNZW51SXRlbVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc2F2ZUFzJyxcbiAgICAgICAgICAgIHRleHQ6ICdTYXZlJyxcbiAgICAgICAgICAgIHN0YXJ0SWNvbjogJ2ZhcyBmYS1zYXZlJyxcbiAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2F2ZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdTYXZlIGN1cnJlbnQnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzYXZlQXMnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnU2F2ZSBhcyBOZXcnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuXG4gICAgXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPEFYRmlsdGVyQ29uZGl0aW9uW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEZpbHRlckNvbmRpdGlvbltdPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRvYXN0OiBBWFRvYXN0U2VydmljZSkgeyB9XG5cbiAgICBhcHBseSgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgIGUuY2xlYXIoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIChjIGFzIGFueSkuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UoZSkge1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnaW1tZWRpYXRlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgICAgICAgIH0sIDUwKTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGVja1ZhbHVlQ2hhbmdlKHYsIGU6IEFYVmFsdWVFdmVudDxib29sZWFuPikge1xuXG5cbiAgICAgICAgaWYgKCFlLnZhbHVlICYmIHRoaXMubW9kZSA9PT0gJ2ltbWVkaWF0ZScpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjLmZpZWxkID09PSB2LmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlLmZpbHRlcihjID0+IGMuZmllbGQgIT09IHYuZmllbGQpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgICAgICAgIH0sIDUwKTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IEFYRmlsdGVyQ29uZGl0aW9uW10ge1xuICAgICAgICBjb25zdCBjb246IEFYRmlsdGVyQ29uZGl0aW9uW10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVycykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZS5hY3RpdmUgJiYgZS5jb25kaXRpb24gJiYgKChlLmNvbmRpdGlvbi52YWx1ZSAhPSBudWxsKSB8fCAoZS5jb25kaXRpb24udmFsdWUgPT0gbnVsbCAmJiAoZS5jb25kaXRpb24uY29uZGl0aW9uID09PSAnaXMtZW1wdHknIHx8IGUuY29uZGl0aW9uLmNvbmRpdGlvbiA9PT0gJ2lzLW5vdC1lbXB0eScpKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uLnB1c2goZS5jb25kaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb247XG4gICAgfVxuXG5cblxuICAgIHB1YmxpYyBsb2FkKGZpbHRlcnM6IEFYRmlsdGVyQ29uZGl0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZSA9PiB7XG4gICAgICAgICAgICBlLmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhbmNlbFNhdmVGaWx0ZXIoKTtcbiAgICAgICAgZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sID0gdGhpcy5maWx0ZXJzLmZpbmQoYyA9PiBjLmZpZWxkID09PSBmLmZpZWxkKTtcbiAgICAgICAgICAgIGlmIChjb2wpIHtcbiAgICAgICAgICAgICAgICBjb2wuc2V0RmlsdGVyKGYudmFsdWUsIGYuY29uZGl0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLnBhbmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvb3RlcicpO1xuICAgICAgICBpZiAoIWZvb3Rlcikge1xuICAgICAgICAgICAgdGhpcy5ib2R5Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJ2NhbGMoMTAwJSAtIDExMHB4KSc7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmVkZWZpbmVkRmlsdGVycykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyQnlJbmRleCgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgdGhpcy5hcHBseVNpemUoKTtcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXJCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMucHJlZGVmaW5lZEZpbHRlcnNbaW5kZXhdO1xuICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgdGhpcy5zZXRGaWx0ZXJCeU5hbWUoZi5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEZpbHRlckJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZmluZChjID0+IGMubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWQoZi52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgKGMgYXMgYW55KS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAoZiBhcyBhbnkpLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICByZW1vdmVGaWx0ZXIoZjogQVhGaWx0ZXJQcmVkZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMgPSB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZpbHRlcihjID0+IGMubmFtZSAhPSBmLm5hbWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFxuICAgICAgICBjdXJyZW50RmlsdGVyKCk6IEFYRmlsdGVyUHJlZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZpbmQoYyA9PiAoYyBhcyBhbnkpLnNlbGVjdGVkKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgYXBwbHlTaXplKCkge1xuICAgICAgICBsZXQgaCA9IDA7XG4gICAgICAgIGggKz0gdGhpcy5mb290ZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGggKz0gdGhpcy5zYXZlZExpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGggKz0gMTA7XG4gICAgICAgIHRoaXMuYm9keS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGBjYWxjKDEwMCUgLSAke2h9cHgpYDtcbiAgICB9XG5cbiAgICAvLyBTQVZFIEZJTFRFUlNcblxuICAgIHByaXZhdGUgdXBkYXRlTWVudSgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNhdmVJdGVtc1swXS5pdGVtc1swXS52aXNpYmxlID0gdGhpcy5jdXJyZW50RmlsdGVyICE9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNhdmVJdGVtc1swXS5pdGVtc1sxXS52aXNpYmxlID0gdGhpcy5jdXJyZW50RmlsdGVyICE9IG51bGw7XG4gICAgICAgICAgICAvLyB0aGlzLm1lbnUudXBkYXRlKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgYXBwbHlTYXZlRmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5jdXJyZW50RmlsdGVyO1xuICAgICAgICBpZiAoZikge1xuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgLy8gdGhpcy50YnhOYW1lLnZhbGlkYXRlKCkudGhlbihjID0+IHtcbiAgICAgICAgICAgIC8vICAgICBpZiAoYy5yZXN1bHQpIHtcbiAgICAgICAgICAgIC8vICAgICAgICAgZi52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAvLyAgICAgICAgIChmIGFzIGFueSkuaXNJbkVkaXQgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vICAgICAgICAgKGYgYXMgYW55KS5pc05ldyA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gICAgICAgICBmLnRpdGxlID0gdGhpcy50YnhOYW1lLnZhbHVlO1xuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoJ0ZpbHRlciBzYXZlZCBzdWNjZXNzZnVsbHkuJyk7XG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsU2F2ZUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuY3VycmVudEZpbHRlcjtcbiAgICAgICAgaWYgKGYpIHtcbiAgICAgICAgICAgIGlmICgoZiBhcyBhbnkpLmlzTmV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIoZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAoZiBhcyBhbnkpLmlzSW5FZGl0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgfVxuXG4gICAgb25NZW51SXRlbUNsaWNrKGU6IEFYTWVudUl0ZW0pIHtcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3NhdmUnKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2F2ZUZpbHRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdzYXZlQXMnKSB7XG4gICAgICAgICAgICBjb25zdCBmID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IEFYSHRtbFV0aWwuZ2V0VUlEKCksXG4gICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5wdXNoKGYpO1xuICAgICAgICAgICAgKGYgYXMgYW55KS5pc05ldyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldEZpbHRlckJ5TmFtZShmLm5hbWUpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZW5hbWVDbGljayhmKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGJ4TmFtZU9uS2V5KGU6IEFYS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnICYmIGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2F2ZUZpbHRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXl1cCcgJiYgZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbFNhdmVGaWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVJlbmFtZUNsaWNrKGY6IEFYRmlsdGVyUHJlZGVmaW5lZCkge1xuICAgICAgICAoZiBhcyBhbnkpLmlzSW5FZGl0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGJ4TmFtZS52YWx1ZSA9IGYudGl0bGU7XG4gICAgICAgICAgICB0aGlzLnRieE5hbWUuZm9jdXMoKTtcbiAgICAgICAgfSwgNTApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1maWx0ZXItcGFuZWxcIiAjcGFuZWw+XG4gICAgPGRpdiBjbGFzcz1cInNhdmVkLWxpc3RcIiAjc2F2ZWRMaXN0PlxuICAgICAgICA8YXgtcGFuZWwtYm94ICNmYj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiZmIudG9nZ2xlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1maWx0ZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNBVkVEIEZJTFRFUlM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRvb2xiYXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhci1tZW51ICNtZW51IFtpdGVtc109XCJzYXZlSXRlbXNcIiAob25JdGVtQ2xpY2spPVwib25NZW51SXRlbUNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdG9vbGJhci1tZW51PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcmVkZWZpbmVkRmlsdGVycyAmJiBwcmVkZWZpbmVkRmlsdGVycy5sZW5ndGg7IGVsc2UgZW1wdHlMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgcHJlZGVmaW5lZEZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWYuaXNJbkVkaXQ7IGVsc2UgZWRpdE1vZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZXRGaWx0ZXJCeU5hbWUoZi5uYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGluZVwiIFtjbGFzcy5zZWxlY3RlZF09XCJmLnNlbGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPiB7e2YudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2xzXCI+PGkgY2xhc3M9XCJmYXIgZmEtcGVuIHRleHQtcHJpbWFyeVwiIHRpdGxlPVwiUmVuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVSZW5hbWVDbGljayhmKVwiPjwvaT4mbmJzcDs8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXIgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGYpXCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdE1vZGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAjdGJ4TmFtZSBwbGFjZWhvbGRlcj1cIkVudGVyIGZpbHRlcidzIHRpdGxlIGhlcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbktleSk9XCJ0YnhOYW1lT25LZXkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gdGl0bGU9XCJTYXZlXCIgdHlwZT1cInByaW1hcnlcIiAob25DbGljayk9XCJhcHBseVNhdmVGaWx0ZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHRpdGxlPVwiQ2FuY2VsXCIgdHlwZT1cImRhbmdlclwiIChvbkNsaWNrKT1cImNhbmNlbFNhdmVGaWx0ZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSB0eXBlPVwicmVxdWlyZWRcIiBtZXNzYWdlPVwidGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9heC1wYW5lbC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIiAjYm9keT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZyBvZiBncm91cHNcIj5cbiAgICAgICAgICAgIDxheC1wYW5lbC1ib3ggI2ZiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtaGVhZGVyXCIgKm5nSWY9XCJnLmNhcHRpb25cIiAoY2xpY2spPVwiZmIudG9nZ2xlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmFyIGZhLW1pbnVzLXNxdWFyZScgOiAhZmIuY29sbGFwc2VkICwnZmFzIGZhLXBsdXMtc3F1YXJlJyA6IGZiLmNvbGxhcHNlZCB9XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tnLmNhcHRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGcuY29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmlsdGVyLWl0ZW0taGVhZGVyXCIgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiYy5hY3RpdmUgPyAwIDogMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveCAob25WYWx1ZUNoYW5nZWQpPVwib25DaGVja1ZhbHVlQ2hhbmdlKGMsJGV2ZW50KVwiIFtsYWJlbF09XCJjLmNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCIhYy5hY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3Rpb24nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCIgW21vZGVdPVwiYy5vcHRpb25zLm1vZGVcIiBbaXRlbXNdPVwiYy5vcHRpb25zLml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhVHlwZV09XCJjLm9wdGlvbnMuZGF0YVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZpbHRlci1jb2x1bW4tZGF0ZSAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1kYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLW51bWJlciAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhhY3RpdmUpXT1cImMuYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1udW1iZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZmlsdGVyLWNvbHVtbi1zdHJpbmcgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFtmaWVsZF09XCJjLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWZpbHRlci1jb2x1bW4tc3RyaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9heC1wYW5lbC1ib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIm1vZGU9PSdjbGljaydcIiBjbGFzcz1cImZvb3RlclwiICNmb290ZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItcGFuZWxcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiYXBwbHkoKVwiIHR5cGU9XCJzdWNjZXNzXCIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtZmlsdGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgIEFwcGx5IEZpbHRlclxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cImNsZWFyKCk7XCIgdHlwZT1cImxpZ2h0IFwiIHNpemU9XCJzbVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWVyYXNlclwiPjwvaT5cbiAgICAgICAgICAgICAgICBDbGVhclxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -151,7 +151,7 @@ export class AXToolbarFilterViewComponent {
151
151
  }
152
152
  }
153
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXToolbarFilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXToolbarFilterViewComponent, selector: "ax-toolbar-filter-view", inputs: { filterPanel: "filterPanel" }, providers: [{ provide: AXToolbarItem, useExisting: AXToolbarFilterViewComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, static: true }, { propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], ngImport: i0, template: "<ax-toolbar-menu [items]=\"menuItems\" (onItemClick)=\"itemClick($event)\" #menu >\n \n</ax-toolbar-menu>\n<ax-menu target=\".{{_uid}}\" [items]=\"contextMenuItems\" direction=\"vertical\" #contextMenu (onItemClick)=\"onCtxClick($event)\">\n</ax-menu>", styles: [".ax-toolbar-menu-item .icon-remove{visibility:hidden;color:var(--danger-color);margin-inline-start:25px;font-size:var(--font-sm-size)}.ax-toolbar-menu-item:hover>.icon-remove{visibility:unset}\n"], dependencies: [{ kind: "component", type: i1.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "floatPlacemnet", "selection", "items", "axId", "axClass"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["menuTemplate", "rtl", "size", "selection", "mode", "target", "floatAlignment", "floatPlacemnet", "direction", "items", "axId", "axClass"], outputs: ["onItemClick"] }], encapsulation: i0.ViewEncapsulation.None });
154
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXToolbarFilterViewComponent, selector: "ax-toolbar-filter-view", inputs: { filterPanel: "filterPanel" }, providers: [{ provide: AXToolbarItem, useExisting: AXToolbarFilterViewComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, static: true }, { propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, static: true }], ngImport: i0, template: "<ax-toolbar-menu [items]=\"menuItems\" (onItemClick)=\"itemClick($event)\" #menu >\n \n</ax-toolbar-menu>\n<ax-menu target=\".{{_uid}}\" [items]=\"contextMenuItems\" direction=\"vertical\" #contextMenu (onItemClick)=\"onCtxClick($event)\">\n</ax-menu>", styles: [".ax-toolbar-menu-item .icon-remove{visibility:hidden;color:var(--danger-color);margin-inline-start:25px;font-size:var(--font-sm-size)}.ax-toolbar-menu-item:hover>.icon-remove{visibility:unset}\n"], dependencies: [{ kind: "component", type: i1.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "floatPlacemnet", "selection", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["menuTemplate", "rtl", "size", "selection", "mode", "target", "floatAlignment", "floatPlacemnet", "direction", "items"], outputs: ["onItemClick"] }], encapsulation: i0.ViewEncapsulation.None });
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXToolbarFilterViewComponent, decorators: [{
157
157
  type: Component,