@spartan-ng/brain 0.0.1-alpha.428 → 0.0.1-alpha.430
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.
|
@@ -55,7 +55,7 @@ export declare class BrnDialogComponent {
|
|
|
55
55
|
private readonly _mutableAriaModal;
|
|
56
56
|
private readonly _ariaModalState;
|
|
57
57
|
open<DialogContext>(): void;
|
|
58
|
-
close(result
|
|
58
|
+
close(result?: any, delay?: number): void;
|
|
59
59
|
registerTemplate(template: TemplateRef<unknown>): void;
|
|
60
60
|
setOverlayClass(overlayClass: string | null | undefined): void;
|
|
61
61
|
setPanelClass(panelClass: string | null | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.component.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.component.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-options.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["// brn-dialog-utils.ts\n\nexport const cssClassesToArray = (classes: string | string[] | undefined | null, defaultClass = ''): string[] => {\n\tif (typeof classes === 'string') {\n\t\tconst splitClasses = classes.trim().split(' ');\n\t\tif (splitClasses.length === 0) {\n\t\t\treturn [defaultClass];\n\t\t}\n\t\treturn splitClasses;\n\t}\n\treturn classes ?? [];\n};\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport type { Signal, WritableSignal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BrnDialogRef<DialogResult = any> {\n\tprivate readonly _closing$ = new Subject<void>();\n\tpublic readonly closing$ = this._closing$.asObservable();\n\n\tpublic readonly closed$: Observable<DialogResult | undefined>;\n\n\tprivate _previousTimeout: ReturnType<typeof setTimeout> | undefined;\n\n\tpublic get open() {\n\t\treturn this.state() === 'open';\n\t}\n\n\tconstructor(\n\t\tprivate readonly _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _open: WritableSignal<boolean>,\n\t\tpublic readonly state: Signal<BrnDialogState>,\n\t\tpublic readonly dialogId: number,\n\t\tprivate readonly _options?: BrnDialogOptions,\n\t) {\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options?.closeDelay ?? 0) {\n\t\tif (!this.open || this._options?.disableClose) return;\n\n\t\tthis._closing$.next();\n\t\tthis._open.set(false);\n\n\t\tif (this._previousTimeout) {\n\t\t\tclearTimeout(this._previousTimeout);\n\t\t}\n\n\t\tthis._previousTimeout = setTimeout(() => {\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}, delay);\n\t}\n\n\tpublic setPanelClass(paneClass: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, input } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\tstandalone: true,\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogCloseDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic readonly delay = input<number | undefined, number>(undefined, { transform: coerceNumberProperty });\n\n\tpublic close() {\n\t\tthis._brnDialogRef.close(undefined, this.delay());\n\t}\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\nimport { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: number;\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: boolean;\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: boolean;\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: boolean;\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: boolean;\n\n\t/** Strategy to use when positioning the dialog */\n\tpositionStrategy: BrnDialogOptions['positionStrategy'];\n\n\t/** Whether the dialog should restore focus to the previously-focused element upon closing. */\n\trestoreFocus: BrnDialogOptions['restoreFocus'];\n\n\t/** The role of the dialog */\n\trole: BrnDialogOptions['role'];\n\n\t/** Scroll strategy to be used for the dialog. */\n\tscrollStrategy: BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition';\n}\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tattachPositions: [],\n\tautoFocus: 'first-tabbable',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\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 { DIALOG_DATA, Dialog } from '@angular/cdk/dialog';\nimport { type ComponentType, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\ttype EffectRef,\n\ttype InjectOptions,\n\tInjectable,\n\tInjector,\n\tRendererFactory2,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\trunInInjectionContext,\n\tsignal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\nlet dialogSequence = 0;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type BrnDialogContext<T> = T & { close: (result?: any) => void };\n\n/** @deprecated `injectBrnDialogCtx` will no longer be supported once components are stable. Use `injectBrnDialogContext` instead. */\nexport const injectBrnDialogCtx = <T>(): BrnDialogContext<T> => {\n\treturn inject(DIALOG_DATA);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const injectBrnDialogContext = <DialogContext = any>(options: InjectOptions = {}) => {\n\treturn inject(DIALOG_DATA, options) as DialogContext;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _rendererFactory = inject(RendererFactory2);\n\tprivate readonly _renderer = this._rendererFactory.createRenderer(null, null);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _sso = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\n\tpublic open<DialogContext>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t) {\n\t\tif (options?.id && this._cdkDialog.getDialogById(options.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${options.id} already exists`);\n\t\t}\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\t(options?.attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(options.attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tlet effectRef!: EffectRef;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst contextOrData: BrnDialogContext<any> = {\n\t\t\t...context,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tclose: (result: any = undefined) => brnDialogRef.close(result, options?.closeDelay),\n\t\t};\n\n\t\tconst destroyed$ = new Subject<void>();\n\t\tconst open = signal<boolean>(true);\n\t\tconst state = computed<BrnDialogState>(() => (open() ? 'open' : 'closed'));\n\t\tconst dialogId = dialogSequence++;\n\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-ignore\n\t\tconst cdkDialogRef = this._cdkDialog.open(content, {\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t\trole: options?.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({\n\t\t\t\t$implicit: contextOrData,\n\t\t\t}),\n\t\t\tdata: contextOrData,\n\t\t\thasBackdrop: options?.hasBackdrop,\n\t\t\tpanelClass: cssClassesToArray(options?.panelClass),\n\t\t\tbackdropClass: cssClassesToArray(options?.backdropClass, 'bg-transparent'),\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? 'first-tabbable',\n\t\t\tariaDescribedBy: options?.ariaDescribedBy ?? `brn-dialog-description-${dialogId}`,\n\t\t\tariaLabelledBy: options?.ariaLabelledBy ?? `brn-dialog-title-${dialogId}`,\n\t\t\tariaLabel: options?.ariaLabel,\n\t\t\tariaModal: options?.ariaModal,\n\t\t\tproviders: (cdkDialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(cdkDialogRef, open, state, dialogId, options as BrnDialogOptions);\n\n\t\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\t\teffectRef = effect(() => {\n\t\t\t\t\t\tif (overlay) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(overlay, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (backdrop) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(backdrop, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tconst providers: StaticProvider[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: BrnDialogRef,\n\t\t\t\t\t\tuseValue: brnDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tif (options?.providers) {\n\t\t\t\t\tif (typeof options.providers === 'function') {\n\t\t\t\t\t\tproviders.push(...options.providers());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(options.providers)) {\n\t\t\t\t\t\tproviders.push(...options.providers);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn providers;\n\t\t\t},\n\t\t});\n\n\t\tconst overlay = cdkDialogRef.overlayRef.overlayElement;\n\t\tconst backdrop = cdkDialogRef.overlayRef.backdropElement;\n\n\t\tif (options?.closeOnOutsidePointerEvents) {\n\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t});\n\t\t}\n\n\t\tif (options?.closeOnBackdropClick) {\n\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t});\n\t\t}\n\n\t\tif (!options?.disableClose) {\n\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\ttakeUntil(destroyed$),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t});\n\t\t}\n\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRef?.destroy();\n\t\t\tdestroyed$.next();\n\t\t});\n\n\t\treturn brnDialogRef;\n\t}\n}\n","import { OverlayPositionBuilder, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\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 { BrnDialogService } from './brn-dialog.service';\n\n@Component({\n\tselector: 'brn-dialog',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnDialog',\n})\nexport class BrnDialogComponent {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tpublic readonly positionBuilder = inject(OverlayPositionBuilder);\n\tpublic readonly ssos = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\n\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate _context = {};\n\tpublic readonly stateComputed = computed(() => this._dialogRef()?.state() ?? 'closed');\n\n\tprivate _contentTemplate: TemplateRef<unknown> | undefined;\n\tprivate readonly _dialogRef = signal<BrnDialogRef | undefined>(undefined);\n\tprivate _dialogStateEffectRef?: EffectRef;\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic readonly closed = output<any>();\n\n\tpublic readonly stateChanged = output<BrnDialogState>();\n\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\n\tpublic readonly role = input<BrnDialogOptions['role']>(this._defaultOptions.role);\n\n\tpublic readonly hasBackdrop = input(this._defaultOptions.hasBackdrop, { transform: booleanAttribute });\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = computed(() => signal(this.positionStrategy()));\n\tprivate readonly _positionStrategyState = computed(() => this.mutablePositionStrategy()());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected _options = computed<Partial<BrnDialogOptions>>(() => {\n\t\tconst scrollStrategyInput = this.scrollStrategy();\n\t\tlet scrollStrategy: ScrollStrategy | null | undefined;\n\n\t\tif (scrollStrategyInput === 'close') {\n\t\t\tscrollStrategy = this.ssos.close();\n\t\t} else if (scrollStrategyInput === 'reposition') {\n\t\t\tscrollStrategy = this.ssos.reposition();\n\t\t} else {\n\t\t\tscrollStrategy = scrollStrategyInput;\n\t\t}\n\n\t\treturn {\n\t\t\trole: this.role(),\n\t\t\thasBackdrop: this.hasBackdrop(),\n\t\t\tpositionStrategy: this._positionStrategyState(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this._closeOnOutsidePointerEventsState(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this._attachToState(),\n\t\t\tattachPositions: this._attachPositionsState(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: this._backdropClass() ?? '',\n\t\t\tpanelClass: this._panelClass() ?? '',\n\t\t\tariaDescribedBy: this._ariaDescribedByState(),\n\t\t\tariaLabelledBy: this._ariaLabelledByState(),\n\t\t\tariaLabel: this._ariaLabelState(),\n\t\t\tariaModal: this._ariaModalState(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this.state();\n\t\t\tif (state === 'open') {\n\t\t\t\tuntracked(() => this.open());\n\t\t\t}\n\t\t\tif (state === 'closed') {\n\t\t\t\tuntracked(() => this.close(this._options().closeDelay));\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\n\n\tpublic readonly closeOnOutsidePointerEvents = input(this._defaultOptions.closeOnOutsidePointerEvents, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly mutableCloseOnOutsidePointerEvents = computed(() => signal(this.closeOnOutsidePointerEvents()));\n\tprivate readonly _closeOnOutsidePointerEventsState = computed(() => this.mutableCloseOnOutsidePointerEvents()());\n\n\tpublic readonly closeOnBackdropClick = input(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = computed(() => signal(this.attachTo()));\n\tprivate readonly _attachToState = computed(() => this.mutableAttachTo()());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = computed(() => signal(this.attachPositions()));\n\tprivate readonly _attachPositionsState = computed(() => this.mutableAttachPositions()());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input(this._defaultOptions.disableClose, { transform: booleanAttribute });\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = computed(() => signal(this.ariaDescribedBy()));\n\tprivate readonly _ariaDescribedByState = computed(() => this._mutableAriaDescribedBy()());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = computed(() => signal(this.ariaLabelledBy()));\n\tprivate readonly _ariaLabelledByState = computed(() => this._mutableAriaLabelledBy()());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = computed(() => signal(this.ariaLabel()));\n\tprivate readonly _ariaLabelState = computed(() => this._mutableAriaLabel()());\n\n\tpublic readonly ariaModal = input(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = computed(() => signal(this.ariaModal()));\n\tprivate readonly _ariaModalState = computed(() => this._mutableAriaModal()());\n\n\tpublic open<DialogContext>() {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRef?.destroy();\n\n\t\tconst dialogRef = this._dialogService.open<DialogContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context as DialogContext,\n\t\t\tthis._options(),\n\t\t);\n\n\t\tthis._dialogRef.set(dialogRef);\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._dialogStateEffectRef = effect(() => {\n\t\t\t\tconst state = dialogRef.state();\n\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t});\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic close(result: any, delay?: number) {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>) {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined) {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined) {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: unknown) {\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-expect-error\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined) {\n\t\tthis._mutableAriaDescribedBy().set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined) {\n\t\tthis._mutableAriaLabelledBy().set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined) {\n\t\tthis._mutableAriaLabel().set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean) {\n\t\tthis._mutableAriaModal().set(ariaModal);\n\t}\n}\n","import { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContentDirective)],\n})\nexport class BrnDialogContentDirective<T> {\n\tprivate readonly _brnDialog = inject(BrnDialogComponent, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.state() ?? 'closed');\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.registerTemplate(this._template);\n\t\teffect(() => {\n\t\t\tconst context = this.context();\n\t\t\tif (!this._brnDialog || !context) return;\n\t\t\tuntracked(() => this._brnDialog?.setContext(context));\n\t\t});\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog?.setPanelClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescriptionDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected _id = signal(`brn-dialog-description-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaDescribedBy(this._id());\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, untracked, ViewEncapsulation } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\n@Component({\n\tselector: 'brn-dialog-overlay',\n\tstandalone: true,\n\ttemplate: '',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlayComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnDialogOverlayComponent {\n\tprivate readonly _brnDialog = inject(BrnDialogComponent);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\n\t}\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog.setOverlayClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitleDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected _id = signal(`brn-dialog-title-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaLabelledBy(this._id());\n\t\t});\n\t}\n}\n","import { computed, Directive, effect, inject, input, type Signal, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\tstandalone: true,\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},\n\texportAs: 'brnDialogTrigger',\n})\nexport class BrnDialogTriggerDirective {\n\tprotected _brnDialog = inject(BrnDialogComponent, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input(`brn-dialog-trigger-${idSequence++}`);\n\n\tpublic readonly state: Signal<BrnDialogState> = this._brnDialogRef?.state ?? signal('closed');\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? idSequence++}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialogComponent | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\tpublic readonly mutableBrnDialogTriggerFor = computed(() => signal(this.brnDialogTriggerFor()));\n\tpublic readonly brnDialogTriggerForState = computed(() => this.mutableBrnDialogTriggerFor()());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst brnDialog = this.brnDialogTriggerForState();\n\t\t\tif (!brnDialog) return;\n\t\t\tthis._brnDialog = brnDialog;\n\t\t});\n\t}\n\n\topen() {\n\t\tthis._brnDialog?.open();\n\t}\n}\n","import type { AutoFocusTarget } from '@angular/cdk/dialog';\nimport type {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tPositionStrategy,\n\tScrollStrategy,\n} from '@angular/cdk/overlay';\nimport type { ElementRef, StaticProvider } from '@angular/core';\n\nexport type BrnDialogOptions = {\n\tid: string;\n\trole: 'dialog' | 'alertdialog';\n\thasBackdrop: boolean;\n\tpanelClass: string | string[];\n\tbackdropClass: string | string[];\n\tpositionStrategy: PositionStrategy | null | undefined;\n\tscrollStrategy: ScrollStrategy | null | undefined;\n\trestoreFocus: boolean | string | ElementRef;\n\tcloseDelay: number;\n\tcloseOnOutsidePointerEvents: boolean;\n\tcloseOnBackdropClick: boolean;\n\tattachTo: FlexibleConnectedPositionStrategyOrigin | null | undefined;\n\tattachPositions: ConnectedPosition[];\n\tautoFocus: AutoFocusTarget | (Record<never, never> & string);\n\tdisableClose: boolean;\n\tariaDescribedBy: string | null | undefined;\n\tariaLabelledBy: string | null | undefined;\n\tariaLabel: string | null | undefined;\n\tariaModal: boolean;\n\tproviders?: StaticProvider[] | (() => StaticProvider[]);\n};\n\nexport const DEFAULT_BRN_DIALOG_OPTIONS: Readonly<Partial<BrnDialogOptions>> = {\n\trole: 'dialog',\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\tscrollStrategy: null,\n\tdisableClose: false,\n\tariaLabel: undefined,\n\tariaModal: true,\n};\n","import { NgModule } from '@angular/core';\n\nimport { BrnDialogCloseDirective } from './lib/brn-dialog-close.directive';\nimport { BrnDialogContentDirective } from './lib/brn-dialog-content.directive';\nimport { BrnDialogDescriptionDirective } from './lib/brn-dialog-description.directive';\nimport { BrnDialogOverlayComponent } from './lib/brn-dialog-overlay.component';\nimport { BrnDialogTitleDirective } from './lib/brn-dialog-title.directive';\nimport { BrnDialogTriggerDirective } from './lib/brn-dialog-trigger.directive';\nimport { BrnDialogComponent } from './lib/brn-dialog.component';\n\nexport * from './lib/brn-dialog-close.directive';\nexport * from './lib/brn-dialog-content.directive';\nexport * from './lib/brn-dialog-description.directive';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay.component';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title.directive';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger.directive';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.component';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialogComponent,\n\tBrnDialogOverlayComponent,\n\tBrnDialogTriggerDirective,\n\tBrnDialogCloseDirective,\n\tBrnDialogContentDirective,\n\tBrnDialogTitleDirective,\n\tBrnDialogDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnDialogImports],\n\texports: [...BrnDialogImports],\n})\nexport class BrnDialogModule {}\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-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.component.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.component.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.directive.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-options.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["// brn-dialog-utils.ts\n\nexport const cssClassesToArray = (classes: string | string[] | undefined | null, defaultClass = ''): string[] => {\n\tif (typeof classes === 'string') {\n\t\tconst splitClasses = classes.trim().split(' ');\n\t\tif (splitClasses.length === 0) {\n\t\t\treturn [defaultClass];\n\t\t}\n\t\treturn splitClasses;\n\t}\n\treturn classes ?? [];\n};\n","import type { DialogRef } from '@angular/cdk/dialog';\nimport type { Signal, WritableSignal } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BrnDialogRef<DialogResult = any> {\n\tprivate readonly _closing$ = new Subject<void>();\n\tpublic readonly closing$ = this._closing$.asObservable();\n\n\tpublic readonly closed$: Observable<DialogResult | undefined>;\n\n\tprivate _previousTimeout: ReturnType<typeof setTimeout> | undefined;\n\n\tpublic get open() {\n\t\treturn this.state() === 'open';\n\t}\n\n\tconstructor(\n\t\tprivate readonly _cdkDialogRef: DialogRef<DialogResult>,\n\t\tprivate readonly _open: WritableSignal<boolean>,\n\t\tpublic readonly state: Signal<BrnDialogState>,\n\t\tpublic readonly dialogId: number,\n\t\tprivate readonly _options?: BrnDialogOptions,\n\t) {\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options?.closeDelay ?? 0) {\n\t\tif (!this.open || this._options?.disableClose) return;\n\n\t\tthis._closing$.next();\n\t\tthis._open.set(false);\n\n\t\tif (this._previousTimeout) {\n\t\t\tclearTimeout(this._previousTimeout);\n\t\t}\n\n\t\tthis._previousTimeout = setTimeout(() => {\n\t\t\tthis._cdkDialogRef.close(result);\n\t\t}, delay);\n\t}\n\n\tpublic setPanelClass(paneClass: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined) {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, input } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: 'button[brnDialogClose]',\n\tstandalone: true,\n\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogCloseDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tpublic readonly delay = input<number | undefined, number>(undefined, { transform: coerceNumberProperty });\n\n\tpublic close() {\n\t\tthis._brnDialogRef.close(undefined, this.delay());\n\t}\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\nimport { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: number;\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: boolean;\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: boolean;\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: boolean;\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: boolean;\n\n\t/** Strategy to use when positioning the dialog */\n\tpositionStrategy: BrnDialogOptions['positionStrategy'];\n\n\t/** Whether the dialog should restore focus to the previously-focused element upon closing. */\n\trestoreFocus: BrnDialogOptions['restoreFocus'];\n\n\t/** The role of the dialog */\n\trole: BrnDialogOptions['role'];\n\n\t/** Scroll strategy to be used for the dialog. */\n\tscrollStrategy: BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition';\n}\n\nexport const defaultOptions: BrnDialogDefaultOptions = {\n\tattachPositions: [],\n\tautoFocus: 'first-tabbable',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\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 { DIALOG_DATA, Dialog } from '@angular/cdk/dialog';\nimport { type ComponentType, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\ttype EffectRef,\n\ttype InjectOptions,\n\tInjectable,\n\tInjector,\n\tRendererFactory2,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n\trunInInjectionContext,\n\tsignal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport type { BrnDialogOptions } from './brn-dialog-options';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { cssClassesToArray } from './brn-dialog-utils';\n\nlet dialogSequence = 0;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type BrnDialogContext<T> = T & { close: (result?: any) => void };\n\n/** @deprecated `injectBrnDialogCtx` will no longer be supported once components are stable. Use `injectBrnDialogContext` instead. */\nexport const injectBrnDialogCtx = <T>(): BrnDialogContext<T> => {\n\treturn inject(DIALOG_DATA);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const injectBrnDialogContext = <DialogContext = any>(options: InjectOptions = {}) => {\n\treturn inject(DIALOG_DATA, options) as DialogContext;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BrnDialogService {\n\tprivate readonly _cdkDialog = inject(Dialog);\n\tprivate readonly _rendererFactory = inject(RendererFactory2);\n\tprivate readonly _renderer = this._rendererFactory.createRenderer(null, null);\n\tprivate readonly _positionBuilder = inject(OverlayPositionBuilder);\n\tprivate readonly _sso = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\n\tpublic open<DialogContext>(\n\t\tcontent: ComponentType<unknown> | TemplateRef<unknown>,\n\t\tvcr?: ViewContainerRef,\n\t\tcontext?: DialogContext,\n\t\toptions?: Partial<BrnDialogOptions>,\n\t) {\n\t\tif (options?.id && this._cdkDialog.getDialogById(options.id)) {\n\t\t\tthrow new Error(`Dialog with ID: ${options.id} already exists`);\n\t\t}\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\t(options?.attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(options.attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tlet effectRef!: EffectRef;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst contextOrData: BrnDialogContext<any> = {\n\t\t\t...context,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tclose: (result: any = undefined) => brnDialogRef.close(result, options?.closeDelay),\n\t\t};\n\n\t\tconst destroyed$ = new Subject<void>();\n\t\tconst open = signal<boolean>(true);\n\t\tconst state = computed<BrnDialogState>(() => (open() ? 'open' : 'closed'));\n\t\tconst dialogId = dialogSequence++;\n\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-ignore\n\t\tconst cdkDialogRef = this._cdkDialog.open(content, {\n\t\t\tid: options?.id ?? `brn-dialog-${dialogId}`,\n\t\t\trole: options?.role,\n\t\t\tviewContainerRef: vcr,\n\t\t\ttemplateContext: () => ({\n\t\t\t\t$implicit: contextOrData,\n\t\t\t}),\n\t\t\tdata: contextOrData,\n\t\t\thasBackdrop: options?.hasBackdrop,\n\t\t\tpanelClass: cssClassesToArray(options?.panelClass),\n\t\t\tbackdropClass: cssClassesToArray(options?.backdropClass, 'bg-transparent'),\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? 'first-tabbable',\n\t\t\tariaDescribedBy: options?.ariaDescribedBy ?? `brn-dialog-description-${dialogId}`,\n\t\t\tariaLabelledBy: options?.ariaLabelledBy ?? `brn-dialog-title-${dialogId}`,\n\t\t\tariaLabel: options?.ariaLabel,\n\t\t\tariaModal: options?.ariaModal,\n\t\t\tproviders: (cdkDialogRef) => {\n\t\t\t\tbrnDialogRef = new BrnDialogRef(cdkDialogRef, open, state, dialogId, options as BrnDialogOptions);\n\n\t\t\t\trunInInjectionContext(this._injector, () => {\n\t\t\t\t\teffectRef = effect(() => {\n\t\t\t\t\t\tif (overlay) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(overlay, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (backdrop) {\n\t\t\t\t\t\t\tthis._renderer.setAttribute(backdrop, 'data-state', state());\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tconst providers: StaticProvider[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\tprovide: BrnDialogRef,\n\t\t\t\t\t\tuseValue: brnDialogRef,\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tif (options?.providers) {\n\t\t\t\t\tif (typeof options.providers === 'function') {\n\t\t\t\t\t\tproviders.push(...options.providers());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(options.providers)) {\n\t\t\t\t\t\tproviders.push(...options.providers);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn providers;\n\t\t\t},\n\t\t});\n\n\t\tconst overlay = cdkDialogRef.overlayRef.overlayElement;\n\t\tconst backdrop = cdkDialogRef.overlayRef.backdropElement;\n\n\t\tif (options?.closeOnOutsidePointerEvents) {\n\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t});\n\t\t}\n\n\t\tif (options?.closeOnBackdropClick) {\n\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t});\n\t\t}\n\n\t\tif (!options?.disableClose) {\n\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t.pipe(\n\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\ttakeUntil(destroyed$),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t});\n\t\t}\n\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRef?.destroy();\n\t\t\tdestroyed$.next();\n\t\t});\n\n\t\treturn brnDialogRef;\n\t}\n}\n","import { OverlayPositionBuilder, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\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 { BrnDialogService } from './brn-dialog.service';\n\n@Component({\n\tselector: 'brn-dialog',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnDialog',\n})\nexport class BrnDialogComponent {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tpublic readonly positionBuilder = inject(OverlayPositionBuilder);\n\tpublic readonly ssos = inject(ScrollStrategyOptions);\n\tprivate readonly _injector = inject(Injector);\n\n\tprotected readonly _defaultOptions = injectBrnDialogDefaultOptions();\n\n\tprivate _context = {};\n\tpublic readonly stateComputed = computed(() => this._dialogRef()?.state() ?? 'closed');\n\n\tprivate _contentTemplate: TemplateRef<unknown> | undefined;\n\tprivate readonly _dialogRef = signal<BrnDialogRef | undefined>(undefined);\n\tprivate _dialogStateEffectRef?: EffectRef;\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic readonly closed = output<any>();\n\n\tpublic readonly stateChanged = output<BrnDialogState>();\n\n\tpublic readonly state = input<BrnDialogState | null>(null);\n\n\tpublic readonly role = input<BrnDialogOptions['role']>(this._defaultOptions.role);\n\n\tpublic readonly hasBackdrop = input(this._defaultOptions.hasBackdrop, { transform: booleanAttribute });\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = computed(() => signal(this.positionStrategy()));\n\tprivate readonly _positionStrategyState = computed(() => this.mutablePositionStrategy()());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected _options = computed<Partial<BrnDialogOptions>>(() => {\n\t\tconst scrollStrategyInput = this.scrollStrategy();\n\t\tlet scrollStrategy: ScrollStrategy | null | undefined;\n\n\t\tif (scrollStrategyInput === 'close') {\n\t\t\tscrollStrategy = this.ssos.close();\n\t\t} else if (scrollStrategyInput === 'reposition') {\n\t\t\tscrollStrategy = this.ssos.reposition();\n\t\t} else {\n\t\t\tscrollStrategy = scrollStrategyInput;\n\t\t}\n\n\t\treturn {\n\t\t\trole: this.role(),\n\t\t\thasBackdrop: this.hasBackdrop(),\n\t\t\tpositionStrategy: this._positionStrategyState(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this._closeOnOutsidePointerEventsState(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this._attachToState(),\n\t\t\tattachPositions: this._attachPositionsState(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: this._backdropClass() ?? '',\n\t\t\tpanelClass: this._panelClass() ?? '',\n\t\t\tariaDescribedBy: this._ariaDescribedByState(),\n\t\t\tariaLabelledBy: this._ariaLabelledByState(),\n\t\t\tariaLabel: this._ariaLabelState(),\n\t\t\tariaModal: this._ariaModalState(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this.state();\n\t\t\tif (state === 'open') {\n\t\t\t\tuntracked(() => this.open());\n\t\t\t}\n\t\t\tif (state === 'closed') {\n\t\t\t\tuntracked(() => this.close());\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readonly restoreFocus = input<BrnDialogOptions['restoreFocus']>(this._defaultOptions.restoreFocus);\n\n\tpublic readonly closeOnOutsidePointerEvents = input(this._defaultOptions.closeOnOutsidePointerEvents, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly mutableCloseOnOutsidePointerEvents = computed(() => signal(this.closeOnOutsidePointerEvents()));\n\tprivate readonly _closeOnOutsidePointerEventsState = computed(() => this.mutableCloseOnOutsidePointerEvents()());\n\n\tpublic readonly closeOnBackdropClick = input(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = computed(() => signal(this.attachTo()));\n\tprivate readonly _attachToState = computed(() => this.mutableAttachTo()());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = computed(() => signal(this.attachPositions()));\n\tprivate readonly _attachPositionsState = computed(() => this.mutableAttachPositions()());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input(this._defaultOptions.disableClose, { transform: booleanAttribute });\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = computed(() => signal(this.ariaDescribedBy()));\n\tprivate readonly _ariaDescribedByState = computed(() => this._mutableAriaDescribedBy()());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = computed(() => signal(this.ariaLabelledBy()));\n\tprivate readonly _ariaLabelledByState = computed(() => this._mutableAriaLabelledBy()());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = computed(() => signal(this.ariaLabel()));\n\tprivate readonly _ariaLabelState = computed(() => this._mutableAriaLabel()());\n\n\tpublic readonly ariaModal = input(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = computed(() => signal(this.ariaModal()));\n\tprivate readonly _ariaModalState = computed(() => this._mutableAriaModal()());\n\n\tpublic open<DialogContext>() {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRef?.destroy();\n\n\t\tconst dialogRef = this._dialogService.open<DialogContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context as DialogContext,\n\t\t\tthis._options(),\n\t\t);\n\n\t\tthis._dialogRef.set(dialogRef);\n\n\t\trunInInjectionContext(this._injector, () => {\n\t\t\tthis._dialogStateEffectRef = effect(() => {\n\t\t\t\tconst state = dialogRef.state();\n\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t});\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic close(result?: any, delay?: number) {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>) {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined) {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined) {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: unknown) {\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t// @ts-expect-error\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined) {\n\t\tthis._mutableAriaDescribedBy().set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined) {\n\t\tthis._mutableAriaLabelledBy().set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined) {\n\t\tthis._mutableAriaLabel().set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean) {\n\t\tthis._mutableAriaModal().set(ariaModal);\n\t}\n}\n","import { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContentDirective)],\n})\nexport class BrnDialogContentDirective<T> {\n\tprivate readonly _brnDialog = inject(BrnDialogComponent, { optional: true });\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\tprivate readonly _template = inject(TemplateRef);\n\tpublic readonly state = computed(() => this._brnDialog?.stateComputed() ?? this._brnDialogRef?.state() ?? 'closed');\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tpublic readonly context = input<T | undefined>(undefined);\n\n\tconstructor() {\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.registerTemplate(this._template);\n\t\teffect(() => {\n\t\t\tconst context = this.context();\n\t\t\tif (!this._brnDialog || !context) return;\n\t\t\tuntracked(() => this._brnDialog?.setContext(context));\n\t\t});\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog?.setPanelClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescriptionDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected _id = signal(`brn-dialog-description-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaDescribedBy(this._id());\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, effect, inject, input, untracked, ViewEncapsulation } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\n@Component({\n\tselector: 'brn-dialog-overlay',\n\tstandalone: true,\n\ttemplate: '',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlayComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnDialogOverlayComponent {\n\tprivate readonly _brnDialog = inject(BrnDialogComponent);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\n\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\n\t}\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (!this._brnDialog) return;\n\t\t\tconst newClass = this.className();\n\t\t\tuntracked(() => this._brnDialog.setOverlayClass(newClass));\n\t\t});\n\t}\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitleDirective {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected _id = signal(`brn-dialog-title-${this._brnDialogRef?.dialogId}`);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._brnDialogRef.setAriaLabelledBy(this._id());\n\t\t});\n\t}\n}\n","import { computed, Directive, effect, inject, input, type Signal, signal } from '@angular/core';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\nimport { BrnDialogComponent } from './brn-dialog.component';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\tstandalone: true,\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},\n\texportAs: 'brnDialogTrigger',\n})\nexport class BrnDialogTriggerDirective {\n\tprotected _brnDialog = inject(BrnDialogComponent, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input(`brn-dialog-trigger-${idSequence++}`);\n\n\tpublic readonly state: Signal<BrnDialogState> = this._brnDialogRef?.state ?? signal('closed');\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? idSequence++}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialogComponent | undefined>(undefined, {\n\t\talias: 'brnDialogTriggerFor',\n\t});\n\tpublic readonly mutableBrnDialogTriggerFor = computed(() => signal(this.brnDialogTriggerFor()));\n\tpublic readonly brnDialogTriggerForState = computed(() => this.mutableBrnDialogTriggerFor()());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst brnDialog = this.brnDialogTriggerForState();\n\t\t\tif (!brnDialog) return;\n\t\t\tthis._brnDialog = brnDialog;\n\t\t});\n\t}\n\n\topen() {\n\t\tthis._brnDialog?.open();\n\t}\n}\n","import type { AutoFocusTarget } from '@angular/cdk/dialog';\nimport type {\n\tConnectedPosition,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tPositionStrategy,\n\tScrollStrategy,\n} from '@angular/cdk/overlay';\nimport type { ElementRef, StaticProvider } from '@angular/core';\n\nexport type BrnDialogOptions = {\n\tid: string;\n\trole: 'dialog' | 'alertdialog';\n\thasBackdrop: boolean;\n\tpanelClass: string | string[];\n\tbackdropClass: string | string[];\n\tpositionStrategy: PositionStrategy | null | undefined;\n\tscrollStrategy: ScrollStrategy | null | undefined;\n\trestoreFocus: boolean | string | ElementRef;\n\tcloseDelay: number;\n\tcloseOnOutsidePointerEvents: boolean;\n\tcloseOnBackdropClick: boolean;\n\tattachTo: FlexibleConnectedPositionStrategyOrigin | null | undefined;\n\tattachPositions: ConnectedPosition[];\n\tautoFocus: AutoFocusTarget | (Record<never, never> & string);\n\tdisableClose: boolean;\n\tariaDescribedBy: string | null | undefined;\n\tariaLabelledBy: string | null | undefined;\n\tariaLabel: string | null | undefined;\n\tariaModal: boolean;\n\tproviders?: StaticProvider[] | (() => StaticProvider[]);\n};\n\nexport const DEFAULT_BRN_DIALOG_OPTIONS: Readonly<Partial<BrnDialogOptions>> = {\n\trole: 'dialog',\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\tscrollStrategy: null,\n\tdisableClose: false,\n\tariaLabel: undefined,\n\tariaModal: true,\n};\n","import { NgModule } from '@angular/core';\n\nimport { BrnDialogCloseDirective } from './lib/brn-dialog-close.directive';\nimport { BrnDialogContentDirective } from './lib/brn-dialog-content.directive';\nimport { BrnDialogDescriptionDirective } from './lib/brn-dialog-description.directive';\nimport { BrnDialogOverlayComponent } from './lib/brn-dialog-overlay.component';\nimport { BrnDialogTitleDirective } from './lib/brn-dialog-title.directive';\nimport { BrnDialogTriggerDirective } from './lib/brn-dialog-trigger.directive';\nimport { BrnDialogComponent } from './lib/brn-dialog.component';\n\nexport * from './lib/brn-dialog-close.directive';\nexport * from './lib/brn-dialog-content.directive';\nexport * from './lib/brn-dialog-description.directive';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay.component';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title.directive';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger.directive';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.component';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialogComponent,\n\tBrnDialogOverlayComponent,\n\tBrnDialogTriggerDirective,\n\tBrnDialogCloseDirective,\n\tBrnDialogContentDirective,\n\tBrnDialogTitleDirective,\n\tBrnDialogDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnDialogImports],\n\texports: [...BrnDialogImports],\n})\nexport class BrnDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,10 @@ class BrnSelectOptionDirective {
|
|
|
54
54
|
if (this._disabled()) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
+
if (this._select.multiple()) {
|
|
58
|
+
this._select.toggleSelect(this.value());
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
57
61
|
this._select.selectOption(this.value());
|
|
58
62
|
}
|
|
59
63
|
/** Get the label for this element which is required by the FocusableOption interface. */
|
|
@@ -643,7 +647,8 @@ class BrnSelectComponent {
|
|
|
643
647
|
deselectOption(value) {
|
|
644
648
|
if (this.multiple()) {
|
|
645
649
|
const currentValue = this.value();
|
|
646
|
-
const
|
|
650
|
+
const newSelectedValues = currentValue.filter((val) => !this.compareWith()(val, value));
|
|
651
|
+
const newValue = !newSelectedValues.length ? null : newSelectedValues;
|
|
647
652
|
this.value.set(newValue);
|
|
648
653
|
}
|
|
649
654
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-select.mjs","sources":["../../../../libs/brain/select/src/lib/brn-select-content.token.ts","../../../../libs/brain/select/src/lib/brn-select.token.ts","../../../../libs/brain/select/src/lib/brn-select-option.directive.ts","../../../../libs/brain/select/src/lib/brn-select-content.component.ts","../../../../libs/brain/select/src/lib/brn-select-group.directive.ts","../../../../libs/brain/select/src/lib/brn-select-label.directive.ts","../../../../libs/brain/select/src/lib/brn-select-placeholder.directive.ts","../../../../libs/brain/select/src/lib/brn-select-trigger.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.component.ts","../../../../libs/brain/select/src/lib/brn-select.component.ts","../../../../libs/brain/select/src/index.ts","../../../../libs/brain/select/src/spartan-ng-brain-select.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnSelectContentComponent } from './brn-select-content.component';\n\nconst BrnSelectContentToken = new InjectionToken<BrnSelectContentComponent<unknown>>('BrnSelectContentToken');\n\nexport function injectBrnSelectContent<T>(): BrnSelectContentComponent<T> {\n\treturn inject(BrnSelectContentToken) as BrnSelectContentComponent<T>;\n}\n\nexport function provideBrnSelectContent(select: Type<BrnSelectContentComponent<unknown>>): ExistingProvider {\n\treturn { provide: BrnSelectContentToken, useExisting: select };\n}\n","import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnSelectComponent } from './brn-select.component';\n\nconst BrnSelectToken = new InjectionToken<BrnSelectComponent>('BrnSelectToken');\n\nexport function injectBrnSelect<T>(): BrnSelectComponent<T> {\n\treturn inject(BrnSelectToken) as BrnSelectComponent<T>;\n}\n\nexport function provideBrnSelect(select: Type<BrnSelectComponent>): ExistingProvider {\n\treturn { provide: BrnSelectToken, useExisting: select };\n}\n","import type { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, booleanAttribute, computed, inject, input, signal } from '@angular/core';\nimport { injectBrnSelectContent } from './brn-select-content.token';\nimport { injectBrnSelect } from './brn-select.token';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[brnOption]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'option',\n\t\t'[id]': 'id()',\n\t\t'[attr.aria-selected]': 'selected()',\n\t\t'[attr.aria-disabled]': '_disabled()',\n\t\t'(click)': 'select()',\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'[attr.data-active]': \"_active() ? '' : undefined\",\n\t\t'[attr.data-disabled]': \"_disabled() ? '' : undefined\",\n\t\t'(mouseenter)': 'activate()',\n\t},\n})\nexport class BrnSelectOptionDirective<T> implements Highlightable {\n\tprotected readonly _select = injectBrnSelect();\n\tprotected readonly _content = injectBrnSelectContent<T>();\n\tpublic readonly elementRef = inject(ElementRef);\n\tpublic readonly id = input(`brn-option-${nextId++}`);\n\tpublic readonly value = input<T>();\n\n\t// we use \"_disabled\" here because disabled is already defined in the Highlightable interface\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic get disabled(): boolean {\n\t\treturn this._disabled();\n\t}\n\n\tpublic readonly selected = computed(() => this.value() !== undefined && this._select.isSelected(this.value()));\n\tprotected readonly _active = signal(false);\n\tpublic readonly checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));\n\tpublic readonly dir = this._select.dir;\n\n\tpublic select(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._select.selectOption(this.value());\n\t}\n\n\t/** Get the label for this element which is required by the FocusableOption interface. */\n\tgetLabel(): string {\n\t\treturn this.elementRef.nativeElement.textContent?.trim() ?? '';\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis._active.set(true);\n\n\t\t// scroll the option into view if it is not visible\n\t\tthis.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis._active.set(false);\n\t}\n\n\tprotected activate(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._content.setActiveOption(this);\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tInjector,\n\tafterNextRender,\n\tcontentChild,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\n\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directive } from '@angular/core';\nimport { Subject, fromEvent, interval } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { provideBrnSelectContent } from './brn-select-content.token';\nimport { injectBrnSelect } from './brn-select.token';\n\nconst SCROLLBY_PIXELS = 100;\n\n@Directive({\n\tselector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollUpDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusUp());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollDownDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusDown());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Component({\n\tstandalone: true,\n\tselector: 'brn-select-content, hlm-select-content:not(noHlm)',\n\timports: [NgTemplateOutlet],\n\tproviders: [provideBrnSelectContent(BrnSelectContentComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\trole: 'listbox',\n\t\ttabindex: '0',\n\t\t'[attr.aria-multiselectable]': '_select.multiple()',\n\t\t'[attr.aria-disabled]': '_select.disabled() || _select._formDisabled()',\n\t\t'aria-orientation': 'vertical',\n\t\t'[attr.aria-activedescendant]': 'keyManager?.activeItem?.id()',\n\t\t'[attr.aria-labelledBy]': '_select.labelId()',\n\t\t'[attr.aria-controlledBy]': \"_select.id() +'--trigger'\",\n\t\t'[id]': \"_select.id() + '--content'\",\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'(keydown)': 'keyManager?.onKeydown($event)',\n\t\t'(keydown.enter)': 'selectActiveItem($event)',\n\t\t'(keydown.space)': 'selectActiveItem($event)',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tflex-direction: column;\n\t\t\t\toutline: none;\n\t\t\t\tpointer-events: auto;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport] {\n\t\t\t\tscrollbar-width: none;\n\t\t\t\t-ms-overflow-style: none;\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport]::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\ttemplate: `\n\t\t<ng-template #scrollUp>\n\t\t\t<ng-content select=\"hlm-select-scroll-up\" />\n\t\t\t<ng-content select=\"brnSelectScrollUp\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollUp() && scrollUpBtn() ? scrollUp : null\" />\n\t\t<div\n\t\t\tdata-brn-select-viewport\n\t\t\t#viewport\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\tstyle=\"flex: 1 1 0%;\n\t\t\tposition: relative;\n\t\t\twidth:100%;\n\t\t\toverflow:auto;\n\t\t\tmin-height: 36px;\n padding-bottom: 2px;\n margin-bottom: -2px;\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<ng-template #scrollDown>\n\t\t\t<ng-content select=\"brnSelectScrollDown\" />\n\t\t\t<ng-content select=\"hlm-select-scroll-down\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollDown() && scrollDownBtn() ? scrollDown : null\" />\n\t`,\n})\nexport class BrnSelectContentComponent<T> implements AfterContentInit {\n\tprivate readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _injector = inject(Injector);\n\tprotected readonly _select = injectBrnSelect<T>();\n\tprotected readonly canScrollUp = signal(false);\n\tprotected readonly canScrollDown = signal(false);\n\tprotected readonly viewport = viewChild.required<ElementRef<HTMLElement>>('viewport');\n\tprotected readonly scrollUpBtn = contentChild(BrnSelectScrollUpDirective);\n\tprotected readonly scrollDownBtn = contentChild(BrnSelectScrollDownDirective);\n\tprivate readonly _options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\t/** @internal */\n\tpublic keyManager: ActiveDescendantKeyManager<BrnSelectOptionDirective<T>> | null = null;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._select.open() && afterNextRender(() => this.updateArrowDisplay(), { injector: this._injector });\n\t\t});\n\t}\n\n\tngAfterContentInit(): void {\n\t\tthis.keyManager = new ActiveDescendantKeyManager(this._options, this._injector)\n\t\t\t.withHomeAndEnd()\n\t\t\t.withVerticalOrientation()\n\t\t\t.withTypeAhead()\n\t\t\t.withAllowedModifierKeys(['shiftKey'])\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((option) => option._disabled());\n\n\t\teffect(\n\t\t\t() => {\n\t\t\t\t// any time the select is opened, we need to focus the first selected option or the first option\n\t\t\t\tconst open = this._select.open();\n\t\t\t\tconst options = this._options();\n\n\t\t\t\tif (!open || !options.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tconst selectedOption = options.find((option) => option.selected());\n\n\t\t\t\t\tif (selectedOption) {\n\t\t\t\t\t\tthis.keyManager?.setActiveItem(selectedOption);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.keyManager?.setFirstItemActive();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tpublic updateArrowDisplay(): void {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;\n\t\tthis.canScrollUp.set(scrollTop > 0);\n\t\tconst maxScroll = scrollHeight - clientHeight;\n\t\tthis.canScrollDown.set(Math.ceil(scrollTop) < maxScroll);\n\t}\n\n\tpublic handleScroll(): void {\n\t\tthis.updateArrowDisplay();\n\t}\n\n\tpublic focusList(): void {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n\n\tpublic moveFocusUp(): void {\n\t\tthis.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tif (this.viewport().nativeElement.scrollTop === 0) {\n\t\t\tthis.scrollUpBtn()?.stopEmittingEvents();\n\t\t}\n\t}\n\n\tpublic moveFocusDown(): void {\n\t\tthis.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tconst viewportSize = this._elementRef.nativeElement.scrollHeight;\n\t\tconst viewportScrollPosition = this.viewport().nativeElement.scrollTop;\n\t\tif (\n\t\t\tviewportSize + viewportScrollPosition + SCROLLBY_PIXELS >\n\t\t\tthis.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2\n\t\t) {\n\t\t\tthis.scrollDownBtn()?.stopEmittingEvents();\n\t\t}\n\t}\n\n\tsetActiveOption(option: BrnSelectOptionDirective<T>): void {\n\t\tconst index = this._options().findIndex((o) => o === option);\n\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.keyManager?.setActiveItem(index);\n\t}\n\n\tprotected selectActiveItem(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\n\t\tconst activeOption = this.keyManager?.activeItem;\n\n\t\tif (activeOption) {\n\t\t\tthis._select.selectOption(activeOption.value()!);\n\t\t}\n\t}\n}\n","import { Directive, signal } from '@angular/core';\n\n@Directive({\n\tselector: '[brnSelectGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.aria-labelledby]': 'labelledBy()',\n\t},\n})\nexport class BrnSelectGroupDirective {\n\tpublic readonly labelledBy = signal('');\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { BrnSelectGroupDirective } from './brn-select-group.directive';\n\n@Directive({\n\tselector: '[brnSelectLabel]',\n\thostDirectives: [BrnLabelDirective],\n\tstandalone: true,\n})\nexport class BrnSelectLabelDirective {\n\tprivate readonly _group = inject(BrnSelectGroupDirective, { optional: true });\n\tprivate readonly _label = inject(BrnLabelDirective, { host: true });\n\n\tconstructor() {\n\t\tthis._group?.labelledBy.set(this._label.id());\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnSelectPlaceholder], [hlmSelectPlaceholder]',\n})\nexport class BrnSelectPlaceholderDirective {\n\t/** @internale */\n\tpublic readonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { type AfterViewInit, Directive, ElementRef, OnDestroy, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { injectBrnSelect } from './brn-select.token';\n\n@Directive({\n\tselector: '[brnSelectTrigger]',\n\tstandalone: true,\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'combobox',\n\t\t'[attr.id]': '_triggerId()',\n\t\t'[disabled]': '_disabled()',\n\t\t'[attr.aria-expanded]': '_select.open()',\n\t\t'[attr.aria-controls]': '_contentId()',\n\t\t'[attr.aria-labelledBy]': '_labelledBy()',\n\t\t'aria-autocomplete': 'none',\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'[class.ng-invalid]': '_ngControl?.invalid || null',\n\t\t'[class.ng-dirty]': '_ngControl?.dirty || null',\n\t\t'[class.ng-valid]': '_ngControl?.valid || null',\n\t\t'[class.ng-touched]': '_ngControl?.touched || null',\n\t\t'[class.ng-untouched]': '_ngControl?.untouched || null',\n\t\t'[class.ng-pristine]': '_ngControl?.pristine || null',\n\t\t'(keydown.ArrowDown)': '_select.show()',\n\t},\n})\nexport class BrnSelectTriggerDirective<T> implements AfterViewInit, OnDestroy {\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprotected readonly _select = injectBrnSelect<T>();\n\tprotected readonly _ngControl = inject(NgControl, { optional: true });\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\tprotected readonly _triggerId = computed(() => `${this._select.id()}--trigger`);\n\tprotected readonly _contentId = computed(() => `${this._select.id()}--content`);\n\tprotected readonly _disabled = computed(() => this._select.disabled() || this._select._formDisabled());\n\tprotected readonly _labelledBy = computed(() => {\n\t\tconst value = this._select.value();\n\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\treturn `${this._select.labelId()} ${this._select.id()}--value`;\n\t\t}\n\t\treturn this._select.labelId();\n\t});\n\n\tprivate _resizeObserver?: ResizeObserver;\n\n\tconstructor() {\n\t\tthis._select.trigger.set(this);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth);\n\n\t\t// if we are on the client, listen for element resize events\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._resizeObserver = new ResizeObserver(() =>\n\t\t\t\tthis._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth),\n\t\t\t);\n\n\t\t\tthis._resizeObserver.observe(this._elementRef.nativeElement);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._resizeObserver?.disconnect();\n\t}\n\n\tfocus(): void {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnSelectValue], [hlmSelectValue]',\n})\nexport class BrnSelectValueDirective<T> {\n\t/** @internale */\n\tpublic readonly templateRef = inject<TemplateRef<BrnSelectValueContext<T>>>(TemplateRef);\n}\n\nexport interface BrnSelectValueContext<T> {\n\t$implicit: T | T[];\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, input } from '@angular/core';\nimport { BrnSelectPlaceholderDirective } from './brn-select-placeholder.directive';\nimport { BrnSelectValueDirective } from './brn-select-value.directive';\nimport { injectBrnSelect } from './brn-select.token';\n\n@Component({\n\tselector: 'brn-select-value, hlm-select-value',\n\timports: [NgTemplateOutlet],\n\ttemplate: `\n\t\t@if (_showPlaceholder()) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate\" />\n\t\t} @else {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"customValueTemplate()?.templateRef ?? defaultValueTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: _select.value() }\"\n\t\t\t/>\n\t\t}\n\n\t\t<ng-template #defaultValueTemplate>{{ value() }}</ng-template>\n\t\t<ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>\n\t`,\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t-webkit-line-clamp: 1;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t`,\n\t],\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnSelectValueComponent<T> {\n\tprotected readonly _select = injectBrnSelect<T>();\n\tpublic readonly id = computed(() => `${this._select.id()}--value`);\n\tpublic readonly placeholder = computed(() => this._select.placeholder());\n\n\tprotected readonly _showPlaceholder = computed(\n\t\t() => this.value() === null || this.value() === undefined || this.value() === '',\n\t);\n\n\t/** Allow a custom value template */\n\tprotected readonly customValueTemplate = contentChild(BrnSelectValueDirective, { descendants: true });\n\tprotected readonly customPlaceholderTemplate = contentChild(BrnSelectPlaceholderDirective, { descendants: true });\n\n\tprotected readonly value = computed(() => {\n\t\tconst value = this._values();\n\n\t\tif (value.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// remove any selected values that are not in the options list\n\t\tconst existingOptions = value.filter((val) =>\n\t\t\tthis._select.options().some((option) => this._select.compareWith()(option.value(), val)),\n\t\t);\n\t\tconst selectedOption = existingOptions.map((val) =>\n\t\t\tthis._select.options().find((option) => this._select.compareWith()(option.value(), val)),\n\t\t);\n\n\t\tif (selectedOption.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst selectedLabels = selectedOption.map((option) => option?.getLabel());\n\n\t\tif (this._select.dir() === 'rtl') {\n\t\t\tselectedLabels.reverse();\n\t\t}\n\t\treturn this.transformFn()(selectedLabels);\n\t});\n\n\t/** Normalize the values as an array */\n\tprotected readonly _values = computed(() =>\n\t\tArray.isArray(this._select.value()) ? (this._select.value() as T[]) : ([this._select.value()] as T[]),\n\t);\n\n\tpublic readonly transformFn = input<(values: (string | undefined)[]) => any>((values) => (values ?? []).join(', '));\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport {\n\tCdkConnectedOverlay,\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\tOverlayModule,\n} from '@angular/cdk/overlay';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\ttype DoCheck,\n\tInjector,\n\ttype Signal,\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tinject,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { ChangeFn, ErrorStateMatcher, ErrorStateTracker, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { Subject, of } from 'rxjs';\nimport { delay, map, switchMap } from 'rxjs/operators';\nimport { BrnSelectContentComponent } from './brn-select-content.component';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\nimport { BrnSelectTriggerDirective } from './brn-select-trigger.directive';\nimport { provideBrnSelect } from './brn-select.token';\n\nexport type BrnReadDirection = 'ltr' | 'rtl';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'brn-select, hlm-select',\n\timports: [OverlayModule, CdkListboxModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tprovideExposedSideProviderExisting(() => BrnSelectComponent),\n\t\tprovideExposesStateProviderExisting(() => BrnSelectComponent),\n\t\tprovideBrnSelect(BrnSelectComponent),\n\t\t{\n\t\t\tprovide: BrnFormFieldControl,\n\t\t\tuseExisting: BrnSelectComponent,\n\t\t},\n\t],\n\ttemplate: `\n\t\t@if (!selectLabel() && placeholder()) {\n\t\t\t<label class=\"hidden\" [attr.id]=\"labelId()\">{{ placeholder() }}</label>\n\t\t} @else {\n\t\t\t<ng-content select=\"label[hlmLabel],label[brnLabel]\" />\n\t\t}\n\n\t\t<div cdk-overlay-origin (click)=\"toggle()\" #trigger=\"cdkOverlayOrigin\">\n\t\t\t<ng-content select=\"hlm-select-trigger,[brnSelectTrigger]\" />\n\t\t</div>\n\n\t\t<ng-template\n\t\t\tcdk-connected-overlay\n\t\t\tcdkConnectedOverlayLockPosition\n\t\t\tcdkConnectedOverlayHasBackdrop\n\t\t\tcdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n\t\t\t[cdkConnectedOverlayOrigin]=\"trigger\"\n\t\t\t[cdkConnectedOverlayOpen]=\"_delayedExpanded()\"\n\t\t\t[cdkConnectedOverlayPositions]=\"_positions\"\n\t\t\t[cdkConnectedOverlayWidth]=\"triggerWidth() > 0 ? triggerWidth() : 'auto'\"\n\t\t\t(backdropClick)=\"hide()\"\n\t\t\t(detach)=\"hide()\"\n\t\t\t(positionChange)=\"_positionChanges$.next($event)\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t`,\n})\nexport class BrnSelectComponent<T = unknown>\n\timplements ControlValueAccessor, DoCheck, ExposesSide, ExposesState, BrnFormFieldControl\n{\n\tprivate readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\tpublic readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n\tpublic readonly id = input<string>(`brn-select-${nextId++}`);\n\tpublic readonly multiple = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly placeholder = input<string>('');\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly dir = input<BrnReadDirection>('ltr');\n\tpublic readonly closeDelay = input<number, NumberInput>(100, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly open = model<boolean>(false);\n\tpublic readonly value = model<T | T[]>();\n\tpublic readonly compareWith = input<(o1: T, o2: T) => boolean>((o1, o2) => o1 === o2);\n\tpublic readonly _formDisabled = signal(false);\n\n\t/** Label provided by the consumer. */\n\tprotected readonly selectLabel = contentChild(BrnLabelDirective, { descendants: false });\n\n\t/** Overlay pane containing the options. */\n\tprotected readonly selectContent = contentChild.required(BrnSelectContentComponent);\n\n\t/** @internal */\n\tpublic readonly options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\t/** @internal Derive the selected options to filter out the unselected options */\n\tpublic readonly selectedOptions = computed(() => this.options().filter((option) => option.selected()));\n\n\t/** Overlay pane containing the options. */\n\tprotected readonly _overlayDir = viewChild.required(CdkConnectedOverlay);\n\tpublic readonly trigger = signal<BrnSelectTriggerDirective<T> | null>(null);\n\tpublic readonly triggerWidth = signal<number>(0);\n\n\tprotected readonly _delayedExpanded = toSignal(\n\t\ttoObservable(this.open).pipe(\n\t\t\tswitchMap((expanded) => (!expanded ? of(expanded).pipe(delay(this.closeDelay())) : of(expanded))),\n\t\t\ttakeUntilDestroyed(),\n\t\t),\n\t\t{ initialValue: false },\n\t);\n\n\tpublic readonly state = computed(() => (this.open() ? 'open' : 'closed'));\n\n\tprotected readonly _positionChanges$ = new Subject<ConnectedOverlayPositionChange>();\n\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis._positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic readonly labelId = computed(() => this.selectLabel()?.id ?? `${this.id()}--label`);\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: ChangeFn<T | T[]> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\t/*\n\t * This position config ensures that the top \"start\" corner of the overlay\n\t * is aligned with with the top \"start\" of the origin by default (overlapping\n\t * the trigger completely). If the panel cannot fit below the trigger, it\n\t * will fall back to a position above the trigger.\n\t */\n\tprotected _positions: ConnectedPosition[] = [\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t];\n\n\tpublic errorStateTracker: ErrorStateTracker;\n\n\tpublic readonly errorState = computed(() => this.errorStateTracker.errorState());\n\n\tconstructor() {\n\t\tif (this.ngControl !== null) {\n\t\t\tthis.ngControl.valueAccessor = this;\n\t\t}\n\n\t\tthis.errorStateTracker = new ErrorStateTracker(\n\t\t\tthis._defaultErrorStateMatcher,\n\t\t\tthis.ngControl,\n\t\t\tthis._parentFormGroup,\n\t\t\tthis._parentForm,\n\t\t);\n\t}\n\n\tngDoCheck() {\n\t\tthis.errorStateTracker.updateErrorState();\n\t}\n\n\tpublic toggle(): void {\n\t\tif (this.open()) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\tpublic show(): void {\n\t\tif (this.open() || this.disabled() || this._formDisabled() || this.options()?.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open.set(true);\n\t\tafterNextRender(() => this.selectContent().focusList(), { injector: this._injector });\n\t}\n\n\tpublic hide(): void {\n\t\tif (!this.open()) return;\n\n\t\tthis.open.set(false);\n\t\tthis._onTouched();\n\n\t\t// restore focus to the trigger\n\t\tthis.trigger()?.focus();\n\t}\n\n\tpublic writeValue(value: T): void {\n\t\tthis.value.set(value);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T | T[]>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean) {\n\t\tthis._formDisabled.set(isDisabled);\n\t}\n\n\tselectOption(value: T): void {\n\t\t// if this is a multiple select we need to add the value to the array\n\t\tif (this.multiple()) {\n\t\t\tconst currentValue = this.value() as T[];\n\t\t\tconst newValue = currentValue ? [...currentValue, value] : [value];\n\t\t\tthis.value.set(newValue);\n\t\t} else {\n\t\t\tthis.value.set(value);\n\t\t}\n\n\t\tthis._onChange?.(this.value() as T | T[]);\n\n\t\t// if this is single select close the dropdown\n\t\tif (!this.multiple()) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\tdeselectOption(value: T): void {\n\t\tif (this.multiple()) {\n\t\t\tconst currentValue = this.value() as T[];\n\t\t\tconst newValue = currentValue.filter((val) => !this.compareWith()(val, value));\n\t\t\tthis.value.set(newValue);\n\t\t} else {\n\t\t\tthis.value.set(null as T);\n\t\t}\n\n\t\tthis._onChange?.(this.value() as T | T[]);\n\t}\n\n\ttoggleSelect(value: T): void {\n\t\tif (this.isSelected(value)) {\n\t\t\tthis.deselectOption(value);\n\t\t} else {\n\t\t\tthis.selectOption(value);\n\t\t}\n\t}\n\n\tisSelected(value: T): boolean {\n\t\tconst selection = this.value();\n\n\t\tif (Array.isArray(selection)) {\n\t\t\treturn selection.some((val) => this.compareWith()(val, value));\n\t\t} else if (value !== undefined) {\n\t\t\treturn this.compareWith()(selection as T, value);\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport {\n\tBrnSelectContentComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n} from './lib/brn-select-content.component';\nimport { BrnSelectGroupDirective } from './lib/brn-select-group.directive';\nimport { BrnSelectLabelDirective } from './lib/brn-select-label.directive';\nimport { BrnSelectOptionDirective } from './lib/brn-select-option.directive';\nimport { BrnSelectPlaceholderDirective } from './lib/brn-select-placeholder.directive';\nimport { BrnSelectTriggerDirective } from './lib/brn-select-trigger.directive';\nimport { BrnSelectValueComponent } from './lib/brn-select-value.component';\nimport { BrnSelectValueDirective } from './lib/brn-select-value.directive';\nimport { BrnSelectComponent } from './lib/brn-select.component';\nexport * from './lib/brn-select-content.component';\nexport * from './lib/brn-select-group.directive';\nexport * from './lib/brn-select-label.directive';\nexport * from './lib/brn-select-option.directive';\nexport * from './lib/brn-select-placeholder.directive';\nexport * from './lib/brn-select-trigger.directive';\nexport * from './lib/brn-select-value.component';\nexport * from './lib/brn-select-value.directive';\nexport * from './lib/brn-select.component';\n\nexport const BrnSelectImports = [\n\tBrnSelectComponent,\n\tBrnSelectContentComponent,\n\tBrnSelectTriggerDirective,\n\tBrnSelectOptionDirective,\n\tBrnSelectValueComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n\tBrnSelectGroupDirective,\n\tBrnSelectLabelDirective,\n\tBrnSelectValueDirective,\n\tBrnSelectPlaceholderDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSelectImports],\n\texports: [...BrnSelectImports],\n})\nexport class BrnSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-select.mjs","sources":["../../../../libs/brain/select/src/lib/brn-select-content.token.ts","../../../../libs/brain/select/src/lib/brn-select.token.ts","../../../../libs/brain/select/src/lib/brn-select-option.directive.ts","../../../../libs/brain/select/src/lib/brn-select-content.component.ts","../../../../libs/brain/select/src/lib/brn-select-group.directive.ts","../../../../libs/brain/select/src/lib/brn-select-label.directive.ts","../../../../libs/brain/select/src/lib/brn-select-placeholder.directive.ts","../../../../libs/brain/select/src/lib/brn-select-trigger.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.component.ts","../../../../libs/brain/select/src/lib/brn-select.component.ts","../../../../libs/brain/select/src/index.ts","../../../../libs/brain/select/src/spartan-ng-brain-select.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnSelectContentComponent } from './brn-select-content.component';\n\nconst BrnSelectContentToken = new InjectionToken<BrnSelectContentComponent<unknown>>('BrnSelectContentToken');\n\nexport function injectBrnSelectContent<T>(): BrnSelectContentComponent<T> {\n\treturn inject(BrnSelectContentToken) as BrnSelectContentComponent<T>;\n}\n\nexport function provideBrnSelectContent(select: Type<BrnSelectContentComponent<unknown>>): ExistingProvider {\n\treturn { provide: BrnSelectContentToken, useExisting: select };\n}\n","import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnSelectComponent } from './brn-select.component';\n\nconst BrnSelectToken = new InjectionToken<BrnSelectComponent>('BrnSelectToken');\n\nexport function injectBrnSelect<T>(): BrnSelectComponent<T> {\n\treturn inject(BrnSelectToken) as BrnSelectComponent<T>;\n}\n\nexport function provideBrnSelect(select: Type<BrnSelectComponent>): ExistingProvider {\n\treturn { provide: BrnSelectToken, useExisting: select };\n}\n","import type { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, ElementRef, inject, input, signal } from '@angular/core';\nimport { injectBrnSelectContent } from './brn-select-content.token';\nimport { injectBrnSelect } from './brn-select.token';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[brnOption]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'option',\n\t\t'[id]': 'id()',\n\t\t'[attr.aria-selected]': 'selected()',\n\t\t'[attr.aria-disabled]': '_disabled()',\n\t\t'(click)': 'select()',\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'[attr.data-active]': \"_active() ? '' : undefined\",\n\t\t'[attr.data-disabled]': \"_disabled() ? '' : undefined\",\n\t\t'(mouseenter)': 'activate()',\n\t},\n})\nexport class BrnSelectOptionDirective<T> implements Highlightable {\n\tprotected readonly _select = injectBrnSelect();\n\tprotected readonly _content = injectBrnSelectContent<T>();\n\tpublic readonly elementRef = inject(ElementRef);\n\tpublic readonly id = input(`brn-option-${nextId++}`);\n\tpublic readonly value = input<T>();\n\n\t// we use \"_disabled\" here because disabled is already defined in the Highlightable interface\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic get disabled(): boolean {\n\t\treturn this._disabled();\n\t}\n\n\tpublic readonly selected = computed(() => this.value() !== undefined && this._select.isSelected(this.value()));\n\tprotected readonly _active = signal(false);\n\tpublic readonly checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));\n\tpublic readonly dir = this._select.dir;\n\n\tpublic select(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._select.multiple()) {\n\t\t\tthis._select.toggleSelect(this.value());\n\t\t\treturn;\n\t\t}\n\n\t\tthis._select.selectOption(this.value());\n\t}\n\n\t/** Get the label for this element which is required by the FocusableOption interface. */\n\tgetLabel(): string {\n\t\treturn this.elementRef.nativeElement.textContent?.trim() ?? '';\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis._active.set(true);\n\n\t\t// scroll the option into view if it is not visible\n\t\tthis.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis._active.set(false);\n\t}\n\n\tprotected activate(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\t\tthis._content.setActiveOption(this);\n\t}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tInjector,\n\tafterNextRender,\n\tcontentChild,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\n\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directive } from '@angular/core';\nimport { Subject, fromEvent, interval } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { provideBrnSelectContent } from './brn-select-content.token';\nimport { injectBrnSelect } from './brn-select.token';\n\nconst SCROLLBY_PIXELS = 100;\n\n@Directive({\n\tselector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollUpDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusUp());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollDownDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusDown());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Component({\n\tstandalone: true,\n\tselector: 'brn-select-content, hlm-select-content:not(noHlm)',\n\timports: [NgTemplateOutlet],\n\tproviders: [provideBrnSelectContent(BrnSelectContentComponent)],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\trole: 'listbox',\n\t\ttabindex: '0',\n\t\t'[attr.aria-multiselectable]': '_select.multiple()',\n\t\t'[attr.aria-disabled]': '_select.disabled() || _select._formDisabled()',\n\t\t'aria-orientation': 'vertical',\n\t\t'[attr.aria-activedescendant]': 'keyManager?.activeItem?.id()',\n\t\t'[attr.aria-labelledBy]': '_select.labelId()',\n\t\t'[attr.aria-controlledBy]': \"_select.id() +'--trigger'\",\n\t\t'[id]': \"_select.id() + '--content'\",\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'(keydown)': 'keyManager?.onKeydown($event)',\n\t\t'(keydown.enter)': 'selectActiveItem($event)',\n\t\t'(keydown.space)': 'selectActiveItem($event)',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tflex-direction: column;\n\t\t\t\toutline: none;\n\t\t\t\tpointer-events: auto;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport] {\n\t\t\t\tscrollbar-width: none;\n\t\t\t\t-ms-overflow-style: none;\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport]::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\ttemplate: `\n\t\t<ng-template #scrollUp>\n\t\t\t<ng-content select=\"hlm-select-scroll-up\" />\n\t\t\t<ng-content select=\"brnSelectScrollUp\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollUp() && scrollUpBtn() ? scrollUp : null\" />\n\t\t<div\n\t\t\tdata-brn-select-viewport\n\t\t\t#viewport\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\tstyle=\"flex: 1 1 0%;\n\t\t\tposition: relative;\n\t\t\twidth:100%;\n\t\t\toverflow:auto;\n\t\t\tmin-height: 36px;\n padding-bottom: 2px;\n margin-bottom: -2px;\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<ng-template #scrollDown>\n\t\t\t<ng-content select=\"brnSelectScrollDown\" />\n\t\t\t<ng-content select=\"hlm-select-scroll-down\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollDown() && scrollDownBtn() ? scrollDown : null\" />\n\t`,\n})\nexport class BrnSelectContentComponent<T> implements AfterContentInit {\n\tprivate readonly _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _injector = inject(Injector);\n\tprotected readonly _select = injectBrnSelect<T>();\n\tprotected readonly canScrollUp = signal(false);\n\tprotected readonly canScrollDown = signal(false);\n\tprotected readonly viewport = viewChild.required<ElementRef<HTMLElement>>('viewport');\n\tprotected readonly scrollUpBtn = contentChild(BrnSelectScrollUpDirective);\n\tprotected readonly scrollDownBtn = contentChild(BrnSelectScrollDownDirective);\n\tprivate readonly _options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\t/** @internal */\n\tpublic keyManager: ActiveDescendantKeyManager<BrnSelectOptionDirective<T>> | null = null;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._select.open() && afterNextRender(() => this.updateArrowDisplay(), { injector: this._injector });\n\t\t});\n\t}\n\n\tngAfterContentInit(): void {\n\t\tthis.keyManager = new ActiveDescendantKeyManager(this._options, this._injector)\n\t\t\t.withHomeAndEnd()\n\t\t\t.withVerticalOrientation()\n\t\t\t.withTypeAhead()\n\t\t\t.withAllowedModifierKeys(['shiftKey'])\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((option) => option._disabled());\n\n\t\teffect(\n\t\t\t() => {\n\t\t\t\t// any time the select is opened, we need to focus the first selected option or the first option\n\t\t\t\tconst open = this._select.open();\n\t\t\t\tconst options = this._options();\n\n\t\t\t\tif (!open || !options.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tconst selectedOption = options.find((option) => option.selected());\n\n\t\t\t\t\tif (selectedOption) {\n\t\t\t\t\t\tthis.keyManager?.setActiveItem(selectedOption);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.keyManager?.setFirstItemActive();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ injector: this._injector },\n\t\t);\n\t}\n\n\tpublic updateArrowDisplay(): void {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;\n\t\tthis.canScrollUp.set(scrollTop > 0);\n\t\tconst maxScroll = scrollHeight - clientHeight;\n\t\tthis.canScrollDown.set(Math.ceil(scrollTop) < maxScroll);\n\t}\n\n\tpublic handleScroll(): void {\n\t\tthis.updateArrowDisplay();\n\t}\n\n\tpublic focusList(): void {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n\n\tpublic moveFocusUp(): void {\n\t\tthis.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tif (this.viewport().nativeElement.scrollTop === 0) {\n\t\t\tthis.scrollUpBtn()?.stopEmittingEvents();\n\t\t}\n\t}\n\n\tpublic moveFocusDown(): void {\n\t\tthis.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tconst viewportSize = this._elementRef.nativeElement.scrollHeight;\n\t\tconst viewportScrollPosition = this.viewport().nativeElement.scrollTop;\n\t\tif (\n\t\t\tviewportSize + viewportScrollPosition + SCROLLBY_PIXELS >\n\t\t\tthis.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2\n\t\t) {\n\t\t\tthis.scrollDownBtn()?.stopEmittingEvents();\n\t\t}\n\t}\n\n\tsetActiveOption(option: BrnSelectOptionDirective<T>): void {\n\t\tconst index = this._options().findIndex((o) => o === option);\n\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.keyManager?.setActiveItem(index);\n\t}\n\n\tprotected selectActiveItem(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\n\t\tconst activeOption = this.keyManager?.activeItem;\n\n\t\tif (activeOption) {\n\t\t\tthis._select.selectOption(activeOption.value()!);\n\t\t}\n\t}\n}\n","import { Directive, signal } from '@angular/core';\n\n@Directive({\n\tselector: '[brnSelectGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.aria-labelledby]': 'labelledBy()',\n\t},\n})\nexport class BrnSelectGroupDirective {\n\tpublic readonly labelledBy = signal('');\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { BrnSelectGroupDirective } from './brn-select-group.directive';\n\n@Directive({\n\tselector: '[brnSelectLabel]',\n\thostDirectives: [BrnLabelDirective],\n\tstandalone: true,\n})\nexport class BrnSelectLabelDirective {\n\tprivate readonly _group = inject(BrnSelectGroupDirective, { optional: true });\n\tprivate readonly _label = inject(BrnLabelDirective, { host: true });\n\n\tconstructor() {\n\t\tthis._group?.labelledBy.set(this._label.id());\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnSelectPlaceholder], [hlmSelectPlaceholder]',\n})\nexport class BrnSelectPlaceholderDirective {\n\t/** @internale */\n\tpublic readonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { type AfterViewInit, Directive, ElementRef, OnDestroy, PLATFORM_ID, computed, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { injectBrnSelect } from './brn-select.token';\n\n@Directive({\n\tselector: '[brnSelectTrigger]',\n\tstandalone: true,\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'combobox',\n\t\t'[attr.id]': '_triggerId()',\n\t\t'[disabled]': '_disabled()',\n\t\t'[attr.aria-expanded]': '_select.open()',\n\t\t'[attr.aria-controls]': '_contentId()',\n\t\t'[attr.aria-labelledBy]': '_labelledBy()',\n\t\t'aria-autocomplete': 'none',\n\t\t'[attr.dir]': '_select.dir()',\n\t\t'[class.ng-invalid]': '_ngControl?.invalid || null',\n\t\t'[class.ng-dirty]': '_ngControl?.dirty || null',\n\t\t'[class.ng-valid]': '_ngControl?.valid || null',\n\t\t'[class.ng-touched]': '_ngControl?.touched || null',\n\t\t'[class.ng-untouched]': '_ngControl?.untouched || null',\n\t\t'[class.ng-pristine]': '_ngControl?.pristine || null',\n\t\t'(keydown.ArrowDown)': '_select.show()',\n\t},\n})\nexport class BrnSelectTriggerDirective<T> implements AfterViewInit, OnDestroy {\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprotected readonly _select = injectBrnSelect<T>();\n\tprotected readonly _ngControl = inject(NgControl, { optional: true });\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\tprotected readonly _triggerId = computed(() => `${this._select.id()}--trigger`);\n\tprotected readonly _contentId = computed(() => `${this._select.id()}--content`);\n\tprotected readonly _disabled = computed(() => this._select.disabled() || this._select._formDisabled());\n\tprotected readonly _labelledBy = computed(() => {\n\t\tconst value = this._select.value();\n\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\treturn `${this._select.labelId()} ${this._select.id()}--value`;\n\t\t}\n\t\treturn this._select.labelId();\n\t});\n\n\tprivate _resizeObserver?: ResizeObserver;\n\n\tconstructor() {\n\t\tthis._select.trigger.set(this);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth);\n\n\t\t// if we are on the client, listen for element resize events\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._resizeObserver = new ResizeObserver(() =>\n\t\t\t\tthis._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth),\n\t\t\t);\n\n\t\t\tthis._resizeObserver.observe(this._elementRef.nativeElement);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._resizeObserver?.disconnect();\n\t}\n\n\tfocus(): void {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnSelectValue], [hlmSelectValue]',\n})\nexport class BrnSelectValueDirective<T> {\n\t/** @internale */\n\tpublic readonly templateRef = inject<TemplateRef<BrnSelectValueContext<T>>>(TemplateRef);\n}\n\nexport interface BrnSelectValueContext<T> {\n\t$implicit: T | T[];\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, input } from '@angular/core';\nimport { BrnSelectPlaceholderDirective } from './brn-select-placeholder.directive';\nimport { BrnSelectValueDirective } from './brn-select-value.directive';\nimport { injectBrnSelect } from './brn-select.token';\n\n@Component({\n\tselector: 'brn-select-value, hlm-select-value',\n\timports: [NgTemplateOutlet],\n\ttemplate: `\n\t\t@if (_showPlaceholder()) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate\" />\n\t\t} @else {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"customValueTemplate()?.templateRef ?? defaultValueTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: _select.value() }\"\n\t\t\t/>\n\t\t}\n\n\t\t<ng-template #defaultValueTemplate>{{ value() }}</ng-template>\n\t\t<ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>\n\t`,\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t-webkit-line-clamp: 1;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t`,\n\t],\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnSelectValueComponent<T> {\n\tprotected readonly _select = injectBrnSelect<T>();\n\tpublic readonly id = computed(() => `${this._select.id()}--value`);\n\tpublic readonly placeholder = computed(() => this._select.placeholder());\n\n\tprotected readonly _showPlaceholder = computed(\n\t\t() => this.value() === null || this.value() === undefined || this.value() === '',\n\t);\n\n\t/** Allow a custom value template */\n\tprotected readonly customValueTemplate = contentChild(BrnSelectValueDirective, { descendants: true });\n\tprotected readonly customPlaceholderTemplate = contentChild(BrnSelectPlaceholderDirective, { descendants: true });\n\n\tprotected readonly value = computed(() => {\n\t\tconst value = this._values();\n\n\t\tif (value.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// remove any selected values that are not in the options list\n\t\tconst existingOptions = value.filter((val) =>\n\t\t\tthis._select.options().some((option) => this._select.compareWith()(option.value(), val)),\n\t\t);\n\t\tconst selectedOption = existingOptions.map((val) =>\n\t\t\tthis._select.options().find((option) => this._select.compareWith()(option.value(), val)),\n\t\t);\n\n\t\tif (selectedOption.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst selectedLabels = selectedOption.map((option) => option?.getLabel());\n\n\t\tif (this._select.dir() === 'rtl') {\n\t\t\tselectedLabels.reverse();\n\t\t}\n\t\treturn this.transformFn()(selectedLabels);\n\t});\n\n\t/** Normalize the values as an array */\n\tprotected readonly _values = computed(() =>\n\t\tArray.isArray(this._select.value()) ? (this._select.value() as T[]) : ([this._select.value()] as T[]),\n\t);\n\n\tpublic readonly transformFn = input<(values: (string | undefined)[]) => any>((values) => (values ?? []).join(', '));\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkListboxModule } from '@angular/cdk/listbox';\nimport {\n\tCdkConnectedOverlay,\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\tOverlayModule,\n} from '@angular/cdk/overlay';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\ttype DoCheck,\n\tInjector,\n\ttype Signal,\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tinject,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { ChangeFn, ErrorStateMatcher, ErrorStateTracker, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { Subject, of } from 'rxjs';\nimport { delay, map, switchMap } from 'rxjs/operators';\nimport { BrnSelectContentComponent } from './brn-select-content.component';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\nimport { BrnSelectTriggerDirective } from './brn-select-trigger.directive';\nimport { provideBrnSelect } from './brn-select.token';\n\nexport type BrnReadDirection = 'ltr' | 'rtl';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'brn-select, hlm-select',\n\timports: [OverlayModule, CdkListboxModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tprovideExposedSideProviderExisting(() => BrnSelectComponent),\n\t\tprovideExposesStateProviderExisting(() => BrnSelectComponent),\n\t\tprovideBrnSelect(BrnSelectComponent),\n\t\t{\n\t\t\tprovide: BrnFormFieldControl,\n\t\t\tuseExisting: BrnSelectComponent,\n\t\t},\n\t],\n\ttemplate: `\n\t\t@if (!selectLabel() && placeholder()) {\n\t\t\t<label class=\"hidden\" [attr.id]=\"labelId()\">{{ placeholder() }}</label>\n\t\t} @else {\n\t\t\t<ng-content select=\"label[hlmLabel],label[brnLabel]\" />\n\t\t}\n\n\t\t<div cdk-overlay-origin (click)=\"toggle()\" #trigger=\"cdkOverlayOrigin\">\n\t\t\t<ng-content select=\"hlm-select-trigger,[brnSelectTrigger]\" />\n\t\t</div>\n\n\t\t<ng-template\n\t\t\tcdk-connected-overlay\n\t\t\tcdkConnectedOverlayLockPosition\n\t\t\tcdkConnectedOverlayHasBackdrop\n\t\t\tcdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n\t\t\t[cdkConnectedOverlayOrigin]=\"trigger\"\n\t\t\t[cdkConnectedOverlayOpen]=\"_delayedExpanded()\"\n\t\t\t[cdkConnectedOverlayPositions]=\"_positions\"\n\t\t\t[cdkConnectedOverlayWidth]=\"triggerWidth() > 0 ? triggerWidth() : 'auto'\"\n\t\t\t(backdropClick)=\"hide()\"\n\t\t\t(detach)=\"hide()\"\n\t\t\t(positionChange)=\"_positionChanges$.next($event)\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t`,\n})\nexport class BrnSelectComponent<T = unknown>\n\timplements ControlValueAccessor, DoCheck, ExposesSide, ExposesState, BrnFormFieldControl\n{\n\tprivate readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\tpublic readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n\tpublic readonly id = input<string>(`brn-select-${nextId++}`);\n\tpublic readonly multiple = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly placeholder = input<string>('');\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\tpublic readonly dir = input<BrnReadDirection>('ltr');\n\tpublic readonly closeDelay = input<number, NumberInput>(100, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly open = model<boolean>(false);\n\tpublic readonly value = model<T | T[]>();\n\tpublic readonly compareWith = input<(o1: T, o2: T) => boolean>((o1, o2) => o1 === o2);\n\tpublic readonly _formDisabled = signal(false);\n\n\t/** Label provided by the consumer. */\n\tprotected readonly selectLabel = contentChild(BrnLabelDirective, { descendants: false });\n\n\t/** Overlay pane containing the options. */\n\tprotected readonly selectContent = contentChild.required(BrnSelectContentComponent);\n\n\t/** @internal */\n\tpublic readonly options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\t/** @internal Derive the selected options to filter out the unselected options */\n\tpublic readonly selectedOptions = computed(() => this.options().filter((option) => option.selected()));\n\n\t/** Overlay pane containing the options. */\n\tprotected readonly _overlayDir = viewChild.required(CdkConnectedOverlay);\n\tpublic readonly trigger = signal<BrnSelectTriggerDirective<T> | null>(null);\n\tpublic readonly triggerWidth = signal<number>(0);\n\n\tprotected readonly _delayedExpanded = toSignal(\n\t\ttoObservable(this.open).pipe(\n\t\t\tswitchMap((expanded) => (!expanded ? of(expanded).pipe(delay(this.closeDelay())) : of(expanded))),\n\t\t\ttakeUntilDestroyed(),\n\t\t),\n\t\t{ initialValue: false },\n\t);\n\n\tpublic readonly state = computed(() => (this.open() ? 'open' : 'closed'));\n\n\tprotected readonly _positionChanges$ = new Subject<ConnectedOverlayPositionChange>();\n\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis._positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic readonly labelId = computed(() => this.selectLabel()?.id ?? `${this.id()}--label`);\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: ChangeFn<T | T[]> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\t/*\n\t * This position config ensures that the top \"start\" corner of the overlay\n\t * is aligned with with the top \"start\" of the origin by default (overlapping\n\t * the trigger completely). If the panel cannot fit below the trigger, it\n\t * will fall back to a position above the trigger.\n\t */\n\tprotected _positions: ConnectedPosition[] = [\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t];\n\n\tpublic errorStateTracker: ErrorStateTracker;\n\n\tpublic readonly errorState = computed(() => this.errorStateTracker.errorState());\n\n\tconstructor() {\n\t\tif (this.ngControl !== null) {\n\t\t\tthis.ngControl.valueAccessor = this;\n\t\t}\n\n\t\tthis.errorStateTracker = new ErrorStateTracker(\n\t\t\tthis._defaultErrorStateMatcher,\n\t\t\tthis.ngControl,\n\t\t\tthis._parentFormGroup,\n\t\t\tthis._parentForm,\n\t\t);\n\t}\n\n\tngDoCheck() {\n\t\tthis.errorStateTracker.updateErrorState();\n\t}\n\n\tpublic toggle(): void {\n\t\tif (this.open()) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\tpublic show(): void {\n\t\tif (this.open() || this.disabled() || this._formDisabled() || this.options()?.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open.set(true);\n\t\tafterNextRender(() => this.selectContent().focusList(), { injector: this._injector });\n\t}\n\n\tpublic hide(): void {\n\t\tif (!this.open()) return;\n\n\t\tthis.open.set(false);\n\t\tthis._onTouched();\n\n\t\t// restore focus to the trigger\n\t\tthis.trigger()?.focus();\n\t}\n\n\tpublic writeValue(value: T): void {\n\t\tthis.value.set(value);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T | T[]>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean) {\n\t\tthis._formDisabled.set(isDisabled);\n\t}\n\n\tselectOption(value: T): void {\n\t\t// if this is a multiple select we need to add the value to the array\n\t\tif (this.multiple()) {\n\t\t\tconst currentValue = this.value() as T[];\n\t\t\tconst newValue = currentValue ? [...currentValue, value] : [value];\n\t\t\tthis.value.set(newValue);\n\t\t} else {\n\t\t\tthis.value.set(value);\n\t\t}\n\n\t\tthis._onChange?.(this.value() as T | T[]);\n\n\t\t// if this is single select close the dropdown\n\t\tif (!this.multiple()) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\tdeselectOption(value: T): void {\n\t\tif (this.multiple()) {\n\t\t\tconst currentValue = this.value() as T[];\n\t\t\tconst newSelectedValues = currentValue.filter((val) => !this.compareWith()(val, value));\n\t\t\tconst newValue = !newSelectedValues.length ? (null as T) : newSelectedValues;\n\t\t\tthis.value.set(newValue);\n\t\t} else {\n\t\t\tthis.value.set(null as T);\n\t\t}\n\n\t\tthis._onChange?.(this.value() as T | T[]);\n\t}\n\n\ttoggleSelect(value: T): void {\n\t\tif (this.isSelected(value)) {\n\t\t\tthis.deselectOption(value);\n\t\t} else {\n\t\t\tthis.selectOption(value);\n\t\t}\n\t}\n\n\tisSelected(value: T): boolean {\n\t\tconst selection = this.value();\n\n\t\tif (Array.isArray(selection)) {\n\t\t\treturn selection.some((val) => this.compareWith()(val, value));\n\t\t} else if (value !== undefined) {\n\t\t\treturn this.compareWith()(selection as T, value);\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport {\n\tBrnSelectContentComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n} from './lib/brn-select-content.component';\nimport { BrnSelectGroupDirective } from './lib/brn-select-group.directive';\nimport { BrnSelectLabelDirective } from './lib/brn-select-label.directive';\nimport { BrnSelectOptionDirective } from './lib/brn-select-option.directive';\nimport { BrnSelectPlaceholderDirective } from './lib/brn-select-placeholder.directive';\nimport { BrnSelectTriggerDirective } from './lib/brn-select-trigger.directive';\nimport { BrnSelectValueComponent } from './lib/brn-select-value.component';\nimport { BrnSelectValueDirective } from './lib/brn-select-value.directive';\nimport { BrnSelectComponent } from './lib/brn-select.component';\nexport * from './lib/brn-select-content.component';\nexport * from './lib/brn-select-group.directive';\nexport * from './lib/brn-select-label.directive';\nexport * from './lib/brn-select-option.directive';\nexport * from './lib/brn-select-placeholder.directive';\nexport * from './lib/brn-select-trigger.directive';\nexport * from './lib/brn-select-value.component';\nexport * from './lib/brn-select-value.directive';\nexport * from './lib/brn-select.component';\n\nexport const BrnSelectImports = [\n\tBrnSelectComponent,\n\tBrnSelectContentComponent,\n\tBrnSelectTriggerDirective,\n\tBrnSelectOptionDirective,\n\tBrnSelectValueComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n\tBrnSelectGroupDirective,\n\tBrnSelectLabelDirective,\n\tBrnSelectValueDirective,\n\tBrnSelectPlaceholderDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSelectImports],\n\texports: [...BrnSelectImports],\n})\nexport class BrnSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|