@spartan-ng/brain 0.0.1-alpha.719 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +3 -3
  2. package/fesm2022/spartan-ng-brain-accordion.mjs +7 -58
  3. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  4. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +1 -2
  5. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/spartan-ng-brain-autocomplete.mjs +3 -1
  7. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  8. package/fesm2022/spartan-ng-brain-collapsible.mjs +8 -56
  9. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
  10. package/fesm2022/spartan-ng-brain-combobox.mjs +22 -6
  11. package/fesm2022/spartan-ng-brain-combobox.mjs.map +1 -1
  12. package/fesm2022/spartan-ng-brain-core.mjs +89 -16
  13. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -1
  14. package/fesm2022/spartan-ng-brain-dialog.mjs +8 -7
  15. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  16. package/fesm2022/spartan-ng-brain-drawer.mjs +8 -8
  17. package/fesm2022/spartan-ng-brain-drawer.mjs.map +1 -1
  18. package/fesm2022/spartan-ng-brain-field.mjs +7 -2
  19. package/fesm2022/spartan-ng-brain-field.mjs.map +1 -1
  20. package/fesm2022/spartan-ng-brain-navigation-menu.mjs +124 -34
  21. package/fesm2022/spartan-ng-brain-navigation-menu.mjs.map +1 -1
  22. package/fesm2022/spartan-ng-brain-overlay.mjs +27 -14
  23. package/fesm2022/spartan-ng-brain-overlay.mjs.map +1 -1
  24. package/fesm2022/spartan-ng-brain-select.mjs +3 -1
  25. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  26. package/fesm2022/spartan-ng-brain-tooltip.mjs +97 -14
  27. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  28. package/package.json +6 -2
  29. package/types/spartan-ng-brain-accordion.d.ts +4 -22
  30. package/types/spartan-ng-brain-autocomplete.d.ts +1 -0
  31. package/types/spartan-ng-brain-collapsible.d.ts +5 -22
  32. package/types/spartan-ng-brain-combobox.d.ts +11 -2
  33. package/types/spartan-ng-brain-core.d.ts +40 -9
  34. package/types/spartan-ng-brain-dialog.d.ts +1 -3
  35. package/types/spartan-ng-brain-drawer.d.ts +3 -3
  36. package/types/spartan-ng-brain-navigation-menu.d.ts +9 -2
  37. package/types/spartan-ng-brain-overlay.d.ts +4 -5
  38. package/types/spartan-ng-brain-select.d.ts +1 -0
  39. package/types/spartan-ng-brain-tooltip.d.ts +38 -4
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-overlay.mjs","sources":["../../../../libs/brain/overlay/src/lib/brn-overlay-token.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-ref.ts","../../../../libs/brain/overlay/src/lib/brn-overlay.service.ts","../../../../libs/brain/overlay/src/lib/brn-overlay.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-close.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-content.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-trigger.ts","../../../../libs/brain/overlay/src/index.ts","../../../../libs/brain/overlay/src/spartan-ng-brain-overlay.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\n\nexport type BrnOverlayDefaultOptions = Omit<BrnOverlayOptions, 'direction' | 'id' | 'providers'>;\n\nconst createDefaultOptions = (): BrnOverlayDefaultOptions => ({\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: false,\n\tbackdropClass: '',\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: false,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trole: null,\n\tscrollStrategy: null,\n});\n\nconst cloneDefaultOptions = (options: BrnOverlayDefaultOptions): BrnOverlayDefaultOptions => ({\n\t...options,\n\tattachPositions: [...options.attachPositions],\n});\n\nexport const defaultOptions: BrnOverlayDefaultOptions = createDefaultOptions();\n\nexport const BRN_OVERLAY_DEFAULT_OPTIONS = new InjectionToken<BrnOverlayDefaultOptions>('brn-overlay-default-options', {\n\tprovidedIn: 'root',\n\tfactory: createDefaultOptions,\n});\n\nexport function provideBrnOverlayDefaultOptions(options: Partial<BrnOverlayDefaultOptions>): ValueProvider {\n\treturn {\n\t\tprovide: BRN_OVERLAY_DEFAULT_OPTIONS,\n\t\tuseValue: cloneDefaultOptions({ ...createDefaultOptions(), ...options }),\n\t};\n}\n\nexport function injectBrnOverlayDefaultOptions(): BrnOverlayDefaultOptions {\n\treturn cloneDefaultOptions(inject(BRN_OVERLAY_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions);\n}\n\nexport const BRN_OVERLAY_DATA = new InjectionToken<unknown>('brn-overlay-data');\n\nexport function injectBrnOverlayContext<OverlayContext = unknown>() {\n\treturn inject(BRN_OVERLAY_DATA) as OverlayContext;\n}\n","import type { OverlayRef } from '@angular/cdk/overlay';\nimport { afterNextRender, computed, type Injector, signal } from '@angular/core';\nimport { cssClassesToArray, getActiveElementAnimations, waitForAnimations } from '@spartan-ng/brain/core';\nimport { type Observable, ReplaySubject, Subject } from 'rxjs';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport type { BrnOverlayDismissReason, BrnOverlayPhase, BrnOverlayState } from './brn-overlay-state';\n\nexport class BrnOverlayRef<OverlayResult = unknown> {\n\tprivate readonly _closing = new Subject<void>();\n\tpublic readonly closing$ = this._closing.asObservable();\n\n\tprivate readonly _closed = new ReplaySubject<OverlayResult | undefined>(1);\n\tpublic readonly closed$: Observable<OverlayResult | undefined> = this._closed.asObservable();\n\n\tprivate readonly _stateChanged = new ReplaySubject<BrnOverlayState>(1);\n\tpublic readonly stateChanged$ = this._stateChanged.asObservable();\n\n\tprivate readonly _phase = signal<BrnOverlayPhase>('open');\n\tpublic readonly phase = this._phase.asReadonly();\n\tpublic readonly state = computed<BrnOverlayState>(() => (this._phase() === 'open' ? 'open' : 'closed'));\n\n\tprivate _closeGeneration = 0;\n\tprivate _panelClasses: string[];\n\tprivate _backdropClasses: string[];\n\n\tpublic get open(): boolean {\n\t\treturn this._phase() === 'open';\n\t}\n\n\tpublic get id(): string {\n\t\treturn this.initialOptions.id;\n\t}\n\n\tconstructor(\n\t\tprivate readonly _overlayRef: OverlayRef,\n\t\tprivate readonly _injector: Injector,\n\t\tpublic readonly overlayId: number,\n\t\tprivate readonly initialOptions: BrnOverlayOptions,\n\t\tprivate readonly _onDisposed: () => void,\n\t) {\n\t\tthis._panelClasses = cssClassesToArray(initialOptions.panelClass);\n\t\tthis._backdropClasses = cssClassesToArray(initialOptions.backdropClass);\n\t\tthis._setDataState('open');\n\t\tthis._stateChanged.next('open');\n\t}\n\n\tpublic close(result?: OverlayResult): void {\n\t\tif (!this.open) return;\n\n\t\tconst generation = ++this._closeGeneration;\n\t\tconst animationsBeforeClose = new Set(this._getActiveAnimations());\n\n\t\tthis._phase.set('closing');\n\t\tthis._setDataState('closed');\n\t\tthis._closing.next();\n\t\tthis._stateChanged.next('closed');\n\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tvoid this._finishClose(generation, animationsBeforeClose, result);\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tpublic dismiss(reason: BrnOverlayDismissReason): boolean {\n\t\tconst options = this.initialOptions;\n\t\tif (!this.open || options.disableClose) return false;\n\t\tif (reason === 'backdrop' && !options.closeOnBackdropClick) return false;\n\t\tif (reason === 'outside' && !options.closeOnOutsidePointerEvents) return false;\n\n\t\tthis.close();\n\t\treturn true;\n\t}\n\n\tpublic reopen(): void {\n\t\tif (this._phase() !== 'closing') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._phase.set('open');\n\t\tthis._setDataState('open');\n\t\tthis._stateChanged.next('open');\n\t}\n\n\tpublic forceClose(result?: OverlayResult): void {\n\t\tif (this._phase() === 'closed') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._dispose(result);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tif (this._panelClasses.length) this._overlayRef.removePanelClass(this._panelClasses);\n\t\tthis._panelClasses = cssClassesToArray(panelClass);\n\t\tif (this._panelClasses.length) this._overlayRef.addPanelClass(this._panelClasses);\n\t}\n\n\tpublic setBackdropClass(backdropClass: string | string[] | null | undefined): void {\n\t\tconst backdrop = this._overlayRef.backdropElement;\n\t\tif (!backdrop) return;\n\n\t\tbackdrop.classList.remove(...this._backdropClasses);\n\t\tthis._backdropClasses = cssClassesToArray(backdropClass);\n\t\tbackdrop.classList.add(...this._backdropClasses);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._overlayRef.updatePosition();\n\t}\n\n\tprivate async _finishClose(\n\t\tgeneration: number,\n\t\tanimationsBeforeClose: ReadonlySet<Animation>,\n\t\tresult?: OverlayResult,\n\t): Promise<void> {\n\t\tif (generation !== this._closeGeneration || this._phase() !== 'closing') return;\n\n\t\tconst exitAnimations = this._getActiveAnimations().filter((animation) => !animationsBeforeClose.has(animation));\n\t\tawait waitForAnimations(exitAnimations);\n\n\t\tif (generation === this._closeGeneration && this._phase() === 'closing') {\n\t\t\tthis._dispose(result);\n\t\t}\n\t}\n\n\tprivate _dispose(result?: OverlayResult): void {\n\t\tthis._phase.set('closed');\n\t\tthis._overlayRef.dispose();\n\t\tthis._onDisposed();\n\t\tthis._closed.next(result);\n\t\tthis._closed.complete();\n\t\tthis._closing.complete();\n\t\tthis._stateChanged.complete();\n\t}\n\n\tprivate _getActiveAnimations(): Animation[] {\n\t\treturn getActiveElementAnimations([this._overlayRef.overlayElement, this._overlayRef.backdropElement]);\n\t}\n\n\tprivate _setDataState(state: BrnOverlayState): void {\n\t\tthis._overlayRef.overlayElement.setAttribute('data-state', state);\n\t\tthis._overlayRef.backdropElement?.setAttribute('data-state', state);\n\t}\n}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { Overlay, OverlayPositionBuilder, type OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal, type ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport type { ViewContainerRef } from '@angular/core';\nimport { afterNextRender, inject, Injectable, Injector, type StaticProvider, TemplateRef } from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayDismissReason } from './brn-overlay-state';\nimport { BRN_OVERLAY_DATA, injectBrnOverlayDefaultOptions } from './brn-overlay-token';\n\nlet overlaySequence = 0;\n\nexport type BrnOverlayContext<T> = T & { close: (result?: unknown) => void };\n\n@Injectable({ providedIn: 'root' })\nexport class BrnOverlayService {\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _interactivityChecker = inject(InteractivityChecker);\n\tprivate readonly _defaultOptions = injectBrnOverlayDefaultOptions();\n\n\tprivate readonly _openOverlayIds = new Set<string>();\n\tprivate readonly _overlayStack: OverlayRef[] = [];\n\n\tpublic open<OverlayContext, OverlayResult = unknown>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: OverlayContext,\n\t\toptions?: Partial<BrnOverlayOptions>,\n\t): BrnOverlayRef<OverlayResult> {\n\t\tconst overlayId = ++overlaySequence;\n\t\tconst mergedOptions: BrnOverlayOptions = {\n\t\t\t...this._defaultOptions,\n\t\t\t...options,\n\t\t\tid: options?.id ?? `brn-overlay-${overlayId}`,\n\t\t};\n\n\t\tif (this._openOverlayIds.has(mergedOptions.id)) {\n\t\t\tthrow new Error(`Overlay with ID: ${mergedOptions.id} already exists`);\n\t\t}\n\n\t\tconst overlayRef = this._overlay.create({\n\t\t\tpositionStrategy:\n\t\t\t\tmergedOptions.positionStrategy ??\n\t\t\t\t(mergedOptions.attachTo && mergedOptions.attachPositions.length\n\t\t\t\t\t? this._positionBuilder\n\t\t\t\t\t\t\t.flexibleConnectedTo(mergedOptions.attachTo)\n\t\t\t\t\t\t\t.withPositions(mergedOptions.attachPositions)\n\t\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically()),\n\t\t\tscrollStrategy:\n\t\t\t\tmergedOptions.scrollStrategy === 'close'\n\t\t\t\t\t? this._scrollStrategies.close()\n\t\t\t\t\t: mergedOptions.scrollStrategy === 'reposition'\n\t\t\t\t\t\t? this._scrollStrategies.reposition()\n\t\t\t\t\t\t: (mergedOptions.scrollStrategy ?? this._scrollStrategies.block()),\n\t\t\thasBackdrop: mergedOptions.hasBackdrop,\n\t\t\tpanelClass: mergedOptions.panelClass,\n\t\t\tbackdropClass: mergedOptions.backdropClass,\n\t\t\tdirection: mergedOptions.direction,\n\t\t});\n\n\t\tconst destroyed = new Subject<void>();\n\t\tconst brnOverlayRef = new BrnOverlayRef<OverlayResult>(overlayRef, this._injector, overlayId, mergedOptions, () => {\n\t\t\tdestroyed.next();\n\t\t\tdestroyed.complete();\n\t\t\tthis._openOverlayIds.delete(mergedOptions.id);\n\t\t\tthis._removeFromStack(overlayRef);\n\t\t});\n\n\t\tconst contextOrData: BrnOverlayContext<OverlayContext> = {\n\t\t\t...(context as OverlayContext),\n\t\t\tclose: (result: unknown = undefined) => brnOverlayRef.close(result as OverlayResult),\n\t\t};\n\t\tconst portalInjector = Injector.create({\n\t\t\tparent: vcr?.injector ?? this._injector,\n\t\t\tproviders: this._createProviders(brnOverlayRef, contextOrData, mergedOptions),\n\t\t});\n\n\t\tthis._configureElement(overlayRef, mergedOptions);\n\t\tthis._openOverlayIds.add(mergedOptions.id);\n\t\tthis._overlayStack.push(overlayRef);\n\t\tthis._connectDismissalEvents(brnOverlayRef, overlayRef, destroyed);\n\t\toverlayRef\n\t\t\t.detachments()\n\t\t\t.pipe(takeUntil(destroyed))\n\t\t\t.subscribe(() => brnOverlayRef.forceClose());\n\n\t\ttry {\n\t\t\tif (content instanceof TemplateRef) {\n\t\t\t\tif (!vcr) throw new Error('A ViewContainerRef is required to open an overlay from a TemplateRef');\n\t\t\t\toverlayRef.attach(new TemplatePortal(content, vcr, { $implicit: contextOrData }, portalInjector));\n\t\t\t} else {\n\t\t\t\toverlayRef.attach(new ComponentPortal(content, vcr, portalInjector));\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tbrnOverlayRef.forceClose();\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (mergedOptions.autoFocus) {\n\t\t\tthis._focusInitialElement(overlayRef, destroyed);\n\t\t}\n\n\t\treturn brnOverlayRef;\n\t}\n\n\t/**\n\t * Moves focus to the first tabbable element inside the overlay once its content has rendered.\n\t * If the overlay has no tabbable content (e.g. a select listbox), focus is left untouched so the\n\t * trigger keeps it - this is what keeps the `aria-activedescendant` keyboard model working.\n\t */\n\tprivate _focusInitialElement(overlayRef: OverlayRef, destroyed: Subject<void>): void {\n\t\tlet cancelled = false;\n\t\tdestroyed.subscribe(() => (cancelled = true));\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tif (cancelled) return;\n\t\t\t\tconst root = overlayRef.overlayElement;\n\t\t\t\tif (!root) return;\n\t\t\t\tconst target = this._firstTabbableElement(root);\n\t\t\t\ttarget?.focus();\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _firstTabbableElement(root: HTMLElement): HTMLElement | null {\n\t\tconst candidates = root.querySelectorAll<HTMLElement>(\n\t\t\t'a[href], button, input, textarea, select, [tabindex], [contenteditable=\"true\"]',\n\t\t);\n\t\tfor (const candidate of Array.from(candidates)) {\n\t\t\tif (this._interactivityChecker.isTabbable(candidate)) return candidate;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate _createProviders<Result, Context>(\n\t\tref: BrnOverlayRef<Result>,\n\t\tcontext: BrnOverlayContext<Context>,\n\t\toptions: BrnOverlayOptions,\n\t): StaticProvider[] {\n\t\tconst providers: StaticProvider[] = [\n\t\t\t{ provide: BrnOverlayRef, useValue: ref },\n\t\t\t{ provide: BRN_OVERLAY_DATA, useValue: context },\n\t\t];\n\t\tif (options.providers) {\n\t\t\tproviders.push(...(typeof options.providers === 'function' ? options.providers() : options.providers));\n\t\t}\n\t\treturn providers;\n\t}\n\n\tprivate _configureElement(overlayRef: OverlayRef, options: BrnOverlayOptions): void {\n\t\tconst element = overlayRef.overlayElement;\n\t\telement.id = options.id;\n\t\tif (options.role) {\n\t\t\telement.tabIndex = -1;\n\t\t\telement.setAttribute('role', options.role);\n\t\t}\n\t}\n\n\tprivate _connectDismissalEvents<Result>(\n\t\tref: BrnOverlayRef<Result>,\n\t\toverlayRef: OverlayRef,\n\t\tdestroyed: Subject<void>,\n\t): void {\n\t\tmerge(\n\t\t\toverlayRef.outsidePointerEvents().pipe(map((event) => ({ event, reason: 'outside' as const }))),\n\t\t\toverlayRef.backdropClick().pipe(map((event) => ({ event, reason: 'backdrop' as const }))),\n\t\t\toverlayRef.keydownEvents().pipe(\n\t\t\t\tfilter((event) => event.key === 'Escape'),\n\t\t\t\tmap((event) => ({ event, reason: 'escape' as const })),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(takeUntil(destroyed))\n\t\t\t.subscribe(({ event, reason }) => this._requestDismissal(ref, overlayRef, reason, event));\n\t}\n\n\tprivate _requestDismissal<Result>(\n\t\tref: BrnOverlayRef<Result>,\n\t\toverlayRef: OverlayRef,\n\t\treason: BrnOverlayDismissReason,\n\t\tevent: MouseEvent | KeyboardEvent,\n\t): void {\n\t\tif (this._overlayStack.at(-1) !== overlayRef) return;\n\t\tif (ref.dismiss(reason) && reason === 'escape') event.preventDefault();\n\t}\n\n\tprivate _removeFromStack(overlayRef: OverlayRef): void {\n\t\tconst index = this._overlayStack.indexOf(overlayRef);\n\t\tif (index !== -1) this._overlayStack.splice(index, 1);\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\ttype Signal,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { cssClassesToArray } from '@spartan-ng/brain/core';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport type { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayState } from './brn-overlay-state';\nimport type { BrnOverlayDefaultOptions } from './brn-overlay-token';\nimport { injectBrnOverlayDefaultOptions } from './brn-overlay-token';\nimport { BrnOverlayService } from './brn-overlay.service';\n\nlet overlayIdSequence = 0;\n\ntype OverlayContentRegistration<TContext> = {\n\ttemplate: TemplateRef<unknown>;\n\tcontext: Signal<TContext | undefined>;\n\tpanelClass: Signal<string | null | undefined>;\n};\n\n@Directive({\n\tselector: '[brnOverlay],brn-overlay',\n\texportAs: 'brnOverlay',\n})\nexport class BrnOverlay<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _overlayService = inject(BrnOverlayService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprotected readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _directionality = inject(Directionality);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprotected readonly _defaultOptions = this.getDefaultOptions();\n\n\tprivate readonly _overlayRef = signal<BrnOverlayRef<TResult> | undefined>(undefined);\n\tprivate readonly _origin = signal<BrnOverlayOptions['attachTo']>(undefined);\n\tprivate readonly _panelClass = signal<string | string[] | null | undefined>(undefined);\n\tprivate readonly _backdropClass = signal<string | string[] | null | undefined>(undefined);\n\tprivate _content: OverlayContentRegistration<TContext> | undefined;\n\tprivate _destroyed = false;\n\tprivate readonly _resolvedBackdropClass = computed(() => this._backdropClass() ?? this._defaultOptions.backdropClass);\n\tprivate readonly _resolvedPanelClass = computed(\n\t\t() => this._panelClass() ?? this._content?.panelClass() ?? this._defaultOptions.panelClass,\n\t);\n\n\tpublic readonly closed = output<TResult>();\n\tpublic readonly stateChanged = output<BrnOverlayState>();\n\tpublic readonly stateComputed = computed<BrnOverlayState>(() => this._overlayRef()?.state() ?? 'closed');\n\n\tpublic readonly id = input<string>(`brn-overlay-${++overlayIdSequence}`);\n\tpublic readonly state = input<BrnOverlayState | null>(null);\n\tpublic readonly role = input<BrnOverlayOptions['role']>(this._defaultOptions.role);\n\tpublic readonly hasBackdrop = input<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly positionStrategy = input<BrnOverlayOptions['positionStrategy']>(\n\t\tthis._defaultOptions.positionStrategy,\n\t);\n\tpublic readonly scrollStrategy = input<BrnOverlayOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\tpublic readonly closeOnOutsidePointerEvents = input<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{ transform: booleanAttribute },\n\t);\n\tpublic readonly closeOnBackdropClick = input<boolean, BooleanInput>(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly attachTo = input<BrnOverlayOptions['attachTo']>(this._defaultOptions.attachTo);\n\tpublic readonly attachPositions = input<BrnOverlayOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly autoFocus = input<boolean, BooleanInput>(this._defaultOptions.autoFocus, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _options = computed<Partial<BrnOverlayOptions>>(() => ({\n\t\tid: this.id(),\n\t\trole: this.role(),\n\t\tdirection: this._directionality.valueSignal(),\n\t\thasBackdrop: this.hasBackdrop(),\n\t\tpositionStrategy: this.getPositionStrategy(),\n\t\tscrollStrategy: this.getScrollStrategy(),\n\t\tcloseOnOutsidePointerEvents: this.closeOnOutsidePointerEvents(),\n\t\tcloseOnBackdropClick: this.getCloseOnBackdropClick(),\n\t\tattachTo: this.getAttachTo(),\n\t\tattachPositions: this.getAttachPositions(),\n\t\tdisableClose: this.disableClose(),\n\t\tautoFocus: this.autoFocus(),\n\t\tbackdropClass: cssClassesToArray(this._resolvedBackdropClass()),\n\t\tpanelClass: cssClassesToArray(this._resolvedPanelClass()),\n\t}));\n\n\tconstructor() {\n\t\t// Registered first so the flag is set before forceClose() below tears the overlay down and\n\t\t// emits on closed$/stateChanged$ - otherwise those emits hit a destroyed OutputRef (NG0953).\n\t\tthis._destroyRef.onDestroy(() => (this._destroyed = true));\n\t\tthis._destroyRef.onDestroy(() => this._overlayRef()?.forceClose());\n\t\tthis._syncPanelClass();\n\t\tthis._syncBackdropClass();\n\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') untracked(() => this.open());\n\t\t\t\t\tif (state === 'closed') untracked(() => this.close());\n\t\t\t\t},\n\t\t\t\t{ injector: this._injector },\n\t\t\t);\n\t\t});\n\t}\n\n\tprotected getDefaultOptions(): BrnOverlayDefaultOptions {\n\t\treturn injectBrnOverlayDefaultOptions();\n\t}\n\n\tpublic open(): void {\n\t\tif (!this._content) return;\n\n\t\tconst currentRef = this._overlayRef();\n\t\tif (currentRef) {\n\t\t\tcurrentRef.reopen();\n\t\t\treturn;\n\t\t}\n\n\t\tconst elementToRestoreFocusTo = this._document.activeElement;\n\t\tconst overlayRef = this._overlayService.open<TContext, TResult>(\n\t\t\tthis._content.template,\n\t\t\tthis._vcr,\n\t\t\tthis._content.context() ?? ({} as TContext),\n\t\t\tthis._options(),\n\t\t);\n\t\tthis._overlayRef.set(overlayRef);\n\n\t\toverlayRef.stateChanged$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((state) => {\n\t\t\tif (!this._destroyed) this.stateChanged.emit(state);\n\t\t});\n\n\t\toverlayRef.closed$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tif (this._overlayRef() === overlayRef) this._overlayRef.set(undefined);\n\t\t\tthis._restoreFocus(elementToRestoreFocusTo);\n\t\t\tif (!this._destroyed) this.closed.emit(result as TResult);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult): void {\n\t\tthis._overlayRef()?.close(result);\n\t}\n\n\tpublic toggle(result?: TResult): void {\n\t\tthis.stateComputed() === 'open' ? this.close(result) : this.open();\n\t}\n\n\tpublic registerContent(\n\t\ttemplate: TemplateRef<unknown>,\n\t\tcontext: Signal<TContext | undefined>,\n\t\tpanelClass: Signal<string | null | undefined>,\n\t): void {\n\t\tthis._content = { template, context, panelClass };\n\t}\n\n\tpublic setOrigin(origin: BrnOverlayOptions['attachTo']): void {\n\t\tthis._origin.set(origin);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | string[] | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._overlayRef()?.setBackdropClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tthis._panelClass.set(panelClass);\n\t\tthis._overlayRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._overlayRef()?.updatePosition();\n\t}\n\n\tprotected getAttachTo(): BrnOverlayOptions['attachTo'] {\n\t\treturn this._origin() ?? this.attachTo();\n\t}\n\n\tprotected getAttachPositions(): BrnOverlayOptions['attachPositions'] {\n\t\treturn this.attachPositions();\n\t}\n\n\tprotected getPositionStrategy(): BrnOverlayOptions['positionStrategy'] {\n\t\treturn this.positionStrategy();\n\t}\n\n\tprotected getCloseOnBackdropClick(): boolean {\n\t\treturn this.closeOnBackdropClick();\n\t}\n\n\tprivate getScrollStrategy(): ScrollStrategy | null | undefined {\n\t\tconst strategy = this.scrollStrategy();\n\t\tif (strategy === 'close') return this._scrollStrategies.close();\n\t\tif (strategy === 'reposition') return this._scrollStrategies.reposition();\n\t\treturn strategy;\n\t}\n\n\tprivate _restoreFocus(element: Element | null): void {\n\t\tconst HTMLElementCtor = this._document.defaultView?.HTMLElement;\n\t\tif (\n\t\t\t!HTMLElementCtor ||\n\t\t\t!(element instanceof HTMLElementCtor) ||\n\t\t\telement === this._document.body ||\n\t\t\t!element.isConnected\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = this._document.activeElement;\n\t\tconst shouldRestoreFocus = activeElement === this._document.body || !activeElement || !activeElement.isConnected;\n\n\t\tif (shouldRestoreFocus) element.focus({ preventScroll: true });\n\t}\n\n\tprivate _syncPanelClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst overlayRef = this._overlayRef();\n\t\t\t\tif (!overlayRef) return;\n\n\t\t\t\tconst panelClass = this._resolvedPanelClass();\n\t\t\t\tuntracked(() => overlayRef.setPanelClass(panelClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _syncBackdropClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst overlayRef = this._overlayRef();\n\t\t\t\tif (!overlayRef) return;\n\n\t\t\t\tconst backdropClass = this._resolvedBackdropClass();\n\t\t\t\tuntracked(() => overlayRef.setBackdropClass(backdropClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnOverlayRef } from './brn-overlay-ref';\n\n@Directive({\n\tselector: 'button[brnOverlayClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnOverlayClose {\n\tprivate readonly _brnOverlayRef = inject(BrnOverlayRef);\n\n\tpublic close(): void {\n\t\tthis._brnOverlayRef.close();\n\t}\n}\n","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnOverlay } from './brn-overlay';\nimport { BrnOverlayRef } from './brn-overlay-ref';\n\n@Directive({\n\tselector: '[brnOverlayContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnOverlayContent)],\n})\nexport class BrnOverlayContent<T extends Record<string, unknown>> {\n\tprivate readonly _brnOverlay = inject<BrnOverlay<unknown, T>>(BrnOverlay, { optional: true });\n\tprivate readonly _brnOverlayRef = inject(BrnOverlayRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\n\tpublic readonly state = computed(() => this._brnOverlay?.stateComputed() ?? this._brnOverlayRef?.state() ?? 'closed');\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tthis._brnOverlay?.registerContent(this._template, this.context, this.className);\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnOverlay } from './brn-overlay';\nimport { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayState } from './brn-overlay-state';\n\nlet triggerIdSequence = 0;\n\n@Directive({\n\tselector: 'button[brnOverlayTrigger],button[brnOverlayTriggerFor]',\n\texportAs: 'brnOverlayTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'toggle()',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true' : 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'overlayId()',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnOverlayTrigger {\n\tprivate readonly _injectedOverlay = inject(BrnOverlay, { optional: true });\n\tprivate readonly _overlayRef = inject(BrnOverlayRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-overlay-trigger-${++triggerIdSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\tpublic readonly brnOverlayTriggerFor = input<BrnOverlay | undefined>(undefined);\n\n\tpublic readonly state = computed<BrnOverlayState>(\n\t\t() => this.getOverlay()?.stateComputed() ?? this._overlayRef?.state() ?? 'closed',\n\t);\n\tpublic readonly overlayId = computed(() => this.getOverlay()?.id() ?? this._overlayRef?.id ?? null);\n\n\tprotected getOverlay(): BrnOverlay | undefined {\n\t\treturn this.brnOverlayTriggerFor() ?? this._injectedOverlay ?? undefined;\n\t}\n\n\tpublic open(): void {\n\t\tthis.getOverlay()?.open();\n\t}\n\n\tpublic toggle(): void {\n\t\tthis.getOverlay()?.toggle();\n\t}\n}\n","import { BrnOverlay } from './lib/brn-overlay';\nimport { BrnOverlayClose } from './lib/brn-overlay-close';\nimport { BrnOverlayContent } from './lib/brn-overlay-content';\nimport { BrnOverlayTrigger } from './lib/brn-overlay-trigger';\n\nexport * from './lib/brn-overlay';\nexport * from './lib/brn-overlay-close';\nexport * from './lib/brn-overlay-content';\nexport * from './lib/brn-overlay-options';\nexport * from './lib/brn-overlay-ref';\nexport * from './lib/brn-overlay-state';\nexport * from './lib/brn-overlay-token';\nexport * from './lib/brn-overlay-trigger';\nexport * from './lib/brn-overlay.service';\n\nexport const BrnOverlayImports = [BrnOverlay, BrnOverlayTrigger, BrnOverlayClose, BrnOverlayContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-overlay.mjs","sources":["../../../../libs/brain/overlay/src/lib/brn-overlay-token.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-ref.ts","../../../../libs/brain/overlay/src/lib/brn-overlay.service.ts","../../../../libs/brain/overlay/src/lib/brn-overlay.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-close.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-content.ts","../../../../libs/brain/overlay/src/lib/brn-overlay-trigger.ts","../../../../libs/brain/overlay/src/index.ts","../../../../libs/brain/overlay/src/spartan-ng-brain-overlay.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\n\nexport type BrnOverlayDefaultOptions = Omit<BrnOverlayOptions, 'direction' | 'id' | 'providers'>;\n\nconst createDefaultOptions = (): BrnOverlayDefaultOptions => ({\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: false,\n\tbackdropClass: '',\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: false,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trole: null,\n\tscrollStrategy: null,\n});\n\nconst cloneDefaultOptions = (options: BrnOverlayDefaultOptions): BrnOverlayDefaultOptions => ({\n\t...options,\n\tattachPositions: [...options.attachPositions],\n});\n\nexport const defaultOptions: BrnOverlayDefaultOptions = createDefaultOptions();\n\nexport const BRN_OVERLAY_DEFAULT_OPTIONS = new InjectionToken<BrnOverlayDefaultOptions>('brn-overlay-default-options', {\n\tprovidedIn: 'root',\n\tfactory: createDefaultOptions,\n});\n\nexport function provideBrnOverlayDefaultOptions(options: Partial<BrnOverlayDefaultOptions>): ValueProvider {\n\treturn {\n\t\tprovide: BRN_OVERLAY_DEFAULT_OPTIONS,\n\t\tuseValue: cloneDefaultOptions({ ...createDefaultOptions(), ...options }),\n\t};\n}\n\nexport function injectBrnOverlayDefaultOptions(): BrnOverlayDefaultOptions {\n\treturn cloneDefaultOptions(inject(BRN_OVERLAY_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions);\n}\n\nexport const BRN_OVERLAY_DATA = new InjectionToken<unknown>('brn-overlay-data');\n\nexport function injectBrnOverlayContext<OverlayContext = unknown>() {\n\treturn inject(BRN_OVERLAY_DATA) as OverlayContext;\n}\n","import type { OverlayRef } from '@angular/cdk/overlay';\nimport { afterNextRender, computed, type Injector, signal } from '@angular/core';\nimport { cssClassesToArray, getActiveElementAnimations, waitForAnimations } from '@spartan-ng/brain/core';\nimport { type Observable, ReplaySubject, Subject } from 'rxjs';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport type { BrnOverlayDismissReason, BrnOverlayPhase, BrnOverlayState } from './brn-overlay-state';\n\nexport class BrnOverlayRef<OverlayResult = unknown> {\n\tprivate readonly _closing = new Subject<void>();\n\tpublic readonly closing$ = this._closing.asObservable();\n\n\tprivate readonly _closed = new ReplaySubject<OverlayResult | undefined>(1);\n\tpublic readonly closed$: Observable<OverlayResult | undefined> = this._closed.asObservable();\n\n\tprivate readonly _stateChanged = new ReplaySubject<BrnOverlayState>(1);\n\tpublic readonly stateChanged$ = this._stateChanged.asObservable();\n\n\tprivate readonly _phase = signal<BrnOverlayPhase>('open');\n\tpublic readonly phase = this._phase.asReadonly();\n\tpublic readonly state = computed<BrnOverlayState>(() => (this._phase() === 'open' ? 'open' : 'closed'));\n\n\tprivate _closeGeneration = 0;\n\tprivate _panelClasses: string[];\n\tprivate _backdropClasses: string[];\n\n\tpublic get open(): boolean {\n\t\treturn this._phase() === 'open';\n\t}\n\n\tpublic get id(): string {\n\t\treturn this.initialOptions.id;\n\t}\n\n\tconstructor(\n\t\tprivate readonly _overlayRef: OverlayRef,\n\t\tprivate readonly _injector: Injector,\n\t\tpublic readonly overlayId: number,\n\t\tprivate readonly initialOptions: BrnOverlayOptions,\n\t\tprivate readonly _onDisposed: () => void,\n\t) {\n\t\tthis._panelClasses = cssClassesToArray(initialOptions.panelClass);\n\t\tthis._backdropClasses = cssClassesToArray(initialOptions.backdropClass);\n\t\tthis._setDataState('open');\n\t\tthis._stateChanged.next('open');\n\t}\n\n\tpublic close(result?: OverlayResult): void {\n\t\tif (!this.open) return;\n\n\t\tconst generation = ++this._closeGeneration;\n\t\tconst animationsBeforeClose = new Set(this._getActiveAnimations());\n\n\t\tthis._phase.set('closing');\n\t\tthis._setDataState('closed');\n\t\tthis._closing.next();\n\t\tthis._stateChanged.next('closed');\n\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tvoid this._finishClose(generation, animationsBeforeClose, result);\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tpublic dismiss(reason: BrnOverlayDismissReason, target?: EventTarget | null): boolean {\n\t\tconst options = this.initialOptions;\n\t\tif (!this.open || options.disableClose) return false;\n\t\tif (reason === 'outside') {\n\t\t\tif (!options.closeOnOutsidePointerEvents) return false;\n\t\t\t// The trigger lives outside the overlay panel, so CDK reports clicks on it as \"outside\".\n\t\t\t// Treat them as inside the widget and let the trigger's own handler toggle instead - this\n\t\t\t// avoids a close/re-open race that flickers the open/close animation.\n\t\t\tif (this._isWithinOrigin(target)) return false;\n\t\t}\n\n\t\tthis.close();\n\t\treturn true;\n\t}\n\n\t/** Whether the event target sits within the overlay's origin (its trigger/anchor element). */\n\tprivate _isWithinOrigin(target?: EventTarget | null): boolean {\n\t\tconst origin = this.initialOptions.attachTo;\n\t\tif (!origin || !(target instanceof Node)) return false;\n\t\tconst element = origin instanceof Element ? origin : 'nativeElement' in origin ? origin.nativeElement : null;\n\t\treturn element instanceof Element && element.contains(target);\n\t}\n\n\tpublic reopen(): void {\n\t\tif (this._phase() !== 'closing') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._phase.set('open');\n\t\tthis._setDataState('open');\n\t\tthis._stateChanged.next('open');\n\t}\n\n\tpublic forceClose(result?: OverlayResult): void {\n\t\tif (this._phase() === 'closed') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._dispose(result);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tif (this._panelClasses.length) this._overlayRef.removePanelClass(this._panelClasses);\n\t\tthis._panelClasses = cssClassesToArray(panelClass);\n\t\tif (this._panelClasses.length) this._overlayRef.addPanelClass(this._panelClasses);\n\t}\n\n\tpublic setBackdropClass(backdropClass: string | string[] | null | undefined): void {\n\t\tconst backdrop = this._overlayRef.backdropElement;\n\t\tif (!backdrop) return;\n\n\t\tbackdrop.classList.remove(...this._backdropClasses);\n\t\tthis._backdropClasses = cssClassesToArray(backdropClass);\n\t\tbackdrop.classList.add(...this._backdropClasses);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._overlayRef.updatePosition();\n\t}\n\n\tprivate async _finishClose(\n\t\tgeneration: number,\n\t\tanimationsBeforeClose: ReadonlySet<Animation>,\n\t\tresult?: OverlayResult,\n\t): Promise<void> {\n\t\tif (generation !== this._closeGeneration || this._phase() !== 'closing') return;\n\n\t\tconst exitAnimations = this._getActiveAnimations().filter((animation) => !animationsBeforeClose.has(animation));\n\t\t// Pin each exit animation to its final frame. tw-animate-css uses `animation-fill-mode: none`,\n\t\t// so a finished exit reverts the element to its visible state in the gap before we dispose it -\n\t\t// that one-frame snap-back is the flicker. updateTiming pins only the animations we await.\n\t\tfor (const animation of exitAnimations) {\n\t\t\tanimation.effect?.updateTiming({ fill: 'forwards' });\n\t\t}\n\t\tawait waitForAnimations(exitAnimations);\n\n\t\tif (generation === this._closeGeneration && this._phase() === 'closing') {\n\t\t\tthis._dispose(result);\n\t\t}\n\t}\n\n\tprivate _dispose(result?: OverlayResult): void {\n\t\tthis._phase.set('closed');\n\t\tthis._overlayRef.dispose();\n\t\tthis._onDisposed();\n\t\tthis._closed.next(result);\n\t\tthis._closed.complete();\n\t\tthis._closing.complete();\n\t\tthis._stateChanged.complete();\n\t}\n\n\tprivate _getActiveAnimations(): Animation[] {\n\t\treturn getActiveElementAnimations([this._overlayRef.overlayElement, this._overlayRef.backdropElement]);\n\t}\n\n\tprivate _setDataState(state: BrnOverlayState): void {\n\t\tthis._overlayRef.overlayElement.setAttribute('data-state', state);\n\t\tthis._overlayRef.backdropElement?.setAttribute('data-state', state);\n\t}\n}\n","import { InteractivityChecker } from '@angular/cdk/a11y';\nimport { Overlay, OverlayPositionBuilder, type OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal, type ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport type { ViewContainerRef } from '@angular/core';\nimport { afterNextRender, inject, Injectable, Injector, type StaticProvider, TemplateRef } from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayDismissReason } from './brn-overlay-state';\nimport { BRN_OVERLAY_DATA, injectBrnOverlayDefaultOptions } from './brn-overlay-token';\n\nlet overlaySequence = 0;\n\nexport type BrnOverlayContext<T> = T & { close: (result?: unknown) => void };\n\n@Injectable({ providedIn: 'root' })\nexport class BrnOverlayService {\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _interactivityChecker = inject(InteractivityChecker);\n\tprivate readonly _defaultOptions = injectBrnOverlayDefaultOptions();\n\n\tprivate readonly _openOverlayIds = new Set<string>();\n\tprivate readonly _overlayStack: OverlayRef[] = [];\n\n\tpublic open<OverlayContext, OverlayResult = unknown>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: OverlayContext,\n\t\toptions?: Partial<BrnOverlayOptions>,\n\t): BrnOverlayRef<OverlayResult> {\n\t\tconst overlayId = ++overlaySequence;\n\t\tconst mergedOptions: BrnOverlayOptions = {\n\t\t\t...this._defaultOptions,\n\t\t\t...options,\n\t\t\tid: options?.id ?? `brn-overlay-${overlayId}`,\n\t\t};\n\n\t\tif (this._openOverlayIds.has(mergedOptions.id)) {\n\t\t\tthrow new Error(`Overlay with ID: ${mergedOptions.id} already exists`);\n\t\t}\n\n\t\tconst overlayRef = this._overlay.create({\n\t\t\tpositionStrategy:\n\t\t\t\tmergedOptions.positionStrategy ??\n\t\t\t\t(mergedOptions.attachTo && mergedOptions.attachPositions.length\n\t\t\t\t\t? this._positionBuilder\n\t\t\t\t\t\t\t.flexibleConnectedTo(mergedOptions.attachTo)\n\t\t\t\t\t\t\t.withPositions(mergedOptions.attachPositions)\n\t\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically()),\n\t\t\tscrollStrategy:\n\t\t\t\tmergedOptions.scrollStrategy === 'close'\n\t\t\t\t\t? this._scrollStrategies.close()\n\t\t\t\t\t: mergedOptions.scrollStrategy === 'reposition'\n\t\t\t\t\t\t? this._scrollStrategies.reposition()\n\t\t\t\t\t\t: (mergedOptions.scrollStrategy ?? this._scrollStrategies.block()),\n\t\t\thasBackdrop: mergedOptions.hasBackdrop,\n\t\t\tpanelClass: mergedOptions.panelClass,\n\t\t\tbackdropClass: mergedOptions.backdropClass,\n\t\t\tdirection: mergedOptions.direction,\n\t\t});\n\n\t\tconst destroyed = new Subject<void>();\n\t\tconst brnOverlayRef = new BrnOverlayRef<OverlayResult>(overlayRef, this._injector, overlayId, mergedOptions, () => {\n\t\t\tdestroyed.next();\n\t\t\tdestroyed.complete();\n\t\t\tthis._openOverlayIds.delete(mergedOptions.id);\n\t\t\tthis._removeFromStack(overlayRef);\n\t\t});\n\n\t\tconst contextOrData: BrnOverlayContext<OverlayContext> = {\n\t\t\t...(context as OverlayContext),\n\t\t\tclose: (result: unknown = undefined) => brnOverlayRef.close(result as OverlayResult),\n\t\t};\n\t\tconst portalInjector = Injector.create({\n\t\t\tparent: vcr?.injector ?? this._injector,\n\t\t\tproviders: this._createProviders(brnOverlayRef, contextOrData, mergedOptions),\n\t\t});\n\n\t\tthis._configureElement(overlayRef, mergedOptions);\n\t\tthis._openOverlayIds.add(mergedOptions.id);\n\t\tthis._overlayStack.push(overlayRef);\n\t\tthis._connectDismissalEvents(brnOverlayRef, overlayRef, destroyed);\n\t\toverlayRef\n\t\t\t.detachments()\n\t\t\t.pipe(takeUntil(destroyed))\n\t\t\t.subscribe(() => brnOverlayRef.forceClose());\n\n\t\ttry {\n\t\t\tif (content instanceof TemplateRef) {\n\t\t\t\tif (!vcr) throw new Error('A ViewContainerRef is required to open an overlay from a TemplateRef');\n\t\t\t\toverlayRef.attach(new TemplatePortal(content, vcr, { $implicit: contextOrData }, portalInjector));\n\t\t\t} else {\n\t\t\t\toverlayRef.attach(new ComponentPortal(content, vcr, portalInjector));\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tbrnOverlayRef.forceClose();\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (mergedOptions.autoFocus) {\n\t\t\tthis._focusInitialElement(overlayRef, destroyed);\n\t\t}\n\n\t\treturn brnOverlayRef;\n\t}\n\n\t/**\n\t * Moves focus to the first tabbable element inside the overlay once its content has rendered.\n\t * If the overlay has no tabbable content (e.g. a select listbox), focus is left untouched so the\n\t * trigger keeps it - this is what keeps the `aria-activedescendant` keyboard model working.\n\t */\n\tprivate _focusInitialElement(overlayRef: OverlayRef, destroyed: Subject<void>): void {\n\t\tlet cancelled = false;\n\t\tdestroyed.subscribe(() => (cancelled = true));\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tif (cancelled) return;\n\t\t\t\tconst root = overlayRef.overlayElement;\n\t\t\t\tif (!root) return;\n\t\t\t\tconst target = this._firstTabbableElement(root);\n\t\t\t\ttarget?.focus();\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _firstTabbableElement(root: HTMLElement): HTMLElement | null {\n\t\tconst candidates = root.querySelectorAll<HTMLElement>(\n\t\t\t'a[href], button, input, textarea, select, [tabindex], [contenteditable=\"true\"]',\n\t\t);\n\t\tfor (const candidate of Array.from(candidates)) {\n\t\t\tif (this._interactivityChecker.isTabbable(candidate)) return candidate;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate _createProviders<Result, Context>(\n\t\tref: BrnOverlayRef<Result>,\n\t\tcontext: BrnOverlayContext<Context>,\n\t\toptions: BrnOverlayOptions,\n\t): StaticProvider[] {\n\t\tconst providers: StaticProvider[] = [\n\t\t\t{ provide: BrnOverlayRef, useValue: ref },\n\t\t\t{ provide: BRN_OVERLAY_DATA, useValue: context },\n\t\t];\n\t\tif (options.providers) {\n\t\t\tproviders.push(...(typeof options.providers === 'function' ? options.providers() : options.providers));\n\t\t}\n\t\treturn providers;\n\t}\n\n\tprivate _configureElement(overlayRef: OverlayRef, options: BrnOverlayOptions): void {\n\t\tconst element = overlayRef.overlayElement;\n\t\telement.id = options.id;\n\t\tif (options.role) {\n\t\t\telement.tabIndex = -1;\n\t\t\telement.setAttribute('role', options.role);\n\t\t}\n\t}\n\n\tprivate _connectDismissalEvents<Result>(\n\t\tref: BrnOverlayRef<Result>,\n\t\toverlayRef: OverlayRef,\n\t\tdestroyed: Subject<void>,\n\t): void {\n\t\tmerge(\n\t\t\toverlayRef.outsidePointerEvents().pipe(map((event) => ({ event, reason: 'outside' as const }))),\n\t\t\toverlayRef.backdropClick().pipe(map((event) => ({ event, reason: 'backdrop' as const }))),\n\t\t\toverlayRef.keydownEvents().pipe(\n\t\t\t\tfilter((event) => event.key === 'Escape'),\n\t\t\t\tmap((event) => ({ event, reason: 'escape' as const })),\n\t\t\t),\n\t\t)\n\t\t\t.pipe(takeUntil(destroyed))\n\t\t\t.subscribe(({ event, reason }) => this._requestDismissal(ref, overlayRef, reason, event));\n\t}\n\n\tprivate _requestDismissal<Result>(\n\t\tref: BrnOverlayRef<Result>,\n\t\toverlayRef: OverlayRef,\n\t\treason: BrnOverlayDismissReason,\n\t\tevent: MouseEvent | KeyboardEvent,\n\t): void {\n\t\tif (this._overlayStack.at(-1) !== overlayRef) return;\n\t\tif (ref.dismiss(reason, event.target) && reason === 'escape') event.preventDefault();\n\t}\n\n\tprivate _removeFromStack(overlayRef: OverlayRef): void {\n\t\tconst index = this._overlayStack.indexOf(overlayRef);\n\t\tif (index !== -1) this._overlayStack.splice(index, 1);\n\t}\n}\n","import { Directionality } from '@angular/cdk/bidi';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\ttype Signal,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { cssClassesToArray } from '@spartan-ng/brain/core';\nimport type { BrnOverlayOptions } from './brn-overlay-options';\nimport type { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayState } from './brn-overlay-state';\nimport type { BrnOverlayDefaultOptions } from './brn-overlay-token';\nimport { injectBrnOverlayDefaultOptions } from './brn-overlay-token';\nimport { BrnOverlayService } from './brn-overlay.service';\n\nlet overlayIdSequence = 0;\n\ntype OverlayContentRegistration<TContext> = {\n\ttemplate: TemplateRef<unknown>;\n\tcontext: Signal<TContext | undefined>;\n\tpanelClass: Signal<string | null | undefined>;\n};\n\n@Directive({\n\tselector: '[brnOverlay],brn-overlay',\n\texportAs: 'brnOverlay',\n})\nexport class BrnOverlay<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _overlayService = inject(BrnOverlayService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprotected readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _directionality = inject(Directionality);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprotected readonly _defaultOptions = this.getDefaultOptions();\n\n\tprivate readonly _overlayRef = signal<BrnOverlayRef<TResult> | undefined>(undefined);\n\tprivate readonly _origin = signal<BrnOverlayOptions['attachTo']>(undefined);\n\tprivate readonly _panelClass = signal<string | string[] | null | undefined>(undefined);\n\tprivate readonly _backdropClass = signal<string | string[] | null | undefined>(undefined);\n\tprivate _content: OverlayContentRegistration<TContext> | undefined;\n\tprivate _destroyed = false;\n\tprivate readonly _resolvedBackdropClass = computed(() => this._backdropClass() ?? this._defaultOptions.backdropClass);\n\tprivate readonly _resolvedPanelClass = computed(\n\t\t() => this._panelClass() ?? this._content?.panelClass() ?? this._defaultOptions.panelClass,\n\t);\n\n\tpublic readonly closed = output<TResult>();\n\tpublic readonly stateChanged = output<BrnOverlayState>();\n\tpublic readonly stateComputed = computed<BrnOverlayState>(() => this._overlayRef()?.state() ?? 'closed');\n\n\tpublic readonly id = input<string>(`brn-overlay-${++overlayIdSequence}`);\n\tpublic readonly state = input<BrnOverlayState | null>(null);\n\tpublic readonly role = input<BrnOverlayOptions['role']>(this._defaultOptions.role);\n\tpublic readonly hasBackdrop = input<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly positionStrategy = input<BrnOverlayOptions['positionStrategy']>(\n\t\tthis._defaultOptions.positionStrategy,\n\t);\n\tpublic readonly scrollStrategy = input<BrnOverlayOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\tpublic readonly closeOnOutsidePointerEvents = input<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{ transform: booleanAttribute },\n\t);\n\n\tpublic readonly attachTo = input<BrnOverlayOptions['attachTo']>(this._defaultOptions.attachTo);\n\tpublic readonly attachPositions = input<BrnOverlayOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly autoFocus = input<boolean, BooleanInput>(this._defaultOptions.autoFocus, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _options = computed<Partial<BrnOverlayOptions>>(() => ({\n\t\tid: this.id(),\n\t\trole: this.role(),\n\t\tdirection: this._directionality.valueSignal(),\n\t\thasBackdrop: this.hasBackdrop(),\n\t\tpositionStrategy: this.getPositionStrategy(),\n\t\tscrollStrategy: this.getScrollStrategy(),\n\t\tcloseOnOutsidePointerEvents: this.closeOnOutsidePointerEvents(),\n\t\tattachTo: this.getAttachTo(),\n\t\tattachPositions: this.getAttachPositions(),\n\t\tdisableClose: this.disableClose(),\n\t\tautoFocus: this.autoFocus(),\n\t\tbackdropClass: cssClassesToArray(this._resolvedBackdropClass()),\n\t\tpanelClass: cssClassesToArray(this._resolvedPanelClass()),\n\t}));\n\n\tconstructor() {\n\t\t// Registered first so the flag is set before forceClose() below tears the overlay down and\n\t\t// emits on closed$/stateChanged$ - otherwise those emits hit a destroyed OutputRef (NG0953).\n\t\tthis._destroyRef.onDestroy(() => (this._destroyed = true));\n\t\tthis._destroyRef.onDestroy(() => this._overlayRef()?.forceClose());\n\t\tthis._syncPanelClass();\n\t\tthis._syncBackdropClass();\n\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') untracked(() => this.open());\n\t\t\t\t\tif (state === 'closed') untracked(() => this.close());\n\t\t\t\t},\n\t\t\t\t{ injector: this._injector },\n\t\t\t);\n\t\t});\n\t}\n\n\tprotected getDefaultOptions(): BrnOverlayDefaultOptions {\n\t\treturn injectBrnOverlayDefaultOptions();\n\t}\n\n\tpublic open(): void {\n\t\tif (!this._content) return;\n\n\t\tconst currentRef = this._overlayRef();\n\t\tif (currentRef) {\n\t\t\tcurrentRef.reopen();\n\t\t\treturn;\n\t\t}\n\n\t\tconst elementToRestoreFocusTo = this._document.activeElement;\n\t\tconst overlayRef = this._overlayService.open<TContext, TResult>(\n\t\t\tthis._content.template,\n\t\t\tthis._vcr,\n\t\t\tthis._content.context() ?? ({} as TContext),\n\t\t\tthis._options(),\n\t\t);\n\t\tthis._overlayRef.set(overlayRef);\n\n\t\toverlayRef.stateChanged$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((state) => {\n\t\t\tif (!this._destroyed) this.stateChanged.emit(state);\n\t\t});\n\n\t\toverlayRef.closed$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tif (this._overlayRef() === overlayRef) this._overlayRef.set(undefined);\n\t\t\tthis._restoreFocus(elementToRestoreFocusTo);\n\t\t\tif (!this._destroyed) this.closed.emit(result as TResult);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult): void {\n\t\tthis._overlayRef()?.close(result);\n\t}\n\n\tpublic toggle(result?: TResult): void {\n\t\tthis.stateComputed() === 'open' ? this.close(result) : this.open();\n\t}\n\n\tpublic registerContent(\n\t\ttemplate: TemplateRef<unknown>,\n\t\tcontext: Signal<TContext | undefined>,\n\t\tpanelClass: Signal<string | null | undefined>,\n\t): void {\n\t\tthis._content = { template, context, panelClass };\n\t}\n\n\tpublic setOrigin(origin: BrnOverlayOptions['attachTo']): void {\n\t\tthis._origin.set(origin);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | string[] | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._overlayRef()?.setBackdropClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tthis._panelClass.set(panelClass);\n\t\tthis._overlayRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._overlayRef()?.updatePosition();\n\t}\n\n\tprotected getAttachTo(): BrnOverlayOptions['attachTo'] {\n\t\treturn this._origin() ?? this.attachTo();\n\t}\n\n\tprotected getAttachPositions(): BrnOverlayOptions['attachPositions'] {\n\t\treturn this.attachPositions();\n\t}\n\n\tprotected getPositionStrategy(): BrnOverlayOptions['positionStrategy'] {\n\t\treturn this.positionStrategy();\n\t}\n\n\tprivate getScrollStrategy(): ScrollStrategy | null | undefined {\n\t\tconst strategy = this.scrollStrategy();\n\t\tif (strategy === 'close') return this._scrollStrategies.close();\n\t\tif (strategy === 'reposition') return this._scrollStrategies.reposition();\n\t\treturn strategy;\n\t}\n\n\tprivate _restoreFocus(element: Element | null): void {\n\t\tconst HTMLElementCtor = this._document.defaultView?.HTMLElement;\n\t\tif (\n\t\t\t!HTMLElementCtor ||\n\t\t\t!(element instanceof HTMLElementCtor) ||\n\t\t\telement === this._document.body ||\n\t\t\t!element.isConnected\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = this._document.activeElement;\n\t\tconst shouldRestoreFocus = activeElement === this._document.body || !activeElement || !activeElement.isConnected;\n\n\t\tif (shouldRestoreFocus) element.focus({ preventScroll: true });\n\t}\n\n\tprivate _syncPanelClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst overlayRef = this._overlayRef();\n\t\t\t\tif (!overlayRef) return;\n\n\t\t\t\tconst panelClass = this._resolvedPanelClass();\n\t\t\t\tuntracked(() => overlayRef.setPanelClass(panelClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _syncBackdropClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst overlayRef = this._overlayRef();\n\t\t\t\tif (!overlayRef) return;\n\n\t\t\t\tconst backdropClass = this._resolvedBackdropClass();\n\t\t\t\tuntracked(() => overlayRef.setBackdropClass(backdropClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnOverlayRef } from './brn-overlay-ref';\n\n@Directive({\n\tselector: 'button[brnOverlayClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnOverlayClose {\n\tprivate readonly _brnOverlayRef = inject(BrnOverlayRef);\n\n\tpublic close(): void {\n\t\tthis._brnOverlayRef.close();\n\t}\n}\n","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnOverlay } from './brn-overlay';\nimport { BrnOverlayRef } from './brn-overlay-ref';\n\n@Directive({\n\tselector: '[brnOverlayContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnOverlayContent)],\n})\nexport class BrnOverlayContent<T extends Record<string, unknown>> {\n\tprivate readonly _brnOverlay = inject<BrnOverlay<unknown, T>>(BrnOverlay, { optional: true });\n\tprivate readonly _brnOverlayRef = inject(BrnOverlayRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\n\tpublic readonly state = computed(() => this._brnOverlay?.stateComputed() ?? this._brnOverlayRef?.state() ?? 'closed');\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tthis._brnOverlay?.registerContent(this._template, this.context, this.className);\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnOverlay } from './brn-overlay';\nimport { BrnOverlayRef } from './brn-overlay-ref';\nimport type { BrnOverlayState } from './brn-overlay-state';\n\nlet triggerIdSequence = 0;\n\n@Directive({\n\tselector: 'button[brnOverlayTrigger],button[brnOverlayTriggerFor]',\n\texportAs: 'brnOverlayTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'toggle()',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true' : 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'overlayId()',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnOverlayTrigger {\n\tprivate readonly _injectedOverlay = inject(BrnOverlay, { optional: true });\n\tprivate readonly _overlayRef = inject(BrnOverlayRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-overlay-trigger-${++triggerIdSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\tpublic readonly brnOverlayTriggerFor = input<BrnOverlay | undefined>(undefined);\n\n\tpublic readonly state = computed<BrnOverlayState>(\n\t\t() => this.getOverlay()?.stateComputed() ?? this._overlayRef?.state() ?? 'closed',\n\t);\n\tpublic readonly overlayId = computed(() => this.getOverlay()?.id() ?? this._overlayRef?.id ?? null);\n\n\tprotected getOverlay(): BrnOverlay | undefined {\n\t\treturn this.brnOverlayTriggerFor() ?? this._injectedOverlay ?? undefined;\n\t}\n\n\tpublic open(): void {\n\t\tthis.getOverlay()?.open();\n\t}\n\n\tpublic toggle(): void {\n\t\tthis.getOverlay()?.toggle();\n\t}\n}\n","import { BrnOverlay } from './lib/brn-overlay';\nimport { BrnOverlayClose } from './lib/brn-overlay-close';\nimport { BrnOverlayContent } from './lib/brn-overlay-content';\nimport { BrnOverlayTrigger } from './lib/brn-overlay-trigger';\n\nexport * from './lib/brn-overlay';\nexport * from './lib/brn-overlay-close';\nexport * from './lib/brn-overlay-content';\nexport * from './lib/brn-overlay-options';\nexport * from './lib/brn-overlay-ref';\nexport * from './lib/brn-overlay-state';\nexport * from './lib/brn-overlay-token';\nexport * from './lib/brn-overlay-trigger';\nexport * from './lib/brn-overlay.service';\n\nexport const BrnOverlayImports = [BrnOverlay, BrnOverlayTrigger, BrnOverlayClose, BrnOverlayContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -190,6 +190,7 @@ class BrnSelectContent {
190
190
  showScrollUp = this._scrollUp.asReadonly();
191
191
  _scrollDown = signal(false, ...(ngDevMode ? [{ debugName: "_scrollDown" }] : /* istanbul ignore next */ []));
192
192
  showScrollDown = this._scrollDown.asReadonly();
193
+ _dataState = computed(() => (this._select.isExpanded() ? 'open' : 'closed'), ...(ngDevMode ? [{ debugName: "_dataState" }] : /* istanbul ignore next */ []));
193
194
  constructor() {
194
195
  afterNextRender(() => {
195
196
  this._checkScroll();
@@ -225,13 +226,14 @@ class BrnSelectContent {
225
226
  }
226
227
  }
227
228
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnSelectContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
228
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: BrnSelectContent, isStandalone: true, selector: "[brnSelectContent]", host: { listeners: { "scroll": "handleScroll()" }, properties: { "style.--brn-select-width.px": "_selectWidth()" } }, ngImport: i0 });
229
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: BrnSelectContent, isStandalone: true, selector: "[brnSelectContent]", host: { listeners: { "scroll": "handleScroll()" }, properties: { "attr.data-state": "_dataState()", "style.--brn-select-width.px": "_selectWidth()" } }, ngImport: i0 });
229
230
  }
230
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnSelectContent, decorators: [{
231
232
  type: Directive,
232
233
  args: [{
233
234
  selector: '[brnSelectContent]',
234
235
  host: {
236
+ '[attr.data-state]': '_dataState()',
235
237
  '[style.--brn-select-width.px]': '_selectWidth()',
236
238
  '(scroll)': 'handleScroll()',
237
239
  },