@acorex/components 5.0.46 → 5.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2020/lib/alert/alert.component.mjs +32 -36
  2. package/esm2020/lib/badge/badge.component.mjs +9 -9
  3. package/esm2020/lib/base/events.class.mjs +4 -5
  4. package/esm2020/lib/base/mixin/button-mixin.class.mjs +2 -38
  5. package/esm2020/lib/base/mixin/color-look-mixing.class.mjs +48 -0
  6. package/esm2020/lib/base/mixin/mixin.class.mjs +5 -4
  7. package/esm2020/lib/base/mixin/selection-component.class.mjs +2 -2
  8. package/esm2020/lib/base/mixin/textbox-mixin.class.mjs +6 -2
  9. package/esm2020/lib/base/mixin/value-mixin.class.mjs +1 -1
  10. package/esm2020/lib/button/button.component.mjs +4 -3
  11. package/esm2020/lib/calendar/calendar.class.mjs +19 -2
  12. package/esm2020/lib/calendar/calendar.component.mjs +44 -20
  13. package/esm2020/lib/datepicker/datepicker.component.mjs +8 -6
  14. package/esm2020/lib/decorators/content.component.mjs +1 -1
  15. package/esm2020/lib/dialog/dialog.component.mjs +1 -1
  16. package/esm2020/lib/label/label.component.mjs +8 -5
  17. package/esm2020/lib/number-box/number-box.component.mjs +2 -2
  18. package/esm2020/lib/password-box/password-box.component.mjs +2 -2
  19. package/esm2020/lib/progress-bar/index.mjs +3 -0
  20. package/esm2020/lib/progress-bar/progress-bar.component.mjs +27 -0
  21. package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -0
  22. package/esm2020/lib/selectbox/selectbox.component.mjs +2 -2
  23. package/esm2020/lib/selection-list/selection-list.component.mjs +3 -3
  24. package/esm2020/lib/tabs/tab-item.component.mjs +45 -26
  25. package/esm2020/lib/tabs/tabs.class.mjs +1 -1
  26. package/esm2020/lib/tabs/tabs.component.mjs +29 -11
  27. package/esm2020/lib/textarea/textarea.component.mjs +2 -2
  28. package/esm2020/lib/textbox/textbox.component.mjs +3 -3
  29. package/esm2020/lib/time-box/time-box.component.mjs +2 -2
  30. package/esm2020/public-api.mjs +2 -1
  31. package/fesm2015/acorex-components.mjs +290 -162
  32. package/fesm2015/acorex-components.mjs.map +1 -1
  33. package/fesm2020/acorex-components.mjs +289 -162
  34. package/fesm2020/acorex-components.mjs.map +1 -1
  35. package/lib/alert/alert.component.d.ts +40 -10
  36. package/lib/badge/badge.component.d.ts +36 -4
  37. package/lib/base/events.class.d.ts +1 -2
  38. package/lib/base/mixin/button-mixin.class.d.ts +5 -18
  39. package/lib/base/mixin/color-look-mixing.class.d.ts +45 -0
  40. package/lib/base/mixin/mixin.class.d.ts +33 -33
  41. package/lib/base/mixin/textbox-mixin.class.d.ts +4 -0
  42. package/lib/button/button.component.d.ts +1 -1
  43. package/lib/calendar/calendar.class.d.ts +4 -0
  44. package/lib/calendar/calendar.component.d.ts +9 -4
  45. package/lib/datepicker/datepicker.component.d.ts +2 -32
  46. package/lib/label/label.component.d.ts +2 -1
  47. package/lib/number-box/number-box.component.d.ts +1 -1
  48. package/lib/password-box/password-box.component.d.ts +1 -1
  49. package/lib/progress-bar/index.d.ts +2 -0
  50. package/lib/progress-bar/progress-bar.component.d.ts +12 -0
  51. package/lib/progress-bar/progress-bar.module.d.ts +8 -0
  52. package/lib/selectbox/selectbox.component.d.ts +1 -1
  53. package/lib/tabs/tab-item.component.d.ts +39 -5
  54. package/lib/tabs/tabs.class.d.ts +2 -2
  55. package/lib/tabs/tabs.component.d.ts +7 -3
  56. package/lib/textarea/textarea.component.d.ts +1 -1
  57. package/lib/textbox/textbox.component.d.ts +1 -1
  58. package/lib/time-box/time-box.component.d.ts +1 -1
  59. package/package.json +1 -1
  60. package/public-api.d.ts +1 -0
@@ -277,7 +277,7 @@ export class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {
277
277
  }
278
278
  }
279
279
  AXSelectBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AXSelectBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
