@spartan-ng/brain 0.0.1-alpha.706 → 0.0.1-alpha.708

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/fesm2022/spartan-ng-brain-accordion.mjs +30 -30
  2. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  3. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +19 -19
  4. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/spartan-ng-brain-autocomplete.mjs +89 -102
  6. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  7. package/fesm2022/spartan-ng-brain-avatar.mjs +15 -15
  8. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
  9. package/fesm2022/spartan-ng-brain-button.mjs +4 -4
  10. package/fesm2022/spartan-ng-brain-button.mjs.map +1 -1
  11. package/fesm2022/spartan-ng-brain-calendar.mjs +120 -127
  12. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
  13. package/fesm2022/spartan-ng-brain-checkbox.mjs +24 -24
  14. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  15. package/fesm2022/spartan-ng-brain-collapsible.mjs +17 -17
  16. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
  17. package/fesm2022/spartan-ng-brain-combobox.mjs +151 -178
  18. package/fesm2022/spartan-ng-brain-combobox.mjs.map +1 -1
  19. package/fesm2022/spartan-ng-brain-command.mjs +43 -52
  20. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  21. package/fesm2022/spartan-ng-brain-core.mjs +5 -5
  22. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -1
  23. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -1
  24. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
  25. package/fesm2022/spartan-ng-brain-dialog.mjs +72 -86
  26. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  27. package/fesm2022/spartan-ng-brain-field.mjs +38 -43
  28. package/fesm2022/spartan-ng-brain-field.mjs.map +1 -1
  29. package/fesm2022/spartan-ng-brain-forms.mjs +20 -20
  30. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -1
  31. package/fesm2022/spartan-ng-brain-hover-card.mjs +24 -32
  32. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  33. package/fesm2022/spartan-ng-brain-input-otp.mjs +23 -25
  34. package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
  35. package/fesm2022/spartan-ng-brain-input.mjs +6 -6
  36. package/fesm2022/spartan-ng-brain-input.mjs.map +1 -1
  37. package/fesm2022/spartan-ng-brain-label.mjs +6 -6
  38. package/fesm2022/spartan-ng-brain-label.mjs.map +1 -1
  39. package/fesm2022/spartan-ng-brain-navigation-menu.mjs +49 -53
  40. package/fesm2022/spartan-ng-brain-navigation-menu.mjs.map +1 -1
  41. package/fesm2022/spartan-ng-brain-popover.mjs +13 -15
  42. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  43. package/fesm2022/spartan-ng-brain-progress.mjs +11 -13
  44. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -1
  45. package/fesm2022/spartan-ng-brain-radio-group.mjs +28 -34
  46. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  47. package/fesm2022/spartan-ng-brain-resizable.mjs +23 -23
  48. package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
  49. package/fesm2022/spartan-ng-brain-select.mjs +102 -105
  50. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  51. package/fesm2022/spartan-ng-brain-separator.mjs +7 -7
  52. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -1
  53. package/fesm2022/spartan-ng-brain-sheet.mjs +24 -24
  54. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  55. package/fesm2022/spartan-ng-brain-slider.mjs +52 -76
  56. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  57. package/fesm2022/spartan-ng-brain-sonner.mjs +108 -132
  58. package/fesm2022/spartan-ng-brain-sonner.mjs.map +1 -1
  59. package/fesm2022/spartan-ng-brain-switch.mjs +21 -23
  60. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  61. package/fesm2022/spartan-ng-brain-tabs.mjs +36 -39
  62. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  63. package/fesm2022/spartan-ng-brain-textarea.mjs +6 -6
  64. package/fesm2022/spartan-ng-brain-textarea.mjs.map +1 -1
  65. package/fesm2022/spartan-ng-brain-toggle-group.mjs +21 -27
  66. package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
  67. package/fesm2022/spartan-ng-brain-toggle.mjs +10 -12
  68. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  69. package/fesm2022/spartan-ng-brain-tooltip.mjs +27 -27
  70. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  71. package/hlm-tailwind-preset.css +6 -6
  72. package/package.json +44 -43
  73. package/{autocomplete/index.d.ts → types/spartan-ng-brain-autocomplete.d.ts} +10 -10
  74. package/{calendar/index.d.ts → types/spartan-ng-brain-calendar.d.ts} +2 -2
  75. package/{combobox/index.d.ts → types/spartan-ng-brain-combobox.d.ts} +10 -10
  76. package/{dialog/index.d.ts → types/spartan-ng-brain-dialog.d.ts} +1 -1
  77. package/{hover-card/index.d.ts → types/spartan-ng-brain-hover-card.d.ts} +1 -1
  78. package/{select/index.d.ts → types/spartan-ng-brain-select.d.ts} +11 -11
  79. /package/{accordion/index.d.ts → types/spartan-ng-brain-accordion.d.ts} +0 -0
  80. /package/{alert-dialog/index.d.ts → types/spartan-ng-brain-alert-dialog.d.ts} +0 -0
  81. /package/{avatar/index.d.ts → types/spartan-ng-brain-avatar.d.ts} +0 -0
  82. /package/{button/index.d.ts → types/spartan-ng-brain-button.d.ts} +0 -0
  83. /package/{checkbox/index.d.ts → types/spartan-ng-brain-checkbox.d.ts} +0 -0
  84. /package/{collapsible/index.d.ts → types/spartan-ng-brain-collapsible.d.ts} +0 -0
  85. /package/{command/index.d.ts → types/spartan-ng-brain-command.d.ts} +0 -0
  86. /package/{core/index.d.ts → types/spartan-ng-brain-core.d.ts} +0 -0
  87. /package/{date-time-luxon/index.d.ts → types/spartan-ng-brain-date-time-luxon.d.ts} +0 -0
  88. /package/{date-time/index.d.ts → types/spartan-ng-brain-date-time.d.ts} +0 -0
  89. /package/{field/index.d.ts → types/spartan-ng-brain-field.d.ts} +0 -0
  90. /package/{forms/index.d.ts → types/spartan-ng-brain-forms.d.ts} +0 -0
  91. /package/{input-otp/index.d.ts → types/spartan-ng-brain-input-otp.d.ts} +0 -0
  92. /package/{input/index.d.ts → types/spartan-ng-brain-input.d.ts} +0 -0
  93. /package/{label/index.d.ts → types/spartan-ng-brain-label.d.ts} +0 -0
  94. /package/{navigation-menu/index.d.ts → types/spartan-ng-brain-navigation-menu.d.ts} +0 -0
  95. /package/{popover/index.d.ts → types/spartan-ng-brain-popover.d.ts} +0 -0
  96. /package/{progress/index.d.ts → types/spartan-ng-brain-progress.d.ts} +0 -0
  97. /package/{radio-group/index.d.ts → types/spartan-ng-brain-radio-group.d.ts} +0 -0
  98. /package/{resizable/index.d.ts → types/spartan-ng-brain-resizable.d.ts} +0 -0
  99. /package/{separator/index.d.ts → types/spartan-ng-brain-separator.d.ts} +0 -0
  100. /package/{sheet/index.d.ts → types/spartan-ng-brain-sheet.d.ts} +0 -0
  101. /package/{slider/index.d.ts → types/spartan-ng-brain-slider.d.ts} +0 -0
  102. /package/{sonner/index.d.ts → types/spartan-ng-brain-sonner.d.ts} +0 -0
  103. /package/{switch/index.d.ts → types/spartan-ng-brain-switch.d.ts} +0 -0
  104. /package/{tabs/index.d.ts → types/spartan-ng-brain-tabs.d.ts} +0 -0
  105. /package/{textarea/index.d.ts → types/spartan-ng-brain-textarea.d.ts} +0 -0
  106. /package/{toggle-group/index.d.ts → types/spartan-ng-brain-toggle-group.d.ts} +0 -0
  107. /package/{toggle/index.d.ts → types/spartan-ng-brain-toggle.d.ts} +0 -0
  108. /package/{tooltip/index.d.ts → types/spartan-ng-brain-tooltip.d.ts} +0 -0
  109. /package/{index.d.ts → types/spartan-ng-brain.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** Aria label to assign to the dialog element. */\n\tariaLabel: BrnDialogOptions['ariaLabel'];\n\n\t/** Whether the dialog should be considered a modal dialog. */\n\tariaModal: BrnDialogOptions['ariaModal'];\n\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Element to which the dialog should be attached. */\n\tattachTo: BrnDialogOptions['attachTo'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** CSS class to be applied to the backdrop. */\n\tbackdropClass: BrnDialogOptions['backdropClass'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: BrnDialogOptions['closeDelay'];\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: BrnDialogOptions['closeOnBackdropClick'];\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: BrnDialogOptions['closeOnOutsidePointerEvents'];\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: BrnDialogOptions['disableClose'];\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: BrnDialogOptions['hasBackdrop'];\n\n\t/** CSS class applied to the panel. */\n\tpanelClass: BrnDialogOptions['panelClass'];\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\tariaLabel: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","// 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 { signal } from '@angular/core';\nimport { type 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\tprivate readonly _options = signal<undefined | BrnDialogOptions>(undefined);\n\tpublic readonly options = this._options.asReadonly();\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\t_options?: BrnDialogOptions,\n\t) {\n\t\tif (_options) {\n\t\t\tthis._options.set(_options);\n\t\t}\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic updateOptions(options: Partial<BrnDialogOptions>): void {\n\t\tthis._options.update((prev) => ({ ...(prev ?? {}), ...options }) as BrnDialogOptions);\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options()?.closeDelay ?? 0): void {\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): void {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.overlayRef?.updatePosition();\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { BasePortalOutlet } from '@angular/cdk/portal';\nimport {\n\tChangeDetectorRef,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tElementRef,\n\tinject,\n\tInjectable,\n\ttype InjectOptions,\n\tInjector,\n\tRendererFactory2,\n\trunInInjectionContext,\n\tsignal,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n} from '@angular/core';\nimport { merge, 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 { injectBrnDialogDefaultOptions } from './brn-dialog-token';\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 _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\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\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\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 attachTo = options?.attachTo ?? this._defaultOptions.attachTo;\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\tthis._defaultOptions.positionStrategy ??\n\t\t\t(attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tconst effectRefs: 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 optionsChanged$ = 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 ?? this._defaultOptions.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 ?? this._defaultOptions.hasBackdrop,\n\t\t\tpanelClass: options?.panelClass,\n\t\t\tbackdropClass: options?.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._defaultOptions.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus ?? this._defaultOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? this._defaultOptions.autoFocus,\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 ?? this._defaultOptions.ariaLabel,\n\t\t\tariaModal: options?.ariaModal ?? this._defaultOptions.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\tconst ref = 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\teffectRefs.push(ref);\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\trunInInjectionContext(this._injector, () => {\n\t\t\tconst optionChangeEffect = effect(() => {\n\t\t\t\tconst options = brnDialogRef.options();\n\t\t\t\toptionsChanged$.next();\n\t\t\t\tconst closeOnOutsidePointerEvents =\n\t\t\t\t\toptions?.closeOnOutsidePointerEvents ?? this._defaultOptions.closeOnOutsidePointerEvents;\n\t\t\t\tif (closeOnOutsidePointerEvents) {\n\t\t\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\t\t\t\t\tconst index = overlays.indexOf(cdkDialogRef.overlayRef);\n\t\t\t\t\t\t// close if this is the topmost overlay\n\t\t\t\t\t\t// but prevent closing if this overlay contains the top overlay (which will be closed)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tindex === overlays.length - 1 ||\n\t\t\t\t\t\t\t(overlays.length > 1 && !this.isNested(cdkDialogRef.overlayRef, overlays.at(-1)!))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst closeOnBackdropClick = options?.closeOnBackdropClick ?? this._defaultOptions.closeOnBackdropClick;\n\t\t\t\tif (closeOnBackdropClick) {\n\t\t\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst disableClose = options?.disableClose ?? this._defaultOptions.disableClose;\n\t\t\t\tif (!disableClose) {\n\t\t\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\t\t\ttakeUntil(merge(destroyed$, optionsChanged$)),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teffectRefs.push(optionChangeEffect);\n\t\t});\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRefs.forEach((a) => a.destroy());\n\t\t\tdestroyed$.next();\n\t\t\toptionsChanged$.next();\n\t\t});\n\n\t\t// this is not ideal, but we need to force change detection to run in the dialog,\n\t\t// otherwise in some conditions (like menu launching a dialog) the dialog content\n\t\t// does not render.\n\t\tif ('_changeDetectorRef' in cdkDialogRef.containerInstance) {\n\t\t\tconst containerInstance = cdkDialogRef.containerInstance as BasePortalOutlet & {\n\t\t\t\t_changeDetectorRef: ChangeDetectorRef;\n\t\t\t};\n\t\t\tcontainerInstance._changeDetectorRef.detectChanges();\n\t\t}\n\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) {\n\t\t\treturn false;\n\t\t} else if ('width' in childOrigin && 'height' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t} else {\n\t\t\tconst element: Element = (childOrigin as ElementRef).nativeElement || childOrigin;\n\t\t\treturn parent.hostElement.contains(element);\n\t\t}\n\t}\n}\n","import { type BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\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: TContext = {} as TContext;\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 readonly _dialogStateEffectRefs: EffectRef[] = [];\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\tpublic readonly closed = output<TResult>();\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<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = linkedSignal(() => this.positionStrategy());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected readonly _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.mutablePositionStrategy(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this.mutableCloseOnOutsidePointerEvents(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this.mutableAttachTo(),\n\t\t\tattachPositions: this.mutableAttachPositions(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: cssClassesToArray(this._backdropClass() ?? this._defaultOptions.backdropClass),\n\t\t\tpanelClass: cssClassesToArray(this._panelClass() ?? this._defaultOptions.panelClass),\n\t\t\tariaDescribedBy: this._mutableAriaDescribedBy(),\n\t\t\tariaLabelledBy: this._mutableAriaLabelledBy(),\n\t\t\tariaLabel: this._mutableAriaLabel(),\n\t\t\tariaModal: this._mutableAriaModal(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') {\n\t\t\t\t\t\tuntracked(() => this.open());\n\t\t\t\t\t}\n\t\t\t\t\tif (state === 'closed') {\n\t\t\t\t\t\tuntracked(() => this.close());\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tinjector: this._injector,\n\t\t\t\t},\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<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{\n\t\t\ttransform: booleanAttribute,\n\t\t},\n\t);\n\tpublic readonly mutableCloseOnOutsidePointerEvents = linkedSignal(() => this.closeOnOutsidePointerEvents());\n\n\tpublic readonly closeOnBackdropClick = input<boolean, BooleanInput>(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = linkedSignal(() => this.attachTo());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = linkedSignal(() => this.attachPositions());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input<number, NumberInput>(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = linkedSignal(() => this.ariaDescribedBy());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = linkedSignal(() => this.ariaLabelledBy());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = linkedSignal(() => this.ariaLabel());\n\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = linkedSignal(() => this.ariaModal());\n\n\tpublic open(): void {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRefs.forEach((ref) => ref.destroy());\n\n\t\tconst dialogRef = this._dialogService.open<TContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context,\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._dialogStateEffectRefs.push(\n\t\t\t\teffect(() => {\n\t\t\t\t\tconst state = dialogRef.state();\n\t\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t\t}),\n\t\t\t\teffect(() => dialogRef.updateOptions(this._options())),\n\t\t\t);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1), takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult, delay?: number): void {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>): void {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined): void {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: TContext): void {\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._mutableAriaDescribedBy.set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._mutableAriaLabelledBy.set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._mutableAriaLabel.set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean): void {\n\t\tthis._mutableAriaModal.set(ariaModal);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\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\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\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 { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T> {\n\tprivate readonly _brnDialog = inject(BrnDialog, { 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\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _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 { Directive, effect, inject, input, untracked } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\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\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\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\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _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, signal } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprotected _brnDialog = inject(BrnDialog, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++idSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tpublic readonly state = computed<BrnDialogState>(() => {\n\t\t// If we have a dialog component from the input, use its state (the highest priority)\n\t\tconst dialogFromInput = this.brnDialogTriggerForState();\n\t\tif (dialogFromInput) {\n\t\t\treturn dialogFromInput.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog component, use its state\n\t\tif (this._brnDialog) {\n\t\t\treturn this._brnDialog.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog ref, use its state\n\t\tif (this._brnDialogRef) {\n\t\t\treturn this._brnDialogRef.state();\n\t\t}\n\n\t\treturn 'closed';\n\t});\n\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? ++idSequence}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | 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 { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-dialog.mjs","sources":["../../../../libs/brain/dialog/src/lib/brn-dialog-token.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-utils.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-ref.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.service.ts","../../../../libs/brain/dialog/src/lib/brn-dialog.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-close.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-content.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-description.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-overlay.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-title.ts","../../../../libs/brain/dialog/src/lib/brn-dialog-trigger.ts","../../../../libs/brain/dialog/src/index.ts","../../../../libs/brain/dialog/src/spartan-ng-brain-dialog.ts"],"sourcesContent":["import { inject, InjectionToken, type ValueProvider } from '@angular/core';\nimport type { BrnDialogOptions } from './brn-dialog-options';\n\nexport interface BrnDialogDefaultOptions {\n\t/** Aria label to assign to the dialog element. */\n\tariaLabel: BrnDialogOptions['ariaLabel'];\n\n\t/** Whether the dialog should be considered a modal dialog. */\n\tariaModal: BrnDialogOptions['ariaModal'];\n\n\t/** A connected position as specified by the user. */\n\tattachPositions: BrnDialogOptions['attachPositions'];\n\n\t/** Element to which the dialog should be attached. */\n\tattachTo: BrnDialogOptions['attachTo'];\n\n\t/** Options for where to set focus to automatically on dialog open */\n\tautoFocus: BrnDialogOptions['autoFocus'];\n\n\t/** CSS class to be applied to the backdrop. */\n\tbackdropClass: BrnDialogOptions['backdropClass'];\n\n\t/** The delay in milliseconds before the dialog closes. */\n\tcloseDelay: BrnDialogOptions['closeDelay'];\n\n\t/** Close dialog on backdrop click */\n\tcloseOnBackdropClick: BrnDialogOptions['closeOnBackdropClick'];\n\n\t/** Close dialog on outside pointer event */\n\tcloseOnOutsidePointerEvents: BrnDialogOptions['closeOnOutsidePointerEvents'];\n\n\t/** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n\tdisableClose: BrnDialogOptions['disableClose'];\n\n\t/** Whether the dialog has a backdrop. */\n\thasBackdrop: BrnDialogOptions['hasBackdrop'];\n\n\t/** CSS class applied to the panel. */\n\tpanelClass: BrnDialogOptions['panelClass'];\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\tariaLabel: undefined,\n\tariaModal: true,\n\tattachPositions: [],\n\tattachTo: null,\n\tautoFocus: 'first-tabbable',\n\tbackdropClass: '',\n\tcloseDelay: 100,\n\tcloseOnBackdropClick: true,\n\tcloseOnOutsidePointerEvents: false,\n\tdisableClose: false,\n\thasBackdrop: true,\n\tpanelClass: '',\n\tpositionStrategy: null,\n\trestoreFocus: true,\n\trole: 'dialog',\n\tscrollStrategy: null,\n};\n\nconst BRN_DIALOG_DEFAULT_OPTIONS = new InjectionToken<BrnDialogDefaultOptions>('brn-dialog-default-options', {\n\tprovidedIn: 'root',\n\tfactory: () => defaultOptions,\n});\n\nexport function provideBrnDialogDefaultOptions(options: Partial<BrnDialogDefaultOptions>): ValueProvider {\n\treturn { provide: BRN_DIALOG_DEFAULT_OPTIONS, useValue: { ...defaultOptions, ...options } };\n}\n\nexport function injectBrnDialogDefaultOptions(): BrnDialogDefaultOptions {\n\treturn inject(BRN_DIALOG_DEFAULT_OPTIONS, { optional: true }) ?? defaultOptions;\n}\n","// 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 { signal } from '@angular/core';\nimport { type 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\tprivate readonly _options = signal<undefined | BrnDialogOptions>(undefined);\n\tpublic readonly options = this._options.asReadonly();\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\t_options?: BrnDialogOptions,\n\t) {\n\t\tif (_options) {\n\t\t\tthis._options.set(_options);\n\t\t}\n\t\tthis.closed$ = this._cdkDialogRef.closed.pipe(take(1));\n\t}\n\n\tpublic updateOptions(options: Partial<BrnDialogOptions>): void {\n\t\tthis._options.update((prev) => ({ ...(prev ?? {}), ...options }) as BrnDialogOptions);\n\t}\n\n\tpublic close(result?: DialogResult, delay: number = this._options()?.closeDelay ?? 0): void {\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): void {\n\t\tthis._cdkDialogRef.config.panelClass = cssClassesToArray(paneClass);\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.backdropClass = cssClassesToArray(overlayClass);\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaDescribedBy = ariaDescribedBy;\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabelledBy = ariaLabelledBy;\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._cdkDialogRef.config.ariaLabel = ariaLabel;\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._cdkDialogRef.overlayRef?.updatePosition();\n\t}\n}\n","import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';\nimport {\n\ttype ComponentType,\n\tFlexibleConnectedPositionStrategy,\n\tOverlayOutsideClickDispatcher,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n\tScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { BasePortalOutlet } from '@angular/cdk/portal';\nimport {\n\tChangeDetectorRef,\n\tcomputed,\n\teffect,\n\ttype EffectRef,\n\tElementRef,\n\tinject,\n\tInjectable,\n\ttype InjectOptions,\n\tInjector,\n\tRendererFactory2,\n\trunInInjectionContext,\n\tsignal,\n\ttype StaticProvider,\n\ttype TemplateRef,\n\ttype ViewContainerRef,\n} from '@angular/core';\nimport { merge, 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 { injectBrnDialogDefaultOptions } from './brn-dialog-token';\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 _overlayCloseDispatcher = inject(OverlayOutsideClickDispatcher);\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\tprivate readonly _defaultOptions = injectBrnDialogDefaultOptions();\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 attachTo = options?.attachTo ?? this._defaultOptions.attachTo;\n\n\t\tconst positionStrategy =\n\t\t\toptions?.positionStrategy ??\n\t\t\tthis._defaultOptions.positionStrategy ??\n\t\t\t(attachTo && options?.attachPositions && options?.attachPositions?.length > 0\n\t\t\t\t? this._positionBuilder?.flexibleConnectedTo(attachTo).withPositions(options.attachPositions ?? [])\n\t\t\t\t: this._positionBuilder.global().centerHorizontally().centerVertically());\n\n\t\tlet brnDialogRef!: BrnDialogRef;\n\t\tconst effectRefs: 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 optionsChanged$ = 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 ?? this._defaultOptions.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 ?? this._defaultOptions.hasBackdrop,\n\t\t\tpanelClass: options?.panelClass,\n\t\t\tbackdropClass: options?.backdropClass,\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: options?.scrollStrategy ?? this._defaultOptions.scrollStrategy ?? this._sso?.block(),\n\t\t\trestoreFocus: options?.restoreFocus ?? this._defaultOptions.restoreFocus,\n\t\t\tdisableClose: true,\n\t\t\tautoFocus: options?.autoFocus ?? this._defaultOptions.autoFocus,\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 ?? this._defaultOptions.ariaLabel,\n\t\t\tariaModal: options?.ariaModal ?? this._defaultOptions.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\tconst ref = 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\teffectRefs.push(ref);\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\trunInInjectionContext(this._injector, () => {\n\t\t\tconst optionChangeEffect = effect(() => {\n\t\t\t\tconst options = brnDialogRef.options();\n\t\t\t\toptionsChanged$.next();\n\t\t\t\tconst closeOnOutsidePointerEvents =\n\t\t\t\t\toptions?.closeOnOutsidePointerEvents ?? this._defaultOptions.closeOnOutsidePointerEvents;\n\t\t\t\tif (closeOnOutsidePointerEvents) {\n\t\t\t\t\tcdkDialogRef.outsidePointerEvents.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tconst overlays = this._overlayCloseDispatcher._attachedOverlays;\n\t\t\t\t\t\tconst index = overlays.indexOf(cdkDialogRef.overlayRef);\n\t\t\t\t\t\t// close if this is the topmost overlay\n\t\t\t\t\t\t// but prevent closing if this overlay contains the top overlay (which will be closed)\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tindex === overlays.length - 1 ||\n\t\t\t\t\t\t\t(overlays.length > 1 && !this.isNested(cdkDialogRef.overlayRef, overlays.at(-1)!))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst closeOnBackdropClick = options?.closeOnBackdropClick ?? this._defaultOptions.closeOnBackdropClick;\n\t\t\t\tif (closeOnBackdropClick) {\n\t\t\t\t\tcdkDialogRef.backdropClick.pipe(takeUntil(merge(destroyed$, optionsChanged$))).subscribe(() => {\n\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst disableClose = options?.disableClose ?? this._defaultOptions.disableClose;\n\t\t\t\tif (!disableClose) {\n\t\t\t\t\tcdkDialogRef.keydownEvents\n\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\tfilter((e) => e.key === 'Escape'),\n\t\t\t\t\t\t\ttakeUntil(merge(destroyed$, optionsChanged$)),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe(() => {\n\t\t\t\t\t\t\tbrnDialogRef.close(undefined, options?.closeDelay);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\teffectRefs.push(optionChangeEffect);\n\t\t});\n\t\tcdkDialogRef.closed.pipe(takeUntil(destroyed$)).subscribe(() => {\n\t\t\teffectRefs.forEach((a) => a.destroy());\n\t\t\tdestroyed$.next();\n\t\t\toptionsChanged$.next();\n\t\t});\n\n\t\t// this is not ideal, but we need to force change detection to run in the dialog,\n\t\t// otherwise in some conditions (like menu launching a dialog) the dialog content\n\t\t// does not render.\n\t\tif ('_changeDetectorRef' in cdkDialogRef.containerInstance) {\n\t\t\tconst containerInstance = cdkDialogRef.containerInstance as BasePortalOutlet & {\n\t\t\t\t_changeDetectorRef: ChangeDetectorRef;\n\t\t\t};\n\t\t\tcontainerInstance._changeDetectorRef.detectChanges();\n\t\t}\n\n\t\treturn brnDialogRef;\n\t}\n\n\tprivate isNested(parent: OverlayRef, child: OverlayRef): boolean {\n\t\tconst childOrigin = (child.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)._origin;\n\t\tif (!childOrigin) {\n\t\t\treturn false;\n\t\t} else if ('width' in childOrigin && 'height' in childOrigin) {\n\t\t\tconst rect = parent.hostElement.getBoundingClientRect();\n\t\t\treturn (\n\t\t\t\tchildOrigin.x >= rect.left &&\n\t\t\t\tchildOrigin.x <= rect.right &&\n\t\t\t\tchildOrigin.y >= rect.top &&\n\t\t\t\tchildOrigin.y <= rect.bottom\n\t\t\t);\n\t\t} else {\n\t\t\tconst element: Element = (childOrigin as ElementRef).nativeElement || childOrigin;\n\t\t\treturn parent.hostElement.contains(element);\n\t\t}\n\t}\n}\n","import { type BooleanInput, type NumberInput } from '@angular/cdk/coercion';\nimport { OverlayPositionBuilder, type ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\ttype EffectRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\toutput,\n\trunInInjectionContext,\n\tsignal,\n\ttype TemplateRef,\n\tuntracked,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { cssClassesToArray } from './brn-dialog-utils';\nimport { BrnDialogService } from './brn-dialog.service';\n\n@Directive({\n\tselector: '[brnDialog],brn-dialog',\n\texportAs: 'brnDialog',\n})\nexport class BrnDialog<TResult = unknown, TContext extends Record<string, unknown> = Record<string, unknown>> {\n\tprivate readonly _dialogService = inject(BrnDialogService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\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: TContext = {} as TContext;\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 readonly _dialogStateEffectRefs: EffectRef[] = [];\n\tprivate readonly _backdropClass = signal<string | null | undefined>(null);\n\tprivate readonly _panelClass = signal<string | null | undefined>(null);\n\n\tpublic readonly closed = output<TResult>();\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<boolean, BooleanInput>(this._defaultOptions.hasBackdrop, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly positionStrategy = input<BrnDialogOptions['positionStrategy']>(this._defaultOptions.positionStrategy);\n\tpublic readonly mutablePositionStrategy = linkedSignal(() => this.positionStrategy());\n\n\tpublic readonly scrollStrategy = input<BrnDialogOptions['scrollStrategy'] | 'close' | 'reposition' | null>(\n\t\tthis._defaultOptions.scrollStrategy,\n\t);\n\n\tprotected readonly _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.mutablePositionStrategy(),\n\t\t\tscrollStrategy,\n\t\t\trestoreFocus: this.restoreFocus(),\n\t\t\tcloseOnOutsidePointerEvents: this.mutableCloseOnOutsidePointerEvents(),\n\t\t\tcloseOnBackdropClick: this.closeOnBackdropClick(),\n\t\t\tattachTo: this.mutableAttachTo(),\n\t\t\tattachPositions: this.mutableAttachPositions(),\n\t\t\tautoFocus: this.autoFocus(),\n\t\t\tcloseDelay: this.closeDelay(),\n\t\t\tdisableClose: this.disableClose(),\n\t\t\tbackdropClass: cssClassesToArray(this._backdropClass() ?? this._defaultOptions.backdropClass),\n\t\t\tpanelClass: cssClassesToArray(this._panelClass() ?? this._defaultOptions.panelClass),\n\t\t\tariaDescribedBy: this._mutableAriaDescribedBy(),\n\t\t\tariaLabelledBy: this._mutableAriaLabelledBy(),\n\t\t\tariaLabel: this._mutableAriaLabel(),\n\t\t\tariaModal: this._mutableAriaModal(),\n\t\t};\n\t});\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\teffect(\n\t\t\t\t() => {\n\t\t\t\t\tconst state = this.state();\n\t\t\t\t\tif (state === 'open') {\n\t\t\t\t\t\tuntracked(() => this.open());\n\t\t\t\t\t}\n\t\t\t\t\tif (state === 'closed') {\n\t\t\t\t\t\tuntracked(() => this.close());\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tinjector: this._injector,\n\t\t\t\t},\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<boolean, BooleanInput>(\n\t\tthis._defaultOptions.closeOnOutsidePointerEvents,\n\t\t{\n\t\t\ttransform: booleanAttribute,\n\t\t},\n\t);\n\tpublic readonly mutableCloseOnOutsidePointerEvents = linkedSignal(() => this.closeOnOutsidePointerEvents());\n\n\tpublic readonly closeOnBackdropClick = input<boolean, BooleanInput>(this._defaultOptions.closeOnBackdropClick, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly attachTo = input<BrnDialogOptions['attachTo']>(null);\n\tpublic readonly mutableAttachTo = linkedSignal(() => this.attachTo());\n\n\tpublic readonly attachPositions = input<BrnDialogOptions['attachPositions']>(this._defaultOptions.attachPositions);\n\tpublic readonly mutableAttachPositions = linkedSignal(() => this.attachPositions());\n\n\tpublic readonly autoFocus = input<BrnDialogOptions['autoFocus']>(this._defaultOptions.autoFocus);\n\n\tpublic readonly closeDelay = input<number, NumberInput>(this._defaultOptions.closeDelay, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tpublic readonly disableClose = input<boolean, BooleanInput>(this._defaultOptions.disableClose, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tpublic readonly ariaDescribedBy = input<BrnDialogOptions['ariaDescribedBy']>(null, {\n\t\talias: 'aria-describedby',\n\t});\n\tprivate readonly _mutableAriaDescribedBy = linkedSignal(() => this.ariaDescribedBy());\n\n\tpublic readonly ariaLabelledBy = input<BrnDialogOptions['ariaLabelledBy']>(null, { alias: 'aria-labelledby' });\n\tprivate readonly _mutableAriaLabelledBy = linkedSignal(() => this.ariaLabelledBy());\n\n\tpublic readonly ariaLabel = input<BrnDialogOptions['ariaLabel']>(null, { alias: 'aria-label' });\n\tprivate readonly _mutableAriaLabel = linkedSignal(() => this.ariaLabel());\n\n\tpublic readonly ariaModal = input<boolean, BooleanInput>(true, { alias: 'aria-modal', transform: booleanAttribute });\n\tprivate readonly _mutableAriaModal = linkedSignal(() => this.ariaModal());\n\n\tpublic open(): void {\n\t\tif (!this._contentTemplate || this._dialogRef()) return;\n\n\t\tthis._dialogStateEffectRefs.forEach((ref) => ref.destroy());\n\n\t\tconst dialogRef = this._dialogService.open<TContext>(\n\t\t\tthis._contentTemplate,\n\t\t\tthis._vcr,\n\t\t\tthis._context,\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._dialogStateEffectRefs.push(\n\t\t\t\teffect(() => {\n\t\t\t\t\tconst state = dialogRef.state();\n\t\t\t\t\tuntracked(() => this.stateChanged.emit(state));\n\t\t\t\t}),\n\t\t\t\teffect(() => dialogRef.updateOptions(this._options())),\n\t\t\t);\n\t\t});\n\n\t\tdialogRef.closed$.pipe(take(1), takeUntilDestroyed(this._destroyRef)).subscribe((result) => {\n\t\t\tthis._dialogRef.set(undefined);\n\t\t\tthis.closed.emit(result);\n\t\t});\n\t}\n\n\tpublic close(result?: TResult, delay?: number): void {\n\t\tthis._dialogRef()?.close(result, delay ?? this._options().closeDelay);\n\t}\n\n\tpublic registerTemplate(template: TemplateRef<unknown>): void {\n\t\tthis._contentTemplate = template;\n\t}\n\n\tpublic setOverlayClass(overlayClass: string | null | undefined): void {\n\t\tthis._backdropClass.set(overlayClass);\n\t\tthis._dialogRef()?.setOverlayClass(overlayClass);\n\t}\n\n\tpublic setPanelClass(panelClass: string | null | undefined): void {\n\t\tthis._panelClass.set(panelClass ?? '');\n\t\tthis._dialogRef()?.setPanelClass(panelClass);\n\t}\n\n\tpublic setContext(context: TContext): void {\n\t\tthis._context = { ...this._context, ...context };\n\t}\n\n\tpublic setAriaDescribedBy(ariaDescribedBy: string | null | undefined): void {\n\t\tthis._mutableAriaDescribedBy.set(ariaDescribedBy);\n\t\tthis._dialogRef()?.setAriaDescribedBy(ariaDescribedBy);\n\t}\n\n\tpublic setAriaLabelledBy(ariaLabelledBy: string | null | undefined): void {\n\t\tthis._mutableAriaLabelledBy.set(ariaLabelledBy);\n\t\tthis._dialogRef()?.setAriaLabelledBy(ariaLabelledBy);\n\t}\n\n\tpublic setAriaLabel(ariaLabel: string | null | undefined): void {\n\t\tthis._mutableAriaLabel.set(ariaLabel);\n\t\tthis._dialogRef()?.setAriaLabel(ariaLabel);\n\t}\n\n\tpublic setAriaModal(ariaModal: boolean): void {\n\t\tthis._mutableAriaModal.set(ariaModal);\n\t}\n\n\tpublic updatePosition(): void {\n\t\tthis._dialogRef()?.updatePosition();\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\thost: {\n\t\t'(click)': 'close()',\n\t},\n})\nexport class BrnDialogClose {\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 { computed, Directive, effect, inject, input, TemplateRef, untracked } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\n\n@Directive({\n\tselector: '[brnDialogContent]',\n\tproviders: [provideExposesStateProviderExisting(() => BrnDialogContent)],\n})\nexport class BrnDialogContent<T> {\n\tprivate readonly _brnDialog = inject(BrnDialog, { 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\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogDescription {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _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 { Directive, effect, inject, input, untracked } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialog } from './brn-dialog';\n\n@Directive({\n\tselector: '[brnDialogOverlay],brn-dialog-overlay',\n\tproviders: [provideCustomClassSettableExisting(() => BrnDialogOverlay)],\n})\nexport class BrnDialogOverlay {\n\tprivate readonly _brnDialog = inject(BrnDialog);\n\n\tpublic readonly className = input<string | null | undefined>(undefined, { alias: 'class' });\n\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\tsetClassToCustomElement(newClass: string) {\n\t\tthis._brnDialog.setOverlayClass(newClass);\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\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnDialogTitle {\n\tprivate readonly _brnDialogRef = inject(BrnDialogRef);\n\n\tprotected readonly _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, signal } from '@angular/core';\nimport { BrnDialog } from './brn-dialog';\nimport { BrnDialogRef } from './brn-dialog-ref';\nimport type { BrnDialogState } from './brn-dialog-state';\n\nlet idSequence = 0;\n\n@Directive({\n\tselector: 'button[brnDialogTrigger],button[brnDialogTriggerFor]',\n\texportAs: 'brnDialogTrigger',\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(click)': 'open()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t\t'[type]': 'type()',\n\t},\n})\nexport class BrnDialogTrigger {\n\tprotected _brnDialog = inject(BrnDialog, { optional: true });\n\tprotected readonly _brnDialogRef = inject(BrnDialogRef, { optional: true });\n\n\tpublic readonly id = input<string>(`brn-dialog-trigger-${++idSequence}`);\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tpublic readonly state = computed<BrnDialogState>(() => {\n\t\t// If we have a dialog component from the input, use its state (the highest priority)\n\t\tconst dialogFromInput = this.brnDialogTriggerForState();\n\t\tif (dialogFromInput) {\n\t\t\treturn dialogFromInput.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog component, use its state\n\t\tif (this._brnDialog) {\n\t\t\treturn this._brnDialog.stateComputed();\n\t\t}\n\n\t\t// If we have a dialog ref, use its state\n\t\tif (this._brnDialogRef) {\n\t\t\treturn this._brnDialogRef.state();\n\t\t}\n\n\t\treturn 'closed';\n\t});\n\n\tpublic readonly dialogId = `brn-dialog-${this._brnDialogRef?.dialogId ?? ++idSequence}`;\n\n\tpublic readonly brnDialogTriggerFor = input<BrnDialog | 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 { BrnDialog } from './lib/brn-dialog';\nimport { BrnDialogClose } from './lib/brn-dialog-close';\nimport { BrnDialogContent } from './lib/brn-dialog-content';\nimport { BrnDialogDescription } from './lib/brn-dialog-description';\nimport { BrnDialogOverlay } from './lib/brn-dialog-overlay';\nimport { BrnDialogTitle } from './lib/brn-dialog-title';\nimport { BrnDialogTrigger } from './lib/brn-dialog-trigger';\n\nexport * from './lib/brn-dialog';\nexport * from './lib/brn-dialog-close';\nexport * from './lib/brn-dialog-content';\nexport * from './lib/brn-dialog-description';\nexport * from './lib/brn-dialog-options';\nexport * from './lib/brn-dialog-overlay';\nexport * from './lib/brn-dialog-ref';\nexport * from './lib/brn-dialog-state';\nexport * from './lib/brn-dialog-title';\nexport * from './lib/brn-dialog-token';\nexport * from './lib/brn-dialog-trigger';\nexport * from './lib/brn-dialog-utils';\nexport * from './lib/brn-dialog.service';\n\nexport const BrnDialogImports = [\n\tBrnDialog,\n\tBrnDialogOverlay,\n\tBrnDialogTrigger,\n\tBrnDialogClose,\n\tBrnDialogContent,\n\tBrnDialogTitle,\n\tBrnDialogDescription,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@ import { NgForm, FormGroupDirective, NgControl } from '@angular/forms';
4
4
  import { ErrorStateMatcher, createStateTracker } from '@spartan-ng/brain/forms';
5
5
 
6
6
  class BrnFieldA11yService {
7
- _descriptions = signal([], ...(ngDevMode ? [{ debugName: "_descriptions" }] : []));
8
- _errors = signal([], ...(ngDevMode ? [{ debugName: "_errors" }] : []));
7
+ _descriptions = signal([], ...(ngDevMode ? [{ debugName: "_descriptions" }] : /* istanbul ignore next */ []));
8
+ _errors = signal([], ...(ngDevMode ? [{ debugName: "_errors" }] : /* istanbul ignore next */ []));
9
9
  describedBy = computed(() => {
10
10
  const ids = [...this._descriptions(), ...this._errors()].filter(Boolean);
11
11
  const uniqueIds = [...new Set(ids)];
12
12
  return uniqueIds.length ? uniqueIds.join(' ') : null;
13
- }, ...(ngDevMode ? [{ debugName: "describedBy" }] : []));
13
+ }, ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
14
14
  registerDescription(id) {
15
15
  this._descriptions.update((ids) => (ids.includes(id) ? ids : [...ids, id]));
16
16
  }
@@ -23,29 +23,24 @@ class BrnFieldA11yService {
23
23
  unregisterError(id) {
24
24
  this._errors.update((ids) => ids.filter((value) => value !== id));
25
25
  }
26
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldA11yService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldA11yService });
26
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldA11yService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldA11yService });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldA11yService, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldA11yService, decorators: [{
30
30
  type: Injectable
31
31
  }] });
