@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-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport type BrnDialogDefaultOptions = Omit<BrnDialogOptions, 'direction' | 'id' | 'providers'>;\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tariaDescribedBy: undefined,\n\tariaLabel: undefined,\n\tariaLabelledBy: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport { afterNextRender, computed, type Injector, signal } from '@angular/core';\nimport { getActiveElementAnimations, waitForAnimations } from '@spartan-ng/brain/core';\nimport { type Observable, ReplaySubject, Subject } from 'rxjs';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogDismissReason, BrnDialogPhase, BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\nexport class BrnDialogRef<DialogResult = unknown> {\n\tprivate readonly _closing = new Subject<void>();\n\tpublic readonly closing$ = this._closing.asObservable();\n\n\tprivate readonly _closed = new ReplaySubject<DialogResult | undefined>(1);\n\tpublic readonly closed$: Observable<DialogResult | undefined> = this._closed.asObservable();\n\n\tprivate readonly _stateChanged = new ReplaySubject<BrnDialogState>(1);\n\tpublic readonly stateChanged$ = this._stateChanged.asObservable();\n\n\tprivate readonly _phase = signal<BrnDialogPhase>('open');\n\tpublic readonly phase = this._phase.asReadonly();\n\tpublic readonly state = computed<BrnDialogState>(() => (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 _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _injector: Injector,\n\t\tpublic readonly dialogId: number,\n\t\tprivate readonly initialOptions: BrnDialogOptions,\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\n\t\tthis._cdkDialogRef.closed.subscribe((result) => {\n\t\t\tthis._phase.set('closed');\n\t\t\tthis._closed.next(result);\n\t\t\tthis._closed.complete();\n\t\t\tthis._closing.complete();\n\t\t\tthis._stateChanged.complete();\n\t\t});\n\t}\n\n\tpublic close(result?: DialogResult): 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: BrnDialogDismissReason): 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?: DialogResult): void {\n\t\tif (this._phase() === 'closed') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._phase.set('closed');\n\t\tthis._cdkDialogRef.close(result);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tif (this._panelClasses.length) this._cdkDialogRef.removePanelClass(this._panelClasses);\n\t\tthis._panelClasses = cssClassesToArray(panelClass);\n\t\tif (this._panelClasses.length) this._cdkDialogRef.addPanelClass(this._panelClasses);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | string[] | null | undefined): void {\n\t\tconst backdrop = this._cdkDialogRef.overlayRef.backdropElement;\n\t\tif (!backdrop) return;\n\n\t\tbackdrop.classList.remove(...this._backdropClasses);\n\t\tthis._backdropClasses = cssClassesToArray(overlayClass);\n\t\tbackdrop.classList.add(...this._backdropClasses);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.updatePosition();\n\t}\n\n\tprivate async _finishClose(\n\t\tgeneration: number,\n\t\tanimationsBeforeClose: ReadonlySet<Animation>,\n\t\tresult?: DialogResult,\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._phase.set('closed');\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}\n\t}\n\n\tprivate _getActiveAnimations(): Animation[] {\n\t\treturn getActiveElementAnimations([\n\t\t\tthis._cdkDialogRef.overlayRef.overlayElement,\n\t\t\tthis._cdkDialogRef.overlayRef.backdropElement,\n\t\t]);\n\t}\n\n\tprivate _setDataState(state: BrnDialogState): void {\n\t\tthis._cdkDialogRef.overlayRef.overlayElement.setAttribute('data-state', state);\n\t\tthis._cdkDialogRef.overlayRef.backdropElement?.setAttribute('data-state', state);\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport type { TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ElementRef, inject, Injectable, type InjectOptions, Injector, type StaticProvider } from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\n\nlet dialogSequence = 0;\n\nexport type BrnDialogContext<T> = T & { close: (result?: unknown) => void };\n\nexport const injectBrnDialogContext = <DialogContext = unknown>(options: InjectOptions = {}) =>\n\tinject(DIALOG_DATA, options) as DialogContext;\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tpublic open<DialogContext, DialogResult = unknown>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t): BrnDialogRef<DialogResult> {\n\t\tconst dialogId = ++dialogSequence;\n\t\tconst mergedOptions: BrnDialogOptions = {\n\t\t\t...this._defaultOptions,\n\t\t\t...options,\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t};\n\n\t\tif (this._cdkDialog.getDialogById(mergedOptions.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${mergedOptions.id} already exists`);\n\t\t}\n\n\t\tconst positionStrategy =\n\t\t\tmergedOptions.positionStrategy ??\n\t\t\t(mergedOptions.attachTo && mergedOptions.attachPositions.length\n\t\t\t\t? this._positionBuilder.flexibleConnectedTo(mergedOptions.attachTo).withPositions(mergedOptions.attachPositions)\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tconst scrollStrategy =\n\t\t\tmergedOptions.scrollStrategy === 'close'\n\t\t\t\t? this._scrollStrategies.close()\n\t\t\t\t: mergedOptions.scrollStrategy === 'reposition'\n\t\t\t\t\t? this._scrollStrategies.reposition()\n\t\t\t\t\t: (mergedOptions.scrollStrategy ?? this._scrollStrategies.block());\n\n\t\tlet brnDialogRef!: BrnDialogRef<DialogResult>;\n\t\tconst contextOrData: BrnDialogContext<DialogContext> = {\n\t\t\t...(context as DialogContext),\n\t\t\tclose: (result: unknown = undefined) => brnDialogRef.close(result as DialogResult),\n\t\t};\n\n\t\tconst cdkDialogRef = this._cdkDialog.open<DialogResult, BrnDialogContext<DialogContext>, unknown>(content, {\n\t\t\tid: mergedOptions.id,\n\t\t\trole: mergedOptions.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({ $implicit: contextOrData }),\n\t\t\tdata: contextOrData,\n\t\t\tdirection: mergedOptions.direction,\n\t\t\thasBackdrop: mergedOptions.hasBackdrop,\n\t\t\tpanelClass: mergedOptions.panelClass,\n\t\t\tbackdropClass: mergedOptions.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: mergedOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: mergedOptions.autoFocus,\n\t\t\tariaDescribedBy:\n\t\t\t\tmergedOptions.ariaDescribedBy === undefined\n\t\t\t\t\t? `brn-dialog-description-${dialogId}`\n\t\t\t\t\t: mergedOptions.ariaDescribedBy,\n\t\t\tariaLabelledBy:\n\t\t\t\tmergedOptions.ariaLabelledBy === undefined ? `brn-dialog-title-${dialogId}` : mergedOptions.ariaLabelledBy,\n\t\t\tariaLabel: mergedOptions.ariaLabel,\n\t\t\tariaModal: mergedOptions.ariaModal,\n\t\t\tproviders: (dialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(dialogRef, this._injector, dialogId, mergedOptions);\n\t\t\t\treturn this._createProviders(brnDialogRef, mergedOptions);\n\t\t\t},\n\t\t});\n\n\t\tthis._connectDismissalEvents(brnDialogRef, cdkDialogRef.overlayRef);\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate _createProviders<Result>(dialogRef: BrnDialogRef<Result>, options: BrnDialogOptions): StaticProvider[] {\n\t\tconst providers: StaticProvider[] = [{ provide: BrnDialogRef, useValue: dialogRef }];\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 _connectDismissalEvents<Result>(dialogRef: BrnDialogRef<Result>, overlayRef: OverlayRef): void {\n\t\tconst closed$ = dialogRef.closed$;\n\n\t\toverlayRef\n\t\t\t.outsidePointerEvents()\n\t\t\t.pipe(takeUntil(closed$))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this._isTopmostOutsideTarget(overlayRef)) dialogRef.dismiss('outside');\n\t\t\t});\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(closed$))\n\t\t\t.subscribe(() => dialogRef.dismiss('backdrop'));\n\n\t\toverlayRef\n\t\t\t.keydownEvents()\n\t\t\t.pipe(\n\t\t\t\tfilter((event) => event.key === 'Escape'),\n\t\t\t\ttakeUntil(closed$),\n\t\t\t)\n\t\t\t.subscribe((event) => {\n\t\t\t\tif (this._overlayCloseDispatcher._attachedOverlays.at(-1) !== overlayRef) return;\n\t\t\t\tif (dialogRef.dismiss('escape')) event.preventDefault();\n\t\t\t});\n\t}\n\n\tprivate _isTopmostOutsideTarget(overlayRef: OverlayRef): boolean {\n\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\tconst index = overlays.indexOf(overlayRef);\n\t\treturn index === overlays.length - 1 || (overlays.length > 1 && !this._isNested(overlayRef, overlays.at(-1)!));\n\t}\n\n\tprivate _isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) return false;\n\n\t\tif ('x' in childOrigin && 'y' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t}\n\n\t\tconst element = childOrigin instanceof ElementRef ? childOrigin.nativeElement : childOrigin;\n\t\treturn typeof Node !== 'undefined' && element instanceof Node ? parent.hostElement.contains(element) : false;\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 {\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 type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\nimport { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\nlet dialogIdSequence = 0;\n\ntype DialogContentRegistration<TContext> = {\n\ttemplate: TemplateRef<unknown>;\n\tcontext: Signal<TContext | undefined>;\n\tpanelClass: Signal<string | null | undefined>;\n};\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\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\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate readonly _dialogRef = signal<BrnDialogRef<TResult> | undefined>(undefined);\n\tprivate readonly _origin = signal<BrnDialogOptions['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: DialogContentRegistration<TContext> | undefined;\n\tprivate _destroyed = false;\n\tprivate _overlayClass: Signal<string | null | undefined> | undefined;\n\tprivate readonly _resolvedBackdropClass = computed(\n\t\t() => this._backdropClass() ?? this._overlayClass?.() ?? this._defaultOptions.backdropClass,\n\t);\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<BrnDialogState>();\n\tpublic readonly stateComputed = computed<BrnDialogState>(() => this._dialogRef()?.state() ?? 'closed');\n\n\tpublic readonly id = input<string>(`brn-dialog-${++dialogIdSequence}`);\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\tpublic readonly role = input<BrnDialogOptions['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<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\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<BrnDialogOptions['attachTo']>(this._defaultOptions.attachTo);\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(this._defaultOptions.ariaDescribedBy, {\n\t\talias: 'aria-describedby',\n\t});\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(this._defaultOptions.ariaLabelledBy, {\n\t\talias: 'aria-labelledby',\n\t});\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(this._defaultOptions.ariaLabel, {\n\t\talias: 'aria-label',\n\t});\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(this._defaultOptions.ariaModal, {\n\t\talias: 'aria-modal',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _options = computed<Partial<BrnDialogOptions>>(() => ({\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\trestoreFocus: this.restoreFocus(),\n\t\tcloseOnOutsidePointerEvents: this.closeOnOutsidePointerEvents(),\n\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\tattachTo: this.getAttachTo(),\n\t\tattachPositions: this.attachPositions(),\n\t\tautoFocus: this.autoFocus(),\n\t\tdisableClose: this.disableClose(),\n\t\tbackdropClass: cssClassesToArray(this._resolvedBackdropClass()),\n\t\tpanelClass: cssClassesToArray(this._resolvedPanelClass()),\n\t\tariaDescribedBy: this.ariaDescribedBy(),\n\t\tariaLabelledBy: this.ariaLabelledBy(),\n\t\tariaLabel: this.ariaLabel(),\n\t\tariaModal: this.ariaModal(),\n\t}));\n\n\tconstructor() {\n\t\t// Registered first so the flag is set before forceClose() below tears the dialog 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._dialogRef()?.forceClose());\n\t\tthis._syncPanelClass();\n\t\tthis._syncOverlayClass();\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\tpublic open(): void {\n\t\tif (!this._content) return;\n\n\t\tconst currentRef = this._dialogRef();\n\t\tif (currentRef) {\n\t\t\tcurrentRef.reopen();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialogRef = this._dialogService.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._dialogRef.set(dialogRef);\n\n\t\tdialogRef.stateChanged$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((state) => {\n\t\t\tif (!this._destroyed) this.stateChanged.emit(state);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tif (this._dialogRef() === dialogRef) this._dialogRef.set(undefined);\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._dialogRef()?.close(result);\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 registerOverlayClass(overlayClass: Signal<string | null | undefined>): void {\n\t\tthis._overlayClass = overlayClass;\n\t}\n\n\tpublic setOrigin(origin: BrnDialogOptions['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._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tthis._panelClass.set(panelClass);\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\n\t}\n\n\tprotected getAttachTo(): BrnDialogOptions['attachTo'] {\n\t\treturn this._origin() ?? this.attachTo();\n\t}\n\n\tprotected getPositionStrategy(): BrnDialogOptions['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 _syncPanelClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst dialogRef = this._dialogRef();\n\t\t\t\tif (!dialogRef) return;\n\n\t\t\t\tconst panelClass = this._resolvedPanelClass();\n\t\t\t\tuntracked(() => dialogRef.setPanelClass(panelClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _syncOverlayClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst dialogRef = this._dialogRef();\n\t\t\t\tif (!dialogRef) return;\n\n\t\t\t\tconst overlayClass = this._resolvedBackdropClass();\n\t\t\t\tuntracked(() => dialogRef.setOverlayClass(overlayClass));\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 { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic close(): void {\n\t\tthis._brnDialogRef.close();\n\t}\n}\n","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T extends Record<string, unknown>> {\n\tprivate readonly _brnDialog = inject<BrnDialog<unknown, T>>(BrnDialog, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.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._brnDialog?.registerContent(this._template, this.context, this.className);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\thost: {\n\t\t'[id]': '_id',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\tprotected readonly _id = `brn-dialog-description-${this._brnDialogRef.dialogId}`;\n}\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\tprivate readonly _customClass = signal<string | undefined>(undefined);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\tprivate readonly _resolvedClass = computed(() => this._customClass() ?? this.className());\n\n\tconstructor() {\n\t\tthis._brnDialog.registerOverlayClass(this._resolvedClass);\n\t}\n\n\tpublic setClassToCustomElement(newClass: string): void {\n\t\tthis._customClass.set(newClass);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\thost: {\n\t\t'[id]': '_id',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\tprotected readonly _id = `brn-dialog-title-${this._brnDialogRef.dialogId}`;\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet triggerIdSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true' : 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId()',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprivate readonly _injectedDialog = inject(BrnDialog, { optional: true });\n\tprivate readonly _dialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++triggerIdSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\n\tpublic readonly state = computed<BrnDialogState>(\n\t\t() => this.getDialog()?.stateComputed() ?? this._dialogRef?.state() ?? 'closed',\n\t);\n\tpublic readonly dialogId = computed(() => this.getDialog()?.id() ?? this._dialogRef?.id ?? null);\n\n\tprotected getDialog(): BrnDialog | undefined {\n\t\treturn this.brnDialogTriggerFor() ?? this._injectedDialog ?? undefined;\n\t}\n\n\tpublic open(): void {\n\t\tthis.getDialog()?.open();\n\t}\n}\n","import { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] 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-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport type BrnDialogDefaultOptions = Omit<BrnDialogOptions, 'direction' | 'id' | 'providers'>;\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tariaDescribedBy: undefined,\n\tariaLabel: undefined,\n\tariaLabelledBy: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport { afterNextRender, computed, type Injector, signal } from '@angular/core';\nimport { getActiveElementAnimations, waitForAnimations } from '@spartan-ng/brain/core';\nimport { type Observable, ReplaySubject, Subject } from 'rxjs';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogDismissReason, BrnDialogPhase, BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\nexport class BrnDialogRef<DialogResult = unknown> {\n\tprivate readonly _closing = new Subject<void>();\n\tpublic readonly closing$ = this._closing.asObservable();\n\n\tprivate readonly _closed = new ReplaySubject<DialogResult | undefined>(1);\n\tpublic readonly closed$: Observable<DialogResult | undefined> = this._closed.asObservable();\n\n\tprivate readonly _stateChanged = new ReplaySubject<BrnDialogState>(1);\n\tpublic readonly stateChanged$ = this._stateChanged.asObservable();\n\n\tprivate readonly _phase = signal<BrnDialogPhase>('open');\n\tpublic readonly phase = this._phase.asReadonly();\n\tpublic readonly state = computed<BrnDialogState>(() => (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 _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _injector: Injector,\n\t\tpublic readonly dialogId: number,\n\t\tprivate readonly initialOptions: BrnDialogOptions,\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\n\t\tthis._cdkDialogRef.closed.subscribe((result) => {\n\t\t\tthis._phase.set('closed');\n\t\t\tthis._closed.next(result);\n\t\t\tthis._closed.complete();\n\t\t\tthis._closing.complete();\n\t\t\tthis._stateChanged.complete();\n\t\t});\n\t}\n\n\tpublic close(result?: DialogResult): 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: BrnDialogDismissReason): boolean {\n\t\tconst options = this.initialOptions;\n\t\tif (!this.open || options.disableClose) 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?: DialogResult): void {\n\t\tif (this._phase() === 'closed') return;\n\n\t\tthis._closeGeneration++;\n\t\tthis._phase.set('closed');\n\t\tthis._cdkDialogRef.close(result);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tif (this._panelClasses.length) this._cdkDialogRef.removePanelClass(this._panelClasses);\n\t\tthis._panelClasses = cssClassesToArray(panelClass);\n\t\tif (this._panelClasses.length) this._cdkDialogRef.addPanelClass(this._panelClasses);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | string[] | null | undefined): void {\n\t\tconst backdrop = this._cdkDialogRef.overlayRef.backdropElement;\n\t\tif (!backdrop) return;\n\n\t\tbackdrop.classList.remove(...this._backdropClasses);\n\t\tthis._backdropClasses = cssClassesToArray(overlayClass);\n\t\tbackdrop.classList.add(...this._backdropClasses);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.updatePosition();\n\t}\n\n\tprivate async _finishClose(\n\t\tgeneration: number,\n\t\tanimationsBeforeClose: ReadonlySet<Animation>,\n\t\tresult?: DialogResult,\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._phase.set('closed');\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}\n\t}\n\n\tprivate _getActiveAnimations(): Animation[] {\n\t\treturn getActiveElementAnimations([\n\t\t\tthis._cdkDialogRef.overlayRef.overlayElement,\n\t\t\tthis._cdkDialogRef.overlayRef.backdropElement,\n\t\t]);\n\t}\n\n\tprivate _setDataState(state: BrnDialogState): void {\n\t\tthis._cdkDialogRef.overlayRef.overlayElement.setAttribute('data-state', state);\n\t\tthis._cdkDialogRef.overlayRef.backdropElement?.setAttribute('data-state', state);\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport type { TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ElementRef, inject, Injectable, type InjectOptions, Injector, type StaticProvider } from '@angular/core';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\n\nlet dialogSequence = 0;\n\nexport type BrnDialogContext<T> = T & { close: (result?: unknown) => void };\n\nexport const injectBrnDialogContext = <DialogContext = unknown>(options: InjectOptions = {}) =>\n\tinject(DIALOG_DATA, options) as DialogContext;\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _scrollStrategies = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tpublic open<DialogContext, DialogResult = unknown>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t): BrnDialogRef<DialogResult> {\n\t\tconst dialogId = ++dialogSequence;\n\t\tconst mergedOptions: BrnDialogOptions = {\n\t\t\t...this._defaultOptions,\n\t\t\t...options,\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t};\n\n\t\tif (this._cdkDialog.getDialogById(mergedOptions.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${mergedOptions.id} already exists`);\n\t\t}\n\n\t\tconst positionStrategy =\n\t\t\tmergedOptions.positionStrategy ??\n\t\t\t(mergedOptions.attachTo && mergedOptions.attachPositions.length\n\t\t\t\t? this._positionBuilder.flexibleConnectedTo(mergedOptions.attachTo).withPositions(mergedOptions.attachPositions)\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tconst scrollStrategy =\n\t\t\tmergedOptions.scrollStrategy === 'close'\n\t\t\t\t? this._scrollStrategies.close()\n\t\t\t\t: mergedOptions.scrollStrategy === 'reposition'\n\t\t\t\t\t? this._scrollStrategies.reposition()\n\t\t\t\t\t: (mergedOptions.scrollStrategy ?? this._scrollStrategies.block());\n\n\t\tlet brnDialogRef!: BrnDialogRef<DialogResult>;\n\t\tconst contextOrData: BrnDialogContext<DialogContext> = {\n\t\t\t...(context as DialogContext),\n\t\t\tclose: (result: unknown = undefined) => brnDialogRef.close(result as DialogResult),\n\t\t};\n\n\t\tconst cdkDialogRef = this._cdkDialog.open<DialogResult, BrnDialogContext<DialogContext>, unknown>(content, {\n\t\t\tid: mergedOptions.id,\n\t\t\trole: mergedOptions.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({ $implicit: contextOrData }),\n\t\t\tdata: contextOrData,\n\t\t\tdirection: mergedOptions.direction,\n\t\t\thasBackdrop: mergedOptions.hasBackdrop,\n\t\t\tpanelClass: mergedOptions.panelClass,\n\t\t\tbackdropClass: mergedOptions.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: mergedOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: mergedOptions.autoFocus,\n\t\t\tariaDescribedBy:\n\t\t\t\tmergedOptions.ariaDescribedBy === undefined\n\t\t\t\t\t? `brn-dialog-description-${dialogId}`\n\t\t\t\t\t: mergedOptions.ariaDescribedBy,\n\t\t\tariaLabelledBy:\n\t\t\t\tmergedOptions.ariaLabelledBy === undefined ? `brn-dialog-title-${dialogId}` : mergedOptions.ariaLabelledBy,\n\t\t\tariaLabel: mergedOptions.ariaLabel,\n\t\t\tariaModal: mergedOptions.ariaModal,\n\t\t\tproviders: (dialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(dialogRef, this._injector, dialogId, mergedOptions);\n\t\t\t\treturn this._createProviders(brnDialogRef, mergedOptions);\n\t\t\t},\n\t\t});\n\n\t\tthis._connectDismissalEvents(brnDialogRef, cdkDialogRef.overlayRef);\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate _createProviders<Result>(dialogRef: BrnDialogRef<Result>, options: BrnDialogOptions): StaticProvider[] {\n\t\tconst providers: StaticProvider[] = [{ provide: BrnDialogRef, useValue: dialogRef }];\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 _connectDismissalEvents<Result>(dialogRef: BrnDialogRef<Result>, overlayRef: OverlayRef): void {\n\t\tconst closed$ = dialogRef.closed$;\n\n\t\toverlayRef\n\t\t\t.outsidePointerEvents()\n\t\t\t.pipe(takeUntil(closed$))\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this._isTopmostOutsideTarget(overlayRef)) dialogRef.dismiss('outside');\n\t\t\t});\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(closed$))\n\t\t\t.subscribe(() => dialogRef.dismiss('backdrop'));\n\n\t\toverlayRef\n\t\t\t.keydownEvents()\n\t\t\t.pipe(\n\t\t\t\tfilter((event) => event.key === 'Escape'),\n\t\t\t\ttakeUntil(closed$),\n\t\t\t)\n\t\t\t.subscribe((event) => {\n\t\t\t\tif (this._overlayCloseDispatcher._attachedOverlays.at(-1) !== overlayRef) return;\n\t\t\t\tif (dialogRef.dismiss('escape')) event.preventDefault();\n\t\t\t});\n\t}\n\n\tprivate _isTopmostOutsideTarget(overlayRef: OverlayRef): boolean {\n\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\tconst index = overlays.indexOf(overlayRef);\n\t\treturn index === overlays.length - 1 || (overlays.length > 1 && !this._isNested(overlayRef, overlays.at(-1)!));\n\t}\n\n\tprivate _isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) return false;\n\n\t\tif ('x' in childOrigin && 'y' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t}\n\n\t\tconst element = childOrigin instanceof ElementRef ? childOrigin.nativeElement : childOrigin;\n\t\treturn typeof Node !== 'undefined' && element instanceof Node ? parent.hostElement.contains(element) : false;\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 {\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 type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { injectBrnDialogDefaultOptions } from './brn-dialog-token';\nimport { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\nlet dialogIdSequence = 0;\n\ntype DialogContentRegistration<TContext> = {\n\ttemplate: TemplateRef<unknown>;\n\tcontext: Signal<TContext | undefined>;\n\tpanelClass: Signal<string | null | undefined>;\n};\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\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\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate readonly _dialogRef = signal<BrnDialogRef<TResult> | undefined>(undefined);\n\tprivate readonly _origin = signal<BrnDialogOptions['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: DialogContentRegistration<TContext> | undefined;\n\tprivate _destroyed = false;\n\tprivate _overlayClass: Signal<string | null | undefined> | undefined;\n\tprivate readonly _resolvedBackdropClass = computed(\n\t\t() => this._backdropClass() ?? this._overlayClass?.() ?? this._defaultOptions.backdropClass,\n\t);\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<BrnDialogState>();\n\tpublic readonly stateComputed = computed<BrnDialogState>(() => this._dialogRef()?.state() ?? 'closed');\n\n\tpublic readonly id = input<string>(`brn-dialog-${++dialogIdSequence}`);\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\tpublic readonly role = input<BrnDialogOptions['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<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\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<BrnDialogOptions['attachTo']>(this._defaultOptions.attachTo);\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(this._defaultOptions.ariaDescribedBy, {\n\t\talias: 'aria-describedby',\n\t});\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(this._defaultOptions.ariaLabelledBy, {\n\t\talias: 'aria-labelledby',\n\t});\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(this._defaultOptions.ariaLabel, {\n\t\talias: 'aria-label',\n\t});\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(this._defaultOptions.ariaModal, {\n\t\talias: 'aria-modal',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _options = computed<Partial<BrnDialogOptions>>(() => ({\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\trestoreFocus: this.restoreFocus(),\n\t\tcloseOnOutsidePointerEvents: this.closeOnOutsidePointerEvents(),\n\t\tattachTo: this.getAttachTo(),\n\t\tattachPositions: this.attachPositions(),\n\t\tautoFocus: this.autoFocus(),\n\t\tdisableClose: this.disableClose(),\n\t\tbackdropClass: cssClassesToArray(this._resolvedBackdropClass()),\n\t\tpanelClass: cssClassesToArray(this._resolvedPanelClass()),\n\t\tariaDescribedBy: this.ariaDescribedBy(),\n\t\tariaLabelledBy: this.ariaLabelledBy(),\n\t\tariaLabel: this.ariaLabel(),\n\t\tariaModal: this.ariaModal(),\n\t}));\n\n\tconstructor() {\n\t\t// Registered first so the flag is set before forceClose() below tears the dialog 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._dialogRef()?.forceClose());\n\t\tthis._syncPanelClass();\n\t\tthis._syncOverlayClass();\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\tpublic open(): void {\n\t\tif (!this._content) return;\n\n\t\tconst currentRef = this._dialogRef();\n\t\tif (currentRef) {\n\t\t\tcurrentRef.reopen();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dialogRef = this._dialogService.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._dialogRef.set(dialogRef);\n\n\t\tdialogRef.stateChanged$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((state) => {\n\t\t\tif (!this._destroyed) this.stateChanged.emit(state);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tif (this._dialogRef() === dialogRef) this._dialogRef.set(undefined);\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._dialogRef()?.close(result);\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 registerOverlayClass(overlayClass: Signal<string | null | undefined>): void {\n\t\tthis._overlayClass = overlayClass;\n\t}\n\n\tpublic setOrigin(origin: BrnDialogOptions['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._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | string[] | null | undefined): void {\n\t\tthis._panelClass.set(panelClass);\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\n\t}\n\n\tprotected getAttachTo(): BrnDialogOptions['attachTo'] {\n\t\treturn this._origin() ?? this.attachTo();\n\t}\n\n\tprotected getPositionStrategy(): BrnDialogOptions['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 _syncPanelClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst dialogRef = this._dialogRef();\n\t\t\t\tif (!dialogRef) return;\n\n\t\t\t\tconst panelClass = this._resolvedPanelClass();\n\t\t\t\tuntracked(() => dialogRef.setPanelClass(panelClass));\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tprivate _syncOverlayClass(): void {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst dialogRef = this._dialogRef();\n\t\t\t\tif (!dialogRef) return;\n\n\t\t\t\tconst overlayClass = this._resolvedBackdropClass();\n\t\t\t\tuntracked(() => dialogRef.setOverlayClass(overlayClass));\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 { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic close(): void {\n\t\tthis._brnDialogRef.close();\n\t}\n}\n","import { computed, Directive, inject, input, TemplateRef } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T extends Record<string, unknown>> {\n\tprivate readonly _brnDialog = inject<BrnDialog<unknown, T>>(BrnDialog, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.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._brnDialog?.registerContent(this._template, this.context, this.className);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\thost: {\n\t\t'[id]': '_id',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\tprotected readonly _id = `brn-dialog-description-${this._brnDialogRef.dialogId}`;\n}\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\tprivate readonly _customClass = signal<string | undefined>(undefined);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\tprivate readonly _resolvedClass = computed(() => this._customClass() ?? this.className());\n\n\tconstructor() {\n\t\tthis._brnDialog.registerOverlayClass(this._resolvedClass);\n\t}\n\n\tpublic setClassToCustomElement(newClass: string): void {\n\t\tthis._customClass.set(newClass);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\thost: {\n\t\t'[id]': '_id',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\tprotected readonly _id = `brn-dialog-title-${this._brnDialogRef.dialogId}`;\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet triggerIdSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true' : 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId()',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprivate readonly _injectedDialog = inject(BrnDialog, { optional: true });\n\tprivate readonly _dialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++triggerIdSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\n\tpublic readonly state = computed<BrnDialogState>(\n\t\t() => this.getDialog()?.stateComputed() ?? this._dialogRef?.state() ?? 'closed',\n\t);\n\tpublic readonly dialogId = computed(() => this.getDialog()?.id() ?? this._dialogRef?.id ?? null);\n\n\tprotected getDialog(): BrnDialog | undefined {\n\t\treturn this.brnDialogTriggerFor() ?? this._injectedDialog ?? undefined;\n\t}\n\n\tpublic open(): void {\n\t\tthis.getDialog()?.open();\n\t}\n}\n","import { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ import { provideExposesStateProviderExisting, provideExposedSideProviderExisting
6
6
  import { DOCUMENT } from '@angular/common';
7
7
 
8
8
  class BrnDrawer extends BrnDialog {
9
- direction = input('bottom', ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
10
- directionState = linkedSignal(() => this.direction(), ...(ngDevMode ? [{ debugName: "directionState" }] : /* istanbul ignore next */ []));
9
+ directionInput = input('bottom', { ...(ngDevMode ? { debugName: "directionInput" } : /* istanbul ignore next */ {}), alias: 'direction' });
10
+ direction = linkedSignal(this.directionInput, ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
11
11
  getPositionStrategy() {
12
- switch (this.directionState()) {
12
+ switch (this.direction()) {
13
13
  case 'bottom':
14
14
  return this._positionBuilder.global().bottom();
15
15
  case 'top':
@@ -21,7 +21,7 @@ class BrnDrawer extends BrnDialog {
21
21
  }
22
22
  }
23
23
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnDrawer, deps: null, target: i0.ɵɵFactoryTarget.Directive });
24
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: BrnDrawer, isStandalone: true, selector: "[brnDrawer],brn-drawer", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
24
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: BrnDrawer, isStandalone: true, selector: "[brnDrawer],brn-drawer", inputs: { directionInput: { classPropertyName: "directionInput", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
25
25
  {
26
26
  provide: BrnDialog,
27
27
  useExisting: forwardRef((() => BrnDrawer)),
@@ -40,7 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
40
40
  },
41
41
  ],
42
42
  }]
43
- }], propDecorators: { direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }] } });
43
+ }], propDecorators: { directionInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }] } });
44
44
 
