@acorex/components 18.12.27 → 18.12.28
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +2 -2
- package/esm2022/json-viewer/lib/json-viewer/json-viewer.component.mjs +12 -8
- package/esm2022/menu/lib/menu-item.component.mjs +4 -3
- package/esm2022/menu/lib/menu.component.mjs +14 -8
- package/esm2022/menu/lib/menu.types.mjs +1 -1
- package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +3 -3
- package/esm2022/range-slider/lib/range-slider.component.mjs +6 -4
- package/esm2022/side-menu/lib/side-menu.component.mjs +2 -2
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +3 -3
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +3 -3
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +3 -3
- package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +11 -7
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +15 -8
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +2 -2
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +5 -3
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +2 -2
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +6 -6
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/json-viewer/lib/json-viewer/json-viewer.component.d.ts +1 -0
- package/menu/lib/menu-item.component.d.ts +1 -0
- package/menu/lib/menu.component.d.ts +3 -2
- package/menu/lib/menu.types.d.ts +1 -0
- package/package.json +54 -54
- package/range-slider/lib/range-slider.component.d.ts +1 -1
@@ -103,7 +103,7 @@ export class AXDropdownButtonComponent extends MXButtonBaseComponent {
|
|
103
103
|
provide: AXClosbaleComponent,
|
104
104
|
useExisting: AXDropdownButtonComponent,
|
105
105
|
},
|
106
|
-
], viewQueries: [{ propertyName: "dropdownPanel", first: true, predicate: ["panel"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #dropdown>\n <ax-dropdown-panel #panel>\n <ng-content></ng-content>\n </ax-dropdown-panel>\n</ng-template>\n<ng-template #decorator>\n <ng-content select=\"ax-prefix, ax-loading, ax-loading-spinner\"> </ng-content>\n</ng-template>\n\n@if (mode === 'dropdown') {\n <button\n class=\"ax-dropdown-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [axRipple]\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n <ax-icon class=\"far fa-chevron-down ax-ms-3\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n} @else {\n <button\n class=\"ax-dropdown-split-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n [disabled]=\"disabled\"\n [axRipple]\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n </button>\n <button\n [disabled]=\"disabled\"\n [axRipple]\n class=\"ax-dropdown-button-marker ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n >\n <ax-icon class=\"far fa-chevron-down\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n}\n", styles: ["ax-dropdown-button{display:inline-flex;height:var(--ax-size-default);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-rounded-border-default);font-size:.875rem;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;font-weight:500}ax-dropdown-button>button{position:relative;height:100%;outline-color:transparent}ax-dropdown-button>button.ax-state-focus:focus,ax-dropdown-button>button:focus-visible{outline-offset:2px;outline-width:2px;outline-color:#000}ax-dropdown-button ax-prefix,ax-dropdown-button ax-loading,ax-dropdown-button ax-loading-spinner{margin-inline-end:.5rem}ax-dropdown-button.ax-xs button{font-size:.75rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}ax-dropdown-button.ax-sm button{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button.ax-sm button,ax-dropdown-button.ax-md button{font-size:.875rem;line-height:1.25rem}ax-dropdown-button.ax-lg .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-lg button{font-size:1rem;line-height:1.25rem;padding-left:1.5rem;padding-right:1.5rem}ax-dropdown-button.ax-xl .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-xl button{font-size:1.125rem;line-height:1.75rem;padding-left:2rem;padding-right:2rem}ax-dropdown-button.ax-xl button.ax-button-icon{font-size:1.5rem}ax-dropdown-button.ax-xs.ax-button-icon,ax-dropdown-button.ax-sm.ax-button-icon{font-size:1rem}ax-dropdown-button.ax-button-icon{height:var(--ax-size-default);width:var(--ax-size-default);font-size:1.25rem}ax-dropdown-button button.ax-state-disabled,ax-dropdown-button button.ax-state-loading{opacity:.5;cursor:not-allowed}ax-dropdown-button .ax-dropdown-split-button{display:flex;flex:1;justify-content:center;align-items:center;border-inline-end:0!important;padding:0rem .75rem;border-start-start-radius:var(--ax-rounded-border-default);border-end-start-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-split-button>button{position:relative}ax-dropdown-button .ax-dropdown-button{display:flex;flex:1;justify-content:center;align-items:center;padding:0rem .75rem;border-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-button-marker{border-inline-start:1px solid;padding:0rem .75rem;border-start-end-radius:var(--ax-rounded-border-default);border-end-end-radius:var(--ax-rounded-border-default)}ax-dropdown-button ax-button-item.ax-divided{border-bottom-width:1px!important;border-color:rgba(var(--ax-color-border-default))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
106
|
+
], viewQueries: [{ propertyName: "dropdownPanel", first: true, predicate: ["panel"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #dropdown>\n <ax-dropdown-panel #panel>\n <ng-content></ng-content>\n </ax-dropdown-panel>\n</ng-template>\n<ng-template #decorator>\n <ng-content select=\"ax-prefix, ax-loading, ax-loading-spinner\"> </ng-content>\n</ng-template>\n\n@if (mode === 'dropdown') {\n <button\n class=\"ax-dropdown-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [axRipple]\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n <ax-icon class=\"far fa-chevron-down ax-ms-3\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n} @else {\n <button\n class=\"ax-dropdown-split-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n [disabled]=\"disabled\"\n [axRipple]\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n </button>\n <button\n [disabled]=\"disabled\"\n [axRipple]\n class=\"ax-dropdown-button-marker ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n >\n <ax-icon class=\"far fa-chevron-down\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n}\n", styles: ["ax-dropdown-button{display:inline-flex;height:var(--ax-size-default);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-rounded-border-default);font-size:.875rem;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;font-weight:500}ax-dropdown-button .ax-button-text{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button>button{position:relative;height:100%;outline-color:transparent}ax-dropdown-button>button.ax-state-focus:focus,ax-dropdown-button>button:focus-visible{outline-offset:2px;outline-width:2px;outline-color:#000}ax-dropdown-button ax-prefix,ax-dropdown-button ax-loading,ax-dropdown-button ax-loading-spinner{margin-inline-end:.5rem}ax-dropdown-button.ax-xs button{font-size:.75rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}ax-dropdown-button.ax-sm button{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button.ax-sm button,ax-dropdown-button.ax-md button{font-size:.875rem;line-height:1.25rem}ax-dropdown-button.ax-lg .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-lg button{font-size:1rem;line-height:1.25rem;padding-left:1.5rem;padding-right:1.5rem}ax-dropdown-button.ax-xl .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-xl button{font-size:1.125rem;line-height:1.75rem;padding-left:2rem;padding-right:2rem}ax-dropdown-button.ax-xl button.ax-button-icon{font-size:1.5rem}ax-dropdown-button.ax-xs.ax-button-icon,ax-dropdown-button.ax-sm.ax-button-icon{font-size:1rem}ax-dropdown-button.ax-button-icon{height:var(--ax-size-default);width:var(--ax-size-default);font-size:1.25rem}ax-dropdown-button button.ax-state-disabled,ax-dropdown-button button.ax-state-loading{opacity:.5;cursor:not-allowed}ax-dropdown-button .ax-dropdown-split-button{display:flex;flex:1;justify-content:center;align-items:center;border-inline-end:0!important;padding:0rem .75rem;border-start-start-radius:var(--ax-rounded-border-default);border-end-start-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-split-button>button{position:relative}ax-dropdown-button .ax-dropdown-button{display:flex;flex:1;justify-content:center;align-items:center;padding:0rem .75rem;border-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-button-marker{border-inline-start:1px solid;padding:0rem .75rem;border-start-end-radius:var(--ax-rounded-border-default);border-end-end-radius:var(--ax-rounded-border-default)}ax-dropdown-button ax-button-item.ax-divided{border-bottom-width:1px!important;border-color:rgba(var(--ax-color-border-default))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
107
107
|
}
|
108
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXDropdownButtonComponent, decorators: [{
|
109
109
|
type: Component,
|
@@ -112,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
112
112
|
provide: AXClosbaleComponent,
|
113
113
|
useExisting: AXDropdownButtonComponent,
|
114
114
|
},
|
115
|
-
], template: "<ng-template #dropdown>\n <ax-dropdown-panel #panel>\n <ng-content></ng-content>\n </ax-dropdown-panel>\n</ng-template>\n<ng-template #decorator>\n <ng-content select=\"ax-prefix, ax-loading, ax-loading-spinner\"> </ng-content>\n</ng-template>\n\n@if (mode === 'dropdown') {\n <button\n class=\"ax-dropdown-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [axRipple]\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n <ax-icon class=\"far fa-chevron-down ax-ms-3\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n} @else {\n <button\n class=\"ax-dropdown-split-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n [disabled]=\"disabled\"\n [axRipple]\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n </button>\n <button\n [disabled]=\"disabled\"\n [axRipple]\n class=\"ax-dropdown-button-marker ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n >\n <ax-icon class=\"far fa-chevron-down\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n}\n", styles: ["ax-dropdown-button{display:inline-flex;height:var(--ax-size-default);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-rounded-border-default);font-size:.875rem;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;font-weight:500}ax-dropdown-button>button{position:relative;height:100%;outline-color:transparent}ax-dropdown-button>button.ax-state-focus:focus,ax-dropdown-button>button:focus-visible{outline-offset:2px;outline-width:2px;outline-color:#000}ax-dropdown-button ax-prefix,ax-dropdown-button ax-loading,ax-dropdown-button ax-loading-spinner{margin-inline-end:.5rem}ax-dropdown-button.ax-xs button{font-size:.75rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}ax-dropdown-button.ax-sm button{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button.ax-sm button,ax-dropdown-button.ax-md button{font-size:.875rem;line-height:1.25rem}ax-dropdown-button.ax-lg .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-lg button{font-size:1rem;line-height:1.25rem;padding-left:1.5rem;padding-right:1.5rem}ax-dropdown-button.ax-xl .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-xl button{font-size:1.125rem;line-height:1.75rem;padding-left:2rem;padding-right:2rem}ax-dropdown-button.ax-xl button.ax-button-icon{font-size:1.5rem}ax-dropdown-button.ax-xs.ax-button-icon,ax-dropdown-button.ax-sm.ax-button-icon{font-size:1rem}ax-dropdown-button.ax-button-icon{height:var(--ax-size-default);width:var(--ax-size-default);font-size:1.25rem}ax-dropdown-button button.ax-state-disabled,ax-dropdown-button button.ax-state-loading{opacity:.5;cursor:not-allowed}ax-dropdown-button .ax-dropdown-split-button{display:flex;flex:1;justify-content:center;align-items:center;border-inline-end:0!important;padding:0rem .75rem;border-start-start-radius:var(--ax-rounded-border-default);border-end-start-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-split-button>button{position:relative}ax-dropdown-button .ax-dropdown-button{display:flex;flex:1;justify-content:center;align-items:center;padding:0rem .75rem;border-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-button-marker{border-inline-start:1px solid;padding:0rem .75rem;border-start-end-radius:var(--ax-rounded-border-default);border-end-end-radius:var(--ax-rounded-border-default)}ax-dropdown-button ax-button-item.ax-divided{border-bottom-width:1px!important;border-color:rgba(var(--ax-color-border-default))!important}\n"] }]
|
115
|
+
], template: "<ng-template #dropdown>\n <ax-dropdown-panel #panel>\n <ng-content></ng-content>\n </ax-dropdown-panel>\n</ng-template>\n<ng-template #decorator>\n <ng-content select=\"ax-prefix, ax-loading, ax-loading-spinner\"> </ng-content>\n</ng-template>\n\n@if (mode === 'dropdown') {\n <button\n class=\"ax-dropdown-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [axRipple]\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n <ax-icon class=\"far fa-chevron-down ax-ms-3\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n} @else {\n <button\n class=\"ax-dropdown-split-button ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n [disabled]=\"disabled\"\n [axRipple]\n [attr.tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"_handleClick($event)\"\n [attr.type]=\"type\"\n >\n <ng-container [ngTemplateOutlet]=\"decorator\"></ng-container>\n\n @if (text) {\n <span class=\"ax-button-text\">{{ text }}</span>\n }\n </button>\n <button\n [disabled]=\"disabled\"\n [axRipple]\n class=\"ax-dropdown-button-marker ax-el-interactive ax-el-{{ color }}-{{ look }}\"\n [ngClass]=\"{ 'ax-state-disabled': disabled }\"\n >\n <ax-icon class=\"far fa-chevron-down\"> </ax-icon>\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </button>\n}\n", styles: ["ax-dropdown-button{display:inline-flex;height:var(--ax-size-default);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-rounded-border-default);font-size:.875rem;line-height:1;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;font-weight:500}ax-dropdown-button .ax-button-text{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button>button{position:relative;height:100%;outline-color:transparent}ax-dropdown-button>button.ax-state-focus:focus,ax-dropdown-button>button:focus-visible{outline-offset:2px;outline-width:2px;outline-color:#000}ax-dropdown-button ax-prefix,ax-dropdown-button ax-loading,ax-dropdown-button ax-loading-spinner{margin-inline-end:.5rem}ax-dropdown-button.ax-xs button{font-size:.75rem;line-height:1rem;padding-left:.25rem;padding-right:.25rem}ax-dropdown-button.ax-sm button{padding-left:.5rem;padding-right:.5rem}ax-dropdown-button.ax-sm button,ax-dropdown-button.ax-md button{font-size:.875rem;line-height:1.25rem}ax-dropdown-button.ax-lg .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-lg button{font-size:1rem;line-height:1.25rem;padding-left:1.5rem;padding-right:1.5rem}ax-dropdown-button.ax-xl .ax-dropdown-button-marker{padding-left:1rem;padding-right:1rem}ax-dropdown-button.ax-xl button{font-size:1.125rem;line-height:1.75rem;padding-left:2rem;padding-right:2rem}ax-dropdown-button.ax-xl button.ax-button-icon{font-size:1.5rem}ax-dropdown-button.ax-xs.ax-button-icon,ax-dropdown-button.ax-sm.ax-button-icon{font-size:1rem}ax-dropdown-button.ax-button-icon{height:var(--ax-size-default);width:var(--ax-size-default);font-size:1.25rem}ax-dropdown-button button.ax-state-disabled,ax-dropdown-button button.ax-state-loading{opacity:.5;cursor:not-allowed}ax-dropdown-button .ax-dropdown-split-button{display:flex;flex:1;justify-content:center;align-items:center;border-inline-end:0!important;padding:0rem .75rem;border-start-start-radius:var(--ax-rounded-border-default);border-end-start-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-split-button>button{position:relative}ax-dropdown-button .ax-dropdown-button{display:flex;flex:1;justify-content:center;align-items:center;padding:0rem .75rem;border-radius:var(--ax-rounded-border-default)}ax-dropdown-button .ax-dropdown-button-marker{border-inline-start:1px solid;padding:0rem .75rem;border-start-end-radius:var(--ax-rounded-border-default);border-end-end-radius:var(--ax-rounded-border-default)}ax-dropdown-button ax-button-item.ax-divided{border-bottom-width:1px!important;border-color:rgba(var(--ax-color-border-default))!important}\n"] }]
|
116
116
|
}], propDecorators: { dropdownPanel: [{
|
117
117
|
type: ViewChild,
|
118
118
|
args: ['panel']
|
@@ -1,23 +1,27 @@
|
|
1
1
|
import { Component, effect, input, signal, ViewEncapsulation } from '@angular/core';
|
2
2
|
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@
|
4
|
-
import * as i2 from "@angular/forms";
|
5
|
-
import * as i3 from "@angular/common";
|
3
|
+
import * as i1 from "@angular/common";
|
6
4
|
export class JsonViewerComponent {
|
7
5
|
constructor() {
|
8
6
|
this.json = input();
|
9
7
|
this.convertedData = signal(null);
|
10
8
|
this.#effect = effect(() => {
|
11
|
-
console.log(this.json());
|
12
9
|
const deeplyNestedArray = this.convertNestedToArray(this.json());
|
13
10
|
this.convertedData.set(deeplyNestedArray);
|
14
11
|
}, { allowSignalWrites: true });
|
15
12
|
}
|
16
13
|
#effect;
|
14
|
+
isDate(value) {
|
15
|
+
return value instanceof Date;
|
16
|
+
}
|
17
17
|
convertNestedToArray(obj) {
|
18
18
|
return Object.keys(obj).map((key) => ({
|
19
19
|
key: key,
|
20
|
-
value:
|
20
|
+
value: this.isDate(obj[key])
|
21
|
+
? obj[key]
|
22
|
+
: typeof obj[key] === 'object'
|
23
|
+
? this.convertNestedToArray(obj[key])
|
24
|
+
: obj[key],
|
21
25
|
}));
|
22
26
|
}
|
23
27
|
isArray(arry) {
|
@@ -27,10 +31,10 @@ export class JsonViewerComponent {
|
|
27
31
|
return typeof i === 'number';
|
28
32
|
}
|
29
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: JsonViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: JsonViewerComponent, selector: "ax-json-viewer", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"Recursion; context: { list: convertedData() }\"></ng-container>\n\n<ng-template #Recursion let-list=\"list\">\n @for (item of list; track $index) {\n @if (isArray(item.value)) {\n <details>\n <summary>{{ item.key }}</summary>\n <div class=\"ax-indent-details\">\n <ng-container *ngTemplateOutlet=\"Recursion; context: { list: item.value }\"></ng-container>\n </div>\n </details>\n } @else {\n <div class=\"ax-flex-container\">\n <p>{{ item.key }}<span>:</span></p>\n <
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: JsonViewerComponent, selector: "ax-json-viewer", inputs: { json: { classPropertyName: "json", publicName: "json", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"Recursion; context: { list: convertedData() }\"></ng-container>\n\n<ng-template #Recursion let-list=\"list\">\n @for (item of list; track $index) {\n @if (isArray(item.value)) {\n <details>\n <summary>{{ item.key }}</summary>\n <div class=\"ax-indent-details\">\n <ng-container *ngTemplateOutlet=\"Recursion; context: { list: item.value }\"></ng-container>\n </div>\n </details>\n } @else {\n <div class=\"ax-flex-container\">\n <p class=\"ax-nowrap\">{{ item.key }}<span>:</span></p>\n\n <p\n class=\"ax-nowrap ax-indent {{ isNumber(item.value) ? 'ax-number-color' : 'ax-string-color' }}\"\n [innerHTML]=\"item.value\"\n ></p>\n </div>\n }\n }\n</ng-template>\n", styles: ["ax-json-viewer{padding:1rem;overflow-x:scroll;display:block}ax-json-viewer .ax-number-color{color:rgb(var(--ax-color-neutral-800))}ax-json-viewer .ax-number-color input::-webkit-outer-spin-button,ax-json-viewer .ax-number-color input::-webkit-inner-spin-button{-webkit-appearance:none}ax-json-viewer .ax-string-color{color:#d9393e}ax-json-viewer .ax-indent{margin:0;padding:0;height:fit-content}ax-json-viewer .ax-indent-details{margin:0 2rem;height:fit-content}ax-json-viewer .ax-flex-container{display:flex;justify-content:flex-start;align-items:center;gap:.25rem}ax-json-viewer summary,ax-json-viewer p{color:rgb(var(--ax-color-neutral-500))}ax-json-viewer summary::marker,ax-json-viewer span{color:rgb(var(--ax-color-text-default))}ax-json-viewer details{margin-inline-start:-1rem}ax-json-viewer .ax-nowrap{white-space:nowrap}.ax-dark ax-json-viewer summary,.ax-dark ax-json-viewer p{color:#7cacf8}.ax-dark ax-json-viewer .ax-string-color{color:#5cd5fb}.ax-dark ax-json-viewer .ax-number-color{color:#9980ff}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
31
35
|
}
|
32
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: JsonViewerComponent, decorators: [{
|
33
37
|
type: Component,
|
34
|
-
args: [{ selector: 'ax-json-viewer', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"Recursion; context: { list: convertedData() }\"></ng-container>\n\n<ng-template #Recursion let-list=\"list\">\n @for (item of list; track $index) {\n @if (isArray(item.value)) {\n <details>\n <summary>{{ item.key }}</summary>\n <div class=\"ax-indent-details\">\n <ng-container *ngTemplateOutlet=\"Recursion; context: { list: item.value }\"></ng-container>\n </div>\n </details>\n } @else {\n <div class=\"ax-flex-container\">\n <p>{{ item.key }}<span>:</span></p>\n <
|
38
|
+
args: [{ selector: 'ax-json-viewer', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngTemplateOutlet=\"Recursion; context: { list: convertedData() }\"></ng-container>\n\n<ng-template #Recursion let-list=\"list\">\n @for (item of list; track $index) {\n @if (isArray(item.value)) {\n <details>\n <summary>{{ item.key }}</summary>\n <div class=\"ax-indent-details\">\n <ng-container *ngTemplateOutlet=\"Recursion; context: { list: item.value }\"></ng-container>\n </div>\n </details>\n } @else {\n <div class=\"ax-flex-container\">\n <p class=\"ax-nowrap\">{{ item.key }}<span>:</span></p>\n\n <p\n class=\"ax-nowrap ax-indent {{ isNumber(item.value) ? 'ax-number-color' : 'ax-string-color' }}\"\n [innerHTML]=\"item.value\"\n ></p>\n </div>\n }\n }\n</ng-template>\n", styles: ["ax-json-viewer{padding:1rem;overflow-x:scroll;display:block}ax-json-viewer .ax-number-color{color:rgb(var(--ax-color-neutral-800))}ax-json-viewer .ax-number-color input::-webkit-outer-spin-button,ax-json-viewer .ax-number-color input::-webkit-inner-spin-button{-webkit-appearance:none}ax-json-viewer .ax-string-color{color:#d9393e}ax-json-viewer .ax-indent{margin:0;padding:0;height:fit-content}ax-json-viewer .ax-indent-details{margin:0 2rem;height:fit-content}ax-json-viewer .ax-flex-container{display:flex;justify-content:flex-start;align-items:center;gap:.25rem}ax-json-viewer summary,ax-json-viewer p{color:rgb(var(--ax-color-neutral-500))}ax-json-viewer summary::marker,ax-json-viewer span{color:rgb(var(--ax-color-text-default))}ax-json-viewer details{margin-inline-start:-1rem}ax-json-viewer .ax-nowrap{white-space:nowrap}.ax-dark ax-json-viewer summary,.ax-dark ax-json-viewer p{color:#7cacf8}.ax-dark ax-json-viewer .ax-string-color{color:#5cd5fb}.ax-dark ax-json-viewer .ax-number-color{color:#9980ff}\n"] }]
|
35
39
|
}] });
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2pzb24tdmlld2VyL3NyYy9saWIvanNvbi12aWV3ZXIvanNvbi12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2pzb24tdmlld2VyL3NyYy9saWIvanNvbi12aWV3ZXIvanNvbi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXBGLE1BQU0sT0FBTyxtQkFBbUI7SUFOaEM7UUFPRSxTQUFJLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFFcEIsa0JBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0IsWUFBTyxHQUFHLE1BQU0sQ0FDZCxHQUFHLEVBQUU7WUFDSCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO0tBd0JIO0lBOUJDLE9BQU8sQ0FNTDtJQUVGLE1BQU0sQ0FBQyxLQUFLO1FBQ1YsT0FBTyxLQUFLLFlBQVksSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFHO1FBQ3RCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEMsR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNWLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO29CQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7U0FDZixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBUztRQUNmLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUMvQixDQUFDOzhHQWxDVSxtQkFBbUI7a0dBQW5CLG1CQUFtQix1TENSaEMsOHhCQXVCQTs7MkZEZmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWpzb24tdmlld2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2pzb24tdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2pzb24tdmlld2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgSnNvblZpZXdlckNvbXBvbmVudCB7XG4gIGpzb24gPSBpbnB1dDxhbnk+KCk7XG5cbiAgY29udmVydGVkRGF0YSA9IHNpZ25hbChudWxsKTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGRlZXBseU5lc3RlZEFycmF5ID0gdGhpcy5jb252ZXJ0TmVzdGVkVG9BcnJheSh0aGlzLmpzb24oKSk7XG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEuc2V0KGRlZXBseU5lc3RlZEFycmF5KTtcbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKTtcblxuICBpc0RhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgY29udmVydE5lc3RlZFRvQXJyYXkob2JqKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubWFwKChrZXkpID0+ICh7XG4gICAgICBrZXk6IGtleSxcbiAgICAgIHZhbHVlOiB0aGlzLmlzRGF0ZShvYmpba2V5XSlcbiAgICAgICAgPyBvYmpba2V5XVxuICAgICAgICA6IHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCdcbiAgICAgICAgICA/IHRoaXMuY29udmVydE5lc3RlZFRvQXJyYXkob2JqW2tleV0pXG4gICAgICAgICAgOiBvYmpba2V5XSxcbiAgICB9KSk7XG4gIH1cblxuICBpc0FycmF5KGFycnk6IGFueSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFycnkpO1xuICB9XG5cbiAgaXNOdW1iZXIoaTogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpID09PSAnbnVtYmVyJztcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIlJlY3Vyc2lvbjsgY29udGV4dDogeyBsaXN0OiBjb252ZXJ0ZWREYXRhKCkgfVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI1JlY3Vyc2lvbiBsZXQtbGlzdD1cImxpc3RcIj5cbiAgQGZvciAoaXRlbSBvZiBsaXN0OyB0cmFjayAkaW5kZXgpIHtcbiAgICBAaWYgKGlzQXJyYXkoaXRlbS52YWx1ZSkpIHtcbiAgICAgIDxkZXRhaWxzPlxuICAgICAgICA8c3VtbWFyeT57eyBpdGVtLmtleSB9fTwvc3VtbWFyeT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWluZGVudC1kZXRhaWxzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIlJlY3Vyc2lvbjsgY29udGV4dDogeyBsaXN0OiBpdGVtLnZhbHVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RldGFpbHM+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC1jb250YWluZXJcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJheC1ub3dyYXBcIj57eyBpdGVtLmtleSB9fTxzcGFuPjo8L3NwYW4+PC9wPlxuXG4gICAgICAgIDxwXG4gICAgICAgICAgY2xhc3M9XCJheC1ub3dyYXAgYXgtaW5kZW50IHt7IGlzTnVtYmVyKGl0ZW0udmFsdWUpID8gJ2F4LW51bWJlci1jb2xvcicgOiAnYXgtc3RyaW5nLWNvbG9yJyB9fVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -15,6 +15,7 @@ export class AXMenuItemComponent extends NXComponent {
|
|
15
15
|
this.hasSubItems = signal(false);
|
16
16
|
this.isFirstLevel = signal(false);
|
17
17
|
this.root = inject(AXRootMenu);
|
18
|
+
this.isRoot = () => this.parent == null;
|
18
19
|
this.service = inject(AXMenuService);
|
19
20
|
this.scrollableParents = [];
|
20
21
|
this.unsuscriber = inject(AXUnsubscriber);
|
@@ -275,7 +276,7 @@ export class AXMenuItemComponent extends NXComponent {
|
|
275
276
|
useExisting: AXMenuItemComponent,
|
276
277
|
},
|
277
278
|
AXUnsubscriber,
|
278
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems()) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
279
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems() && (root.hasArrow() || !isRoot())) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
279
280
|
}
|
280
281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuItemComponent, decorators: [{
|
281
282
|
type: Component,
|
@@ -285,7 +286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
285
286
|
useExisting: AXMenuItemComponent,
|
286
287
|
},
|
287
288
|
AXUnsubscriber,
|
288
|
-
], template: "<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems()) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n" }]
|
289
|
+
], template: "<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems() && (root.hasArrow() || !isRoot())) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} ax-menu-item-child-icon\"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n" }]
|
289
290
|
}], ctorParameters: () => [], propDecorators: { handleClick: [{
|
290
291
|
type: HostListener,
|
291
292
|
args: ['click', ['$event']]
|
@@ -308,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
308
309
|
type: HostBinding,
|
309
310
|
args: ['class']
|
310
311
|
}] } });
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBNEIsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUk3Rjs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQStCbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQS9CQSxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRzdCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFHNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoQyxzQkFBaUIsR0FBa0IsRUFBRSxDQUFD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TyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQTVTVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpM0JBUm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztZQUNELGNBQWM7U0FDZixpRENwQ0gsZ2pCQWFBOzsyRkR5QmEsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNFLGNBQWMsaUJBRVQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLHFCQUFxQjt5QkFDakM7d0JBQ0QsY0FBYztxQkFDZjt3REE2TE8sV0FBVztzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJ6QixnQkFBZ0I7c0JBRHZCLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdCOUIsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtQjlCLGFBQWE7c0JBRnBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDeEMsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2pDLGNBQWM7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0N0QyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1DbGlja0V2ZW50ID0gQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50PEFYTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGl0ZW0gY29tcG9uZW50IHVzZWQgd2l0aGluIGFuIGBheC1tZW51YC5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51SXRlbUNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGhhc1N1Ykl0ZW1zID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGlzRmlyc3RMZXZlbCA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgbXV0YXRpb25PYnNlcnZlciE6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJvdGVjdGVkIHJvb3QgPSBpbmplY3QoQVhSb290TWVudSk7XG4gIHByb3RlY3RlZCBwYXJlbnQ/OiBBWE1lbnVJdGVtQ29tcG9uZW50IHwgbnVsbDtcblxuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gIHByaXZhdGUgc2Nyb2xsYWJsZVBhcmVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICBwcml2YXRlIHVuc3VzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIHByb3RlY3RlZCBhcnJvd0ljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaXNSdGwgPSBBWEh0bWxVdGlsLmlzUnRsKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgcmV0dXJuIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09ICdob3Jpem9udGFsJyAmJiB0aGlzLmlzRmlyc3RMZXZlbCgpXG4gICAgICA/ICdheC1pY29uLWNoZXZyb24tZG93bidcbiAgICAgIDogaXNSdGxcbiAgICAgICAgPyAnYXgtaWNvbi1jaGV2cm9uLWxlZnQnXG4gICAgICAgIDogJ2F4LWljb24tY2hldnJvbi1yaWdodCc7XG4gIH0pO1xuXG4gIG9uQ2xpY2sgPSBvdXRwdXQ8QVhNZW51SXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgZGF0YSA9IGlucHV0PGFueT4oKTtcbiAgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPigpO1xuICBjb2xvciA9IGlucHV0PEFYU3R5bGVDb2xvclR5cGU+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvL1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmRldGVjdFN1Ykl0ZW1zKCk7XG4gICAgICB0aGlzLm9ic2VydmVNdXRhdGlvbnMoKTtcbiAgICAgIHRoaXMuYmluZFNjcm9sbEV2ZW50cygpO1xuICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XG5cbiAgICB0aGlzLnNlcnZpY2Uub3BlbiQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgaWYgKCh0aGlzIGFzIGFueSkgPT09IGl0ZW0pIHtcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIGlmICgodGhpcyBhcyBhbnkpID09IGl0ZW0pIHtcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUV4Y2VwdCQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUV4Y2VwdChpdGVtIGFzIEFYTWVudUl0ZW1Db21wb25lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUV4Y2VwdChpdGVtOiBBWE1lbnVJdGVtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgbGlzdDogQVhNZW51SXRlbUNvbXBvbmVudFtdID0gW2l0ZW1dO1xuICAgIC8vXG4gICAgbGV0IHBhcmVudCA9IGl0ZW0ucGFyZW50O1xuICAgIHdoaWxlIChwYXJlbnQgIT0gbnVsbCkge1xuICAgICAgbGlzdC5wdXNoKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgIH1cbiAgICAvL1xuICAgIGlmICghbGlzdC5pbmNsdWRlcyh0aGlzKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU11dGF0aW9ucygpIHtcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLmRldGVjdFN1Ykl0ZW1zKCk7XG4gICAgfSk7XG5cbiAgICAvLyBTdGFydCBvYnNlcnZpbmcgY2hhbmdlcyBpbiBjaGlsZCBlbGVtZW50c1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMubmF0aXZlRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJ2F4LXRleHQnKT8uaW5uZXJUZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbnVhbGx5IGRldGVjdCBhbGwgYGF4LW1lbnUtaXRlbWAgZWxlbWVudHMgYW5kIGNoZWNrIGlmIHRoaXMgbWVudSBpdGVtIGhhcyBzdWItaXRlbXMuXG4gICAqL1xuICBwcml2YXRlIGRldGVjdFN1Ykl0ZW1zKCkge1xuICAgIC8vXG4gICAgY29uc3QgcGFyZW50RWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICB0aGlzLnBhcmVudCA9XG4gICAgICBwYXJlbnRFbD8udGFnTmFtZSA9PSAnQVgtTUVOVS1JVEVNJyA/IChwYXJlbnRFbD8uWydfX2F4Q29udGV4dF9fJ10gYXMgQVhNZW51SXRlbUNvbXBvbmVudCkgOiBudWxsO1xuICAgIC8vXG4gICAgY29uc3QgdGFnID0gdGhpcy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnRhZ05hbWU7XG4gICAgdGhpcy5pc0ZpcnN0TGV2ZWwuc2V0KHRhZyA9PSAnQVgtTUVOVScgfHwgdGFnID09ICdBWC1DT05URVhULU1FTlUnKTtcbiAgICBjb25zdCBzdWJJdGVtcyA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdheC1tZW51LWl0ZW0nKTtcbiAgICBpZiAoc3ViSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oYXNTdWJJdGVtcy5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzU3ViSXRlbXMuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUV4Y2VwdCQubmV4dCh0aGlzKTtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLmhhc1N1Ykl0ZW1zKCkpIHtcbiAgICAgIHRoaXMuc2VydmljZS5vcGVuJC5uZXh0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZSQubmV4dCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdWJtZW51IHRvIGF2b2lkIGl0IGdvaW5nIG91dCBvZiB0aGUgdmlld3BvcnQuXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZVBvc2l0aW9uKCkge1xuICAgIGNvbnN0IHN1Ym1lbnUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmF4LW1lbnUtaXRlbXMnKTtcbiAgICBpZiAoIXN1Ym1lbnUpIHJldHVybjtcblxuICAgIGNvbnN0IHN1Ym1lbnVSZWN0ID0gc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBpdGVtUmVjdCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbGV0IHRvcDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gRm9yIGZpcnN0LWxldmVsIG1lbnUgaXRlbXNcbiAgICBpZiAodGhpcy5pc0ZpcnN0TGV2ZWwoKSAmJiB0aGlzLnJvb3Qub3JpZW50YXRpb24oKSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICB0b3AgPVxuICAgICAgICBpdGVtUmVjdC5ib3R0b20gKyBzdWJtZW51UmVjdC5oZWlnaHQgPiB3aW5kb3dIZWlnaHRcbiAgICAgICAgICA/IGl0ZW1SZWN0LnRvcCAtIHN1Ym1lbnVSZWN0LmhlaWdodCAvLyBPcGVuIHVwd2FyZHNcbiAgICAgICAgICA6IGl0ZW1SZWN0LmJvdHRvbTsgLy8gT3BlbiBkb3dud2FyZHNcblxuICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgIC8vIFJUTDogQWxpZ24gdG8gdGhlIHJpZ2h0IG9mIHRoZSBwYXJlbnQgaXRlbVxuICAgICAgICBsZWZ0ID1cbiAgICAgICAgICBpdGVtUmVjdC5yaWdodCAtIHN1Ym1lbnVSZWN0LndpZHRoIDwgMFxuICAgICAgICAgICAgPyBpdGVtUmVjdC5sZWZ0IC8vIEFsaWduIHRvIHRoZSBsZWZ0IGlmIG5vdCBlbm91Z2ggc3BhY2Ugb24gdGhlIHJpZ2h0XG4gICAgICAgICAgICA6IGl0ZW1SZWN0LnJpZ2h0IC0gc3VibWVudVJlY3Qud2lkdGg7IC8vIE9wZW4gdG8gdGhlIGxlZnQgaW4gUlRMXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBMVFI6IEFsaWduIHRvIHRoZSBsZWZ0IG9mIHRoZSBwYXJlbnQgaXRlbVxuICAgICAgICBsZWZ0ID1cbiAgICAgICAgICBpdGVtUmVjdC5sZWZ0ICsgc3VibWVudVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aFxuICAgICAgICAgICAgPyBpdGVtUmVjdC5yaWdodCAtIHN1Ym1lbnVSZWN0LndpZHRoIC8vIEFsaWduIHRvIHRoZSByaWdodCBlZGdlIGluIExUUlxuICAgICAgICAgICAgOiBpdGVtUmVjdC5sZWZ0OyAvLyBPcGVuIHRvIHRoZSBsZWZ0XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBuZXN0ZWQgc3VibWVudXNcbiAgICAgIGlmIChpc1J0bCkge1xuICAgICAgICAvLyBSVEw6IE5lc3RlZCBzdWJtZW51IG9wZW5zIHRvIHRoZSBsZWZ0XG4gICAgICAgIGxlZnQgPVxuICAgICAgICAgIGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aCA8IDBcbiAgICAgICAgICAgID8gaXRlbVJlY3QucmlnaHQgLy8gQWxpZ24gdG8gdGhlIHJpZ2h0IGlmIG5vdCBlbm91Z2ggc3BhY2Ugb24gdGhlIGxlZnRcbiAgICAgICAgICAgIDogaXRlbVJlY3QubGVmdCAtIHN1Ym1lbnVSZWN0LndpZHRoOyAvLyBPcGVuIHRvIHRoZSBsZWZ0IGluIFJUTFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTFRSOiBOZXN0ZWQgc3VibWVudSBvcGVucyB0byB0aGUgcmlnaHRcbiAgICAgICAgbGVmdCA9XG4gICAgICAgICAgaXRlbVJlY3QucmlnaHQgKyBzdWJtZW51UmVjdC53aWR0aCA+IHdpbmRvd1dpZHRoXG4gICAgICAgICAgICA/IGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aCAvLyBPcGVuIHRvIHRoZSBsZWZ0IGlmIG5vdCBlbm91Z2ggc3BhY2VcbiAgICAgICAgICAgIDogaXRlbVJlY3QucmlnaHQ7IC8vIE9wZW4gdG8gdGhlIHJpZ2h0IGluIExUUlxuICAgICAgfVxuXG4gICAgICAvLyBBZGp1c3QgdG9wIHBvc2l0aW9uIChhbGlnbiB2ZXJ0aWNhbGx5IHdpdGggcGFyZW50KVxuICAgICAgdG9wID1cbiAgICAgICAgaXRlbVJlY3QudG9wICsgc3VibWVudVJlY3QuaGVpZ2h0ID4gd2luZG93SGVpZ2h0XG4gICAgICAgICAgPyBpdGVtUmVjdC50b3AgLSAoaXRlbVJlY3QuYm90dG9tICsgc3VibWVudVJlY3QuaGVpZ2h0IC0gd2luZG93SGVpZ2h0KSAvLyBBZGp1c3QgdXB3YXJkc1xuICAgICAgICAgIDogaXRlbVJlY3QudG9wOyAvLyBBbGlnbiB3aXRoIHRoZSBwYXJlbnQgaXRlbVxuICAgIH1cblxuICAgIC8vIEFwcGx5IGNhbGN1bGF0ZWQgc3R5bGVzIGZvciBSVEwvTFRSXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdwb3NpdGlvbicsICdmaXhlZCcpOyAvLyBGaXhlZCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnRcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgaXRlbToge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgdGV4dDogdGhpcy5nZXRUZXh0KCksXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSgpLFxuICAgICAgfSxcbiAgICB9IGFzIEFYTWVudUl0ZW1DbGlja0V2ZW50O1xuICAgIC8vXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMucm9vdC5vbkl0ZW1DbGljay5lbWl0KHsgLi4uZXZlbnQsIC4uLnsgc2VuZGVyOiB0aGlzLnJvb3QgYXMgYW55IH0gfSk7XG4gICAgLy9cbiAgICBpZiAodGhpcy5oYXNTdWJJdGVtcygpICYmICFldmVudC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfSBlbHNlIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpO1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHRoaXMucm9vdCB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gQ2FuY2VsIHRoZSBjbG9zZSBkZWxheSBpZiB0aGUgbW91c2UgcmUtZW50ZXJzIHRoZSBlbGVtZW50XG4gICAgaWYgKHRoaXMubW91c2VMZWF2ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KTtcbiAgICAgIHRoaXMubW91c2VMZWF2ZVRpbWVvdXQgPSBudWxsOyAvLyBSZXNldCB0aGUgdGltZW91dFxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNGaXJzdExldmVsKCkgfHwgdGhpcy5yb290Lm9wZW5PbigpID09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW91c2VMZWF2ZVRpbWVvdXQ6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5oYXNTdWJJdGVtcygpICYmIHRoaXMucm9vdC5jbG9zZU9uKCkgPT09ICdsZWF2ZScpIHtcbiAgICAgIC8vIENsZWFyIGFueSBwcmV2aW91cyB0aW1lb3V0IHRvIGF2b2lkIG11bHRpcGxlIHRyaWdnZXJzXG4gICAgICBpZiAodGhpcy5tb3VzZUxlYXZlVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5tb3VzZUxlYXZlVGltZW91dCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBhIGRlbGF5IGJlZm9yZSBjbG9zaW5nIHRoZSBzdWJtZW51XG4gICAgICB0aGlzLm1vdXNlTGVhdmVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZGVsYXkgKDUwMG1zIGluIHRoaXMgY2FzZSkgYXMgcGVyIHlvdXIgcmVxdWlyZW1lbnRcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSBhbGwgbWVudXMgaWYgY2xpY2tpbmcgb3V0c2lkZSB0aGUgcm9vdCBtZW51IGFuZCBhbGwgc3ViLWl0ZW1zLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWhvc3RFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7IC8vIENsb3NlIGFsbCBtZW51cyBpZiBjbGljayBpcyBvdXRzaWRlIHRoZSByb290IGFuZCBzdWItaXRlbXNcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbEV2ZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU2Nyb2xsRXZlbnRzKCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMgPSBBWEh0bWxVdGlsLmdldFNjcm9sbGFibGVQYXJlbnRzKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnNjcm9sbGFibGVQYXJlbnRzLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250YWluZXJTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZW1vdmUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyc1xuICBwcml2YXRlIHJlbW92ZVNjcm9sbEV2ZW50cygpIHtcbiAgICB0aGlzLnNjcm9sbGFibGVQYXJlbnRzLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgcGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250YWluZXJTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlciBmb3Igc2Nyb2xsIGV2ZW50cyAod2luZG93IG9yIHNjcm9sbGFibGUgcGFyZW50IGNvbnRhaW5lcnMpXG4gICAqL1xuICBwcml2YXRlIG9uQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaXN0OiBzdHJpbmdbXSA9IFsnYXgtZWwtaW50ZXJhY3RpdmUnLCAnYXgtYWN0aW9uLWl0ZW0nXTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICBsaXN0LnB1c2goJ2F4LXN0YXRlLWRpc2FibGVkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbG9yKCkpIHtcbiAgICAgIGxpc3QucHVzaChgYXgtZWwtJHt0aGlzLmNvbG9yKCl9LWJsYW5rYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hY3Rpb24taXRlbS1wcmVmaXhcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC10ZXh0XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtYWN0aW9uLWl0ZW0tc3VmZml4XCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgQGlmIChoYXNTdWJJdGVtcygpKSB7XG4gICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tc29saWQge3sgYXJyb3dJY29uKCkgfX0gYXgtbWVudS1pdGVtLWNoaWxkLWljb25cIj48L2k+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbXMgYXgtYWN0aW9uLWxpc3QgYXgtYWN0aW9uLWxpc3QtdmVydGljYWxcIiBbY2xhc3MuYXgtc3RhdGUtb3Blbl09XCJpc09wZW4oKVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtdGl0bGUsYXgtZGl2aWRlcixuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBNEIsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUk3Rjs7O0dBR0c7QUFjSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQWdDbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWhDQSxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRzdCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUIsV0FBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXJDLFlB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QyxTQUFTLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0E3U1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsaTNCQVJuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7WUFDRCxjQUFjO1NBQ2YsaURDcENILGtsQkFhQTs7MkZEeUJhLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDRSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsV0FBVyxxQkFBcUI7eUJBQ2pDO3dCQUNELGNBQWM7cUJBQ2Y7d0RBOExPLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCekIsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQjlCLGdCQUFnQjtzQkFEdkIsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI5QixhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyxjQUFjO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DdEMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFN0eWxlQ29sb3JUeXBlLCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWE1lbnVJdGVtQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWE1lbnVJdGVtQ29tcG9uZW50PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBpdGVtIGNvbXBvbmVudCB1c2VkIHdpdGhpbiBhbiBgYXgtbWVudWAuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTWVudUl0ZW1Db21wb25lbnRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUl0ZW1Db21wb25lbnQsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51SXRlbUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBoYXNTdWJJdGVtcyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBpc0ZpcnN0TGV2ZWwgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCByb290ID0gaW5qZWN0KEFYUm9vdE1lbnUpO1xuICBwcm90ZWN0ZWQgcGFyZW50PzogQVhNZW51SXRlbUNvbXBvbmVudCB8IG51bGw7XG4gIHByb3RlY3RlZCBpc1Jvb3QgPSAoKSA9PiB0aGlzLnBhcmVudCA9PSBudWxsO1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzY3JvbGxhYmxlUGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgdW5zdXNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgcHJvdGVjdGVkIGFycm93SWNvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT0gJ2hvcml6b250YWwnICYmIHRoaXMuaXNGaXJzdExldmVsKClcbiAgICAgID8gJ2F4LWljb24tY2hldnJvbi1kb3duJ1xuICAgICAgOiBpc1J0bFxuICAgICAgICA/ICdheC1pY29uLWNoZXZyb24tbGVmdCdcbiAgICAgICAgOiAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JztcbiAgfSk7XG5cbiAgb25DbGljayA9IG91dHB1dDxBWE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcblxuICBuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBkYXRhID0gaW5wdXQ8YW55PigpO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGNvbG9yID0gaW5wdXQ8QVhTdHlsZUNvbG9yVHlwZT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0U3ViSXRlbXMoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZU11dGF0aW9ucygpO1xuICAgICAgdGhpcy5iaW5kU2Nyb2xsRXZlbnRzKCk7XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcblxuICAgIHRoaXMuc2VydmljZS5vcGVuJC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICBpZiAoKHRoaXMgYXMgYW55KSA9PT0gaXRlbSkge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5jbG9zZSQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgaWYgKCh0aGlzIGFzIGFueSkgPT0gaXRlbSkge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlRXhjZXB0JC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlRXhjZXB0KGl0ZW0gYXMgQVhNZW51SXRlbUNvbXBvbmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRXhjZXB0KGl0ZW06IEFYTWVudUl0ZW1Db21wb25lbnQpIHtcbiAgICBjb25zdCBsaXN0OiBBWE1lbnVJdGVtQ29tcG9uZW50W10gPSBbaXRlbV07XG4gICAgLy9cbiAgICBsZXQgcGFyZW50ID0gaXRlbS5wYXJlbnQ7XG4gICAgd2hpbGUgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICBsaXN0LnB1c2gocGFyZW50KTtcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFsaXN0LmluY2x1ZGVzKHRoaXMpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTXV0YXRpb25zKCkge1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0U3ViSXRlbXMoKTtcbiAgICB9KTtcblxuICAgIC8vIFN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzIGluIGNoaWxkIGVsZW1lbnRzXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignYXgtdGV4dCcpPy5pbm5lclRleHQ7XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgZGV0ZWN0IGFsbCBgYXgtbWVudS1pdGVtYCBlbGVtZW50cyBhbmQgY2hlY2sgaWYgdGhpcyBtZW51IGl0ZW0gaGFzIHN1Yi1pdGVtcy5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0U3ViSXRlbXMoKSB7XG4gICAgLy9cbiAgICBjb25zdCBwYXJlbnRFbCA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMucGFyZW50ID1cbiAgICAgIHBhcmVudEVsPy50YWdOYW1lID09ICdBWC1NRU5VLUlURU0nID8gKHBhcmVudEVsPy5bJ19fYXhDb250ZXh0X18nXSBhcyBBWE1lbnVJdGVtQ29tcG9uZW50KSA6IG51bGw7XG4gICAgLy9cbiAgICBjb25zdCB0YWcgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8udGFnTmFtZTtcbiAgICB0aGlzLmlzRmlyc3RMZXZlbC5zZXQodGFnID09ICdBWC1NRU5VJyB8fCB0YWcgPT0gJ0FYLUNPTlRFWFQtTUVOVScpO1xuICAgIGNvbnN0IHN1Ykl0ZW1zID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LW1lbnUtaXRlbScpO1xuICAgIGlmIChzdWJJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhhc1N1Ykl0ZW1zLnNldCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNTdWJJdGVtcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlRXhjZXB0JC5uZXh0KHRoaXMpO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCgpICYmIHRoaXMuaGFzU3ViSXRlbXMoKSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLm9wZW4kLm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlJC5uZXh0KHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIHN1Ym1lbnUgdG8gYXZvaWQgaXQgZ29pbmcgb3V0IG9mIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgY29uc3Qgc3VibWVudSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYXgtbWVudS1pdGVtcycpO1xuICAgIGlmICghc3VibWVudSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3VibWVudVJlY3QgPSBzdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGl0ZW1SZWN0ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgY29uc3QgaXNSdGwgPSBBWEh0bWxVdGlsLmlzUnRsKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICBsZXQgdG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgbGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBGb3IgZmlyc3QtbGV2ZWwgbWVudSBpdGVtc1xuICAgIGlmICh0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHRvcCA9XG4gICAgICAgIGl0ZW1SZWN0LmJvdHRvbSArIHN1Ym1lbnVSZWN0LmhlaWdodCA+IHdpbmRvd0hlaWdodFxuICAgICAgICAgID8gaXRlbVJlY3QudG9wIC0gc3VibWVudVJlY3QuaGVpZ2h0IC8vIE9wZW4gdXB3YXJkc1xuICAgICAgICAgIDogaXRlbVJlY3QuYm90dG9tOyAvLyBPcGVuIGRvd253YXJkc1xuXG4gICAgICBpZiAoaXNSdGwpIHtcbiAgICAgICAgLy8gUlRMOiBBbGlnbiB0byB0aGUgcmlnaHQgb2YgdGhlIHBhcmVudCBpdGVtXG4gICAgICAgIGxlZnQgPVxuICAgICAgICAgIGl0ZW1SZWN0LnJpZ2h0IC0gc3VibWVudVJlY3Qud2lkdGggPCAwXG4gICAgICAgICAgICA/IGl0ZW1SZWN0LmxlZnQgLy8gQWxpZ24gdG8gdGhlIGxlZnQgaWYgbm90IGVub3VnaCBzcGFjZSBvbiB0aGUgcmlnaHRcbiAgICAgICAgICAgIDogaXRlbVJlY3QucmlnaHQgLSBzdWJtZW51UmVjdC53aWR0aDsgLy8gT3BlbiB0byB0aGUgbGVmdCBpbiBSVExcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIExUUjogQWxpZ24gdG8gdGhlIGxlZnQgb2YgdGhlIHBhcmVudCBpdGVtXG4gICAgICAgIGxlZnQgPVxuICAgICAgICAgIGl0ZW1SZWN0LmxlZnQgKyBzdWJtZW51UmVjdC53aWR0aCA+IHdpbmRvd1dpZHRoXG4gICAgICAgICAgICA/IGl0ZW1SZWN0LnJpZ2h0IC0gc3VibWVudVJlY3Qud2lkdGggLy8gQWxpZ24gdG8gdGhlIHJpZ2h0IGVkZ2UgaW4gTFRSXG4gICAgICAgICAgICA6IGl0ZW1SZWN0LmxlZnQ7IC8vIE9wZW4gdG8gdGhlIGxlZnRcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5lc3RlZCBzdWJtZW51c1xuICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgIC8vIFJUTDogTmVzdGVkIHN1Ym1lbnUgb3BlbnMgdG8gdGhlIGxlZnRcbiAgICAgICAgbGVmdCA9XG4gICAgICAgICAgaXRlbVJlY3QubGVmdCAtIHN1Ym1lbnVSZWN0LndpZHRoIDwgMFxuICAgICAgICAgICAgPyBpdGVtUmVjdC5yaWdodCAvLyBBbGlnbiB0byB0aGUgcmlnaHQgaWYgbm90IGVub3VnaCBzcGFjZSBvbiB0aGUgbGVmdFxuICAgICAgICAgICAgOiBpdGVtUmVjdC5sZWZ0IC0gc3VibWVudVJlY3Qud2lkdGg7IC8vIE9wZW4gdG8gdGhlIGxlZnQgaW4gUlRMXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBMVFI6IE5lc3RlZCBzdWJtZW51IG9wZW5zIHRvIHRoZSByaWdodFxuICAgICAgICBsZWZ0ID1cbiAgICAgICAgICBpdGVtUmVjdC5yaWdodCArIHN1Ym1lbnVSZWN0LndpZHRoID4gd2luZG93V2lkdGhcbiAgICAgICAgICAgID8gaXRlbVJlY3QubGVmdCAtIHN1Ym1lbnVSZWN0LndpZHRoIC8vIE9wZW4gdG8gdGhlIGxlZnQgaWYgbm90IGVub3VnaCBzcGFjZVxuICAgICAgICAgICAgOiBpdGVtUmVjdC5yaWdodDsgLy8gT3BlbiB0byB0aGUgcmlnaHQgaW4gTFRSXG4gICAgICB9XG5cbiAgICAgIC8vIEFkanVzdCB0b3AgcG9zaXRpb24gKGFsaWduIHZlcnRpY2FsbHkgd2l0aCBwYXJlbnQpXG4gICAgICB0b3AgPVxuICAgICAgICBpdGVtUmVjdC50b3AgKyBzdWJtZW51UmVjdC5oZWlnaHQgPiB3aW5kb3dIZWlnaHRcbiAgICAgICAgICA/IGl0ZW1SZWN0LnRvcCAtIChpdGVtUmVjdC5ib3R0b20gKyBzdWJtZW51UmVjdC5oZWlnaHQgLSB3aW5kb3dIZWlnaHQpIC8vIEFkanVzdCB1cHdhcmRzXG4gICAgICAgICAgOiBpdGVtUmVjdC50b3A7IC8vIEFsaWduIHdpdGggdGhlIHBhcmVudCBpdGVtXG4gICAgfVxuXG4gICAgLy8gQXBwbHkgY2FsY3VsYXRlZCBzdHlsZXMgZm9yIFJUTC9MVFJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3VibWVudSwgJ3RvcCcsIGAke3RvcH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3VibWVudSwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7IC8vIEZpeGVkIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydFxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybjtcbiAgICAvL1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICBpdGVtOiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSgpLFxuICAgICAgICB0ZXh0OiB0aGlzLmdldFRleHQoKSxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhKCksXG4gICAgICB9LFxuICAgIH0gYXMgQVhNZW51SXRlbUNsaWNrRXZlbnQ7XG4gICAgLy9cbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgdGhpcy5yb290Lm9uSXRlbUNsaWNrLmVtaXQoeyAuLi5ldmVudCwgLi4ueyBzZW5kZXI6IHRoaXMucm9vdCBhcyBhbnkgfSB9KTtcbiAgICAvL1xuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgIWV2ZW50LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlcjogdGhpcy5yb290IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBDYW5jZWwgdGhlIGNsb3NlIGRlbGF5IGlmIHRoZSBtb3VzZSByZS1lbnRlcnMgdGhlIGVsZW1lbnRcbiAgICBpZiAodGhpcy5tb3VzZUxlYXZlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW91c2VMZWF2ZVRpbWVvdXQpO1xuICAgICAgdGhpcy5tb3VzZUxlYXZlVGltZW91dCA9IG51bGw7IC8vIFJlc2V0IHRoZSB0aW1lb3V0XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0ZpcnN0TGV2ZWwoKSB8fCB0aGlzLnJvb3Qub3Blbk9uKCkgPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZUxlYXZlVGltZW91dDogYW55O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgdGhpcy5yb290LmNsb3NlT24oKSA9PT0gJ2xlYXZlJykge1xuICAgICAgLy8gQ2xlYXIgYW55IHByZXZpb3VzIHRpbWVvdXQgdG8gYXZvaWQgbXVsdGlwbGUgdHJpZ2dlcnNcbiAgICAgIGlmICh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGEgZGVsYXkgYmVmb3JlIGNsb3NpbmcgdGhlIHN1Ym1lbnVcbiAgICAgIHRoaXMubW91c2VMZWF2ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkZWxheSAoNTAwbXMgaW4gdGhpcyBjYXNlKSBhcyBwZXIgeW91ciByZXF1aXJlbWVudFxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbldpbmRvd0V2ZW50KCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsIG9yIHJlc2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGFsbCBtZW51cyBpZiBjbGlja2luZyBvdXRzaWRlIHRoZSByb290IG1lbnUgYW5kIGFsbCBzdWItaXRlbXMuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25DbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMucm9vdC5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTsgLy8gQ2xvc2UgYWxsIG1lbnVzIGlmIGNsaWNrIGlzIG91dHNpZGUgdGhlIHJvb3QgYW5kIHN1Yi1pdGVtc1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRzKCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRTY3JvbGxFdmVudHMoKSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlUGFyZW50cyA9IEFYSHRtbFV0aWwuZ2V0U2Nyb2xsYWJsZVBhcmVudHModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBzY3JvbGwgZXZlbnQgbGlzdGVuZXJzXG4gIHByaXZhdGUgcmVtb3ZlU2Nyb2xsRXZlbnRzKCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVyIGZvciBzY3JvbGwgZXZlbnRzICh3aW5kb3cgb3Igc2Nyb2xsYWJsZSBwYXJlbnQgY29udGFpbmVycylcbiAgICovXG4gIHByaXZhdGUgb25Db250YWluZXJTY3JvbGwoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7IC8vIENsb3NlIGFsbCBtZW51cyBvbiBzY3JvbGxcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpc3Q6IHN0cmluZ1tdID0gWydheC1lbC1pbnRlcmFjdGl2ZScsICdheC1hY3Rpb24taXRlbSddO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIGxpc3QucHVzaCgnYXgtc3RhdGUtZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sb3IoKSkge1xuICAgICAgbGlzdC5wdXNoKGBheC1lbC0ke3RoaXMuY29sb3IoKX0tYmxhbmtgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWFjdGlvbi1pdGVtLXByZWZpeFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRleHRcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hY3Rpb24taXRlbS1zdWZmaXhcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICBAaWYgKGhhc1N1Ykl0ZW1zKCkgJiYgKHJvb3QuaGFzQXJyb3coKSB8fCAhaXNSb290KCkpKSB7XG4gICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tc29saWQge3sgYXJyb3dJY29uKCkgfX0gYXgtbWVudS1pdGVtLWNoaWxkLWljb25cIj48L2k+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbXMgYXgtYWN0aW9uLWxpc3QgYXgtYWN0aW9uLWxpc3QtdmVydGljYWxcIiBbY2xhc3MuYXgtc3RhdGUtb3Blbl09XCJpc09wZW4oKVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtdGl0bGUsYXgtZGl2aWRlcixuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { NXComponent } from '@acorex/components/common';
|
2
2
|
import { ChangeDetectionStrategy, Component, HostBinding, inject, input, output, ViewEncapsulation, } from '@angular/core';
|
3
3
|
import { AXMenuService } from './menu.service';
|
4
|
-
import { AXRootMenu } from './menu.types';
|
4
|
+
import { AXRootMenu, } from './menu.types';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
import * as i1 from "@angular/common";
|
7
7
|
import * as i2 from "@acorex/components/decorators";
|
@@ -19,21 +19,27 @@ export class AXMenuComponent extends NXComponent {
|
|
19
19
|
this.service = inject(AXMenuService);
|
20
20
|
this.onItemClick = output();
|
21
21
|
this.items = input([]);
|
22
|
+
this.hasArrow = input(true);
|
22
23
|
}
|
23
24
|
/** @ignore */
|
24
25
|
get __hostClass() {
|
25
|
-
return
|
26
|
+
return [
|
27
|
+
'ax-root-menu',
|
28
|
+
'ax-action-list',
|
29
|
+
`ax-action-list-${this.orientation()}`,
|
30
|
+
`${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,
|
31
|
+
];
|
26
32
|
}
|
27
33
|
close() {
|
28
34
|
this.service.closeAll$.next();
|
29
35
|
}
|
30
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMenuComponent, selector: "ax-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: "closeOn", publicName: "closeOn", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMenuComponent, selector: "ax-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: "closeOn", publicName: "closeOn", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, hasArrow: { classPropertyName: "hasArrow", publicName: "hasArrow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
32
38
|
AXMenuService,
|
33
39
|
{
|
34
40
|
provide: AXRootMenu,
|
35
|
-
useExisting: AXMenuComponent
|
36
|
-
}
|
41
|
+
useExisting: AXMenuComponent,
|
42
|
+
},
|
37
43
|
], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n<ng-container\n *ngFor=\"let node of items()\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"\n>\n</ng-container>\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.text) {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container\n *ngFor=\"let child of item.items\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n", styles: ["ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu .ax-action-item,ax-menu .ax-action-item{padding-inline-end:0rem!important}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{padding-block:.5rem;display:flex;opacity:0;visibility:hidden;transition:opacity .3s;width:max-content;min-width:12rem;height:max-content;position:fixed;flex-direction:column;border-radius:0;border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-radius:var(--ax-rounded-border-default);z-index:9999;color:rgba(var(--ax-color-text-default))}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-action-list-horizontal{padding-inline:1rem}ax-menu.ax-action-list-horizontal{min-width:12rem;gap:.875rem}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu.ax-action-list-vertical{width:max-content;min-width:12rem}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu>ax-menu-item{padding-block:.5rem}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
38
44
|
}
|
39
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMenuComponent, decorators: [{
|
@@ -42,11 +48,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
42
48
|
AXMenuService,
|
43
49
|
{
|
44
50
|
provide: AXRootMenu,
|
45
|
-
useExisting: AXMenuComponent
|
46
|
-
}
|
51
|
+
useExisting: AXMenuComponent,
|
52
|
+
},
|
47
53
|
], template: "<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n<ng-container\n *ngFor=\"let node of items()\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"\n>\n</ng-container>\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.text) {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container\n *ngFor=\"let child of item.items\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n", styles: ["ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu .ax-action-item,ax-menu .ax-action-item{padding-inline-end:0rem!important}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{padding-block:.5rem;display:flex;opacity:0;visibility:hidden;transition:opacity .3s;width:max-content;min-width:12rem;height:max-content;position:fixed;flex-direction:column;border-radius:0;border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-radius:var(--ax-rounded-border-default);z-index:9999;color:rgba(var(--ax-color-text-default))}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-action-list-horizontal{padding-inline:1rem}ax-menu.ax-action-list-horizontal{min-width:12rem;gap:.875rem}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu.ax-action-list-vertical{width:max-content;min-width:12rem}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu>ax-menu-item{padding-block:.5rem}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:.5}\n"] }]
|
48
54
|
}], propDecorators: { __hostClass: [{
|
49
55
|
type: HostBinding,
|
50
56
|
args: ['class']
|
51
57
|
}] } });
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUtMLFVBQVUsR0FDWCxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFJdEI7OztHQUdHO0FBZUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWRoRDs7UUFlRSxnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsWUFBWSxDQUFDLENBQUM7UUFFakQsV0FBTSxHQUFHLEtBQUssQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFM0MsWUFBTyxHQUFHLEtBQUssQ0FBcUIsT0FBTyxDQUFDLENBQUM7UUFFN0MsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoQyxnQkFBVyxHQUFHLE1BQU0sRUFBeUIsQ0FBQztRQUU5QyxVQUFLLEdBQUcsS0FBSyxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLGFBQVEsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7S0FnQmpDO0lBZEMsY0FBYztJQUNkLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0E1QlUsZUFBZTtrR0FBZixlQUFlLDB3QkFSZjtZQUNULGFBQWE7WUFDYjtnQkFDRSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFLGVBQWU7YUFDN0I7U0FDRixpRENyQ0gseWlDQW9DQTs7MkZER2EsZUFBZTtrQkFkM0IsU0FBUzsrQkFDRSxTQUFTLGlCQUdKLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsYUFBYTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxpQkFBaUI7eUJBQzdCO3FCQUNGOzhCQW1CRyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQVhNZW51Q2xvc2VUcmlnZ2VyLFxuICBBWE1lbnVJdGVtLFxuICBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQsXG4gIEFYTWVudU9wZW5UcmlnZ2VyLFxuICBBWFJvb3RNZW51LFxufSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWE1lbnVJdGVtc0NsaWNrRXZlbnQgPSBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQ8QVhNZW51Q29tcG9uZW50PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBtZW51IGl0ZW1zLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhNZW51U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFJvb3RNZW51LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ2hvcml6b250YWwnKTtcblxuICBvcGVuT24gPSBpbnB1dDxBWE1lbnVPcGVuVHJpZ2dlcj4oJ2hvdmVyJyk7XG5cbiAgY2xvc2VPbiA9IGlucHV0PEFYTWVudUNsb3NlVHJpZ2dlcj4oJ2xlYXZlJyk7XG5cbiAgc2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcblxuICBvbkl0ZW1DbGljayA9IG91dHB1dDxBWE1lbnVJdGVtc0NsaWNrRXZlbnQ+KCk7XG5cbiAgaXRlbXMgPSBpbnB1dDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICBoYXNBcnJvdyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAnYXgtcm9vdC1tZW51JyxcbiAgICAgICdheC1hY3Rpb24tbGlzdCcsXG4gICAgICBgYXgtYWN0aW9uLWxpc3QtJHt0aGlzLm9yaWVudGF0aW9uKCl9YCxcbiAgICAgIGAkeyF0aGlzLmhhc0Fycm93KCkgPyAnYXgtaGlkZS1hcnJvdycgOiAnJ31gLFxuICAgIF07XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC1kaXZpZGVyLGF4LXRpdGxlLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBpdGVtcygpXCJcbiAgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCJcbiAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIlxuPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI1JlY3Vyc2lvbiBsZXQtaXRlbT5cbiAgQGlmIChpdGVtLmdyb3VwPy50aXRsZSkge1xuICAgIDxheC10aXRsZT57eyBpdGVtLmdyb3VwPy50aXRsZSB9fTwvYXgtdGl0bGU+XG4gIH1cbiAgPGF4LW1lbnUtaXRlbSBbbmFtZV09XCJpdGVtLm5hbWVcIiBbZGF0YV09XCJpdGVtLmRhdGFcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCI+XG4gICAgPGF4LXByZWZpeD5cbiAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPiA8L2F4LWljb24+XG4gICAgICB9XG4gICAgPC9heC1wcmVmaXg+XG4gICAgQGlmIChpdGVtLnRleHQpIHtcbiAgICAgIDxheC10ZXh0Pnt7IGl0ZW0udGV4dCB9fTwvYXgtdGV4dD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnN1ZmZpeCkge1xuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+e3sgaXRlbS5zdWZmaXgudGV4dCB9fTwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIH1cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5pdGVtc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvYXgtbWVudS1pdGVtPlxuICBAaWYgKGl0ZW0uYnJlYWspIHtcbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
@@ -11,4 +11,4 @@ export class AXMenuItemClickBaseEvent extends NXClickEvent {
|
|
11
11
|
this.canceled = false;
|
12
12
|
}
|
13
13
|
}
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFlBQVksRUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBTXZHLE1BQU0sT0FBZ0IsVUFBVTtDQU8vQjtBQUVELE1BQU0sT0FBZ0IsdUJBQXVCO0NBQUc7QUFFaEQsTUFBTSxPQUFnQixVQUFVO0NBZ0IvQjtBQUVELE1BQU0sT0FBTyx3QkFBOEQsU0FBUSxZQUFlO0lBQWxHOztRQU1FLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhPcmllbnRhdGlvbiwgQVhTdHlsZUNvbG9yVHlwZSwgTlhDbGlja0V2ZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgT3V0cHV0RW1pdHRlclJlZiwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhNZW51T3BlblRyaWdnZXIgPSAnY2xpY2snIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIEFYTWVudUNsb3NlVHJpZ2dlciA9ICdjbGljaycgfCAnbGVhdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhSb290TWVudSB7XG4gIG9yaWVudGF0aW9uOiBXcml0YWJsZVNpZ25hbDxBWE9yaWVudGF0aW9uPjtcbiAgb3Blbk9uOiBXcml0YWJsZVNpZ25hbDxBWE1lbnVPcGVuVHJpZ2dlcj47XG4gIGNsb3NlT246IFdyaXRhYmxlU2lnbmFsPEFYTWVudUNsb3NlVHJpZ2dlcj47XG4gIG9uSXRlbUNsaWNrOiBPdXRwdXRFbWl0dGVyUmVmPEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudD47XG4gIG5hdGl2ZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBoYXNBcnJvdzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNZW51SXRlbSB7XG4gIGNvbG9yPzogQVhTdHlsZUNvbG9yVHlwZTtcbiAgbmFtZT86IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQVhNZW51SXRlbVtdO1xuICBzdWZmaXg/OiB7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9O1xuICBicmVhaz86IGJvb2xlYW47XG4gIGdyb3VwPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQ8VCBleHRlbmRzIE5YQ29tcG9uZW50ID0gTlhDb21wb25lbnQ+IGV4dGVuZHMgTlhDbGlja0V2ZW50PFQ+IHtcbiAgaXRlbToge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGRhdGE/OiBhbnk7XG4gIH07XG4gIGNhbmNlbGVkID0gZmFsc2U7XG59XG4iXX0=
|
@@ -44,13 +44,13 @@ export class AXPaintPenModeChangerComponent {
|
|
44
44
|
this.service.lineWidth.set(e);
|
45
45
|
}
|
46
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i6.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [adaptivityEnabled]=\"true\"\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i6.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
48
48
|
}
|
49
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, decorators: [{
|
50
50
|
type: Component,
|
51
|
-
args: [{ selector: 'ax-paint-pen-mode-changer', encapsulation: ViewEncapsulation.None, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"] }]
|
51
|
+
args: [{ selector: 'ax-paint-pen-mode-changer', encapsulation: ViewEncapsulation.None, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n @case ('eraser') {\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [adaptivityEnabled]=\"true\"\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-paint-pen-mode-changer{display:flex;align-items:center;margin-inline:0!important}ax-paint-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-paint-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}\n"] }]
|
52
52
|
}], propDecorators: { __hostClass: [{
|
53
53
|
type: HostBinding,
|
54
54
|
args: ['style.marginInline']
|
55
55
|
}] } });
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtcGVuLW1vZGUtY2hhbmdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFpbnQvc3JjL2xpYi9wYWludC9wYWludC10b29scy9wYWludC1wZW4tbW9kZS1jaGFuZ2VyL3BhaW50LXBlbi1tb2RlLWNoYW5nZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdG9vbHMvcGFpbnQtcGVuLW1vZGUtY2hhbmdlci9wYWludC1wZW4tbW9kZS1jaGFuZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQUVyRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBTjNDO1FBT0UsY0FBYztRQUNKLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0MsY0FBYztRQUNKLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFckIsY0FBYztRQUNKLGtCQUFhLEdBTW5CO1lBQ0YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUVGLGNBQWM7UUFDSixvQkFBZSxHQUFHLE1BQU0sQ0FBaUMsS0FBSyxDQUFDLENBQUM7S0FxQjNFO0lBbkJDLGNBQWM7SUFDSixjQUFjLENBQUMsQ0FBaUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO0lBQ0osS0FBSztRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGNBQWM7SUFDSixZQUFZLENBQUMsQ0FBUztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0EzQ1UsOEJBQThCO2tHQUE5Qiw4QkFBOEIscUlDZjNDLDR3REE0REE7OzJGRDdDYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJOzhCQXNDakMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGxhY2VtZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBvcG92ZXJDbG9zZVRyaWdnZXIsIEFYUG9wb3Zlck9wZW5UcmlnZ2VyIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3BhaW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IG1vZGUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wYWludC1wZW4tbW9kZS1jaGFuZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhaW50LXBlbi1tb2RlLWNoYW5nZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFpbnQtcGVuLW1vZGUtY2hhbmdlci5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUGFpbnRQZW5Nb2RlQ2hhbmdlckNvbXBvbmVudCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUGFpbnRTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdmFsdWUgPSAxMDtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9wb3Zlck9wdGlvbjoge1xuICAgIG9wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXI7XG4gICAgY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyO1xuICAgIHBsYWNlbWVudDogQVhQbGFjZW1lbnQ7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBvcGVuT246ICdjbGljaycsXG4gICAgY2xvc2VPbjogJ2NsaWNrT3V0JyxcbiAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIG9mZnNldFg6IDAsXG4gICAgb2Zmc2V0WTogMCxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRQZW5UeXBlID0gc2lnbmFsPCdwZW4nIHwgJ2hpZ2hsaWdodCcgfCAnZXJhc2VyJz4oJ3BlbicpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBwZW5UeXBlSGFuZGxlcihlOiAncGVuJyB8ICdoaWdobGlnaHQnIHwgJ2VyYXNlcicpIHtcbiAgICB0aGlzLnNlcnZpY2UucGVuVHlwZS5zZXQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2xlYXIoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyLnVwZGF0ZSgocHJldikgPT4gIXByZXYpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXJnaW5JbmxpbmUnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC41cmVtYDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB2YWx1ZUhhbmRsZXIoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmxpbmVXaWR0aC5zZXQoZSk7XG4gIH1cbn1cbiIsIjxheC1idXR0b24gYXhUb29sdGlwPVwiRHJhdyBVdGlsaXRpZXNcIiBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIiBsb29rPVwiYmxhbmtcIiAjYWxpZ25Qb3A+XG4gIEBzd2l0Y2ggKHNlcnZpY2UucGVuVHlwZSgpKSB7XG4gICAgQGNhc2UgKCdwZW4nKSB7XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wZW5cIj48L2F4LWljb24+XG4gICAgfVxuICAgIEBjYXNlICgnaGlnaGxpZ2h0Jykge1xuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24taGlnaGxpZ2h0XCI+PC9heC1pY29uPlxuICAgIH1cbiAgICBAY2FzZSAoJ2VyYXNlcicpIHtcbiAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVyYXNlclwiPjwvYXgtaWNvbj5cbiAgICB9XG4gIH1cbjwvYXgtYnV0dG9uPlxuXG48YXgtYnV0dG9uIGF4VG9vbHRpcD1cIlJlc2V0IENoYW5nZXNcIiBheFRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIiAoY2xpY2spPVwiY2xlYXIoKVwiIGxvb2s9XCJibGFua1wiPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi11bmRvXCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG5cbjxheC1wb3BvdmVyXG4gIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcbiAgW29wZW5Pbl09XCJwb3BvdmVyT3B0aW9uLm9wZW5PblwiXG4gIFtjbG9zZU9uXT1cInBvcG92ZXJPcHRpb24uY2xvc2VPblwiXG4gIFt0YXJnZXRdPVwiYWxpZ25Qb3BcIlxuICBbcGxhY2VtZW50XT1cInBvcG92ZXJPcHRpb24ucGxhY2VtZW50XCJcbj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgIDxheC1idXR0b25cbiAgICAgIChjbGljayk9XCJwZW5UeXBlSGFuZGxlcigncGVuJylcIlxuICAgICAgbG9vaz1cImJsYW5rXCJcbiAgICAgIFtzZWxlY3RlZF09XCJ0aGlzLnNlcnZpY2UucGVuVHlwZSgpID09PSAncGVuJyA/IHRydWUgOiBmYWxzZVwiXG4gICAgPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGVuXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuXG4gICAgPGF4LWJ1dHRvblxuICAgICAgKGNsaWNrKT1cInBlblR5cGVIYW5kbGVyKCdoaWdobGlnaHQnKVwiXG4gICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgW3NlbGVjdGVkXT1cInRoaXMuc2VydmljZS5wZW5UeXBlKCkgPT09ICdoaWdobGlnaHQnID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICA+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1oaWdobGlnaHRcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICAoY2xpY2spPVwicGVuVHlwZUhhbmRsZXIoJ2VyYXNlcicpXCJcbiAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICBbc2VsZWN0ZWRdPVwidGhpcy5zZXJ2aWNlLnBlblR5cGUoKSA9PT0gJ2VyYXNlcicgPyB0cnVlIDogZmFsc2VcIlxuICAgID5cbiAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVyYXNlclwiPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJheC1wYWludC13aWR0aC1zbGlkZXJcIj5cbiAgICAgIDxheC1yYW5nZS1zbGlkZXJcbiAgICAgICAgW21pbl09XCIyXCJcbiAgICAgICAgW21heF09XCIyMFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICA+PC9heC1yYW5nZS1zbGlkZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19
|