@spartan-ng/brain 0.0.1-alpha.404 → 0.0.1-alpha.406

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/alert-dialog/lib/brn-alert-dialog-trigger.directive.d.ts +3 -2
  2. package/command/lib/brn-command-item.directive.d.ts +2 -0
  3. package/command/lib/brn-command-search-input.directive.d.ts +15 -7
  4. package/dialog/index.d.ts +1 -0
  5. package/dialog/lib/brn-dialog-close.directive.d.ts +2 -4
  6. package/dialog/lib/brn-dialog-content.directive.d.ts +3 -3
  7. package/dialog/lib/brn-dialog-overlay.component.d.ts +3 -2
  8. package/dialog/lib/brn-dialog-token.d.ts +8 -0
  9. package/dialog/lib/brn-dialog-trigger.directive.d.ts +5 -2
  10. package/dialog/lib/brn-dialog.component.d.ts +52 -31
  11. package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +16 -9
  12. package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +5 -5
  13. package/esm2022/command/lib/brn-command-item.directive.mjs +8 -4
  14. package/esm2022/command/lib/brn-command-search-input.directive.mjs +50 -18
  15. package/esm2022/command/lib/brn-command.directive.mjs +12 -10
  16. package/esm2022/dialog/index.mjs +2 -1
  17. package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +6 -11
  18. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +19 -19
  19. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +13 -9
  20. package/esm2022/dialog/lib/brn-dialog-token.mjs +15 -0
  21. package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +16 -8
  22. package/esm2022/dialog/lib/brn-dialog.component.mjs +112 -133
  23. package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +19 -13
  24. package/esm2022/popover/lib/brn-popover.component.mjs +36 -40
  25. package/esm2022/select/lib/brn-select.component.mjs +5 -3
  26. package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +8 -9
  27. package/esm2022/sheet/lib/brn-sheet.component.mjs +27 -25
  28. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +18 -11
  29. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  30. package/fesm2022/spartan-ng-brain-command.mjs +66 -28
  31. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  32. package/fesm2022/spartan-ng-brain-dialog.mjs +170 -171
  33. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  34. package/fesm2022/spartan-ng-brain-popover.mjs +52 -50
  35. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  36. package/fesm2022/spartan-ng-brain-select.mjs +4 -2
  37. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  38. package/fesm2022/spartan-ng-brain-sheet.mjs +32 -31
  39. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  40. package/hlm-tailwind-preset.css +43 -0
  41. package/package.json +2 -1
  42. package/popover/lib/brn-popover-trigger.directive.d.ts +2 -2
  43. package/popover/lib/brn-popover.component.d.ts +3 -6
  44. package/select/lib/brn-select.component.d.ts +3 -2
  45. package/sheet/lib/brn-sheet-trigger.directive.d.ts +2 -2
  46. package/sheet/lib/brn-sheet.component.d.ts +4 -3
@@ -1,7 +1,8 @@
1
- import { OverlayPositionBuilder, ScrollStrategyOptions, } from '@angular/cdk/overlay';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Injector, Input, Output, ViewContainerRef, ViewEncapsulation, booleanAttribute, computed, effect, inject, numberAttribute, runInInjectionContext, signal, } from '@angular/core';
1
+ import { OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
+ import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, Injector, input, numberAttribute, output, runInInjectionContext, signal, untracked, ViewContainerRef, ViewEncapsulation, } from '@angular/core';
3
3
  import { take } from 'rxjs/operators';
4
4
  import { DEFAULT_BRN_DIALOG_OPTIONS } from './brn-dialog-options';
5
+ import { injectBrnDialogDefaultOptions } from './brn-dialog-token';
5
6
  import { BrnDialogService } from './brn-dialog.service';
6
7
  import * as i0 from "@angular/core";
7
8
  export class BrnDialogComponent {
@@ -10,91 +11,120 @@ export class BrnDialogComponent {
10
11
  positionBuilder = inject(OverlayPositionBuilder);
11
12
  ssos = inject(ScrollStrategyOptions);
12
13
  _injector = inject(Injector);
14
+ _defaultOptions = injectBrnDialogDefaultOptions();
13
15
  _context = {};
14
- _options = {
15
- ...DEFAULT_BRN_DIALOG_OPTIONS,
16
- };
16
+ stateComputed = computed(() => this._dialogRef()?.state() ?? 'closed');
17
17
  _contentTemplate;
18
18
  _dialogRef = signal(undefined);
19
19
  _dialogStateEffectRef;
20
- state = computed(() => this._dialogRef()?.state() ?? 'closed');
21
- closed = new EventEmitter();
22
- stateChanged = new EventEmitter();
23
- // eslint-disable-next-line @angular-eslint/no-input-rename
24
- set newState(state) {
25
- if (state === 'open') {
26
- this.open();
27
- }
28
- if (state === 'closed') {
29
- this.close(this._options.closeDelay);
30
- }
31
- }
32
- set role(role) {
33
- this._options.role = role;
34
- }
35
- set hasBackdrop(hasBackdrop) {
36
- this._options.hasBackdrop = hasBackdrop;
37
- }
38
- set positionStrategy(positionStrategy) {
39
- this._options.positionStrategy = positionStrategy;
40
- }
41
- set scrollStrategy(scrollStrategy) {
42
- if (scrollStrategy === 'close') {
43
- this._options.scrollStrategy = this.ssos.close();
20
+ _backdropClass = signal(null);
21
+ _panelClass = signal(null);
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ closed = output();
24
+ stateChanged = output();
25
+ state = input(null);
26
+ role = input('dialog');
27
+ mutableRole = computed(() => signal(this.role()));
28
+ _roleState = computed(() => this.mutableRole()());
29
+ hasBackdrop = input(true, { transform: booleanAttribute });
30
+ _mutableHasBackdrop = computed(() => signal(this.hasBackdrop()));
31
+ _hasBackdropState = computed(() => this._mutableHasBackdrop()());
32
+ positionStrategy = input();
33
+ mutablePositionStrategy = computed(() => signal(this.positionStrategy()));
34
+ _positionStrategyState = computed(() => this.mutablePositionStrategy()());
35
+ scrollStrategy = input(null);
36
+ mutableScrollStrategy = computed(() => signal(this.scrollStrategy()));
37
+ _scrollStrategyState = computed(() => this.mutableScrollStrategy()());
38
+ _options = computed(() => {
39
+ const scrollStrategyInput = this._scrollStrategyState();
40
+ let scrollStrategy;
41
+ if (scrollStrategyInput === 'close') {
42
+ scrollStrategy = this.ssos.close();
44
43
  }
45
- else if (scrollStrategy === 'reposition') {
46
- this._options.scrollStrategy = this.ssos.reposition();
44
+ else if (scrollStrategyInput === 'reposition') {
45
+ scrollStrategy = this.ssos.reposition();
47
46
  }
48
47
  else {
49
- this._options.scrollStrategy = scrollStrategy;
48
+ scrollStrategy = scrollStrategyInput;
50
49
  }
50
+ return {
51
+ ...DEFAULT_BRN_DIALOG_OPTIONS,
52
+ role: this._roleState(),
53
+ hasBackdrop: this._hasBackdropState(),
54
+ positionStrategy: this._positionStrategyState(),
55
+ scrollStrategy,
56
+ restoreFocus: this.restoreFocus(),
57
+ closeOnOutsidePointerEvents: this._closeOnOutsidePointerEventsState(),
58
+ closeOnBackdropClick: this._closeOnBackdropClickState(),
59
+ attachTo: this._attachToState(),
60
+ attachPositions: this._attachPositionsState(),
61
+ autoFocus: this.autoFocus(),
62
+ closeDelay: 100,
63
+ disableClose: this.disableClose(),
64
+ backdropClass: this._backdropClass() ?? '',
65
+ panelClass: this._panelClass() ?? '',
66
+ ariaDescribedBy: this._ariaDescribedByState(),
67
+ ariaLabelledBy: this._ariaLabelledByState(),
68
+ ariaLabel: this._ariaLabelState(),
69
+ ariaModal: this._ariaModalState(),
70
+ };
71
+ });
72
+ constructor() {
73
+ effect(() => {
74
+ const state = this.state();
75
+ if (state === 'open') {
76
+ untracked(() => this.open());
77
+ }
78
+ if (state === 'closed') {
79
+ untracked(() => this.close(this._options().closeDelay));
80
+ }
81
+ });
51
82
  }
52
- set restoreFocus(restoreFocus) {
53
- this._options.restoreFocus = restoreFocus;
54
- }
55
- set closeOnOutsidePointerEvents(closeOnOutsidePointerEvents) {
56
- this._options.closeOnOutsidePointerEvents = closeOnOutsidePointerEvents;
57
- }
58
- set closeOnBackdropClick(closeOnBackdropClick) {
59
- this._options.closeOnBackdropClick = closeOnBackdropClick;
60
- }
61
- set attachTo(attachTo) {
62
- this._options.attachTo = attachTo;
63
- }
64
- set attachPositions(attachPositions) {
65
- this._options.attachPositions = attachPositions;
66
- }
67
- set autoFocus(autoFocus) {
68
- this._options.autoFocus = autoFocus;
69
- }
70
- set closeDelay(closeDelay) {
71
- this._options.closeDelay = closeDelay;
72
- }
73
- set disableClose(disableClose) {
74
- this._options.disableClose = disableClose;
75
- }
76
- /* eslint-disable-next-line @angular-eslint/no-input-rename */
77
- set ariaDescribedBy(ariaDescribedBy) {
78
- this.setAriaDescribedBy(ariaDescribedBy);
79
- }
80
- /* eslint-disable-next-line @angular-eslint/no-input-rename */
81
- set ariaLabelledBy(ariaLabelledBy) {
82
- this.setAriaLabelledBy(ariaLabelledBy);
83
- }
84
- set ariaLabel(ariaLabel) {
85
- this.setAriaLabel(ariaLabel);
86
- }
87
- set ariaModal(isModal) {
88
- this.setAriaModal(isModal);
89
- }
83
+ restoreFocus = input(true);
84
+ closeOnOutsidePointerEvents = input(false, {
85
+ transform: booleanAttribute,
86
+ });
87
+ mutableCloseOnOutsidePointerEvents = computed(() => signal(this.closeOnOutsidePointerEvents()));
88
+ _closeOnOutsidePointerEventsState = computed(() => this.mutableCloseOnOutsidePointerEvents()());
89
+ closeOnBackdropClick = input(DEFAULT_BRN_DIALOG_OPTIONS.closeOnBackdropClick, {
90
+ transform: booleanAttribute,
91
+ });
92
+ mutableCloseOnBackdropClick = computed(() => signal(this.closeOnBackdropClick()));
93
+ _closeOnBackdropClickState = computed(() => this.mutableCloseOnBackdropClick()());
94
+ attachTo = input(null);
95
+ mutableAttachTo = computed(() => signal(this.attachTo()));
96
+ _attachToState = computed(() => this.mutableAttachTo()());
97
+ attachPositions = input([]);
98
+ mutableAttachPositions = computed(() => signal(this.attachPositions()));
99
+ _attachPositionsState = computed(() => this.mutableAttachPositions()());
100
+ autoFocus = input('first-tabbable');
101
+ closeDelay = input(100, { alias: 'closeDelay', transform: numberAttribute });
102
+ disableClose = input(false, { transform: booleanAttribute });
103
+ ariaDescribedBy = input(null, {
104
+ alias: 'aria-describedby',
105
+ });
106
+ _mutableAriaDescribedBy = computed(() => signal(this.ariaDescribedBy()));
107
+ _ariaDescribedByState = computed(() => this._mutableAriaDescribedBy()());
108
+ ariaLabelledBy = input(null, { alias: 'aria-labelledby' });
109
+ _mutableAriaLabelledBy = computed(() => signal(this.ariaLabelledBy()));
110
+ _ariaLabelledByState = computed(() => this._mutableAriaLabelledBy()());
111
+ ariaLabel = input(null, { alias: 'aria-label' });
112
+ _mutableAriaLabel = computed(() => signal(this.ariaLabel()));
113
+ _ariaLabelState = computed(() => this._mutableAriaLabel()());
114
+ ariaModal = input(true, { alias: 'aria-modal', transform: booleanAttribute });
115
+ _mutableAriaModal = computed(() => signal(this.ariaModal()));
116
+ _ariaModalState = computed(() => this._mutableAriaModal()());
90
117
  open() {
91
118
  if (!this._contentTemplate || this._dialogRef())
92
119
  return;
93
120
  this._dialogStateEffectRef?.destroy();
94
- const dialogRef = this._dialogService.open(this._contentTemplate, this._vcr, this._context, this._options);
121
+ const dialogRef = this._dialogService.open(this._contentTemplate, this._vcr, this._context, this._options());
95
122
  this._dialogRef.set(dialogRef);
96
123
  runInInjectionContext(this._injector, () => {
97
- this._dialogStateEffectRef = effect(() => this.stateChanged.emit(dialogRef.state()));
124
+ this._dialogStateEffectRef = effect(() => {
125
+ const state = dialogRef.state();
126
+ untracked(() => this.stateChanged.emit(state));
127
+ });
98
128
  });
99
129
  dialogRef.closed$.pipe(take(1)).subscribe((result) => {
100
130
  this._dialogRef.set(undefined);
@@ -103,17 +133,17 @@ export class BrnDialogComponent {
103
133
  }
104
134
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
135
  close(result, delay) {
106
- this._dialogRef()?.close(result, delay ?? this._options.closeDelay);
136
+ this._dialogRef()?.close(result, delay ?? this._options().closeDelay);
107
137
  }
108
138
  registerTemplate(template) {
109
139
  this._contentTemplate = template;
110
140
  }
111
141
  setOverlayClass(overlayClass) {
112
- this._options.backdropClass = overlayClass ?? '';
142
+ this._backdropClass.set(overlayClass);
113
143
  this._dialogRef()?.setOverlayClass(overlayClass);
114
144
  }
115
145
  setPanelClass(panelClass) {
116
- this._options.panelClass = panelClass ?? '';
146
+ this._panelClass.set(panelClass ?? '');
117
147
  this._dialogRef()?.setPanelClass(panelClass);
118
148
  }
119
149
  setContext(context) {
@@ -122,22 +152,22 @@ export class BrnDialogComponent {
122
152
  this._context = { ...this._context, ...context };
123
153
  }
124
154
  setAriaDescribedBy(ariaDescribedBy) {
125
- this._options = { ...this._options, ariaDescribedBy };
155
+ this._mutableAriaDescribedBy().set(ariaDescribedBy);
126
156
  this._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);
127
157
  }
128
158
  setAriaLabelledBy(ariaLabelledBy) {
129
- this._options = { ...this._options, ariaLabelledBy };
159
+ this._mutableAriaLabelledBy().set(ariaLabelledBy);
130
160
  this._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);
131
161
  }
132
162
  setAriaLabel(ariaLabel) {
133
- this._options = { ...this._options, ariaLabel };
163
+ this._mutableAriaLabel().set(ariaLabel);
134
164
  this._dialogRef()?.setAriaLabel(ariaLabel);
135
165
  }
136
166
  setAriaModal(ariaModal) {
137
- this._options = { ...this._options, ariaModal };
167
+ this._mutableAriaModal().set(ariaModal);
138
168
  }
139
169
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
140
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.5", type: BrnDialogComponent, isStandalone: true, selector: "brn-dialog", inputs: { newState: ["state", "newState"], role: "role", hasBackdrop: ["hasBackdrop", "hasBackdrop", booleanAttribute], positionStrategy: "positionStrategy", scrollStrategy: "scrollStrategy", restoreFocus: "restoreFocus", closeOnOutsidePointerEvents: ["closeOnOutsidePointerEvents", "closeOnOutsidePointerEvents", booleanAttribute], closeOnBackdropClick: ["closeOnBackdropClick", "closeOnBackdropClick", booleanAttribute], attachTo: "attachTo", attachPositions: "attachPositions", autoFocus: "autoFocus", closeDelay: ["closeDelay", "closeDelay", numberAttribute], disableClose: ["disableClose", "disableClose", booleanAttribute], ariaDescribedBy: ["aria-describedby", "ariaDescribedBy"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaLabel: ["aria-label", "ariaLabel"], ariaModal: ["aria-modal", "ariaModal", booleanAttribute] }, outputs: { closed: "closed", stateChanged: "stateChanged" }, exportAs: ["brnDialog"], ngImport: i0, template: `
170
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnDialogComponent, isStandalone: true, selector: "brn-dialog", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: "positionStrategy", publicName: "positionStrategy", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePointerEvents: { classPropertyName: "closeOnOutsidePointerEvents", publicName: "closeOnOutsidePointerEvents", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: true, isRequired: false, transformFunction: null }, attachTo: { classPropertyName: "attachTo", publicName: "attachTo", isSignal: true, isRequired: false, transformFunction: null }, attachPositions: { classPropertyName: "attachPositions", publicName: "attachPositions", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaModal: { classPropertyName: "ariaModal", publicName: "aria-modal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", stateChanged: "stateChanged" }, exportAs: ["brnDialog"], ngImport: i0, template: `
141
171
  <ng-content />
142
172
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
143
173
  }
@@ -153,56 +183,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
153
183
  encapsulation: ViewEncapsulation.None,
154
184
  exportAs: 'brnDialog',
155
185
  }]
156
- }], propDecorators: { closed: [{
157
- type: Output
158
- }], stateChanged: [{
159
- type: Output
160
- }], newState: [{
161
- type: Input,
162
- args: ['state']
163
- }], role: [{
164
- type: Input
165
- }], hasBackdrop: [{
166
- type: Input,
167
- args: [{ transform: booleanAttribute }]
168
- }], positionStrategy: [{
169
- type: Input
170
- }], scrollStrategy: [{
171
- type: Input
172
- }], restoreFocus: [{
173
- type: Input
174
- }], closeOnOutsidePointerEvents: [{
175
- type: Input,
176
- args: [{ transform: booleanAttribute }]
177
- }], closeOnBackdropClick: [{
178
- type: Input,
179
- args: [{ transform: booleanAttribute }]
180
- }], attachTo: [{
181
- type: Input
182
- }], attachPositions: [{
183
- type: Input
184
- }], autoFocus: [{
185
- type: Input
186
- }], closeDelay: [{
187
- type: Input,
188
- args: [{ transform: numberAttribute }]
189
- }], disableClose: [{
190
- type: Input,
191
- args: [{ transform: booleanAttribute }]
192
- }], ariaDescribedBy: [{
193
- type: Input,
194
- args: ['aria-describedby']
195
- }], ariaLabelledBy: [{
196
- type: Input,
197
- args: ['aria-labelledby']
198
- }], ariaLabel: [{
199
- type: Input,
200
- args: ['aria-label']
201
- }], ariaModal: [{
202
- type: Input,
203
- args: [{
204
- alias: 'aria-modal',
205
- transform: booleanAttribute,
206
- }]
207
- }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2RpYWxvZy9zcmMvbGliL2Jybi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFHTixzQkFBc0IsRUFHdEIscUJBQXFCLEdBQ3JCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUVOLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQXlCLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBWXhELE1BQU0sT0FBTyxrQkFBa0I7SUFDYixjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pDLGVBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNqRCxJQUFJLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDcEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1osUUFBUSxHQUE4QjtRQUMvQyxHQUFHLDBCQUEwQjtLQUM3QixDQUFDO0lBRU0sZ0JBQWdCLENBQW1DO0lBQzFDLFVBQVUsR0FBRyxNQUFN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QixnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBTUssY0FBYztzQkFEeEIsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLO2dCQU1LLDJCQUEyQjtzQkFEckMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNM0Isb0JBQW9CO3NCQUQ5QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU0zQixRQUFRO3NCQURsQixLQUFLO2dCQU1LLGVBQWU7c0JBRHpCLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSztnQkFNSyxVQUFVO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFNMUIsWUFBWTtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPM0IsZUFBZTtzQkFEekIsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBT2QsY0FBYztzQkFEeEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBTWIsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxZQUFZO2dCQVNSLFNBQVM7c0JBSm5CLEtBQUs7dUJBQUM7d0JBQ04sS0FBSyxFQUFFLFlBQVk7d0JBQ25CLFNBQVMsRUFBRSxnQkFBZ0I7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBdXRvRm9jdXNUYXJnZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7XG5cdHR5cGUgQ29ubmVjdGVkUG9zaXRpb24sXG5cdHR5cGUgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuXHRPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuXHR0eXBlIFBvc2l0aW9uU3RyYXRlZ3ksXG5cdHR5cGUgU2Nyb2xsU3RyYXRlZ3ksXG5cdFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0dHlwZSBFZmZlY3RSZWYsXG5cdHR5cGUgRWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0dHlwZSBUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0Vmlld0VuY2Fwc3VsYXRpb24sXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRydW5JbkluamVjdGlvbkNvbnRleHQsXG5cdHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdHlwZSBCcm5EaWFsb2dPcHRpb25zLCBERUZBVUxUX0JSTl9ESUFMT0dfT1BUSU9OUyB9IGZyb20gJy4vYnJuLWRpYWxvZy1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgQnJuRGlhbG9nUmVmIH0gZnJvbSAnLi9icm4tZGlhbG9nLXJlZic7XG5pbXBvcnQgdHlwZSB7IEJybkRpYWxvZ1N0YXRlIH0gZnJvbSAnLi9icm4tZGlhbG9nLXN0YXRlJztcbmltcG9ydCB7IEJybkRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2Jybi1kaWFsb2cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Jybi1kaWFsb2cnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250ZW50IC8+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRleHBvcnRBczogJ2JybkRpYWxvZycsXG59KVxuZXhwb3J0IGNsYXNzIEJybkRpYWxvZ0NvbXBvbmVudCB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQnJuRGlhbG9nU2VydmljZSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3ZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHVibGljIHJlYWRvbmx5IHBvc2l0aW9uQnVpbGRlciA9IGluamVjdChPdmVybGF5UG9zaXRpb25CdWlsZGVyKTtcblx0cHVibGljIHJlYWRvbmx5IHNzb3MgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcblx0cHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdHByaXZhdGUgX2NvbnRleHQgPSB7fTtcblx0cHJvdGVjdGVkIF9vcHRpb25zOiBQYXJ0aWFsPEJybkRpYWxvZ09wdGlvbnM+ID0ge1xuXHRcdC4uLkRFRkFVTFRfQlJOX0RJQUxPR19PUFRJT05TLFxuXHR9O1xuXG5cdHByaXZhdGUgX2NvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1JlZiA9IHNpZ25hbDxCcm5EaWFsb2dSZWYgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cdHByaXZhdGUgX2RpYWxvZ1N0YXRlRWZmZWN0UmVmPzogRWZmZWN0UmVmO1xuXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2RpYWxvZ1JlZigpPy5zdGF0ZSgpID8/ICdjbG9zZWQnKTtcblxuXHRAT3V0cHV0KClcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblx0cHVibGljIHJlYWRvbmx5IGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cdEBPdXRwdXQoKVxuXHRwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCcm5EaWFsb2dTdGF0ZT4oKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuXHRASW5wdXQoJ3N0YXRlJylcblx0cHVibGljIHNldCBuZXdTdGF0ZShzdGF0ZTogQnJuRGlhbG9nU3RhdGUpIHtcblx0XHRpZiAoc3RhdGUgPT09ICdvcGVuJykge1xuXHRcdFx0dGhpcy5vcGVuKCk7XG5cdFx0fVxuXHRcdGlmIChzdGF0ZSA9PT0gJ2Nsb3NlZCcpIHtcblx0XHRcdHRoaXMuY2xvc2UodGhpcy5fb3B0aW9ucy5jbG9zZURlbGF5KTtcblx0XHR9XG5cdH1cblxuXHRASW5wdXQoKVxuXHRwdWJsaWMgc2V0IHJvbGUocm9sZTogJ2RpYWxvZycgfCAnYWxlcnRkaWFsb2cnKSB7XG5cdFx0dGhpcy5fb3B0aW9ucy5yb2xlID0gcm9sZTtcblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRwdWJsaWMgc2V0IGhhc0JhY2tkcm9wKGhhc0JhY2tkcm9wOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fb3B0aW9ucy5oYXNCYWNrZHJvcCA9IGhhc0JhY2tkcm9wO1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBwb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uU3RyYXRlZ3k6IFBvc2l0aW9uU3RyYXRlZ3kpIHtcblx0XHR0aGlzLl9vcHRpb25zLnBvc2l0aW9uU3RyYXRlZ3kgPSBwb3NpdGlvblN0cmF0ZWd5O1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBzY3JvbGxTdHJhdGVneShzY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3kgfCAnY2xvc2UnIHwgJ3JlcG9zaXRpb24nKSB7XG5cdFx0aWYgKHNjcm9sbFN0cmF0ZWd5ID09PSAnY2xvc2UnKSB7XG5cdFx0XHR0aGlzLl9vcHRpb25zLnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zc29zLmNsb3NlKCk7XG5cdFx0fSBlbHNlIGlmIChzY3JvbGxTdHJhdGVneSA9PT0gJ3JlcG9zaXRpb24nKSB7XG5cdFx0XHR0aGlzLl9vcHRpb25zLnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zc29zLnJlcG9zaXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fb3B0aW9ucy5zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpXG5cdHB1YmxpYyBzZXQgcmVzdG9yZUZvY3VzKHJlc3RvcmVGb2N1czogYm9vbGVhbiB8IHN0cmluZyB8IEVsZW1lbnRSZWYpIHtcblx0XHR0aGlzLl9vcHRpb25zLnJlc3RvcmVGb2N1cyA9IHJlc3RvcmVGb2N1cztcblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRwdWJsaWMgc2V0IGNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cyhjbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHM6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9vcHRpb25zLmNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cyA9IGNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cztcblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRwdWJsaWMgc2V0IGNsb3NlT25CYWNrZHJvcENsaWNrKGNsb3NlT25CYWNrZHJvcENsaWNrOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fb3B0aW9ucy5jbG9zZU9uQmFja2Ryb3BDbGljayA9IGNsb3NlT25CYWNrZHJvcENsaWNrO1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBhdHRhY2hUbyhhdHRhY2hUbzogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX29wdGlvbnMuYXR0YWNoVG8gPSBhdHRhY2hUbztcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHB1YmxpYyBzZXQgYXR0YWNoUG9zaXRpb25zKGF0dGFjaFBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSkge1xuXHRcdHRoaXMuX29wdGlvbnMuYXR0YWNoUG9zaXRpb25zID0gYXR0YWNoUG9zaXRpb25zO1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBhdXRvRm9jdXMoYXV0b0ZvY3VzOiBBdXRvRm9jdXNUYXJnZXQgfCBzdHJpbmcpIHtcblx0XHR0aGlzLl9vcHRpb25zLmF1dG9Gb2N1cyA9IGF1dG9Gb2N1cztcblx0fVxuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG5cdHB1YmxpYyBzZXQgY2xvc2VEZWxheShjbG9zZURlbGF5OiBudW1iZXIpIHtcblx0XHR0aGlzLl9vcHRpb25zLmNsb3NlRGVsYXkgPSBjbG9zZURlbGF5O1xuXHR9XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdHB1YmxpYyBzZXQgZGlzYWJsZUNsb3NlKGRpc2FibGVDbG9zZTogYm9vbGVhbikge1xuXHRcdHRoaXMuX29wdGlvbnMuZGlzYWJsZUNsb3NlID0gZGlzYWJsZUNsb3NlO1xuXHR9XG5cblx0LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cblx0QElucHV0KCdhcmlhLWRlc2NyaWJlZGJ5Jylcblx0cHVibGljIHNldCBhcmlhRGVzY3JpYmVkQnkoYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG5cdFx0dGhpcy5zZXRBcmlhRGVzY3JpYmVkQnkoYXJpYURlc2NyaWJlZEJ5KTtcblx0fVxuXG5cdC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG5cdEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5Jylcblx0cHVibGljIHNldCBhcmlhTGFiZWxsZWRCeShhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuc2V0QXJpYUxhYmVsbGVkQnkoYXJpYUxhYmVsbGVkQnkpO1xuXHR9XG5cblx0QElucHV0KCdhcmlhLWxhYmVsJylcblx0cHVibGljIHNldCBhcmlhTGFiZWwoYXJpYUxhYmVsOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG5cdFx0dGhpcy5zZXRBcmlhTGFiZWwoYXJpYUxhYmVsKTtcblx0fVxuXG5cdEBJbnB1dCh7XG5cdFx0YWxpYXM6ICdhcmlhLW1vZGFsJyxcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pXG5cdHB1YmxpYyBzZXQgYXJpYU1vZGFsKGlzTW9kYWw6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnNldEFyaWFNb2RhbChpc01vZGFsKTtcblx0fVxuXG5cdHB1YmxpYyBvcGVuPERpYWxvZ0NvbnRleHQ+KCkge1xuXHRcdGlmICghdGhpcy5fY29udGVudFRlbXBsYXRlIHx8IHRoaXMuX2RpYWxvZ1JlZigpKSByZXR1cm47XG5cblx0XHR0aGlzLl9kaWFsb2dTdGF0ZUVmZmVjdFJlZj8uZGVzdHJveSgpO1xuXG5cdFx0Y29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuPERpYWxvZ0NvbnRleHQ+KFxuXHRcdFx0dGhpcy5fY29udGVudFRlbXBsYXRlLFxuXHRcdFx0dGhpcy5fdmNyLFxuXHRcdFx0dGhpcy5fY29udGV4dCBhcyBEaWFsb2dDb250ZXh0LFxuXHRcdFx0dGhpcy5fb3B0aW9ucyxcblx0XHQpO1xuXG5cdFx0dGhpcy5fZGlhbG9nUmVmLnNldChkaWFsb2dSZWYpO1xuXG5cdFx0cnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuX2luamVjdG9yLCAoKSA9PiB7XG5cdFx0XHR0aGlzLl9kaWFsb2dTdGF0ZUVmZmVjdFJlZiA9IGVmZmVjdCgoKSA9PiB0aGlzLnN0YXRlQ2hhbmdlZC5lbWl0KGRpYWxvZ1JlZi5zdGF0ZSgpKSk7XG5cdFx0fSk7XG5cblx0XHRkaWFsb2dSZWYuY2xvc2VkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG5cdFx0XHR0aGlzLl9kaWFsb2dSZWYuc2V0KHVuZGVmaW5lZCk7XG5cdFx0XHR0aGlzLmNsb3NlZC5lbWl0KHJlc3VsdCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRwdWJsaWMgY2xvc2UocmVzdWx0OiBhbnksIGRlbGF5PzogbnVtYmVyKSB7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LmNsb3NlKHJlc3VsdCwgZGVsYXkgPz8gdGhpcy5fb3B0aW9ucy5jbG9zZURlbGF5KTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPikge1xuXHRcdHRoaXMuX2NvbnRlbnRUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuXHR9XG5cblx0cHVibGljIHNldE92ZXJsYXlDbGFzcyhvdmVybGF5Q2xhc3M6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcblx0XHR0aGlzLl9vcHRpb25zLmJhY2tkcm9wQ2xhc3MgPSBvdmVybGF5Q2xhc3MgPz8gJyc7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldE92ZXJsYXlDbGFzcyhvdmVybGF5Q2xhc3MpO1xuXHR9XG5cblx0cHVibGljIHNldFBhbmVsQ2xhc3MocGFuZWxDbGFzczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX29wdGlvbnMucGFuZWxDbGFzcyA9IHBhbmVsQ2xhc3MgPz8gJyc7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldFBhbmVsQ2xhc3MocGFuZWxDbGFzcyk7XG5cdH1cblxuXHRwdWJsaWMgc2V0Q29udGV4dChjb250ZXh0OiB1bmtub3duKSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHR0aGlzLl9jb250ZXh0ID0geyAuLi50aGlzLl9jb250ZXh0LCAuLi5jb250ZXh0IH07XG5cdH1cblxuXHRwdWJsaWMgc2V0QXJpYURlc2NyaWJlZEJ5KGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX29wdGlvbnMgPSB7IC4uLnRoaXMuX29wdGlvbnMsIGFyaWFEZXNjcmliZWRCeSB9O1xuXHRcdHRoaXMuX2RpYWxvZ1JlZigpPy5zZXRBcmlhRGVzY3JpYmVkQnkoYXJpYURlc2NyaWJlZEJ5KTtcblx0fVxuXG5cdHB1YmxpYyBzZXRBcmlhTGFiZWxsZWRCeShhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX29wdGlvbnMgPSB7IC4uLnRoaXMuX29wdGlvbnMsIGFyaWFMYWJlbGxlZEJ5IH07XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldEFyaWFMYWJlbGxlZEJ5KGFyaWFMYWJlbGxlZEJ5KTtcblx0fVxuXG5cdHB1YmxpYyBzZXRBcmlhTGFiZWwoYXJpYUxhYmVsOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG5cdFx0dGhpcy5fb3B0aW9ucyA9IHsgLi4udGhpcy5fb3B0aW9ucywgYXJpYUxhYmVsIH07XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldEFyaWFMYWJlbChhcmlhTGFiZWwpO1xuXHR9XG5cblx0cHVibGljIHNldEFyaWFNb2RhbChhcmlhTW9kYWw6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9vcHRpb25zID0geyAuLi50aGlzLl9vcHRpb25zLCBhcmlhTW9kYWwgfTtcblx0fVxufVxuIl19
186
+ }], ctorParameters: () => [] });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2RpYWxvZy9zcmMvbGliL2Jybi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRyxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixNQUFNLEVBRU4sU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBeUIsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFZeEQsTUFBTSxPQUFPLGtCQUFrQjtJQUNiLGNBQWMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2pELElBQUksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNwQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNCLGVBQWUsR0FBRyw2QkFBNkIsRUFBRSxDQUFDO0lBRTdELFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDTixh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QXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxjQUF5QztRQUNqRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxZQUFZLENBQUMsU0FBb0M7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFrQjtRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQzswSEEzTVcsa0JBQWtCOzhHQUFsQixrQkFBa0IsMmhGQVBwQjs7RUFFVDs7MkZBS1csa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFLFdBQVc7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciwgU2Nyb2xsU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdHR5cGUgRWZmZWN0UmVmLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRpbnB1dCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRvdXRwdXQsXG5cdHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcblx0c2lnbmFsLFxuXHR0eXBlIFRlbXBsYXRlUmVmLFxuXHR1bnRyYWNrZWQsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0eXBlIEJybkRpYWxvZ09wdGlvbnMsIERFRkFVTFRfQlJOX0RJQUxPR19PUFRJT05TIH0gZnJvbSAnLi9icm4tZGlhbG9nLW9wdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBCcm5EaWFsb2dSZWYgfSBmcm9tICcuL2Jybi1kaWFsb2ctcmVmJztcbmltcG9ydCB0eXBlIHsgQnJuRGlhbG9nU3RhdGUgfSBmcm9tICcuL2Jybi1kaWFsb2ctc3RhdGUnO1xuaW1wb3J0IHsgaW5qZWN0QnJuRGlhbG9nRGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL2Jybi1kaWFsb2ctdG9rZW4nO1xuaW1wb3J0IHsgQnJuRGlhbG9nU2VydmljZSB9IGZyb20gJy4vYnJuLWRpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLWRpYWxvZycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLWNvbnRlbnQgLz5cblx0YCxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGV4cG9ydEFzOiAnYnJuRGlhbG9nJyxcbn0pXG5leHBvcnQgY2xhc3MgQnJuRGlhbG9nQ29tcG9uZW50IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZGlhbG9nU2VydmljZSA9IGluamVjdChCcm5EaWFsb2dTZXJ2aWNlKTtcblx0cHJpdmF0ZSByZWFkb25seSBfdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb25CdWlsZGVyID0gaW5qZWN0KE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIpO1xuXHRwdWJsaWMgcmVhZG9ubHkgc3NvcyA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9kZWZhdWx0T3B0aW9ucyA9IGluamVjdEJybkRpYWxvZ0RlZmF1bHRPcHRpb25zKCk7XG5cblx0cHJpdmF0ZSBfY29udGV4dCA9IHt9O1xuXHRwdWJsaWMgcmVhZG9ubHkgc3RhdGVDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2RpYWxvZ1JlZigpPy5zdGF0ZSgpID8/ICdjbG9zZWQnKTtcblxuXHRwcml2YXRlIF9jb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dSZWYgPSBzaWduYWw8QnJuRGlhbG9nUmVmIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXHRwcml2YXRlIF9kaWFsb2dTdGF0ZUVmZmVjdFJlZj86IEVmZmVjdFJlZjtcblx0cHJpdmF0ZSByZWFkb25seSBfYmFja2Ryb3BDbGFzcyA9IHNpZ25hbDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihudWxsKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcGFuZWxDbGFzcyA9IHNpZ25hbDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihudWxsKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRwdWJsaWMgcmVhZG9ubHkgY2xvc2VkID0gb3V0cHV0PGFueT4oKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VkID0gb3V0cHV0PEJybkRpYWxvZ1N0YXRlPigpO1xuXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGlucHV0PEJybkRpYWxvZ1N0YXRlIHwgbnVsbD4obnVsbCk7XG5cblx0cHVibGljIHJlYWRvbmx5IHJvbGUgPSBpbnB1dDxCcm5EaWFsb2dPcHRpb25zWydyb2xlJ10+KCdkaWFsb2cnKTtcblx0cHVibGljIHJlYWRvbmx5IG11dGFibGVSb2xlID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMucm9sZSgpKSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3JvbGVTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubXV0YWJsZVJvbGUoKSgpKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgaGFzQmFja2Ryb3AgPSBpbnB1dCh0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9tdXRhYmxlSGFzQmFja2Ryb3AgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5oYXNCYWNrZHJvcCgpKSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfaGFzQmFja2Ryb3BTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX211dGFibGVIYXNCYWNrZHJvcCgpKCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBwb3NpdGlvblN0cmF0ZWd5ID0gaW5wdXQ8QnJuRGlhbG9nT3B0aW9uc1sncG9zaXRpb25TdHJhdGVneSddPigpO1xuXHRwdWJsaWMgcmVhZG9ubHkgbXV0YWJsZVBvc2l0aW9uU3RyYXRlZ3kgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5wb3NpdGlvblN0cmF0ZWd5KCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcG9zaXRpb25TdHJhdGVneVN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tdXRhYmxlUG9zaXRpb25TdHJhdGVneSgpKCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBzY3JvbGxTdHJhdGVneSA9IGlucHV0PEJybkRpYWxvZ09wdGlvbnNbJ3Njcm9sbFN0cmF0ZWd5J10gfCAnY2xvc2UnIHwgJ3JlcG9zaXRpb24nIHwgbnVsbD4obnVsbCk7XG5cdHB1YmxpYyByZWFkb25seSBtdXRhYmxlU2Nyb2xsU3RyYXRlZ3kgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5zY3JvbGxTdHJhdGVneSgpKSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbFN0cmF0ZWd5U3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm11dGFibGVTY3JvbGxTdHJhdGVneSgpKCkpO1xuXG5cdHByb3RlY3RlZCBfb3B0aW9ucyA9IGNvbXB1dGVkPFBhcnRpYWw8QnJuRGlhbG9nT3B0aW9ucz4+KCgpID0+IHtcblx0XHRjb25zdCBzY3JvbGxTdHJhdGVneUlucHV0ID0gdGhpcy5fc2Nyb2xsU3RyYXRlZ3lTdGF0ZSgpO1xuXHRcdGxldCBzY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3kgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKHNjcm9sbFN0cmF0ZWd5SW5wdXQgPT09ICdjbG9zZScpIHtcblx0XHRcdHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zc29zLmNsb3NlKCk7XG5cdFx0fSBlbHNlIGlmIChzY3JvbGxTdHJhdGVneUlucHV0ID09PSAncmVwb3NpdGlvbicpIHtcblx0XHRcdHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5zc29zLnJlcG9zaXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneUlucHV0O1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5ERUZBVUxUX0JSTl9ESUFMT0dfT1BUSU9OUyxcblx0XHRcdHJvbGU6IHRoaXMuX3JvbGVTdGF0ZSgpLFxuXHRcdFx0aGFzQmFja2Ryb3A6IHRoaXMuX2hhc0JhY2tkcm9wU3RhdGUoKSxcblx0XHRcdHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX3Bvc2l0aW9uU3RyYXRlZ3lTdGF0ZSgpLFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3ksXG5cdFx0XHRyZXN0b3JlRm9jdXM6IHRoaXMucmVzdG9yZUZvY3VzKCksXG5cdFx0XHRjbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHM6IHRoaXMuX2Nsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50c1N0YXRlKCksXG5cdFx0XHRjbG9zZU9uQmFja2Ryb3BDbGljazogdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2tTdGF0ZSgpLFxuXHRcdFx0YXR0YWNoVG86IHRoaXMuX2F0dGFjaFRvU3RhdGUoKSxcblx0XHRcdGF0dGFjaFBvc2l0aW9uczogdGhpcy5fYXR0YWNoUG9zaXRpb25zU3RhdGUoKSxcblx0XHRcdGF1dG9Gb2N1czogdGhpcy5hdXRvRm9jdXMoKSxcblx0XHRcdGNsb3NlRGVsYXk6IDEwMCxcblx0XHRcdGRpc2FibGVDbG9zZTogdGhpcy5kaXNhYmxlQ2xvc2UoKSxcblx0XHRcdGJhY2tkcm9wQ2xhc3M6IHRoaXMuX2JhY2tkcm9wQ2xhc3MoKSA/PyAnJyxcblx0XHRcdHBhbmVsQ2xhc3M6IHRoaXMuX3BhbmVsQ2xhc3MoKSA/PyAnJyxcblx0XHRcdGFyaWFEZXNjcmliZWRCeTogdGhpcy5fYXJpYURlc2NyaWJlZEJ5U3RhdGUoKSxcblx0XHRcdGFyaWFMYWJlbGxlZEJ5OiB0aGlzLl9hcmlhTGFiZWxsZWRCeVN0YXRlKCksXG5cdFx0XHRhcmlhTGFiZWw6IHRoaXMuX2FyaWFMYWJlbFN0YXRlKCksXG5cdFx0XHRhcmlhTW9kYWw6IHRoaXMuX2FyaWFNb2RhbFN0YXRlKCksXG5cdFx0fTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZSgpO1xuXHRcdFx0aWYgKHN0YXRlID09PSAnb3BlbicpIHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMub3BlbigpKTtcblx0XHRcdH1cblx0XHRcdGlmIChzdGF0ZSA9PT0gJ2Nsb3NlZCcpIHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMuY2xvc2UodGhpcy5fb3B0aW9ucygpLmNsb3NlRGVsYXkpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyByZWFkb25seSByZXN0b3JlRm9jdXMgPSBpbnB1dDxCcm5EaWFsb2dPcHRpb25zWydyZXN0b3JlRm9jdXMnXT4odHJ1ZSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cyA9IGlucHV0KGZhbHNlLCB7XG5cdFx0dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuXHR9KTtcblx0cHVibGljIHJlYWRvbmx5IG11dGFibGVDbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHMgPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5jbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHMoKSkpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHNTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubXV0YWJsZUNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cygpKCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBjbG9zZU9uQmFja2Ryb3BDbGljayA9IGlucHV0KERFRkFVTFRfQlJOX0RJQUxPR19PUFRJT05TLmNsb3NlT25CYWNrZHJvcENsaWNrLCB7XG5cdFx0dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuXHR9KTtcblx0cHVibGljIHJlYWRvbmx5IG11dGFibGVDbG9zZU9uQmFja2Ryb3BDbGljayA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLmNsb3NlT25CYWNrZHJvcENsaWNrKCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2tTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubXV0YWJsZUNsb3NlT25CYWNrZHJvcENsaWNrKCkoKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGF0dGFjaFRvID0gaW5wdXQ8QnJuRGlhbG9nT3B0aW9uc1snYXR0YWNoVG8nXT4obnVsbCk7XG5cdHB1YmxpYyByZWFkb25seSBtdXRhYmxlQXR0YWNoVG8gPSBjb21wdXRlZCgoKSA9PiBzaWduYWwodGhpcy5hdHRhY2hUbygpKSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2F0dGFjaFRvU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm11dGFibGVBdHRhY2hUbygpKCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBhdHRhY2hQb3NpdGlvbnMgPSBpbnB1dDxCcm5EaWFsb2dPcHRpb25zWydhdHRhY2hQb3NpdGlvbnMnXT4oW10pO1xuXHRwdWJsaWMgcmVhZG9ubHkgbXV0YWJsZUF0dGFjaFBvc2l0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLmF0dGFjaFBvc2l0aW9ucygpKSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2F0dGFjaFBvc2l0aW9uc1N0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tdXRhYmxlQXR0YWNoUG9zaXRpb25zKCkoKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGF1dG9Gb2N1cyA9IGlucHV0PEJybkRpYWxvZ09wdGlvbnNbJ2F1dG9Gb2N1cyddPignZmlyc3QtdGFiYmFibGUnKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgY2xvc2VEZWxheSA9IGlucHV0KDEwMCwgeyBhbGlhczogJ2Nsb3NlRGVsYXknLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZUNsb3NlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdHB1YmxpYyByZWFkb25seSBhcmlhRGVzY3JpYmVkQnkgPSBpbnB1dDxCcm5EaWFsb2dPcHRpb25zWydhcmlhRGVzY3JpYmVkQnknXT4obnVsbCwge1xuXHRcdGFsaWFzOiAnYXJpYS1kZXNjcmliZWRieScsXG5cdH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9tdXRhYmxlQXJpYURlc2NyaWJlZEJ5ID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuYXJpYURlc2NyaWJlZEJ5KCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYXJpYURlc2NyaWJlZEJ5U3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9tdXRhYmxlQXJpYURlc2NyaWJlZEJ5KCkoKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbGxlZEJ5ID0gaW5wdXQ8QnJuRGlhbG9nT3B0aW9uc1snYXJpYUxhYmVsbGVkQnknXT4obnVsbCwgeyBhbGlhczogJ2FyaWEtbGFiZWxsZWRieScgfSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX211dGFibGVBcmlhTGFiZWxsZWRCeSA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLmFyaWFMYWJlbGxlZEJ5KCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYXJpYUxhYmVsbGVkQnlTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX211dGFibGVBcmlhTGFiZWxsZWRCeSgpKCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxCcm5EaWFsb2dPcHRpb25zWydhcmlhTGFiZWwnXT4obnVsbCwgeyBhbGlhczogJ2FyaWEtbGFiZWwnIH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9tdXRhYmxlQXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuYXJpYUxhYmVsKCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYXJpYUxhYmVsU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9tdXRhYmxlQXJpYUxhYmVsKCkoKSk7XG5cblx0cHVibGljIHJlYWRvbmx5IGFyaWFNb2RhbCA9IGlucHV0KHRydWUsIHsgYWxpYXM6ICdhcmlhLW1vZGFsJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9tdXRhYmxlQXJpYU1vZGFsID0gY29tcHV0ZWQoKCkgPT4gc2lnbmFsKHRoaXMuYXJpYU1vZGFsKCkpKTtcblx0cHJpdmF0ZSByZWFkb25seSBfYXJpYU1vZGFsU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9tdXRhYmxlQXJpYU1vZGFsKCkoKSk7XG5cblx0cHVibGljIG9wZW48RGlhbG9nQ29udGV4dD4oKSB7XG5cdFx0aWYgKCF0aGlzLl9jb250ZW50VGVtcGxhdGUgfHwgdGhpcy5fZGlhbG9nUmVmKCkpIHJldHVybjtcblxuXHRcdHRoaXMuX2RpYWxvZ1N0YXRlRWZmZWN0UmVmPy5kZXN0cm95KCk7XG5cblx0XHRjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW48RGlhbG9nQ29udGV4dD4oXG5cdFx0XHR0aGlzLl9jb250ZW50VGVtcGxhdGUsXG5cdFx0XHR0aGlzLl92Y3IsXG5cdFx0XHR0aGlzLl9jb250ZXh0IGFzIERpYWxvZ0NvbnRleHQsXG5cdFx0XHR0aGlzLl9vcHRpb25zKCksXG5cdFx0KTtcblxuXHRcdHRoaXMuX2RpYWxvZ1JlZi5zZXQoZGlhbG9nUmVmKTtcblxuXHRcdHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLl9pbmplY3RvciwgKCkgPT4ge1xuXHRcdFx0dGhpcy5fZGlhbG9nU3RhdGVFZmZlY3RSZWYgPSBlZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRpYWxvZ1JlZi5zdGF0ZSgpO1xuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdChzdGF0ZSkpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRkaWFsb2dSZWYuY2xvc2VkJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG5cdFx0XHR0aGlzLl9kaWFsb2dSZWYuc2V0KHVuZGVmaW5lZCk7XG5cdFx0XHR0aGlzLmNsb3NlZC5lbWl0KHJlc3VsdCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuXHRwdWJsaWMgY2xvc2UocmVzdWx0OiBhbnksIGRlbGF5PzogbnVtYmVyKSB7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LmNsb3NlKHJlc3VsdCwgZGVsYXkgPz8gdGhpcy5fb3B0aW9ucygpLmNsb3NlRGVsYXkpO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7XG5cdFx0dGhpcy5fY29udGVudFRlbXBsYXRlID0gdGVtcGxhdGU7XG5cdH1cblxuXHRwdWJsaWMgc2V0T3ZlcmxheUNsYXNzKG92ZXJsYXlDbGFzczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX2JhY2tkcm9wQ2xhc3Muc2V0KG92ZXJsYXlDbGFzcyk7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldE92ZXJsYXlDbGFzcyhvdmVybGF5Q2xhc3MpO1xuXHR9XG5cblx0cHVibGljIHNldFBhbmVsQ2xhc3MocGFuZWxDbGFzczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRoaXMuX3BhbmVsQ2xhc3Muc2V0KHBhbmVsQ2xhc3MgPz8gJycpO1xuXHRcdHRoaXMuX2RpYWxvZ1JlZigpPy5zZXRQYW5lbENsYXNzKHBhbmVsQ2xhc3MpO1xuXHR9XG5cblx0cHVibGljIHNldENvbnRleHQoY29udGV4dDogdW5rbm93bikge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdFx0dGhpcy5fY29udGV4dCA9IHsgLi4udGhpcy5fY29udGV4dCwgLi4uY29udGV4dCB9O1xuXHR9XG5cblx0cHVibGljIHNldEFyaWFEZXNjcmliZWRCeShhcmlhRGVzY3JpYmVkQnk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcblx0XHR0aGlzLl9tdXRhYmxlQXJpYURlc2NyaWJlZEJ5KCkuc2V0KGFyaWFEZXNjcmliZWRCeSk7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldEFyaWFEZXNjcmliZWRCeShhcmlhRGVzY3JpYmVkQnkpO1xuXHR9XG5cblx0cHVibGljIHNldEFyaWFMYWJlbGxlZEJ5KGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG5cdFx0dGhpcy5fbXV0YWJsZUFyaWFMYWJlbGxlZEJ5KCkuc2V0KGFyaWFMYWJlbGxlZEJ5KTtcblx0XHR0aGlzLl9kaWFsb2dSZWYoKT8uc2V0QXJpYUxhYmVsbGVkQnkoYXJpYUxhYmVsbGVkQnkpO1xuXHR9XG5cblx0cHVibGljIHNldEFyaWFMYWJlbChhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcblx0XHR0aGlzLl9tdXRhYmxlQXJpYUxhYmVsKCkuc2V0KGFyaWFMYWJlbCk7XG5cdFx0dGhpcy5fZGlhbG9nUmVmKCk/LnNldEFyaWFMYWJlbChhcmlhTGFiZWwpO1xuXHR9XG5cblx0cHVibGljIHNldEFyaWFNb2RhbChhcmlhTW9kYWw6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9tdXRhYmxlQXJpYU1vZGFsKCkuc2V0KGFyaWFNb2RhbCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,22 +1,30 @@
1
- import { Directive, ElementRef, Input, inject } from '@angular/core';
1
+ import { Directive, ElementRef, effect, inject, input, untracked } from '@angular/core';
2
2
  import { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';
3
3
  import * as i0 from "@angular/core";
4
4
  export class BrnPopoverTriggerDirective extends BrnDialogTriggerDirective {
5
5
  _host = inject(ElementRef, { host: true });
6
+ brnPopoverTriggerFor = input(undefined, {
7
+ alias: 'brnPopoverTriggerFor',
8
+ });
6
9
  constructor() {
7
10
  super();
8
11
  if (!this._brnDialog)
9
12
  return;
10
- this._brnDialog.attachTo = this._host.nativeElement;
11
- this._brnDialog.closeOnOutsidePointerEvents = true;
12
- }
13
- set brnPopoverTriggerFor(brnDialog) {
14
- brnDialog.attachTo = this._host.nativeElement;
15
- brnDialog.closeOnOutsidePointerEvents = true;
16
- super.brnDialogTriggerFor = brnDialog;
13
+ this._brnDialog.mutableAttachTo().set(this._host.nativeElement);
14
+ this._brnDialog.mutableCloseOnOutsidePointerEvents().set(true);
15
+ effect(() => {
16
+ const brnDialog = this.brnPopoverTriggerFor();
17
+ untracked(() => {
18
+ if (!brnDialog)
19
+ return;
20
+ brnDialog.mutableAttachTo().set(this._host.nativeElement);
21
+ brnDialog.mutableCloseOnOutsidePointerEvents().set(true);
22
+ this.mutableBrnDialogTriggerFor().set(brnDialog);
23
+ });
24
+ });
17
25
  }
18
26
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnPopoverTriggerDirective, isStandalone: true, selector: "button[brnPopoverTrigger],button[brnPopoverTriggerFor]", inputs: { brnPopoverTriggerFor: "brnPopoverTriggerFor" }, host: { attributes: { "aria-haspopup": "dialog" }, properties: { "id": "id()", "attr.aria-expanded": "state() === 'open' ? 'true': 'false'", "attr.data-state": "state()", "attr.aria-controls": "dialogId" } }, usesInheritance: true, ngImport: i0 });
27
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnPopoverTriggerDirective, isStandalone: true, selector: "button[brnPopoverTrigger],button[brnPopoverTriggerFor]", inputs: { brnPopoverTriggerFor: { classPropertyName: "brnPopoverTriggerFor", publicName: "brnPopoverTriggerFor", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-haspopup": "dialog" }, properties: { "id": "id()", "attr.aria-expanded": "state() === 'open' ? 'true': 'false'", "attr.data-state": "state()", "attr.aria-controls": "dialogId" } }, usesInheritance: true, ngImport: i0 });
20
28
  }
21
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnPopoverTriggerDirective, decorators: [{
22
30
  type: Directive,
@@ -31,7 +39,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
31
39
  '[attr.aria-controls]': 'dialogId',
32
40
  },
33
41
  }]
34
- }], ctorParameters: () => [], propDecorators: { brnPopoverTriggerFor: [{
35
- type: Input
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXBvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3BvcG92ZXIvc3JjL2xpYi9icm4tcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWNyRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEseUJBQXlCO0lBQ3ZELEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFNUQ7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQ1csb0JBQW9CLENBQUMsU0FBOEI7UUFDN0QsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUM5QyxTQUFTLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO1FBQzdDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7SUFDdkMsQ0FBQzswSEFmVywwQkFBMEI7OEdBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFYdEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0RBQXdEO29CQUNsRSxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLE1BQU0sRUFBRSxNQUFNO3dCQUNkLGVBQWUsRUFBRSxRQUFRO3dCQUN6QixzQkFBc0IsRUFBRSxzQ0FBc0M7d0JBQzlELG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLHNCQUFzQixFQUFFLFVBQVU7cUJBQ2xDO2lCQUNEO3dEQVlXLG9CQUFvQjtzQkFEOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2RpYWxvZyc7XG5pbXBvcnQgdHlwZSB7IEJyblBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2Jybi1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2J1dHRvblticm5Qb3BvdmVyVHJpZ2dlcl0sYnV0dG9uW2JyblBvcG92ZXJUcmlnZ2VyRm9yXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHQnW2lkXSc6ICdpZCgpJyxcblx0XHQnYXJpYS1oYXNwb3B1cCc6ICdkaWFsb2cnLFxuXHRcdCdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6IFwic3RhdGUoKSA9PT0gJ29wZW4nID8gJ3RydWUnOiAnZmFsc2UnXCIsXG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWNvbnRyb2xzXSc6ICdkaWFsb2dJZCcsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2hvc3QgPSBpbmplY3QoRWxlbWVudFJlZiwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0aWYgKCF0aGlzLl9icm5EaWFsb2cpIHJldHVybjtcblx0XHR0aGlzLl9icm5EaWFsb2cuYXR0YWNoVG8gPSB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5fYnJuRGlhbG9nLmNsb3NlT25PdXRzaWRlUG9pbnRlckV2ZW50cyA9IHRydWU7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRwdWJsaWMgc2V0IGJyblBvcG92ZXJUcmlnZ2VyRm9yKGJybkRpYWxvZzogQnJuUG9wb3ZlckNvbXBvbmVudCkge1xuXHRcdGJybkRpYWxvZy5hdHRhY2hUbyA9IHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudDtcblx0XHRicm5EaWFsb2cuY2xvc2VPbk91dHNpZGVQb2ludGVyRXZlbnRzID0gdHJ1ZTtcblx0XHRzdXBlci5icm5EaWFsb2dUcmlnZ2VyRm9yID0gYnJuRGlhbG9nO1xuXHR9XG59XG4iXX0=
42
+ }], ctorParameters: () => [] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXBvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3BvcG92ZXIvc3JjL2xpYi9icm4tcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBY3JFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx5QkFBeUI7SUFDdkQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU1QyxvQkFBb0IsR0FBRyxLQUFLLENBQWtDLFNBQVMsRUFBRTtRQUN4RixLQUFLLEVBQUUsc0JBQXNCO0tBQzdCLENBQUMsQ0FBQztJQUVIO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsU0FBUztvQkFBRSxPQUFPO2dCQUN2QixTQUFTLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzFELFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzBIQXRCVywwQkFBMEI7OEdBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFYdEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0RBQXdEO29CQUNsRSxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLE1BQU0sRUFBRSxNQUFNO3dCQUNkLGVBQWUsRUFBRSxRQUFRO3dCQUN6QixzQkFBc0IsRUFBRSxzQ0FBc0M7d0JBQzlELG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLHNCQUFzQixFQUFFLFVBQVU7cUJBQ2xDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2RpYWxvZyc7XG5pbXBvcnQgdHlwZSB7IEJyblBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2Jybi1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2J1dHRvblticm5Qb3BvdmVyVHJpZ2dlcl0sYnV0dG9uW2JyblBvcG92ZXJUcmlnZ2VyRm9yXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHQnW2lkXSc6ICdpZCgpJyxcblx0XHQnYXJpYS1oYXNwb3B1cCc6ICdkaWFsb2cnLFxuXHRcdCdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6IFwic3RhdGUoKSA9PT0gJ29wZW4nID8gJ3RydWUnOiAnZmFsc2UnXCIsXG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWNvbnRyb2xzXSc6ICdkaWFsb2dJZCcsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgQnJuRGlhbG9nVHJpZ2dlckRpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2hvc3QgPSBpbmplY3QoRWxlbWVudFJlZiwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdHB1YmxpYyByZWFkb25seSBicm5Qb3BvdmVyVHJpZ2dlckZvciA9IGlucHV0PEJyblBvcG92ZXJDb21wb25lbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuXHRcdGFsaWFzOiAnYnJuUG9wb3ZlclRyaWdnZXJGb3InLFxuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdGlmICghdGhpcy5fYnJuRGlhbG9nKSByZXR1cm47XG5cdFx0dGhpcy5fYnJuRGlhbG9nLm11dGFibGVBdHRhY2hUbygpLnNldCh0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdHRoaXMuX2JybkRpYWxvZy5tdXRhYmxlQ2xvc2VPbk91dHNpZGVQb2ludGVyRXZlbnRzKCkuc2V0KHRydWUpO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGJybkRpYWxvZyA9IHRoaXMuYnJuUG9wb3ZlclRyaWdnZXJGb3IoKTtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdGlmICghYnJuRGlhbG9nKSByZXR1cm47XG5cdFx0XHRcdGJybkRpYWxvZy5tdXRhYmxlQXR0YWNoVG8oKS5zZXQodGhpcy5faG9zdC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0YnJuRGlhbG9nLm11dGFibGVDbG9zZU9uT3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zZXQodHJ1ZSk7XG5cdFx0XHRcdHRoaXMubXV0YWJsZUJybkRpYWxvZ1RyaWdnZXJGb3IoKS5zZXQoYnJuRGlhbG9nKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,51 +1,52 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, effect, forwardRef, numberAttribute, signal, untracked, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, effect, forwardRef, input, numberAttribute, untracked, ViewEncapsulation, } from '@angular/core';
2
2
  import { BrnDialogComponent } from '@spartan-ng/brain/dialog';
3
3
  import * as i0 from "@angular/core";
4
4
  export class BrnPopoverComponent extends BrnDialogComponent {
5
- _sideOffset = signal(0);
6
- set sideOffset(value) {
7
- this._sideOffset.set(value);
8
- }
9
- _align = signal('center');
10
- set align(value) {
11
- this._align.set(value);
12
- }
5
+ align = input('center');
6
+ sideOffset = input(0, { transform: numberAttribute });
13
7
  constructor() {
14
8
  super();
15
- this.hasBackdrop = false;
16
- this.ariaDescribedBy = '';
17
- this.ariaLabelledBy = '';
18
- this.scrollStrategy = this.ssos.reposition();
9
+ this._mutableHasBackdrop().set(false);
10
+ this.setAriaDescribedBy('');
11
+ this.setAriaLabelledBy('');
12
+ this.mutableScrollStrategy().set('reposition');
19
13
  effect(() => {
20
- const align = this._align();
21
- this.attachPositions = [
22
- {
23
- originX: align,
24
- originY: 'bottom',
25
- overlayX: align,
26
- overlayY: 'top',
27
- },
28
- {
29
- originX: align,
30
- originY: 'top',
31
- overlayX: align,
32
- overlayY: 'bottom',
33
- },
34
- ];
35
- this.applySideOffset(untracked(this._sideOffset));
14
+ const align = this.align();
15
+ untracked(() => {
16
+ this.mutableAttachPositions().set([
17
+ {
18
+ originX: align,
19
+ originY: 'bottom',
20
+ overlayX: align,
21
+ overlayY: 'top',
22
+ },
23
+ {
24
+ originX: align,
25
+ originY: 'top',
26
+ overlayX: align,
27
+ overlayY: 'bottom',
28
+ },
29
+ ]);
30
+ });
31
+ untracked(() => {
32
+ this.applySideOffset(this.sideOffset());
33
+ });
36
34
  });
37
35
  effect(() => {
38
- this.applySideOffset(this._sideOffset());
36
+ const sideOffset = this.sideOffset();
37
+ untracked(() => {
38
+ this.applySideOffset(sideOffset);
39
+ });
39
40
  });
40
41
  }
41
42
  applySideOffset(sideOffset) {
42
- this.attachPositions = (this._options.attachPositions ?? []).map((position) => ({
43
+ this.mutableAttachPositions().update((positions) => positions.map((position) => ({
43
44
  ...position,
44
45
  offsetY: position.originY === 'top' ? -sideOffset : sideOffset,
45
- }));
46
+ })));
46
47
  }
47
48
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.5", type: BrnPopoverComponent, isStandalone: true, selector: "brn-popover", inputs: { sideOffset: ["sideOffset", "sideOffset", numberAttribute], align: "align" }, providers: [
49
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnPopoverComponent, isStandalone: true, selector: "brn-popover", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
49
50
  {
50
51
  provide: BrnDialogComponent,
51
52
  useExisting: forwardRef((() => BrnPopoverComponent)),
@@ -72,10 +73,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
72
73
  encapsulation: ViewEncapsulation.None,
73
74
  exportAs: 'brnPopover',
74
75
  }]
75
- }], ctorParameters: () => [], propDecorators: { sideOffset: [{
76
- type: Input,
77
- args: [{ transform: numberAttribute }]
78
- }], align: [{
79
- type: Input
80
- }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9wb3BvdmVyL3NyYy9saWIvYnJuLXBvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFVBQVUsRUFDVixlQUFlLEVBQ2YsTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFtQjlELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDekMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUNXLFVBQVUsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFZ0IsTUFBTSxHQUFHLE1BQU0sQ0FBa0IsUUFBUSxDQUFDLENBQUM7SUFDNUQsSUFDVyxLQUFLLENBQUMsS0FBc0I7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFN0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHO2dCQUN0QjtvQkFDQyxPQUFPLEVBQUUsS0FBSztvQkFDZCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLEtBQUs7aUJBQ2Y7Z0JBQ0Q7b0JBQ0MsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLFFBQVE7aUJBQ2xCO2FBQ0QsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQWtCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0UsR0FBRyxRQUFRO1lBQ1gsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVTtTQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7MEhBakRXLG1CQUFtQjs4R0FBbkIsbUJBQW1CLGtHQUVYLGVBQWUsZ0NBWnhCO1lBQ1Y7Z0JBQ0MsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBQzthQUNsRDtTQUNELDJFQVJTOztFQUVUOzsyRkFXVyxtQkFBbUI7a0JBaEIvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztFQUVUO29CQUNELFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBQzt5QkFDbEQ7cUJBQ0Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsWUFBWTtpQkFDdEI7d0RBSVcsVUFBVTtzQkFEcEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTzFCLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0ZWZmZWN0LFxuXHRmb3J3YXJkUmVmLFxuXHRudW1iZXJBdHRyaWJ1dGUsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJybkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2RpYWxvZyc7XG5cbmV4cG9ydCB0eXBlIEJyblBvcG92ZXJBbGlnbiA9ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXBvcG92ZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250ZW50IC8+XG5cdGAsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJybkRpYWxvZ0NvbXBvbmVudCxcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJyblBvcG92ZXJDb21wb25lbnQpLFxuXHRcdH0sXG5cdF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRleHBvcnRBczogJ2JyblBvcG92ZXInLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Qb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgQnJuRGlhbG9nQ29tcG9uZW50IHtcblx0cHJpdmF0ZSByZWFkb25seSBfc2lkZU9mZnNldCA9IHNpZ25hbCgwKTtcblx0QElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcblx0cHVibGljIHNldCBzaWRlT2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcblx0XHR0aGlzLl9zaWRlT2Zmc2V0LnNldCh2YWx1ZSk7XG5cdH1cblxuXHRwcml2YXRlIHJlYWRvbmx5IF9hbGlnbiA9IHNpZ25hbDxCcm5Qb3BvdmVyQWxpZ24+KCdjZW50ZXInKTtcblx0QElucHV0KClcblx0cHVibGljIHNldCBhbGlnbih2YWx1ZTogQnJuUG9wb3ZlckFsaWduKSB7XG5cdFx0dGhpcy5fYWxpZ24uc2V0KHZhbHVlKTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5oYXNCYWNrZHJvcCA9IGZhbHNlO1xuXHRcdHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gJyc7XG5cdFx0dGhpcy5hcmlhTGFiZWxsZWRCeSA9ICcnO1xuXHRcdHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLnNzb3MucmVwb3NpdGlvbigpO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGFsaWduID0gdGhpcy5fYWxpZ24oKTtcblx0XHRcdHRoaXMuYXR0YWNoUG9zaXRpb25zID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0b3JpZ2luWDogYWxpZ24sXG5cdFx0XHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRcdFx0b3ZlcmxheVg6IGFsaWduLFxuXHRcdFx0XHRcdG92ZXJsYXlZOiAndG9wJyxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9yaWdpblg6IGFsaWduLFxuXHRcdFx0XHRcdG9yaWdpblk6ICd0b3AnLFxuXHRcdFx0XHRcdG92ZXJsYXlYOiBhbGlnbixcblx0XHRcdFx0XHRvdmVybGF5WTogJ2JvdHRvbScsXG5cdFx0XHRcdH0sXG5cdFx0XHRdO1xuXHRcdFx0dGhpcy5hcHBseVNpZGVPZmZzZXQodW50cmFja2VkKHRoaXMuX3NpZGVPZmZzZXQpKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLmFwcGx5U2lkZU9mZnNldCh0aGlzLl9zaWRlT2Zmc2V0KCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBhcHBseVNpZGVPZmZzZXQoc2lkZU9mZnNldDogbnVtYmVyKSB7XG5cdFx0dGhpcy5hdHRhY2hQb3NpdGlvbnMgPSAodGhpcy5fb3B0aW9ucy5hdHRhY2hQb3NpdGlvbnMgPz8gW10pLm1hcCgocG9zaXRpb24pID0+ICh7XG5cdFx0XHQuLi5wb3NpdGlvbixcblx0XHRcdG9mZnNldFk6IHBvc2l0aW9uLm9yaWdpblkgPT09ICd0b3AnID8gLXNpZGVPZmZzZXQgOiBzaWRlT2Zmc2V0LFxuXHRcdH0pKTtcblx0fVxufVxuIl19
76
+ }], ctorParameters: () => [] });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9wb3BvdmVyL3NyYy9saWIvYnJuLXBvcG92ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQW9COUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQUMxQyxLQUFLLEdBQUcsS0FBSyxDQUFrQixRQUFRLENBQUMsQ0FBQztJQUN6QyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRXRFO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDakM7d0JBQ0MsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLFFBQVEsRUFBRSxLQUFLO3dCQUNmLFFBQVEsRUFBRSxLQUFLO3FCQUNmO29CQUNEO3dCQUNDLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE9BQU8sRUFBRSxLQUFLO3dCQUNkLFFBQVEsRUFBRSxLQUFLO3dCQUNmLFFBQVEsRUFBRSxRQUFRO3FCQUNsQjtpQkFDRCxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0I7UUFDekMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDbEQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QixHQUFHLFFBQVE7WUFDWCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVO1NBQzlELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSCxDQUFDOzBIQWhEVyxtQkFBbUI7OEdBQW5CLG1CQUFtQixxVUFWcEI7WUFDVjtnQkFDQyxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixFQUFDO2FBQ2xEO1NBQ0QsMkVBUlM7O0VBRVQ7OzJGQVdXLG1CQUFtQjtrQkFoQi9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFDO3lCQUNsRDtxQkFDRDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRSxZQUFZO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGVmZmVjdCxcblx0Zm9yd2FyZFJlZixcblx0aW5wdXQsXG5cdG51bWJlckF0dHJpYnV0ZSxcblx0dW50cmFja2VkLFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm5EaWFsb2dDb21wb25lbnQgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9kaWFsb2cnO1xuXG5leHBvcnQgdHlwZSBCcm5Qb3BvdmVyQWxpZ24gPSAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLXBvcG92ZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy1jb250ZW50IC8+XG5cdGAsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJybkRpYWxvZ0NvbXBvbmVudCxcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJyblBvcG92ZXJDb21wb25lbnQpLFxuXHRcdH0sXG5cdF0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRleHBvcnRBczogJ2JyblBvcG92ZXInLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Qb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgQnJuRGlhbG9nQ29tcG9uZW50IHtcblx0cHVibGljIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8QnJuUG9wb3ZlckFsaWduPignY2VudGVyJyk7XG5cdHB1YmxpYyByZWFkb25seSBzaWRlT2Zmc2V0ID0gaW5wdXQoMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMuX211dGFibGVIYXNCYWNrZHJvcCgpLnNldChmYWxzZSk7XG5cdFx0dGhpcy5zZXRBcmlhRGVzY3JpYmVkQnkoJycpO1xuXHRcdHRoaXMuc2V0QXJpYUxhYmVsbGVkQnkoJycpO1xuXHRcdHRoaXMubXV0YWJsZVNjcm9sbFN0cmF0ZWd5KCkuc2V0KCdyZXBvc2l0aW9uJyk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgYWxpZ24gPSB0aGlzLmFsaWduKCk7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm11dGFibGVBdHRhY2hQb3NpdGlvbnMoKS5zZXQoW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9yaWdpblg6IGFsaWduLFxuXHRcdFx0XHRcdFx0b3JpZ2luWTogJ2JvdHRvbScsXG5cdFx0XHRcdFx0XHRvdmVybGF5WDogYWxpZ24sXG5cdFx0XHRcdFx0XHRvdmVybGF5WTogJ3RvcCcsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvcmlnaW5YOiBhbGlnbixcblx0XHRcdFx0XHRcdG9yaWdpblk6ICd0b3AnLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVg6IGFsaWduLFxuXHRcdFx0XHRcdFx0b3ZlcmxheVk6ICdib3R0b20nLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSk7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmFwcGx5U2lkZU9mZnNldCh0aGlzLnNpZGVPZmZzZXQoKSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2lkZU9mZnNldCA9IHRoaXMuc2lkZU9mZnNldCgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0dGhpcy5hcHBseVNpZGVPZmZzZXQoc2lkZU9mZnNldCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYXBwbHlTaWRlT2Zmc2V0KHNpZGVPZmZzZXQ6IG51bWJlcikge1xuXHRcdHRoaXMubXV0YWJsZUF0dGFjaFBvc2l0aW9ucygpLnVwZGF0ZSgocG9zaXRpb25zKSA9PlxuXHRcdFx0cG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+ICh7XG5cdFx0XHRcdC4uLnBvc2l0aW9uLFxuXHRcdFx0XHRvZmZzZXRZOiBwb3NpdGlvbi5vcmlnaW5ZID09PSAndG9wJyA/IC1zaWRlT2Zmc2V0IDogc2lkZU9mZnNldCxcblx0XHRcdH0pKSxcblx0XHQpO1xuXHR9XG59XG4iXX0=