45
45
  class BrnDrawerClose extends BrnDialogClose {
46
46
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnDrawerClose, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
54
54
  }] });
55
55
 
56
56
  class BrnDrawerContent extends BrnDialogContent {
57
- side = inject(BrnDrawer).directionState;
57
+ side = inject(BrnDrawer).direction;
58
58
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnDrawerContent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
59
59
  /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: BrnDrawerContent, isStandalone: true, selector: "[brnDrawerContent]", providers: [
60
60
  provideExposesStateProviderExisting((() => BrnDrawerContent)),
@@ -152,7 +152,7 @@ class BrnDrawerHandle {
152
152
  _onPointerDown(event) {
153
153
  if (!this._brnDialogRef || !this._brnDrawer || this._isDragging)
154
154
  return;
155
- this._direction = this._brnDrawer.directionState();
155
+ this._direction = this._brnDrawer.direction();
156
156
  this._drawerEl = this._element.nativeElement.closest('[data-vaul-drawer-direction]');
157
157
  if (!this._drawerEl)
158
158
  return;
@@ -457,7 +457,7 @@ class BrnDrawerTrigger extends BrnDialogTrigger {
457
457
  open() {
458
458
  const direction = this.direction();
459
459
  if (this._drawer && direction) {
460
- this._drawer.directionState.set(direction);
460
+ this._drawer.direction.set(direction);
461
461
  }
462
462
  super.open();
463
463
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-drawer.mjs","sources":["../../../../libs/brain/drawer/src/lib/brn-drawer.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-close.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-content.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-description.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-handle.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-overlay.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-title.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-trigger.ts","../../../../libs/brain/drawer/src/index.ts","../../../../libs/brain/drawer/src/spartan-ng-brain-drawer.ts"],"sourcesContent":["import { Directive, forwardRef, input, linkedSignal } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawer],brn-drawer',\n\texportAs: 'brnDrawer',\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => BrnDrawer),\n\t\t},\n\t],\n})\nexport class BrnDrawer extends BrnDialog {\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right'>('bottom');\n\tpublic readonly directionState = linkedSignal(() => this.direction());\n\n\tprotected override getPositionStrategy() {\n\t\tswitch (this.directionState()) {\n\t\t\tcase 'bottom':\n\t\t\t\treturn this._positionBuilder.global().bottom();\n\t\t\tcase 'top':\n\t\t\t\treturn this._positionBuilder.global().top();\n\t\t\tcase 'left':\n\t\t\t\treturn this._positionBuilder.global().left();\n\t\t\tcase 'right':\n\t\t\t\treturn this._positionBuilder.global().right();\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnDrawerClose]',\n})\nexport class BrnDrawerClose extends BrnDialogClose {}\n","import { Directive, inject } from '@angular/core';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnDialogContent } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: '[brnDrawerContent]',\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnDrawerContent),\n\t\tprovideExposedSideProviderExisting(() => BrnDrawerContent),\n\t],\n})\nexport class BrnDrawerContent<T extends Record<string, unknown>> extends BrnDialogContent<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnDrawer).directionState;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerDescription]',\n\thostDirectives: [BrnDialogDescription],\n})\nexport class BrnDrawerDescription {}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\nconst VELOCITY_THRESHOLD = 0.4;\nconst DEFAULT_CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst TOUCH_SWIPE_THRESHOLD = 10;\nconst MOUSE_SWIPE_THRESHOLD = 2;\nconst OPEN_TIME_COOLDOWN = 500;\nconst TRANSITION = 'transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\nconst OVERLAY_TRANSITION = 'opacity 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\n\nfunction dampenValue(v: number): number {\n\treturn 8 * (Math.log(v + 1) - 2);\n}\n\n@Directive({\n\tselector: '[brnDrawerHandle]',\n\thost: {\n\t\trole: 'presentation',\n\t\t'(pointerdown)': '_onPointerDown($event)',\n\t},\n})\nexport class BrnDrawerHandle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _brnDrawer = inject(BrnDrawer, { optional: true });\n\tprivate readonly _element: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate _pointerId = -1;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._cleanup();\n\t\t\t// Cancel any pending reset timeout: on destroy its target elements are gone, so the\n\t\t\t// deferred style write is a stale no-op that also retains this directive for ~500ms.\n\t\t\tthis._clearResetTimeout();\n\t\t});\n\t\teffect(() => {\n\t\t\tconst state = this._brnDialogRef?.state();\n\t\t\tuntracked(() => {\n\t\t\t\tif (state === 'open') {\n\t\t\t\t\tthis._openTime = Date.now();\n\t\t\t\t} else if (state === 'closed') {\n\t\t\t\t\tthis._openTime = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _drawerEl: HTMLElement | null = null;\n\tprivate _backdropEl: HTMLElement | null = null;\n\tprivate _direction: 'bottom' | 'top' | 'left' | 'right' = 'bottom';\n\tprivate _initialBackdropOpacity = 1;\n\n\tprivate _pointerStartX = 0;\n\tprivate _pointerStartY = 0;\n\tprivate _pointerStart = 0;\n\tprivate _pointerType = '';\n\tprivate _isDragging = false;\n\tprivate _isAllowedToDrag = false;\n\tprivate _wasBeyondThreshold = false;\n\n\tprivate _openTime: number | null = null;\n\tprivate _lastTimeDragPrevented: number | null = null;\n\tprivate _dragStartTime: number | null = null;\n\tprivate _resetTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\tpublic readonly closeThreshold = input<number>(DEFAULT_CLOSE_THRESHOLD);\n\n\tprivate get _isVertical(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'top';\n\t}\n\n\tprivate get _isPositive(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'right';\n\t}\n\n\tprivate get _dimensionMultiplier(): number {\n\t\treturn this._isPositive ? 1 : -1;\n\t}\n\n\tprivate get _swipeThreshold(): number {\n\t\treturn this._pointerType === 'touch' ? TOUCH_SWIPE_THRESHOLD : MOUSE_SWIPE_THRESHOLD;\n\t}\n\n\tprotected _onPointerDown(event: PointerEvent): void {\n\t\tif (!this._brnDialogRef || !this._brnDrawer || this._isDragging) return;\n\n\t\tthis._direction = this._brnDrawer.directionState();\n\t\tthis._drawerEl = this._element.nativeElement.closest('[data-vaul-drawer-direction]');\n\t\tif (!this._drawerEl) return;\n\n\t\tthis._pointerType = event.pointerType;\n\t\tthis._pointerStartX = event.pageX;\n\t\tthis._pointerStartY = event.pageY;\n\t\tthis._pointerStart = this._isVertical ? event.pageY : event.pageX;\n\t\tthis._isDragging = true;\n\t\tthis._isAllowedToDrag = false;\n\t\tthis._wasBeyondThreshold = false;\n\t\tthis._dragStartTime = Date.now();\n\n\t\tthis._drawerEl.style.transition = 'none';\n\n\t\tif (!this._findScrollableAncestor(event.target as HTMLElement)) {\n\t\t\tthis._drawerEl.style.touchAction = 'none';\n\t\t}\n\n\t\tconst overlayWrapper = this._drawerEl.closest('.cdk-global-overlay-wrapper');\n\t\tthis._backdropEl = overlayWrapper?.querySelector('.cdk-overlay-backdrop') as HTMLElement | null;\n\t\tif (this._backdropEl) {\n\t\t\tthis._initialBackdropOpacity = parseFloat(getComputedStyle(this._backdropEl).opacity) || 1;\n\t\t}\n\n\t\tthis._pointerId = event.pointerId;\n\n\t\tthis._document.addEventListener('pointermove', this._onPointerMove, { passive: false });\n\t\tthis._document.addEventListener('pointerup', this._onPointerUp, { once: true });\n\t\tthis._document.addEventListener('pointercancel', this._onPointerCancel, { once: true });\n\t}\n\n\tprivate readonly _onPointerMove = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) return;\n\n\t\tconst currentX = e.pageX;\n\t\tconst currentY = e.pageY;\n\t\tconst xDelta = currentX - this._pointerStartX;\n\t\tconst yDelta = currentY - this._pointerStartY;\n\n\t\tif (!this._wasBeyondThreshold) {\n\t\t\tconst absX = Math.abs(xDelta);\n\t\t\tconst absY = Math.abs(yDelta);\n\t\t\tif (this._isVertical) {\n\t\t\t\tif (absY < this._swipeThreshold) {\n\t\t\t\t\tif (absX >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absX > absY) return;\n\t\t\t} else {\n\t\t\t\tif (absX < this._swipeThreshold) {\n\t\t\t\t\tif (absY >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absY > absX) return;\n\t\t\t}\n\t\t\tthis._wasBeyondThreshold = true;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? currentY : currentX;\n\t\tconst draggedDistance = (this._pointerStart - currentPosition) * this._dimensionMultiplier;\n\t\tconst isDraggingInDirection = draggedDistance > 0;\n\t\tconst absDraggedDistance = Math.abs(draggedDistance);\n\n\t\tif (!this._isAllowedToDrag && !this._shouldDrag(e.target ?? this._element.nativeElement, isDraggingInDirection))\n\t\t\treturn;\n\n\t\tthis._isAllowedToDrag = true;\n\t\ttry {\n\t\t\tthis._element.nativeElement.setPointerCapture(e.pointerId);\n\t\t} catch {\n\t\t\t/* empty - pointer capture not supported */\n\t\t}\n\t\tthis._drawerEl.classList.add('vaul-dragging');\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\n\t\tconst progress = dimension > 0 ? Math.min(absDraggedDistance / dimension, 1) : 0;\n\n\t\tif (isDraggingInDirection) {\n\t\t\tconst dampened = dampenValue(draggedDistance);\n\t\t\tconst translateValue = Math.min(dampened * -1, 0) * this._dimensionMultiplier;\n\t\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\t\t\tif (this._backdropEl) {\n\t\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress * 0.3, 0));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst translateValue = absDraggedDistance * this._dimensionMultiplier;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress, 0));\n\t\t}\n\t};\n\n\tprivate readonly _onPointerUp = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) {\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._drawerEl.classList.remove('vaul-dragging');\n\n\t\tconst swipeAmount = this._getTranslate();\n\n\t\tif (!this._isAllowedToDrag || swipeAmount === null || Number.isNaN(swipeAmount)) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? e.pageY : e.pageX;\n\t\tconst distMoved = this._pointerStart - currentPosition;\n\t\tconst timeTaken = Date.now() - (this._dragStartTime ?? Date.now());\n\t\tconst velocity = timeTaken > 0 ? Math.abs(distMoved) / timeTaken : 0;\n\n\t\tif (this._isPositive ? distMoved > 0 : distMoved < 0) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tif (velocity > VELOCITY_THRESHOLD) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tif (Math.abs(swipeAmount) >= dimension * this.closeThreshold()) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate readonly _onPointerCancel = () => {\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate _shouldDrag(el: EventTarget, isDraggingInDirection: boolean): boolean {\n\t\tif (this._direction === 'left' || this._direction === 'right') return true;\n\n\t\tconst now = Date.now();\n\n\t\tif (this._openTime !== null && now - this._openTime < OPEN_TIME_COOLDOWN) return false;\n\n\t\tconst currentTranslate = this._getTranslate();\n\t\tif (this._isPositive ? currentTranslate > 0 : currentTranslate < 0) return true;\n\n\t\tif (\n\t\t\tthis._lastTimeDragPrevented !== null &&\n\t\t\tnow - this._lastTimeDragPrevented < SCROLL_LOCK_TIMEOUT &&\n\t\t\tcurrentTranslate === 0\n\t\t) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isDraggingInDirection) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tlet element = el as HTMLElement | null;\n\t\twhile (element) {\n\t\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\t\tif (element.scrollTop !== 0) {\n\t\t\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (element.getAttribute('role') === 'dialog') return true;\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getTranslate(): number {\n\t\tif (!this._drawerEl) return 0;\n\t\tconst style = getComputedStyle(this._drawerEl);\n\t\tconst transform = style.transform || (style as any).webkitTransform;\n\t\tif (!transform || transform === 'none') return 0;\n\t\tlet mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 13 : 12]);\n\t\t}\n\t\tmat = transform.match(/^matrix\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 5 : 4]);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprivate _resetDrawer(animate = true): void {\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.transition = animate ? TRANSITION : 'none';\n\t\t\tthis._drawerEl.style.transform = '';\n\t\t}\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = animate ? OVERLAY_TRANSITION : 'none';\n\t\t\tthis._backdropEl.style.opacity = String(this._initialBackdropOpacity);\n\t\t}\n\t\tthis._clearResetTimeout();\n\t\tthis._resetTimeout = setTimeout(() => {\n\t\t\tthis._resetTimeout = null;\n\t\t\tif (this._drawerEl) this._drawerEl.style.transition = '';\n\t\t\tif (this._backdropEl) this._backdropEl.style.transition = '';\n\t\t}, 500);\n\t}\n\n\tprivate _clearResetTimeout(): void {\n\t\tif (this._resetTimeout !== null) {\n\t\t\tclearTimeout(this._resetTimeout);\n\t\t\tthis._resetTimeout = null;\n\t\t}\n\t}\n\n\tprivate _animateAndClose(): void {\n\t\tif (!this._drawerEl) return;\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tconst targetClose = this._isPositive ? dimension : -dimension;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transition = 'transform 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\tthis._drawerEl.style.transform = `${prop}(${targetClose}px)`;\n\t\tthis._drawerEl.style.animation = 'none';\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = 'opacity 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\t\tthis._backdropEl.style.opacity = '0';\n\t\t}\n\t}\n\n\tprivate _cleanup(): void {\n\t\tthis._isDragging = false;\n\t\tthis._isAllowedToDrag = false;\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.touchAction = '';\n\t\t}\n\t\tif (this._pointerId !== -1) {\n\t\t\ttry {\n\t\t\t\tthis._element.nativeElement.releasePointerCapture(this._pointerId);\n\t\t\t} catch {\n\t\t\t\t/* empty */\n\t\t\t}\n\t\t\tthis._pointerId = -1;\n\t\t}\n\t\tthis._document.removeEventListener('pointermove', this._onPointerMove);\n\t\t// pointerup/pointercancel are registered with `{ once: true }`, but a destroy-during-drag (or a\n\t\t// normal end where pointercancel never fired) would otherwise leave them on `document`, pinning\n\t\t// this directive until the next global pointer release auto-removes them.\n\t\tthis._document.removeEventListener('pointerup', this._onPointerUp);\n\t\tthis._document.removeEventListener('pointercancel', this._onPointerCancel);\n\t}\n\n\tprivate _findScrollableAncestor(element: HTMLElement | null): HTMLElement | null {\n\t\tif (!element) return null;\n\t\tconst scrollProp = this._isVertical ? 'overflow-y' : 'overflow-x';\n\t\tconst sizeProp = this._isVertical ? 'scrollHeight' : 'scrollWidth';\n\t\tconst clientProp = this._isVertical ? 'clientHeight' : 'clientWidth';\n\t\tlet el: HTMLElement | null = element.parentElement;\n\t\twhile (el) {\n\t\t\tconst overflow = getComputedStyle(el)[scrollProp as any];\n\t\t\tif ((overflow === 'auto' || overflow === 'scroll') && (el as any)[sizeProp] > (el as any)[clientProp]) {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t\tel = el.parentElement;\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlay } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerOverlay],brn-drawer-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDrawerOverlay)],\n})\nexport class BrnDrawerOverlay extends BrnDialogOverlay {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerTitle]',\n\thostDirectives: [BrnDialogTitle],\n})\nexport class BrnDrawerTitle {}\n","import { Directive, inject, input } from '@angular/core';\nimport { BrnDialogTrigger } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: 'button[brnDrawerTrigger]',\n})\nexport class BrnDrawerTrigger extends BrnDialogTrigger {\n\tprivate readonly _drawer = inject(BrnDrawer, { optional: true });\n\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right' | undefined>(undefined);\n\n\toverride open() {\n\t\tconst direction = this.direction();\n\t\tif (this._drawer && direction) {\n\t\t\tthis._drawer.directionState.set(direction);\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { BrnDrawer } from './lib/brn-drawer';\nimport { BrnDrawerClose } from './lib/brn-drawer-close';\nimport { BrnDrawerContent } from './lib/brn-drawer-content';\nimport { BrnDrawerDescription } from './lib/brn-drawer-description';\nimport { BrnDrawerHandle } from './lib/brn-drawer-handle';\nimport { BrnDrawerOverlay } from './lib/brn-drawer-overlay';\nimport { BrnDrawerTitle } from './lib/brn-drawer-title';\nimport { BrnDrawerTrigger } from './lib/brn-drawer-trigger';\n\nexport * from './lib/brn-drawer';\nexport * from './lib/brn-drawer-close';\nexport * from './lib/brn-drawer-content';\nexport * from './lib/brn-drawer-description';\nexport * from './lib/brn-drawer-handle';\nexport * from './lib/brn-drawer-overlay';\nexport * from './lib/brn-drawer-title';\nexport * from './lib/brn-drawer-trigger';\n\nexport const BrnDrawerImports = [\n\tBrnDrawer,\n\tBrnDrawerOverlay,\n\tBrnDrawerTrigger,\n\tBrnDrawerClose,\n\tBrnDrawerContent,\n\tBrnDrawerTitle,\n\tBrnDrawerDescription,\n\tBrnDrawerHandle,\n] 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-drawer.mjs","sources":["../../../../libs/brain/drawer/src/lib/brn-drawer.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-close.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-content.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-description.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-handle.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-overlay.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-title.ts","../../../../libs/brain/drawer/src/lib/brn-drawer-trigger.ts","../../../../libs/brain/drawer/src/index.ts","../../../../libs/brain/drawer/src/spartan-ng-brain-drawer.ts"],"sourcesContent":["import { Directive, forwardRef, input, linkedSignal } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawer],brn-drawer',\n\texportAs: 'brnDrawer',\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialog,\n\t\t\tuseExisting: forwardRef(() => BrnDrawer),\n\t\t},\n\t],\n})\nexport class BrnDrawer extends BrnDialog {\n\tpublic readonly directionInput = input<'bottom' | 'top' | 'left' | 'right'>('bottom', { alias: 'direction' });\n\tpublic readonly direction = linkedSignal(this.directionInput);\n\n\tprotected override getPositionStrategy() {\n\t\tswitch (this.direction()) {\n\t\t\tcase 'bottom':\n\t\t\t\treturn this._positionBuilder.global().bottom();\n\t\t\tcase 'top':\n\t\t\t\treturn this._positionBuilder.global().top();\n\t\t\tcase 'left':\n\t\t\t\treturn this._positionBuilder.global().left();\n\t\t\tcase 'right':\n\t\t\t\treturn this._positionBuilder.global().right();\n\t\t}\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnDrawerClose]',\n})\nexport class BrnDrawerClose extends BrnDialogClose {}\n","import { Directive, inject } from '@angular/core';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnDialogContent } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: '[brnDrawerContent]',\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnDrawerContent),\n\t\tprovideExposedSideProviderExisting(() => BrnDrawerContent),\n\t],\n})\nexport class BrnDrawerContent<T extends Record<string, unknown>> extends BrnDialogContent<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnDrawer).direction;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerDescription]',\n\thostDirectives: [BrnDialogDescription],\n})\nexport class BrnDrawerDescription {}\n","import { DOCUMENT } from '@angular/common';\nimport { DestroyRef, Directive, effect, ElementRef, inject, input, untracked } from '@angular/core';\nimport { BrnDialogRef } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\nconst VELOCITY_THRESHOLD = 0.4;\nconst DEFAULT_CLOSE_THRESHOLD = 0.25;\nconst SCROLL_LOCK_TIMEOUT = 100;\nconst TOUCH_SWIPE_THRESHOLD = 10;\nconst MOUSE_SWIPE_THRESHOLD = 2;\nconst OPEN_TIME_COOLDOWN = 500;\nconst TRANSITION = 'transform 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\nconst OVERLAY_TRANSITION = 'opacity 0.5s cubic-bezier(0.32, 0.72, 0, 1)';\n\nfunction dampenValue(v: number): number {\n\treturn 8 * (Math.log(v + 1) - 2);\n}\n\n@Directive({\n\tselector: '[brnDrawerHandle]',\n\thost: {\n\t\trole: 'presentation',\n\t\t'(pointerdown)': '_onPointerDown($event)',\n\t},\n})\nexport class BrnDrawerHandle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _brnDrawer = inject(BrnDrawer, { optional: true });\n\tprivate readonly _element: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate _pointerId = -1;\n\n\tconstructor() {\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._cleanup();\n\t\t\t// Cancel any pending reset timeout: on destroy its target elements are gone, so the\n\t\t\t// deferred style write is a stale no-op that also retains this directive for ~500ms.\n\t\t\tthis._clearResetTimeout();\n\t\t});\n\t\teffect(() => {\n\t\t\tconst state = this._brnDialogRef?.state();\n\t\t\tuntracked(() => {\n\t\t\t\tif (state === 'open') {\n\t\t\t\t\tthis._openTime = Date.now();\n\t\t\t\t} else if (state === 'closed') {\n\t\t\t\t\tthis._openTime = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate _drawerEl: HTMLElement | null = null;\n\tprivate _backdropEl: HTMLElement | null = null;\n\tprivate _direction: 'bottom' | 'top' | 'left' | 'right' = 'bottom';\n\tprivate _initialBackdropOpacity = 1;\n\n\tprivate _pointerStartX = 0;\n\tprivate _pointerStartY = 0;\n\tprivate _pointerStart = 0;\n\tprivate _pointerType = '';\n\tprivate _isDragging = false;\n\tprivate _isAllowedToDrag = false;\n\tprivate _wasBeyondThreshold = false;\n\n\tprivate _openTime: number | null = null;\n\tprivate _lastTimeDragPrevented: number | null = null;\n\tprivate _dragStartTime: number | null = null;\n\tprivate _resetTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\tpublic readonly closeThreshold = input<number>(DEFAULT_CLOSE_THRESHOLD);\n\n\tprivate get _isVertical(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'top';\n\t}\n\n\tprivate get _isPositive(): boolean {\n\t\treturn this._direction === 'bottom' || this._direction === 'right';\n\t}\n\n\tprivate get _dimensionMultiplier(): number {\n\t\treturn this._isPositive ? 1 : -1;\n\t}\n\n\tprivate get _swipeThreshold(): number {\n\t\treturn this._pointerType === 'touch' ? TOUCH_SWIPE_THRESHOLD : MOUSE_SWIPE_THRESHOLD;\n\t}\n\n\tprotected _onPointerDown(event: PointerEvent): void {\n\t\tif (!this._brnDialogRef || !this._brnDrawer || this._isDragging) return;\n\n\t\tthis._direction = this._brnDrawer.direction();\n\t\tthis._drawerEl = this._element.nativeElement.closest('[data-vaul-drawer-direction]');\n\t\tif (!this._drawerEl) return;\n\n\t\tthis._pointerType = event.pointerType;\n\t\tthis._pointerStartX = event.pageX;\n\t\tthis._pointerStartY = event.pageY;\n\t\tthis._pointerStart = this._isVertical ? event.pageY : event.pageX;\n\t\tthis._isDragging = true;\n\t\tthis._isAllowedToDrag = false;\n\t\tthis._wasBeyondThreshold = false;\n\t\tthis._dragStartTime = Date.now();\n\n\t\tthis._drawerEl.style.transition = 'none';\n\n\t\tif (!this._findScrollableAncestor(event.target as HTMLElement)) {\n\t\t\tthis._drawerEl.style.touchAction = 'none';\n\t\t}\n\n\t\tconst overlayWrapper = this._drawerEl.closest('.cdk-global-overlay-wrapper');\n\t\tthis._backdropEl = overlayWrapper?.querySelector('.cdk-overlay-backdrop') as HTMLElement | null;\n\t\tif (this._backdropEl) {\n\t\t\tthis._initialBackdropOpacity = parseFloat(getComputedStyle(this._backdropEl).opacity) || 1;\n\t\t}\n\n\t\tthis._pointerId = event.pointerId;\n\n\t\tthis._document.addEventListener('pointermove', this._onPointerMove, { passive: false });\n\t\tthis._document.addEventListener('pointerup', this._onPointerUp, { once: true });\n\t\tthis._document.addEventListener('pointercancel', this._onPointerCancel, { once: true });\n\t}\n\n\tprivate readonly _onPointerMove = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) return;\n\n\t\tconst currentX = e.pageX;\n\t\tconst currentY = e.pageY;\n\t\tconst xDelta = currentX - this._pointerStartX;\n\t\tconst yDelta = currentY - this._pointerStartY;\n\n\t\tif (!this._wasBeyondThreshold) {\n\t\t\tconst absX = Math.abs(xDelta);\n\t\t\tconst absY = Math.abs(yDelta);\n\t\t\tif (this._isVertical) {\n\t\t\t\tif (absY < this._swipeThreshold) {\n\t\t\t\t\tif (absX >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absX > absY) return;\n\t\t\t} else {\n\t\t\t\tif (absX < this._swipeThreshold) {\n\t\t\t\t\tif (absY >= this._swipeThreshold) {\n\t\t\t\t\t\tthis._pointerStartX = currentX;\n\t\t\t\t\t\tthis._pointerStartY = currentY;\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (absY > absX) return;\n\t\t\t}\n\t\t\tthis._wasBeyondThreshold = true;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? currentY : currentX;\n\t\tconst draggedDistance = (this._pointerStart - currentPosition) * this._dimensionMultiplier;\n\t\tconst isDraggingInDirection = draggedDistance > 0;\n\t\tconst absDraggedDistance = Math.abs(draggedDistance);\n\n\t\tif (!this._isAllowedToDrag && !this._shouldDrag(e.target ?? this._element.nativeElement, isDraggingInDirection))\n\t\t\treturn;\n\n\t\tthis._isAllowedToDrag = true;\n\t\ttry {\n\t\t\tthis._element.nativeElement.setPointerCapture(e.pointerId);\n\t\t} catch {\n\t\t\t/* empty - pointer capture not supported */\n\t\t}\n\t\tthis._drawerEl.classList.add('vaul-dragging');\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\n\t\tconst progress = dimension > 0 ? Math.min(absDraggedDistance / dimension, 1) : 0;\n\n\t\tif (isDraggingInDirection) {\n\t\t\tconst dampened = dampenValue(draggedDistance);\n\t\t\tconst translateValue = Math.min(dampened * -1, 0) * this._dimensionMultiplier;\n\t\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\t\t\tif (this._backdropEl) {\n\t\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress * 0.3, 0));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\n\t\tconst translateValue = absDraggedDistance * this._dimensionMultiplier;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transform = `${prop}(${translateValue}px)`;\n\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.opacity = String(Math.max(this._initialBackdropOpacity - progress, 0));\n\t\t}\n\t};\n\n\tprivate readonly _onPointerUp = (e: PointerEvent) => {\n\t\tif (!this._isDragging || !this._drawerEl) {\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._drawerEl.classList.remove('vaul-dragging');\n\n\t\tconst swipeAmount = this._getTranslate();\n\n\t\tif (!this._isAllowedToDrag || swipeAmount === null || Number.isNaN(swipeAmount)) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentPosition = this._isVertical ? e.pageY : e.pageX;\n\t\tconst distMoved = this._pointerStart - currentPosition;\n\t\tconst timeTaken = Date.now() - (this._dragStartTime ?? Date.now());\n\t\tconst velocity = timeTaken > 0 ? Math.abs(distMoved) / timeTaken : 0;\n\n\t\tif (this._isPositive ? distMoved > 0 : distMoved < 0) {\n\t\t\tthis._resetDrawer(true);\n\t\t\tthis._cleanup();\n\t\t\treturn;\n\t\t}\n\n\t\tif (velocity > VELOCITY_THRESHOLD) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tif (Math.abs(swipeAmount) >= dimension * this.closeThreshold()) {\n\t\t\tthis._animateAndClose();\n\t\t\tthis._cleanup();\n\t\t\tthis._brnDialogRef?.close();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate readonly _onPointerCancel = () => {\n\t\tthis._resetDrawer(true);\n\t\tthis._cleanup();\n\t};\n\n\tprivate _shouldDrag(el: EventTarget, isDraggingInDirection: boolean): boolean {\n\t\tif (this._direction === 'left' || this._direction === 'right') return true;\n\n\t\tconst now = Date.now();\n\n\t\tif (this._openTime !== null && now - this._openTime < OPEN_TIME_COOLDOWN) return false;\n\n\t\tconst currentTranslate = this._getTranslate();\n\t\tif (this._isPositive ? currentTranslate > 0 : currentTranslate < 0) return true;\n\n\t\tif (\n\t\t\tthis._lastTimeDragPrevented !== null &&\n\t\t\tnow - this._lastTimeDragPrevented < SCROLL_LOCK_TIMEOUT &&\n\t\t\tcurrentTranslate === 0\n\t\t) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isDraggingInDirection) {\n\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\treturn false;\n\t\t}\n\n\t\tlet element = el as HTMLElement | null;\n\t\twhile (element) {\n\t\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\t\tif (element.scrollTop !== 0) {\n\t\t\t\t\tthis._lastTimeDragPrevented = now;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (element.getAttribute('role') === 'dialog') return true;\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getTranslate(): number {\n\t\tif (!this._drawerEl) return 0;\n\t\tconst style = getComputedStyle(this._drawerEl);\n\t\tconst transform = style.transform || (style as any).webkitTransform;\n\t\tif (!transform || transform === 'none') return 0;\n\t\tlet mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 13 : 12]);\n\t\t}\n\t\tmat = transform.match(/^matrix\\((.+)\\)$/);\n\t\tif (mat) {\n\t\t\treturn parseFloat(mat[1].split(', ')[this._isVertical ? 5 : 4]);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tprivate _resetDrawer(animate = true): void {\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.transition = animate ? TRANSITION : 'none';\n\t\t\tthis._drawerEl.style.transform = '';\n\t\t}\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = animate ? OVERLAY_TRANSITION : 'none';\n\t\t\tthis._backdropEl.style.opacity = String(this._initialBackdropOpacity);\n\t\t}\n\t\tthis._clearResetTimeout();\n\t\tthis._resetTimeout = setTimeout(() => {\n\t\t\tthis._resetTimeout = null;\n\t\t\tif (this._drawerEl) this._drawerEl.style.transition = '';\n\t\t\tif (this._backdropEl) this._backdropEl.style.transition = '';\n\t\t}, 500);\n\t}\n\n\tprivate _clearResetTimeout(): void {\n\t\tif (this._resetTimeout !== null) {\n\t\t\tclearTimeout(this._resetTimeout);\n\t\t\tthis._resetTimeout = null;\n\t\t}\n\t}\n\n\tprivate _animateAndClose(): void {\n\t\tif (!this._drawerEl) return;\n\t\tconst dimension = this._isVertical ? this._drawerEl.offsetHeight : this._drawerEl.offsetWidth;\n\t\tconst targetClose = this._isPositive ? dimension : -dimension;\n\t\tconst prop = this._isVertical ? 'translateY' : 'translateX';\n\t\tthis._drawerEl.style.transition = 'transform 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\tthis._drawerEl.style.transform = `${prop}(${targetClose}px)`;\n\t\tthis._drawerEl.style.animation = 'none';\n\t\tif (this._backdropEl) {\n\t\t\tthis._backdropEl.style.transition = 'opacity 0.3s cubic-bezier(0.32, 0.72, 0, 1)';\n\t\t\tthis._backdropEl.style.opacity = '0';\n\t\t}\n\t}\n\n\tprivate _cleanup(): void {\n\t\tthis._isDragging = false;\n\t\tthis._isAllowedToDrag = false;\n\t\tif (this._drawerEl) {\n\t\t\tthis._drawerEl.style.touchAction = '';\n\t\t}\n\t\tif (this._pointerId !== -1) {\n\t\t\ttry {\n\t\t\t\tthis._element.nativeElement.releasePointerCapture(this._pointerId);\n\t\t\t} catch {\n\t\t\t\t/* empty */\n\t\t\t}\n\t\t\tthis._pointerId = -1;\n\t\t}\n\t\tthis._document.removeEventListener('pointermove', this._onPointerMove);\n\t\t// pointerup/pointercancel are registered with `{ once: true }`, but a destroy-during-drag (or a\n\t\t// normal end where pointercancel never fired) would otherwise leave them on `document`, pinning\n\t\t// this directive until the next global pointer release auto-removes them.\n\t\tthis._document.removeEventListener('pointerup', this._onPointerUp);\n\t\tthis._document.removeEventListener('pointercancel', this._onPointerCancel);\n\t}\n\n\tprivate _findScrollableAncestor(element: HTMLElement | null): HTMLElement | null {\n\t\tif (!element) return null;\n\t\tconst scrollProp = this._isVertical ? 'overflow-y' : 'overflow-x';\n\t\tconst sizeProp = this._isVertical ? 'scrollHeight' : 'scrollWidth';\n\t\tconst clientProp = this._isVertical ? 'clientHeight' : 'clientWidth';\n\t\tlet el: HTMLElement | null = element.parentElement;\n\t\twhile (el) {\n\t\t\tconst overflow = getComputedStyle(el)[scrollProp as any];\n\t\t\tif ((overflow === 'auto' || overflow === 'scroll') && (el as any)[sizeProp] > (el as any)[clientProp]) {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t\tel = el.parentElement;\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlay } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerOverlay],brn-drawer-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDrawerOverlay)],\n})\nexport class BrnDrawerOverlay extends BrnDialogOverlay {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnDrawerTitle]',\n\thostDirectives: [BrnDialogTitle],\n})\nexport class BrnDrawerTitle {}\n","import { Directive, inject, input } from '@angular/core';\nimport { BrnDialogTrigger } from '@spartan-ng/brain/dialog';\nimport { BrnDrawer } from './brn-drawer';\n\n@Directive({\n\tselector: 'button[brnDrawerTrigger]',\n})\nexport class BrnDrawerTrigger extends BrnDialogTrigger {\n\tprivate readonly _drawer = inject(BrnDrawer, { optional: true });\n\n\tpublic readonly direction = input<'bottom' | 'top' | 'left' | 'right' | undefined>(undefined);\n\n\toverride open() {\n\t\tconst direction = this.direction();\n\t\tif (this._drawer && direction) {\n\t\t\tthis._drawer.direction.set(direction);\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { BrnDrawer } from './lib/brn-drawer';\nimport { BrnDrawerClose } from './lib/brn-drawer-close';\nimport { BrnDrawerContent } from './lib/brn-drawer-content';\nimport { BrnDrawerDescription } from './lib/brn-drawer-description';\nimport { BrnDrawerHandle } from './lib/brn-drawer-handle';\nimport { BrnDrawerOverlay } from './lib/brn-drawer-overlay';\nimport { BrnDrawerTitle } from './lib/brn-drawer-title';\nimport { BrnDrawerTrigger } from './lib/brn-drawer-trigger';\n\nexport * from './lib/brn-drawer';\nexport * from './lib/brn-drawer-close';\nexport * from './lib/brn-drawer-content';\nexport * from './lib/brn-drawer-description';\nexport * from './lib/brn-drawer-handle';\nexport * from './lib/brn-drawer-overlay';\nexport * from './lib/brn-drawer-title';\nexport * from './lib/brn-drawer-trigger';\n\nexport const BrnDrawerImports = [\n\tBrnDrawer,\n\tBrnDrawerOverlay,\n\tBrnDrawerTrigger,\n\tBrnDrawerClose,\n\tBrnDrawerContent,\n\tBrnDrawerTitle,\n\tBrnDrawerDescription,\n\tBrnDrawerHandle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -113,14 +113,19 @@ class BrnFieldControl {
113
113
  spartanInvalid = computed(() => this._stateTracker()?.spartanInvalid() ?? null, ...(ngDevMode ? [{ debugName: "spartanInvalid" }] : /* istanbul ignore next */ []));
114
114
  touched = computed(() => this._stateTracker()?.touched() ?? null, ...(ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []));
115
115
  constructor() {
116
- this._field?.registerFieldControl(this);
117
116
  this._destroyRef.onDestroy(() => {
118
117
  this._idEffectRef?.destroy();
119
118
  this._stateTracker()?.destroy();
120
119
  });
121
120
  }
122
121
  ngOnInit() {
123
- this.ngControl = this._injector.get(NgControl, null);
122
+ // `self` prevents descendants (e.g. calendar selects) from inheriting an ancestor's NgControl.
123
+ this.ngControl = this._injector.get(NgControl, null, { optional: true, self: true });
124
+ // Only register with BrnField when this control has its own NgControl, otherwise descendant
125
+ // field controls rendered in portals (e.g. calendar selects) overwrite the real control's registration.
126
+ if (this.ngControl) {
127
+ this._field?.registerFieldControl(this);
128
+ }
124
129
  // Try to sync the tracker eagerly.
125
130
  this._syncTracker();
126
131
  // For template-driven forms and FormControlName, the control is often resolved