@acorex/components 18.16.0-next.2 → 18.16.0-next.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +3 -2
  2. package/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -2
  3. package/esm2022/audio-wave/lib/audio-wave.component.mjs +4 -1
  4. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  5. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +11 -4
  6. package/esm2022/form/lib/form-field.component.mjs +2 -2
  7. package/esm2022/image-editor/lib/image-editor-container/image-editor-container.component.mjs +2 -2
  8. package/esm2022/rate-picker/lib/rate-picker.component.mjs +2 -1
  9. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.component.mjs +14 -8
  10. package/esm2022/side-menu/lib/side-menu.component.mjs +2 -2
  11. package/esm2022/side-menu/lib/side-menu.module.mjs +22 -4
  12. package/esm2022/tabs/lib/tab-item.component.mjs +9 -1
  13. package/esm2022/tabs/lib/tabs.component.mjs +56 -12
  14. package/esm2022/tree-view/lib/tree-view.class.mjs +1 -1
  15. package/esm2022/tree-view/lib/tree-view.component.mjs +40 -6
  16. package/fesm2022/acorex-components-audio-wave.mjs +3 -0
  17. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  18. package/fesm2022/acorex-components-breadcrumbs.mjs +11 -4
  19. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  20. package/fesm2022/acorex-components-form.mjs +2 -2
  21. package/fesm2022/acorex-components-form.mjs.map +1 -1
  22. package/fesm2022/acorex-components-image-editor.mjs +2 -2
  23. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  24. package/fesm2022/acorex-components-rate-picker.mjs +1 -0
  25. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  26. package/fesm2022/acorex-components-side-menu.mjs +37 -13
  27. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  28. package/fesm2022/acorex-components-tabs.mjs +63 -11
  29. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  30. package/fesm2022/acorex-components-tree-view.mjs +39 -5
  31. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  32. package/package.json +1 -1
  33. package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +9 -1
  34. package/side-menu/lib/side-menu.module.d.ts +2 -1
  35. package/tabs/lib/tab-item.component.d.ts +6 -0
  36. package/tabs/lib/tabs.component.d.ts +7 -3
  37. package/tree-view/lib/tree-view.class.d.ts +1 -0
  38. package/tree-view/lib/tree-view.component.d.ts +7 -3
@@ -1,4 +1,4 @@
1
1
  import { AXClickEvent } from '@acorex/components/common';
2
2
  export class AXTreeItemClickBaseEvent extends AXClickEvent {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUE4QnpELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0NBRXpEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUcmVlVmlld1NjaGVtYSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgcGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgdGV4dDogc3RyaW5nO1xuXG4gIGNoaWxkcmVucz86IEFYVHJlZVZpZXdTY2hlbWFbXTtcblxuICBpY29uPzogc3RyaW5nO1xuXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcblxuICBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG5cbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG5cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICBoYXNDaGlsZD86IGJvb2xlYW47XG5cbiAgdmlzaWJsZT86IGJvb2xlYW47XG5cbiAgdG9vbHRpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIG5hdGl2ZUVsZW1lbnQ6IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgU2VsZWN0aW9uQmVoYXZpb3JUeXBlID0gJ2F1dG9FeHBhbmQnIHwgJ2Nhc2NhZGUnIHwgJ2luZGV0ZXJtaW5hdGUnIHwgbnVsbDtcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFnQ3pELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0NBRXpEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUcmVlVmlld1NjaGVtYSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgcGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgdGV4dDogc3RyaW5nO1xuXG4gIGNoaWxkcmVucz86IEFYVHJlZVZpZXdTY2hlbWFbXTtcblxuICBpY29uPzogc3RyaW5nO1xuXG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcblxuICBkaXNhYmxlZD86IGJvb2xlYW47XG5cbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG5cbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG5cbiAgYWN0aXZlPzogYm9vbGVhbjtcblxuICBoYXNDaGlsZD86IGJvb2xlYW47XG5cbiAgdmlzaWJsZT86IGJvb2xlYW47XG5cbiAgdG9vbHRpcD86IHN0cmluZztcblxuICBleHRlcmFEYXRhPzogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50IGV4dGVuZHMgQVhDbGlja0V2ZW50IHtcbiAgbmF0aXZlRWxlbWVudDogYW55O1xufVxuXG5leHBvcnQgdHlwZSBTZWxlY3Rpb25CZWhhdmlvclR5cGUgPSAnYXV0b0V4cGFuZCcgfCAnY2FzY2FkZScgfCAnaW5kZXRlcm1pbmF0ZScgfCBudWxsO1xuIl19
@@ -1,5 +1,5 @@
1
1
  import { NXComponent } from '@acorex/components/common';
2
- import { ChangeDetectionStrategy, Component, effect, input, output, signal, ViewEncapsulation, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, inject, input, output, signal, ViewEncapsulation, } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@acorex/components/decorators";
@@ -10,6 +10,7 @@ export class AXTreeViewComponent extends NXComponent {
10
10
  constructor() {
11
11
  super();
12
12
  this.itemsSignal = signal([]);
13
+ this.cdr = inject(ChangeDetectorRef);
13
14
  this.#effect = effect(() => {
14
15
  const itemsInput = this.items();
15
16
  if (typeof itemsInput === 'function') {
@@ -37,11 +38,12 @@ export class AXTreeViewComponent extends NXComponent {
37
38
  this.textField = input('text');
38
39
  this.visibleField = input('visible');
39
40
  this.disableField = input('disabled');
40
- this.hasChildField = input();
41
+ this.hasChildField = input('hasChild');
41
42
  this.iconField = input('icon');
42
43
  this.onSelectionChange = output();
43
44
  this.onItemClick = output();
44
45
  this.onNodeClick = output();
46
+ this.onNodeExpandClick = output();
45
47
  this.loadingState = signal({});
46
48
  }
47
49
  #effect;
@@ -226,6 +228,9 @@ export class AXTreeViewComponent extends NXComponent {
226
228
  if (source.length) {
227
229
  source.forEach((element) => {
228
230
  if (element[this.valueField()] == parentId) {
231
+ if (this.selectionBehavior() === 'indeterminate' && element.selected) {
232
+ _children.forEach((child) => (child.selected = true));
233
+ }
229
234
  element.childrens = _children;
230
235
  }
231
236
  else {
@@ -246,7 +251,7 @@ export class AXTreeViewComponent extends NXComponent {
246
251
  this.fetchData(parentId);
247
252
  this.setNodeLoading(node.data.id, true);
248
253
  }
249
- this.onItemClick.emit({ component: this, data: node.data, nativeElement: this.nativeElement });
254
+ this.onNodeExpandClick.emit({ component: this, data: node.data, nativeElement: this.nativeElement });
250
255
  }
251
256
  handleNodeClick(node) {
252
257
  if (node.data[this.disableField()]) {
@@ -293,11 +298,40 @@ export class AXTreeViewComponent extends NXComponent {
293
298
  [nodeId]: isLoading,
294
299
  }));
295
300
  }
301
+ setActiveNodeByValueField(valueField, value) {
302
+ this.itemsSignal().forEach((node) => {
303
+ if (node[this.valueField()] === valueField) {
304
+ node.active = value;
305
+ }
306
+ else {
307
+ if (node?.childrens?.length) {
308
+ this.setActiveNodeByValueField(node[this.valueField()], value);
309
+ }
310
+ }
311
+ this.cdr.detectChanges();
312
+ });
313
+ }
314
+ setExpandNodeByValueField(valueField, value) {
315
+ this.itemsSignal().forEach((node) => {
316
+ if (node[this.valueField()] === valueField) {
317
+ node.isExpanded = value;
318
+ if (this.itemsPromise && value && node[this.hasChildField()] && !node?.childrens?.length) {
319
+ this.fetchData(node[this.valueField()]);
320
+ }
321
+ }
322
+ else {
323
+ if (node?.childrens?.length) {
324
+ this.setExpandNodeByValueField(node[this.valueField()], value);
325
+ }
326
+ }
327
+ this.cdr.detectChanges();
328
+ });
329
+ }
296
330
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXTreeViewComponent, selector: "ax-tree-view", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: "selectionBehavior", publicName: "selectionBehavior", isSignal: true, isRequired: false, transformFunction: null }, showActiveNode: { classPropertyName: "showActiveNode", publicName: "showActiveNode", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, visibleField: { classPropertyName: "visibleField", publicName: "visibleField", isSignal: true, isRequired: false, transformFunction: null }, disableField: { classPropertyName: "disableField", publicName: "disableField", isSignal: true, isRequired: false, transformFunction: null }, hasChildField: { classPropertyName: "hasChildField", publicName: "hasChildField", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: "iconField", publicName: "iconField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange", onItemClick: "onItemClick", onNodeClick: "onNodeClick" }, usesInheritance: true, ngImport: i0, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: ["ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem;overflow-x:auto}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-color-primary-500));color:#fff}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active:hover{background-color:rgba(var(--ax-color-primary-500))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:.5rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"], dependencies: [{ 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.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AXTreeViewItemComponent, selector: "ax-tree-view-item", inputs: ["item", "isExpanded", "hasChildField", "isActive", "isLoading", "disableField"], outputs: ["onNodeExpand", "onNodeClick", "isExpandedChange", "isActiveChange", "onNodeDbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXTreeViewComponent, selector: "ax-tree-view", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: "selectionBehavior", publicName: "selectionBehavior", isSignal: true, isRequired: false, transformFunction: null }, showActiveNode: { classPropertyName: "showActiveNode", publicName: "showActiveNode", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, visibleField: { classPropertyName: "visibleField", publicName: "visibleField", isSignal: true, isRequired: false, transformFunction: null }, disableField: { classPropertyName: "disableField", publicName: "disableField", isSignal: true, isRequired: false, transformFunction: null }, hasChildField: { classPropertyName: "hasChildField", publicName: "hasChildField", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: "iconField", publicName: "iconField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange", onItemClick: "onItemClick", onNodeClick: "onNodeClick", onNodeExpandClick: "onNodeExpandClick" }, usesInheritance: true, ngImport: i0, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: [".ax-dark ax-tree-view{--ax-tree-select-node-bk: rgba(var(--ax-color-primary-200));--ax-tree-select-node-text: rgba(var(--ax-color-primary-fore-tint))}ax-tree-view{--ax-tree-select-node-bk: rgba(var(--ax-color-primary-500));--ax-tree-select-node-text: rgba(var(--ax-color-primary-fore))}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem;overflow-x:auto}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:var(--ax-tree-select-node-bk);color:var(--ax-tree-select-node-text)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active:hover{background-color:var(--ax-tree-select-node-bk);color:var(--ax-tree-select-node-text)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:1rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"], dependencies: [{ 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.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AXTreeViewItemComponent, selector: "ax-tree-view-item", inputs: ["item", "isExpanded", "hasChildField", "isActive", "isLoading", "disableField"], outputs: ["onNodeExpand", "onNodeClick", "isExpandedChange", "isActiveChange", "onNodeDbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
298
332
  }
299
333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTreeViewComponent, decorators: [{
300
334
  type: Component,
301
- args: [{ selector: 'ax-tree-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: ["ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem;overflow-x:auto}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:rgba(var(--ax-color-primary-500));color:#fff}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active:hover{background-color:rgba(var(--ax-color-primary-500))}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:.5rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:.5rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"] }]
335
+ args: [{ selector: 'ax-tree-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item.isExpanded\"\n [(isActive)]=\"item.active\"\n [isLoading]=\"isNodeLoading(item.id)\"\n [disableField]=\"disableField()\"\n [hasChildField]=\"hasChildField()\"\n (onNodeExpand)=\"handleNodeExpandClick($event)\"\n (onNodeClick)=\"handleNodeClick($event)\"\n (onNodeDbClick)=\"handleNodeDbClick($event)\"\n >\n @if (this.selectable()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item.indeterminate\"\n [(ngModel)]=\"item.selected\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.childrens; track $index) {\n <ng-container\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n", styles: [".ax-dark ax-tree-view{--ax-tree-select-node-bk: rgba(var(--ax-color-primary-200));--ax-tree-select-node-text: rgba(var(--ax-color-primary-fore-tint))}ax-tree-view{--ax-tree-select-node-bk: rgba(var(--ax-color-primary-500));--ax-tree-select-node-text: rgba(var(--ax-color-primary-fore))}ax-tree-view ax-tree-view-item .ax-tree-view-container{display:flex;align-items:center;margin-bottom:.125rem;cursor:pointer}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-checkbox-end-side{display:none!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-arrow{font-size:.875rem!important}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items{display:flex;align-items:center;gap:.5rem}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix{display:flex;align-items:center;gap:.5rem;padding:.375rem;padding-inline-end:.5rem!important;border-radius:.25rem;overflow-x:auto}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.noselect-tree-view{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active{background-color:var(--ax-tree-select-node-bk);color:var(--ax-tree-select-node-text)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix.ax-state-tree-view-active:hover{background-color:var(--ax-tree-select-node-bk);color:var(--ax-tree-select-node-text)}ax-tree-view ax-tree-view-item .ax-tree-view-container .ax-tree-view-items .ax-tree-view-items-prefix:hover{background-color:rgba(var(--ax-color-on-surface))}ax-tree-view ax-tree-view-item .ax-state-tree-view-rtl{padding-inline-end:1rem}ax-tree-view ax-tree-view-item .ax-state-tree-view-ltr{padding-inline-start:1rem}ax-tree-view ax-tree-view-item .ax-state-disabled{cursor:not-allowed!important;opacity:.5!important}ax-tree-view ax-tree-view-item .arrow-container{position:relative;display:flex;align-items:center}ax-tree-view ax-tree-view-item .vertical-line{width:.125rem;height:100%;background-color:#ccc;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}\n"] }]
302
336
  }], ctorParameters: () => [] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVdkIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFDbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUdGLGdCQUFXLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUlyRCxZQUFPLEdBQUcsTUFBTSxDQUNkLEdBQUcsRUFBRTtZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVoQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLE1BQU0sR0FBRyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdCLElBQUks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QThDQTs7MkZEM0JhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxjQUFjLGlCQUdULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhUcmVlVmlld1NjaGVtYSwgU2VsZWN0aW9uQmVoYXZpb3JUeXBlIH0gZnJvbSAnLi90cmVlLXZpZXcuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGl0ZW1zU2lnbmFsID0gc2lnbmFsPEFYVHJlZVZpZXdTY2hlbWFbXT4oW10pO1xuXG4gIHByaXZhdGUgaXRlbXNQcm9taXNlOiBhbnk7XG5cbiAgI2VmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBpdGVtc0lucHV0ID0gdGhpcy5pdGVtcygpO1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZW1zSW5wdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXRlbXNJbnB1dCgpO1xuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgIHRoaXMuaXRlbXNQcm9taXNlID0gKG9wdGlvbnMpID0+IGl0ZW1zSW5wdXQob3B0aW9ucyk7XG4gICAgICAgICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChyZXN1bHQpO1xuICAgICAgICAgIHRoaXMuaXRlbXNQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtc1NpZ25hbC5zZXQoaXRlbXNJbnB1dCk7XG4gICAgICAgIHRoaXMuaXRlbXNQcm9taXNlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKTtcblxuICBpdGVtcyA9IGlucHV0PFxuICAgIHwgQVhUcmVlVmlld1NjaGVtYVtdXG4gICAgfCAoKG9wdGlvbnM/OiB7IHBhcmVudElkOiBzdHJpbmcgfCBudW1iZXIgfSkgPT4gQVhUcmVlVmlld1NjaGVtYVtdIHwgUHJvbWlzZTxBWFRyZWVWaWV3U2NoZW1hW10+KVxuICA+KCk7XG5cbiAgcHJvdGVjdGVkIGdldCByZXNvbHZlZEl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zU2lnbmFsKCk7XG4gIH1cblxuICBzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgc2VsZWN0aW9uTW9kZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ3NpbmdsZScpO1xuXG4gIHNlbGVjdGlvbkJlaGF2aW9yID0gaW5wdXQ8U2VsZWN0aW9uQmVoYXZpb3JUeXBlPihudWxsKTtcblxuICBzaG93QWN0aXZlTm9kZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHZhbHVlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCdpZCcpO1xuXG4gIHRleHRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3RleHQnKTtcblxuICB2aXNpYmxlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCd2aXNpYmxlJyk7XG5cbiAgZGlzYWJsZUZpZWxkID0gaW5wdXQ8c3RyaW5nPignZGlzYWJsZWQnKTtcblxuICBoYXNDaGlsZEZpZWxkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIGljb25GaWVsZCA9IGlucHV0PHN0cmluZz4oJ2ljb24nKTtcblxuICBvblNlbGVjdGlvbkNoYW5nZSA9IG91dHB1dDxBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQ+KCk7XG5cbiAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZUNsaWNrID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKGV2ZW50OiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKGl0ZW1bdGhpcy5kaXNhYmxlRmllbGQoKV0gfHwgdGhpcy5pc05vZGVMb2FkaW5nKGl0ZW0uaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAnc2luZ2xlJyAmJiBldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUodGhpcy5pdGVtc1NpZ25hbCgpKTtcbiAgICB9XG4gICAgaXRlbS5zZWxlY3RlZCA9IGV2ZW50LnZhbHVlO1xuXG4gICAgaWYgKGV2ZW50LnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25CZWhhdmlvcigpKSB7XG4gICAgICAgIGNhc2UgJ2F1dG9FeHBhbmQnOlxuICAgICAgICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YShpdGVtLmlkKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhpdGVtLmlkLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmQoaXRlbSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjYXNjYWRlJzpcbiAgICAgICAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoaXMgbW9kZSBvbmx5IGF2YWlsYWJsZSBjbGllbnQgU2lkZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlKCkgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGlzIG1vZGUgb25seSBhdmFpbGFibGUgc2VsZWN0aW9uTW9kZSBtdWx0aXBsZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmV4cGFuZEFuZFRvZ2dsZVNlbGVjdGlvbihpdGVtLCBldmVudC52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZGV0ZXJtaW5hdGUnOlxuICAgICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oaXRlbSwgZXZlbnQudmFsdWUsIGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRTZWxlY3Rpb24oaXRlbSwgZXZlbnQudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3QgcmVzdWx0OiBBWFRyZWVWaWV3U2NoZW1hW10gPSB0aGlzLmZpbmRTZWxlY3RlZE5vZGVzKHRoaXMuaXRlbXNTaWduYWwoKSk7XG5cbiAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBpdGVtLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGF1dG8gZXhwYW5kXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZUV4cGFuZChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKCFpdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgIGl0ZW0uaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGV4cGFuZCBhbmQgY2hhbmdlIHZhbHVlIHBhcmVudCBjaGFuZ2VcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBleHBhbmRBbmRUb2dnbGVTZWxlY3Rpb24oaXRlbTogQVhUcmVlVmlld1NjaGVtYSwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcblxuICAgIGlmIChpdGVtLmNoaWxkcmVucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihpdGVtLCBzZWxlY3RlZCwgaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIGlzU2VsZWN0ZWQ6IGJvb2xlYW4sIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaXRlbS5jaGlsZHJlbnMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNoaWxkLnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgICBjaGlsZC5zZWxlY3RlZCA9IGlzU2VsZWN0ZWQ7XG4gICAgICBpZiAoY2hpbGQuY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oY2hpbGQsIGlzU2VsZWN0ZWQsIGNoaWxkLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBpbmRldGVybWluYXRlIGxvZ2ljXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgdXBkYXRlUGFyZW50U2VsZWN0aW9uKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgbGV0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuXG4gICAgd2hpbGUgKChwYXJlbnQgJiYgcGFyZW50LnNlbGVjdGVkICE9IGZhbHNlKSB8fCAocGFyZW50ICYmIGl0ZW0uc2VsZWN0ZWQpKSB7XG4gICAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHBhcmVudD8uY2hpbGRyZW5zPy5ldmVyeSgoY2hpbGQpID0+IGNoaWxkLnNlbGVjdGVkKTtcblxuICAgICAgY29uc3Qgc29tZVNlbGVjdGVkID0gcGFyZW50Py5jaGlsZHJlbnM/LnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5zZWxlY3RlZCB8fCBjaGlsZC5pbmRldGVybWluYXRlKTtcblxuICAgICAgaWYgKCFhbGxTZWxlY3RlZCAmJiAhc29tZVNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFhbGxTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKGFsbFNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocGFyZW50LCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hLCBub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYSB8IG51bGwge1xuICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVucz8uaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW5zKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCBub2RlLmNoaWxkcmVucyk7XG4gICAgICAgIGlmIChwYXJlbnQpIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGZpbmQgbm9kZSBzZWxlY3RlZCB0cnVlIGZvciBlbWl0IFNlbGVjdGlvbnNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmaW5kU2VsZWN0ZWROb2Rlcyhub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogQVhUcmVlVmlld1NjaGVtYVtdID0gW107XG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLmNoaWxkcmVucykge1xuICAgICAgICBzZWxlY3RlZE5vZGVzID0gc2VsZWN0ZWROb2Rlcy5jb25jYXQodGhpcy5maW5kU2VsZWN0ZWROb2Rlcyhub2RlLmNoaWxkcmVucykpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkTm9kZXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZmluZCBmb3IgZW1pdCBTZWxlY3Rpb25zIHNpbmdsZSBtb2RlXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgaGFuZGxlVW5TZWxlY3ROb2RlKGl0ZW1zOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpdGVtcy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUoY2hpbGQuY2hpbGRyZW5zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBsYXp5IGxvYWQgbG9naWNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmZXRjaERhdGEocGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICB0aGlzLml0ZW1zUHJvbWlzZSh7IHBhcmVudElkIH0pXG4gICAgICAudGhlbigoZGF0YTogQVhUcmVlVmlld1NjaGVtYVtdKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgaWYgKHBhcmVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmROb2RlKHBhcmVudElkLCBkYXRhLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcocGFyZW50SWQsIGZhbHNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShwYXJlbnRJZDogbnVtYmVyIHwgc3RyaW5nLCBfY2hpbGRyZW46IEFYVHJlZVZpZXdTY2hlbWFbXSwgc291cmNlOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpZiAoc291cmNlLmxlbmd0aCkge1xuICAgICAgc291cmNlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkKCldID09IHBhcmVudElkKSB7XG4gICAgICAgICAgZWxlbWVudC5jaGlsZHJlbnMgPSBfY2hpbGRyZW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQ/LmNoaWxkcmVucykgdGhpcy5maW5kTm9kZShwYXJlbnRJZCwgX2NoaWxkcmVuLCBlbGVtZW50LmNoaWxkcmVucyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBlbWl0IHdoZW4gYXJyb3cgY2xpY2tcbiAgICpcbiAgICovXG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVFeHBhbmRDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBjb25zdCBwYXJlbnRJZCA9IG5vZGUuZGF0YS5pZDtcbiAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UgJiYgbm9kZS5kYXRhLmlzRXhwYW5kZWQgJiYgIW5vZGU/LmRhdGEuY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhKHBhcmVudElkKTtcbiAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcobm9kZS5kYXRhLmlkLCB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVOb2RlQ2xpY2sobm9kZTogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgaWYgKG5vZGUuZGF0YVt0aGlzLmRpc2FibGVGaWVsZCgpXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QWN0aXZlTm9kZSgpKSB7XG4gICAgICB0aGlzLmhhbmRsZVVuQWN0aXZlTm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgICAgbm9kZS5kYXRhLmFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICAgIC8vL3RvIGRvXG4gICAgLy8gc3dpdGNoICh0aGlzLnNlbGVjdGlvbkJlaGF2aW9yKCkpIHtcbiAgICAvLyAgIGNhc2UgJ2FjdGl2ZUFuZFNlbGVjdCc6XG4gICAgLy8gICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUoKSA9PT0gJ3NpbmdsZScpIHtcbiAgICAvLyAgICAgICB0aGlzLmhhbmRsZVVuc2VsZWN0Tm9kZSh0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgLy8gICAgIGJyZWFrO1xuXG4gICAgLy8gICBkZWZhdWx0OlxuICAgIC8vICAgICBicmVhaztcbiAgICAvLyB9XG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBub2RlLmRhdGEsIG5hdGl2ZUVsZW1lbnQ6IHRoaXMubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVW5BY3RpdmVOb2RlKHVuQWN0aXZlU291cmNlOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICB1bkFjdGl2ZVNvdXJjZS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQuYWN0aXZlID0gZmFsc2U7XG4gICAgICBpZiAoY2hpbGQ/LmNoaWxkcmVucz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVW5BY3RpdmVOb2RlKGNoaWxkLmNoaWxkcmVucyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZURiQ2xpY2sobm9kZTogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlKSB7XG4gICAgICBjb25zdCBub2RlUGFyZW50SWQgPSBub2RlLmRhdGEuaWQ7XG4gICAgICB0aGlzLmZldGNoRGF0YShub2RlUGFyZW50SWQpO1xuICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhub2RlLmRhdGEuaWQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZGluZ1N0YXRlID0gc2lnbmFsPFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIGJvb2xlYW4+Pih7fSk7XG5cbiAgaXNOb2RlTG9hZGluZyhub2RlSWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZSgpW25vZGVJZF0gfHwgZmFsc2U7XG4gIH1cblxuICBzZXROb2RlTG9hZGluZyhub2RlSWQ6IHN0cmluZyB8IG51bWJlciwgaXNMb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgW25vZGVJZF06IGlzTG9hZGluZyxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIkBmb3IgKG5vZGUgb2YgcmVzb2x2ZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbVt2aXNpYmxlRmllbGQoKV0gIT09IGZhbHNlKSB7XG4gICAgPGF4LXRyZWUtdmlldy1pdGVtXG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFsoaXNFeHBhbmRlZCldPVwiaXRlbS5pc0V4cGFuZGVkXCJcbiAgICAgIFsoaXNBY3RpdmUpXT1cIml0ZW0uYWN0aXZlXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNOb2RlTG9hZGluZyhpdGVtLmlkKVwiXG4gICAgICBbZGlzYWJsZUZpZWxkXT1cImRpc2FibGVGaWVsZCgpXCJcbiAgICAgIFtoYXNDaGlsZEZpZWxkXT1cImhhc0NoaWxkRmllbGQoKVwiXG4gICAgICAob25Ob2RlRXhwYW5kKT1cImhhbmRsZU5vZGVFeHBhbmRDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbk5vZGVDbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25Ob2RlRGJDbGljayk9XCJoYW5kbGVOb2RlRGJDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKHRoaXMuc2VsZWN0YWJsZSgpKSB7XG4gICAgICAgIDxheC1jaGVjay1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+PC9heC1jaGVjay1ib3g+XG4gICAgICB9XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICBAaWYgKGl0ZW1baWNvbkZpZWxkKCldKSB7XG4gICAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbVtpY29uRmllbGQoKV1cIj48L2F4LWljb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpPjwvaT5cbiAgICAgICAgfVxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICBAaWYgKGl0ZW1bdGV4dEZpZWxkKCldKSB7XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW1bdGV4dEZpZWxkKCldIH19PC9heC10ZXh0PlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PjwvYXgtc3VmZml4PlxuICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbT8uY2hpbGRyZW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvYXgtdHJlZS12aWV3LWl0ZW0+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90cmVlLXZpZXcvc3JjL2xpYi90cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RyZWUtdmlldy9zcmMvbGliL3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVV2QixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUNsRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBR0YsZ0JBQVcsR0FBRyxNQUFNLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBSTdDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV4QyxZQUFPLEdBQUcsTUFBTSxDQUNkLEdBQUcsRUFBRTtZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVoQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLE1BQU0sR0FBRyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixDQUFDO3FCQUFNLENB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SUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDakUsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6WFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsbXVEQ3JCaEMsc2dEQThDQTs7MkZEekJhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxjQUFjLGlCQUdULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhUcmVlVmlld1NjaGVtYSwgU2VsZWN0aW9uQmVoYXZpb3JUeXBlIH0gZnJvbSAnLi90cmVlLXZpZXcuY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGl0ZW1zU2lnbmFsID0gc2lnbmFsPEFYVHJlZVZpZXdTY2hlbWFbXT4oW10pO1xuXG4gIHByaXZhdGUgaXRlbXNQcm9taXNlOiBhbnk7XG5cbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICNlZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbXNJbnB1dCA9IHRoaXMuaXRlbXMoKTtcblxuICAgICAgaWYgKHR5cGVvZiBpdGVtc0lucHV0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGl0ZW1zSW5wdXQoKTtcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICB0aGlzLml0ZW1zUHJvbWlzZSA9IChvcHRpb25zKSA9PiBpdGVtc0lucHV0KG9wdGlvbnMpO1xuICAgICAgICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pdGVtc1NpZ25hbC5zZXQocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLml0ZW1zUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXRlbXNTaWduYWwuc2V0KGl0ZW1zSW5wdXQpO1xuICAgICAgICB0aGlzLml0ZW1zUHJvbWlzZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICk7XG5cbiAgaXRlbXMgPSBpbnB1dDxcbiAgICB8IEFYVHJlZVZpZXdTY2hlbWFbXVxuICAgIHwgKChvcHRpb25zPzogeyBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyIH0pID0+IEFYVHJlZVZpZXdTY2hlbWFbXSB8IFByb21pc2U8QVhUcmVlVmlld1NjaGVtYVtdPilcbiAgPigpO1xuXG4gIHByb3RlY3RlZCBnZXQgcmVzb2x2ZWRJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1NpZ25hbCgpO1xuICB9XG5cbiAgc2VsZWN0YWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHNlbGVjdGlvbk1vZGUgPSBpbnB1dDwnc2luZ2xlJyB8ICdtdWx0aXBsZSc+KCdzaW5nbGUnKTtcblxuICBzZWxlY3Rpb25CZWhhdmlvciA9IGlucHV0PFNlbGVjdGlvbkJlaGF2aW9yVHlwZT4obnVsbCk7XG5cbiAgc2hvd0FjdGl2ZU5vZGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICB2YWx1ZUZpZWxkID0gaW5wdXQ8c3RyaW5nPignaWQnKTtcblxuICB0ZXh0RmllbGQgPSBpbnB1dDxzdHJpbmc+KCd0ZXh0Jyk7XG5cbiAgdmlzaWJsZUZpZWxkID0gaW5wdXQ8c3RyaW5nPigndmlzaWJsZScpO1xuXG4gIGRpc2FibGVGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2Rpc2FibGVkJyk7XG5cbiAgaGFzQ2hpbGRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2hhc0NoaWxkJyk7XG5cbiAgaWNvbkZpZWxkID0gaW5wdXQ8c3RyaW5nPignaWNvbicpO1xuXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBvbkl0ZW1DbGljayA9IG91dHB1dDxBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQ+KCk7XG5cbiAgb25Ob2RlQ2xpY2sgPSBvdXRwdXQ8QVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50PigpO1xuXG4gIG9uTm9kZUV4cGFuZENsaWNrID0gb3V0cHV0PEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKGV2ZW50OiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKGl0ZW1bdGhpcy5kaXNhYmxlRmllbGQoKV0gfHwgdGhpcy5pc05vZGVMb2FkaW5nKGl0ZW0uaWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAnc2luZ2xlJyAmJiBldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUodGhpcy5pdGVtc1NpZ25hbCgpKTtcbiAgICB9XG4gICAgaXRlbS5zZWxlY3RlZCA9IGV2ZW50LnZhbHVlO1xuXG4gICAgaWYgKGV2ZW50LnZhbHVlICE9IG51bGwpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3Rpb25CZWhhdmlvcigpKSB7XG4gICAgICAgIGNhc2UgJ2F1dG9FeHBhbmQnOlxuICAgICAgICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNQcm9taXNlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkKCldICYmICFpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YShpdGVtLmlkKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhpdGVtLmlkLCB0cnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmQoaXRlbSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjYXNjYWRlJzpcbiAgICAgICAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoaXMgbW9kZSBvbmx5IGF2YWlsYWJsZSBjbGllbnQgU2lkZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlKCkgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGlzIG1vZGUgb25seSBhdmFpbGFibGUgc2VsZWN0aW9uTW9kZSBtdWx0aXBsZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmV4cGFuZEFuZFRvZ2dsZVNlbGVjdGlvbihpdGVtLCBldmVudC52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2luZGV0ZXJtaW5hdGUnOlxuICAgICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oaXRlbSwgZXZlbnQudmFsdWUsIGl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRTZWxlY3Rpb24oaXRlbSwgZXZlbnQudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3QgcmVzdWx0OiBBWFRyZWVWaWV3U2NoZW1hW10gPSB0aGlzLmZpbmRTZWxlY3RlZE5vZGVzKHRoaXMuaXRlbXNTaWduYWwoKSk7XG5cbiAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBpdGVtLCBuYXRpdmVFbGVtZW50OiB0aGlzLm5hdGl2ZUVsZW1lbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGF1dG8gZXhwYW5kXG4gICAqXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZUV4cGFuZChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hKSB7XG4gICAgaWYgKCFpdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgIGl0ZW0uaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGV4cGFuZCBhbmQgY2hhbmdlIHZhbHVlIHBhcmVudCBjaGFuZ2VcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBleHBhbmRBbmRUb2dnbGVTZWxlY3Rpb24oaXRlbTogQVhUcmVlVmlld1NjaGVtYSwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUV4cGFuZChpdGVtKTtcblxuICAgIGlmIChpdGVtLmNoaWxkcmVucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihpdGVtLCBzZWxlY3RlZCwgaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIGlzU2VsZWN0ZWQ6IGJvb2xlYW4sIHBhcmVudElkPzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaXRlbS5jaGlsZHJlbnMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIGNoaWxkLnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgICBjaGlsZC5zZWxlY3RlZCA9IGlzU2VsZWN0ZWQ7XG4gICAgICBpZiAoY2hpbGQuY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcHBseVNlbGVjdGlvblRvQ2hpbGRyZW4oY2hpbGQsIGlzU2VsZWN0ZWQsIGNoaWxkLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBpbmRldGVybWluYXRlIGxvZ2ljXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgdXBkYXRlUGFyZW50U2VsZWN0aW9uKGl0ZW06IEFYVHJlZVZpZXdTY2hlbWEsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgaXRlbS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgbGV0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuXG4gICAgd2hpbGUgKChwYXJlbnQgJiYgcGFyZW50LnNlbGVjdGVkICE9IGZhbHNlKSB8fCAocGFyZW50ICYmIGl0ZW0uc2VsZWN0ZWQpKSB7XG4gICAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHBhcmVudD8uY2hpbGRyZW5zPy5ldmVyeSgoY2hpbGQpID0+IGNoaWxkLnNlbGVjdGVkKTtcblxuICAgICAgY29uc3Qgc29tZVNlbGVjdGVkID0gcGFyZW50Py5jaGlsZHJlbnM/LnNvbWUoKGNoaWxkKSA9PiBjaGlsZC5zZWxlY3RlZCB8fCBjaGlsZC5pbmRldGVybWluYXRlKTtcblxuICAgICAgaWYgKCFhbGxTZWxlY3RlZCAmJiAhc29tZVNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFhbGxTZWxlY3RlZCkge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKGFsbFNlbGVjdGVkKSB7XG4gICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHBhcmVudC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnQuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICBwYXJlbnQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQocGFyZW50LCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChpdGVtOiBBWFRyZWVWaWV3U2NoZW1hLCBub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYSB8IG51bGwge1xuICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVucz8uaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW5zKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChpdGVtLCBub2RlLmNoaWxkcmVucyk7XG4gICAgICAgIGlmIChwYXJlbnQpIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGZpbmQgbm9kZSBzZWxlY3RlZCB0cnVlIGZvciBlbWl0IFNlbGVjdGlvbnNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmaW5kU2VsZWN0ZWROb2Rlcyhub2RlczogQVhUcmVlVmlld1NjaGVtYVtdKTogQVhUcmVlVmlld1NjaGVtYVtdIHtcbiAgICBsZXQgc2VsZWN0ZWROb2RlczogQVhUcmVlVmlld1NjaGVtYVtdID0gW107XG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5zZWxlY3RlZCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLmNoaWxkcmVucykge1xuICAgICAgICBzZWxlY3RlZE5vZGVzID0gc2VsZWN0ZWROb2Rlcy5jb25jYXQodGhpcy5maW5kU2VsZWN0ZWROb2Rlcyhub2RlLmNoaWxkcmVucykpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGVkTm9kZXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogZmluZCBmb3IgZW1pdCBTZWxlY3Rpb25zIHNpbmdsZSBtb2RlXG4gICAqXG4gICAqL1xuXG4gIHByaXZhdGUgaGFuZGxlVW5TZWxlY3ROb2RlKGl0ZW1zOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpdGVtcy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVVblNlbGVjdE5vZGUoY2hpbGQuY2hpbGRyZW5zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBsYXp5IGxvYWQgbG9naWNcbiAgICpcbiAgICovXG5cbiAgcHJpdmF0ZSBmZXRjaERhdGEocGFyZW50SWQ/OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICB0aGlzLml0ZW1zUHJvbWlzZSh7IHBhcmVudElkIH0pXG4gICAgICAudGhlbigoZGF0YTogQVhUcmVlVmlld1NjaGVtYVtdKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgaWYgKHBhcmVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmROb2RlKHBhcmVudElkLCBkYXRhLCB0aGlzLml0ZW1zU2lnbmFsKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU2lnbmFsLnNldChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0Tm9kZUxvYWRpbmcocGFyZW50SWQsIGZhbHNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShwYXJlbnRJZDogbnVtYmVyIHwgc3RyaW5nLCBfY2hpbGRyZW46IEFYVHJlZVZpZXdTY2hlbWFbXSwgc291cmNlOiBBWFRyZWVWaWV3U2NoZW1hW10pIHtcbiAgICBpZiAoc291cmNlLmxlbmd0aCkge1xuICAgICAgc291cmNlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkKCldID09IHBhcmVudElkKSB7XG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uQmVoYXZpb3IoKSA9PT0gJ2luZGV0ZXJtaW5hdGUnICYmIGVsZW1lbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIF9jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gKGNoaWxkLnNlbGVjdGVkID0gdHJ1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbGVtZW50LmNoaWxkcmVucyA9IF9jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW5zKSB0aGlzLmZpbmROb2RlKHBhcmVudElkLCBfY2hpbGRyZW4sIGVsZW1lbnQuY2hpbGRyZW5zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIGVtaXQgd2hlbiBhcnJvdyBjbGlja1xuICAgKlxuICAgKi9cblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZUV4cGFuZENsaWNrKG5vZGU6IEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudCkge1xuICAgIGNvbnN0IHBhcmVudElkID0gbm9kZS5kYXRhLmlkO1xuICAgIGlmICh0aGlzLml0ZW1zUHJvbWlzZSAmJiBub2RlLmRhdGEuaXNFeHBhbmRlZCAmJiAhbm9kZT8uZGF0YS5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5mZXRjaERhdGEocGFyZW50SWQpO1xuICAgICAgdGhpcy5zZXROb2RlTG9hZGluZyhub2RlLmRhdGEuaWQsIHRydWUpO1xuICAgIH1cbiAgICB0aGlzLm9uTm9kZUV4cGFuZENsaWNrLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG5vZGUuZGF0YSwgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBpZiAobm9kZS5kYXRhW3RoaXMuZGlzYWJsZUZpZWxkKCldKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dBY3RpdmVOb2RlKCkpIHtcbiAgICAgIHRoaXMuaGFuZGxlVW5BY3RpdmVOb2RlKHRoaXMuaXRlbXNTaWduYWwoKSk7XG4gICAgICBub2RlLmRhdGEuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgLy8vdG8gZG9cbiAgICAvLyBzd2l0Y2ggKHRoaXMuc2VsZWN0aW9uQmVoYXZpb3IoKSkge1xuICAgIC8vICAgY2FzZSAnYWN0aXZlQW5kU2VsZWN0JzpcbiAgICAvLyAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSgpID09PSAnc2luZ2xlJykge1xuICAgIC8vICAgICAgIHRoaXMuaGFuZGxlVW5zZWxlY3ROb2RlKHRoaXMuaXRlbXNTaWduYWwoKSk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAvLyAgICAgYnJlYWs7XG5cbiAgICAvLyAgIGRlZmF1bHQ6XG4gICAgLy8gICAgIGJyZWFrO1xuICAgIC8vIH1cbiAgICB0aGlzLm9uTm9kZUNsaWNrLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG5vZGUuZGF0YSwgbmF0aXZlRWxlbWVudDogdGhpcy5uYXRpdmVFbGVtZW50IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVbkFjdGl2ZU5vZGUodW5BY3RpdmVTb3VyY2U6IEFYVHJlZVZpZXdTY2hlbWFbXSkge1xuICAgIHVuQWN0aXZlU291cmNlLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICBjaGlsZC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIGlmIChjaGlsZD8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVVbkFjdGl2ZU5vZGUoY2hpbGQuY2hpbGRyZW5zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVOb2RlRGJDbGljayhub2RlOiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pdGVtc1Byb21pc2UpIHtcbiAgICAgIGNvbnN0IG5vZGVQYXJlbnRJZCA9IG5vZGUuZGF0YS5pZDtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhKG5vZGVQYXJlbnRJZCk7XG4gICAgICB0aGlzLnNldE5vZGVMb2FkaW5nKG5vZGUuZGF0YS5pZCwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkaW5nU3RhdGUgPSBzaWduYWw8UmVjb3JkPHN0cmluZyB8IG51bWJlciwgYm9vbGVhbj4+KHt9KTtcblxuICBwcm90ZWN0ZWQgaXNOb2RlTG9hZGluZyhub2RlSWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZSgpW25vZGVJZF0gfHwgZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldE5vZGVMb2FkaW5nKG5vZGVJZDogc3RyaW5nIHwgbnVtYmVyLCBpc0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS51cGRhdGUoKHN0YXRlKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBbbm9kZUlkXTogaXNMb2FkaW5nLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVOb2RlQnlWYWx1ZUZpZWxkKHZhbHVlRmllbGQ6IG51bWJlciB8IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLml0ZW1zU2lnbmFsKCkuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGVbdGhpcy52YWx1ZUZpZWxkKCldID09PSB2YWx1ZUZpZWxkKSB7XG4gICAgICAgIG5vZGUuYWN0aXZlID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobm9kZT8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNldEFjdGl2ZU5vZGVCeVZhbHVlRmllbGQobm9kZVt0aGlzLnZhbHVlRmllbGQoKV0sIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldEV4cGFuZE5vZGVCeVZhbHVlRmllbGQodmFsdWVGaWVsZDogbnVtYmVyIHwgc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXRlbXNTaWduYWwoKS5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZVt0aGlzLnZhbHVlRmllbGQoKV0gPT09IHZhbHVlRmllbGQpIHtcbiAgICAgICAgbm9kZS5pc0V4cGFuZGVkID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zUHJvbWlzZSAmJiB2YWx1ZSAmJiBub2RlW3RoaXMuaGFzQ2hpbGRGaWVsZCgpXSAmJiAhbm9kZT8uY2hpbGRyZW5zPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmZldGNoRGF0YShub2RlW3RoaXMudmFsdWVGaWVsZCgpXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChub2RlPy5jaGlsZHJlbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2V0RXhwYW5kTm9kZUJ5VmFsdWVGaWVsZChub2RlW3RoaXMudmFsdWVGaWVsZCgpXSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIkBmb3IgKG5vZGUgb2YgcmVzb2x2ZWRJdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj48L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbVt2aXNpYmxlRmllbGQoKV0gIT09IGZhbHNlKSB7XG4gICAgPGF4LXRyZWUtdmlldy1pdGVtXG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFsoaXNFeHBhbmRlZCldPVwiaXRlbS5pc0V4cGFuZGVkXCJcbiAgICAgIFsoaXNBY3RpdmUpXT1cIml0ZW0uYWN0aXZlXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNOb2RlTG9hZGluZyhpdGVtLmlkKVwiXG4gICAgICBbZGlzYWJsZUZpZWxkXT1cImRpc2FibGVGaWVsZCgpXCJcbiAgICAgIFtoYXNDaGlsZEZpZWxkXT1cImhhc0NoaWxkRmllbGQoKVwiXG4gICAgICAob25Ob2RlRXhwYW5kKT1cImhhbmRsZU5vZGVFeHBhbmRDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbk5vZGVDbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25Ob2RlRGJDbGljayk9XCJoYW5kbGVOb2RlRGJDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKHRoaXMuc2VsZWN0YWJsZSgpKSB7XG4gICAgICAgIDxheC1jaGVjay1ib3hcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGQoKV1cIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlTm9kZVNlbGVjdGlvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICA+PC9heC1jaGVjay1ib3g+XG4gICAgICB9XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICBAaWYgKGl0ZW1baWNvbkZpZWxkKCldKSB7XG4gICAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbVtpY29uRmllbGQoKV1cIj48L2F4LWljb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpPjwvaT5cbiAgICAgICAgfVxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICBAaWYgKGl0ZW1bdGV4dEZpZWxkKCldKSB7XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW1bdGV4dEZpZWxkKCldIH19PC9heC10ZXh0PlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PjwvYXgtc3VmZml4PlxuICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbT8uY2hpbGRyZW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvYXgtdHJlZS12aWV3LWl0ZW0+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -336,6 +336,9 @@ class AXAudioWaveComponent {
336
336
  });
337
337
  });
338
338
  }
339
+ ngOnDestroy() {
340
+ this.audio.destroy();
341
+ }
339
342
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXAudioWaveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
340
343
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXAudioWaveComponent, selector: "ax-audio-wave", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onStatusChanged: "onStatusChanged" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"ax-audio-wave\" #d [ngStyle]=\"{'display': audioState() === 'ready' ? 'block' : 'none' }\"></div>\n\n@switch (audioState()) {\n@case ('loading') {\n<div class=\"ax-audio-skeleton\"></div>\n}\n@case ('error') {\n<div class=\"ax-wave-message\">\n {{'error.message' | translate:{ params:{ message: errorMessage() } } | async }}\n</div>\n}\n}", styles: ["ax-audio-wave{display:block;width:100%;flex:1;--ax-audio-skeleton-bg: rgba(var(--ax-color-primary-200))}ax-audio-wave .ax-audio-skeleton{position:relative;display:block;overflow:hidden;background-color:var(--ax-audio-skeleton-bg);height:1.125rem;border-radius:999rem}ax-audio-wave .ax-audio-skeleton:before{position:absolute;inset-inline-start:-13rem;top:0;display:block;height:100%;width:14rem;content:\"\";background:linear-gradient(to right,transparent 0%,rgba(var(--ax-color-black),20%) 50%,transparent 100%);animation:load 1s cubic-bezier(.4,0,.2,1) infinite}@keyframes load{0%{inset-inline-start:-13rem}to{inset-inline-start:100%}}ax-audio-wave .ax-wave-message{padding-inline-start:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
341
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-audio-wave.mjs","sources":["../../../../libs/components/audio-wave/src/lib/audio-wave.component.ts","../../../../libs/components/audio-wave/src/lib/audio-wave.component.html","../../../../libs/components/audio-wave/src/lib/audio-wave.module.ts","../../../../libs/components/audio-wave/src/acorex-components-audio-wave.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n ElementRef,\n InputSignal,\n NgZone,\n PLATFORM_ID,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport WaveSurfer from 'wavesurfer.js';\nimport { AXAudioWaveChangeEvent, AXWaveConfig } from './interfaces/audio-wave.interface';\n\n/**\n * Displays and interacts with audio waveform visualization.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-audio-wave',\n templateUrl: './audio-wave.component.html',\n styleUrls: ['./audio-wave.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioWaveComponent {\n /**\n * @ignore\n */\n @ViewChild('d', { static: false }) protected div: ElementRef<HTMLDivElement>;\n\n /**\n * Configuration settings for the audio wave.\n */\n config: InputSignal<AXWaveConfig> = input<AXWaveConfig>();\n\n /**\n * Emits an event when the status of the audio wave changes.\n *\n * @event\n */\n onStatusChanged = output<AXAudioWaveChangeEvent>();\n\n audioState = signal<'playing' | 'paused' | 'loading' | 'ready' | 'error'>('paused');\n\n errorMessage = signal('');\n\n /**\n * @ignore\n */\n protected audio: WaveSurfer;\n\n /**\n * @ignore\n */\n private ngZone = inject(NgZone);\n\n private platformID = inject(PLATFORM_ID);\n /**\n * @ignore\n */\n constructor() {\n afterNextRender(() => {\n if (isPlatformBrowser(this.platformID)) {\n const primary200 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-200');\n const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-700');\n\n this.audio = WaveSurfer.create({\n container: this.div.nativeElement,\n waveColor: this.config()?.waveColor || `rgba(${primary200})`,\n progressColor: this.config()?.progressColor || `rgba(${primary700})`,\n url: this.config()?.url || '',\n barWidth: this.config()?.barWidth || 2,\n barRadius: this.config()?.barRadius || 2,\n barGap: this.config()?.barGap || 2,\n height: this.config()?.height || 36,\n });\n }\n this.load();\n this.audio?.on('loading', () => {\n this.audioState.set('loading');\n });\n this.audio?.on('ready', () => {\n this.audioState.set('ready');\n });\n this.audio?.on('error', (e) => {\n this.errorMessage.set(e?.message);\n this.audioState.set('error');\n });\n this.bindEvents();\n });\n }\n\n /**\n * Loads the audio from the specified URL.\n *\n * @param url - The URL of the audio to load. Defaults to the URL from the config.\n */\n load(url = this.config().url) {\n this.audio.load(url);\n }\n\n /**\n * Plays the audio.\n *\n */\n play(): Promise<any> {\n return this.audio?.play();\n }\n\n /**\n * Pauses the audio.\n */\n pause(): void {\n this.audio?.pause();\n }\n\n /**\n * Retrieves the duration of the audio.\n *\n */\n getDuration() {\n return this.audio?.getDuration() ?? 0;\n }\n\n /**\n * Retrieves the media element of the audio.\n *\n */\n getMediaElement() {\n return this.audio?.getMediaElement();\n }\n\n /**\n * Sets the playback rate of the audio.\n *\n * @param rate - The playback rate to set.\n */\n setRate(rate: number) {\n this.audio.setPlaybackRate(rate);\n }\n\n /**\n * @ignore\n */\n protected bindEvents() {\n this.handleLoad();\n this.handleLoading();\n this.handleDecode();\n this.handleReady();\n this.handleRedRawComplete();\n this.handlePlay();\n this.handlePause();\n this.handleFinish();\n this.handleTimeUpdate();\n this.handleSeeking();\n this.handleInteraction();\n this.handleClick();\n this.handleDrag();\n this.handleScroll();\n this.handleZoom();\n this.handleDestroy();\n this.handleError();\n }\n /** When audio starts loading */\n protected handleLoad() {\n this.audio?.on('load', (url) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { url: url },\n status: 'load',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** During audio loading */\n protected handleLoading() {\n this.audio?.on('loading', (percent) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { percent: percent },\n status: 'loading',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio has been decoded */\n protected handleDecode() {\n this.audio?.on('decode', (duration) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { duration: duration },\n status: 'decode',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio is both decoded and can play */\n protected handleReady() {\n this.audio?.on('ready', (duration) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { duration: duration },\n status: 'ready',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When all audio channel chunks of the waveform have drawn */\n protected handleRedRawComplete() {\n this.audio?.on('redrawcomplete', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'redrawcomplete',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio starts playing */\n protected handlePlay() {\n this.audio?.on('play', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: null, status: 'play', isUserInteraction: false });\n });\n });\n }\n\n /** When the audio pauses */\n protected handlePause() {\n this.audio?.on('pause', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: null, status: 'pause', isUserInteraction: false });\n });\n });\n }\n\n /** When the audio finishes playing */\n protected handleFinish() {\n this.audio?.on('finish', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'finish',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** On audio position change, fires continuously during playback */\n protected handleTimeUpdate() {\n this.audio?.on('timeupdate', (currentTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { currentTime: currentTime },\n status: 'timeupdate',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user seeks to a new position */\n protected handleSeeking() {\n this.audio?.on('seeking', (currentTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { currentTime: currentTime },\n status: 'seeking',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user interacts with the waveform (i.g. clicks or drags on it) */\n protected handleInteraction() {\n this.audio?.on('interaction', (newTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { newTime: newTime },\n status: 'interaction',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user clicks on the waveform */\n protected handleClick() {\n this.audio?.on('click', (relativeX) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { relativeX: relativeX },\n status: 'click',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user drags the cursor */\n protected handleDrag() {\n this.audio?.on('drag', (relativeX) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { relativeX: relativeX },\n status: 'drag',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the waveform is scrolled (panned) */\n protected handleScroll() {\n this.audio?.on('scroll', (visibleStartTime, visibleEndTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { visibleStartTime, visibleEndTime },\n status: 'scroll',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the zoom level changes */\n protected handleZoom() {\n this.audio?.on('zoom', (minPxPerSec) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { minPxPerSec: minPxPerSec },\n status: 'zoom',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** Just before the waveform is destroyed so you can clean up your events */\n protected handleDestroy() {\n this.audio?.on('destroy', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'destroy',\n isUserInteraction: false,\n });\n });\n });\n }\n /** Just before the waveform is destroyed so you can clean up your events */\n protected handleError() {\n this.audio?.on('error', (e) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: e, status: 'error', isUserInteraction: false });\n });\n });\n }\n}\n","<div class=\"ax-audio-wave\" #d [ngStyle]=\"{'display': audioState() === 'ready' ? 'block' : 'none' }\"></div>\n\n@switch (audioState()) {\n@case ('loading') {\n<div class=\"ax-audio-skeleton\"></div>\n}\n@case ('error') {\n<div class=\"ax-wave-message\">\n {{'error.message' | translate:{ params:{ message: errorMessage() } } | async }}\n</div>\n}\n}","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXAudioWaveComponent } from './audio-wave.component';\n\n@NgModule({\n declarations: [AXAudioWaveComponent],\n exports: [AXAudioWaveComponent],\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXSkeletonModule, AXTranslationModule],\n})\nexport class AXAudioWaveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-audio-wave.mjs","sources":["../../../../libs/components/audio-wave/src/lib/audio-wave.component.ts","../../../../libs/components/audio-wave/src/lib/audio-wave.component.html","../../../../libs/components/audio-wave/src/lib/audio-wave.module.ts","../../../../libs/components/audio-wave/src/acorex-components-audio-wave.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n ElementRef,\n InputSignal,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport WaveSurfer from 'wavesurfer.js';\nimport { AXAudioWaveChangeEvent, AXWaveConfig } from './interfaces/audio-wave.interface';\n\n/**\n * Displays and interacts with audio waveform visualization.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-audio-wave',\n templateUrl: './audio-wave.component.html',\n styleUrls: ['./audio-wave.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXAudioWaveComponent implements OnDestroy {\n /**\n * @ignore\n */\n @ViewChild('d', { static: false }) protected div: ElementRef<HTMLDivElement>;\n\n /**\n * Configuration settings for the audio wave.\n */\n config: InputSignal<AXWaveConfig> = input<AXWaveConfig>();\n\n /**\n * Emits an event when the status of the audio wave changes.\n *\n * @event\n */\n onStatusChanged = output<AXAudioWaveChangeEvent>();\n\n audioState = signal<'playing' | 'paused' | 'loading' | 'ready' | 'error'>('paused');\n\n errorMessage = signal('');\n\n /**\n * @ignore\n */\n protected audio: WaveSurfer;\n\n /**\n * @ignore\n */\n private ngZone = inject(NgZone);\n\n private platformID = inject(PLATFORM_ID);\n /**\n * @ignore\n */\n constructor() {\n afterNextRender(() => {\n if (isPlatformBrowser(this.platformID)) {\n const primary200 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-200');\n const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-700');\n\n this.audio = WaveSurfer.create({\n container: this.div.nativeElement,\n waveColor: this.config()?.waveColor || `rgba(${primary200})`,\n progressColor: this.config()?.progressColor || `rgba(${primary700})`,\n url: this.config()?.url || '',\n barWidth: this.config()?.barWidth || 2,\n barRadius: this.config()?.barRadius || 2,\n barGap: this.config()?.barGap || 2,\n height: this.config()?.height || 36,\n });\n }\n this.load();\n this.audio?.on('loading', () => {\n this.audioState.set('loading');\n });\n this.audio?.on('ready', () => {\n this.audioState.set('ready');\n });\n this.audio?.on('error', (e) => {\n this.errorMessage.set(e?.message);\n this.audioState.set('error');\n });\n this.bindEvents();\n });\n }\n\n /**\n * Loads the audio from the specified URL.\n *\n * @param url - The URL of the audio to load. Defaults to the URL from the config.\n */\n load(url = this.config().url) {\n this.audio.load(url);\n }\n\n /**\n * Plays the audio.\n *\n */\n play(): Promise<any> {\n return this.audio?.play();\n }\n\n /**\n * Pauses the audio.\n */\n pause(): void {\n this.audio?.pause();\n }\n\n /**\n * Retrieves the duration of the audio.\n *\n */\n getDuration() {\n return this.audio?.getDuration() ?? 0;\n }\n\n /**\n * Retrieves the media element of the audio.\n *\n */\n getMediaElement() {\n return this.audio?.getMediaElement();\n }\n\n /**\n * Sets the playback rate of the audio.\n *\n * @param rate - The playback rate to set.\n */\n setRate(rate: number) {\n this.audio.setPlaybackRate(rate);\n }\n\n /**\n * @ignore\n */\n protected bindEvents() {\n this.handleLoad();\n this.handleLoading();\n this.handleDecode();\n this.handleReady();\n this.handleRedRawComplete();\n this.handlePlay();\n this.handlePause();\n this.handleFinish();\n this.handleTimeUpdate();\n this.handleSeeking();\n this.handleInteraction();\n this.handleClick();\n this.handleDrag();\n this.handleScroll();\n this.handleZoom();\n this.handleDestroy();\n this.handleError();\n }\n /** When audio starts loading */\n protected handleLoad() {\n this.audio?.on('load', (url) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { url: url },\n status: 'load',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** During audio loading */\n protected handleLoading() {\n this.audio?.on('loading', (percent) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { percent: percent },\n status: 'loading',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio has been decoded */\n protected handleDecode() {\n this.audio?.on('decode', (duration) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { duration: duration },\n status: 'decode',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio is both decoded and can play */\n protected handleReady() {\n this.audio?.on('ready', (duration) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { duration: duration },\n status: 'ready',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When all audio channel chunks of the waveform have drawn */\n protected handleRedRawComplete() {\n this.audio?.on('redrawcomplete', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'redrawcomplete',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the audio starts playing */\n protected handlePlay() {\n this.audio?.on('play', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: null, status: 'play', isUserInteraction: false });\n });\n });\n }\n\n /** When the audio pauses */\n protected handlePause() {\n this.audio?.on('pause', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: null, status: 'pause', isUserInteraction: false });\n });\n });\n }\n\n /** When the audio finishes playing */\n protected handleFinish() {\n this.audio?.on('finish', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'finish',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** On audio position change, fires continuously during playback */\n protected handleTimeUpdate() {\n this.audio?.on('timeupdate', (currentTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { currentTime: currentTime },\n status: 'timeupdate',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user seeks to a new position */\n protected handleSeeking() {\n this.audio?.on('seeking', (currentTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { currentTime: currentTime },\n status: 'seeking',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user interacts with the waveform (i.g. clicks or drags on it) */\n protected handleInteraction() {\n this.audio?.on('interaction', (newTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { newTime: newTime },\n status: 'interaction',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user clicks on the waveform */\n protected handleClick() {\n this.audio?.on('click', (relativeX) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { relativeX: relativeX },\n status: 'click',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the user drags the cursor */\n protected handleDrag() {\n this.audio?.on('drag', (relativeX) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { relativeX: relativeX },\n status: 'drag',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the waveform is scrolled (panned) */\n protected handleScroll() {\n this.audio?.on('scroll', (visibleStartTime, visibleEndTime) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { visibleStartTime, visibleEndTime },\n status: 'scroll',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** When the zoom level changes */\n protected handleZoom() {\n this.audio?.on('zoom', (minPxPerSec) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: { minPxPerSec: minPxPerSec },\n status: 'zoom',\n isUserInteraction: false,\n });\n });\n });\n }\n\n /** Just before the waveform is destroyed so you can clean up your events */\n protected handleDestroy() {\n this.audio?.on('destroy', () => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({\n component: this,\n data: null,\n status: 'destroy',\n isUserInteraction: false,\n });\n });\n });\n }\n /** Just before the waveform is destroyed so you can clean up your events */\n protected handleError() {\n this.audio?.on('error', (e) => {\n this.ngZone.run(() => {\n this.onStatusChanged.emit({ component: this, data: e, status: 'error', isUserInteraction: false });\n });\n });\n }\n\n ngOnDestroy(): void {\n this.audio.destroy();\n }\n}\n","<div class=\"ax-audio-wave\" #d [ngStyle]=\"{'display': audioState() === 'ready' ? 'block' : 'none' }\"></div>\n\n@switch (audioState()) {\n@case ('loading') {\n<div class=\"ax-audio-skeleton\"></div>\n}\n@case ('error') {\n<div class=\"ax-wave-message\">\n {{'error.message' | translate:{ params:{ message: errorMessage() } } | async }}\n</div>\n}\n}","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXAudioWaveComponent } from './audio-wave.component';\n\n@NgModule({\n declarations: [AXAudioWaveComponent],\n exports: [AXAudioWaveComponent],\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXSkeletonModule, AXTranslationModule],\n})\nexport class AXAudioWaveModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -11,12 +11,19 @@ import { RouterModule } from '@angular/router';
11
11
  * @category Components
12
12
  */
13
13
  class AXBreadCrumbsComponent extends MXBaseComponent {
14
+ ngAfterViewInit() {
15
+ this.getHostElement().scrollTo({
16
+ left: this.getHostElement().scrollWidth,
17
+ top: 0,
18
+ behavior: 'instant',
19
+ });
20
+ }
14
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXBreadCrumbsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXBreadCrumbsComponent, selector: "ax-breadcrumbs", queries: [{ propertyName: "_divider", first: true, predicate: ["divider"], descendants: true }], viewQueries: [{ propertyName: "dividerTemplate", first: true, predicate: ["dividerTpl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>", styles: ["ax-breadcrumbs{display:inline-flex;width:100%;align-items:center;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;font-size:initial}ax-breadcrumbs ax-breadcrumbs-item{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;font-size:.875rem;line-height:1.25rem;text-decoration-line:none;font-weight:500;color:rgba(var(--ax-color-text-default),.75)}ax-breadcrumbs ax-breadcrumbs-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-breadcrumbs ax-breadcrumbs-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-breadcrumbs ax-breadcrumbs-item ax-prefix{padding-left:.5rem;padding-right:.5rem;padding-top:0;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item>.ax-breadcrumb-divider{font-size:.875rem;padding-left:.375rem;padding-right:.375rem;padding-top:2px;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item:last-child .ax-breadcrumb-divider{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXBreadCrumbsComponent, selector: "ax-breadcrumbs", queries: [{ propertyName: "_divider", first: true, predicate: ["divider"], descendants: true }], viewQueries: [{ propertyName: "dividerTemplate", first: true, predicate: ["dividerTpl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>", styles: ["ax-breadcrumbs{display:inline-flex;width:100%;align-items:center;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-x:contain;scroll-snap-type:x proximity;font-size:initial}ax-breadcrumbs ax-breadcrumbs-item{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;font-size:.875rem;line-height:1.25rem;text-decoration-line:none;font-weight:500;color:rgba(var(--ax-color-text-default),.75);white-space:nowrap}ax-breadcrumbs ax-breadcrumbs-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-breadcrumbs ax-breadcrumbs-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-breadcrumbs ax-breadcrumbs-item ax-prefix{padding-left:.5rem;padding-right:.5rem;padding-top:0;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item>.ax-breadcrumb-divider{font-size:.875rem;padding-left:.375rem;padding-right:.375rem;padding-top:2px;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item:first-child .ax-breadcrumb-divider{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
23
  }
17
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXBreadCrumbsComponent, decorators: [{
18
25
  type: Component,
19
- args: [{ selector: 'ax-breadcrumbs', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>", styles: ["ax-breadcrumbs{display:inline-flex;width:100%;align-items:center;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;font-size:initial}ax-breadcrumbs ax-breadcrumbs-item{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;font-size:.875rem;line-height:1.25rem;text-decoration-line:none;font-weight:500;color:rgba(var(--ax-color-text-default),.75)}ax-breadcrumbs ax-breadcrumbs-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-breadcrumbs ax-breadcrumbs-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-breadcrumbs ax-breadcrumbs-item ax-prefix{padding-left:.5rem;padding-right:.5rem;padding-top:0;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item>.ax-breadcrumb-divider{font-size:.875rem;padding-left:.375rem;padding-right:.375rem;padding-top:2px;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item:last-child .ax-breadcrumb-divider{display:none}\n"] }]
26
+ args: [{ selector: 'ax-breadcrumbs', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>", styles: ["ax-breadcrumbs{display:inline-flex;width:100%;align-items:center;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-x:contain;scroll-snap-type:x proximity;font-size:initial}ax-breadcrumbs ax-breadcrumbs-item{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;font-size:.875rem;line-height:1.25rem;text-decoration-line:none;font-weight:500;color:rgba(var(--ax-color-text-default),.75);white-space:nowrap}ax-breadcrumbs ax-breadcrumbs-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-breadcrumbs ax-breadcrumbs-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-breadcrumbs ax-breadcrumbs-item ax-prefix{padding-left:.5rem;padding-right:.5rem;padding-top:0;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item>.ax-breadcrumb-divider{font-size:.875rem;padding-left:.375rem;padding-right:.375rem;padding-top:2px;padding-bottom:0}ax-breadcrumbs ax-breadcrumbs-item:first-child .ax-breadcrumb-divider{display:none}\n"] }]
20
27
  }], propDecorators: { _divider: [{
21
28
  type: ContentChild,
22
29
  args: ['divider']
@@ -45,11 +52,11 @@ class AXBreadCrumbsItemComponent extends MXInteractiveComponent {
45
52
  return [`${this.active ? 'ax-state-active' : ''}`, `${this.disabled ? 'ax-state-disabled' : ''}`];
46
53
  }
47
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXBreadCrumbsItemComponent, deps: [{ token: AXBreadCrumbsComponent }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: { disabled: "disabled", active: "active" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: { disabled: "disabled", active: "active" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
49
56
  }
50
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXBreadCrumbsItemComponent, decorators: [{
51
58
  type: Component,
52
- args: [{ selector: 'ax-breadcrumbs-item', inputs: ['disabled'], template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n" }]
59
+ args: [{ selector: 'ax-breadcrumbs-item', inputs: ['disabled'], template: "<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n" }]
53
60
  }], ctorParameters: () => [{ type: AXBreadCrumbsComponent, decorators: [{
54
61
  type: Inject,
55
62
  args: [AXBreadCrumbsComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-breadcrumbs.mjs","sources":["../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.component.ts","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.component.html","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs-item.component.ts","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs-item.component.html","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.module.ts","../../../../libs/components/breadcrumbs/src/acorex-components-breadcrumbs.ts"],"sourcesContent":["import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * The Breadcrumbs component displays a navigation trail of links, helping users to track their location within an application's hierarchy.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXBreadCrumbsComponent extends MXBaseComponent {\n /**\n * @ignore\n */\n @ContentChild('divider')\n protected _divider: TemplateRef<any>;\n\n /**\n * @ignore\n */\n @ViewChild('dividerTpl')\n dividerTemplate: TemplateRef<any>;\n}\n","<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>","import { MXInteractiveComponent } from '@acorex/components/common';\nimport { Component, HostBinding, Inject, Input } from '@angular/core';\nimport { AXBreadCrumbsComponent } from './breadcrumbs.component';\n\n/**\n * Component representing an item in a breadcrumbs navigation.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-breadcrumbs-item',\n inputs: ['disabled'],\n templateUrl: './breadcrumbs-item.component.html',\n})\nexport class AXBreadCrumbsItemComponent extends MXInteractiveComponent {\n /**\n * Indicates whether this breadcrumb item is the current active item.\n */\n @Input() active: boolean;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(AXBreadCrumbsComponent)\n public _parent: AXBreadCrumbsComponent,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`${this.active ? 'ax-state-active' : ''}`, `${this.disabled ? 'ax-state-disabled' : ''}`];\n }\n}\n","<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXBreadCrumbsItemComponent } from './breadcrumbs-item.component';\nimport { AXBreadCrumbsComponent } from './breadcrumbs.component';\n\n@NgModule({\n declarations: [AXBreadCrumbsComponent, AXBreadCrumbsItemComponent],\n imports: [CommonModule, RouterModule],\n exports: [AXBreadCrumbsComponent, AXBreadCrumbsItemComponent],\n providers: [],\n})\nexport class AXBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-breadcrumbs.mjs","sources":["../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.component.ts","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.component.html","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs-item.component.ts","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs-item.component.html","../../../../libs/components/breadcrumbs/src/lib/breadcrumbs.module.ts","../../../../libs/components/breadcrumbs/src/acorex-components-breadcrumbs.ts"],"sourcesContent":["import { MXBaseComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * The Breadcrumbs component displays a navigation trail of links, helping users to track their location within an application's hierarchy.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXBreadCrumbsComponent extends MXBaseComponent implements AfterViewInit {\n /**\n * @ignore\n */\n @ContentChild('divider')\n protected _divider: TemplateRef<any>;\n\n /**\n * @ignore\n */\n @ViewChild('dividerTpl')\n dividerTemplate: TemplateRef<any>;\n\n ngAfterViewInit(): void {\n this.getHostElement().scrollTo({\n left: this.getHostElement().scrollWidth,\n top: 0,\n behavior: 'instant',\n });\n }\n}\n","<ng-content select=\"ax-breadcrumbs-item\"></ng-content>\n<ng-template #dividerTpl>\n @if(!_divider){\n <ng-container [ngTemplateOutlet]=\"default\"></ng-container>\n }\n @if(_divider){\n <ng-container [ngTemplateOutlet]=\"_divider\"></ng-container>\n }\n <ng-template #default>\n <div class=\"ax-breadcrumb-divider\">/</div>\n </ng-template>\n</ng-template>","import { MXInteractiveComponent } from '@acorex/components/common';\nimport { Component, HostBinding, Inject, Input } from '@angular/core';\nimport { AXBreadCrumbsComponent } from './breadcrumbs.component';\n\n/**\n * Component representing an item in a breadcrumbs navigation.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-breadcrumbs-item',\n inputs: ['disabled'],\n templateUrl: './breadcrumbs-item.component.html',\n})\nexport class AXBreadCrumbsItemComponent extends MXInteractiveComponent {\n /**\n * Indicates whether this breadcrumb item is the current active item.\n */\n @Input() active: boolean;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(AXBreadCrumbsComponent)\n public _parent: AXBreadCrumbsComponent,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`${this.active ? 'ax-state-active' : ''}`, `${this.disabled ? 'ax-state-disabled' : ''}`];\n }\n}\n","<div class=\"ax-breadcrumb-divider\">\n <ng-container *ngTemplateOutlet=\"_parent.dividerTemplate\"></ng-container>\n</div>\n\n<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXBreadCrumbsItemComponent } from './breadcrumbs-item.component';\nimport { AXBreadCrumbsComponent } from './breadcrumbs.component';\n\n@NgModule({\n declarations: [AXBreadCrumbsComponent, AXBreadCrumbsItemComponent],\n imports: [CommonModule, RouterModule],\n exports: [AXBreadCrumbsComponent, AXBreadCrumbsItemComponent],\n providers: [],\n})\nexport class AXBreadcrumbsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -338,11 +338,11 @@ class AXFormFieldComponent extends MXBaseComponent {
338
338
  return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];
339
339
  }
340
340
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
341
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXFormFieldComponent, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".ax-dark ax-form.ax-form-normal .ax-error-message{border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-200));color:rgba(var(--ax-color-danger-fore-tint))}.ax-dark ax-form.ax-form-normal .ax-error-message:before,.ax-dark ax-form.ax-form-normal .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form.ax-form-normal .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form form.ax-float-error .ax-error-message{border-color:rgba(var(--ax-color-danger-700));background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-form form.ax-float-error .ax-error-message:before,.ax-dark ax-form form.ax-float-error .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-700))}.ax-dark ax-form form.ax-float-error .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-700))}ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-color-text-default),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-select-box-selection.ax-multiple,ax-form-field.ax-state-over-label .ax-select-box-selection.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));padding:.25rem .5rem;font-weight:400;color:rgba(var(--ax-color-danger-fore))}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-color-danger-500));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
341
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXFormFieldComponent, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".ax-dark ax-form.ax-form-normal .ax-error-message{border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-200));color:rgba(var(--ax-color-danger-fore-tint))}.ax-dark ax-form.ax-form-normal .ax-error-message:before,.ax-dark ax-form.ax-form-normal .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form.ax-form-normal .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form form.ax-float-error .ax-error-message{border-color:rgba(var(--ax-color-danger-700));background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-form form.ax-float-error .ax-error-message:before,.ax-dark ax-form form.ax-float-error .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-700))}.ax-dark ax-form form.ax-float-error .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-700))}ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-size-default, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-color-text-default),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-select-box-selection.ax-multiple,ax-form-field.ax-state-over-label .ax-select-box-selection.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));padding:.25rem .5rem;font-weight:400;color:rgba(var(--ax-color-danger-fore))}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-color-danger-500));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
342
342
  }
343
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXFormFieldComponent, decorators: [{
344
344
  type: Component,
345
- args: [{ selector: 'ax-form-field', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], styles: [".ax-dark ax-form.ax-form-normal .ax-error-message{border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-200));color:rgba(var(--ax-color-danger-fore-tint))}.ax-dark ax-form.ax-form-normal .ax-error-message:before,.ax-dark ax-form.ax-form-normal .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form.ax-form-normal .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form form.ax-float-error .ax-error-message{border-color:rgba(var(--ax-color-danger-700));background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-form form.ax-float-error .ax-error-message:before,.ax-dark ax-form form.ax-float-error .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-700))}.ax-dark ax-form form.ax-float-error .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-700))}ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-color-text-default),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-select-box-selection.ax-multiple,ax-form-field.ax-state-over-label .ax-select-box-selection.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));padding:.25rem .5rem;font-weight:400;color:rgba(var(--ax-color-danger-fore))}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-color-danger-500));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"] }]
345
+ args: [{ selector: 'ax-form-field', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], styles: [".ax-dark ax-form.ax-form-normal .ax-error-message{border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-200));color:rgba(var(--ax-color-danger-fore-tint))}.ax-dark ax-form.ax-form-normal .ax-error-message:before,.ax-dark ax-form.ax-form-normal .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form.ax-form-normal .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-500))}.ax-dark ax-form form.ax-float-error .ax-error-message{border-color:rgba(var(--ax-color-danger-700));background-color:rgba(var(--ax-color-danger-700));color:rgba(var(--ax-color-danger-fore))}.ax-dark ax-form form.ax-float-error .ax-error-message:before,.ax-dark ax-form form.ax-float-error .ax-error-message:after{border-bottom-color:rgba(var(--ax-color-danger-700))}.ax-dark ax-form form.ax-float-error .ax-error-message:before{border-bottom-color:rgba(var(--ax-color-danger-700))}ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-size-default, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-color-text-default),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-size-default: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-select-box-selection.ax-multiple,ax-form-field.ax-state-over-label .ax-select-box-selection.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-color-danger-500));background-color:rgba(var(--ax-color-danger-500));padding:.25rem .5rem;font-weight:400;color:rgba(var(--ax-color-danger-fore))}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-color-danger-500));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-color-danger-500))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"] }]
346
346
  }], ctorParameters: () => [], propDecorators: { input: [{
347
347
  type: ContentChild,
348
348
  args: [AXValuableComponent]