@radix-ng/primitives 0.9.1 → 0.11.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 (111) hide show
  1. package/accordion/src/accordion-content.directive.d.ts +12 -60
  2. package/accordion/src/accordion-header.directive.d.ts +2 -18
  3. package/accordion/src/accordion-item.directive.d.ts +52 -26
  4. package/accordion/src/accordion-root.directive.d.ts +41 -20
  5. package/accordion/src/accordion-trigger.directive.d.ts +6 -22
  6. package/collapsible/src/collapsible-content.directive.d.ts +8 -2
  7. package/collapsible/src/collapsible-content.token.d.ts +3 -0
  8. package/collapsible/src/collapsible-root.directive.d.ts +7 -4
  9. package/compodoc/documentation.json +11395 -0
  10. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +6 -7
  11. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +7 -6
  12. package/esm2022/accordion/src/accordion-content.directive.mjs +21 -122
  13. package/esm2022/accordion/src/accordion-header.directive.mjs +10 -31
  14. package/esm2022/accordion/src/accordion-item.directive.mjs +144 -57
  15. package/esm2022/accordion/src/accordion-root.directive.mjs +101 -64
  16. package/esm2022/accordion/src/accordion-trigger.directive.mjs +22 -41
  17. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +3 -3
  18. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +3 -3
  19. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +3 -3
  20. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +3 -3
  21. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +3 -3
  22. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +3 -3
  23. package/esm2022/avatar/src/avatar-fallback.directive.mjs +3 -3
  24. package/esm2022/avatar/src/avatar-image.directive.mjs +3 -3
  25. package/esm2022/avatar/src/avatar-root.directive.mjs +3 -3
  26. package/esm2022/checkbox/src/checkbox-button.directive.mjs +3 -3
  27. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +3 -3
  28. package/esm2022/checkbox/src/checkbox-input.directive.mjs +3 -3
  29. package/esm2022/checkbox/src/checkbox.directive.mjs +3 -3
  30. package/esm2022/collapsible/src/collapsible-content.directive.mjs +20 -7
  31. package/esm2022/collapsible/src/collapsible-content.token.mjs +3 -0
  32. package/esm2022/collapsible/src/collapsible-root.directive.mjs +17 -13
  33. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +3 -3
  34. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +30 -16
  35. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +3 -3
  36. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +3 -3
  37. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +3 -3
  38. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +3 -3
  39. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +3 -3
  40. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +17 -13
  41. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +3 -3
  42. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +3 -3
  43. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +34 -26
  44. package/esm2022/label/src/label.directive.mjs +10 -5
  45. package/esm2022/menu/index.mjs +4 -4
  46. package/esm2022/menu/src/menu-content.directive.mjs +3 -3
  47. package/esm2022/menu/src/menu-directive.mjs +3 -3
  48. package/esm2022/menu/src/menu-group.directive.mjs +3 -3
  49. package/esm2022/menu/src/menu-item.directive.mjs +3 -3
  50. package/esm2022/menu/src/menu-label.directive.mjs +3 -3
  51. package/esm2022/menu/src/menu-separator.directive.mjs +3 -3
  52. package/esm2022/menubar/index.mjs +4 -4
  53. package/esm2022/menubar/src/menubar-content.directive.mjs +3 -3
  54. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +3 -3
  55. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +3 -3
  56. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +3 -3
  57. package/esm2022/menubar/src/menubar-item.directive.mjs +3 -3
  58. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +3 -3
  59. package/esm2022/menubar/src/menubar-root.directive.mjs +3 -3
  60. package/esm2022/menubar/src/menubar-separator.directive.mjs +3 -3
  61. package/esm2022/menubar/src/menubar-trigger.directive.mjs +3 -3
  62. package/esm2022/progress/src/progress-indicator.directive.mjs +3 -3
  63. package/esm2022/progress/src/progress-root.directive.mjs +3 -3
  64. package/esm2022/radio/src/radio-indicator.directive.mjs +10 -10
  65. package/esm2022/radio/src/radio-item.directive.mjs +29 -18
  66. package/esm2022/radio/src/radio-root.directive.mjs +110 -16
  67. package/esm2022/radio/src/radio-tokens.mjs +3 -0
  68. package/esm2022/separator/src/separator.directive.mjs +7 -8
  69. package/esm2022/switch/index.mjs +4 -4
  70. package/esm2022/switch/src/switch-input.directive.mjs +3 -3
  71. package/esm2022/switch/src/switch-root.directive.mjs +3 -3
  72. package/esm2022/switch/src/switch-thumb.directive.mjs +3 -3
  73. package/esm2022/tabs/index.mjs +4 -4
  74. package/esm2022/tabs/src/tabs-content.directive.mjs +3 -3
  75. package/esm2022/tabs/src/tabs-context.service.mjs +3 -3
  76. package/esm2022/tabs/src/tabs-list.directive.mjs +3 -3
  77. package/esm2022/tabs/src/tabs-root.directive.mjs +3 -3
  78. package/esm2022/tabs/src/tabs-trigger.directive.mjs +3 -3
  79. package/esm2022/toggle/src/toggle.directive.mjs +3 -3
  80. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +3 -3
  81. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +3 -3
  82. package/esm2022/toggle-group/src/toggle-group.directive.mjs +3 -3
  83. package/fesm2022/radix-ng-primitives-accordion.mjs +305 -324
  84. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  85. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +18 -18
  86. package/fesm2022/radix-ng-primitives-avatar.mjs +9 -9
  87. package/fesm2022/radix-ng-primitives-checkbox.mjs +12 -12
  88. package/fesm2022/radix-ng-primitives-collapsible.mjs +61 -44
  89. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +97 -70
  91. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-label.mjs +9 -4
  93. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-menu.mjs +22 -22
  95. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  96. package/fesm2022/radix-ng-primitives-progress.mjs +6 -6
  97. package/fesm2022/radix-ng-primitives-radio.mjs +182 -77
  98. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  99. package/fesm2022/radix-ng-primitives-separator.mjs +6 -7
  100. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  101. package/fesm2022/radix-ng-primitives-switch.mjs +13 -13
  102. package/fesm2022/radix-ng-primitives-tabs.mjs +19 -19
  103. package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
  104. package/fesm2022/radix-ng-primitives-toggle.mjs +3 -3
  105. package/label/src/label.directive.d.ts +9 -3
  106. package/package.json +1 -1
  107. package/radio/src/radio-indicator.directive.d.ts +4 -2
  108. package/radio/src/radio-item.directive.d.ts +10 -5
  109. package/radio/src/radio-root.directive.d.ts +19 -18
  110. package/radio/src/radio-tokens.d.ts +12 -0
  111. package/separator/src/separator.directive.d.ts +1 -1
