@spartan-ng/brain 0.0.1-alpha.605 → 0.0.1-alpha.607
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.
- package/accordion/index.d.ts +5 -0
- package/collapsible/index.d.ts +5 -0
- package/combobox/index.d.ts +15 -10
- package/fesm2022/spartan-ng-brain-accordion.mjs +37 -7
- package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-collapsible.mjs +34 -4
- package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-combobox.mjs +27 -10
- package/fesm2022/spartan-ng-brain-combobox.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-input-otp.mjs +24 -5
- package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
- package/input-otp/index.d.ts +11 -1
- package/package.json +1 -1
package/accordion/index.d.ts
CHANGED
|
@@ -60,6 +60,9 @@ declare class BrnAccordionContent {
|
|
|
60
60
|
private readonly _config;
|
|
61
61
|
private readonly _item;
|
|
62
62
|
private readonly _elementRef;
|
|
63
|
+
private readonly _destroyRef;
|
|
64
|
+
private readonly _ngZone;
|
|
65
|
+
private readonly _platformId;
|
|
63
66
|
protected readonly _width: _angular_core.WritableSignal<number | null>;
|
|
64
67
|
protected readonly _height: _angular_core.WritableSignal<number | null>;
|
|
65
68
|
protected readonly _inert: _angular_core.Signal<true | undefined>;
|
|
@@ -72,6 +75,8 @@ declare class BrnAccordionContent {
|
|
|
72
75
|
*/
|
|
73
76
|
readonly style: _angular_core.InputSignal<string>;
|
|
74
77
|
constructor();
|
|
78
|
+
private _measureAndSetDimensions;
|
|
79
|
+
private _setupVisibilityObserver;
|
|
75
80
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnAccordionContent, never>;
|
|
76
81
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnAccordionContent, "brn-accordion-content,[brnAccordionContent]", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
77
82
|
}
|
package/collapsible/index.d.ts
CHANGED
|
@@ -30,6 +30,9 @@ declare class BrnCollapsible {
|
|
|
30
30
|
declare class BrnCollapsibleContent {
|
|
31
31
|
private readonly _config;
|
|
32
32
|
private readonly _elementRef;
|
|
33
|
+
private readonly _destroyRef;
|
|
34
|
+
private readonly _ngZone;
|
|
35
|
+
private readonly _platformId;
|
|
33
36
|
protected readonly _collapsible: _spartan_ng_brain_collapsible.BrnCollapsible | null;
|
|
34
37
|
protected readonly _width: _angular_core.WritableSignal<number | null>;
|
|
35
38
|
protected readonly _height: _angular_core.WritableSignal<number | null>;
|
|
@@ -38,6 +41,8 @@ declare class BrnCollapsibleContent {
|
|
|
38
41
|
*/
|
|
39
42
|
readonly id: _angular_core.InputSignal<string | null | undefined>;
|
|
40
43
|
constructor();
|
|
44
|
+
private _measureAndSetDimensions;
|
|
45
|
+
private _setupVisibilityObserver;
|
|
41
46
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnCollapsibleContent, never>;
|
|
42
47
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCollapsibleContent, "[brnCollapsibleContent],brn-collapsible-content", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
43
48
|
}
|
package/combobox/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InputSignal, Signal,
|
|
2
|
+
import { InputSignal, Signal, ModelSignal, InjectionToken, Type, ExistingProvider, ValueProvider } from '@angular/core';
|
|
3
3
|
import { Highlightable, ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
4
4
|
import { BooleanInput } from '@angular/cdk/coercion';
|
|
5
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
@@ -36,7 +36,7 @@ interface BrnComboboxBase<T> {
|
|
|
36
36
|
filter: InputSignal<ComboboxFilter<T>>;
|
|
37
37
|
itemToString: InputSignal<ComboboxItemToString<T> | undefined>;
|
|
38
38
|
collator: Signal<Intl.Collator>;
|
|
39
|
-
search:
|
|
39
|
+
search: ModelSignal<string>;
|
|
40
40
|
disabled: Signal<boolean>;
|
|
41
41
|
disabledState: Signal<boolean>;
|
|
42
42
|
keyManager: ActiveDescendantKeyManager<BrnComboboxItem<T>>;
|
|
@@ -107,7 +107,7 @@ declare class BrnCombobox<T> implements BrnComboboxBase<T>, ControlValueAccessor
|
|
|
107
107
|
/** The selected value of the combobox. */
|
|
108
108
|
readonly value: _angular_core.ModelSignal<T | null>;
|
|
109
109
|
/** The current search query. */
|
|
110
|
-
readonly search: _angular_core.
|
|
110
|
+
readonly search: _angular_core.ModelSignal<string>;
|
|
111
111
|
private readonly _searchInputWrapper;
|
|
112
112
|
/** @internal The width of the search input wrapper */
|
|
113
113
|
readonly searchInputWrapperWidth: _angular_core.Signal<number | null>;
|
|
@@ -137,7 +137,7 @@ declare class BrnCombobox<T> implements BrnComboboxBase<T>, ControlValueAccessor
|
|
|
137
137
|
registerOnTouched(fn: TouchFn): void;
|
|
138
138
|
setDisabledState(isDisabled: boolean): void;
|
|
139
139
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnCombobox<any>, never>;
|
|
140
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCombobox<any>, "[brnCombobox]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterOptions": { "alias": "filterOptions"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToString": { "alias": "itemToString"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["_searchInputWrapper", "items"], never, true, never>;
|
|
140
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnCombobox<any>, "[brnCombobox]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterOptions": { "alias": "filterOptions"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToString": { "alias": "itemToString"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "searchChange"; }, ["_searchInputWrapper", "items"], never, true, never>;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
declare class BrnComboboxAnchor {
|
|
@@ -198,8 +198,8 @@ declare class BrnComboboxClear {
|
|
|
198
198
|
|
|
199
199
|
declare class BrnComboboxContent {
|
|
200
200
|
private readonly _combobox;
|
|
201
|
-
/** Determine if the combobox
|
|
202
|
-
protected readonly
|
|
201
|
+
/** Determine if the combobox is empty */
|
|
202
|
+
protected readonly _empty: _angular_core.Signal<boolean>;
|
|
203
203
|
protected readonly _comboboxWidth: _angular_core.Signal<number | null>;
|
|
204
204
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnComboboxContent, never>;
|
|
205
205
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnComboboxContent, "[brnComboboxContent]", never, {}, {}, never, never, true, never>;
|
|
@@ -293,7 +293,7 @@ declare class BrnComboboxMultiple<T> implements BrnComboboxBase<T>, ControlValue
|
|
|
293
293
|
/** The selected values of the combobox. */
|
|
294
294
|
readonly value: _angular_core.ModelSignal<T[] | null>;
|
|
295
295
|
/** The current search query. */
|
|
296
|
-
readonly search: _angular_core.
|
|
296
|
+
readonly search: _angular_core.ModelSignal<string>;
|
|
297
297
|
private readonly _searchInputWrapper;
|
|
298
298
|
readonly searchInputWrapperWidth: _angular_core.Signal<number | null>;
|
|
299
299
|
/** @internal Access all the items within the combobox */
|
|
@@ -322,7 +322,7 @@ declare class BrnComboboxMultiple<T> implements BrnComboboxBase<T>, ControlValue
|
|
|
322
322
|
registerOnTouched(fn: TouchFn): void;
|
|
323
323
|
setDisabledState(isDisabled: boolean): void;
|
|
324
324
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnComboboxMultiple<any>, never>;
|
|
325
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnComboboxMultiple<any>, "[brnCombobox]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterOptions": { "alias": "filterOptions"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToString": { "alias": "itemToString"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["_searchInputWrapper", "items"], never, true, never>;
|
|
325
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnComboboxMultiple<any>, "[brnCombobox]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "filterOptions": { "alias": "filterOptions"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToString": { "alias": "itemToString"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "searchChange"; }, ["_searchInputWrapper", "items"], never, true, never>;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
328
|
declare class BrnComboboxPopoverTrigger<T> {
|
|
@@ -339,6 +339,11 @@ declare class BrnComboboxSeparator {
|
|
|
339
339
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnComboboxSeparator, "[brnComboboxSeparator]", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
+
declare class BrnComboboxStatus {
|
|
343
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BrnComboboxStatus, never>;
|
|
344
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BrnComboboxStatus, "[brnComboboxStatus]", never, {}, {}, never, never, true, never>;
|
|
345
|
+
}
|
|
346
|
+
|
|
342
347
|
declare class BrnComboboxTrigger<T> {
|
|
343
348
|
private readonly _combobox;
|
|
344
349
|
protected readonly _disabled: _angular_core.Signal<boolean>;
|
|
@@ -371,7 +376,7 @@ declare const comboboxEndsWithFilter: BrnComboboxFilter;
|
|
|
371
376
|
declare const BrnComboboxItemToken: InjectionToken<BrnComboboxItem<unknown>>;
|
|
372
377
|
declare function provideBrnComboboxItem<T>(Combobox: Type<BrnComboboxItem<T>>): ExistingProvider;
|
|
373
378
|
|
|
374
|
-
declare const BrnComboboxImports: readonly [typeof BrnCombobox, typeof BrnComboboxAnchor, typeof BrnComboboxChip, typeof BrnComboboxChipInput, typeof BrnComboboxChipRemove, typeof BrnComboboxClear, typeof BrnComboboxContent, typeof BrnComboboxEmpty, typeof BrnComboboxGroup, typeof BrnComboboxInputWrapper, typeof BrnComboboxInput, typeof BrnComboboxItem, typeof BrnComboboxLabel, typeof BrnComboboxList, typeof BrnComboboxMultiple, typeof BrnComboboxPopoverTrigger, typeof BrnComboboxSeparator, typeof BrnComboboxTrigger, typeof BrnComboboxValue, typeof BrnComboboxValues];
|
|
379
|
+
declare const BrnComboboxImports: readonly [typeof BrnCombobox, typeof BrnComboboxAnchor, typeof BrnComboboxChip, typeof BrnComboboxChipInput, typeof BrnComboboxChipRemove, typeof BrnComboboxClear, typeof BrnComboboxContent, typeof BrnComboboxEmpty, typeof BrnComboboxGroup, typeof BrnComboboxInputWrapper, typeof BrnComboboxInput, typeof BrnComboboxItem, typeof BrnComboboxLabel, typeof BrnComboboxList, typeof BrnComboboxMultiple, typeof BrnComboboxPopoverTrigger, typeof BrnComboboxSeparator, typeof BrnComboboxStatus, typeof BrnComboboxTrigger, typeof BrnComboboxValue, typeof BrnComboboxValues];
|
|
375
380
|
|
|
376
|
-
export { BRN_COMBOBOX_MULTIPLE_VALUE_ACCESSOR, BRN_COMBOBOX_VALUE_ACCESSOR, BrnCombobox, BrnComboboxAnchor, BrnComboboxBaseToken, BrnComboboxChip, BrnComboboxChipInput, BrnComboboxChipRemove, BrnComboboxClear, BrnComboboxContent, BrnComboboxEmpty, BrnComboboxGroup, BrnComboboxImports, BrnComboboxInput, BrnComboboxInputWrapper, BrnComboboxItem, BrnComboboxItemToken, BrnComboboxLabel, BrnComboboxList, BrnComboboxMultiple, BrnComboboxPopoverTrigger, BrnComboboxSeparator, BrnComboboxTrigger, BrnComboboxValue, BrnComboboxValues, comboboxContainsFilter, comboboxEndsWithFilter, comboboxStartsWithFilter, injectBrnComboboxBase, injectBrnComboboxConfig, provideBrnComboboxBase, provideBrnComboboxConfig, provideBrnComboboxItem };
|
|
381
|
+
export { BRN_COMBOBOX_MULTIPLE_VALUE_ACCESSOR, BRN_COMBOBOX_VALUE_ACCESSOR, BrnCombobox, BrnComboboxAnchor, BrnComboboxBaseToken, BrnComboboxChip, BrnComboboxChipInput, BrnComboboxChipRemove, BrnComboboxClear, BrnComboboxContent, BrnComboboxEmpty, BrnComboboxGroup, BrnComboboxImports, BrnComboboxInput, BrnComboboxInputWrapper, BrnComboboxItem, BrnComboboxItemToken, BrnComboboxLabel, BrnComboboxList, BrnComboboxMultiple, BrnComboboxPopoverTrigger, BrnComboboxSeparator, BrnComboboxStatus, BrnComboboxTrigger, BrnComboboxValue, BrnComboboxValues, comboboxContainsFilter, comboboxEndsWithFilter, comboboxStartsWithFilter, injectBrnComboboxBase, injectBrnComboboxConfig, provideBrnComboboxBase, provideBrnComboboxConfig, provideBrnComboboxItem };
|
|
377
382
|
export type { BrnComboboxBase, BrnComboboxConfig, BrnComboboxFilter, ComboboxFilter, ComboboxFilterOptions, ComboboxItemEqualToValue, ComboboxItemToString };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { FocusMonitor, FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, ElementRef, isDevMode, Directive, computed, signal, contentChildren, input, afterNextRender, output, effect, untracked } from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, ElementRef, isDevMode, Directive, computed, signal, contentChildren, input, DestroyRef, NgZone, PLATFORM_ID, afterNextRender, output, effect, untracked } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { fromEvent } from 'rxjs';
|
|
6
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
6
7
|
import { measureDimensions } from '@spartan-ng/brain/core';
|
|
7
8
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
8
9
|
|
|
@@ -242,6 +243,9 @@ class BrnAccordionContent {
|
|
|
242
243
|
_config = injectBrnAccordionConfig();
|
|
243
244
|
_item = injectBrnAccordionItem();
|
|
244
245
|
_elementRef = inject(ElementRef);
|
|
246
|
+
_destroyRef = inject(DestroyRef);
|
|
247
|
+
_ngZone = inject(NgZone);
|
|
248
|
+
_platformId = inject(PLATFORM_ID);
|
|
245
249
|
_width = signal(null);
|
|
246
250
|
_height = signal(null);
|
|
247
251
|
_inert = computed(() => (this.state?.() === 'closed' ? true : undefined));
|
|
@@ -258,12 +262,38 @@ class BrnAccordionContent {
|
|
|
258
262
|
throw Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');
|
|
259
263
|
}
|
|
260
264
|
afterNextRender(() => {
|
|
261
|
-
const
|
|
262
|
-
if (!
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
const hasValidDimensions = this._measureAndSetDimensions();
|
|
266
|
+
if (!hasValidDimensions) {
|
|
267
|
+
this._setupVisibilityObserver();
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
_measureAndSetDimensions() {
|
|
272
|
+
const content = this._elementRef.nativeElement.firstChild;
|
|
273
|
+
if (!content)
|
|
274
|
+
return false;
|
|
275
|
+
const { width, height } = measureDimensions(content, this._config.measurementDisplay);
|
|
276
|
+
this._width.set(width);
|
|
277
|
+
this._height.set(height);
|
|
278
|
+
return width > 0 && height > 0;
|
|
279
|
+
}
|
|
280
|
+
_setupVisibilityObserver() {
|
|
281
|
+
if (!isPlatformBrowser(this._platformId))
|
|
282
|
+
return;
|
|
283
|
+
if (typeof IntersectionObserver === 'undefined')
|
|
284
|
+
return;
|
|
285
|
+
this._ngZone.runOutsideAngular(() => {
|
|
286
|
+
const observer = new IntersectionObserver((entries) => {
|
|
287
|
+
if (entries[0].isIntersecting) {
|
|
288
|
+
this._ngZone.run(() => {
|
|
289
|
+
if (this._measureAndSetDimensions()) {
|
|
290
|
+
observer.disconnect();
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}, { root: null, threshold: 0 });
|
|
295
|
+
observer.observe(this._elementRef.nativeElement);
|
|
296
|
+
this._destroyRef.onDestroy(() => observer.disconnect());
|
|
267
297
|
});
|
|
268
298
|
}
|
|
269
299
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-accordion.mjs","sources":["../tmp-esm2022/accordion/lib/brn-accordion-token.js","../tmp-esm2022/accordion/lib/brn-accordion-trigger.js","../tmp-esm2022/accordion/lib/brn-accordion.js","../tmp-esm2022/accordion/lib/brn-accordion-content.js","../tmp-esm2022/accordion/lib/brn-accordion-item.js","../tmp-esm2022/accordion/index.js","../tmp-esm2022/accordion/spartan-ng-brain-accordion.js"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nexport const BrnAccordionToken = new InjectionToken('BrnAccordionToken');\nexport function injectBrnAccordion() {\n return inject(BrnAccordionToken);\n}\nexport function provideBrnAccordion(accordion) {\n return { provide: BrnAccordionToken, useExisting: accordion };\n}\nexport const BrnAccordionItemToken = new InjectionToken('BrnAccordionItemToken');\nexport function injectBrnAccordionItem() {\n return inject(BrnAccordionItemToken);\n}\nexport function provideBrnAccordionItem(item) {\n return { provide: BrnAccordionItemToken, useExisting: item };\n}\nconst defaultConfig = {\n measurementDisplay: 'block',\n};\nconst BrnAccordionConfigToken = new InjectionToken('BrnBrnAccordionConfig');\nexport function provideBrnAccordionConfig(config) {\n return { provide: BrnAccordionConfigToken, useValue: { ...defaultConfig, ...config } };\n}\nexport function injectBrnAccordionConfig() {\n return inject(BrnAccordionConfigToken, { optional: true }) ?? defaultConfig;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vYWNjb3JkaW9uL3NyYy9saWIvYnJuLWFjY29yZGlvbi10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLE1BQU0sRUFBRSxjQUFjLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBSzdHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFlLG1CQUFtQixDQUFDLENBQUM7QUFFdkYsTUFBTSxVQUFVLGtCQUFrQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsU0FBNkI7SUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFtQix1QkFBdUIsQ0FBQyxDQUFDO0FBRW5HLE1BQU0sVUFBVSxzQkFBc0I7SUFDckMsT0FBTyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQTRCO0lBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUFVRCxNQUFNLGFBQWEsR0FBeUI7SUFDM0Msa0JBQWtCLEVBQUUsT0FBTztDQUMzQixDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsdUJBQXVCLENBQUMsQ0FBQztBQUVsRyxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBcUM7SUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDeEYsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0I7SUFDdkMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUM7QUFDN0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRXhpc3RpbmdQcm92aWRlciwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgdHlwZSBUeXBlLCB0eXBlIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTWVhc3VyZW1lbnREaXNwbGF5IH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJybkFjY29yZGlvbiB9IGZyb20gJy4vYnJuLWFjY29yZGlvbic7XG5pbXBvcnQgdHlwZSB7IEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24taXRlbSc7XG5cbmV4cG9ydCBjb25zdCBCcm5BY2NvcmRpb25Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5BY2NvcmRpb24+KCdCcm5BY2NvcmRpb25Ub2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJuQWNjb3JkaW9uKCkge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvblRva2VuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCcm5BY2NvcmRpb24oYWNjb3JkaW9uOiBUeXBlPEJybkFjY29yZGlvbj4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQWNjb3JkaW9uVG9rZW4sIHVzZUV4aXN0aW5nOiBhY2NvcmRpb24gfTtcbn1cblxuZXhwb3J0IGNvbnN0IEJybkFjY29yZGlvbkl0ZW1Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5BY2NvcmRpb25JdGVtPignQnJuQWNjb3JkaW9uSXRlbVRva2VuJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcm5BY2NvcmRpb25JdGVtKCkge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvbkl0ZW1Ub2tlbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuQWNjb3JkaW9uSXRlbShpdGVtOiBUeXBlPEJybkFjY29yZGlvbkl0ZW0+KTogRXhpc3RpbmdQcm92aWRlciB7XG5cdHJldHVybiB7IHByb3ZpZGU6IEJybkFjY29yZGlvbkl0ZW1Ub2tlbiwgdXNlRXhpc3Rpbmc6IGl0ZW0gfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCckJybkFjY29yZGlvbkNvbmZpZyB7XG5cdC8qKlxuXHQgKiBUaGUgZGlzcGxheSBzdHlsZSB0byB1c2Ugd2hlbiBtZWFzdXJpbmcgZWxlbWVudCBkaW1lbnNpb25zLlxuXHQgKiBAZGVmYXVsdCAnYmxvY2snXG5cdCAqL1xuXHRtZWFzdXJlbWVudERpc3BsYXk6IE1lYXN1cmVtZW50RGlzcGxheTtcbn1cblxuY29uc3QgZGVmYXVsdENvbmZpZzogQnJCcm5BY2NvcmRpb25Db25maWcgPSB7XG5cdG1lYXN1cmVtZW50RGlzcGxheTogJ2Jsb2NrJyxcbn07XG5cbmNvbnN0IEJybkFjY29yZGlvbkNvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPEJyQnJuQWNjb3JkaW9uQ29uZmlnPignQnJuQnJuQWNjb3JkaW9uQ29uZmlnJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuQWNjb3JkaW9uQ29uZmlnKGNvbmZpZzogUGFydGlhbDxCckJybkFjY29yZGlvbkNvbmZpZz4pOiBWYWx1ZVByb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQWNjb3JkaW9uQ29uZmlnVG9rZW4sIHVzZVZhbHVlOiB7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcm5BY2NvcmRpb25Db25maWcoKTogQnJCcm5BY2NvcmRpb25Db25maWcge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvbkNvbmZpZ1Rva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IGRlZmF1bHRDb25maWc7XG59XG4iXX0=","import { Directive, ElementRef, inject, isDevMode } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { injectBrnAccordion, injectBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionTrigger {\n _accordion = injectBrnAccordion();\n _item = injectBrnAccordionItem();\n _el = inject((ElementRef));\n state = this._item.state;\n id = `brn-accordion-trigger-${this._item.id}`;\n ariaControls = `brn-accordion-content-${this._item.id}`;\n constructor() {\n if (!this._accordion)\n throw Error('Accordion trigger requires a parent Accordion.');\n if (!this._item)\n throw Error('Accordion trigger requires a parent AccordionItem.');\n this.validateAriaStructure();\n fromEvent(this._el.nativeElement, 'focus')\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this._accordion.setActiveItem(this);\n });\n }\n toggle(event) {\n event.preventDefault();\n this._accordion.toggleItem(this._item.id);\n }\n focus() {\n this._el.nativeElement.focus();\n }\n validateAriaStructure() {\n const element = this._el.nativeElement;\n const isButton = element.tagName === 'BUTTON';\n const hasButtonRole = element.getAttribute('role') === 'button';\n if (!isButton && !hasButtonRole) {\n throw Error(`BrnAccordionTrigger: The trigger element must be a <button> or have role=\"button\". ` +\n `Found: <${element.tagName.toLowerCase()}>`);\n }\n const parent = element.parentElement;\n if (!parent) {\n const message = 'BrnAccordionTrigger: The trigger button must be wrapped in a heading element.';\n if (isDevMode()) {\n throw Error(message);\n }\n else {\n console.warn(message);\n }\n }\n const isNativeHeading = /^H[1-6]$/.test(parent.tagName);\n const hasHeadingRole = parent.getAttribute('role') === 'heading';\n if (!isNativeHeading && !hasHeadingRole) {\n throw Error(`BrnAccordionTrigger: The trigger button must be wrapped in a heading element ` +\n `(h1-h6) or an element with role=\"heading\". Found parent: <${parent.tagName.toLowerCase()}>`);\n }\n if (hasHeadingRole && !parent.hasAttribute('aria-level')) {\n throw Error('BrnAccordionTrigger: Elements with role=\"heading\" must have an aria-level attribute.');\n }\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BrnAccordionTrigger, isStandalone: true, selector: \"[brnAccordionTrigger]\", host: { listeners: { \"click\": \"toggle($event)\", \"keyup.space\": \"toggle($event)\", \"keyup.enter\": \"toggle($event)\" }, properties: { \"attr.data-state\": \"state()\", \"attr.aria-expanded\": \"state() === \\\"open\\\"\", \"attr.aria-controls\": \"ariaControls\", \"id\": \"id\", \"attr.role\": \"\\\"button\\\"\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionTrigger, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordionTrigger]',\n host: {\n '[attr.data-state]': 'state()',\n '[attr.aria-expanded]': 'state() === \"open\"',\n '[attr.aria-controls]': 'ariaControls',\n '[id]': 'id',\n '[attr.role]': '\"button\"',\n '(click)': 'toggle($event)',\n '(keyup.space)': 'toggle($event)',\n '(keyup.enter)': 'toggle($event)',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLXRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQWVuRixNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsVUFBVSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDbEMsS0FBSyxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDakMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXZDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6QixFQUFFLEdBQUcseUJBQXlCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDOUMsWUFBWSxHQUFHLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hFO1FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7YUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUFZO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLO1FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHFCQUFxQjtRQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUV2QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUVoRSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLENBQ1YscUZBQXFGO2dCQUNwRixXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLE1BQU0sT0FBTyxHQUFHLCtFQUErRSxDQUFDO1lBQ2hHLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUVqRSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekMsTUFBTSxLQUFLLENBQ1YsK0VBQStFO2dCQUM5RSw2REFBNkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUM3RixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sS0FBSyxDQUFDLHNGQUFzRixDQUFDLENBQUM7UUFDckcsQ0FBQztJQUNGLENBQUM7MEhBakVXLG1CQUFtQjs4R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQWIvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLElBQUksRUFBRTt3QkFDTCxtQkFBbUIsRUFBRSxTQUFTO3dCQUM5QixzQkFBc0IsRUFBRSxvQkFBb0I7d0JBQzVDLHNCQUFzQixFQUFFLGNBQWM7d0JBQ3RDLE1BQU0sRUFBRSxJQUFJO3dCQUNaLGFBQWEsRUFBRSxVQUFVO3dCQUN6QixTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyxlQUFlLEVBQUUsZ0JBQWdCO3FCQUNqQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RCcm5BY2NvcmRpb24sIGluamVjdEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uVHJpZ2dlcl0nLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdzdGF0ZSgpID09PSBcIm9wZW5cIicsXG5cdFx0J1thdHRyLmFyaWEtY29udHJvbHNdJzogJ2FyaWFDb250cm9scycsXG5cdFx0J1tpZF0nOiAnaWQnLFxuXHRcdCdbYXR0ci5yb2xlXSc6ICdcImJ1dHRvblwiJyxcblx0XHQnKGNsaWNrKSc6ICd0b2dnbGUoJGV2ZW50KScsXG5cdFx0JyhrZXl1cC5zcGFjZSknOiAndG9nZ2xlKCRldmVudCknLFxuXHRcdCcoa2V5dXAuZW50ZXIpJzogJ3RvZ2dsZSgkZXZlbnQpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQWNjb3JkaW9uVHJpZ2dlciBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2FjY29yZGlvbiA9IGluamVjdEJybkFjY29yZGlvbigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9pdGVtID0gaW5qZWN0QnJuQWNjb3JkaW9uSXRlbSgpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5faXRlbS5zdGF0ZTtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gYGJybi1hY2NvcmRpb24tdHJpZ2dlci0ke3RoaXMuX2l0ZW0uaWR9YDtcblx0cHVibGljIHJlYWRvbmx5IGFyaWFDb250cm9scyA9IGBicm4tYWNjb3JkaW9uLWNvbnRlbnQtJHt0aGlzLl9pdGVtLmlkfWA7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmICghdGhpcy5fYWNjb3JkaW9uKSB0aHJvdyBFcnJvcignQWNjb3JkaW9uIHRyaWdnZXIgcmVxdWlyZXMgYSBwYXJlbnQgQWNjb3JkaW9uLicpO1xuXHRcdGlmICghdGhpcy5faXRlbSkgdGhyb3cgRXJyb3IoJ0FjY29yZGlvbiB0cmlnZ2VyIHJlcXVpcmVzIGEgcGFyZW50IEFjY29yZGlvbkl0ZW0uJyk7XG5cdFx0dGhpcy52YWxpZGF0ZUFyaWFTdHJ1Y3R1cmUoKTtcblxuXHRcdGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnZm9jdXMnKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fYWNjb3JkaW9uLnNldEFjdGl2ZUl0ZW0odGhpcyk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCB0b2dnbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR0aGlzLl9hY2NvcmRpb24udG9nZ2xlSXRlbSh0aGlzLl9pdGVtLmlkKTtcblx0fVxuXG5cdHB1YmxpYyBmb2N1cygpIHtcblx0XHR0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdH1cblxuXHRwcml2YXRlIHZhbGlkYXRlQXJpYVN0cnVjdHVyZSgpOiB2b2lkIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcblxuXHRcdGNvbnN0IGlzQnV0dG9uID0gZWxlbWVudC50YWdOYW1lID09PSAnQlVUVE9OJztcblx0XHRjb25zdCBoYXNCdXR0b25Sb2xlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ2J1dHRvbic7XG5cblx0XHRpZiAoIWlzQnV0dG9uICYmICFoYXNCdXR0b25Sb2xlKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0YEJybkFjY29yZGlvblRyaWdnZXI6IFRoZSB0cmlnZ2VyIGVsZW1lbnQgbXVzdCBiZSBhIDxidXR0b24+IG9yIGhhdmUgcm9sZT1cImJ1dHRvblwiLiBgICtcblx0XHRcdFx0XHRgRm91bmQ6IDwke2VsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfT5gLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cdFx0aWYgKCFwYXJlbnQpIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSAnQnJuQWNjb3JkaW9uVHJpZ2dlcjogVGhlIHRyaWdnZXIgYnV0dG9uIG11c3QgYmUgd3JhcHBlZCBpbiBhIGhlYWRpbmcgZWxlbWVudC4nO1xuXHRcdFx0aWYgKGlzRGV2TW9kZSgpKSB7XG5cdFx0XHRcdHRocm93IEVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKG1lc3NhZ2UpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGlzTmF0aXZlSGVhZGluZyA9IC9eSFsxLTZdJC8udGVzdChwYXJlbnQudGFnTmFtZSk7XG5cdFx0Y29uc3QgaGFzSGVhZGluZ1JvbGUgPSBwYXJlbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICdoZWFkaW5nJztcblxuXHRcdGlmICghaXNOYXRpdmVIZWFkaW5nICYmICFoYXNIZWFkaW5nUm9sZSkge1xuXHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdGBCcm5BY2NvcmRpb25UcmlnZ2VyOiBUaGUgdHJpZ2dlciBidXR0b24gbXVzdCBiZSB3cmFwcGVkIGluIGEgaGVhZGluZyBlbGVtZW50IGAgK1xuXHRcdFx0XHRcdGAoaDEtaDYpIG9yIGFuIGVsZW1lbnQgd2l0aCByb2xlPVwiaGVhZGluZ1wiLiBGb3VuZCBwYXJlbnQ6IDwke3BhcmVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCl9PmAsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdGlmIChoYXNIZWFkaW5nUm9sZSAmJiAhcGFyZW50Lmhhc0F0dHJpYnV0ZSgnYXJpYS1sZXZlbCcpKSB7XG5cdFx0XHR0aHJvdyBFcnJvcignQnJuQWNjb3JkaW9uVHJpZ2dlcjogRWxlbWVudHMgd2l0aCByb2xlPVwiaGVhZGluZ1wiIG11c3QgaGF2ZSBhbiBhcmlhLWxldmVsIGF0dHJpYnV0ZS4nKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, contentChildren, Directive, ElementRef, inject, input, signal, } from '@angular/core';\nimport { provideBrnAccordion } from './brn-accordion-token';\nimport { BrnAccordionTrigger } from './brn-accordion-trigger';\nimport * as i0 from \"@angular/core\";\nconst HORIZONTAL_KEYS_TO_PREVENT_DEFAULT = [\n 'ArrowLeft',\n 'ArrowRight',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n ' ',\n 'Enter',\n];\nconst VERTICAL_KEYS_TO_PREVENT_DEFAULT = [\n 'ArrowUp',\n 'ArrowDown',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n ' ',\n 'Enter',\n];\nexport class BrnAccordion {\n _el = inject((ElementRef));\n _focusMonitor = inject(FocusMonitor);\n _keyManager = computed(() => new FocusKeyManager(this.triggers())\n .withHomeAndEnd()\n .withPageUpDown()\n .withWrap()\n .withHorizontalOrientation(this.orientation() === 'vertical' ? null : (this.dir() ?? 'ltr'))\n .withVerticalOrientation(this.orientation() === 'vertical'));\n _focused = signal(false);\n _openItemIds = signal([]);\n openItemIds = this._openItemIds.asReadonly();\n state = computed(() => (this._openItemIds().length > 0 ? 'open' : 'closed'));\n triggers = contentChildren(BrnAccordionTrigger, { descendants: true });\n /**\n * Whether the accordion is in single or multiple mode.\n * @default 'single'\n */\n type = input('single');\n /**\n * The direction of the accordion, either 'ltr' (left-to-right) or 'rtl' (right-to-left).\n * @default null\n */\n dir = input(null);\n /**\n * The orientation of the accordion, either 'horizontal' or 'vertical'.\n * @default 'vertical'\n */\n orientation = input('vertical');\n ngAfterContentInit() {\n this._el.nativeElement.addEventListener('keydown', (event) => {\n if (this.shouldIgnoreEvent(event))\n return;\n this._keyManager()?.onKeydown(event);\n this.preventDefaultEvents(event);\n });\n this._focusMonitor.monitor(this._el, true).subscribe((origin) => this._focused.set(origin !== null));\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._el);\n }\n setActiveItem(item) {\n this._keyManager()?.setActiveItem(item);\n }\n toggleItem(id) {\n if (this._openItemIds().includes(id)) {\n this.closeItem(id);\n return;\n }\n this.openItem(id);\n }\n openItem(id) {\n if (this.type() === 'single') {\n this._openItemIds.set([id]);\n return;\n }\n this._openItemIds.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n }\n closeItem(id) {\n this._openItemIds.update((ids) => ids.filter((openId) => openId !== id));\n }\n isEditableTarget(el) {\n const node = el;\n if (!node)\n return false;\n const tag = node.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT')\n return true;\n if (node.isContentEditable)\n return true;\n const role = node.getAttribute?.('role') ?? '';\n if (/^(textbox|searchbox|combobox|listbox|grid|tree|menu|spinbutton|slider)$/.test(role))\n return true;\n const editableAncestor = node.closest?.('input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"], ' +\n '[role=\"textbox\"], [role=\"searchbox\"], [role=\"combobox\"], [role=\"listbox\"], ' +\n '[role=\"grid\"], [role=\"tree\"], [role=\"menu\"], [role=\"spinbutton\"], [role=\"slider\"]');\n return !!editableAncestor;\n }\n shouldIgnoreEvent(e) {\n if (e.defaultPrevented)\n return true; // another handler already acted\n if (e.ctrlKey || e.metaKey || e.altKey)\n return true; // let shortcuts through\n return this.isEditableTarget(e.target); // don't steal from editable/ARIA widgets\n }\n preventDefaultEvents(event) {\n if (event.defaultPrevented)\n return;\n if (!this._focused())\n return;\n if (!('key' in event))\n return;\n const keys = this.orientation() === 'horizontal' ? HORIZONTAL_KEYS_TO_PREVENT_DEFAULT : VERTICAL_KEYS_TO_PREVENT_DEFAULT;\n if (keys.includes(event.key) && event.code !== 'NumpadEnter') {\n event.preventDefault();\n }\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnAccordion, isStandalone: true, selector: \"[brnAccordion]\", inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: \"dir\", publicName: \"dir\", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"attr.data-state\": \"state()\", \"attr.data-orientation\": \"orientation()\" } }, providers: [provideBrnAccordion(BrnAccordion)], queries: [{ propertyName: \"triggers\", predicate: BrnAccordionTrigger, descendants: true, isSignal: true }], exportAs: [\"brnAccordion\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordion, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordion]',\n exportAs: 'brnAccordion',\n providers: [provideBrnAccordion(BrnAccordion)],\n host: {\n '[attr.data-state]': 'state()',\n '[attr.data-orientation]': 'orientation()',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vYWNjb3JkaW9uL3NyYy9saWIvYnJuLWFjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFFTixRQUFRLEVBQ1IsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELE1BQU0sa0NBQWtDLEdBQUc7SUFDMUMsV0FBVztJQUNYLFlBQVk7SUFDWixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixLQUFLO0lBQ0wsR0FBRztJQUNILE9BQU87Q0FDRSxDQUFDO0FBRVgsTUFBTSxnQ0FBZ0MsR0FBRztJQUN4QyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixRQUFRO0lBQ1IsTUFBTTtJQUNOLEtBQUs7SUFDTCxHQUFHO0lBQ0gsT0FBTztDQUNFLENBQUM7QUFXWCxNQUFNLE9BQU8sWUFBWTtJQUNQLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUN0QyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzVDLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkQsY0FBYyxFQUFFO1NBQ2hCLGNBQWMsRUFBRTtTQUNoQixRQUFRLEVBQUU7U0FDVix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FB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d0JBQXdCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUNsRixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBb0I7UUFDaEQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFOUIsTUFBTSxJQUFJLEdBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNGLENBQUM7MEhBNUdXLFlBQVk7OEdBQVosWUFBWSw0aEJBTmIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxtREF1QkgsbUJBQW1COzsyRkFqQmxELFlBQVk7a0JBVHhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixjQUFjLENBQUM7b0JBQzlDLElBQUksRUFBRTt3QkFDTCxtQkFBbUIsRUFBRSxTQUFTO3dCQUM5Qix5QkFBeUIsRUFBRSxlQUFlO3FCQUMxQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcblx0dHlwZSBBZnRlckNvbnRlbnRJbml0LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHR5cGUgT25EZXN0cm95LFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkFjY29yZGlvbiB9IGZyb20gJy4vYnJuLWFjY29yZGlvbi10b2tlbic7XG5pbXBvcnQgeyBCcm5BY2NvcmRpb25UcmlnZ2VyIH0gZnJvbSAnLi9icm4tYWNjb3JkaW9uLXRyaWdnZXInO1xuXG5jb25zdCBIT1JJWk9OVEFMX0tFWVNfVE9fUFJFVkVOVF9ERUZBVUxUID0gW1xuXHQnQXJyb3dMZWZ0Jyxcblx0J0Fycm93UmlnaHQnLFxuXHQnUGFnZURvd24nLFxuXHQnUGFnZVVwJyxcblx0J0hvbWUnLFxuXHQnRW5kJyxcblx0JyAnLFxuXHQnRW50ZXInLFxuXSBhcyBjb25zdDtcblxuY29uc3QgVkVSVElDQUxfS0VZU19UT19QUkVWRU5UX0RFRkFVTFQgPSBbXG5cdCdBcnJvd1VwJyxcblx0J0Fycm93RG93bicsXG5cdCdQYWdlRG93bicsXG5cdCdQYWdlVXAnLFxuXHQnSG9tZScsXG5cdCdFbmQnLFxuXHQnICcsXG5cdCdFbnRlcicsXG5dIGFzIGNvbnN0O1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uXScsXG5cdGV4cG9ydEFzOiAnYnJuQWNjb3JkaW9uJyxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZUJybkFjY29yZGlvbihCcm5BY2NvcmRpb24pXSxcblx0aG9zdDoge1xuXHRcdCdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24oKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkFjY29yZGlvbiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblx0cHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2tleU1hbmFnZXIgPSBjb21wdXRlZCgoKSA9PlxuXHRcdG5ldyBGb2N1c0tleU1hbmFnZXI8QnJuQWNjb3JkaW9uVHJpZ2dlcj4odGhpcy50cmlnZ2VycygpKVxuXHRcdFx0LndpdGhIb21lQW5kRW5kKClcblx0XHRcdC53aXRoUGFnZVVwRG93bigpXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5vcmllbnRhdGlvbigpID09PSAndmVydGljYWwnID8gbnVsbCA6ICh0aGlzLmRpcigpID8/ICdsdHInKSlcblx0XHRcdC53aXRoVmVydGljYWxPcmllbnRhdGlvbih0aGlzLm9yaWVudGF0aW9uKCkgPT09ICd2ZXJ0aWNhbCcpLFxuXHQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9vcGVuSXRlbUlkcyA9IHNpZ25hbDxudW1iZXJbXT4oW10pO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3Blbkl0ZW1JZHMgPSB0aGlzLl9vcGVuSXRlbUlkcy5hc1JlYWRvbmx5KCk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLl9vcGVuSXRlbUlkcygpLmxlbmd0aCA+IDAgPyAnb3BlbicgOiAnY2xvc2VkJykpO1xuXG5cdHB1YmxpYyByZWFkb25seSB0cmlnZ2VycyA9IGNvbnRlbnRDaGlsZHJlbihCcm5BY2NvcmRpb25UcmlnZ2VyLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gaXMgaW4gc2luZ2xlIG9yIG11bHRpcGxlIG1vZGUuXG5cdCAqIEBkZWZhdWx0ICdzaW5nbGUnXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdHlwZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ3NpbmdsZScpO1xuXHQvKipcblx0ICogVGhlIGRpcmVjdGlvbiBvZiB0aGUgYWNjb3JkaW9uLCBlaXRoZXIgJ2x0cicgKGxlZnQtdG8tcmlnaHQpIG9yICdydGwnIChyaWdodC10by1sZWZ0KS5cblx0ICogQGRlZmF1bHQgbnVsbFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpciA9IGlucHV0PCdsdHInIHwgJ3J0bCcgfCBudWxsPihudWxsKTtcblx0LyoqXG5cdCAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgYWNjb3JkaW9uLCBlaXRoZXIgJ2hvcml6b250YWwnIG9yICd2ZXJ0aWNhbCcuXG5cdCAqIEBkZWZhdWx0ICd2ZXJ0aWNhbCdcblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBvcmllbnRhdGlvbiA9IGlucHV0PCdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc+KCd2ZXJ0aWNhbCcpO1xuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0dGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5zaG91bGRJZ25vcmVFdmVudChldmVudCkpIHJldHVybjtcblx0XHRcdHRoaXMuX2tleU1hbmFnZXIoKT8ub25LZXlkb3duKGV2ZW50KTtcblx0XHRcdHRoaXMucHJldmVudERlZmF1bHRFdmVudHMoZXZlbnQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4gdGhpcy5fZm9jdXNlZC5zZXQob3JpZ2luICE9PSBudWxsKSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWwpO1xuXHR9XG5cblx0cHVibGljIHNldEFjdGl2ZUl0ZW0oaXRlbTogQnJuQWNjb3JkaW9uVHJpZ2dlcikge1xuXHRcdHRoaXMuX2tleU1hbmFnZXIoKT8uc2V0QWN0aXZlSXRlbShpdGVtKTtcblx0fVxuXG5cdHB1YmxpYyB0b2dnbGVJdGVtKGlkOiBudW1iZXIpIHtcblx0XHRpZiAodGhpcy5fb3Blbkl0ZW1JZHMoKS5pbmNsdWRlcyhpZCkpIHtcblx0XHRcdHRoaXMuY2xvc2VJdGVtKGlkKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5vcGVuSXRlbShpZCk7XG5cdH1cblxuXHRwdWJsaWMgb3Blbkl0ZW0oaWQ6IG51bWJlcikge1xuXHRcdGlmICh0aGlzLnR5cGUoKSA9PT0gJ3NpbmdsZScpIHtcblx0XHRcdHRoaXMuX29wZW5JdGVtSWRzLnNldChbaWRdKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5fb3Blbkl0ZW1JZHMudXBkYXRlKChpZHMpID0+IChpZHMuaW5jbHVkZXMoaWQpID8gaWRzIDogWy4uLmlkcywgaWRdKSk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VJdGVtKGlkOiBudW1iZXIpIHtcblx0XHR0aGlzLl9vcGVuSXRlbUlkcy51cGRhdGUoKGlkcykgPT4gaWRzLmZpbHRlcigob3BlbklkKSA9PiBvcGVuSWQgIT09IGlkKSk7XG5cdH1cblxuXHRwcml2YXRlIGlzRWRpdGFibGVUYXJnZXQoZWw6IEV2ZW50VGFyZ2V0IHwgbnVsbCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IG5vZGUgPSBlbCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cdFx0aWYgKCFub2RlKSByZXR1cm4gZmFsc2U7XG5cblx0XHRjb25zdCB0YWcgPSBub2RlLnRhZ05hbWU7XG5cdFx0aWYgKHRhZyA9PT0gJ0lOUFVUJyB8fCB0YWcgPT09ICdURVhUQVJFQScgfHwgdGFnID09PSAnU0VMRUNUJykgcmV0dXJuIHRydWU7XG5cdFx0aWYgKG5vZGUuaXNDb250ZW50RWRpdGFibGUpIHJldHVybiB0cnVlO1xuXG5cdFx0Y29uc3Qgcm9sZSA9IG5vZGUuZ2V0QXR0cmlidXRlPy4oJ3JvbGUnKSA/PyAnJztcblx0XHRpZiAoL14odGV4dGJveHxzZWFyY2hib3h8Y29tYm9ib3h8bGlzdGJveHxncmlkfHRyZWV8bWVudXxzcGluYnV0dG9ufHNsaWRlcikkLy50ZXN0KHJvbGUpKSByZXR1cm4gdHJ1ZTtcblxuXHRcdGNvbnN0IGVkaXRhYmxlQW5jZXN0b3IgPSBub2RlLmNsb3Nlc3Q/Lihcblx0XHRcdCdpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgW2NvbnRlbnRlZGl0YWJsZT1cIlwiXSwgW2NvbnRlbnRlZGl0YWJsZT1cInRydWVcIl0sICcgK1xuXHRcdFx0XHQnW3JvbGU9XCJ0ZXh0Ym94XCJdLCBbcm9sZT1cInNlYXJjaGJveFwiXSwgW3JvbGU9XCJjb21ib2JveFwiXSwgW3JvbGU9XCJsaXN0Ym94XCJdLCAnICtcblx0XHRcdFx0J1tyb2xlPVwiZ3JpZFwiXSwgW3JvbGU9XCJ0cmVlXCJdLCBbcm9sZT1cIm1lbnVcIl0sIFtyb2xlPVwic3BpbmJ1dHRvblwiXSwgW3JvbGU9XCJzbGlkZXJcIl0nLFxuXHRcdCk7XG5cdFx0cmV0dXJuICEhZWRpdGFibGVBbmNlc3Rvcjtcblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkSWdub3JlRXZlbnQoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuXHRcdGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybiB0cnVlOyAvLyBhbm90aGVyIGhhbmRsZXIgYWxyZWFkeSBhY3RlZFxuXHRcdGlmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5IHx8IGUuYWx0S2V5KSByZXR1cm4gdHJ1ZTsgLy8gbGV0IHNob3J0Y3V0cyB0aHJvdWdoXG5cdFx0cmV0dXJuIHRoaXMuaXNFZGl0YWJsZVRhcmdldChlLnRhcmdldCk7IC8vIGRvbid0IHN0ZWFsIGZyb20gZWRpdGFibGUvQVJJQSB3aWRnZXRzXG5cdH1cblxuXHRwcml2YXRlIHByZXZlbnREZWZhdWx0RXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcblx0XHRpZiAoIXRoaXMuX2ZvY3VzZWQoKSkgcmV0dXJuO1xuXHRcdGlmICghKCdrZXknIGluIGV2ZW50KSkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qga2V5czogcmVhZG9ubHkgc3RyaW5nW10gPVxuXHRcdFx0dGhpcy5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcgPyBIT1JJWk9OVEFMX0tFWVNfVE9fUFJFVkVOVF9ERUZBVUxUIDogVkVSVElDQUxfS0VZU19UT19QUkVWRU5UX0RFRkFVTFQ7XG5cblx0XHRpZiAoa2V5cy5pbmNsdWRlcyhldmVudC5rZXkpICYmIGV2ZW50LmNvZGUgIT09ICdOdW1wYWRFbnRlcicpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=","import { Directive, ElementRef, afterNextRender, computed, inject, input, signal } from '@angular/core';\nimport { measureDimensions } from '@spartan-ng/brain/core';\nimport { injectBrnAccordionConfig, injectBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionContent {\n _config = injectBrnAccordionConfig();\n _item = injectBrnAccordionItem();\n _elementRef = inject(ElementRef);\n _width = signal(null);\n _height = signal(null);\n _inert = computed(() => (this.state?.() === 'closed' ? true : undefined));\n state = this._item?.state;\n id = `brn-accordion-content-${this._item?.id}`;\n ariaLabeledBy = `brn-accordion-trigger-${this._item?.id}`;\n /**\n * The style to be applied to the host element after the dimensions are calculated.\n * @default 'overflow: hidden'\n */\n style = input('overflow: hidden');\n constructor() {\n if (!this._item) {\n throw Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n }\n afterNextRender(() => {\n const content = this._elementRef.nativeElement.firstChild;\n if (!content)\n return;\n const { width, height } = measureDimensions(content, this._config.measurementDisplay);\n this._width.set(width);\n this._height.set(height);\n });\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnAccordionContent, isStandalone: true, selector: \"brn-accordion-content,[brnAccordionContent]\", inputs: { style: { classPropertyName: \"style\", publicName: \"style\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"region\" }, properties: { \"attr.data-state\": \"state?.()\", \"attr.aria-labelledby\": \"ariaLabeledBy\", \"id\": \"id\", \"style.--brn-accordion-content-width.px\": \"_width()\", \"style.--brn-accordion-content-height.px\": \"_height()\", \"attr.inert\": \"_inert()\", \"attr.style\": \"style()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionContent, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-accordion-content,[brnAccordionContent]',\n host: {\n '[attr.data-state]': 'state?.()',\n '[attr.aria-labelledby]': 'ariaLabeledBy',\n role: 'region',\n '[id]': 'id',\n '[style.--brn-accordion-content-width.px]': '_width()',\n '[style.--brn-accordion-content-height.px]': '_height()',\n '[attr.inert]': '_inert()',\n '[attr.style]': 'style()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFlekYsTUFBTSxPQUFPLG1CQUFtQjtJQUNkLE9BQU8sR0FBRyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2pDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFL0IsTUFBTSxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDckMsT0FBTyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTdFLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUMxQixFQUFFLEdBQUcseUJBQXlCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDL0MsYUFBYSxHQUFHLHlCQUF5QixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFFOzs7T0FHRztJQUNhLEtBQUssR0FBRyxLQUFLLENBQVMsa0JBQWtCLENBQUMsQ0FBQztJQUUxRDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsTUFBTSxLQUFLLENBQUMsNkZBQTZGLENBQUMsQ0FBQztRQUM1RyxDQUFDO1FBQ0QsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFnQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFFckIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzswSEE5QlcsbUJBQW1COzhHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBYi9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDZDQUE2QztvQkFDdkQsSUFBSSxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFdBQVc7d0JBQ2hDLHdCQUF3QixFQUFFLGVBQWU7d0JBQ3pDLElBQUksRUFBRSxRQUFRO3dCQUNkLE1BQU0sRUFBRSxJQUFJO3dCQUNaLDBDQUEwQyxFQUFFLFVBQVU7d0JBQ3RELDJDQUEyQyxFQUFFLFdBQVc7d0JBQ3hELGNBQWMsRUFBRSxVQUFVO3dCQUMxQixjQUFjLEVBQUUsU0FBUztxQkFDekI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGFmdGVyTmV4dFJlbmRlciwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVhc3VyZURpbWVuc2lvbnMgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9jb3JlJztcbmltcG9ydCB7IGluamVjdEJybkFjY29yZGlvbkNvbmZpZywgaW5qZWN0QnJuQWNjb3JkaW9uSXRlbSB9IGZyb20gJy4vYnJuLWFjY29yZGlvbi10b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2Jybi1hY2NvcmRpb24tY29udGVudCxbYnJuQWNjb3JkaW9uQ29udGVudF0nLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlPy4oKScsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnYXJpYUxhYmVsZWRCeScsXG5cdFx0cm9sZTogJ3JlZ2lvbicsXG5cdFx0J1tpZF0nOiAnaWQnLFxuXHRcdCdbc3R5bGUuLS1icm4tYWNjb3JkaW9uLWNvbnRlbnQtd2lkdGgucHhdJzogJ193aWR0aCgpJyxcblx0XHQnW3N0eWxlLi0tYnJuLWFjY29yZGlvbi1jb250ZW50LWhlaWdodC5weF0nOiAnX2hlaWdodCgpJyxcblx0XHQnW2F0dHIuaW5lcnRdJzogJ19pbmVydCgpJyxcblx0XHQnW2F0dHIuc3R5bGVdJzogJ3N0eWxlKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5BY2NvcmRpb25Db250ZW50IHtcblx0cHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gaW5qZWN0QnJuQWNjb3JkaW9uQ29uZmlnKCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2l0ZW0gPSBpbmplY3RCcm5BY2NvcmRpb25JdGVtKCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF93aWR0aCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9oZWlnaHQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfaW5lcnQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zdGF0ZT8uKCkgPT09ICdjbG9zZWQnID8gdHJ1ZSA6IHVuZGVmaW5lZCkpO1xuXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IHRoaXMuX2l0ZW0/LnN0YXRlO1xuXHRwdWJsaWMgcmVhZG9ubHkgaWQgPSBgYnJuLWFjY29yZGlvbi1jb250ZW50LSR7dGhpcy5faXRlbT8uaWR9YDtcblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbGVkQnkgPSBgYnJuLWFjY29yZGlvbi10cmlnZ2VyLSR7dGhpcy5faXRlbT8uaWR9YDtcblx0LyoqXG5cdCAqIFRoZSBzdHlsZSB0byBiZSBhcHBsaWVkIHRvIHRoZSBob3N0IGVsZW1lbnQgYWZ0ZXIgdGhlIGRpbWVuc2lvbnMgYXJlIGNhbGN1bGF0ZWQuXG5cdCAqIEBkZWZhdWx0ICdvdmVyZmxvdzogaGlkZGVuJ1xuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IHN0eWxlID0gaW5wdXQ8c3RyaW5nPignb3ZlcmZsb3c6IGhpZGRlbicpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmICghdGhpcy5faXRlbSkge1xuXHRcdFx0dGhyb3cgRXJyb3IoJ0FjY29yZGlvbiBDb250ZW50IGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGFuIEFjY29yZGlvbkl0ZW0uIEFkZCBicm5BY2NvcmRpb25JdGVtIHRvIHBhcmVudC4nKTtcblx0XHR9XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cdFx0XHRpZiAoIWNvbnRlbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBtZWFzdXJlRGltZW5zaW9ucyhjb250ZW50LCB0aGlzLl9jb25maWcubWVhc3VyZW1lbnREaXNwbGF5KTtcblx0XHRcdHRoaXMuX3dpZHRoLnNldCh3aWR0aCk7XG5cdFx0XHR0aGlzLl9oZWlnaHQuc2V0KGhlaWdodCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { computed, Directive, effect, input, output, untracked } from '@angular/core';\nimport { injectBrnAccordion, provideBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionItem {\n static _itemIdGenerator = 0;\n id = ++BrnAccordionItem._itemIdGenerator;\n _accordion = injectBrnAccordion();\n /**\n * Whether the item is opened or closed.\n * @default false\n */\n isOpened = input(false, { transform: coerceBooleanProperty });\n /**\n * Computed state of the item, either 'open' or 'closed'\n * @default closed\n */\n state = computed(() => (this._accordion.openItemIds()?.includes(this.id) ? 'open' : 'closed'));\n /**\n * Emits boolean when the item is opened or closed.\n */\n stateChange = output();\n /**\n * Emits state change when item is opened or closed\n */\n openedChange = output();\n constructor() {\n if (!this._accordion) {\n throw Error('Accordion item can only be used inside an Accordion. Add brnAccordion to ancestor.');\n }\n effect(() => {\n const state = this.state();\n untracked(() => {\n this.stateChange.emit(state);\n this.openedChange.emit(state === 'open');\n });\n });\n effect(() => {\n const isOpened = this.isOpened();\n untracked(() => {\n if (isOpened) {\n this._accordion.openItem(this.id);\n }\n else {\n this._accordion.closeItem(this.id);\n }\n });\n });\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnAccordionItem, isStandalone: true, selector: \"[brnAccordionItem]\", inputs: { isOpened: { classPropertyName: \"isOpened\", publicName: \"isOpened\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: \"stateChange\", openedChange: \"openedChange\" }, host: { properties: { \"attr.data-state\": \"state()\" } }, providers: [provideBrnAccordionItem(BrnAccordionItem)], exportAs: [\"brnAccordionItem\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordionItem]',\n exportAs: 'brnAccordionItem',\n providers: [provideBrnAccordionItem(BrnAccordionItem)],\n host: {\n '[attr.data-state]': 'state()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFVcEYsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQ3hDLFVBQVUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25EOzs7T0FHRztJQUNhLFFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDckc7OztPQUdHO0lBQ2EsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9HOztPQUVHO0lBQ2EsV0FBVyxHQUFHLE1BQU0sRUFBcUIsQ0FBQztJQUMxRDs7T0FFRztJQUNhLFlBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztJQUVqRDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztRQUNuRyxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxDQUFDO29CQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzBIQTVDVyxnQkFBZ0I7OEdBQWhCLGdCQUFnQiw2VUFMakIsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzsyRkFLMUMsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQztvQkFDdEQsSUFBSSxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFNBQVM7cUJBQzlCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbnB1dCwgb3V0cHV0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJybkFjY29yZGlvbiwgcHJvdmlkZUJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uSXRlbV0nLFxuXHRleHBvcnRBczogJ2JybkFjY29yZGlvbkl0ZW0nLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuQWNjb3JkaW9uSXRlbShCcm5BY2NvcmRpb25JdGVtKV0sXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkFjY29yZGlvbkl0ZW0ge1xuXHRwcml2YXRlIHN0YXRpYyBfaXRlbUlkR2VuZXJhdG9yID0gMDtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gKytCcm5BY2NvcmRpb25JdGVtLl9pdGVtSWRHZW5lcmF0b3I7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2FjY29yZGlvbiA9IGluamVjdEJybkFjY29yZGlvbigpO1xuXHQvKipcblx0ICogV2hldGhlciB0aGUgaXRlbSBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuXHQgKiBAZGVmYXVsdCBmYWxzZVxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlzT3BlbmVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KTtcblx0LyoqXG5cdCAqIENvbXB1dGVkIHN0YXRlIG9mIHRoZSBpdGVtLCBlaXRoZXIgJ29wZW4nIG9yICdjbG9zZWQnXG5cdCAqIEBkZWZhdWx0IGNsb3NlZFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuX2FjY29yZGlvbi5vcGVuSXRlbUlkcygpPy5pbmNsdWRlcyh0aGlzLmlkKSA/ICdvcGVuJyA6ICdjbG9zZWQnKSk7XG5cdC8qKlxuXHQgKiBFbWl0cyBib29sZWFuIHdoZW4gdGhlIGl0ZW0gaXMgb3BlbmVkIG9yIGNsb3NlZC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZSA9IG91dHB1dDwnb3BlbicgfCAnY2xvc2VkJz4oKTtcblx0LyoqXG5cdCAqIEVtaXRzIHN0YXRlIGNoYW5nZSB3aGVuIGl0ZW0gaXMgb3BlbmVkIG9yIGNsb3NlZFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmICghdGhpcy5fYWNjb3JkaW9uKSB7XG5cdFx0XHR0aHJvdyBFcnJvcignQWNjb3JkaW9uIGl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYW4gQWNjb3JkaW9uLiBBZGQgYnJuQWNjb3JkaW9uIHRvIGFuY2VzdG9yLicpO1xuXHRcdH1cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoc3RhdGUpO1xuXHRcdFx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHN0YXRlID09PSAnb3BlbicpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGlzT3BlbmVkID0gdGhpcy5pc09wZW5lZCgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0aWYgKGlzT3BlbmVkKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWNjb3JkaW9uLm9wZW5JdGVtKHRoaXMuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX2FjY29yZGlvbi5jbG9zZUl0ZW0odGhpcy5pZCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { BrnAccordion } from './lib/brn-accordion';\nimport { BrnAccordionContent } from './lib/brn-accordion-content';\nimport { BrnAccordionItem } from './lib/brn-accordion-item';\nimport { BrnAccordionTrigger } from './lib/brn-accordion-trigger';\nexport * from './lib/brn-accordion';\nexport * from './lib/brn-accordion-content';\nexport * from './lib/brn-accordion-item';\nexport * from './lib/brn-accordion-token';\nexport * from './lib/brn-accordion-trigger';\nexport const BrnAccordionImports = [BrnAccordion, BrnAccordionContent, BrnAccordionItem, BrnAccordionTrigger];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2FjY29yZGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJuQWNjb3JkaW9uIH0gZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbic7XG5pbXBvcnQgeyBCcm5BY2NvcmRpb25Db250ZW50IH0gZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbi1jb250ZW50JztcbmltcG9ydCB7IEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2xpYi9icm4tYWNjb3JkaW9uLWl0ZW0nO1xuaW1wb3J0IHsgQnJuQWNjb3JkaW9uVHJpZ2dlciB9IGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24tdHJpZ2dlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbi1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24taXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tYWNjb3JkaW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24tdHJpZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBCcm5BY2NvcmRpb25JbXBvcnRzID0gW0JybkFjY29yZGlvbiwgQnJuQWNjb3JkaW9uQ29udGVudCwgQnJuQWNjb3JkaW9uSXRlbSwgQnJuQWNjb3JkaW9uVHJpZ2dlcl0gYXMgY29uc3Q7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1hY2NvcmRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2FjY29yZGlvbi9zcmMvc3BhcnRhbi1uZy1icmFpbi1hY2NvcmRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-accordion.mjs","sources":["../tmp-esm2022/accordion/lib/brn-accordion-token.js","../tmp-esm2022/accordion/lib/brn-accordion-trigger.js","../tmp-esm2022/accordion/lib/brn-accordion.js","../tmp-esm2022/accordion/lib/brn-accordion-content.js","../tmp-esm2022/accordion/lib/brn-accordion-item.js","../tmp-esm2022/accordion/index.js","../tmp-esm2022/accordion/spartan-ng-brain-accordion.js"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nexport const BrnAccordionToken = new InjectionToken('BrnAccordionToken');\nexport function injectBrnAccordion() {\n return inject(BrnAccordionToken);\n}\nexport function provideBrnAccordion(accordion) {\n return { provide: BrnAccordionToken, useExisting: accordion };\n}\nexport const BrnAccordionItemToken = new InjectionToken('BrnAccordionItemToken');\nexport function injectBrnAccordionItem() {\n return inject(BrnAccordionItemToken);\n}\nexport function provideBrnAccordionItem(item) {\n return { provide: BrnAccordionItemToken, useExisting: item };\n}\nconst defaultConfig = {\n measurementDisplay: 'block',\n};\nconst BrnAccordionConfigToken = new InjectionToken('BrnBrnAccordionConfig');\nexport function provideBrnAccordionConfig(config) {\n return { provide: BrnAccordionConfigToken, useValue: { ...defaultConfig, ...config } };\n}\nexport function injectBrnAccordionConfig() {\n return inject(BrnAccordionConfigToken, { optional: true }) ?? defaultConfig;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vYWNjb3JkaW9uL3NyYy9saWIvYnJuLWFjY29yZGlvbi10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLE1BQU0sRUFBRSxjQUFjLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBSzdHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFlLG1CQUFtQixDQUFDLENBQUM7QUFFdkYsTUFBTSxVQUFVLGtCQUFrQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsU0FBNkI7SUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFtQix1QkFBdUIsQ0FBQyxDQUFDO0FBRW5HLE1BQU0sVUFBVSxzQkFBc0I7SUFDckMsT0FBTyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQTRCO0lBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUFVRCxNQUFNLGFBQWEsR0FBeUI7SUFDM0Msa0JBQWtCLEVBQUUsT0FBTztDQUMzQixDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsdUJBQXVCLENBQUMsQ0FBQztBQUVsRyxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBcUM7SUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDeEYsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0I7SUFDdkMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUM7QUFDN0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRXhpc3RpbmdQcm92aWRlciwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgdHlwZSBUeXBlLCB0eXBlIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTWVhc3VyZW1lbnREaXNwbGF5IH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJybkFjY29yZGlvbiB9IGZyb20gJy4vYnJuLWFjY29yZGlvbic7XG5pbXBvcnQgdHlwZSB7IEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24taXRlbSc7XG5cbmV4cG9ydCBjb25zdCBCcm5BY2NvcmRpb25Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5BY2NvcmRpb24+KCdCcm5BY2NvcmRpb25Ub2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJuQWNjb3JkaW9uKCkge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvblRva2VuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCcm5BY2NvcmRpb24oYWNjb3JkaW9uOiBUeXBlPEJybkFjY29yZGlvbj4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQWNjb3JkaW9uVG9rZW4sIHVzZUV4aXN0aW5nOiBhY2NvcmRpb24gfTtcbn1cblxuZXhwb3J0IGNvbnN0IEJybkFjY29yZGlvbkl0ZW1Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCcm5BY2NvcmRpb25JdGVtPignQnJuQWNjb3JkaW9uSXRlbVRva2VuJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcm5BY2NvcmRpb25JdGVtKCkge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvbkl0ZW1Ub2tlbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuQWNjb3JkaW9uSXRlbShpdGVtOiBUeXBlPEJybkFjY29yZGlvbkl0ZW0+KTogRXhpc3RpbmdQcm92aWRlciB7XG5cdHJldHVybiB7IHByb3ZpZGU6IEJybkFjY29yZGlvbkl0ZW1Ub2tlbiwgdXNlRXhpc3Rpbmc6IGl0ZW0gfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCckJybkFjY29yZGlvbkNvbmZpZyB7XG5cdC8qKlxuXHQgKiBUaGUgZGlzcGxheSBzdHlsZSB0byB1c2Ugd2hlbiBtZWFzdXJpbmcgZWxlbWVudCBkaW1lbnNpb25zLlxuXHQgKiBAZGVmYXVsdCAnYmxvY2snXG5cdCAqL1xuXHRtZWFzdXJlbWVudERpc3BsYXk6IE1lYXN1cmVtZW50RGlzcGxheTtcbn1cblxuY29uc3QgZGVmYXVsdENvbmZpZzogQnJCcm5BY2NvcmRpb25Db25maWcgPSB7XG5cdG1lYXN1cmVtZW50RGlzcGxheTogJ2Jsb2NrJyxcbn07XG5cbmNvbnN0IEJybkFjY29yZGlvbkNvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPEJyQnJuQWNjb3JkaW9uQ29uZmlnPignQnJuQnJuQWNjb3JkaW9uQ29uZmlnJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuQWNjb3JkaW9uQ29uZmlnKGNvbmZpZzogUGFydGlhbDxCckJybkFjY29yZGlvbkNvbmZpZz4pOiBWYWx1ZVByb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQWNjb3JkaW9uQ29uZmlnVG9rZW4sIHVzZVZhbHVlOiB7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcm5BY2NvcmRpb25Db25maWcoKTogQnJCcm5BY2NvcmRpb25Db25maWcge1xuXHRyZXR1cm4gaW5qZWN0KEJybkFjY29yZGlvbkNvbmZpZ1Rva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IGRlZmF1bHRDb25maWc7XG59XG4iXX0=","import { Directive, ElementRef, inject, isDevMode } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { injectBrnAccordion, injectBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionTrigger {\n _accordion = injectBrnAccordion();\n _item = injectBrnAccordionItem();\n _el = inject((ElementRef));\n state = this._item.state;\n id = `brn-accordion-trigger-${this._item.id}`;\n ariaControls = `brn-accordion-content-${this._item.id}`;\n constructor() {\n if (!this._accordion)\n throw Error('Accordion trigger requires a parent Accordion.');\n if (!this._item)\n throw Error('Accordion trigger requires a parent AccordionItem.');\n this.validateAriaStructure();\n fromEvent(this._el.nativeElement, 'focus')\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n this._accordion.setActiveItem(this);\n });\n }\n toggle(event) {\n event.preventDefault();\n this._accordion.toggleItem(this._item.id);\n }\n focus() {\n this._el.nativeElement.focus();\n }\n validateAriaStructure() {\n const element = this._el.nativeElement;\n const isButton = element.tagName === 'BUTTON';\n const hasButtonRole = element.getAttribute('role') === 'button';\n if (!isButton && !hasButtonRole) {\n throw Error(`BrnAccordionTrigger: The trigger element must be a <button> or have role=\"button\". ` +\n `Found: <${element.tagName.toLowerCase()}>`);\n }\n const parent = element.parentElement;\n if (!parent) {\n const message = 'BrnAccordionTrigger: The trigger button must be wrapped in a heading element.';\n if (isDevMode()) {\n throw Error(message);\n }\n else {\n console.warn(message);\n }\n }\n const isNativeHeading = /^H[1-6]$/.test(parent.tagName);\n const hasHeadingRole = parent.getAttribute('role') === 'heading';\n if (!isNativeHeading && !hasHeadingRole) {\n throw Error(`BrnAccordionTrigger: The trigger button must be wrapped in a heading element ` +\n `(h1-h6) or an element with role=\"heading\". Found parent: <${parent.tagName.toLowerCase()}>`);\n }\n if (hasHeadingRole && !parent.hasAttribute('aria-level')) {\n throw Error('BrnAccordionTrigger: Elements with role=\"heading\" must have an aria-level attribute.');\n }\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: BrnAccordionTrigger, isStandalone: true, selector: \"[brnAccordionTrigger]\", host: { listeners: { \"click\": \"toggle($event)\", \"keyup.space\": \"toggle($event)\", \"keyup.enter\": \"toggle($event)\" }, properties: { \"attr.data-state\": \"state()\", \"attr.aria-expanded\": \"state() === \\\"open\\\"\", \"attr.aria-controls\": \"ariaControls\", \"id\": \"id\", \"attr.role\": \"\\\"button\\\"\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionTrigger, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordionTrigger]',\n host: {\n '[attr.data-state]': 'state()',\n '[attr.aria-expanded]': 'state() === \"open\"',\n '[attr.aria-controls]': 'ariaControls',\n '[id]': 'id',\n '[attr.role]': '\"button\"',\n '(click)': 'toggle($event)',\n '(keyup.space)': 'toggle($event)',\n '(keyup.enter)': 'toggle($event)',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLXRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQWVuRixNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsVUFBVSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFDbEMsS0FBSyxHQUFHLHNCQUFzQixFQUFFLENBQUM7SUFDakMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXZDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6QixFQUFFLEdBQUcseUJBQXlCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDOUMsWUFBWSxHQUFHLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hFO1FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7YUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUFZO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxLQUFLO1FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHFCQUFxQjtRQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUV2QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUVoRSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakMsTUFBTSxLQUFLLENBQ1YscUZBQXFGO2dCQUNwRixXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLE1BQU0sT0FBTyxHQUFHLCtFQUErRSxDQUFDO1lBQ2hHLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUVqRSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekMsTUFBTSxLQUFLLENBQ1YsK0VBQStFO2dCQUM5RSw2REFBNkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUM3RixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sS0FBSyxDQUFDLHNGQUFzRixDQUFDLENBQUM7UUFDckcsQ0FBQztJQUNGLENBQUM7MEhBakVXLG1CQUFtQjs4R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQWIvQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLElBQUksRUFBRTt3QkFDTCxtQkFBbUIsRUFBRSxTQUFTO3dCQUM5QixzQkFBc0IsRUFBRSxvQkFBb0I7d0JBQzVDLHNCQUFzQixFQUFFLGNBQWM7d0JBQ3RDLE1BQU0sRUFBRSxJQUFJO3dCQUNaLGFBQWEsRUFBRSxVQUFVO3dCQUN6QixTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyxlQUFlLEVBQUUsZ0JBQWdCO3FCQUNqQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RCcm5BY2NvcmRpb24sIGluamVjdEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uVHJpZ2dlcl0nLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdzdGF0ZSgpID09PSBcIm9wZW5cIicsXG5cdFx0J1thdHRyLmFyaWEtY29udHJvbHNdJzogJ2FyaWFDb250cm9scycsXG5cdFx0J1tpZF0nOiAnaWQnLFxuXHRcdCdbYXR0ci5yb2xlXSc6ICdcImJ1dHRvblwiJyxcblx0XHQnKGNsaWNrKSc6ICd0b2dnbGUoJGV2ZW50KScsXG5cdFx0JyhrZXl1cC5zcGFjZSknOiAndG9nZ2xlKCRldmVudCknLFxuXHRcdCcoa2V5dXAuZW50ZXIpJzogJ3RvZ2dsZSgkZXZlbnQpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQWNjb3JkaW9uVHJpZ2dlciBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2FjY29yZGlvbiA9IGluamVjdEJybkFjY29yZGlvbigpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9pdGVtID0gaW5qZWN0QnJuQWNjb3JkaW9uSXRlbSgpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5faXRlbS5zdGF0ZTtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gYGJybi1hY2NvcmRpb24tdHJpZ2dlci0ke3RoaXMuX2l0ZW0uaWR9YDtcblx0cHVibGljIHJlYWRvbmx5IGFyaWFDb250cm9scyA9IGBicm4tYWNjb3JkaW9uLWNvbnRlbnQtJHt0aGlzLl9pdGVtLmlkfWA7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmICghdGhpcy5fYWNjb3JkaW9uKSB0aHJvdyBFcnJvcignQWNjb3JkaW9uIHRyaWdnZXIgcmVxdWlyZXMgYSBwYXJlbnQgQWNjb3JkaW9uLicpO1xuXHRcdGlmICghdGhpcy5faXRlbSkgdGhyb3cgRXJyb3IoJ0FjY29yZGlvbiB0cmlnZ2VyIHJlcXVpcmVzIGEgcGFyZW50IEFjY29yZGlvbkl0ZW0uJyk7XG5cdFx0dGhpcy52YWxpZGF0ZUFyaWFTdHJ1Y3R1cmUoKTtcblxuXHRcdGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnZm9jdXMnKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fYWNjb3JkaW9uLnNldEFjdGl2ZUl0ZW0odGhpcyk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCB0b2dnbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR0aGlzLl9hY2NvcmRpb24udG9nZ2xlSXRlbSh0aGlzLl9pdGVtLmlkKTtcblx0fVxuXG5cdHB1YmxpYyBmb2N1cygpIHtcblx0XHR0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdH1cblxuXHRwcml2YXRlIHZhbGlkYXRlQXJpYVN0cnVjdHVyZSgpOiB2b2lkIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcblxuXHRcdGNvbnN0IGlzQnV0dG9uID0gZWxlbWVudC50YWdOYW1lID09PSAnQlVUVE9OJztcblx0XHRjb25zdCBoYXNCdXR0b25Sb2xlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ2J1dHRvbic7XG5cblx0XHRpZiAoIWlzQnV0dG9uICYmICFoYXNCdXR0b25Sb2xlKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0YEJybkFjY29yZGlvblRyaWdnZXI6IFRoZSB0cmlnZ2VyIGVsZW1lbnQgbXVzdCBiZSBhIDxidXR0b24+IG9yIGhhdmUgcm9sZT1cImJ1dHRvblwiLiBgICtcblx0XHRcdFx0XHRgRm91bmQ6IDwke2VsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpfT5gLFxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cdFx0aWYgKCFwYXJlbnQpIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSAnQnJuQWNjb3JkaW9uVHJpZ2dlcjogVGhlIHRyaWdnZXIgYnV0dG9uIG11c3QgYmUgd3JhcHBlZCBpbiBhIGhlYWRpbmcgZWxlbWVudC4nO1xuXHRcdFx0aWYgKGlzRGV2TW9kZSgpKSB7XG5cdFx0XHRcdHRocm93IEVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKG1lc3NhZ2UpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGlzTmF0aXZlSGVhZGluZyA9IC9eSFsxLTZdJC8udGVzdChwYXJlbnQudGFnTmFtZSk7XG5cdFx0Y29uc3QgaGFzSGVhZGluZ1JvbGUgPSBwYXJlbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICdoZWFkaW5nJztcblxuXHRcdGlmICghaXNOYXRpdmVIZWFkaW5nICYmICFoYXNIZWFkaW5nUm9sZSkge1xuXHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdGBCcm5BY2NvcmRpb25UcmlnZ2VyOiBUaGUgdHJpZ2dlciBidXR0b24gbXVzdCBiZSB3cmFwcGVkIGluIGEgaGVhZGluZyBlbGVtZW50IGAgK1xuXHRcdFx0XHRcdGAoaDEtaDYpIG9yIGFuIGVsZW1lbnQgd2l0aCByb2xlPVwiaGVhZGluZ1wiLiBGb3VuZCBwYXJlbnQ6IDwke3BhcmVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCl9PmAsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdGlmIChoYXNIZWFkaW5nUm9sZSAmJiAhcGFyZW50Lmhhc0F0dHJpYnV0ZSgnYXJpYS1sZXZlbCcpKSB7XG5cdFx0XHR0aHJvdyBFcnJvcignQnJuQWNjb3JkaW9uVHJpZ2dlcjogRWxlbWVudHMgd2l0aCByb2xlPVwiaGVhZGluZ1wiIG11c3QgaGF2ZSBhbiBhcmlhLWxldmVsIGF0dHJpYnV0ZS4nKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==","import { FocusKeyManager, FocusMonitor } from '@angular/cdk/a11y';\nimport { computed, contentChildren, Directive, ElementRef, inject, input, signal, } from '@angular/core';\nimport { provideBrnAccordion } from './brn-accordion-token';\nimport { BrnAccordionTrigger } from './brn-accordion-trigger';\nimport * as i0 from \"@angular/core\";\nconst HORIZONTAL_KEYS_TO_PREVENT_DEFAULT = [\n 'ArrowLeft',\n 'ArrowRight',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n ' ',\n 'Enter',\n];\nconst VERTICAL_KEYS_TO_PREVENT_DEFAULT = [\n 'ArrowUp',\n 'ArrowDown',\n 'PageDown',\n 'PageUp',\n 'Home',\n 'End',\n ' ',\n 'Enter',\n];\nexport class BrnAccordion {\n _el = inject((ElementRef));\n _focusMonitor = inject(FocusMonitor);\n _keyManager = computed(() => new FocusKeyManager(this.triggers())\n .withHomeAndEnd()\n .withPageUpDown()\n .withWrap()\n .withHorizontalOrientation(this.orientation() === 'vertical' ? null : (this.dir() ?? 'ltr'))\n .withVerticalOrientation(this.orientation() === 'vertical'));\n _focused = signal(false);\n _openItemIds = signal([]);\n openItemIds = this._openItemIds.asReadonly();\n state = computed(() => (this._openItemIds().length > 0 ? 'open' : 'closed'));\n triggers = contentChildren(BrnAccordionTrigger, { descendants: true });\n /**\n * Whether the accordion is in single or multiple mode.\n * @default 'single'\n */\n type = input('single');\n /**\n * The direction of the accordion, either 'ltr' (left-to-right) or 'rtl' (right-to-left).\n * @default null\n */\n dir = input(null);\n /**\n * The orientation of the accordion, either 'horizontal' or 'vertical'.\n * @default 'vertical'\n */\n orientation = input('vertical');\n ngAfterContentInit() {\n this._el.nativeElement.addEventListener('keydown', (event) => {\n if (this.shouldIgnoreEvent(event))\n return;\n this._keyManager()?.onKeydown(event);\n this.preventDefaultEvents(event);\n });\n this._focusMonitor.monitor(this._el, true).subscribe((origin) => this._focused.set(origin !== null));\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._el);\n }\n setActiveItem(item) {\n this._keyManager()?.setActiveItem(item);\n }\n toggleItem(id) {\n if (this._openItemIds().includes(id)) {\n this.closeItem(id);\n return;\n }\n this.openItem(id);\n }\n openItem(id) {\n if (this.type() === 'single') {\n this._openItemIds.set([id]);\n return;\n }\n this._openItemIds.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n }\n closeItem(id) {\n this._openItemIds.update((ids) => ids.filter((openId) => openId !== id));\n }\n isEditableTarget(el) {\n const node = el;\n if (!node)\n return false;\n const tag = node.tagName;\n if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT')\n return true;\n if (node.isContentEditable)\n return true;\n const role = node.getAttribute?.('role') ?? '';\n if (/^(textbox|searchbox|combobox|listbox|grid|tree|menu|spinbutton|slider)$/.test(role))\n return true;\n const editableAncestor = node.closest?.('input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"], ' +\n '[role=\"textbox\"], [role=\"searchbox\"], [role=\"combobox\"], [role=\"listbox\"], ' +\n '[role=\"grid\"], [role=\"tree\"], [role=\"menu\"], [role=\"spinbutton\"], [role=\"slider\"]');\n return !!editableAncestor;\n }\n shouldIgnoreEvent(e) {\n if (e.defaultPrevented)\n return true; // another handler already acted\n if (e.ctrlKey || e.metaKey || e.altKey)\n return true; // let shortcuts through\n return this.isEditableTarget(e.target); // don't steal from editable/ARIA widgets\n }\n preventDefaultEvents(event) {\n if (event.defaultPrevented)\n return;\n if (!this._focused())\n return;\n if (!('key' in event))\n return;\n const keys = this.orientation() === 'horizontal' ? HORIZONTAL_KEYS_TO_PREVENT_DEFAULT : VERTICAL_KEYS_TO_PREVENT_DEFAULT;\n if (keys.includes(event.key) && event.code !== 'NumpadEnter') {\n event.preventDefault();\n }\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnAccordion, isStandalone: true, selector: \"[brnAccordion]\", inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: \"dir\", publicName: \"dir\", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"attr.data-state\": \"state()\", \"attr.data-orientation\": \"orientation()\" } }, providers: [provideBrnAccordion(BrnAccordion)], queries: [{ propertyName: \"triggers\", predicate: BrnAccordionTrigger, descendants: true, isSignal: true }], exportAs: [\"brnAccordion\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordion, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordion]',\n exportAs: 'brnAccordion',\n providers: [provideBrnAccordion(BrnAccordion)],\n host: {\n '[attr.data-state]': 'state()',\n '[attr.data-orientation]': 'orientation()',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vYWNjb3JkaW9uL3NyYy9saWIvYnJuLWFjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFFTixRQUFRLEVBQ1IsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELE1BQU0sa0NBQWtDLEdBQUc7SUFDMUMsV0FBVztJQUNYLFlBQVk7SUFDWixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixLQUFLO0lBQ0wsR0FBRztJQUNILE9BQU87Q0FDRSxDQUFDO0FBRVgsTUFBTSxnQ0FBZ0MsR0FBRztJQUN4QyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixRQUFRO0lBQ1IsTUFBTTtJQUNOLEtBQUs7SUFDTCxHQUFHO0lBQ0gsT0FBTztDQUNFLENBQUM7QUFXWCxNQUFNLE9BQU8sWUFBWTtJQUNQLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUN0QyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzVDLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDdkQsY0FBYyxFQUFFO1NBQ2hCLGNBQWMsRUFBRTtTQUNoQixRQUFRLEVBQUU7U0FDVix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FB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d0JBQXdCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUNsRixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBb0I7UUFDaEQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFOUIsTUFBTSxJQUFJLEdBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1FBRTdHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNGLENBQUM7MEhBNUdXLFlBQVk7OEdBQVosWUFBWSw0aEJBTmIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxtREF1QkgsbUJBQW1COzsyRkFqQmxELFlBQVk7a0JBVHhCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixjQUFjLENBQUM7b0JBQzlDLElBQUksRUFBRTt3QkFDTCxtQkFBbUIsRUFBRSxTQUFTO3dCQUM5Qix5QkFBeUIsRUFBRSxlQUFlO3FCQUMxQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcblx0dHlwZSBBZnRlckNvbnRlbnRJbml0LFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHR5cGUgT25EZXN0cm95LFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkFjY29yZGlvbiB9IGZyb20gJy4vYnJuLWFjY29yZGlvbi10b2tlbic7XG5pbXBvcnQgeyBCcm5BY2NvcmRpb25UcmlnZ2VyIH0gZnJvbSAnLi9icm4tYWNjb3JkaW9uLXRyaWdnZXInO1xuXG5jb25zdCBIT1JJWk9OVEFMX0tFWVNfVE9fUFJFVkVOVF9ERUZBVUxUID0gW1xuXHQnQXJyb3dMZWZ0Jyxcblx0J0Fycm93UmlnaHQnLFxuXHQnUGFnZURvd24nLFxuXHQnUGFnZVVwJyxcblx0J0hvbWUnLFxuXHQnRW5kJyxcblx0JyAnLFxuXHQnRW50ZXInLFxuXSBhcyBjb25zdDtcblxuY29uc3QgVkVSVElDQUxfS0VZU19UT19QUkVWRU5UX0RFRkFVTFQgPSBbXG5cdCdBcnJvd1VwJyxcblx0J0Fycm93RG93bicsXG5cdCdQYWdlRG93bicsXG5cdCdQYWdlVXAnLFxuXHQnSG9tZScsXG5cdCdFbmQnLFxuXHQnICcsXG5cdCdFbnRlcicsXG5dIGFzIGNvbnN0O1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uXScsXG5cdGV4cG9ydEFzOiAnYnJuQWNjb3JkaW9uJyxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZUJybkFjY29yZGlvbihCcm5BY2NvcmRpb24pXSxcblx0aG9zdDoge1xuXHRcdCdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24oKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkFjY29yZGlvbiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblx0cHJpdmF0ZSByZWFkb25seSBfZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2tleU1hbmFnZXIgPSBjb21wdXRlZCgoKSA9PlxuXHRcdG5ldyBGb2N1c0tleU1hbmFnZXI8QnJuQWNjb3JkaW9uVHJpZ2dlcj4odGhpcy50cmlnZ2VycygpKVxuXHRcdFx0LndpdGhIb21lQW5kRW5kKClcblx0XHRcdC53aXRoUGFnZVVwRG93bigpXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5vcmllbnRhdGlvbigpID09PSAndmVydGljYWwnID8gbnVsbCA6ICh0aGlzLmRpcigpID8/ICdsdHInKSlcblx0XHRcdC53aXRoVmVydGljYWxPcmllbnRhdGlvbih0aGlzLm9yaWVudGF0aW9uKCkgPT09ICd2ZXJ0aWNhbCcpLFxuXHQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9vcGVuSXRlbUlkcyA9IHNpZ25hbDxudW1iZXJbXT4oW10pO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3Blbkl0ZW1JZHMgPSB0aGlzLl9vcGVuSXRlbUlkcy5hc1JlYWRvbmx5KCk7XG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLl9vcGVuSXRlbUlkcygpLmxlbmd0aCA+IDAgPyAnb3BlbicgOiAnY2xvc2VkJykpO1xuXG5cdHB1YmxpYyByZWFkb25seSB0cmlnZ2VycyA9IGNvbnRlbnRDaGlsZHJlbihCcm5BY2NvcmRpb25UcmlnZ2VyLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gaXMgaW4gc2luZ2xlIG9yIG11bHRpcGxlIG1vZGUuXG5cdCAqIEBkZWZhdWx0ICdzaW5nbGUnXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdHlwZSA9IGlucHV0PCdzaW5nbGUnIHwgJ211bHRpcGxlJz4oJ3NpbmdsZScpO1xuXHQvKipcblx0ICogVGhlIGRpcmVjdGlvbiBvZiB0aGUgYWNjb3JkaW9uLCBlaXRoZXIgJ2x0cicgKGxlZnQtdG8tcmlnaHQpIG9yICdydGwnIChyaWdodC10by1sZWZ0KS5cblx0ICogQGRlZmF1bHQgbnVsbFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpciA9IGlucHV0PCdsdHInIHwgJ3J0bCcgfCBudWxsPihudWxsKTtcblx0LyoqXG5cdCAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgYWNjb3JkaW9uLCBlaXRoZXIgJ2hvcml6b250YWwnIG9yICd2ZXJ0aWNhbCcuXG5cdCAqIEBkZWZhdWx0ICd2ZXJ0aWNhbCdcblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBvcmllbnRhdGlvbiA9IGlucHV0PCdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc+KCd2ZXJ0aWNhbCcpO1xuXG5cdHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0dGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5zaG91bGRJZ25vcmVFdmVudChldmVudCkpIHJldHVybjtcblx0XHRcdHRoaXMuX2tleU1hbmFnZXIoKT8ub25LZXlkb3duKGV2ZW50KTtcblx0XHRcdHRoaXMucHJldmVudERlZmF1bHRFdmVudHMoZXZlbnQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4gdGhpcy5fZm9jdXNlZC5zZXQob3JpZ2luICE9PSBudWxsKSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWwpO1xuXHR9XG5cblx0cHVibGljIHNldEFjdGl2ZUl0ZW0oaXRlbTogQnJuQWNjb3JkaW9uVHJpZ2dlcikge1xuXHRcdHRoaXMuX2tleU1hbmFnZXIoKT8uc2V0QWN0aXZlSXRlbShpdGVtKTtcblx0fVxuXG5cdHB1YmxpYyB0b2dnbGVJdGVtKGlkOiBudW1iZXIpIHtcblx0XHRpZiAodGhpcy5fb3Blbkl0ZW1JZHMoKS5pbmNsdWRlcyhpZCkpIHtcblx0XHRcdHRoaXMuY2xvc2VJdGVtKGlkKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5vcGVuSXRlbShpZCk7XG5cdH1cblxuXHRwdWJsaWMgb3Blbkl0ZW0oaWQ6IG51bWJlcikge1xuXHRcdGlmICh0aGlzLnR5cGUoKSA9PT0gJ3NpbmdsZScpIHtcblx0XHRcdHRoaXMuX29wZW5JdGVtSWRzLnNldChbaWRdKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5fb3Blbkl0ZW1JZHMudXBkYXRlKChpZHMpID0+IChpZHMuaW5jbHVkZXMoaWQpID8gaWRzIDogWy4uLmlkcywgaWRdKSk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VJdGVtKGlkOiBudW1iZXIpIHtcblx0XHR0aGlzLl9vcGVuSXRlbUlkcy51cGRhdGUoKGlkcykgPT4gaWRzLmZpbHRlcigob3BlbklkKSA9PiBvcGVuSWQgIT09IGlkKSk7XG5cdH1cblxuXHRwcml2YXRlIGlzRWRpdGFibGVUYXJnZXQoZWw6IEV2ZW50VGFyZ2V0IHwgbnVsbCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IG5vZGUgPSBlbCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cdFx0aWYgKCFub2RlKSByZXR1cm4gZmFsc2U7XG5cblx0XHRjb25zdCB0YWcgPSBub2RlLnRhZ05hbWU7XG5cdFx0aWYgKHRhZyA9PT0gJ0lOUFVUJyB8fCB0YWcgPT09ICdURVhUQVJFQScgfHwgdGFnID09PSAnU0VMRUNUJykgcmV0dXJuIHRydWU7XG5cdFx0aWYgKG5vZGUuaXNDb250ZW50RWRpdGFibGUpIHJldHVybiB0cnVlO1xuXG5cdFx0Y29uc3Qgcm9sZSA9IG5vZGUuZ2V0QXR0cmlidXRlPy4oJ3JvbGUnKSA/PyAnJztcblx0XHRpZiAoL14odGV4dGJveHxzZWFyY2hib3h8Y29tYm9ib3h8bGlzdGJveHxncmlkfHRyZWV8bWVudXxzcGluYnV0dG9ufHNsaWRlcikkLy50ZXN0KHJvbGUpKSByZXR1cm4gdHJ1ZTtcblxuXHRcdGNvbnN0IGVkaXRhYmxlQW5jZXN0b3IgPSBub2RlLmNsb3Nlc3Q/Lihcblx0XHRcdCdpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgW2NvbnRlbnRlZGl0YWJsZT1cIlwiXSwgW2NvbnRlbnRlZGl0YWJsZT1cInRydWVcIl0sICcgK1xuXHRcdFx0XHQnW3JvbGU9XCJ0ZXh0Ym94XCJdLCBbcm9sZT1cInNlYXJjaGJveFwiXSwgW3JvbGU9XCJjb21ib2JveFwiXSwgW3JvbGU9XCJsaXN0Ym94XCJdLCAnICtcblx0XHRcdFx0J1tyb2xlPVwiZ3JpZFwiXSwgW3JvbGU9XCJ0cmVlXCJdLCBbcm9sZT1cIm1lbnVcIl0sIFtyb2xlPVwic3BpbmJ1dHRvblwiXSwgW3JvbGU9XCJzbGlkZXJcIl0nLFxuXHRcdCk7XG5cdFx0cmV0dXJuICEhZWRpdGFibGVBbmNlc3Rvcjtcblx0fVxuXG5cdHByaXZhdGUgc2hvdWxkSWdub3JlRXZlbnQoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuXHRcdGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybiB0cnVlOyAvLyBhbm90aGVyIGhhbmRsZXIgYWxyZWFkeSBhY3RlZFxuXHRcdGlmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5IHx8IGUuYWx0S2V5KSByZXR1cm4gdHJ1ZTsgLy8gbGV0IHNob3J0Y3V0cyB0aHJvdWdoXG5cdFx0cmV0dXJuIHRoaXMuaXNFZGl0YWJsZVRhcmdldChlLnRhcmdldCk7IC8vIGRvbid0IHN0ZWFsIGZyb20gZWRpdGFibGUvQVJJQSB3aWRnZXRzXG5cdH1cblxuXHRwcml2YXRlIHByZXZlbnREZWZhdWx0RXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcblx0XHRpZiAoIXRoaXMuX2ZvY3VzZWQoKSkgcmV0dXJuO1xuXHRcdGlmICghKCdrZXknIGluIGV2ZW50KSkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qga2V5czogcmVhZG9ubHkgc3RyaW5nW10gPVxuXHRcdFx0dGhpcy5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcgPyBIT1JJWk9OVEFMX0tFWVNfVE9fUFJFVkVOVF9ERUZBVUxUIDogVkVSVElDQUxfS0VZU19UT19QUkVWRU5UX0RFRkFVTFQ7XG5cblx0XHRpZiAoa2V5cy5pbmNsdWRlcyhldmVudC5rZXkpICYmIGV2ZW50LmNvZGUgIT09ICdOdW1wYWRFbnRlcicpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, Directive, ElementRef, NgZone, PLATFORM_ID, afterNextRender, computed, inject, input, signal, } from '@angular/core';\nimport { measureDimensions } from '@spartan-ng/brain/core';\nimport { injectBrnAccordionConfig, injectBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionContent {\n _config = injectBrnAccordionConfig();\n _item = injectBrnAccordionItem();\n _elementRef = inject(ElementRef);\n _destroyRef = inject(DestroyRef);\n _ngZone = inject(NgZone);\n _platformId = inject(PLATFORM_ID);\n _width = signal(null);\n _height = signal(null);\n _inert = computed(() => (this.state?.() === 'closed' ? true : undefined));\n state = this._item?.state;\n id = `brn-accordion-content-${this._item?.id}`;\n ariaLabeledBy = `brn-accordion-trigger-${this._item?.id}`;\n /**\n * The style to be applied to the host element after the dimensions are calculated.\n * @default 'overflow: hidden'\n */\n style = input('overflow: hidden');\n constructor() {\n if (!this._item) {\n throw Error('Accordion Content can only be used inside an AccordionItem. Add brnAccordionItem to parent.');\n }\n afterNextRender(() => {\n const hasValidDimensions = this._measureAndSetDimensions();\n if (!hasValidDimensions) {\n this._setupVisibilityObserver();\n }\n });\n }\n _measureAndSetDimensions() {\n const content = this._elementRef.nativeElement.firstChild;\n if (!content)\n return false;\n const { width, height } = measureDimensions(content, this._config.measurementDisplay);\n this._width.set(width);\n this._height.set(height);\n return width > 0 && height > 0;\n }\n _setupVisibilityObserver() {\n if (!isPlatformBrowser(this._platformId))\n return;\n if (typeof IntersectionObserver === 'undefined')\n return;\n this._ngZone.runOutsideAngular(() => {\n const observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this._ngZone.run(() => {\n if (this._measureAndSetDimensions()) {\n observer.disconnect();\n }\n });\n }\n }, { root: null, threshold: 0 });\n observer.observe(this._elementRef.nativeElement);\n this._destroyRef.onDestroy(() => observer.disconnect());\n });\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnAccordionContent, isStandalone: true, selector: \"brn-accordion-content,[brnAccordionContent]\", inputs: { style: { classPropertyName: \"style\", publicName: \"style\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"region\" }, properties: { \"attr.data-state\": \"state?.()\", \"attr.aria-labelledby\": \"ariaLabeledBy\", \"id\": \"id\", \"style.--brn-accordion-content-width.px\": \"_width()\", \"style.--brn-accordion-content-height.px\": \"_height()\", \"attr.inert\": \"_inert()\", \"attr.style\": \"style()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionContent, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-accordion-content,[brnAccordionContent]',\n host: {\n '[attr.data-state]': 'state?.()',\n '[attr.aria-labelledby]': 'ariaLabeledBy',\n role: 'region',\n '[id]': 'id',\n '[style.--brn-accordion-content-width.px]': '_width()',\n '[style.--brn-accordion-content-height.px]': '_height()',\n '[attr.inert]': '_inert()',\n '[attr.style]': 'style()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBQ1gsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFlekYsTUFBTSxPQUFPLG1CQUFtQjtJQUNkLE9BQU8sR0FBRyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3JDLEtBQUssR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2pDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFaEMsTUFBTSxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDckMsT0FBTyxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FB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QUEyQyxFQUFFLFdBQVc7d0JBQ3hELGNBQWMsRUFBRSxVQUFVO3dCQUMxQixjQUFjLEVBQUUsU0FBUztxQkFDekI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREZXN0cm95UmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdE5nWm9uZSxcblx0UExBVEZPUk1fSUQsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZWFzdXJlRGltZW5zaW9ucyB9IGZyb20gJ0BzcGFydGFuLW5nL2JyYWluL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QnJuQWNjb3JkaW9uQ29uZmlnLCBpbmplY3RCcm5BY2NvcmRpb25JdGVtIH0gZnJvbSAnLi9icm4tYWNjb3JkaW9uLXRva2VuJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLWFjY29yZGlvbi1jb250ZW50LFticm5BY2NvcmRpb25Db250ZW50XScsXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGU/LigpJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhcmlhTGFiZWxlZEJ5Jyxcblx0XHRyb2xlOiAncmVnaW9uJyxcblx0XHQnW2lkXSc6ICdpZCcsXG5cdFx0J1tzdHlsZS4tLWJybi1hY2NvcmRpb24tY29udGVudC13aWR0aC5weF0nOiAnX3dpZHRoKCknLFxuXHRcdCdbc3R5bGUuLS1icm4tYWNjb3JkaW9uLWNvbnRlbnQtaGVpZ2h0LnB4XSc6ICdfaGVpZ2h0KCknLFxuXHRcdCdbYXR0ci5pbmVydF0nOiAnX2luZXJ0KCknLFxuXHRcdCdbYXR0ci5zdHlsZV0nOiAnc3R5bGUoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkFjY29yZGlvbkNvbnRlbnQge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBpbmplY3RCcm5BY2NvcmRpb25Db25maWcoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfaXRlbSA9IGluamVjdEJybkFjY29yZGlvbkl0ZW0oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBfd2lkdGggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfaGVpZ2h0ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2luZXJ0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc3RhdGU/LigpID09PSAnY2xvc2VkJyA/IHRydWUgOiB1bmRlZmluZWQpKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLl9pdGVtPy5zdGF0ZTtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gYGJybi1hY2NvcmRpb24tY29udGVudC0ke3RoaXMuX2l0ZW0/LmlkfWA7XG5cdHB1YmxpYyByZWFkb25seSBhcmlhTGFiZWxlZEJ5ID0gYGJybi1hY2NvcmRpb24tdHJpZ2dlci0ke3RoaXMuX2l0ZW0/LmlkfWA7XG5cdC8qKlxuXHQgKiBUaGUgc3R5bGUgdG8gYmUgYXBwbGllZCB0byB0aGUgaG9zdCBlbGVtZW50IGFmdGVyIHRoZSBkaW1lbnNpb25zIGFyZSBjYWxjdWxhdGVkLlxuXHQgKiBAZGVmYXVsdCAnb3ZlcmZsb3c6IGhpZGRlbidcblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBzdHlsZSA9IGlucHV0PHN0cmluZz4oJ292ZXJmbG93OiBoaWRkZW4nKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoIXRoaXMuX2l0ZW0pIHtcblx0XHRcdHRocm93IEVycm9yKCdBY2NvcmRpb24gQ29udGVudCBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBhbiBBY2NvcmRpb25JdGVtLiBBZGQgYnJuQWNjb3JkaW9uSXRlbSB0byBwYXJlbnQuJyk7XG5cdFx0fVxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBoYXNWYWxpZERpbWVuc2lvbnMgPSB0aGlzLl9tZWFzdXJlQW5kU2V0RGltZW5zaW9ucygpO1xuXHRcdFx0aWYgKCFoYXNWYWxpZERpbWVuc2lvbnMpIHtcblx0XHRcdFx0dGhpcy5fc2V0dXBWaXNpYmlsaXR5T2JzZXJ2ZXIoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX21lYXN1cmVBbmRTZXREaW1lbnNpb25zKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cdFx0aWYgKCFjb250ZW50KSByZXR1cm4gZmFsc2U7XG5cblx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IG1lYXN1cmVEaW1lbnNpb25zKGNvbnRlbnQsIHRoaXMuX2NvbmZpZy5tZWFzdXJlbWVudERpc3BsYXkpO1xuXHRcdHRoaXMuX3dpZHRoLnNldCh3aWR0aCk7XG5cdFx0dGhpcy5faGVpZ2h0LnNldChoZWlnaHQpO1xuXG5cdFx0cmV0dXJuIHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0dXBWaXNpYmlsaXR5T2JzZXJ2ZXIoKTogdm9pZCB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXHRcdGlmICh0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG5cdFx0XHRcdChlbnRyaWVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVudHJpZXNbMF0uaXNJbnRlcnNlY3RpbmcpIHtcblx0XHRcdFx0XHRcdHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5fbWVhc3VyZUFuZFNldERpbWVuc2lvbnMoKSkge1xuXHRcdFx0XHRcdFx0XHRcdG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7IHJvb3Q6IG51bGwsIHRocmVzaG9sZDogMCB9LFxuXHRcdFx0KTtcblxuXHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0dGhpcy5fZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { computed, Directive, effect, input, output, untracked } from '@angular/core';\nimport { injectBrnAccordion, provideBrnAccordionItem } from './brn-accordion-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnAccordionItem {\n static _itemIdGenerator = 0;\n id = ++BrnAccordionItem._itemIdGenerator;\n _accordion = injectBrnAccordion();\n /**\n * Whether the item is opened or closed.\n * @default false\n */\n isOpened = input(false, { transform: coerceBooleanProperty });\n /**\n * Computed state of the item, either 'open' or 'closed'\n * @default closed\n */\n state = computed(() => (this._accordion.openItemIds()?.includes(this.id) ? 'open' : 'closed'));\n /**\n * Emits boolean when the item is opened or closed.\n */\n stateChange = output();\n /**\n * Emits state change when item is opened or closed\n */\n openedChange = output();\n constructor() {\n if (!this._accordion) {\n throw Error('Accordion item can only be used inside an Accordion. Add brnAccordion to ancestor.');\n }\n effect(() => {\n const state = this.state();\n untracked(() => {\n this.stateChange.emit(state);\n this.openedChange.emit(state === 'open');\n });\n });\n effect(() => {\n const isOpened = this.isOpened();\n untracked(() => {\n if (isOpened) {\n this._accordion.openItem(this.id);\n }\n else {\n this._accordion.closeItem(this.id);\n }\n });\n });\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnAccordionItem, isStandalone: true, selector: \"[brnAccordionItem]\", inputs: { isOpened: { classPropertyName: \"isOpened\", publicName: \"isOpened\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: \"stateChange\", openedChange: \"openedChange\" }, host: { properties: { \"attr.data-state\": \"state()\" } }, providers: [provideBrnAccordionItem(BrnAccordionItem)], exportAs: [\"brnAccordionItem\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnAccordionItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnAccordionItem]',\n exportAs: 'brnAccordionItem',\n providers: [provideBrnAccordionItem(BrnAccordionItem)],\n host: {\n '[attr.data-state]': 'state()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWFjY29yZGlvbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9hY2NvcmRpb24vc3JjL2xpYi9icm4tYWNjb3JkaW9uLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFVcEYsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQ3hDLFVBQVUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25EOzs7T0FHRztJQUNhLFFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDckc7OztPQUdHO0lBQ2EsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9HOztPQUVHO0lBQ2EsV0FBVyxHQUFHLE1BQU0sRUFBcUIsQ0FBQztJQUMxRDs7T0FFRztJQUNhLFlBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztJQUVqRDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztRQUNuRyxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxDQUFDO29CQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzBIQTVDVyxnQkFBZ0I7OEdBQWhCLGdCQUFnQiw2VUFMakIsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzsyRkFLMUMsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQztvQkFDdEQsSUFBSSxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFNBQVM7cUJBQzlCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbnB1dCwgb3V0cHV0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJybkFjY29yZGlvbiwgcHJvdmlkZUJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2Jybi1hY2NvcmRpb24tdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuQWNjb3JkaW9uSXRlbV0nLFxuXHRleHBvcnRBczogJ2JybkFjY29yZGlvbkl0ZW0nLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuQWNjb3JkaW9uSXRlbShCcm5BY2NvcmRpb25JdGVtKV0sXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJybkFjY29yZGlvbkl0ZW0ge1xuXHRwcml2YXRlIHN0YXRpYyBfaXRlbUlkR2VuZXJhdG9yID0gMDtcblx0cHVibGljIHJlYWRvbmx5IGlkID0gKytCcm5BY2NvcmRpb25JdGVtLl9pdGVtSWRHZW5lcmF0b3I7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2FjY29yZGlvbiA9IGluamVjdEJybkFjY29yZGlvbigpO1xuXHQvKipcblx0ICogV2hldGhlciB0aGUgaXRlbSBpcyBvcGVuZWQgb3IgY2xvc2VkLlxuXHQgKiBAZGVmYXVsdCBmYWxzZVxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlzT3BlbmVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KTtcblx0LyoqXG5cdCAqIENvbXB1dGVkIHN0YXRlIG9mIHRoZSBpdGVtLCBlaXRoZXIgJ29wZW4nIG9yICdjbG9zZWQnXG5cdCAqIEBkZWZhdWx0IGNsb3NlZFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IHN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuX2FjY29yZGlvbi5vcGVuSXRlbUlkcygpPy5pbmNsdWRlcyh0aGlzLmlkKSA/ICdvcGVuJyA6ICdjbG9zZWQnKSk7XG5cdC8qKlxuXHQgKiBFbWl0cyBib29sZWFuIHdoZW4gdGhlIGl0ZW0gaXMgb3BlbmVkIG9yIGNsb3NlZC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZUNoYW5nZSA9IG91dHB1dDwnb3BlbicgfCAnY2xvc2VkJz4oKTtcblx0LyoqXG5cdCAqIEVtaXRzIHN0YXRlIGNoYW5nZSB3aGVuIGl0ZW0gaXMgb3BlbmVkIG9yIGNsb3NlZFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmICghdGhpcy5fYWNjb3JkaW9uKSB7XG5cdFx0XHR0aHJvdyBFcnJvcignQWNjb3JkaW9uIGl0ZW0gY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYW4gQWNjb3JkaW9uLiBBZGQgYnJuQWNjb3JkaW9uIHRvIGFuY2VzdG9yLicpO1xuXHRcdH1cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoc3RhdGUpO1xuXHRcdFx0XHR0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHN0YXRlID09PSAnb3BlbicpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGlzT3BlbmVkID0gdGhpcy5pc09wZW5lZCgpO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0aWYgKGlzT3BlbmVkKSB7XG5cdFx0XHRcdFx0dGhpcy5fYWNjb3JkaW9uLm9wZW5JdGVtKHRoaXMuaWQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX2FjY29yZGlvbi5jbG9zZUl0ZW0odGhpcy5pZCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { BrnAccordion } from './lib/brn-accordion';\nimport { BrnAccordionContent } from './lib/brn-accordion-content';\nimport { BrnAccordionItem } from './lib/brn-accordion-item';\nimport { BrnAccordionTrigger } from './lib/brn-accordion-trigger';\nexport * from './lib/brn-accordion';\nexport * from './lib/brn-accordion-content';\nexport * from './lib/brn-accordion-item';\nexport * from './lib/brn-accordion-token';\nexport * from './lib/brn-accordion-trigger';\nexport const BrnAccordionImports = [BrnAccordion, BrnAccordionContent, BrnAccordionItem, BrnAccordionTrigger];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2FjY29yZGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxFLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJuQWNjb3JkaW9uIH0gZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbic7XG5pbXBvcnQgeyBCcm5BY2NvcmRpb25Db250ZW50IH0gZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbi1jb250ZW50JztcbmltcG9ydCB7IEJybkFjY29yZGlvbkl0ZW0gfSBmcm9tICcuL2xpYi9icm4tYWNjb3JkaW9uLWl0ZW0nO1xuaW1wb3J0IHsgQnJuQWNjb3JkaW9uVHJpZ2dlciB9IGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24tdHJpZ2dlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLWFjY29yZGlvbi1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24taXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tYWNjb3JkaW9uLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1hY2NvcmRpb24tdHJpZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBCcm5BY2NvcmRpb25JbXBvcnRzID0gW0JybkFjY29yZGlvbiwgQnJuQWNjb3JkaW9uQ29udGVudCwgQnJuQWNjb3JkaW9uSXRlbSwgQnJuQWNjb3JkaW9uVHJpZ2dlcl0gYXMgY29uc3Q7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1hY2NvcmRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2FjY29yZGlvbi9zcmMvc3BhcnRhbi1uZy1icmFpbi1hY2NvcmRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, signal, model, computed, input, booleanAttribute, Directive, ElementRef, effect, untracked, afterNextRender } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, signal, model, computed, input, booleanAttribute, Directive, ElementRef, DestroyRef, NgZone, PLATFORM_ID, effect, untracked, afterNextRender } from '@angular/core';
|
|
3
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
4
|
import { measureDimensions } from '@spartan-ng/brain/core';
|
|
4
5
|
|
|
5
6
|
const BrnCollapsibleToken = new InjectionToken('BrnCollapsibleToken');
|
|
@@ -62,6 +63,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
62
63
|
class BrnCollapsibleContent {
|
|
63
64
|
_config = injectBrnCollapsibleConfig();
|
|
64
65
|
_elementRef = inject(ElementRef);
|
|
66
|
+
_destroyRef = inject(DestroyRef);
|
|
67
|
+
_ngZone = inject(NgZone);
|
|
68
|
+
_platformId = inject(PLATFORM_ID);
|
|
65
69
|
_collapsible = injectBrnCollapsible();
|
|
66
70
|
_width = signal(null);
|
|
67
71
|
_height = signal(null);
|
|
@@ -81,9 +85,35 @@ class BrnCollapsibleContent {
|
|
|
81
85
|
untracked(() => collapsible.contentId.set(id));
|
|
82
86
|
});
|
|
83
87
|
afterNextRender(() => {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
const hasValidDimensions = this._measureAndSetDimensions();
|
|
89
|
+
if (!hasValidDimensions) {
|
|
90
|
+
this._setupVisibilityObserver();
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
_measureAndSetDimensions() {
|
|
95
|
+
const { width, height } = measureDimensions(this._elementRef.nativeElement, this._config.measurementDisplay);
|
|
96
|
+
this._width.set(width);
|
|
97
|
+
this._height.set(height);
|
|
98
|
+
return width > 0 && height > 0;
|
|
99
|
+
}
|
|
100
|
+
_setupVisibilityObserver() {
|
|
101
|
+
if (!isPlatformBrowser(this._platformId))
|
|
102
|
+
return;
|
|
103
|
+
if (typeof IntersectionObserver === 'undefined')
|
|
104
|
+
return;
|
|
105
|
+
this._ngZone.runOutsideAngular(() => {
|
|
106
|
+
const observer = new IntersectionObserver((entries) => {
|
|
107
|
+
if (entries[0].isIntersecting) {
|
|
108
|
+
this._ngZone.run(() => {
|
|
109
|
+
if (this._measureAndSetDimensions()) {
|
|
110
|
+
observer.disconnect();
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}, { root: null, threshold: 0 });
|
|
115
|
+
observer.observe(this._elementRef.nativeElement);
|
|
116
|
+
this._destroyRef.onDestroy(() => observer.disconnect());
|
|
87
117
|
});
|
|
88
118
|
}
|
|
89
119
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsibleContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|