280
- AXSelectBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", pageSize: "pageSize", valueField: "valueField", textField: "textField", items: "items", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", searchSettings: "searchSettings", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged", valueChanged: "valueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }, { propertyName: "_searchBox", first: true, predicate: ["searchBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span class=\"ax-mx-2\"> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <div class=\"ax-flex ax-mx-2\">\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <ax-badge [text]=\"_getItemDisplayTextTemplte(item)\" color=\"light\" class=\"ax-me-2\">\r\n <ax-suffix>\r\n <ax-icon icon=\"ax-ic ax-ic-close ax-cursor-pointer\"\r\n (click)=\"_handleBadgeRemove($event,item)\"></ax-icon>\r\n </ax-suffix>\r\n </ax-badge>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\"> {{placeholder}}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-ic ax-ic-close\"></ax-icon>\r\n</ax-button>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-prefix *ngIf=\"(isLoading && !this.popover.isOpen);else icon\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ax-prefix>\r\n <ng-template #icon>\r\n <ax-icon #icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ng-template>\r\n</ax-button>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\r\n [class.ax-overlay-center]=\"_isMobile\" [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list ax-list-container\" panel>\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span>{{_popoverTitle}}</span>\r\n <i class=\"ax-ic {{multiple?'ax-ic-check !ax-text-primary-500':'ax-ic-close'}}\" (click)=\"close()\"\r\n tabindex=\"1\"></i>\r\n </div>\r\n <div *ngIf=\"searchSettings.enabled\" class=\"ax-p-2\" [cdkTrapFocus]=\"true\">\r\n <ax-text-box #searchBox placeholder=\"{{ 'common.search' | trans }}\" [debounceTime]=\"500\"\r\n [(value)]=\"searchSettings.expr\" (onValueChanged)=\"_onSearchExprChanged($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <!--------------- Check empty state ---------------->\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <!--------------- recursive template ---------------->\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"tmpTree; context:{ list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <!--------------- items iteration ---------------->\r\n <ng-container *ngFor=\"let item of list;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\" \r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0;else tmpItem\">\r\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\" >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <!--------------- children iteration ---------------->\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-check-box]=\"checkbox\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <input type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\">\r\n &nbsp;\r\n &nbsp;\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <!--------------- loading template --------------->\r\n <ng-container *ngIf=\"isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!--------------- empty template --------------->\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</ax-popover>", components: [{ type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["text", "color"] }, { type: i3.AXDecoratorSuffixComponent, selector: "ax-suffix" }, { type: i4.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }, { type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "text", "submitBehavior", "cancelBehavior", "color", "look", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i6.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i7.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { type: i8.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass"], outputs: ["onOpened", "onClosed"] }, { type: i9.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "allowNull", "value", "debounceTime", "name", "checked", "placeholder", "maxLength"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "trans": i1.AXTranslatorPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
280
+ AXSelectBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", debounceTime: "debounceTime", name: "name", checked: "checked", placeholder: "placeholder", maxLength: "maxLength", type: "type", pageSize: "pageSize", valueField: "valueField", textField: "textField", items: "items", disabledField: "disabledField", disabledCallback: "disabledCallback", multiple: "multiple", selectionMode: "selectionMode", clearButton: "clearButton", searchSettings: "searchSettings", checkbox: "checkbox" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged", valueChanged: "valueChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ax-editor-container ax-drop-down" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true, static: true }, { propertyName: "_searchBox", first: true, predicate: ["searchBox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span class=\"ax-mx-2\"> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <div class=\"ax-flex ax-mx-2\">\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <ax-badge [text]=\"_getItemDisplayTextTemplte(item)\" color=\"light\" class=\"ax-me-2\">\r\n <ax-suffix>\r\n <ax-icon icon=\"ax-ic ax-ic-close ax-cursor-pointer\"\r\n (click)=\"_handleBadgeRemove($event,item)\"></ax-icon>\r\n </ax-suffix>\r\n </ax-badge>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\"> {{placeholder}}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-ic ax-ic-close\"></ax-icon>\r\n</ax-button>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-prefix *ngIf=\"(isLoading && !this.popover.isOpen);else icon\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ax-prefix>\r\n <ng-template #icon>\r\n <ax-icon #icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ng-template>\r\n</ax-button>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\r\n [class.ax-overlay-center]=\"_isMobile\" [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list ax-list-container\" panel>\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span>{{_popoverTitle}}</span>\r\n <i class=\"ax-ic {{multiple?'ax-ic-check !ax-text-primary-500':'ax-ic-close'}}\" (click)=\"close()\"\r\n tabindex=\"1\"></i>\r\n </div>\r\n <div *ngIf=\"searchSettings.enabled\" class=\"ax-p-2\" [cdkTrapFocus]=\"true\">\r\n <ax-text-box #searchBox placeholder=\"{{ 'common.search' | trans }}\" [debounceTime]=\"500\"\r\n [(value)]=\"searchSettings.expr\" (onValueChanged)=\"_onSearchExprChanged($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <!--------------- Check empty state ---------------->\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <!--------------- recursive template ---------------->\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"tmpTree; context:{ list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <!--------------- items iteration ---------------->\r\n <ng-container *ngFor=\"let item of list;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\" \r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0;else tmpItem\">\r\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\" >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <!--------------- children iteration ---------------->\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-check-box]=\"checkbox\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <input type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\">\r\n &nbsp;\r\n &nbsp;\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <!--------------- loading template --------------->\r\n <ng-container *ngIf=\"isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!--------------- empty template --------------->\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</ax-popover>", components: [{ type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { type: i3.AXDecoratorSuffixComponent, selector: "ax-suffix" }, { type: i4.AXIconComponent, selector: "ax-icon", inputs: ["icon"] }, { type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "size", "color", "look", "text", "submitBehavior", "cancelBehavior", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange"] }, { type: i6.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { type: i7.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { type: i8.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass"], outputs: ["onOpened", "onClosed"] }, { type: i9.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "allowNull", "value", "debounceTime", "name", "checked", "placeholder", "maxLength", "type"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i10.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "trans": i1.AXTranslatorPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
281
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
282
282
  type: Component,
283
283
  args: [{ selector: 'ax-select-box', inputs: [...DROPDOWN_INPUTS, ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS, ...DATALIST_INPUTS, ...SELECTION_INPUTS], outputs: [...DROPDOWN_OUTPUT, ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT, ...SELECTION_OUTPUT], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ax-editor-container ax-drop-down' }, template: "<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span class=\"ax-mx-2\"> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <div class=\"ax-flex ax-mx-2\">\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <ax-badge [text]=\"_getItemDisplayTextTemplte(item)\" color=\"light\" class=\"ax-me-2\">\r\n <ax-suffix>\r\n <ax-icon icon=\"ax-ic ax-ic-close ax-cursor-pointer\"\r\n (click)=\"_handleBadgeRemove($event,item)\"></ax-icon>\r\n </ax-suffix>\r\n </ax-badge>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\"> {{placeholder}}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-ic ax-ic-close\"></ax-icon>\r\n</ax-button>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-prefix *ngIf=\"(isLoading && !this.popover.isOpen);else icon\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ax-prefix>\r\n <ng-template #icon>\r\n <ax-icon #icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ng-template>\r\n</ax-button>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\r\n [class.ax-overlay-center]=\"_isMobile\" [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list ax-list-container\" panel>\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span>{{_popoverTitle}}</span>\r\n <i class=\"ax-ic {{multiple?'ax-ic-check !ax-text-primary-500':'ax-ic-close'}}\" (click)=\"close()\"\r\n tabindex=\"1\"></i>\r\n </div>\r\n <div *ngIf=\"searchSettings.enabled\" class=\"ax-p-2\" [cdkTrapFocus]=\"true\">\r\n <ax-text-box #searchBox placeholder=\"{{ 'common.search' | trans }}\" [debounceTime]=\"500\"\r\n [(value)]=\"searchSettings.expr\" (onValueChanged)=\"_onSearchExprChanged($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <!--------------- Check empty state ---------------->\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <!--------------- recursive template ---------------->\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"tmpTree; context:{ list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <!--------------- items iteration ---------------->\r\n <ng-container *ngFor=\"let item of list;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\" \r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0;else tmpItem\">\r\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\" >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <!--------------- children iteration ---------------->\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-check-box]=\"checkbox\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <input type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\">\r\n &nbsp;\r\n &nbsp;\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <!--------------- loading template --------------->\r\n <ng-container *ngIf=\"isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!--------------- empty template --------------->\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</ax-popover>" }]
@@ -303,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
303
303
  type: HostListener,
304
304
  args: ['keydown', ['$event']]
305
305
  }] } });
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hMLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQXFDLE1BQU0sU0FBUyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFZaEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDRCQUE0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WSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsaUJBQzlGLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7K0tBTW5ELE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUy9DLFdBQVc7c0JBRFYsS0FBSztnQkFNSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVOLFFBQVE7c0JBRFAsS0FBSztnQkFJRSxhQUFhO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXBDLFVBQVU7c0JBRGpCLFNBQVM7dUJBQUMsV0FBVztnQkFJZCxxQkFBcUI7c0JBRDVCLFlBQVk7dUJBQUMsZUFBZTtnQkF3RzdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBOZ1pvbmUsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEFYQmFzZVNlbGVjdGlvbkRyb3Bkb3duTWl4aW4sIEFYQ2xpY2tFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBEQVRBTElTVF9JTlBVVFMgfSBmcm9tICcuLi9iYXNlL21peGluL2RhdGFsaXN0LWNvbXBvbmVudC5jbGFzcyc7XHJcbmltcG9ydCB7IERST1BET1dOX0lOUFVUUywgRFJPUERPV05fT1VUUFVUIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9kcm9wZG93bi1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7IElOVEVSQUNUSVZFX0lOUFVUUywgSU5URVJBQ1RJVkVfT1VUUFVUIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9pbnRlcmFjdGl2ZS1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7IFNFTEVDVElPTl9JTlBVVFMsIFNFTEVDVElPTl9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3NlbGVjdGlvbi1jb21wb25lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBURVhUQk9YX0lOUFVUUywgVEVYVEJPWF9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBWQUxVRV9JTlBVVFMsIFZBTFVFX09VVFBVVCB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyJztcclxuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdGJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBpbnB1dHM6IFsuLi5EUk9QRE9XTl9JTlBVVFMsIC4uLklOVEVSQUNUSVZFX0lOUFVUUywgLi4uVkFMVUVfSU5QVVRTLCAuLi5URVhUQk9YX0lOUFVUUywgLi4uREFUQUxJU1RfSU5QVVRTLCAuLi5TRUxFQ1RJT05fSU5QVVRTXSxcclxuICAgIG91dHB1dHM6IFsuLi5EUk9QRE9XTl9PVVRQVVQsIC4uLklOVEVSQUNUSVZFX09VVFBVVCwgLi4uVkFMVUVfT1VUUFVULCAuLi5URVhUQk9YX09VVFBVVCwgLi4uU0VMRUNUSU9OX09VVFBVVF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlU2VsZWN0aW9uRHJvcGRvd25NaXhpbiB7XHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoQVhQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xyXG5cclxuICAgIF90YXJnZXQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgX3BvcG92ZXJUaXRsZTogc3RyaW5nO1xyXG4gICAgX3BvcG92ZXJXaWR0aDogbnVtYmVyO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2xlYXJCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9zZWFyY2hTZXR0aW5nczogeyBlbmFibGVkPzogYm9vbGVhbiwgZXhwcj86IHN0cmluZyB9ID0geyBlbmFibGVkOiBmYWxzZSwgZXhwcjogbnVsbCB9O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHNlYXJjaFNldHRpbmdzKCk6IHsgZW5hYmxlZD86IGJvb2xlYW4sIGV4cHI/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFNldHRpbmdzO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzZWFyY2hTZXR0aW5ncyh2OiB7IGVuYWJsZWQ/OiBib29sZWFuLCBleHByPzogc3RyaW5nIH0pIHtcclxuICAgICAgICB0aGlzLl9zZWFyY2hTZXR0aW5ncyA9IHYgfHwgeyBlbmFibGVkOiBmYWxzZSwgZXhwcjogbnVsbCB9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHByaXZhdGUgbGlzdENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JylcclxuICAgIHByaXZhdGUgX3NlYXJjaEJveDogQVhUZXh0Qm94Q29tcG9uZW50O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2VtcHR5VGVtcGxhdGUnKVxyXG4gICAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuICAgIGdldCBlbXB0eVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50RW1wdHlUZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBfaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIF9mb3JjZUZvY3VzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXHJcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm0sXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX2Nkcik7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUFycm93Q2xpY2tFdmVudChlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgICAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUlucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBvbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIub25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuX2lzTW9iaWxlID0gdGhpcy5fcGxhdGZvcm0uaXMoJ01vYmlsZScpO1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJUaXRsZSA9IHRoaXMucGxhY2Vob2xkZXIgfHwgQVhUcmFuc2xhdG9yLmdldCgnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnKVxyXG4gICAgfVxyXG5cclxuICAgIG9uVmlld0luaXQoKSB7XHJcbiAgICAgICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJXaWR0aCA9IHRoaXMuX2lzTW9iaWxlID8gbnVsbCA6IHRoaXMuX3RhcmdldC5vZmZzZXRXaWR0aDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVmcmVzaCgpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICBzdXBlci5yZWZyZXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlTGlzdFNjcm9sbChlOiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgICAgICBpZiAoKGxpc3Quc2Nyb2xsVG9wIDwgbGlzdC5zY3JvbGxIZWlnaHQgLSBsaXN0LmNsaWVudEhlaWdodCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja0ZvckxvYWREYXRhKCkge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBoZWFkZXJTaXplID0gbGlzdC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtb3ZlcmxheS1wYW5lLWhlYWRlcicpPy5vZmZzZXRIZWlnaHQgfHwgMDtcclxuICAgICAgICBpZiAodGhpcy5sb2FkZWRDb3VudCA8IHRoaXMudG90YWxDb3VudCAmJiBsaXN0LnNjcm9sbEhlaWdodCA8ICgobGlzdC5wYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIGhlYWRlclNpemUpICogMS41KSkge1xyXG4gICAgICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX29uRGF0YUxvYWRlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wb3BvdmVyLmlzT3Blbikge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yTG9hZERhdGEoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZvcmNlRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvcmNlRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpIHtcclxuICAgICAgICBzdXBlci5fb25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlT25SZW1vdmVJdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pXHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlQmFkZ2VSZW1vdmUoZTogTW91c2VFdmVudCwgaXRlbSkge1xyXG4gICAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKVxyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgaXNMZXR0ZXIgPSBuZXcgUmVnRXhwKC9bYS16QS1aMC05XFwtXS8pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpKTtcclxuICAgICAgICBpZiAoZS5jb2RlID09PSAnQmFja3NwYWNlJyAmJiBlLnR5cGUgPT09ICdrZXlkb3duJyAmJlxyXG4gICAgICAgICAgICAoKHRoaXMuYWxsb3dOdWxsID09PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGUuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5jb2RlID09PSAnQXJyb3dVcCcgfHwgZS5jb2RlID09PSAnU3BhY2UnKSAmJiAhdGhpcy5wb3BvdmVyLmlzT3BlbiAmJiBlLnR5cGUgPT09ICdrZXlkb3duJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1CeU5hdigoZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzTGV0dGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dCA9IGUua2V5O1xyXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBfaGFuZGxlUG9wb3ZlcktleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmICgoZS5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGUua2V5ID09PSAnQXJyb3dVcCcpICYmIHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5TmF2KChlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnICYmXHJcbiAgICAgICAgICAgICgodGhpcy5hbGxvd051bGwgPT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHx8XHJcbiAgICAgICAgICAgICAgICAodGhpcy5hbGxvd051bGwgIT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtSWQgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmF4LXN0YXRlLWZvY3VzJykuZGF0YXNldC5pZDtcclxuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSBfLmZpbmRMYXN0KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBmb2N1c2VkSXRlbUlkXSk7XHJcbiAgICAgICAgICAgIGlmIChmb2N1c2VkSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoZm9jdXNlZEl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdChmb2N1c2VkSXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKGZvY3VzZWRJdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5jb2RlID09PSBcIlRhYlwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIF9oYW5kbGVQb3B1cE9uT3BlbmVkKGUpIHtcclxuICAgICAgICB0aGlzLnBvcG92ZXIuZm9jdXMoKTtcclxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9yY2VGb2N1cyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9jdXNTZWxlY3RlZEl0ZW0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX3NlYXJjaEJveCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWFyY2hCb3guZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZVBvcHVwT25DbG9zZWQoZSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfZm9jdXNJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XHJcbiAgICAgXHJcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGZuID0gKHMpID0+IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4ocyk7XHJcbiAgICAgICAgY29uc3QgaXRlbURpdiA9IGZuKGAuYXgtbGlzdC1pdGVtLmF4LXN0YXRlLWZvY3VzYCkgfHwgZm4oYC5heC1saXN0LWl0ZW0uYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgLmF4LWxpc3QtaXRlbWApO1xyXG4gICAgICAgIGxldCBuZXh0ID0gKHNpZ24gPT0gMSA/IGl0ZW1EaXYubmV4dEVsZW1lbnRTaWJsaW5nIDogaXRlbURpdi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAobmV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KG5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gaXRlbURpdi5jbG9zZXN0KCcuYXgtbGlzdC1pdGVtLWdyb3VwJyk7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpcyA9IChzaWduID09IDEgPyBwYXJlbnQubmV4dEVsZW1lbnRTaWJsaW5nIDogcGFyZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpPy5xdWVyeVNlbGVjdG9yQWxsKCdsaScpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IHNpZ24gPT0gMSA/IF8uZmlyc3QobGlzKSA6IF8ubGFzdChsaXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9mb2N1c1NlbGVjdGVkSXRlbSgpIHtcclxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBmbiA9IChzKSA9PiBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KHMpO1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtRGl2ID0gZm4oYC5heC1saXN0LWl0ZW0uYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgLmF4LWxpc3QtaXRlbWApO1xyXG4gICAgICAgICAgICBpZiAoaXRlbURpdikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtRWxlbWVudChpdGVtRGl2KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZvY3VzSXRlbUVsZW1lbnQoZWw6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgbGlzdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtbGlzdC1pdGVtJykuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjID09IGVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYy5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1mb2N1cycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGMuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtZm9jdXMnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaEJveCA/IHRoaXMuX3NlYXJjaEJveC5mb2N1cygpIDogZWwuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbGFzdCA9IF8ubGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICBpZiAobGFzdCkge1xyXG4gICAgICAgICAgICBpID0gXy5maW5kTGFzdEluZGV4KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBsYXN0W3RoaXMudmFsdWVGaWVsZF1dKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaSArPSBzaWduO1xyXG4gICAgICAgIGxldCBuZXh0ID0gXy5udGg8YW55Pih0aGlzLmZsYXRJdGVtcywgaSk7XHJcbiAgICAgICAgd2hpbGUgKG5leHQ/LmNoaWxkcmVuICYmIG5leHQ/LmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpICs9IHNpZ247XHJcbiAgICAgICAgICAgIG5leHQgPSBfLm50aDxhbnk+KHRoaXMuZmxhdEl0ZW1zLCBpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5leHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV4dCA9PSBudWxsICYmIHNpZ24gPT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9vblNlYXJjaEV4cHJDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8c3RyaW5nPikge1xyXG4gICAgICAgIHRoaXMuZW1wdHkoKTtcclxuICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBfZmV0Y2hEYXRhKClcclxuICAgIHtcclxuICAgICAgICBzdXBlci5fZmV0Y2hEYXRhKHsgc2VhcmNoUXVlcnk6IHRoaXMuX3NlYXJjaEJveD8udmFsdWUgfSk7XHJcbiAgICB9XHJcbn0iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48ZGl2IGNsYXNzPVwiYXgtZHJvcGRvd24tY29udGVudFwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJfaGFuZGxlSW5wdXRDbGlja0V2ZW50KCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1zZWxlY3QtYm94LXNlbGVjdGlvblwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aDsgZWxzZSBzaG93UGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgdGhlbiBzaW5nbGVTZWxlY3RlZFRlbXBsYXRlOyBlbHNlIG11bHRpcGxlU2VsZWN0ZWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVNlbGVjdGVkVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LW14LTJcIj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVNlbGVjdGVkVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1teC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKVwiIGNvbG9yPVwibGlnaHRcIiBjbGFzcz1cImF4LW1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljIGF4LWljLWNsb3NlIGF4LWN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVCYWRnZVJlbW92ZSgkZXZlbnQsaXRlbSlcIj48L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1iYWRnZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1BsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCI+IHt7cGxhY2Vob2xkZXJ9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImNsZWFyKClcIiBbdGFiSW5kZXhdPVwiLTFcIlxyXG4gICAgKm5nSWY9XCJ2YWx1ZSAmJiBjbGVhckJ1dHRvbiAmJiAgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cclxuICAgIDxheC1pY29uIGljb249XCJheC1pYyBheC1pYy1jbG9zZVwiPjwvYXgtaWNvbj5cclxuPC9heC1idXR0b24+XHJcbjxheC1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgPGF4LXByZWZpeCAqbmdJZj1cIihpc0xvYWRpbmcgJiYgIXRoaXMucG9wb3Zlci5pc09wZW4pO2Vsc2UgaWNvblwiPlxyXG4gICAgICAgIDxheC1sb2FkaW5nIHR5cGU9XCJzcGlubmVyXCI+PC9heC1sb2FkaW5nPlxyXG4gICAgPC9heC1wcmVmaXg+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ljb24+XHJcbiAgICAgICAgPGF4LWljb24gI2ljb24gaWNvbj1cImF4LWljIGF4LWljLWNoZXZyb24gYXgtdHJhbnNmb3JtIGF4LS1yb3RhdGUtOTBcIj48L2F4LWljb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2F4LWJ1dHRvbj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGF4LXBvcG92ZXIgW3RhcmdldF09XCJfdGFyZ2V0XCIgW3Bvc2l0aW9uXT1cInBvc2l0aW9uXCIgW29wZW5UcmlnZ2VyXT1cIidtYW51YWwnXCIgW2Nsb3NlVHJpZ2dlcl09XCInY2xpY2tvdXQnXCJcclxuICAgIChvbk9wZW5lZCk9XCJfaGFuZGxlUG9wdXBPbk9wZW5lZCgkZXZlbnQpXCIgKG9uQ2xvc2VkKT1cIl9oYW5kbGVQb3B1cE9uQ2xvc2VkKCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIiAoa2V5ZG93bik9XCJfaGFuZGxlUG9wb3ZlcktleWRvd24oJGV2ZW50KVwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgY2RrVHJhcEZvY3VzXHJcbiAgICAgICAgW2NsYXNzLmF4LW92ZXJsYXktY2VudGVyXT1cIl9pc01vYmlsZVwiIFtzdHlsZS5taW4td2lkdGgucHhdPVwiX3BvcG92ZXJXaWR0aFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1saXN0IGF4LWxpc3QtY29udGFpbmVyXCIgcGFuZWw+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfaXNNb2JpbGVcIiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7X3BvcG92ZXJUaXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pYyB7e211bHRpcGxlPydheC1pYy1jaGVjayAhYXgtdGV4dC1wcmltYXJ5LTUwMCc6J2F4LWljLWNsb3NlJ319XCIgKGNsaWNrKT1cImNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hTZXR0aW5ncy5lbmFibGVkXCIgY2xhc3M9XCJheC1wLTJcIiBbY2RrVHJhcEZvY3VzXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAjc2VhcmNoQm94IHBsYWNlaG9sZGVyPVwie3sgJ2NvbW1vbi5zZWFyY2gnIHwgdHJhbnMgfX1cIiBbZGVib3VuY2VUaW1lXT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VhcmNoU2V0dGluZ3MuZXhwclwiIChvblZhbHVlQ2hhbmdlZCk9XCJfb25TZWFyY2hFeHByQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbXMtY29udGFpbmVyIGF4LXZlcnRpY2FsIGF4LWRlZmF1bHRcIiBbY2xhc3MuYXgtZnVsbF09XCJfaXNNb2JpbGVcIiAgKHNjcm9sbCk9XCJfaGFuZGxlTGlzdFNjcm9sbCgkZXZlbnQpXCIgI2xpc3RDb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBDaGVjayBlbXB0eSBzdGF0ZSAgLS0tLS0tLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gcmVjdXJzaXZlIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6eyBsaXN0OiBkaXNwbGF5SXRlbXMgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBUcmVlIGxldC1saXN0PVwibGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gaXRlbXMgaXRlcmF0aW9uICAtLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0O2xldCBpID0gaW5kZXg7dHJhY2tCeSA6IF90cmFja0J5RnVuY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZnVhbHRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJheC1saXN0LWl0ZW1cIiAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJpdGVtW3RoaXMudmFsdWVGaWVsZF1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sZGlyZWN0aW9uOmRpcmVjdGlvbn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmdWFsdFRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMDtlbHNlIHRtcEl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbS1ncm91cFwiIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGlsZHJlbiBpdGVyYXRpb24gIC0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6eyBsaXN0OiAgaXRlbS5jaGlsZHJlbiB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgIGVsc2UgbXVsdGlwbGVUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiIFthdHRyLnRhYmluZGV4XT1cImlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1jaGVjay1ib3hdPVwiY2hlY2tib3hcIiBbYXR0ci50YWJpbmRleF09XCJpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIml0ZW1bdGhpcy52YWx1ZUZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBsb2FkaW5nIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gY2hlY2sgZm9yIGN1c3RvbSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7IGVsc2UgZWxzZUxvYWRpbmdUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUxvYWRpbmdUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxvYWRpbmcgdGV4dD1cInt7ICdsYXlvdXQubG9hZGluZy50ZXh0JyB8IHRyYW5zIH19XCI+PC9heC1sb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBlbXB0eSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBFbXB0eT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eVRlbXBsYXRlOyBlbHNlIGVsc2VFbXB0eVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VFbXB0eVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYXgtcG9wb3Zlcj4iXX0=
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hMLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQXFDLE1BQU0sU0FBUyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFZaEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDRCQUE0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WSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsaUJBQzlGLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7K0tBTW5ELE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUy9DLFdBQVc7c0JBRFYsS0FBSztnQkFNSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVOLFFBQVE7c0JBRFAsS0FBSztnQkFJRSxhQUFhO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXBDLFVBQVU7c0JBRGpCLFNBQVM7dUJBQUMsV0FBVztnQkFJZCxxQkFBcUI7c0JBRDVCLFlBQVk7dUJBQUMsZUFBZTtnQkF3RzdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBOZ1pvbmUsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEFYQmFzZVNlbGVjdGlvbkRyb3Bkb3duTWl4aW4sIEFYQ2xpY2tFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBEQVRBTElTVF9JTlBVVFMgfSBmcm9tICcuLi9iYXNlL21peGluL2RhdGFsaXN0LWNvbXBvbmVudC5jbGFzcyc7XHJcbmltcG9ydCB7IERST1BET1dOX0lOUFVUUywgRFJPUERPV05fT1VUUFVUIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9kcm9wZG93bi1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7IElOVEVSQUNUSVZFX0lOUFVUUywgSU5URVJBQ1RJVkVfT1VUUFVUIH0gZnJvbSAnLi4vYmFzZS9taXhpbi9pbnRlcmFjdGl2ZS1taXhpbi5jbGFzcyc7XHJcbmltcG9ydCB7IFNFTEVDVElPTl9JTlBVVFMsIFNFTEVDVElPTl9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3NlbGVjdGlvbi1jb21wb25lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBURVhUQk9YX0lOUFVUUywgVEVYVEJPWF9PVVRQVVQgfSBmcm9tICcuLi9iYXNlL21peGluL3RleHRib3gtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBWQUxVRV9JTlBVVFMsIFZBTFVFX09VVFBVVCB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vdmFsdWUtbWl4aW4uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyJztcclxuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdGJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBpbnB1dHM6IFsuLi5EUk9QRE9XTl9JTlBVVFMsIC4uLklOVEVSQUNUSVZFX0lOUFVUUywgLi4uVkFMVUVfSU5QVVRTLCAuLi5URVhUQk9YX0lOUFVUUywgLi4uREFUQUxJU1RfSU5QVVRTLCAuLi5TRUxFQ1RJT05fSU5QVVRTXSxcclxuICAgIG91dHB1dHM6IFsuLi5EUk9QRE9XTl9PVVRQVVQsIC4uLklOVEVSQUNUSVZFX09VVFBVVCwgLi4uVkFMVUVfT1VUUFVULCAuLi5URVhUQk9YX09VVFBVVCwgLi4uU0VMRUNUSU9OX09VVFBVVF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBob3N0OiB7IGNsYXNzOiAnYXgtZWRpdG9yLWNvbnRhaW5lciBheC1kcm9wLWRvd24nIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlU2VsZWN0aW9uRHJvcGRvd25NaXhpbiB7XHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoQVhQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xyXG5cclxuICAgIF90YXJnZXQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgX3BvcG92ZXJUaXRsZTogc3RyaW5nO1xyXG4gICAgX3BvcG92ZXJXaWR0aDogbnVtYmVyO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2xlYXJCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9zZWFyY2hTZXR0aW5nczogeyBlbmFibGVkPzogYm9vbGVhbiwgZXhwcj86IHN0cmluZyB9ID0geyBlbmFibGVkOiBmYWxzZSwgZXhwcjogbnVsbCB9O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHNlYXJjaFNldHRpbmdzKCk6IHsgZW5hYmxlZD86IGJvb2xlYW4sIGV4cHI/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFNldHRpbmdzO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzZWFyY2hTZXR0aW5ncyh2OiB7IGVuYWJsZWQ/OiBib29sZWFuLCBleHByPzogc3RyaW5nIH0pIHtcclxuICAgICAgICB0aGlzLl9zZWFyY2hTZXR0aW5ncyA9IHYgfHwgeyBlbmFibGVkOiBmYWxzZSwgZXhwcjogbnVsbCB9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdsaXN0Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHByaXZhdGUgbGlzdENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JylcclxuICAgIHByaXZhdGUgX3NlYXJjaEJveDogQVhUZXh0Qm94Q29tcG9uZW50O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2VtcHR5VGVtcGxhdGUnKVxyXG4gICAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuICAgIGdldCBlbXB0eVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50RW1wdHlUZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBfaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIF9mb3JjZUZvY3VzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXHJcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IEFYUGxhdGZvcm0sXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfZWxlbWVudFJlZiwgX2Nkcik7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUFycm93Q2xpY2tFdmVudChlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgICAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZUlucHV0Q2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBvbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIub25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuX2lzTW9iaWxlID0gdGhpcy5fcGxhdGZvcm0uaXMoJ01vYmlsZScpO1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJUaXRsZSA9IHRoaXMucGxhY2Vob2xkZXIgfHwgQVhUcmFuc2xhdG9yLmdldCgnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnKVxyXG4gICAgfVxyXG5cclxuICAgIG9uVmlld0luaXQoKSB7XHJcbiAgICAgICAgc3VwZXIub25WaWV3SW5pdCgpO1xyXG4gICAgICAgIHRoaXMuX3BvcG92ZXJXaWR0aCA9IHRoaXMuX2lzTW9iaWxlID8gbnVsbCA6IHRoaXMuX3RhcmdldC5vZmZzZXRXaWR0aDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVmcmVzaCgpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICBzdXBlci5yZWZyZXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZU9uSXRlbUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKVxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlTGlzdFNjcm9sbChlOiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgICAgICBpZiAoKGxpc3Quc2Nyb2xsVG9wIDwgbGlzdC5zY3JvbGxIZWlnaHQgLSBsaXN0LmNsaWVudEhlaWdodCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja0ZvckxvYWREYXRhKCkge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBoZWFkZXJTaXplID0gbGlzdC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtb3ZlcmxheS1wYW5lLWhlYWRlcicpPy5vZmZzZXRIZWlnaHQgfHwgMDtcclxuICAgICAgICBpZiAodGhpcy5sb2FkZWRDb3VudCA8IHRoaXMudG90YWxDb3VudCAmJiBsaXN0LnNjcm9sbEhlaWdodCA8ICgobGlzdC5wYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIGhlYWRlclNpemUpICogMS41KSkge1xyXG4gICAgICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX29uRGF0YUxvYWRlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wb3BvdmVyLmlzT3Blbikge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrRm9yTG9hZERhdGEoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZvcmNlRm9jdXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvcmNlRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBhbnksIG5ld1ZhbHVlOiBhbnkpIHtcclxuICAgICAgICBzdXBlci5fb25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlT25SZW1vdmVJdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKGl0ZW0pXHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBfaGFuZGxlQmFkZ2VSZW1vdmUoZTogTW91c2VFdmVudCwgaXRlbSkge1xyXG4gICAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKVxyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgaXNMZXR0ZXIgPSBuZXcgUmVnRXhwKC9bYS16QS1aMC05XFwtXS8pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpKTtcclxuICAgICAgICBpZiAoZS5jb2RlID09PSAnQmFja3NwYWNlJyAmJiBlLnR5cGUgPT09ICdrZXlkb3duJyAmJlxyXG4gICAgICAgICAgICAoKHRoaXMuYWxsb3dOdWxsID09PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuYWxsb3dOdWxsICE9PSB0cnVlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGUuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5jb2RlID09PSAnQXJyb3dVcCcgfHwgZS5jb2RlID09PSAnU3BhY2UnKSAmJiAhdGhpcy5wb3BvdmVyLmlzT3BlbiAmJiBlLnR5cGUgPT09ICdrZXlkb3duJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1CeU5hdigoZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzTGV0dGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dCA9IGUua2V5O1xyXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBfaGFuZGxlUG9wb3ZlcktleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmICgoZS5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGUua2V5ID09PSAnQXJyb3dVcCcpICYmIHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5pc1VzZXJJbnB1dCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbUJ5TmF2KChlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnICYmXHJcbiAgICAgICAgICAgICgodGhpcy5hbGxvd051bGwgPT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHx8XHJcbiAgICAgICAgICAgICAgICAodGhpcy5hbGxvd051bGwgIT09IHRydWUgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy51bnNlbGVjdEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcy5wb3AoKSk7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtSWQgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmF4LXN0YXRlLWZvY3VzJykuZGF0YXNldC5pZDtcclxuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSBfLmZpbmRMYXN0KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBmb2N1c2VkSXRlbUlkXSk7XHJcbiAgICAgICAgICAgIGlmIChmb2N1c2VkSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoZm9jdXNlZEl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdChmb2N1c2VkSXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXNlcklucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKGZvY3VzZWRJdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZS5jb2RlID09PSBcIlRhYlwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIF9oYW5kbGVQb3B1cE9uT3BlbmVkKGUpIHtcclxuICAgICAgICB0aGlzLnBvcG92ZXIuZm9jdXMoKTtcclxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9yY2VGb2N1cyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9jdXNTZWxlY3RlZEl0ZW0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX3NlYXJjaEJveCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWFyY2hCb3guZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2hhbmRsZVBvcHVwT25DbG9zZWQoZSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfZm9jdXNJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XHJcbiAgICAgXHJcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGZuID0gKHMpID0+IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4ocyk7XHJcbiAgICAgICAgY29uc3QgaXRlbURpdiA9IGZuKGAuYXgtbGlzdC1pdGVtLmF4LXN0YXRlLWZvY3VzYCkgfHwgZm4oYC5heC1saXN0LWl0ZW0uYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgLmF4LWxpc3QtaXRlbWApO1xyXG4gICAgICAgIGxldCBuZXh0ID0gKHNpZ24gPT0gMSA/IGl0ZW1EaXYubmV4dEVsZW1lbnRTaWJsaW5nIDogaXRlbURpdi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAobmV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KG5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gaXRlbURpdi5jbG9zZXN0KCcuYXgtbGlzdC1pdGVtLWdyb3VwJyk7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpcyA9IChzaWduID09IDEgPyBwYXJlbnQubmV4dEVsZW1lbnRTaWJsaW5nIDogcGFyZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpPy5xdWVyeVNlbGVjdG9yQWxsKCdsaScpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IHNpZ24gPT0gMSA/IF8uZmlyc3QobGlzKSA6IF8ubGFzdChsaXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW1FbGVtZW50KGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9mb2N1c1NlbGVjdGVkSXRlbSgpIHtcclxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBmbiA9IChzKSA9PiBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KHMpO1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtRGl2ID0gZm4oYC5heC1saXN0LWl0ZW0uYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgLmF4LWxpc3QtaXRlbWApO1xyXG4gICAgICAgICAgICBpZiAoaXRlbURpdikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtRWxlbWVudChpdGVtRGl2KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZvY3VzSXRlbUVsZW1lbnQoZWw6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RDb250YWluZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgbGlzdC5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtbGlzdC1pdGVtJykuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjID09IGVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYy5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1mb2N1cycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdhdXRvJyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGMuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtZm9jdXMnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaEJveCA/IHRoaXMuX3NlYXJjaEJveC5mb2N1cygpIDogZWwuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbGFzdCA9IF8ubGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICBpZiAobGFzdCkge1xyXG4gICAgICAgICAgICBpID0gXy5maW5kTGFzdEluZGV4KHRoaXMuZmxhdEl0ZW1zLCBbdGhpcy52YWx1ZUZpZWxkLCBsYXN0W3RoaXMudmFsdWVGaWVsZF1dKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaSArPSBzaWduO1xyXG4gICAgICAgIGxldCBuZXh0ID0gXy5udGg8YW55Pih0aGlzLmZsYXRJdGVtcywgaSk7XHJcbiAgICAgICAgd2hpbGUgKG5leHQ/LmNoaWxkcmVuICYmIG5leHQ/LmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpICs9IHNpZ247XHJcbiAgICAgICAgICAgIG5leHQgPSBfLm50aDxhbnk+KHRoaXMuZmxhdEl0ZW1zLCBpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5leHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhuZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV4dCA9PSBudWxsICYmIHNpZ24gPT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIF9vblNlYXJjaEV4cHJDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8c3RyaW5nPikge1xyXG4gICAgICAgIHRoaXMuZW1wdHkoKTtcclxuICAgICAgICB0aGlzLl9mZXRjaERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBfZmV0Y2hEYXRhKClcclxuICAgIHtcclxuICAgICAgICBzdXBlci5fZmV0Y2hEYXRhKHsgc2VhcmNoUXVlcnk6IHRoaXMuX3NlYXJjaEJveD8udmFsdWUgfSk7XHJcbiAgICB9XHJcbn0iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj5cclxuPC9uZy1jb250ZW50PlxyXG48ZGl2IGNsYXNzPVwiYXgtZHJvcGRvd24tY29udGVudFwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJfaGFuZGxlSW5wdXRDbGlja0V2ZW50KCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1zZWxlY3QtYm94LXNlbGVjdGlvblwiIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiIChmb2N1cyk9XCJfZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJfZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aDsgZWxzZSBzaG93UGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgdGhlbiBzaW5nbGVTZWxlY3RlZFRlbXBsYXRlOyBlbHNlIG11bHRpcGxlU2VsZWN0ZWRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVNlbGVjdGVkVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LW14LTJcIj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVNlbGVjdGVkVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1teC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZEl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKVwiIGNvbG9yPVwibGlnaHRcIiBjbGFzcz1cImF4LW1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zdWZmaXg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljIGF4LWljLWNsb3NlIGF4LWN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVCYWRnZVJlbW92ZSgkZXZlbnQsaXRlbSlcIj48L2F4LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1iYWRnZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1BsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCI+IHt7cGxhY2Vob2xkZXJ9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxheC1idXR0b24gY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImNsZWFyKClcIiBbdGFiSW5kZXhdPVwiLTFcIlxyXG4gICAgKm5nSWY9XCJ2YWx1ZSAmJiBjbGVhckJ1dHRvbiAmJiAgIShkaXNhYmxlZCB8fCByZWFkb25seSlcIj5cclxuICAgIDxheC1pY29uIGljb249XCJheC1pYyBheC1pYy1jbG9zZVwiPjwvYXgtaWNvbj5cclxuPC9heC1idXR0b24+XHJcbjxheC1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgY29sb3I9XCJsaWdodFwiIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cIl9oYW5kbGVBcnJvd0NsaWNrRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgPGF4LXByZWZpeCAqbmdJZj1cIihpc0xvYWRpbmcgJiYgIXRoaXMucG9wb3Zlci5pc09wZW4pO2Vsc2UgaWNvblwiPlxyXG4gICAgICAgIDxheC1sb2FkaW5nIHR5cGU9XCJzcGlubmVyXCI+PC9heC1sb2FkaW5nPlxyXG4gICAgPC9heC1wcmVmaXg+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ljb24+XHJcbiAgICAgICAgPGF4LWljb24gI2ljb24gaWNvbj1cImF4LWljIGF4LWljLWNoZXZyb24gYXgtdHJhbnNmb3JtIGF4LS1yb3RhdGUtOTBcIj48L2F4LWljb24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2F4LWJ1dHRvbj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbjwvbmctY29udGVudD5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+XHJcbjwvbmctY29udGVudD5cclxuPGF4LXBvcG92ZXIgW3RhcmdldF09XCJfdGFyZ2V0XCIgW3Bvc2l0aW9uXT1cInBvc2l0aW9uXCIgW29wZW5UcmlnZ2VyXT1cIidtYW51YWwnXCIgW2Nsb3NlVHJpZ2dlcl09XCInY2xpY2tvdXQnXCJcclxuICAgIChvbk9wZW5lZCk9XCJfaGFuZGxlUG9wdXBPbk9wZW5lZCgkZXZlbnQpXCIgKG9uQ2xvc2VkKT1cIl9oYW5kbGVQb3B1cE9uQ2xvc2VkKCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIiAoa2V5ZG93bik9XCJfaGFuZGxlUG9wb3ZlcktleWRvd24oJGV2ZW50KVwiIHRhYmluZGV4PVwiMFwiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgY2RrVHJhcEZvY3VzXHJcbiAgICAgICAgW2NsYXNzLmF4LW92ZXJsYXktY2VudGVyXT1cIl9pc01vYmlsZVwiIFtzdHlsZS5taW4td2lkdGgucHhdPVwiX3BvcG92ZXJXaWR0aFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1saXN0IGF4LWxpc3QtY29udGFpbmVyXCIgcGFuZWw+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfaXNNb2JpbGVcIiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7X3BvcG92ZXJUaXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pYyB7e211bHRpcGxlPydheC1pYy1jaGVjayAhYXgtdGV4dC1wcmltYXJ5LTUwMCc6J2F4LWljLWNsb3NlJ319XCIgKGNsaWNrKT1cImNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hTZXR0aW5ncy5lbmFibGVkXCIgY2xhc3M9XCJheC1wLTJcIiBbY2RrVHJhcEZvY3VzXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCAjc2VhcmNoQm94IHBsYWNlaG9sZGVyPVwie3sgJ2NvbW1vbi5zZWFyY2gnIHwgdHJhbnMgfX1cIiBbZGVib3VuY2VUaW1lXT1cIjUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VhcmNoU2V0dGluZ3MuZXhwclwiIChvblZhbHVlQ2hhbmdlZCk9XCJfb25TZWFyY2hFeHByQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbXMtY29udGFpbmVyIGF4LXZlcnRpY2FsIGF4LWRlZmF1bHRcIiBbY2xhc3MuYXgtZnVsbF09XCJfaXNNb2JpbGVcIiAgKHNjcm9sbCk9XCJfaGFuZGxlTGlzdFNjcm9sbCgkZXZlbnQpXCIgI2xpc3RDb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBDaGVjayBlbXB0eSBzdGF0ZSAgLS0tLS0tLS0tLS0tLS0tLT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gcmVjdXJzaXZlIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6eyBsaXN0OiBkaXNwbGF5SXRlbXMgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBUcmVlIGxldC1saXN0PVwibGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gaXRlbXMgaXRlcmF0aW9uICAtLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0O2xldCBpID0gaW5kZXg7dHJhY2tCeSA6IF90cmFja0J5RnVuY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZnVhbHRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJheC1saXN0LWl0ZW1cIiAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJpdGVtW3RoaXMudmFsdWVGaWVsZF1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sZGlyZWN0aW9uOmRpcmVjdGlvbn1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmdWFsdFRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMDtlbHNlIHRtcEl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbS1ncm91cFwiIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGlsZHJlbiBpdGVyYXRpb24gIC0tLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRtcFRyZWU7IGNvbnRleHQ6eyBsaXN0OiAgaXRlbS5jaGlsZHJlbiB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgIGVsc2UgbXVsdGlwbGVUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiIFthdHRyLnRhYmluZGV4XT1cImlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCxpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaWRdPVwiaXRlbVt0aGlzLnZhbHVlRmllbGRdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgX2dldEl0ZW1EaXNwbGF5VGV4dFRlbXBsdGUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImF4LWxpc3QtaXRlbVwiIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1jaGVjay1ib3hdPVwiY2hlY2tib3hcIiBbYXR0ci50YWJpbmRleF09XCJpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIml0ZW1bdGhpcy52YWx1ZUZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBsb2FkaW5nIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gY2hlY2sgZm9yIGN1c3RvbSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7IGVsc2UgZWxzZUxvYWRpbmdUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUxvYWRpbmdUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxvYWRpbmcgdGV4dD1cInt7ICdsYXlvdXQubG9hZGluZy50ZXh0JyB8IHRyYW5zIH19XCI+PC9heC1sb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBlbXB0eSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBFbXB0eT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eVRlbXBsYXRlOyBlbHNlIGVsc2VFbXB0eVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VFbXB0eVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYXgtcG9wb3Zlcj4iXX0=
@@ -18,7 +18,7 @@ export class AXSelectionListComponent extends AXBaseSelectionValueMixin {
18
18
  }
19
19
  }
20
20
  AXSelectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AXSelectionListComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21
- AXSelectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", valueField: "valueField", textField: "textField", multiple: "multiple", items: "items", selectionMode: "selectionMode", cssClass: "cssClass", direction: "direction" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21
+ AXSelectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", size: "size", value: "value", valueField: "valueField", textField: "textField", multiple: "multiple", items: "items", selectionMode: "selectionMode", cssClass: "cssClass", direction: "direction" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AXSelectionListComponent, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'ax-selection-list', inputs: [
@@ -33,8 +33,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
33
33
  'items',
34
34
  'selectionMode',
35
35
  'cssClass'
36
- ], outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->" }]
36
+ ], outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->" }]
37
37
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { direction: [{
38
38
  type: Input
39
39
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9zZWxlY3Rpb24tbGlzdC9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGlvbi1saXN0L3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFlLE1BQU0sU0FBUyxDQUFDOzs7QUFzQmpFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFDckUsWUFBWSxVQUFzQixFQUFFLEdBQXNCO1FBQ3hELEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFJekIsY0FBUyxHQUFnQixZQUFZLENBQUM7SUFIdEMsQ0FBQztJQUtELHdCQUF3QixDQUFDLElBQVMsRUFBRSxDQUFRO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNKLENBQUMsQ0FBQyxNQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQzs7cUhBZlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsbWRDOUJyQyxtMkhBNkRXOzJGRC9CRSx3QkFBd0I7a0JBcEJwQyxTQUFTOytCQUNFLG1CQUFtQixVQUVyQjt3QkFDTixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxlQUFlO3dCQUNmLFVBQVU7cUJBQ1gsV0FDUSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUNoRCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lJQVEvQyxTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIElucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VTZWxlY3Rpb25WYWx1ZU1peGluLCBBWERpcmVjdGlvbiB9IGZyb20gJy4uL2Jhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3Rpb24tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAndmFsdWVGaWVsZCcsXHJcbiAgICAndGV4dEZpZWxkJyxcclxuICAgICdtdWx0aXBsZScsXHJcbiAgICAnaXRlbXMnLFxyXG4gICAgJ3NlbGVjdGlvbk1vZGUnLFxyXG4gICAgJ2Nzc0NsYXNzJ1xyXG4gIF0sXHJcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZScsICdvblZhbHVlQ2hhbmdlZCcsICdvbkJsdXInLCAnb25Gb2N1cyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VTZWxlY3Rpb25WYWx1ZU1peGluIHtcclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBkaXJlY3Rpb246IEFYRGlyZWN0aW9uID0gJ2hvcml6b250YWwnO1xyXG5cclxuICBfaGFuZGxlT25JdGVtVmFsdWVDaGFuZ2UoaXRlbTogYW55LCBlOiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAoZS50YXJnZXQgYXMgYW55KS5jaGVja2VkID8gdGhpcy5zZWxlY3RJdGVtcyhpdGVtKSA6IHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIF9oYW5kbGVPbkNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xyXG4gIC8vXHJcbiAgLy8gICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XHJcbiAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LXNlbGVjdGlvbi1saXN0IGF4LXt7ZGlyZWN0aW9ufX1cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgdGhlbiBjaGVja2JveExpc3Q7IGVsc2UgcmFkaW9CdXR0b25MaXN0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NoZWNrYm94TGlzdD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlJdGVtcztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLXN0YXJ0IGF4LWNoZWNrYm94LWNvbnRhaW5lciBheC1tYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtaC01IGF4LWNoZWNrLWJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwiaWQrJy0nK2lcIiBjbGFzcz1cImF4LWNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJfaGFuZGxlT25JdGVtVmFsdWVDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiIFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaXRlbS5yZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbXMtMyBheC10ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiaWQrJy0nK2lcIiBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LXRleHQtbGlnaHQtNzAwIGRhcms6YXgtdGV4dC1saWdodC0xMDBcIj4ge3tpdGVtW3RleHRGaWVsZF19fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LWxpZ2h0LTUwMFwiPiB7e2l0ZW0uaGludCA/IGl0ZW0uaGludCA6IGl0ZW1baGludEZpZWxkXX19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcmFkaW9CdXR0b25MaXN0PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheUl0ZW1zO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtc3RhcnQgYXgtcmFkaW8tY29udGFpbmVyIGF4LW1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1oLTUgYXgtcmFkaW9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImlkKyctJytpXCIgY2xhc3M9XCJheC1yYWRpb1wiIHR5cGU9XCJyYWRpb1wiIFthdHRyLm5hbWVdPVwiaWRcIiAoY2hhbmdlKT1cIl9oYW5kbGVPbkl0ZW1WYWx1ZUNoYW5nZShpdGVtLCAkZXZlbnQpXCIgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpdGVtLnJlYWRvbmx5XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tcy0zIGF4LXRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpZCsnLScraVwiIGNsYXNzPVwiYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1saWdodC03MDAgZGFyazpheC10ZXh0LWxpZ2h0LTEwMFwiPiB7e2l0ZW1bdGV4dEZpZWxkXX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImF4LXRleHQtbGlnaHQtNTAwXCI+IHt7aXRlbS5oaW50ID8gaXRlbS5oaW50IDogaXRlbVtoaW50RmllbGRdfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbiAgICA8L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0aW9uLWxpc3QgYXgte3tkaXJlY3Rpb259fVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpcGxlOyB0aGVuIGNoZWNrYm94TGlzdDsgZWxzZSByYWRpb0J1dHRvbkxpc3RcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2hlY2tib3hMaXN0PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheUl0ZW1zO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtc3RhcnQgYXgtY2hlY2tib3gtY29udGFpbmVyIGF4LW1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1oLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaXRlbS5yZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+IHt7aXRlbVt0ZXh0RmllbGRdfX0gfCAge3tpc0l0ZW1TZWxlY3RlZChpdGVtKX19PC9heC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0taGludCAqbmdJZj1cIml0ZW1baGludEZpZWxkXVwiPiB7e2l0ZW1baGludEZpZWxkXX19IDwvYXgtZm9ybS1oaW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcmFkaW9CdXR0b25MaXN0PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheUl0ZW1zO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtc3RhcnQgYXgtcmFkaW8tY29udGFpbmVyIGF4LW1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1oLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtcmFkaW8gW2lkXT1cImlkKyctJytpXCIgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpdGVtLnJlYWRvbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e2l0ZW1bdGV4dEZpZWxkXX19IHwgIHt7aXNJdGVtU2VsZWN0ZWQoaXRlbSl9fTwvYXgtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWhpbnQgKm5nSWY9XCJpdGVtW2hpbnRGaWVsZF1cIj4ge3tpdGVtW2hpbnRGaWVsZF19fSA8L2F4LWZvcm0taGludD5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPlxyXG4gICAgPC9uZy1jb250ZW50PlxyXG48L2Rpdj4gIC0tPiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9zZWxlY3Rpb24tbGlzdC9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGlvbi1saXN0L3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFlLE1BQU0sU0FBUyxDQUFDOzs7QUFzQmpFLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx5QkFBeUI7SUFDckUsWUFBWSxVQUFzQixFQUFFLEdBQXNCO1FBQ3hELEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFJekIsY0FBUyxHQUFnQixZQUFZLENBQUM7SUFIdEMsQ0FBQztJQUtELHdCQUF3QixDQUFDLElBQVMsRUFBRSxDQUFRO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNKLENBQUMsQ0FBQyxNQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQzs7cUhBZlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsbWRDOUJyQyxtMUhBNkRXOzJGRC9CRSx3QkFBd0I7a0JBcEJwQyxTQUFTOytCQUNFLG1CQUFtQixVQUVyQjt3QkFDTixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxlQUFlO3dCQUNmLFVBQVU7cUJBQ1gsV0FDUSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUNoRCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lJQVEvQyxTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIElucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VTZWxlY3Rpb25WYWx1ZU1peGluLCBBWERpcmVjdGlvbiB9IGZyb20gJy4uL2Jhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3Rpb24tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBpbnB1dHM6IFtcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAncmVhZG9ubHknLFxyXG4gICAgJ3RhYkluZGV4JyxcclxuICAgICdzaXplJyxcclxuICAgICd2YWx1ZScsXHJcbiAgICAndmFsdWVGaWVsZCcsXHJcbiAgICAndGV4dEZpZWxkJyxcclxuICAgICdtdWx0aXBsZScsXHJcbiAgICAnaXRlbXMnLFxyXG4gICAgJ3NlbGVjdGlvbk1vZGUnLFxyXG4gICAgJ2Nzc0NsYXNzJ1xyXG4gIF0sXHJcbiAgb3V0cHV0czogWyd2YWx1ZUNoYW5nZScsICdvblZhbHVlQ2hhbmdlZCcsICdvbkJsdXInLCAnb25Gb2N1cyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VTZWxlY3Rpb25WYWx1ZU1peGluIHtcclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBkaXJlY3Rpb246IEFYRGlyZWN0aW9uID0gJ2hvcml6b250YWwnO1xyXG5cclxuICBfaGFuZGxlT25JdGVtVmFsdWVDaGFuZ2UoaXRlbTogYW55LCBlOiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAoZS50YXJnZXQgYXMgYW55KS5jaGVja2VkID8gdGhpcy5zZWxlY3RJdGVtcyhpdGVtKSA6IHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIF9oYW5kbGVPbkNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xyXG4gIC8vXHJcbiAgLy8gICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XHJcbiAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LXNlbGVjdGlvbi1saXN0IGF4LXt7ZGlyZWN0aW9ufX1cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgdGhlbiBjaGVja2JveExpc3Q7IGVsc2UgcmFkaW9CdXR0b25MaXN0XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NoZWNrYm94TGlzdD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlJdGVtcztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLXN0YXJ0IGF4LWNoZWNrYm94LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWgtNSBheC1jaGVjay1ib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImlkKyctJytpXCIgY2xhc3M9XCJheC1jaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiX2hhbmRsZU9uSXRlbVZhbHVlQ2hhbmdlKGl0ZW0sICRldmVudClcIiBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGl0ZW0ucmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1zLTMgYXgtdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImlkKyctJytpXCIgY2xhc3M9XCJheC1mb250LW1lZGl1bSBheC10ZXh0LWxpZ2h0LTcwMCBkYXJrOmF4LXRleHQtbGlnaHQtMTAwXCI+IHt7aXRlbVt0ZXh0RmllbGRdfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1saWdodC01MDBcIj4ge3tpdGVtLmhpbnQgPyBpdGVtLmhpbnQgOiBpdGVtW2hpbnRGaWVsZF19fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3JhZGlvQnV0dG9uTGlzdD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRpc3BsYXlJdGVtcztsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLXN0YXJ0IGF4LXJhZGlvLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWgtNSBheC1yYWRpb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwiaWQrJy0nK2lcIiBjbGFzcz1cImF4LXJhZGlvXCIgdHlwZT1cInJhZGlvXCIgW2F0dHIubmFtZV09XCJpZFwiIChjaGFuZ2UpPVwiX2hhbmRsZU9uSXRlbVZhbHVlQ2hhbmdlKGl0ZW0sICRldmVudClcIiBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGl0ZW0ucmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1zLTMgYXgtdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImlkKyctJytpXCIgY2xhc3M9XCJheC1mb250LW1lZGl1bSBheC10ZXh0LWxpZ2h0LTcwMCBkYXJrOmF4LXRleHQtbGlnaHQtMTAwXCI+IHt7aXRlbVt0ZXh0RmllbGRdfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1saWdodC01MDBcIj4ge3tpdGVtLmhpbnQgPyBpdGVtLmhpbnQgOiBpdGVtW2hpbnRGaWVsZF19fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj5cclxuICAgIDwvbmctY29udGVudD5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxkaXYgY2xhc3M9XCJheC1zZWxlY3Rpb24tbGlzdCBheC17e2RpcmVjdGlvbn19XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGU7IHRoZW4gY2hlY2tib3hMaXN0OyBlbHNlIHJhZGlvQnV0dG9uTGlzdFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjaGVja2JveExpc3Q+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5SXRlbXM7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1zdGFydCBheC1jaGVja2JveC1jb250YWluZXIgYXgtbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWgtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1jaGVjay1ib3ggW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpdGVtLnJlYWRvbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD4ge3tpdGVtW3RleHRGaWVsZF19fSB8ICB7e2lzSXRlbVNlbGVjdGVkKGl0ZW0pfX08L2F4LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1oaW50ICpuZ0lmPVwiaXRlbVtoaW50RmllbGRdXCI+IHt7aXRlbVtoaW50RmllbGRdfX0gPC9heC1mb3JtLWhpbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNyYWRpb0J1dHRvbkxpc3Q+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5SXRlbXM7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1zdGFydCBheC1yYWRpby1jb250YWluZXIgYXgtbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWgtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1yYWRpbyBbaWRdPVwiaWQrJy0nK2lcIiBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGl0ZW0ucmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7aXRlbVt0ZXh0RmllbGRdfX0gfCAge3tpc0l0ZW1TZWxlY3RlZChpdGVtKX19PC9heC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0taGludCAqbmdJZj1cIml0ZW1baGludEZpZWxkXVwiPiB7e2l0ZW1baGludEZpZWxkXX19IDwvYXgtZm9ybS1oaW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+XHJcbiAgICA8L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiAgLS0+Il19
@@ -1,43 +1,58 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, Output, EventEmitter, HostListener, ContentChild, } from '@angular/core';
2
- import { AXBaseClickableMixin } from '../base';
2
+ import { AXBaseComponent } from '../base';
3
+ import { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
5
- export class AXTabItemComponent extends AXBaseClickableMixin {
6
+ export const AXBaseTabItemMixin = _ClickableComponenetMixin(AXBaseComponent);
7
+ export class AXTabItemComponent extends AXBaseTabItemMixin {
6
8
  constructor(elementRef, cdr) {
7
9
  super(elementRef, cdr);
8
- this.width = false;
9
10
  this.activeChange = new EventEmitter();
10
11
  this._active = false;
12
+ this.disabledChange = new EventEmitter();
13
+ this._disabled = false;
11
14
  }
12
15
  get active() {
13
16
  return this._active;
14
17
  }
15
- set active(v) {
16
- this._active = v;
17
- this.activeChange.emit(v);
18
- v ? this._getHostElement().classList.add('ax-state-active') : this._getHostElement().classList.remove('ax-state-active');
19
- this._cdr.detectChanges();
18
+ set active(value) {
19
+ this._setOption({
20
+ name: 'active',
21
+ value
22
+ });
20
23
  }
21
- // @HostBinding('class')
22
- // private get __hostClass(): string {
23
- // ;
24
- // const classes: any = {
25
- // 'ax-state-active': this.active
26
- // }
27
- // return Object.entries(classes).filter(c => c[1]).map(c => c[0]).join(' ');
28
- // }
29
- __hostClick(e) {
30
- this.onClick.emit({
31
- component: this,
32
- htmlElement: this._getHostElement(),
33
- nativeEvent: e
24
+ get disabled() {
25
+ return this._disabled;
26
+ }
27
+ set disabled(value) {
28
+ this._setOption({
29
+ name: 'disabled',
30
+ value
34
31
  });
35
32
  }
33
+ __hostClick(e) {
34
+ if (!this.disabled) {
35
+ this.onClick.emit({
36
+ component: this,
37
+ htmlElement: this._getHostElement(),
38
+ nativeEvent: e
39
+ });
40
+ }
41
+ }
42
+ _onOptionChanged(option) {
43
+ const classListRef = this._getHostElement().classList;
44
+ if (option.name == 'disabled') {
45
+ option.newValue ? classListRef.add('ax-state-disabled') : classListRef.remove('ax-state-disabled');
46
+ }
47
+ if (option.name == 'active') {
48
+ option.newValue ? classListRef.add('ax-state-active') : classListRef.remove('ax-state-active');
49
+ }
50
+ }
36
51
  }
37
52
  AXTabItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AXTabItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
38
- AXTabItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXTabItemComponent, selector: "ax-tab-item", inputs: { text: "text", width: "width", active: "active" }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "__hostClick($event)" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true, static: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
53
+ AXTabItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AXTabItemComponent, selector: "ax-tab-item", inputs: { text: "text", key: "key", active: "active", disabled: "disabled" }, outputs: { activeChange: "activeChange", disabledChange: "disabledChange" }, host: { listeners: { "click": "__hostClick($event)" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true, static: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
39
54
  <ng-container *ngIf="headerTemplate;else header">
40
- <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ $implicit: {text,active} }"></ng-container>
55
+ <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ $implicit: {text,key,active,disabled} }"></ng-container>
41
56
  </ng-container>
42
57
  <!-- <ng-container *ngIf="headerTemplate;else header">
43
58
  <ng-content select="ax-header">
@@ -59,7 +74,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
59
74
  selector: 'ax-tab-item',
60
75
  template: `
61
76
  <ng-container *ngIf="headerTemplate;else header">
62
- <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ $implicit: {text,active} }"></ng-container>
77
+ <ng-container [ngTemplateOutlet]="headerTemplate" [ngTemplateOutletContext]="{ $implicit: {text,key,active,disabled} }"></ng-container>
63
78
  </ng-container>
64
79
  <!-- <ng-container *ngIf="headerTemplate;else header">
65
80
  <ng-content select="ax-header">
@@ -80,7 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
80
95
  }]
81
96
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { text: [{
82
97
  type: Input
83
- }], width: [{
98
+ }], key: [{
84
99
  type: Input
85
100
  }], template: [{
86
101
  type: ViewChild,
@@ -92,8 +107,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
92
107
  type: Output
93
108
  }], active: [{
94
109
  type: Input
110
+ }], disabledChange: [{
111
+ type: Output
112
+ }], disabled: [{
113
+ type: Input
95
114
  }], __hostClick: [{
96
115
  type: HostListener,
97
116
  args: ['click', ['$event']]
98
117
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi90YWJzL3RhYi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUEwQi9DLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxvQkFBb0I7SUFFeEQsWUFBWSxVQUFzQixFQUFFLEdBQXNCO1FBQ3RELEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFPM0IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQVl2QixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTFELFlBQU8sR0FBWSxLQUFLLENBQUM7SUFwQmpDLENBQUM7SUFxQkQsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxDQUFVO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN6SCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFHRCx3QkFBd0I7SUFDeEIsc0NBQXNDO0lBQ3RDLFFBQVE7SUFDUiw2QkFBNkI7SUFDN0IseUNBQXlDO0lBQ3pDLFFBQVE7SUFDUixpRkFBaUY7SUFDakYsSUFBSTtJQUdJLFdBQVcsQ0FBQyxDQUFhO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuQyxXQUFXLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUE7SUFDTixDQUFDOzsrR0FyRFEsa0JBQWtCO21HQUFsQixrQkFBa0IsbWNBckJqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7MkZBSVEsa0JBQWtCO2tCQXZCOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3hDO2lJQVFHLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFNBQVM7Z0JBS3BCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt4QyxZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFzQkUsV0FBVztzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIElucHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZUNsaWNrYWJsZU1peGluIH0gZnJvbSAnLi4vYmFzZSc7XHJcbmltcG9ydCB7IEFYRGVjb3JhdG9ySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9oZWFkZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC10YWItaXRlbScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZTtlbHNlIGhlYWRlclwiPlxyXG4gICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDoge3RleHQsYWN0aXZlfSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGU7ZWxzZSBoZWFkZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPHNwYW4+e3t0ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRhYkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDbGlja2FibGVNaXhpbiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHRleHQ6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgd2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpXHJcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblxyXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGFjdGl2ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHByaXZhdGUgX2FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2ZSh2OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdjtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgICAgIHYgPyB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLWFjdGl2ZScpIDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QucmVtb3ZlKCdheC1zdGF0ZS1hY3RpdmUnKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICAgIC8vIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XHJcbiAgICAvLyAgICAgO1xyXG4gICAgLy8gICAgIGNvbnN0IGNsYXNzZXM6IGFueSA9IHtcclxuICAgIC8vICAgICAgICAgJ2F4LXN0YXRlLWFjdGl2ZSc6IHRoaXMuYWN0aXZlXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjbGFzc2VzKS5maWx0ZXIoYyA9PiBjWzFdKS5tYXAoYyA9PiBjWzBdKS5qb2luKCcgJyk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgcHJpdmF0ZSBfX2hvc3RDbGljayhlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLFxyXG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi90YWJzL3RhYi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFHdkIsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxTQUFTLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQUdoRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQXlCNUUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtJQUV0RCxZQUFZLFVBQXNCLEVBQUUsR0FBc0I7UUFDdEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQW1CM0IsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBY2pDLG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDNUQsY0FBUyxHQUFZLEtBQUssQ0FBQztJQW5DbkMsQ0FBQztJQXFCRCxJQUNXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSztTQUNSLENBQUMsQ0FBQztJQUNQLENBQUM7SUFNRCxJQUNXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUs7U0FDUixDQUFDLENBQUM7SUFDUCxDQUFDO0lBSU8sV0FBVyxDQUFDLENBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ25DLFdBQVcsRUFBRSxDQUFDO2FBQ2pCLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztJQUdELGdCQUFnQixDQUFDLE1BQWdDO1FBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtTQUNyRztRQUNELElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7U0FDakc7SUFDTCxDQUFDOzsrR0F4RVEsa0JBQWtCO21HQUFsQixrQkFBa0IsdWZBckJqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7MkZBSVEsa0JBQWtCO2tCQXZCOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3hDO2lJQVFHLElBQUk7c0JBREgsS0FBSztnQkFLTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFNBQVM7Z0JBS3BCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUt4QyxZQUFZO3NCQURYLE1BQU07Z0JBS0ksTUFBTTtzQkFEaEIsS0FBSztnQkFhTixjQUFjO3NCQURiLE1BQU07Z0JBSUksUUFBUTtzQkFEbEIsS0FBSztnQkFhRSxXQUFXO3NCQURsQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgSW5wdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBUZW1wbGF0ZVJlZixcclxuICAgIE91dHB1dCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIENvbnRlbnRDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50LCBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQgfSBmcm9tICcuLi9iYXNlJztcclxuaW1wb3J0IHsgX0NsaWNrYWJsZUNvbXBvbmVuZXRNaXhpbiB9IGZyb20gJy4uL2Jhc2UvbWl4aW4vY2xpY2thYmxlLW1peGluLmNsYXNzJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhCYXNlVGFiSXRlbU1peGluID0gX0NsaWNrYWJsZUNvbXBvbmVuZXRNaXhpbihBWEJhc2VDb21wb25lbnQpXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtdGFiLWl0ZW0nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGU7ZWxzZSBoZWFkZXJcIj5cclxuICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHt0ZXh0LGtleSxhY3RpdmUsZGlzYWJsZWR9IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZTtlbHNlIGhlYWRlclwiPlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8c3Bhbj57e3RleHR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYCxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVGFiSXRlbUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRhYkl0ZW1NaXhpbiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHRleHQ6IHN0cmluZztcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGtleTogc3RyaW5nO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnKVxyXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBhY3RpdmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9hY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBhY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAnYWN0aXZlJyxcclxuICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBkaXNhYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAnZGlzYWJsZWQnLFxyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgICBwcml2YXRlIF9faG9zdENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXHJcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudDogZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNsYXNzTGlzdFJlZiA9IHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0O1xyXG4gICAgICAgIGlmIChvcHRpb24ubmFtZSA9PSAnZGlzYWJsZWQnKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbi5uZXdWYWx1ZSA/IGNsYXNzTGlzdFJlZi5hZGQoJ2F4LXN0YXRlLWRpc2FibGVkJykgOiBjbGFzc0xpc3RSZWYucmVtb3ZlKCdheC1zdGF0ZS1kaXNhYmxlZCcpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvcHRpb24ubmFtZSA9PSAnYWN0aXZlJykge1xyXG4gICAgICAgICAgICBvcHRpb24ubmV3VmFsdWUgPyBjbGFzc0xpc3RSZWYuYWRkKCdheC1zdGF0ZS1hY3RpdmUnKSA6IGNsYXNzTGlzdFJlZi5yZW1vdmUoJ2F4LXN0YXRlLWFjdGl2ZScpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  import { AXEvent } from "../base";
2
2
  export class AXTabStripChangedEvent extends AXEvent {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdGFicy90YWJzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFLbEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLE9BQU87Q0FHbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEV2ZW50IH0gZnJvbSBcIi4uL2Jhc2VcIjtcclxuaW1wb3J0IHsgQVhUYWJJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vdGFiLWl0ZW0uY29tcG9uZW50XCI7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XHJcbiAgc2VsZWN0ZWRUYWI6IEFYVGFiSXRlbUNvbXBvbmVudDtcclxuICBzZWxlY3RlZEluZGV4OiBudW1iZXI7XHJcbn0iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvdGFicy90YWJzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFLbEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLE9BQU87Q0FHbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEV2ZW50IH0gZnJvbSBcIi4uL2Jhc2VcIjtcclxuaW1wb3J0IHsgQVhUYWJJdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vdGFiLWl0ZW0uY29tcG9uZW50XCI7XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XHJcbiAgdGFiOiBBWFRhYkl0ZW1Db21wb25lbnQ7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxufSJdfQ==