@odx/angular 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +20 -0
  3. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +10 -6
  4. package/cdk/expandable/lib/directives/index.d.ts +1 -1
  5. package/cdk/expandable/lib/expandable.module.d.ts +1 -1
  6. package/cdk/expandable/lib/expandable.tokens.d.ts +2 -1
  7. package/cdk/expandable/lib/facade/expandable-container.d.ts +6 -3
  8. package/cdk/expandable/lib/facade/expandable-item.d.ts +6 -3
  9. package/components/accordion/lib/accordion.component.d.ts +3 -3
  10. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +4 -3
  11. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +4 -7
  12. package/components/list/lib/components/list-item/list-item.component.d.ts +1 -1
  13. package/components/list/lib/list.component.d.ts +3 -4
  14. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +4 -3
  15. package/components/rich-list/lib/rich-list.component.d.ts +3 -4
  16. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +59 -0
  17. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +27 -10
  18. package/esm2022/cdk/expandable/lib/directives/index.mjs +2 -2
  19. package/esm2022/cdk/expandable/lib/expandable.tokens.mjs +2 -1
  20. package/esm2022/cdk/expandable/lib/facade/expandable-container.mjs +1 -1
  21. package/esm2022/cdk/expandable/lib/facade/expandable-item.mjs +1 -1
  22. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -11
  23. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +17 -17
  24. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +16 -31
  25. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +7 -8
  26. package/esm2022/components/list/lib/list.component.mjs +11 -15
  27. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +17 -17
  28. package/esm2022/components/rich-list/lib/rich-list.component.mjs +9 -12
  29. package/esm2022/rxjs/index.mjs +2 -1
  30. package/esm2022/rxjs/lib/from-element-mutation.mjs +10 -0
  31. package/esm2022/rxjs/lib/from-element-resize.mjs +2 -2
  32. package/fesm2022/odx-angular-cdk-expandable.mjs +84 -57
  33. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  34. package/fesm2022/odx-angular-components-accordion.mjs +22 -25
  35. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  36. package/fesm2022/odx-angular-components-list.mjs +26 -47
  37. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  38. package/fesm2022/odx-angular-components-rich-list.mjs +22 -26
  39. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  40. package/fesm2022/odx-angular-rxjs.mjs +11 -3
  41. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  42. package/package.json +7 -7
  43. package/rxjs/index.d.ts +1 -0
  44. package/rxjs/lib/from-element-mutation.d.ts +2 -0
  45. package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +0 -13
  46. package/esm2022/cdk/expandable/lib/directives/extandable-container.directive.mjs +0 -50
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  ## 2.14.4
2
2
 
3
+ ## 3.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - f524531: Add fromElementMutation rxjs helper
8
+
9
+ ## 3.1.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 66a521fb: Make list components nestable
14
+ Redesign expandable list items
15
+
3
16
  ## 3.0.0
4
17
 
5
18
  ### Major Changes