32
32
 
33
33
  class BrnField {
34
- _brnFieldControl = signal(null, ...(ngDevMode ? [{ debugName: "_brnFieldControl" }] : []));
35
- _labelable = signal(null, ...(ngDevMode ? [{ debugName: "_labelable" }] : []));
34
+ _brnFieldControl = signal(null, ...(ngDevMode ? [{ debugName: "_brnFieldControl" }] : /* istanbul ignore next */ []));
35
+ _labelable = signal(null, ...(ngDevMode ? [{ debugName: "_labelable" }] : /* istanbul ignore next */ []));
36
36
  /** Whether the field is invalid. Overrides the `data-invalid` attribute. */
37
- dataInvalid = input(false, ...(ngDevMode ? [{ debugName: "dataInvalid", transform: booleanAttribute,
38
- alias: 'data-invalid' }] : [{
39
- transform: booleanAttribute,
40
- alias: 'data-invalid',
41
- }]));
37
+ dataInvalid = input(false, { ...(ngDevMode ? { debugName: "dataInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute,
38
+ alias: 'data-invalid' });
42
39
  /**
43
40
  * Whether to force the field into an invalid state, regardless of the form control's state.
44
41
  * Overrides both the `data-invalid` and `data-matches-spartan-invalid` attributes.
45
42
  */
46
- forceInvalid = input(false, ...(ngDevMode ? [{ debugName: "forceInvalid", transform: booleanAttribute }] : [{
47
- transform: booleanAttribute,
48
- }]));
43
+ forceInvalid = input(false, { ...(ngDevMode ? { debugName: "forceInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
49
44
  _invalid = computed(() => {
50
45
  if (this.forceInvalid() || this.dataInvalid())
51
46
  return true;
@@ -53,29 +48,29 @@ class BrnField {
53
48
  if (!control || !control.ngControl)
54
49
  return false;
55
50
  return control.controlState()?.invalid;
56
- }, ...(ngDevMode ? [{ debugName: "_invalid" }] : []));
51
+ }, ...(ngDevMode ? [{ debugName: "_invalid" }] : /* istanbul ignore next */ []));
57
52
  _spartanInvalid = computed(() => {
58
53
  return this.forceInvalid() || (this._brnFieldControl()?.controlState()?.spartanInvalid ?? null);
59
- }, ...(ngDevMode ? [{ debugName: "_spartanInvalid" }] : []));
54
+ }, ...(ngDevMode ? [{ debugName: "_spartanInvalid" }] : /* istanbul ignore next */ []));
60
55
  _dirty = computed(() => {
61
56
  return this._brnFieldControl()?.controlState()?.dirty ?? null;
62
- }, ...(ngDevMode ? [{ debugName: "_dirty" }] : []));
57
+ }, ...(ngDevMode ? [{ debugName: "_dirty" }] : /* istanbul ignore next */ []));
63
58
  _touched = computed(() => {
64
59
  return this._brnFieldControl()?.controlState()?.touched ?? null;
65
- }, ...(ngDevMode ? [{ debugName: "_touched" }] : []));
66
- labelableId = computed(() => this._brnFieldControl()?.id?.() ?? this._labelable()?.labelableId(), ...(ngDevMode ? [{ debugName: "labelableId" }] : []));
67
- errors = computed(() => this._brnFieldControl()?.errors() ?? null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
68
- controlState = computed(() => this._brnFieldControl()?.controlState() ?? null, ...(ngDevMode ? [{ debugName: "controlState" }] : []));
60
+ }, ...(ngDevMode ? [{ debugName: "_touched" }] : /* istanbul ignore next */ []));
61
+ labelableId = computed(() => this._brnFieldControl()?.id?.() ?? this._labelable()?.labelableId(), ...(ngDevMode ? [{ debugName: "labelableId" }] : /* istanbul ignore next */ []));
62
+ errors = computed(() => this._brnFieldControl()?.errors() ?? null, ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
63
+ controlState = computed(() => this._brnFieldControl()?.controlState() ?? null, ...(ngDevMode ? [{ debugName: "controlState" }] : /* istanbul ignore next */ []));
69
64
  registerFieldControl(fieldControl) {
70
65
  this._brnFieldControl.set(fieldControl);
71
66
  }
72
67
  registerLabelable(labelable) {
73
68
  this._labelable.set(labelable);
74
69
  }
75
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnField, deps: [], target: i0.ɵɵFactoryTarget.Directive });
76
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.17", type: BrnField, isStandalone: true, selector: "[brnField],brn-field", inputs: { dataInvalid: { classPropertyName: "dataInvalid", publicName: "data-invalid", isSignal: true, isRequired: false, transformFunction: null }, forceInvalid: { classPropertyName: "forceInvalid", publicName: "forceInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-invalid": "_invalid() ? \"true\" : null", "attr.data-matches-spartan-invalid": "_spartanInvalid() ? \"true\" : null", "attr.data-touched": "_touched() ? \"true\" : null", "attr.data-dirty": "_dirty() ? \"true\" : null" } }, providers: [BrnFieldA11yService], ngImport: i0 });
70
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnField, deps: [], target: i0.ɵɵFactoryTarget.Directive });
71
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: BrnField, isStandalone: true, selector: "[brnField],brn-field", inputs: { dataInvalid: { classPropertyName: "dataInvalid", publicName: "data-invalid", isSignal: true, isRequired: false, transformFunction: null }, forceInvalid: { classPropertyName: "forceInvalid", publicName: "forceInvalid", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-invalid": "_invalid() ? \"true\" : null", "attr.data-matches-spartan-invalid": "_spartanInvalid() ? \"true\" : null", "attr.data-touched": "_touched() ? \"true\" : null", "attr.data-dirty": "_dirty() ? \"true\" : null" } }, providers: [BrnFieldA11yService], ngImport: i0 });
77
72
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnField, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnField, decorators: [{
79
74
  type: Directive,
80
75
  args: [{
81
76
  selector: '[brnField],brn-field',
@@ -105,18 +100,18 @@ class BrnFieldControl {
105
100
  _field = inject(BrnField, { optional: true });
106
101
  _destroyRef = inject(DestroyRef);
107
102
  _idEffectRef;
108
- _stateTracker = signal(null, ...(ngDevMode ? [{ debugName: "_stateTracker" }] : []));
103
+ _stateTracker = signal(null, ...(ngDevMode ? [{ debugName: "_stateTracker" }] : /* istanbul ignore next */ []));
109
104
  /** Sentinel value to differentiate "never checked" from "control is null". */
110
105
  _lastControl = null;
111
106
  /** Gets the AbstractControlDirective for this control. */
112
107
  ngControl = null;
113
- id = signal(undefined, ...(ngDevMode ? [{ debugName: "id" }] : []));
114
- controlState = computed(() => this._stateTracker()?.controlState() ?? null, ...(ngDevMode ? [{ debugName: "controlState" }] : []));
115
- errors = computed(() => this._stateTracker()?.errors() ?? null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
116
- dirty = computed(() => this._stateTracker()?.dirty() ?? null, ...(ngDevMode ? [{ debugName: "dirty" }] : []));
117
- invalid = computed(() => this._stateTracker()?.invalid() ?? null, ...(ngDevMode ? [{ debugName: "invalid" }] : []));
118
- spartanInvalid = computed(() => this._stateTracker()?.spartanInvalid() ?? null, ...(ngDevMode ? [{ debugName: "spartanInvalid" }] : []));
119
- touched = computed(() => this._stateTracker()?.touched() ?? null, ...(ngDevMode ? [{ debugName: "touched" }] : []));
108
+ id = signal(undefined, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
109
+ controlState = computed(() => this._stateTracker()?.controlState() ?? null, ...(ngDevMode ? [{ debugName: "controlState" }] : /* istanbul ignore next */ []));
110
+ errors = computed(() => this._stateTracker()?.errors() ?? null, ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
111
+ dirty = computed(() => this._stateTracker()?.dirty() ?? null, ...(ngDevMode ? [{ debugName: "dirty" }] : /* istanbul ignore next */ []));
112
+ invalid = computed(() => this._stateTracker()?.invalid() ?? null, ...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
113
+ spartanInvalid = computed(() => this._stateTracker()?.spartanInvalid() ?? null, ...(ngDevMode ? [{ debugName: "spartanInvalid" }] : /* istanbul ignore next */ []));
114
+ touched = computed(() => this._stateTracker()?.touched() ?? null, ...(ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []));
120
115
  constructor() {
121
116
  this._field?.registerFieldControl(this);
122
117
  this._destroyRef.onDestroy(() => {
@@ -140,7 +135,7 @@ class BrnFieldControl {
140
135
  if (labelable) {
141
136
  this._idEffectRef = effect(() => {
142
137
  this.id.set(labelable.labelableId());
143
- }, ...(ngDevMode ? [{ debugName: "_idEffectRef", injector: this._injector }] : [{ injector: this._injector }]));
138
+ }, { ...(ngDevMode ? { debugName: "_idEffectRef" } : /* istanbul ignore next */ {}), injector: this._injector });
144
139
  }
145
140
  }
146
141
  // Re-evaluate the control reference on every change detection cycle because
@@ -162,15 +157,15 @@ class BrnFieldControl {
162
157
  ? createStateTracker(this.ngControl, this._errorStateMatcher, this._parentFormGroup, this._parentForm)
163
158
  : null);
164
159
  }
165
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
166
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: BrnFieldControl, isStandalone: true, ngImport: i0 });
160
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
161
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: BrnFieldControl, isStandalone: true, ngImport: i0 });
167
162
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldControl, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldControl, decorators: [{
169
164
  type: Directive
170
165
  }], ctorParameters: () => [] });
171
166
 
172
167
  class BrnFieldControlDescribedBy {
173
- describedBy = input(null, ...(ngDevMode ? [{ debugName: "describedBy", alias: 'aria-describedby' }] : [{ alias: 'aria-describedby' }]));
168
+ describedBy = input(null, { ...(ngDevMode ? { debugName: "describedBy" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
174
169
  _a11y = inject(BrnFieldA11yService, { optional: true });
175
170
  _computedDescribedBy = computed(() => {
176
171
  const manual = this.describedBy();
@@ -179,11 +174,11 @@ class BrnFieldControlDescribedBy {
179
174
  const fieldList = fieldIds ? fieldIds.split(/\s+/).filter(Boolean) : [];
180
175
  const combined = [...new Set([...manualList, ...fieldList])];
181
176
  return combined.length ? combined.join(' ') : null;
182
- }, ...(ngDevMode ? [{ debugName: "_computedDescribedBy" }] : []));
183
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldControlDescribedBy, deps: [], target: i0.ɵɵFactoryTarget.Directive });
184
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.17", type: BrnFieldControlDescribedBy, isStandalone: true, selector: "[brnFieldControlDescribedBy]", inputs: { describedBy: { classPropertyName: "describedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-describedby": "_computedDescribedBy()" } }, ngImport: i0 });
177
+ }, ...(ngDevMode ? [{ debugName: "_computedDescribedBy" }] : /* istanbul ignore next */ []));
178
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldControlDescribedBy, deps: [], target: i0.ɵɵFactoryTarget.Directive });
179
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: BrnFieldControlDescribedBy, isStandalone: true, selector: "[brnFieldControlDescribedBy]", inputs: { describedBy: { classPropertyName: "describedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-describedby": "_computedDescribedBy()" } }, ngImport: i0 });
185
180
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BrnFieldControlDescribedBy, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: BrnFieldControlDescribedBy, decorators: [{
187
182
  type: Directive,
188
183
  args: [{
189
184
  selector: '[brnFieldControlDescribedBy]',
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-field.mjs","sources":["../../../../libs/brain/field/src/lib/brn-field-aria.service.ts","../../../../libs/brain/field/src/lib/brn-field.ts","../../../../libs/brain/field/src/lib/brn-labelable.ts","../../../../libs/brain/field/src/lib/brn-field-control.ts","../../../../libs/brain/field/src/lib/brn-field-control-described-by.ts","../../../../libs/brain/field/src/index.ts","../../../../libs/brain/field/src/spartan-ng-brain-field.ts"],"sourcesContent":["import { computed, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class BrnFieldA11yService {\n\tprivate readonly _descriptions = signal<string[]>([]);\n\tprivate readonly _errors = signal<string[]>([]);\n\n\tpublic readonly describedBy = computed(() => {\n\t\tconst ids = [...this._descriptions(), ...this._errors()].filter(Boolean);\n\t\tconst uniqueIds = [...new Set(ids)];\n\t\treturn uniqueIds.length ? uniqueIds.join(' ') : null;\n\t});\n\n\tpublic registerDescription(id: string) {\n\t\tthis._descriptions.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n\t}\n\n\tpublic unregisterDescription(id: string) {\n\t\tthis._descriptions.update((ids) => ids.filter((value) => value !== id));\n\t}\n\n\tpublic registerError(id: string) {\n\t\tthis._errors.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n\t}\n\n\tpublic unregisterError(id: string) {\n\t\tthis._errors.update((ids) => ids.filter((value) => value !== id));\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input, signal } from '@angular/core';\nimport { BrnFieldA11yService } from './brn-field-aria.service';\nimport { BrnFieldControl } from './brn-field-control';\nimport { BrnLabelable } from './brn-labelable';\n\n@Directive({\n\tselector: '[brnField],brn-field',\n\tproviders: [BrnFieldA11yService],\n\thost: {\n\t\t'[attr.data-invalid]': '_invalid() ? \"true\" : null',\n\t\t'[attr.data-matches-spartan-invalid]': '_spartanInvalid() ? \"true\" : null',\n\t\t'[attr.data-touched]': '_touched() ? \"true\" : null',\n\t\t'[attr.data-dirty]': '_dirty() ? \"true\" : null',\n\t},\n})\nexport class BrnField {\n\tprivate readonly _brnFieldControl = signal<BrnFieldControl | null>(null);\n\tprivate readonly _labelable = signal<BrnLabelable | null>(null);\n\n\t/** Whether the field is invalid. Overrides the `data-invalid` attribute. */\n\tpublic readonly dataInvalid = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t\talias: 'data-invalid',\n\t});\n\n\t/**\n\t * Whether to force the field into an invalid state, regardless of the form control's state.\n\t * Overrides both the `data-invalid` and `data-matches-spartan-invalid` attributes.\n\t */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _invalid = computed(() => {\n\t\tif (this.forceInvalid() || this.dataInvalid()) return true;\n\n\t\tconst control = this._brnFieldControl();\n\t\tif (!control || !control.ngControl) return false;\n\n\t\treturn control.controlState()?.invalid;\n\t});\n\n\tprotected readonly _spartanInvalid = computed(() => {\n\t\treturn this.forceInvalid() || (this._brnFieldControl()?.controlState()?.spartanInvalid ?? null);\n\t});\n\n\tprotected readonly _dirty = computed(() => {\n\t\treturn this._brnFieldControl()?.controlState()?.dirty ?? null;\n\t});\n\n\tprotected readonly _touched = computed(() => {\n\t\treturn this._brnFieldControl()?.controlState()?.touched ?? null;\n\t});\n\n\tpublic readonly labelableId = computed(() => this._brnFieldControl()?.id?.() ?? this._labelable()?.labelableId());\n\n\tpublic readonly errors = computed(() => this._brnFieldControl()?.errors() ?? null);\n\tpublic readonly controlState = computed(() => this._brnFieldControl()?.controlState() ?? null);\n\n\tpublic registerFieldControl(fieldControl: BrnFieldControl) {\n\t\tthis._brnFieldControl.set(fieldControl);\n\t}\n\n\tpublic registerLabelable(labelable: BrnLabelable) {\n\t\tthis._labelable.set(labelable);\n\t}\n}\n","import { type ExistingProvider, inject, InjectionToken, type Signal, type Type } from '@angular/core';\n\nexport interface BrnLabelable {\n\tlabelableId: Signal<string | null | undefined>;\n}\n\nexport const BrnLabelable = new InjectionToken<BrnLabelable>('BrnLabelable');\n\nexport function provideBrnLabelable(labelable: Type<BrnLabelable>): ExistingProvider {\n\treturn { provide: BrnLabelable, useExisting: labelable };\n}\n\nexport function injectBrnLabelable(): BrnLabelable | null {\n\treturn inject(BrnLabelable, { optional: true });\n}\n","import { computed, DestroyRef, Directive, DoCheck, effect, inject, Injector, OnInit, signal } from '@angular/core';\nimport { type AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { createStateTracker, ErrorStateMatcher, type StateTracker } from '@spartan-ng/brain/forms';\nimport { BrnField } from './brn-field';\nimport { BrnLabelable } from './brn-labelable';\n\n@Directive()\nexport class BrnFieldControl implements OnInit, DoCheck {\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _errorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\tprivate readonly _field = inject(BrnField, { optional: true });\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tprivate _idEffectRef?: ReturnType<typeof effect>;\n\tprivate readonly _stateTracker = signal<StateTracker | null>(null);\n\t/** Sentinel value to differentiate \"never checked\" from \"control is null\". */\n\tprivate _lastControl: AbstractControl | null = null;\n\n\t/** Gets the AbstractControlDirective for this control. */\n\tpublic ngControl: NgControl | null = null;\n\n\tpublic readonly id = signal<string | null | undefined>(undefined);\n\n\tpublic readonly controlState = computed(() => this._stateTracker()?.controlState() ?? null);\n\tpublic readonly errors = computed(() => this._stateTracker()?.errors() ?? null);\n\tpublic readonly dirty = computed(() => this._stateTracker()?.dirty() ?? null);\n\tpublic readonly invalid = computed(() => this._stateTracker()?.invalid() ?? null);\n\tpublic readonly spartanInvalid = computed(() => this._stateTracker()?.spartanInvalid() ?? null);\n\tpublic readonly touched = computed(() => this._stateTracker()?.touched() ?? null);\n\n\tconstructor() {\n\t\tthis._field?.registerFieldControl(this);\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._idEffectRef?.destroy();\n\t\t\tthis._stateTracker()?.destroy();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.ngControl = this._injector.get(NgControl, null);\n\n\t\t// Try to sync the tracker eagerly.\n\t\tthis._syncTracker();\n\n\t\t// For template-driven forms and FormControlName, the control is often resolved\n\t\t// asynchronously by Angular's directives after our ngOnInit/ngDoCheck.\n\t\t// Schedule a one-time microtask to catch the initial resolution.\n\t\tif (this.ngControl) {\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\tthis._syncTracker();\n\t\t\t});\n\t\t}\n\n\t\tconst labelable = this._injector.get(BrnLabelable, null);\n\t\tif (labelable) {\n\t\t\tthis._idEffectRef = effect(\n\t\t\t\t() => {\n\t\t\t\t\tthis.id.set(labelable.labelableId());\n\t\t\t\t},\n\t\t\t\t{ injector: this._injector },\n\t\t\t);\n\t\t}\n\t}\n\n\t// Re-evaluate the control reference on every change detection cycle because\n\t// the underlying AbstractControl may change when [formControl] rebinds to a new instance.\n\t// When the instance changes we tear down the old tracker and create a fresh one.\n\tngDoCheck(): void {\n\t\tthis._syncTracker();\n\t}\n\n\t/** @returns true if the control reference changed */\n\tprivate _syncTracker(): void {\n\t\tif (!this.ngControl) return;\n\t\tconst currentControl = this.ngControl.control ?? null;\n\t\tif (currentControl === this._lastControl) return;\n\t\tthis._lastControl = currentControl;\n\t\tthis._stateTracker()?.destroy();\n\t\tthis._stateTracker.set(\n\t\t\tcurrentControl\n\t\t\t\t? createStateTracker(this.ngControl, this._errorStateMatcher, this._parentFormGroup, this._parentForm)\n\t\t\t\t: null,\n\t\t);\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnFieldA11yService } from './brn-field-aria.service';\n\n@Directive({\n\tselector: '[brnFieldControlDescribedBy]',\n\thost: {\n\t\t'[attr.aria-describedby]': '_computedDescribedBy()',\n\t},\n})\nexport class BrnFieldControlDescribedBy {\n\tpublic readonly describedBy = input<string | null>(null, { alias: 'aria-describedby' });\n\tprivate readonly _a11y = inject(BrnFieldA11yService, { optional: true });\n\n\tprotected readonly _computedDescribedBy = computed(() => {\n\t\tconst manual = this.describedBy();\n\t\tconst manualList = manual ? manual.split(/\\s+/).filter(Boolean) : [];\n\t\tconst fieldIds = this._a11y?.describedBy() ?? null;\n\t\tconst fieldList = fieldIds ? fieldIds.split(/\\s+/).filter(Boolean) : [];\n\n\t\tconst combined = [...new Set([...manualList, ...fieldList])];\n\t\treturn combined.length ? combined.join(' ') : null;\n\t});\n}\n","import { BrnField } from './lib/brn-field';\nimport { BrnFieldControl } from './lib/brn-field-control';\nimport { BrnFieldControlDescribedBy } from './lib/brn-field-control-described-by';\n\nexport * from './lib/brn-field';\nexport * from './lib/brn-field-aria.service';\nexport * from './lib/brn-field-control';\nexport * from './lib/brn-field-control-described-by';\nexport * from './lib/brn-labelable';\n\nexport const BrnFieldImports = [BrnField, BrnFieldControl, BrnFieldControlDescribedBy] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-field.mjs","sources":["../../../../libs/brain/field/src/lib/brn-field-aria.service.ts","../../../../libs/brain/field/src/lib/brn-field.ts","../../../../libs/brain/field/src/lib/brn-labelable.ts","../../../../libs/brain/field/src/lib/brn-field-control.ts","../../../../libs/brain/field/src/lib/brn-field-control-described-by.ts","../../../../libs/brain/field/src/index.ts","../../../../libs/brain/field/src/spartan-ng-brain-field.ts"],"sourcesContent":["import { computed, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class BrnFieldA11yService {\n\tprivate readonly _descriptions = signal<string[]>([]);\n\tprivate readonly _errors = signal<string[]>([]);\n\n\tpublic readonly describedBy = computed(() => {\n\t\tconst ids = [...this._descriptions(), ...this._errors()].filter(Boolean);\n\t\tconst uniqueIds = [...new Set(ids)];\n\t\treturn uniqueIds.length ? uniqueIds.join(' ') : null;\n\t});\n\n\tpublic registerDescription(id: string) {\n\t\tthis._descriptions.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n\t}\n\n\tpublic unregisterDescription(id: string) {\n\t\tthis._descriptions.update((ids) => ids.filter((value) => value !== id));\n\t}\n\n\tpublic registerError(id: string) {\n\t\tthis._errors.update((ids) => (ids.includes(id) ? ids : [...ids, id]));\n\t}\n\n\tpublic unregisterError(id: string) {\n\t\tthis._errors.update((ids) => ids.filter((value) => value !== id));\n\t}\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input, signal } from '@angular/core';\nimport { BrnFieldA11yService } from './brn-field-aria.service';\nimport { BrnFieldControl } from './brn-field-control';\nimport { BrnLabelable } from './brn-labelable';\n\n@Directive({\n\tselector: '[brnField],brn-field',\n\tproviders: [BrnFieldA11yService],\n\thost: {\n\t\t'[attr.data-invalid]': '_invalid() ? \"true\" : null',\n\t\t'[attr.data-matches-spartan-invalid]': '_spartanInvalid() ? \"true\" : null',\n\t\t'[attr.data-touched]': '_touched() ? \"true\" : null',\n\t\t'[attr.data-dirty]': '_dirty() ? \"true\" : null',\n\t},\n})\nexport class BrnField {\n\tprivate readonly _brnFieldControl = signal<BrnFieldControl | null>(null);\n\tprivate readonly _labelable = signal<BrnLabelable | null>(null);\n\n\t/** Whether the field is invalid. Overrides the `data-invalid` attribute. */\n\tpublic readonly dataInvalid = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t\talias: 'data-invalid',\n\t});\n\n\t/**\n\t * Whether to force the field into an invalid state, regardless of the form control's state.\n\t * Overrides both the `data-invalid` and `data-matches-spartan-invalid` attributes.\n\t */\n\tpublic readonly forceInvalid = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected readonly _invalid = computed(() => {\n\t\tif (this.forceInvalid() || this.dataInvalid()) return true;\n\n\t\tconst control = this._brnFieldControl();\n\t\tif (!control || !control.ngControl) return false;\n\n\t\treturn control.controlState()?.invalid;\n\t});\n\n\tprotected readonly _spartanInvalid = computed(() => {\n\t\treturn this.forceInvalid() || (this._brnFieldControl()?.controlState()?.spartanInvalid ?? null);\n\t});\n\n\tprotected readonly _dirty = computed(() => {\n\t\treturn this._brnFieldControl()?.controlState()?.dirty ?? null;\n\t});\n\n\tprotected readonly _touched = computed(() => {\n\t\treturn this._brnFieldControl()?.controlState()?.touched ?? null;\n\t});\n\n\tpublic readonly labelableId = computed(() => this._brnFieldControl()?.id?.() ?? this._labelable()?.labelableId());\n\n\tpublic readonly errors = computed(() => this._brnFieldControl()?.errors() ?? null);\n\tpublic readonly controlState = computed(() => this._brnFieldControl()?.controlState() ?? null);\n\n\tpublic registerFieldControl(fieldControl: BrnFieldControl) {\n\t\tthis._brnFieldControl.set(fieldControl);\n\t}\n\n\tpublic registerLabelable(labelable: BrnLabelable) {\n\t\tthis._labelable.set(labelable);\n\t}\n}\n","import { type ExistingProvider, inject, InjectionToken, type Signal, type Type } from '@angular/core';\n\nexport interface BrnLabelable {\n\tlabelableId: Signal<string | null | undefined>;\n}\n\nexport const BrnLabelable = new InjectionToken<BrnLabelable>('BrnLabelable');\n\nexport function provideBrnLabelable(labelable: Type<BrnLabelable>): ExistingProvider {\n\treturn { provide: BrnLabelable, useExisting: labelable };\n}\n\nexport function injectBrnLabelable(): BrnLabelable | null {\n\treturn inject(BrnLabelable, { optional: true });\n}\n","import { computed, DestroyRef, Directive, DoCheck, effect, inject, Injector, OnInit, signal } from '@angular/core';\nimport { type AbstractControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { createStateTracker, ErrorStateMatcher, type StateTracker } from '@spartan-ng/brain/forms';\nimport { BrnField } from './brn-field';\nimport { BrnLabelable } from './brn-labelable';\n\n@Directive()\nexport class BrnFieldControl implements OnInit, DoCheck {\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _errorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\tprivate readonly _field = inject(BrnField, { optional: true });\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tprivate _idEffectRef?: ReturnType<typeof effect>;\n\tprivate readonly _stateTracker = signal<StateTracker | null>(null);\n\t/** Sentinel value to differentiate \"never checked\" from \"control is null\". */\n\tprivate _lastControl: AbstractControl | null = null;\n\n\t/** Gets the AbstractControlDirective for this control. */\n\tpublic ngControl: NgControl | null = null;\n\n\tpublic readonly id = signal<string | null | undefined>(undefined);\n\n\tpublic readonly controlState = computed(() => this._stateTracker()?.controlState() ?? null);\n\tpublic readonly errors = computed(() => this._stateTracker()?.errors() ?? null);\n\tpublic readonly dirty = computed(() => this._stateTracker()?.dirty() ?? null);\n\tpublic readonly invalid = computed(() => this._stateTracker()?.invalid() ?? null);\n\tpublic readonly spartanInvalid = computed(() => this._stateTracker()?.spartanInvalid() ?? null);\n\tpublic readonly touched = computed(() => this._stateTracker()?.touched() ?? null);\n\n\tconstructor() {\n\t\tthis._field?.registerFieldControl(this);\n\t\tthis._destroyRef.onDestroy(() => {\n\t\t\tthis._idEffectRef?.destroy();\n\t\t\tthis._stateTracker()?.destroy();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.ngControl = this._injector.get(NgControl, null);\n\n\t\t// Try to sync the tracker eagerly.\n\t\tthis._syncTracker();\n\n\t\t// For template-driven forms and FormControlName, the control is often resolved\n\t\t// asynchronously by Angular's directives after our ngOnInit/ngDoCheck.\n\t\t// Schedule a one-time microtask to catch the initial resolution.\n\t\tif (this.ngControl) {\n\t\t\tPromise.resolve().then(() => {\n\t\t\t\tthis._syncTracker();\n\t\t\t});\n\t\t}\n\n\t\tconst labelable = this._injector.get(BrnLabelable, null);\n\t\tif (labelable) {\n\t\t\tthis._idEffectRef = effect(\n\t\t\t\t() => {\n\t\t\t\t\tthis.id.set(labelable.labelableId());\n\t\t\t\t},\n\t\t\t\t{ injector: this._injector },\n\t\t\t);\n\t\t}\n\t}\n\n\t// Re-evaluate the control reference on every change detection cycle because\n\t// the underlying AbstractControl may change when [formControl] rebinds to a new instance.\n\t// When the instance changes we tear down the old tracker and create a fresh one.\n\tngDoCheck(): void {\n\t\tthis._syncTracker();\n\t}\n\n\t/** @returns true if the control reference changed */\n\tprivate _syncTracker(): void {\n\t\tif (!this.ngControl) return;\n\t\tconst currentControl = this.ngControl.control ?? null;\n\t\tif (currentControl === this._lastControl) return;\n\t\tthis._lastControl = currentControl;\n\t\tthis._stateTracker()?.destroy();\n\t\tthis._stateTracker.set(\n\t\t\tcurrentControl\n\t\t\t\t? createStateTracker(this.ngControl, this._errorStateMatcher, this._parentFormGroup, this._parentForm)\n\t\t\t\t: null,\n\t\t);\n\t}\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { BrnFieldA11yService } from './brn-field-aria.service';\n\n@Directive({\n\tselector: '[brnFieldControlDescribedBy]',\n\thost: {\n\t\t'[attr.aria-describedby]': '_computedDescribedBy()',\n\t},\n})\nexport class BrnFieldControlDescribedBy {\n\tpublic readonly describedBy = input<string | null>(null, { alias: 'aria-describedby' });\n\tprivate readonly _a11y = inject(BrnFieldA11yService, { optional: true });\n\n\tprotected readonly _computedDescribedBy = computed(() => {\n\t\tconst manual = this.describedBy();\n\t\tconst manualList = manual ? manual.split(/\\s+/).filter(Boolean) : [];\n\t\tconst fieldIds = this._a11y?.describedBy() ?? null;\n\t\tconst fieldList = fieldIds ? fieldIds.split(/\\s+/).filter(Boolean) : [];\n\n\t\tconst combined = [...new Set([...manualList, ...fieldList])];\n\t\treturn combined.length ? combined.join(' ') : null;\n\t});\n}\n","import { BrnField } from './lib/brn-field';\nimport { BrnFieldControl } from './lib/brn-field-control';\nimport { BrnFieldControlDescribedBy } from './lib/brn-field-control-described-by';\n\nexport * from './lib/brn-field';\nexport * from './lib/brn-field-aria.service';\nexport * from './lib/brn-field-control';\nexport * from './lib/brn-field-control-described-by';\nexport * from './lib/brn-labelable';\n\nexport const BrnFieldImports = [BrnField, BrnFieldControl, BrnFieldControlDescribedBy] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}