@@ -1,16 +1,15 @@
1
- import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';
1
+ import { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';
2
2
  import { Subject } from 'rxjs';
3
3
  import { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';
4
4
  import { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/menu";
7
- export declare class RdxDropdownMenuContentDirective {
6
+ export declare class RdxDropdownMenuContentDirective extends CdkMenu {
8
7
  readonly highlighted: Subject<RdxDropdownMenuItemDirective>;
9
- readonly cdkMenu: CdkMenu;
10
- protected readonly cdkMenuTrigger: CdkMenuTrigger;
11
- protected readonly menuTrigger: RdxDropdownMenuTriggerDirective | null;
8
+ readonly menuTrigger: RdxDropdownMenuTriggerDirective | null;
9
+ onEscapeKeyDown: (event?: Event) => void;
10
+ closeOnEscape: boolean;
12
11
  constructor();
13
12
  updateActiveItem(item: CdkMenuItem): void;
14
13
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuContentDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuContentDirective, "[rdxDropdownMenuContent]", never, {}, {}, never, never, true, [{ directive: typeof i1.CdkMenu; inputs: {}; outputs: {}; }, { directive: typeof i1.CdkTargetMenuAim; inputs: {}; outputs: {}; }]>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuContentDirective, "[rdxDropdownMenuContent]", never, { "onEscapeKeyDown": { "alias": "onEscapeKeyDown"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; }, {}, never, never, true, never>;
16
15
  }
@@ -1,8 +1,8 @@
1
1
  import { BooleanInput } from '@angular/cdk/coercion';
2
2
  import { CdkMenuTrigger } from '@angular/cdk/menu';
3
- import { ConnectedPosition } from '@angular/cdk/overlay';
3
+ import { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';
4
+ import { TemplateRef } from '@angular/core';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/menu";
6
6
  export declare enum DropdownSide {
7
7
  Top = "top",
8
8
  Right = "right",
@@ -19,9 +19,9 @@ export declare const mapRdxAlignToCdkPosition: {
19
19
  center: string;
20
20
  end: string;
21
21
  };
22
- export declare class RdxDropdownMenuTriggerDirective {
23
- protected readonly cdkMenuTrigger: CdkMenuTrigger;
22
+ export declare class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
24
23
  readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
24
+ set rdxDropdownMenuTrigger(value: TemplateRef<unknown> | null);
25
25
  set side(value: DropdownSide);
26
26
  get side(): DropdownSide;
27
27
  private _side;
@@ -30,13 +30,14 @@ export declare class RdxDropdownMenuTriggerDirective {
30
30
  private _align;
31
31
  set sideOffset(value: number);
32
32
  set alignOffset(value: number);
33
+ onOpenChange: import("@angular/core").OutputRef<void>;
33
34
  get isVertical(): boolean;
34
35
  get defaultPosition(): ConnectedPosition;
35
- onOpenChange: import("@angular/core").OutputRef<void>;
36
36
  constructor();
37
37
  onPointerDown($event: MouseEvent): void;
38
+ getOverlayRef(): OverlayRef | null;
38
39
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuTriggerDirective, never>;
39
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuTriggerDirective, "[rdxDropdownMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; }; "align": { "alias": "align"; "required": false; }; "sideOffset": { "alias": "sideOffset"; "required": false; }; "alignOffset": { "alias": "alignOffset"; "required": false; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true, [{ directive: typeof i1.CdkMenuTrigger; inputs: { "cdkMenuTriggerFor": "rdxDropdownMenuTrigger"; }; outputs: {}; }]>;
40
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuTriggerDirective, "[rdxDropdownMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rdxDropdownMenuTrigger": { "alias": "rdxDropdownMenuTrigger"; "required": false; }; "side": { "alias": "side"; "required": false; }; "align": { "alias": "align"; "required": false; }; "sideOffset": { "alias": "sideOffset"; "required": false; }; "alignOffset": { "alias": "alignOffset"; "required": false; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true, never>;
40
41
  static ngAcceptInputType_sideOffset: unknown;
41
42
  static ngAcceptInputType_alignOffset: unknown;
42
43
  }
@@ -1,137 +1,36 @@
1
- import { CdkAccordionItem } from '@angular/cdk/accordion';
2
- import { Directive, effect, ElementRef, inject, InjectionToken, input, signal } from '@angular/core';
3
- import { animationFrameScheduler } from 'rxjs';
1
+ import { Directive, inject, InjectionToken } from '@angular/core';
2
+ import { RdxAccordionItemDirective } from './accordion-item.directive';
4
3
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/accordion";
6
4
  export const RdxAccordionContentToken = new InjectionToken('RdxAccordionContentToken');
7
5
  export class RdxAccordionContentDirective {
8
6
  constructor() {
9
- /**
10
- * @ignore
11
- */
12
- this.elementRef = inject(ElementRef);
13
- /**
14
- * @ignore
15
- */
16
- this.initialized = signal(false);
17
- /**
18
- * Current item state
19
- */
20
- this.state = signal('closed');
21
- /**
22
- * When true, prevents the user from interacting with the accordion and all its items.
23
- */
24
- this.disabled = input(false);
25
- /**
26
- * @ignore
27
- */
28
- this.accordionItem = inject(CdkAccordionItem);
29
- /**
30
- * @ignore
31
- */
32
- this.orientation = 'vertical';
33
- effect(() => {
34
- if (this.state()) {
35
- this.setPresence();
36
- }
37
- });
7
+ this.item = inject(RdxAccordionItemDirective);
38
8
  }
39
- /**
40
- * @ignore
41
- */
42
- ngOnInit() {
43
- this.togglePresence();
44
- }
45
- /**
46
- * @ignore
47
- */
48
- setOpen(state) {
49
- if (this.disabled()) {
50
- return;
51
- }
52
- if (state === undefined) {
53
- this.state.update(() => (this.state() === 'open' ? 'closed' : 'open'));
54
- }
55
- else {
56
- this.state.update(() => state);
57
- }
58
- }
59
- /**
60
- * @ignore
61
- */
62
- initialize() {
63
- if (!this.initialized()) {
64
- this.togglePresence();
65
- animationFrameScheduler.schedule(() => {
66
- this.elementRef.nativeElement.getAnimations().forEach((animation) => animation.cancel());
67
- this.initialized.set(true);
68
- });
69
- }
70
- }
71
- /**
72
- * @ignore
73
- */
74
- setPresence() {
75
- if (!this.initialized()) {
76
- this.initialize();
77
- return;
78
- }
79
- animationFrameScheduler.schedule(() => {
80
- const animations = this.elementRef.nativeElement.getAnimations();
81
- const hidden = this.elementRef.nativeElement.hasAttribute('hidden');
82
- if (hidden) {
83
- this.show();
84
- const rect = this.elementRef.nativeElement.getBoundingClientRect();
85
- const height = `${this.elementRef.nativeElement.scrollHeight /*rect.height*/}px`;
86
- const width = `${rect.width}px`;
87
- this.elementRef.nativeElement.style.setProperty('--radix-accordion-content-height', height);
88
- this.elementRef.nativeElement.style.setProperty('--radix-accordion-content-width', width);
89
- this.hide();
90
- }
91
- Promise.all(animations.map((animation) => animation.finished)).then(() => {
92
- this.togglePresence();
93
- });
94
- });
95
- }
96
- /**
97
- * @ignore
98
- */
99
- togglePresence() {
100
- if (this.state() === 'open') {
101
- this.show();
9
+ get style() {
10
+ if (this.item.orientation === 'horizontal') {
11
+ return { width: this.item.expanded ? 'var(--rdx-accordion-content-width)' : 0 };
102
12
  }
103
- else {
104
- this.hide();
105
- }
106
- }
107
- /**
108
- * @ignore
109
- */
110
- show() {
111
- this.elementRef.nativeElement.removeAttribute('hidden');
112
- }
113
- /**
114
- * @ignore
115
- */
116
- hide() {
117
- this.elementRef.nativeElement.setAttribute('hidden', '');
13
+ return { height: this.item.expanded ? 'var(--rdx-accordion-content-height)' : 0 };
118
14
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxAccordionContentDirective, isStandalone: true, selector: "[rdxAccordionContent]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "state()", "attr.data-disabled": "disabled() ? \"\" : undefined", "attr.data-orientation": "orientation" } }, providers: [{ provide: RdxAccordionContentToken, useExisting: RdxAccordionContentDirective }], exportAs: ["rdxAccordionContent"], hostDirectives: [{ directive: i1.CdkAccordionItem }], ngImport: i0 }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxAccordionContentDirective, isStandalone: true, selector: "[rdxAccordionContent]", host: { properties: { "attr.role": "\"region\"", "style": "style", "attr.data-state": "item.dataState", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" } }, exportAs: ["rdxAccordionContent"], ngImport: i0 }); }
121
17
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionContentDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionContentDirective, decorators: [{
123
19
  type: Directive,
124
20
  args: [{
125
21
  selector: '[rdxAccordionContent]',
126
22
  standalone: true,
127
23
  exportAs: 'rdxAccordionContent',
128
- providers: [{ provide: RdxAccordionContentToken, useExisting: RdxAccordionContentDirective }],
129
24
  host: {
130
- '[attr.data-state]': 'state()',
131
- '[attr.data-disabled]': 'disabled() ? "" : undefined',
132
- '[attr.data-orientation]': 'orientation'
133
- },
134
- hostDirectives: [CdkAccordionItem]
25
+ '[attr.role]': '"region"',
26
+ // todo need hide content after animation
27
+ // '[style.display]': 'item.expanded ? "" : "none"',
28
+ // '[attr.hidden]': 'hidden ? "" : null',
29
+ '[style]': 'style',
30
+ '[attr.data-state]': 'item.dataState',
31
+ '[attr.data-disabled]': 'item.disabled',
32
+ '[attr.data-orientation]': 'item.orientation'
33
+ }
135
34
  }]
136
- }], ctorParameters: () => [] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUErQiwwQkFBMEIsQ0FBQyxDQUFDO0FBY3JILE1BQU0sT0FBTyw0QkFBNEI7SUEwQnJDO1FBekJBOztXQUVHO1FBQ2MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUU7O1dBRUc7UUFDSyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQzs7V0FFRztRQUNILFVBQUssR0FBRyxNQUFNLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBQ2hEOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4Qjs7V0FFRztRQUNILGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekM7O1dBRUc7UUFDSCxnQkFBVyxHQUE0QixVQUFVLENBQUM7UUFHOUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDLENBQUMs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LElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssSUFBSTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs4R0FqSVEsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsd1dBUjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzJGQVFwRiw0QkFBNEI7a0JBWnhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztvQkFDN0YsSUFBSSxFQUFFO3dCQUNGLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQseUJBQXlCLEVBQUUsYUFBYTtxQkFDM0M7b0JBQ0QsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uSXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hY2NvcmRpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIGlucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSB9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeEFjY29yZGlvbk9yaWVudGF0aW9uIH0gZnJvbSAnLi9hY2NvcmRpb24tcm9vdC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4QWNjb3JkaW9uQ29udGVudFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeEFjY29yZGlvbkNvbnRlbnREaXJlY3RpdmU+KCdSZHhBY2NvcmRpb25Db250ZW50VG9rZW4nKTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4QWNjb3JkaW9uQ29udGVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhBY2NvcmRpb25Db250ZW50JyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJkeEFjY29yZGlvbkNvbnRlbnRUb2tlbiwgdXNlRXhpc3Rpbmc6IFJkeEFjY29yZGlvbkNvbnRlbnREaXJlY3RpdmUgfV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpID8gXCJcIiA6IHVuZGVmaW5lZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdvcmllbnRhdGlvbidcbiAgICB9LFxuICAgIGhvc3REaXJlY3RpdmVzOiBbQ2RrQWNjb3JkaW9uSXRlbV1cbn0pXG5leHBvcnQgY2xhc3MgUmR4QWNjb3JkaW9uQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBzaWduYWwoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgaXRlbSBzdGF0ZVxuICAgICAqL1xuICAgIHN0YXRlID0gc2lnbmFsPFJkeEFjY29yZGlvbkl0ZW1TdGF0ZT4oJ2Nsb3NlZCcpO1xuICAgIC8qKlxuICAgICAqIFdoZW4gdHJ1ZSwgcHJldmVudHMgdGhlIHVzZXIgZnJvbSBpbnRlcmFjdGluZyB3aXRoIHRoZSBhY2NvcmRpb24gYW5kIGFsbCBpdHMgaXRlbXMuXG4gICAgICovXG4gICAgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGFjY29yZGlvbkl0ZW0gPSBpbmplY3QoQ2RrQWNjb3JkaW9uSXRlbSk7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIG9yaWVudGF0aW9uOiBSZHhBY2NvcmRpb25PcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByZXNlbmNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVQcmVzZW5jZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBzZXRPcGVuKHN0YXRlPzogUmR4QWNjb3JkaW9uSXRlbVN0YXRlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoKSA9PiAodGhpcy5zdGF0ZSgpID09PSAnb3BlbicgPyAnY2xvc2VkJyA6ICdvcGVuJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGUoKCkgPT4gc3RhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlUHJlc2VuY2UoKTtcblxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEFuaW1hdGlvbnMoKS5mb3JFYWNoKChhbmltYXRpb24pID0+IGFuaW1hdGlvbi5jYW5jZWwoKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkLnNldCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UHJlc2VuY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEFuaW1hdGlvbnMoKTtcblxuICAgICAgICAgICAgY29uc3QgaGlkZGVuID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgaWYgKGhpZGRlbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGAke3RoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAvKnJlY3QuaGVpZ2h0Ki99cHhgO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gYCR7cmVjdC53aWR0aH1weGA7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1hY2NvcmRpb24tY29udGVudC1oZWlnaHQnLCBoZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtYWNjb3JkaW9uLWNvbnRlbnQtd2lkdGgnLCB3aWR0aCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUHJvbWlzZS5hbGwoYW5pbWF0aW9ucy5tYXAoKGFuaW1hdGlvbikgPT4gYW5pbWF0aW9uLmZpbmlzaGVkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVQcmVzZW5jZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvZ2dsZVByZXNlbmNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSgpID09PSAnb3BlbicpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgJycpO1xuICAgIH1cbn1cbiJdfQ==
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRXZFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUErQiwwQkFBMEIsQ0FBQyxDQUFDO0FBaUJySCxNQUFNLE9BQU8sNEJBQTRCO0lBZnpDO1FBZ0J1QixTQUFJLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FTL0Q7SUFQRyxJQUFJLEtBQUs7UUFDTCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRixDQUFDO1FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RGLENBQUM7OEdBVFEsNEJBQTRCO2tHQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBZnhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRTt3QkFDRixhQUFhLEVBQUUsVUFBVTt3QkFDekIseUNBQXlDO3dCQUN6QyxvREFBb0Q7d0JBQ3BELHlDQUF5Qzt3QkFDekMsU0FBUyxFQUFFLE9BQU87d0JBQ2xCLG1CQUFtQixFQUFFLGdCQUFnQjt3QkFDckMsc0JBQXNCLEVBQUUsZUFBZTt3QkFDdkMseUJBQXlCLEVBQUUsa0JBQWtCO3FCQUNoRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFJkeEFjY29yZGlvbkNvbnRlbnRUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhBY2NvcmRpb25Db250ZW50RGlyZWN0aXZlPignUmR4QWNjb3JkaW9uQ29udGVudFRva2VuJyk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeEFjY29yZGlvbkNvbnRlbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAncmR4QWNjb3JkaW9uQ29udGVudCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJyZWdpb25cIicsXG4gICAgICAgIC8vIHRvZG8gbmVlZCBoaWRlIGNvbnRlbnQgYWZ0ZXIgYW5pbWF0aW9uXG4gICAgICAgIC8vICdbc3R5bGUuZGlzcGxheV0nOiAnaXRlbS5leHBhbmRlZCA/IFwiXCIgOiBcIm5vbmVcIicsXG4gICAgICAgIC8vICdbYXR0ci5oaWRkZW5dJzogJ2hpZGRlbiA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1tzdHlsZV0nOiAnc3R5bGUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnaXRlbS5kYXRhU3RhdGUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnaXRlbS5kaXNhYmxlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdpdGVtLm9yaWVudGF0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4QWNjb3JkaW9uQ29udGVudERpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGl0ZW0gPSBpbmplY3QoUmR4QWNjb3JkaW9uSXRlbURpcmVjdGl2ZSk7XG5cbiAgICBnZXQgc3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLml0ZW0ub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgd2lkdGg6IHRoaXMuaXRlbS5leHBhbmRlZCA/ICd2YXIoLS1yZHgtYWNjb3JkaW9uLWNvbnRlbnQtd2lkdGgpJyA6IDAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGhlaWdodDogdGhpcy5pdGVtLmV4cGFuZGVkID8gJ3ZhcigtLXJkeC1hY2NvcmRpb24tY29udGVudC1oZWlnaHQpJyA6IDAgfTtcbiAgICB9XG59XG4iXX0=
@@ -1,44 +1,23 @@
1
- import { Directive } from '@angular/core';
2
- import { injectAccordionItem } from './accordion-item.directive';
1
+ import { Directive, inject } from '@angular/core';
2
+ import { RdxAccordionItemDirective } from './accordion-item.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class RdxAccordionHeaderDirective {
5
5
  constructor() {
6
- /**
7
- * @ignore
8
- */
9
- this.accordionItem = injectAccordionItem();
6
+ this.item = inject(RdxAccordionItemDirective);
10
7
  }
11
- /**
12
- * @ignore
13
- */
14
- getState() {
15
- return this.accordionItem.state();
16
- }
17
- /**
18
- * @ignore
19
- */
20
- getDisabled() {
21
- return this.accordionItem.disabled() ? '' : undefined;
22
- }
23
- /**
24
- * @ignore
25
- */
26
- getOrientation() {
27
- return this.accordionItem.orientation;
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxAccordionHeaderDirective, isStandalone: true, selector: "[rdxAccordionHeader]", host: { properties: { "attr.data-state": "getState()", "attr.data-disabled": "getDisabled()", "attr.data-orientation": "getOrientation()" } }, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxAccordionHeaderDirective, isStandalone: true, selector: "[rdxAccordionHeader]", host: { properties: { "attr.data-state": "item.dataState", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" } }, ngImport: i0 }); }
31
10
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionHeaderDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionHeaderDirective, decorators: [{
33
12
  type: Directive,
34
13
  args: [{
35
14
  selector: '[rdxAccordionHeader]',
36
15
  standalone: true,
37
16
  host: {
38
- '[attr.data-state]': 'getState()',
39
- '[attr.data-disabled]': 'getDisabled()',
40
- '[attr.data-orientation]': 'getOrientation()'
17
+ '[attr.data-state]': 'item.dataState',
18
+ '[attr.data-disabled]': 'item.disabled',
19
+ '[attr.data-orientation]': 'item.orientation'
41
20
  }
42
21
  }]
43
22
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2FjY29yZGlvbi9zcmMvYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sNEJBQTRCLENBQUM7O0FBWXhGLE1BQU0sT0FBTywyQkFBMkI7SUFUeEM7UUFVSTs7V0FFRztRQUNjLGtCQUFhLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztLQXNCMUQ7SUFwQkc7O09BRUc7SUFDSCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7OEdBekJRLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQVR2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsc0JBQXNCLEVBQUUsZUFBZTt3QkFDdkMseUJBQXlCLEVBQUUsa0JBQWtCO3FCQUNoRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QWNjb3JkaW9uSXRlbSwgUmR4QWNjb3JkaW9uSXRlbVN0YXRlIH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uT3JpZW50YXRpb24gfSBmcm9tICcuL2FjY29yZGlvbi1yb290LmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeEFjY29yZGlvbkhlYWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnZ2V0U3RhdGUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdnZXREaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ2dldE9yaWVudGF0aW9uKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBY2NvcmRpb25IZWFkZXJEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY29yZGlvbkl0ZW0gPSBpbmplY3RBY2NvcmRpb25JdGVtKCk7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgZ2V0U3RhdGUoKTogUmR4QWNjb3JkaW9uSXRlbVN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uSXRlbS5zdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBnZXREaXNhYmxlZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb25JdGVtLmRpc2FibGVkKCkgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgZ2V0T3JpZW50YXRpb24oKTogUmR4QWNjb3JkaW9uT3JpZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb25JdGVtLm9yaWVudGF0aW9uO1xuICAgIH1cbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2FjY29yZGlvbi9zcmMvYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBV3ZFLE1BQU0sT0FBTywyQkFBMkI7SUFUeEM7UUFVdUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQy9EOzhHQUZZLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQVR2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsZ0JBQWdCO3dCQUNyQyxzQkFBc0IsRUFBRSxlQUFlO3dCQUN2Qyx5QkFBeUIsRUFBRSxrQkFBa0I7cUJBQ2hEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeEFjY29yZGlvbkhlYWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnaXRlbS5kYXRhU3RhdGUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnaXRlbS5kaXNhYmxlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdpdGVtLm9yaWVudGF0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4QWNjb3JkaW9uSGVhZGVyRGlyZWN0aXZlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXRlbSA9IGluamVjdChSZHhBY2NvcmRpb25JdGVtRGlyZWN0aXZlKTtcbn1cbiJdfQ==
@@ -1,83 +1,170 @@
1
- import { CdkAccordion } from '@angular/cdk/accordion';
2
- import { contentChild, Directive, inject, InjectionToken, Input, input, signal } from '@angular/core';
3
- import { RdxAccordionContentToken } from './accordion-content.directive';
1
+ import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
2
+ import { booleanAttribute, ChangeDetectorRef, ContentChild, Directive, EventEmitter, inject, Input, Output } from '@angular/core';
3
+ import { Subscription } from 'rxjs';
4
+ import { RdxAccordionRootToken } from './accordion-root.directive';
5
+ import { RdxAccordionTriggerDirective } from './accordion-trigger.directive';
4
6
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/accordion";
6
- export const RdxAccordionItemToken = new InjectionToken('RdxAccordionItemToken');
7
- export function injectAccordionItem() {
8
- return inject(RdxAccordionItemDirective);
9
- }
7
+ let nextId = 0;
10
8
  export class RdxAccordionItemDirective {
9
+ get dataState() {
10
+ return this.expanded ? 'open' : 'closed';
11
+ }
12
+ get orientation() {
13
+ return this.accordion.orientation;
14
+ }
15
+ /** Whether the AccordionItem is expanded. */
16
+ set expanded(expanded) {
17
+ // Only emit events and update the internal value if the value changes.
18
+ if (this._expanded !== expanded) {
19
+ this._expanded = expanded;
20
+ this.expandedChange.emit(expanded);
21
+ if (expanded) {
22
+ this.opened.emit();
23
+ /**
24
+ * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,
25
+ * the name value is the id of the accordion.
26
+ */
27
+ const accordionId = this.accordion ? this.accordion.id : this.value;
28
+ this.expansionDispatcher.notify(this.value, accordionId);
29
+ }
30
+ else {
31
+ this.closed.emit();
32
+ }
33
+ // Ensures that the animation will run when the value is set outside of an `@Input`.
34
+ // This includes cases like the open, close and toggle methods.
35
+ this.changeDetectorRef.markForCheck();
36
+ }
37
+ }
38
+ get expanded() {
39
+ return this._expanded;
40
+ }
41
+ set value(value) {
42
+ this._value = value;
43
+ }
44
+ get value() {
45
+ return this._value || this.id;
46
+ }
47
+ /** Whether the AccordionItem is disabled. */
48
+ set disabled(value) {
49
+ this._disabled = value;
50
+ }
51
+ get disabled() {
52
+ return this.accordion.disabled ?? this._disabled;
53
+ }
11
54
  constructor() {
55
+ this.accordion = inject(RdxAccordionRootToken, { skipSelf: true });
56
+ this.changeDetectorRef = inject(ChangeDetectorRef);
57
+ this.expansionDispatcher = inject(UniqueSelectionDispatcher);
12
58
  /**
59
+ * The unique AccordionItem id.
13
60
  * @ignore
14
61
  */
15
- this.accordionContent = contentChild.required(RdxAccordionContentToken);
16
- /**
17
- * Current item state
18
- */
19
- this.state = signal('closed');
62
+ this.id = `rdx-accordion-item-${nextId++}`;
63
+ this._expanded = false;
64
+ this._disabled = false;
65
+ /** Event emitted every time the AccordionItem is closed. */
66
+ this.closed = new EventEmitter();
67
+ /** Event emitted every time the AccordionItem is opened. */
68
+ this.opened = new EventEmitter();
69
+ /** Event emitted when the AccordionItem is destroyed. */
70
+ this.destroyed = new EventEmitter();
20
71
  /**
21
- * When true, prevents the user from interacting with the item.
72
+ * Emits whenever the expanded state of the accordion changes.
73
+ * Primarily used to facilitate two-way binding.
74
+ * @docs-private
22
75
  */
23
- this.disabled = input(false);
24
- /**
25
- * @ignore
26
- */
27
- this.orientation = 'vertical';
28
- }
29
- /**
30
- * Changes current item state
31
- */
32
- setOpen(state) {
33
- if (this.disabled()) {
34
- return;
76
+ this.expandedChange = new EventEmitter();
77
+ /** Subscription to openAll/closeAll events. */
78
+ this.openCloseAllSubscription = Subscription.EMPTY;
79
+ this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id, accordionId) => {
80
+ if (this.accordion.isMultiple) {
81
+ if (this.accordion.id === accordionId && id.includes(this.value)) {
82
+ this.expanded = true;
83
+ }
84
+ }
85
+ else {
86
+ this.expanded = this.accordion.id === accordionId && id.includes(this.value);
87
+ }
88
+ });
89
+ // When an accordion item is hosted in an accordion, subscribe to open/close events.
90
+ if (this.accordion) {
91
+ this.openCloseAllSubscription = this.subscribeToOpenCloseAllActions();
35
92
  }
36
- if (state === undefined) {
37
- this.state.update(() => (this.state() === 'open' ? 'closed' : 'open'));
93
+ }
94
+ /** Emits an event for the accordion item being destroyed. */
95
+ ngOnDestroy() {
96
+ this.opened.complete();
97
+ this.closed.complete();
98
+ this.destroyed.emit();
99
+ this.destroyed.complete();
100
+ this.removeUniqueSelectionListener();
101
+ this.openCloseAllSubscription.unsubscribe();
102
+ }
103
+ focus() {
104
+ this.trigger.focus();
105
+ }
106
+ /** Toggles the expanded state of the accordion item. */
107
+ toggle() {
108
+ if (!this.disabled) {
109
+ this.expanded = !this.expanded;
38
110
  }
39
- else {
40
- this.state.update(() => state);
111
+ }
112
+ /** Sets the expanded state of the accordion item to false. */
113
+ close() {
114
+ if (!this.disabled) {
115
+ this.expanded = false;
41
116
  }
42
- this.accordionContent().setOpen(this.state());
43
117
  }
44
- /**
45
- * @ignore
46
- */
47
- setOrientation(orientation) {
48
- this.orientation = orientation;
49
- this.accordionContent().orientation = orientation;
118
+ /** Sets the expanded state of the accordion item to true. */
119
+ open() {
120
+ if (!this.disabled) {
121
+ this.expanded = true;
122
+ }
50
123
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
52
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.1.2", type: RdxAccordionItemDirective, isStandalone: true, selector: "[rdxAccordionItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "state()", "attr.data-disabled": "disabled() ? \"\" : undefined", "attr.data-orientation": "orientation" } }, providers: [
53
- {
54
- provide: RdxAccordionItemToken,
55
- useExisting: RdxAccordionItemDirective,
56
- multi: true
124
+ subscribeToOpenCloseAllActions() {
125
+ return this.accordion.openCloseAllActions.subscribe((expanded) => {
126
+ // Only change expanded state if item is enabled
127
+ if (!this.disabled) {
128
+ this.expanded = expanded;
57
129
  }
58
- ], queries: [{ propertyName: "accordionContent", first: true, predicate: RdxAccordionContentToken, descendants: true, isSignal: true }], exportAs: ["rdxAccordionItem"], hostDirectives: [{ directive: i1.CdkAccordion }], ngImport: i0 }); }
130
+ });
131
+ }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
133
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxAccordionItemDirective, isStandalone: true, selector: "[rdxAccordionItem]", inputs: { expanded: ["expanded", "expanded", booleanAttribute], value: "value", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { closed: "closed", opened: "opened", expandedChange: "expandedChange" }, host: { properties: { "attr.data-state": "dataState", "attr.data-disabled": "disabled", "attr.data-orientation": "orientation" } }, providers: [
134
+ { provide: RdxAccordionRootToken, useValue: undefined }
135
+ ], queries: [{ propertyName: "trigger", first: true, predicate: RdxAccordionTriggerDirective, descendants: true }], exportAs: ["rdxAccordionItem"], ngImport: i0 }); }
59
136
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxAccordionItemDirective, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxAccordionItemDirective, decorators: [{
61
138
  type: Directive,
62
139
  args: [{
63
140
  selector: '[rdxAccordionItem]',
64
141
  standalone: true,
65
142
  exportAs: 'rdxAccordionItem',
66
- providers: [
67
- {
68
- provide: RdxAccordionItemToken,
69
- useExisting: RdxAccordionItemDirective,
70
- multi: true
71
- }
72
- ],
73
143
  host: {
74
- '[attr.data-state]': 'state()',
75
- '[attr.data-disabled]': 'disabled() ? "" : undefined',
144
+ '[attr.data-state]': 'dataState',
145
+ '[attr.data-disabled]': 'disabled',
76
146
  '[attr.data-orientation]': 'orientation'
77
147
  },
78
- hostDirectives: [CdkAccordion]
148
+ providers: [
149
+ { provide: RdxAccordionRootToken, useValue: undefined }
150
+ ]
79
151
  }]
80
- }], propDecorators: { value: [{
152
+ }], ctorParameters: () => [], propDecorators: { trigger: [{
153
+ type: ContentChild,
154
+ args: [RdxAccordionTriggerDirective, { descendants: true }]
155
+ }], expanded: [{
156
+ type: Input,
157
+ args: [{ transform: booleanAttribute }]
158
+ }], value: [{
81
159
  type: Input
160
+ }], disabled: [{
161
+ type: Input,
162
+ args: [{ transform: booleanAttribute }]
163
+ }], closed: [{
164
+ type: Output
165
+ }], opened: [{
166
+ type: Output
167
+ }], expandedChange: [{
168
+ type: Output
82
169
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBS3pFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUE0Qix1QkFBdUIsQ0FBQyxDQUFDO0FBRTVHLE1BQU0sVUFBVSxtQkFBbUI7SUFDL0IsT0FBTyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBb0JELE1BQU0sT0FBTyx5QkFBeUI7SUFsQnRDO1FBbUJJOztXQUVHO1FBQ0sscUJBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzNFOztXQUVHO1FBQ0gsVUFBSyxHQUFHLE1BQU0sQ0FBd0IsUUFBUSxDQUFDLENBQUM7UUFDaEQ7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBNEIsVUFBVSxDQUFDO0tBNkJyRDtJQXpCRzs7T0FFRztJQUNILE9BQU8sQ0FBQyxLQUE2QjtRQUNqQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxXQUFvQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3RELENBQUM7OEdBNUNRLHlCQUF5QjtrR0FBekIseUJBQXlCLDhkQWR2QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLEtBQUssRUFBRSxJQUFJO2FBQ2Q7U0FDSix3RUFZZ0Qsd0JBQXdCOzsyRkFKaEUseUJBQXlCO2tCQWxCckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsMkJBQTJCOzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsU0FBUzt3QkFDOUIsc0JBQXNCLEVBQUUsNkJBQTZCO3dCQUNyRCx5QkFBeUIsRUFBRSxhQUFhO3FCQUMzQztvQkFDRCxjQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ2pDOzhCQW1CWSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYWNjb3JkaW9uJztcbmltcG9ydCB7IGNvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uQ29udGVudFRva2VuIH0gZnJvbSAnLi9hY2NvcmRpb24tY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uT3JpZW50YXRpb24gfSBmcm9tICcuL2FjY29yZGlvbi1yb290LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSA9ICdvcGVuJyB8ICdjbG9zZWQnO1xuXG5leHBvcnQgY29uc3QgUmR4QWNjb3JkaW9uSXRlbVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmU+KCdSZHhBY2NvcmRpb25JdGVtVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFjY29yZGlvbkl0ZW0oKTogUmR4QWNjb3JkaW9uSXRlbURpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIGluamVjdChSZHhBY2NvcmRpb25JdGVtRGlyZWN0aXZlKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4QWNjb3JkaW9uSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhBY2NvcmRpb25JdGVtJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogUmR4QWNjb3JkaW9uSXRlbVRva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmUsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJ1xuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtBY2NvcmRpb25dXG59KVxuZXhwb3J0IGNsYXNzIFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFjY29yZGlvbkNvbnRlbnQgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4QWNjb3JkaW9uQ29udGVudFRva2VuKTtcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGl0ZW0gc3RhdGVcbiAgICAgKi9cbiAgICBzdGF0ZSA9IHNpZ25hbDxSZHhBY2NvcmRpb25JdGVtU3RhdGU+KCdjbG9zZWQnKTtcbiAgICAvKipcbiAgICAgKiBXaGVuIHRydWUsIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgaXRlbS5cbiAgICAgKi9cbiAgICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgb3JpZW50YXRpb246IFJkeEFjY29yZGlvbk9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcblxuICAgIEBJbnB1dCgpIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyBjdXJyZW50IGl0ZW0gc3RhdGVcbiAgICAgKi9cbiAgICBzZXRPcGVuKHN0YXRlPzogUmR4QWNjb3JkaW9uSXRlbVN0YXRlKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoKSA9PiAodGhpcy5zdGF0ZSgpID09PSAnb3BlbicgPyAnY2xvc2VkJyA6ICdvcGVuJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGUoKCkgPT4gc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY2NvcmRpb25Db250ZW50KCkuc2V0T3Blbih0aGlzLnN0YXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBzZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbjogUmR4QWNjb3JkaW9uT3JpZW50YXRpb24pIHtcbiAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uO1xuXG4gICAgICAgIHRoaXMuYWNjb3JkaW9uQ29udGVudCgpLm9yaWVudGF0aW9uID0gb3JpZW50YXRpb247XG4gICAgfVxufVxuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBMkIscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJN0UsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBY2YsTUFBTSxPQUFPLHlCQUF5QjtJQU9sQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFRRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsSUFDSSxRQUFRLENBQUMsUUFBaUI7UUFDMUIsdUVBQXVFO1FBQ3ZFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVuQyxJQUFJLFFBQVEsRUFBRSxDQUFD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SUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1SlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUdBc0JkLGdCQUFnQixzREEyQ2hCLGdCQUFnQix1T0FwRXpCO1lBQ1AsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtTQUFDLCtEQU85Qyw0QkFBNEI7OzJGQUxqQyx5QkFBeUI7a0JBWnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDRixtQkFBbUIsRUFBRSxXQUFXO3dCQUNoQyxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyx5QkFBeUIsRUFBRSxhQUFhO3FCQUMzQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtxQkFBQztpQkFDL0Q7d0RBTXNFLE9BQU87c0JBQXpFLFlBQVk7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQWtCN0QsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWdDbEMsS0FBSztzQkFEUixLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFZbkIsTUFBTTtzQkFBeEIsTUFBTTtnQkFFWSxNQUFNO3NCQUF4QixNQUFNO2dCQVVZLGNBQWM7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uT3JpZW50YXRpb24sIFJkeEFjY29yZGlvblJvb3RUb2tlbiB9IGZyb20gJy4vYWNjb3JkaW9uLXJvb3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeEFjY29yZGlvblRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FjY29yZGlvbi10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSA9ICdvcGVuJyB8ICdjbG9zZWQnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4QWNjb3JkaW9uSXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhBY2NvcmRpb25JdGVtJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdkYXRhU3RhdGUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBSZHhBY2NvcmRpb25Sb290VG9rZW4sIHVzZVZhbHVlOiB1bmRlZmluZWQgfV1cbn0pXG5leHBvcnQgY2xhc3MgUmR4QWNjb3JkaW9uSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiwgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWNjb3JkaW9uID0gaW5qZWN0KFJkeEFjY29yZGlvblJvb3RUb2tlbiwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBleHBhbnNpb25EaXNwYXRjaGVyID0gaW5qZWN0KFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXIpO1xuXG4gICAgQENvbnRlbnRDaGlsZChSZHhBY2NvcmRpb25UcmlnZ2VyRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHRyaWdnZXI6IFJkeEFjY29yZGlvblRyaWdnZXJEaXJlY3RpdmU7XG5cbiAgICBnZXQgZGF0YVN0YXRlKCk6IFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkID8gJ29wZW4nIDogJ2Nsb3NlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHVuaXF1ZSBBY2NvcmRpb25JdGVtIGlkLlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICByZWFkb25seSBpZDogc3RyaW5nID0gYHJkeC1hY2NvcmRpb24taXRlbS0ke25leHRJZCsrfWA7XG5cbiAgICBnZXQgb3JpZW50YXRpb24oKTogUmR4QWNjb3JkaW9uT3JpZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24ub3JpZW50YXRpb247XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIEFjY29yZGlvbkl0ZW0gaXMgZXhwYW5kZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIC8vIE9ubHkgZW1pdCBldmVudHMgYW5kIHVwZGF0ZSB0aGUgaW50ZXJuYWwgdmFsdWUgaWYgdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICAgIGlmICh0aGlzLl9leHBhbmRlZCAhPT0gZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQoZXhwYW5kZWQpO1xuXG4gICAgICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSW4gdGhlIHVuaXF1ZSBzZWxlY3Rpb24gZGlzcGF0Y2hlciwgdGhlIGlkIHBhcmFtZXRlciBpcyB0aGUgaWQgb2YgdGhlIENka0FjY29yZGlvbkl0ZW0sXG4gICAgICAgICAgICAgICAgICogdGhlIG5hbWUgdmFsdWUgaXMgdGhlIGlkIG9mIHRoZSBhY2NvcmRpb24uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29uc3QgYWNjb3JkaW9uSWQgPSB0aGlzLmFjY29yZGlvbiA/IHRoaXMuYWNjb3JkaW9uLmlkIDogdGhpcy52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGFuc2lvbkRpc3BhdGNoZXIubm90aWZ5KHRoaXMudmFsdWUsIGFjY29yZGlvbklkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIHJ1biB3aGVuIHRoZSB2YWx1ZSBpcyBzZXQgb3V0c2lkZSBvZiBhbiBgQElucHV0YC5cbiAgICAgICAgICAgIC8vIFRoaXMgaW5jbHVkZXMgY2FzZXMgbGlrZSB0aGUgb3BlbiwgY2xvc2UgYW5kIHRvZ2dsZSBtZXRob2RzLlxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2V4cGFuZGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSB8fCB0aGlzLmlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIEFjY29yZGlvbkl0ZW0gaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uZGlzYWJsZWQgPz8gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGV2ZXJ5IHRpbWUgdGhlIEFjY29yZGlvbkl0ZW0gaXMgY2xvc2VkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvKiogRXZlbnQgZW1pdHRlZCBldmVyeSB0aW1lIHRoZSBBY2NvcmRpb25JdGVtIGlzIG9wZW5lZC4gKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBBY2NvcmRpb25JdGVtIGlzIGRlc3Ryb3llZC4gKi9cbiAgICByZWFkb25seSBkZXN0cm95ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgYWNjb3JkaW9uIGNoYW5nZXMuXG4gICAgICogUHJpbWFyaWx5IHVzZWQgdG8gZmFjaWxpdGF0ZSB0d28td2F5IGJpbmRpbmcuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIFVucmVnaXN0ZXIgZnVuY3Rpb24gZm9yIGV4cGFuc2lvbkRpc3BhdGNoZXIuICovXG4gICAgcHJpdmF0ZSByZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBTdWJzY3JpcHRpb24gdG8gb3BlbkFsbC9jbG9zZUFsbCBldmVudHMuICovXG4gICAgcHJpdmF0ZSBvcGVuQ2xvc2VBbGxTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lciA9IHRoaXMuZXhwYW5zaW9uRGlzcGF0Y2hlci5saXN0ZW4oKGlkOiBzdHJpbmcsIGFjY29yZGlvbklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjY29yZGlvbi5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWNjb3JkaW9uLmlkID09PSBhY2NvcmRpb25JZCAmJiBpZC5pbmNsdWRlcyh0aGlzLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0aGlzLmFjY29yZGlvbi5pZCA9PT0gYWNjb3JkaW9uSWQgJiYgaWQuaW5jbHVkZXModGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdoZW4gYW4gYWNjb3JkaW9uIGl0ZW0gaXMgaG9zdGVkIGluIGFuIGFjY29yZGlvbiwgc3Vic2NyaWJlIHRvIG9wZW4vY2xvc2UgZXZlbnRzLlxuICAgICAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkNsb3NlQWxsU3Vic2NyaXB0aW9uID0gdGhpcy5zdWJzY3JpYmVUb09wZW5DbG9zZUFsbEFjdGlvbnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBFbWl0cyBhbiBldmVudCBmb3IgdGhlIGFjY29yZGlvbiBpdGVtIGJlaW5nIGRlc3Ryb3llZC4gKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jbG9zZWQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuZW1pdCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnJlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMub3BlbkNsb3NlQWxsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJpZ2dlci5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKiBUb2dnbGVzIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgYWNjb3JkaW9uIGl0ZW0uICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBTZXRzIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgYWNjb3JkaW9uIGl0ZW0gdG8gZmFsc2UuICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNldHMgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBhY2NvcmRpb24gaXRlbSB0byB0cnVlLiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZVRvT3BlbkNsb3NlQWxsQWN0aW9ucygpOiBTdWJzY3JpcHRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24ub3BlbkNsb3NlQWxsQWN0aW9ucy5zdWJzY3JpYmUoKGV4cGFuZGVkKSA9PiB7XG4gICAgICAgICAgICAvLyBPbmx5IGNoYW5nZSBleHBhbmRlZCBzdGF0ZSBpZiBpdGVtIGlzIGVuYWJsZWRcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSBleHBhbmRlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19