@@ -0,0 +1,20 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import type { ExpandableContainer, ExpandableItem } from '../facade';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ExpandableContainerDirective implements ExpandableContainer, OnInit, OnDestroy {
5
+ private readonly expandedItems;
6
+ private readonly parentItem;
7
+ private readonly parentContainer;
8
+ multiple: boolean;
9
+ ngOnInit(): void;
10
+ ngOnDestroy(): void;
11
+ collapseAll(): void;
12
+ collapse(item: ExpandableItem): void;
13
+ expand(item: ExpandableItem): void;
14
+ toggle(item: ExpandableItem, forceState?: boolean): void;
15
+ isExpanded(item: ExpandableItem): boolean;
16
+ hasExpandedItem(): boolean;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableContainerDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ExpandableContainerDirective, "[odxExpandableContainer]", ["odxExpandableContainer"], { "multiple": { "alias": "multiple"; "required": false; }; }, {}, never, never, true, never>;
19
+ static ngAcceptInputType_multiple: unknown;
20
+ }
@@ -1,16 +1,20 @@
1
- import { ExpandableItem } from '../facade';
1
+ import type { ExpandableContainer, ExpandableItem } from '../facade';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ExpandableItemDirective implements ExpandableItem {
4
- private readonly container;
5
4
  private readonly changeDetectorRef;
5
+ private readonly childContainers;
6
+ private readonly container;
6
7
  private _expanded;
7
- readonly id: string;
8
+ id: string;
8
9
  set expanded(value: boolean);
9
10
  get expanded(): boolean;
10
11
  toggle(forceState?: boolean): void;
11
- open(): void;
12
- close(): void;
12
+ expand(): void;
13
+ collapse(): void;
14
+ addChild(container: ExpandableContainer): void;
15
+ removeChild(container: ExpandableContainer): void;
16
+ private closeAllChildren;
13
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableItemDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<ExpandableItemDirective, "[odxExpandableItem]", never, { "expanded": { "alias": "expanded"; "required": false; }; }, {}, never, never, true, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ExpandableItemDirective, "[odxExpandableItem]", ["odxExpandableItem"], { "id": { "alias": "id"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, {}, never, never, true, never>;
15
19
  static ngAcceptInputType_expanded: unknown;
16
20
  }
@@ -1,2 +1,2 @@
1
+ export * from './expandable-container.directive';
1
2
  export * from './expandable-item.directive';
2
- export * from './extandable-container.directive';
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./directives/extandable-container.directive";
2
+ import * as i1 from "./directives/expandable-container.directive";
3
3
  import * as i2 from "./directives/expandable-item.directive";
4
4
  export declare class ExpandableModule {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableModule, never>;
@@ -1,3 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ExpandableContainer } from './facade';
2
+ import { ExpandableContainer, ExpandableItem } from './facade';
3
3
  export declare const ODX_EXPANDABLE_CONTAINER: InjectionToken<ExpandableContainer>;
4
+ export declare const ODX_EXPANDABLE_ITEM: InjectionToken<ExpandableItem>;
@@ -1,7 +1,10 @@
1
1
  import { ExpandableItem } from './expandable-item';
2
2
  export interface ExpandableContainer {
3
- close(item: ExpandableItem): void;
4
- closeAll(): void;
5
- open(item: ExpandableItem): void;
3
+ multiple: boolean;
4
+ collapseAll(): void;
5
+ collapse(item: ExpandableItem): void;
6
+ expand(item: ExpandableItem): void;
7
+ toggle(item: ExpandableItem): void;
8
+ isExpanded(item: ExpandableItem): boolean;
6
9
  hasExpandedItem(): boolean;
7
10
  }
@@ -1,7 +1,10 @@
1
+ import { ExpandableContainer } from './expandable-container';
1
2
  export interface ExpandableItem {
2
- readonly id: string;
3
+ id: string;
3
4
  expanded: boolean;
4
- close(): void;
5
- open(): void;
5
+ collapse(): void;
6
+ expand(): void;
6
7
  toggle(): void;
8
+ addChild(container: ExpandableContainer): void;
9
+ removeChild(container: ExpandableContainer): void;
7
10
  }
@@ -1,7 +1,7 @@
1
- import { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';
2
1
  import * as i0 from "@angular/core";
3
- export declare class AccordionComponent extends ExpandableContainerDirective {
2
+ import * as i1 from "@odx/angular/cdk/expandable";
3
+ export declare class AccordionComponent {
4
4
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "odx-accordion", never, {}, {}, never, ["odx-accordion-item"], true, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "odx-accordion", never, {}, {}, never, ["odx-accordion-item"], true, [{ directive: typeof i1.ExpandableContainerDirective; inputs: { "multiple": "multiple"; }; outputs: {}; }]>;
7
7
  }
@@ -1,10 +1,11 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { ExpandableItemDirective } from '@odx/angular/cdk/expandable';
3
3
  import * as i0 from "@angular/core";
4
- export declare class AccordionItemComponent extends ExpandableItemDirective {
4
+ import * as i1 from "@odx/angular/cdk/expandable";
5
+ export declare class AccordionItemComponent {
5
6
  private readonly disabledController;
7
+ protected readonly expandableItem: ExpandableItemDirective;
6
8
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
7
- readonly id: string;
8
9
  title?: string | null;
9
10
  expandedChange: EventEmitter<boolean>;
10
11
  get isDisabled(): boolean;
@@ -13,5 +14,5 @@ export declare class AccordionItemComponent extends ExpandableItemDirective {
13
14
  get slotId(): string;
14
15
  onAnimationEnd(): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<AccordionItemComponent, "odx-accordion-item", never, { "title": { "alias": "title"; "required": false; }; }, { "expandedChange": "expandedChange"; }, never, ["odx-accordion-item-title", "*"], true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<AccordionItemComponent, "odx-accordion-item", never, { "title": { "alias": "title"; "required": false; }; }, { "expandedChange": "expandedChange"; }, never, ["odx-accordion-item-title", "*"], true, [{ directive: typeof i1.ExpandableItemDirective; inputs: { "expanded": "expanded"; "id": "id"; }; outputs: {}; }]>;
17
18
  }
@@ -1,12 +1,9 @@
1
1
  import { ExpandableItemDirective } from '@odx/angular/cdk/expandable';
2
2
  import * as i0 from "@angular/core";
3
- export declare class ExpandableListItemComponent extends ExpandableItemDirective {
4
- private readonly disabledController;
3
+ import * as i1 from "@odx/angular/cdk/expandable";
4
+ export declare class ExpandableListItemComponent {
5
+ protected readonly expandableItem: ExpandableItemDirective;
5
6
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
6
- danger: boolean;
7
- get isDisabled(): boolean;
8
- get isExpanded(): boolean;
9
7
  static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableListItemComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<ExpandableListItemComponent, "odx-expandable-list-item", never, { "danger": { "alias": "danger"; "required": false; }; }, {}, never, ["*", "odx-list"], true, never>;
11
- static ngAcceptInputType_danger: unknown;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExpandableListItemComponent, "odx-expandable-list-item", never, {}, {}, never, ["odx-list-item, [odxListItem]", "odx-list"], true, [{ directive: typeof i1.ExpandableItemDirective; inputs: { "expanded": "expanded"; "id": "id"; }; outputs: {}; }]>;
12
9
  }
@@ -5,7 +5,7 @@ export declare class ListItemComponent {
5
5
  danger: boolean;
6
6
  selected: boolean;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "[odxListItem]", never, { "danger": { "alias": "danger"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, ["[odxListPrefix]", "*", "[odxListSuffix]"], true, [{ directive: typeof i1.WithDisabledState; inputs: {}; outputs: {}; }, { directive: typeof i1.WithTabIndex; inputs: {}; outputs: {}; }]>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "odx-list-item, [odxListItem]", never, { "danger": { "alias": "danger"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, ["[odxListPrefix], [odxListItemPrefix]", "*", "[odxListSuffix], [odxListItemSuffix]"], true, [{ directive: typeof i1.WithDisabledState; inputs: {}; outputs: {}; }, { directive: typeof i1.WithTabIndex; inputs: {}; outputs: {}; }]>;
9
9
  static ngAcceptInputType_danger: unknown;
10
10
  static ngAcceptInputType_selected: unknown;
11
11
  }
@@ -1,8 +1,7 @@
1
- import { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';
2
1
  import * as i0 from "@angular/core";
3
- export declare class ListComponent extends ExpandableContainerDirective {
2
+ import * as i1 from "@odx/angular/cdk/expandable";
3
+ export declare class ListComponent {
4
4
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
5
- constructor();
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<ListComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "odx-list", never, {}, {}, never, ["[odxListItem], odx-expandable-list-item"], true, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListComponent, "odx-list", never, {}, {}, never, ["odx-list, odx-list-item, [odxListItem], odx-expandable-list-item"], true, [{ directive: typeof i1.ExpandableContainerDirective; inputs: { "multiple": "multiple"; }; outputs: {}; }]>;
8
7
  }
@@ -1,13 +1,14 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { ExpandableItemDirective } from '@odx/angular/cdk/expandable';
3
3
  import * as i0 from "@angular/core";
4
- export declare class RichListItemComponent extends ExpandableItemDirective {
4
+ import * as i1 from "@odx/angular/cdk/expandable";
5
+ export declare class RichListItemComponent {
6
+ protected readonly expandableItem: ExpandableItemDirective;
5
7
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
6
- readonly id: string;
7
8
  expandedChange: EventEmitter<boolean>;
8
9
  get titleId(): string;
9
10
  get slotId(): string;
10
11
  onAnimationEnd(): void;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<RichListItemComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<RichListItemComponent, "odx-rich-list-item", never, {}, { "expandedChange": "expandedChange"; }, never, ["odx-rich-list-item-title", "*"], true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<RichListItemComponent, "odx-rich-list-item", never, {}, { "expandedChange": "expandedChange"; }, never, ["odx-rich-list-item-title", "*"], true, [{ directive: typeof i1.ExpandableItemDirective; inputs: { "expanded": "expanded"; "id": "id"; }; outputs: {}; }]>;
13
14
  }
@@ -1,8 +1,7 @@
1
- import { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';
2
1
  import * as i0 from "@angular/core";
3
- export declare class RichListComponent extends ExpandableContainerDirective {
4
- multiple: boolean;
2
+ import * as i1 from "@odx/angular/cdk/expandable";
3
+ export declare class RichListComponent {
5
4
  readonly element: import("@angular/core").ElementRef<HTMLElement>;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<RichListComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<RichListComponent, "odx-rich-list", never, {}, {}, never, ["odx-rich-list-item"], true, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<RichListComponent, "odx-rich-list", never, {}, {}, never, ["odx-rich-list-item"], true, [{ directive: typeof i1.ExpandableContainerDirective; inputs: { "multiple": "multiple"; }; outputs: {}; }]>;
8
7
  }
@@ -0,0 +1,59 @@
1
+ import { booleanAttribute, Directive, inject, Input } from '@angular/core';
2
+ import { ODX_EXPANDABLE_CONTAINER, ODX_EXPANDABLE_ITEM } from '../expandable.tokens';
3
+ import * as i0 from "@angular/core";
4
+ export class ExpandableContainerDirective {
5
+ constructor() {
6
+ this.expandedItems = new Set();
7
+ this.parentItem = inject(ODX_EXPANDABLE_ITEM, { optional: true, skipSelf: true });
8
+ this.parentContainer = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });
9
+ this.multiple = this.parentContainer?.multiple ?? false;
10
+ }
11
+ ngOnInit() {
12
+ this.parentItem?.addChild(this);
13
+ }
14
+ ngOnDestroy() {
15
+ this.parentItem?.removeChild(this);
16
+ }
17
+ collapseAll() {
18
+ this.expandedItems.forEach((item) => item.collapse());
19
+ }
20
+ collapse(item) {
21
+ this.expandedItems.delete(item);
22
+ }
23
+ expand(item) {
24
+ if (!this.multiple) {
25
+ this.collapseAll();
26
+ }
27
+ this.expandedItems.add(item);
28
+ }
29
+ toggle(item, forceState) {
30
+ const shouldExpand = forceState ?? !this.isExpanded(item);
31
+ if (shouldExpand) {
32
+ this.expand(item);
33
+ }
34
+ else {
35
+ this.collapse(item);
36
+ }
37
+ }
38
+ isExpanded(item) {
39
+ return this.expandedItems.has(item);
40
+ }
41
+ hasExpandedItem() {
42
+ return this.expandedItems.size > 0;
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: ["multiple", "multiple", booleanAttribute] }, providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: ExpandableContainerDirective }], exportAs: ["odxExpandableContainer"], ngImport: i0 }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableContainerDirective, decorators: [{
48
+ type: Directive,
49
+ args: [{
50
+ standalone: true,
51
+ selector: '[odxExpandableContainer]',
52
+ exportAs: 'odxExpandableContainer',
53
+ providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: ExpandableContainerDirective }],
54
+ }]
55
+ }], propDecorators: { multiple: [{
56
+ type: Input,
57
+ args: [{ transform: booleanAttribute }]
58
+ }] } });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZGlyZWN0aXZlcy9leHBhbmRhYmxlLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFTckYsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQU9tQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzFDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdqRyxhQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO0tBeUMzRDtJQXZDUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxRQUFRLENBQUMsSUFBb0I7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFvQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQW9CLEVBQUUsVUFBb0I7UUFDdEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBOUNVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHlHQUtuQixnQkFBZ0IsZ0JBUHpCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzRGQUVsRiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDOUY7OEJBT1EsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCBPRFhfRVhQQU5EQUJMRV9JVEVNIH0gZnJvbSAnLi4vZXhwYW5kYWJsZS50b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBFeHBhbmRhYmxlQ29udGFpbmVyLCBFeHBhbmRhYmxlSXRlbSB9IGZyb20gJy4uL2ZhY2FkZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhFeHBhbmRhYmxlQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnb2R4RXhwYW5kYWJsZUNvbnRhaW5lcicsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCB1c2VFeGlzdGluZzogRXhwYW5kYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRXhwYW5kYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEV4cGFuZGFibGVDb250YWluZXIsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEl0ZW1zID0gbmV3IFNldDxFeHBhbmRhYmxlSXRlbT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRJdGVtID0gaW5qZWN0KE9EWF9FWFBBTkRBQkxFX0lURU0sIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENvbnRhaW5lciA9IGluamVjdChPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSB0aGlzLnBhcmVudENvbnRhaW5lcj8ubXVsdGlwbGUgPz8gZmFsc2U7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50SXRlbT8uYWRkQ2hpbGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRJdGVtPy5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5jb2xsYXBzZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsYXBzZShpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5kZWxldGUoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKGl0ZW06IEV4cGFuZGFibGVJdGVtKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbGxhcHNlQWxsKCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5hZGQoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGl0ZW06IEV4cGFuZGFibGVJdGVtLCBmb3JjZVN0YXRlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZEV4cGFuZCA9IGZvcmNlU3RhdGUgPz8gIXRoaXMuaXNFeHBhbmRlZChpdGVtKTtcbiAgICBpZiAoc2hvdWxkRXhwYW5kKSB7XG4gICAgICB0aGlzLmV4cGFuZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xsYXBzZShpdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNFeHBhbmRlZChpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMuaGFzKGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIGhhc0V4cGFuZGVkSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZEl0ZW1zLnNpemUgPiAwO1xuICB9XG59XG4iXX0=
@@ -1,47 +1,64 @@
1
1
  import { booleanAttribute, ChangeDetectorRef, Directive, inject, Input } from '@angular/core';
2
2
  import { getUniqueId } from '@odx/angular/utils';
3
- import { ODX_EXPANDABLE_CONTAINER } from '../expandable.tokens';
3
+ import { ODX_EXPANDABLE_CONTAINER, ODX_EXPANDABLE_ITEM } from '../expandable.tokens';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ExpandableItemDirective {
6
6
  constructor() {
7
- this.container = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });
8
7
  this.changeDetectorRef = inject(ChangeDetectorRef);
8
+ this.childContainers = new Set();
9
+ this.container = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });
9
10
  this._expanded = false;
10
11
  this.id = getUniqueId('odx-expandable-item');
11
12
  }
12
13
  set expanded(value) {
14
+ if (this._expanded === value)
15
+ return;
13
16
  this._expanded = value;
14
17
  if (this._expanded) {
15
- this.container?.open(this);
18
+ this.container?.expand(this);
16
19
  }
17
20
  else {
18
- this.container?.close(this);
21
+ this.closeAllChildren();
22
+ this.container?.collapse(this);
19
23
  }
20
24
  this.changeDetectorRef.markForCheck();
21
25
  }
22
26
  get expanded() {
23
- return this._expanded;
27
+ return this.container?.isExpanded(this) ?? this._expanded;
24
28
  }
25
29
  toggle(forceState) {
26
30
  this.expanded = forceState ?? !this.expanded;
27
31
  }
28
- open() {
32
+ expand() {
29
33
  this.toggle(true);
30
34
  }
31
- close() {
35
+ collapse() {
32
36
  this.toggle(false);
33
37
  }
38
+ addChild(container) {
39
+ this.childContainers.add(container);
40
+ }
41
+ removeChild(container) {
42
+ this.childContainers.delete(container);
43
+ }
44
+ closeAllChildren() {
45
+ this.childContainers.forEach((container) => container.collapseAll());
46
+ }
34
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: ExpandableItemDirective, isStandalone: true, selector: "[odxExpandableItem]", inputs: { expanded: ["expanded", "expanded", booleanAttribute] }, ngImport: i0 }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: ExpandableItemDirective, isStandalone: true, selector: "[odxExpandableItem]", inputs: { id: "id", expanded: ["expanded", "expanded", booleanAttribute] }, providers: [{ provide: ODX_EXPANDABLE_ITEM, useExisting: ExpandableItemDirective }], exportAs: ["odxExpandableItem"], ngImport: i0 }); }
36
49
  }
37
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableItemDirective, decorators: [{
38
51
  type: Directive,
39
52
  args: [{
40
53
  standalone: true,
41
54
  selector: '[odxExpandableItem]',
55
+ exportAs: 'odxExpandableItem',
56
+ providers: [{ provide: ODX_EXPANDABLE_ITEM, useExisting: ExpandableItemDirective }],
42
57
  }]
43
- }], propDecorators: { expanded: [{
58
+ }], propDecorators: { id: [{
59
+ type: Input
60
+ }], expanded: [{
44
61
  type: Input,
45
62
  args: [{ transform: booleanAttribute }]
46
63
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZXhwYW5kYWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU9oRSxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS21CLGNBQVMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFVixPQUFFLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0EyQnpEO0lBekJDLElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQW9CO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7K0dBL0JVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9HQU9kLGdCQUFnQjs7NEZBUHpCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7OEJBU1ksUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFVuaXF1ZUlkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9EWF9FWFBBTkRBQkxFX0NPTlRBSU5FUiB9IGZyb20gJy4uL2V4cGFuZGFibGUudG9rZW5zJztcbmltcG9ydCB7IEV4cGFuZGFibGVJdGVtIH0gZnJvbSAnLi4vZmFjYWRlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW29keEV4cGFuZGFibGVJdGVtXScsXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgRXhwYW5kYWJsZUl0ZW0ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lciA9IGluamVjdChPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaWQgPSBnZXRVbmlxdWVJZCgnb2R4LWV4cGFuZGFibGUtaXRlbScpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGV4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZXhwYW5kZWQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyPy5vcGVuKHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRhaW5lcj8uY2xvc2UodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHVibGljIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGZvcmNlU3RhdGU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZvcmNlU3RhdGUgPz8gIXRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvZXhwYW5kYWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVNyRixNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT21CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFDakQsY0FBUyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUYsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUduQixPQUFFLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0F5Q2hEO0lBdkNDLElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQThCO1FBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXLENBQUMsU0FBOEI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQzsrR0EvQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsOEdBU2QsZ0JBQWdCLGdCQVh6QixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDOzs0RkFFeEUsdUJBQXVCO2tCQU5uQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUM7aUJBQ3BGOzhCQVFRLEVBQUU7c0JBRFIsS0FBSztnQkFJSyxRQUFRO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0VW5pcXVlSWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCBPRFhfRVhQQU5EQUJMRV9JVEVNIH0gZnJvbSAnLi4vZXhwYW5kYWJsZS50b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBFeHBhbmRhYmxlQ29udGFpbmVyLCBFeHBhbmRhYmxlSXRlbSB9IGZyb20gJy4uL2ZhY2FkZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhFeHBhbmRhYmxlSXRlbV0nLFxuICBleHBvcnRBczogJ29keEV4cGFuZGFibGVJdGVtJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBPRFhfRVhQQU5EQUJMRV9JVEVNLCB1c2VFeGlzdGluZzogRXhwYW5kYWJsZUl0ZW1EaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgRXhwYW5kYWJsZUl0ZW0ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZENvbnRhaW5lcnMgPSBuZXcgU2V0PEV4cGFuZGFibGVDb250YWluZXI+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyID0gaW5qZWN0KE9EWF9FWFBBTkRBQkxFX0NPTlRBSU5FUiwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgX2V4cGFuZGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlkID0gZ2V0VW5pcXVlSWQoJ29keC1leHBhbmRhYmxlLWl0ZW0nKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9leHBhbmRlZCA9PT0gdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLl9leHBhbmRlZCA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl9leHBhbmRlZCkge1xuICAgICAgdGhpcy5jb250YWluZXI/LmV4cGFuZCh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZUFsbENoaWxkcmVuKCk7XG4gICAgICB0aGlzLmNvbnRhaW5lcj8uY29sbGFwc2UodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHVibGljIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXI/LmlzRXhwYW5kZWQodGhpcykgPz8gdGhpcy5fZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGZvcmNlU3RhdGU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZvcmNlU3RhdGUgPz8gIXRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlKHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlKGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDaGlsZChjb250YWluZXI6IEV4cGFuZGFibGVDb250YWluZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkQ29udGFpbmVycy5hZGQoY29udGFpbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDaGlsZChjb250YWluZXI6IEV4cGFuZGFibGVDb250YWluZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkQ29udGFpbmVycy5kZWxldGUoY29udGFpbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VBbGxDaGlsZHJlbigpOiB2b2lkIHtcbiAgICB0aGlzLmNoaWxkQ29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIpID0+IGNvbnRhaW5lci5jb2xsYXBzZUFsbCgpKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
+ export * from './expandable-container.directive';
1
2
  export * from './expandable-item.directive';
2
- export * from './extandable-container.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGFuZGFibGUtY29udGFpbmVyLmRpcmVjdGl2ZSc7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwYW5kYWJsZS1jb250YWluZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwYW5kYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const ODX_EXPANDABLE_CONTAINER = new InjectionToken('@odx/angular/cdk/expandable::ExpandableContainer');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS50b2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9leHBhbmRhYmxlLnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFzQixrREFBa0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4cGFuZGFibGVDb250YWluZXIgfSBmcm9tICcuL2ZhY2FkZSc7XG5cbmV4cG9ydCBjb25zdCBPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXhwYW5kYWJsZUNvbnRhaW5lcj4oJ0BvZHgvYW5ndWxhci9jZGsvZXhwYW5kYWJsZTo6RXhwYW5kYWJsZUNvbnRhaW5lcicpO1xuIl19
3
+ export const ODX_EXPANDABLE_ITEM = new InjectionToken('@odx/angular/cdk/expandable::ExpandableItem');
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS50b2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9leHBhbmRhYmxlLnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFzQixrREFBa0QsQ0FBQyxDQUFDO0FBQ3BJLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFpQiw2Q0FBNkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4cGFuZGFibGVDb250YWluZXIsIEV4cGFuZGFibGVJdGVtIH0gZnJvbSAnLi9mYWNhZGUnO1xuXG5leHBvcnQgY29uc3QgT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSID0gbmV3IEluamVjdGlvblRva2VuPEV4cGFuZGFibGVDb250YWluZXI+KCdAb2R4L2FuZ3VsYXIvY2RrL2V4cGFuZGFibGU6OkV4cGFuZGFibGVDb250YWluZXInKTtcbmV4cG9ydCBjb25zdCBPRFhfRVhQQU5EQUJMRV9JVEVNID0gbmV3IEluamVjdGlvblRva2VuPEV4cGFuZGFibGVJdGVtPignQG9keC9hbmd1bGFyL2Nkay9leHBhbmRhYmxlOjpFeHBhbmRhYmxlSXRlbScpO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9mYWNhZGUvZXhwYW5kYWJsZS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cGFuZGFibGVJdGVtIH0gZnJvbSAnLi9leHBhbmRhYmxlLWl0ZW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGFuZGFibGVDb250YWluZXIge1xuICBjbG9zZShpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQ7XG4gIGNsb3NlQWxsKCk6IHZvaWQ7XG4gIG9wZW4oaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiB2b2lkO1xuICBoYXNFeHBhbmRlZEl0ZW0oKTogYm9vbGVhbjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUvc3JjL2xpYi9mYWNhZGUvZXhwYW5kYWJsZS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cGFuZGFibGVJdGVtIH0gZnJvbSAnLi9leHBhbmRhYmxlLWl0ZW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGFuZGFibGVDb250YWluZXIge1xuICBtdWx0aXBsZTogYm9vbGVhbjtcblxuICBjb2xsYXBzZUFsbCgpOiB2b2lkO1xuICBjb2xsYXBzZShpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQ7XG4gIGV4cGFuZChpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQ7XG4gIHRvZ2dsZShpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQ7XG4gIGlzRXhwYW5kZWQoaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiBib29sZWFuO1xuICBoYXNFeHBhbmRlZEl0ZW0oKTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZmFjYWRlL2V4cGFuZGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFeHBhbmRhYmxlSXRlbSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIGV4cGFuZGVkOiBib29sZWFuO1xuXG4gIGNsb3NlKCk6IHZvaWQ7XG4gIG9wZW4oKTogdm9pZDtcbiAgdG9nZ2xlKCk6IHZvaWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZmFjYWRlL2V4cGFuZGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwYW5kYWJsZUNvbnRhaW5lciB9IGZyb20gJy4vZXhwYW5kYWJsZS1jb250YWluZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGFuZGFibGVJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XG5cbiAgY29sbGFwc2UoKTogdm9pZDtcbiAgZXhwYW5kKCk6IHZvaWQ7XG4gIHRvZ2dsZSgpOiB2b2lkO1xuICBhZGRDaGlsZChjb250YWluZXI6IEV4cGFuZGFibGVDb250YWluZXIpOiB2b2lkO1xuICByZW1vdmVDaGlsZChjb250YWluZXI6IEV4cGFuZGFibGVDb250YWluZXIpOiB2b2lkO1xufVxuIl19
@@ -1,24 +1,22 @@
1
- var AccordionComponent_1;
2
1
  import { __decorate } from "tslib";
3
- import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';
4
- import { ExpandableContainerDirective, ODX_EXPANDABLE_CONTAINER } from '@odx/angular/cdk/expandable';
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
3
+ import { ExpandableContainerDirective } from '@odx/angular/cdk/expandable';
5
4
  import { CSSComponent } from '@odx/angular/internal';
6
5
  import { injectElement } from '@odx/angular/utils';
7
6
  import * as i0 from "@angular/core";
8
- export let AccordionComponent = class AccordionComponent extends ExpandableContainerDirective {
7
+ import * as i1 from "@odx/angular/cdk/expandable";
8
+ export let AccordionComponent = class AccordionComponent {
9
9
  constructor() {
10
- super(...arguments);
11
10
  this.element = injectElement();
12
11
  }
13
- static { AccordionComponent_1 = this; }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, isStandalone: true, selector: "odx-accordion", providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: forwardRef(() => AccordionComponent_1) }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, isStandalone: true, selector: "odx-accordion", hostDirectives: [{ directive: i1.ExpandableContainerDirective, inputs: ["multiple", "multiple"] }], ngImport: i0, template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
14
  };
17
- AccordionComponent = AccordionComponent_1 = __decorate([
15
+ AccordionComponent = __decorate([
18
16
  CSSComponent('accordion')
19
17
  ], AccordionComponent);
20
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
21
19
  type: Component,
22
- args: [{ selector: 'odx-accordion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: forwardRef(() => AccordionComponent) }], template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n" }]
20
+ args: [{ selector: 'odx-accordion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [{ directive: ExpandableContainerDirective, inputs: ['multiple'] }], template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n" }]
23
21
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2FjY29yZGlvbi9zcmMvbGliL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVc1QyxXQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLDRCQUE0QjtJQUE3RDs7UUFDVyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FDM0M7OytHQUZZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDREQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQWtCLENBQUMsRUFBRSxDQUFDLGlEQ1p2RywyREFDQTs7QURhYSxrQkFBa0I7SUFUOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQztHQVNiLGtCQUFrQixDQUU5Qjs0RkFGWSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUViLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlQ29udGFpbmVyRGlyZWN0aXZlLCBPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdhY2NvcmRpb24nKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWFjY29yZGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFjY29yZGlvbkNvbXBvbmVudCkgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkNvbXBvbmVudCBleHRlbmRzIEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmUge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY2NvcmRpb24taXRlbVwiPjwvbmctY29udGVudD5cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2FjY29yZGlvbi9zcmMvbGliL2FjY29yZGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVzVDLFdBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBQXhCO1FBQ1csWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO0tBQzNDOytHQUZZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZLQ2QvQiwyREFDQTs7QURhYSxrQkFBa0I7SUFUOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQztHQVNiLGtCQUFrQixDQUU5Qjs0RkFGWSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZUFBZSxjQUViLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxrQkFDckIsQ0FBQyxFQUFFLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2V4cGFuZGFibGUnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdhY2NvcmRpb24nKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWFjY29yZGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogRXhwYW5kYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSwgaW5wdXRzOiBbJ211bHRpcGxlJ10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwib2R4LWFjY29yZGlvbi1pdGVtXCI+PC9uZy1jb250ZW50PlxuIl19
@@ -1,56 +1,56 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { transition, trigger, useAnimation } from '@angular/animations';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';
4
4
  import { CoreModule, DisabledController } from '@odx/angular';
5
5
  import { collapse, expand } from '@odx/angular/animations';
6
6
  import { A11yModule } from '@odx/angular/cdk/a11y';
7
7
  import { ExpandableItemDirective } from '@odx/angular/cdk/expandable';
8
8
  import { IconComponent } from '@odx/angular/components/icon';
9
9
  import { CSSComponent } from '@odx/angular/internal';
10
- import { getUniqueId, injectElement } from '@odx/angular/utils';
10
+ import { injectElement } from '@odx/angular/utils';
11
11
  import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/common";
13
- import * as i2 from "@odx/angular/cdk/a11y";
14
- export let AccordionItemComponent = class AccordionItemComponent extends ExpandableItemDirective {
12
+ import * as i1 from "@odx/angular/cdk/expandable";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@odx/angular/cdk/a11y";
15
+ export let AccordionItemComponent = class AccordionItemComponent {
15
16
  constructor() {
16
- super(...arguments);
17
17
  this.disabledController = DisabledController.inject();
18
+ this.expandableItem = inject(ExpandableItemDirective, { self: true });
18
19
  this.element = injectElement();
19
- this.id = getUniqueId('odx-accordion-item');
20
20
  this.expandedChange = new EventEmitter();
21
21
  }
22
22
  get isDisabled() {
23
23
  return !!this.disabledController?.disabled;
24
24
  }
25
25
  get isExpanded() {
26
- return !this.isDisabled && this.expanded;
26
+ return !this.isDisabled && this.expandableItem.expanded;
27
27
  }
28
28
  get titleId() {
29
- return `${this.id}-title`;
29
+ return `${this.expandableItem.id}-title`;
30
30
  }
31
31
  get slotId() {
32
- return `${this.id}-slot`;
32
+ return `${this.expandableItem.id}-slot`;
33
33
  }
34
34
  onAnimationEnd() {
35
- this.expandedChange.emit(this.expanded);
35
+ this.expandedChange.emit(this.expandableItem.expanded);
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionItemComponent, isStandalone: true, selector: "odx-accordion-item", inputs: { title: "title" }, outputs: { expandedChange: "expandedChange" }, host: { properties: { "class.is-disabled": "isDisabled", "class.odx-accordion-item--expanded": "isExpanded", "attr.id": "id", "attr.title": "null" } }, providers: [DisabledController.connect()], usesInheritance: true, ngImport: i0, template: "<div\n role=\"button\"\n class=\"odx-accordion-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <div *ngIf=\"title; else titleTpl\">\n {{ title }}\n </div>\n <ng-template #titleTpl>\n <ng-content select=\"odx-accordion-item-title\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-accordion-item__icon\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<div\n class=\"odx-accordion-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"isExpanded\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.InteractiveDirective, selector: "[odxCdkInteractive]", outputs: ["odxCdkInteractive"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionItemComponent, isStandalone: true, selector: "odx-accordion-item", inputs: { title: "title" }, outputs: { expandedChange: "expandedChange" }, host: { properties: { "class.is-disabled": "isDisabled", "class.odx-accordion-item--expanded": "isExpanded", "attr.id": "expandableItem.id", "attr.title": "null" } }, providers: [DisabledController.connect()], hostDirectives: [{ directive: i1.ExpandableItemDirective, inputs: ["expanded", "expanded", "id", "id"] }], ngImport: i0, template: "<div\n role=\"button\"\n class=\"odx-accordion-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"expandableItem.toggle()\"\n>\n <div *ngIf=\"title; else titleTpl\">\n {{ title }}\n </div>\n <ng-template #titleTpl>\n <ng-content select=\"odx-accordion-item-title\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-accordion-item__icon\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<div\n class=\"odx-accordion-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"isExpanded\"\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.InteractiveDirective, selector: "[odxCdkInteractive]", outputs: ["odxCdkInteractive"] }, { kind: "ngmodule", type: CoreModule }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
39
39
  };
40
40
  AccordionItemComponent = __decorate([
41
41
  CSSComponent('accordion-item')
42
42
  ], AccordionItemComponent);
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionItemComponent, decorators: [{
44
44
  type: Component,
45
- args: [{ selector: 'odx-accordion-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, CoreModule, IconComponent], providers: [DisabledController.connect()], host: {
45
+ args: [{ selector: 'odx-accordion-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [A11yModule, CoreModule, IconComponent], providers: [DisabledController.connect()], hostDirectives: [{ directive: ExpandableItemDirective, inputs: ['expanded', 'id'] }], host: {
46
46
  '[class.is-disabled]': 'isDisabled',
47
47
  '[class.odx-accordion-item--expanded]': 'isExpanded',
48
- '[attr.id]': 'id',
48
+ '[attr.id]': 'expandableItem.id',
49
49
  '[attr.title]': 'null',
50
- }, animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], template: "<div\n role=\"button\"\n class=\"odx-accordion-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <div *ngIf=\"title; else titleTpl\">\n {{ title }}\n </div>\n <ng-template #titleTpl>\n <ng-content select=\"odx-accordion-item-title\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-accordion-item__icon\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<div\n class=\"odx-accordion-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"isExpanded\"\n>\n <ng-content></ng-content>\n</div>\n" }]
50
+ }, animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])], template: "<div\n role=\"button\"\n class=\"odx-accordion-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"expandableItem.toggle()\"\n>\n <div *ngIf=\"title; else titleTpl\">\n {{ title }}\n </div>\n <ng-template #titleTpl>\n <ng-content select=\"odx-accordion-item-title\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-accordion-item__icon\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<div\n class=\"odx-accordion-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"isExpanded\"\n>\n <ng-content></ng-content>\n</div>\n" }]
51
51
  }], propDecorators: { title: [{
52
52
  type: Input
53
53
  }], expandedChange: [{
54
54
  type: Output
55
55
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvYWNjb3JkaW9uL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBbUJ6RCxXQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUF1QixTQUFRLHVCQUF1QjtJQUE1RDs7UUFDWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRCxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDakIsT0FBRSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBTXpELG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7S0FxQm5FO0lBbkJDLElBQVcsVUFBVTtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBN0JVLHNCQUFzQjttR0FBdEIsc0JBQXNCLG9TQVR0QixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLGlEQ2xCM0MsZ3VCQTBCQSwyQ0RUWSxVQUFVLHlQQUFFLFVBQVUsK0JBQUUsYUFBYSxzRkFRbkMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRWpJLHNCQUFzQjtJQWpCbEMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0dBaUJsQixzQkFBc0IsQ0E4QmxDOzRGQTlCWSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUVsQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxhQUNyQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQ25DO3dCQUNKLHFCQUFxQixFQUFFLFlBQVk7d0JBQ25DLHNDQUFzQyxFQUFFLFlBQVk7d0JBQ3BELFdBQVcsRUFBRSxJQUFJO3dCQUNqQixjQUFjLEVBQUUsTUFBTTtxQkFDdkIsY0FDVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs4QkFRckksS0FBSztzQkFEWCxLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2l0aW9uLCB0cmlnZ2VyLCB1c2VBbmltYXRpb24gfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIERpc2FibGVkQ29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBjb2xsYXBzZSwgZXhwYW5kIH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZXhwYW5kYWJsZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZ2V0VW5pcXVlSWQsIGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdhY2NvcmRpb24taXRlbScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtYWNjb3JkaW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIENvcmVNb2R1bGUsIEljb25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQnLFxuICAgICdbY2xhc3Mub2R4LWFjY29yZGlvbi1pdGVtLS1leHBhbmRlZF0nOiAnaXNFeHBhbmRlZCcsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1thdHRyLnRpdGxlXSc6ICdudWxsJyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ2V4cGFuZFNsb3RBbmltYXRpb24nLCBbdHJhbnNpdGlvbignOmVudGVyJywgW3VzZUFuaW1hdGlvbihleHBhbmQpXSksIHRyYW5zaXRpb24oJzpsZWF2ZScsIFt1c2VBbmltYXRpb24oY29sbGFwc2UpXSldKV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBFeHBhbmRhYmxlSXRlbURpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzYWJsZWRDb250cm9sbGVyID0gRGlzYWJsZWRDb250cm9sbGVyLmluamVjdCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGlkID0gZ2V0VW5pcXVlSWQoJ29keC1hY2NvcmRpb24taXRlbScpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aXRsZT86IHN0cmluZyB8IG51bGw7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzRGlzYWJsZWQgJiYgdGhpcy5leHBhbmRlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGl0bGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmlkfS10aXRsZWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNsb3RJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmlkfS1zbG90YDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFuaW1hdGlvbkVuZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgcm9sZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwib2R4LWFjY29yZGlvbi1pdGVtX19wYW5lbFwiXG4gIFthdHRyLmlkXT1cInRpdGxlSWRcIlxuICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cInNsb3RJZFwiXG4gIChvZHhDZGtJbnRlcmFjdGl2ZSk9XCJ0b2dnbGUoKVwiXG4+XG4gIDxkaXYgKm5nSWY9XCJ0aXRsZTsgZWxzZSB0aXRsZVRwbFwiPlxuICAgIHt7IHRpdGxlIH19XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI3RpdGxlVHBsPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1hY2NvcmRpb24taXRlbS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG9keC1pY29uIGNsYXNzPVwib2R4LWFjY29yZGlvbi1pdGVtX19pY29uXCIgbmFtZT1cImNoZXZyb24tZG93blwiIGljb25TZXQ9XCJjb3JlXCI+PC9vZHgtaWNvbj5cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cIm9keC1hY2NvcmRpb24taXRlbV9fc2xvdFwiXG4gIFthdHRyLmlkXT1cInNsb3RJZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0aXRsZUlkXCJcbiAgQGV4cGFuZFNsb3RBbmltYXRpb25cbiAgKEBleHBhbmRTbG90QW5pbWF0aW9uLmRvbmUpPVwib25BbmltYXRpb25FbmQoKVwiXG4gICpuZ0lmPVwiaXNFeHBhbmRlZFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvYWNjb3JkaW9uL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQW9CNUMsV0FBTSxzQkFBc0IsR0FBNUIsTUFBTSxzQkFBc0I7SUFBNUI7UUFDWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQU1uQyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBcUJuRTtJQW5CQyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0E3QlUsc0JBQXNCO21HQUF0QixzQkFBc0IsbVRBVnRCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMscUlDbEIzQywrdUJBMEJBLDJDRFRZLFVBQVUseVBBQUUsVUFBVSwrQkFBRSxhQUFhLHNGQVNuQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFakksc0JBQXNCO0lBbEJsQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7R0FrQmxCLHNCQUFzQixDQThCbEM7NEZBOUJZLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBRWxCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLGFBQ3JDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsa0JBQ3pCLENBQUMsRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFDOUU7d0JBQ0oscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMsc0NBQXNDLEVBQUUsWUFBWTt3QkFDcEQsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsY0FBYyxFQUFFLE1BQU07cUJBQ3ZCLGNBQ1csQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7OEJBUXJJLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIERpc2FibGVkQ29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBjb2xsYXBzZSwgZXhwYW5kIH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZXhwYW5kYWJsZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBDU1NDb21wb25lbnQoJ2FjY29yZGlvbi1pdGVtJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1hY2NvcmRpb24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQ29yZU1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0Rpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCldLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBFeHBhbmRhYmxlSXRlbURpcmVjdGl2ZSwgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ2lkJ10gfV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLm9keC1hY2NvcmRpb24taXRlbS0tZXhwYW5kZWRdJzogJ2lzRXhwYW5kZWQnLFxuICAgICdbYXR0ci5pZF0nOiAnZXhwYW5kYWJsZUl0ZW0uaWQnLFxuICAgICdbYXR0ci50aXRsZV0nOiAnbnVsbCcsXG4gIH0sXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdleHBhbmRTbG90QW5pbWF0aW9uJywgW3RyYW5zaXRpb24oJzplbnRlcicsIFt1c2VBbmltYXRpb24oZXhwYW5kKV0pLCB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pXSldLFxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRhYmxlSXRlbSA9IGluamVjdChFeHBhbmRhYmxlSXRlbURpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc0Rpc2FibGVkICYmIHRoaXMuZXhwYW5kYWJsZUl0ZW0uZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRpdGxlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5leHBhbmRhYmxlSXRlbS5pZH0tdGl0bGVgO1xuICB9XG5cbiAgcHVibGljIGdldCBzbG90SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5leHBhbmRhYmxlSXRlbS5pZH0tc2xvdGA7XG4gIH1cblxuICBwdWJsaWMgb25BbmltYXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kYWJsZUl0ZW0uZXhwYW5kZWQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIHJvbGU9XCJidXR0b25cIlxuICBjbGFzcz1cIm9keC1hY2NvcmRpb24taXRlbV9fcGFuZWxcIlxuICBbYXR0ci5pZF09XCJ0aXRsZUlkXCJcbiAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJzbG90SWRcIlxuICAob2R4Q2RrSW50ZXJhY3RpdmUpPVwiZXhwYW5kYWJsZUl0ZW0udG9nZ2xlKClcIlxuPlxuICA8ZGl2ICpuZ0lmPVwidGl0bGU7IGVsc2UgdGl0bGVUcGxcIj5cbiAgICB7eyB0aXRsZSB9fVxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICN0aXRsZVRwbD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvZHgtYWNjb3JkaW9uLWl0ZW0tdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1hY2NvcmRpb24taXRlbV9faWNvblwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxkaXZcbiAgY2xhc3M9XCJvZHgtYWNjb3JkaW9uLWl0ZW1fX3Nsb3RcIlxuICBbYXR0ci5pZF09XCJzbG90SWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidGl0bGVJZFwiXG4gIEBleHBhbmRTbG90QW5pbWF0aW9uXG4gIChAZXhwYW5kU2xvdEFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRW5kKClcIlxuICAqbmdJZj1cImlzRXhwYW5kZWRcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==