@spartan-ng/brain 0.0.1-alpha.518 → 0.0.1-alpha.520

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 (100) hide show
  1. package/accordion/lib/brn-accordion.d.ts +3 -3
  2. package/alert-dialog/lib/brn-alert-dialog.d.ts +1 -1
  3. package/autocomplete/lib/brn-autocomplete-item.d.ts +2 -2
  4. package/autocomplete/lib/brn-autocomplete-item.token.d.ts +2 -2
  5. package/autocomplete/lib/brn-autocomplete-search-input.token.d.ts +1 -1
  6. package/autocomplete/lib/brn-autocomplete.d.ts +1 -1
  7. package/autocomplete/lib/brn-autocomplete.token.d.ts +1 -1
  8. package/avatar/lib/image/brn-avatar-image.d.ts +1 -1
  9. package/button/lib/brn-button.d.ts +1 -1
  10. package/calendar/lib/brn-calendar-week.d.ts +1 -1
  11. package/calendar/lib/brn-calendar-weekday.d.ts +1 -1
  12. package/calendar/lib/brn-calendar.d.ts +3 -3
  13. package/calendar/lib/brn-calendar.token.d.ts +2 -2
  14. package/calendar/lib/i18n/calendar-i18n.d.ts +1 -1
  15. package/calendar/lib/mode/brn-calendar-multiple.d.ts +3 -3
  16. package/calendar/lib/mode/brn-calendar-range.d.ts +3 -3
  17. package/checkbox/lib/brn-checkbox.d.ts +3 -3
  18. package/collapsible/lib/brn-collapsible-content.d.ts +1 -1
  19. package/collapsible/lib/brn-collapsible.d.ts +1 -1
  20. package/command/lib/brn-command-item.d.ts +4 -4
  21. package/command/lib/brn-command-item.token.d.ts +1 -1
  22. package/command/lib/brn-command-search-input.token.d.ts +1 -1
  23. package/command/lib/brn-command.d.ts +2 -2
  24. package/command/lib/brn-command.token.d.ts +1 -1
  25. package/date-time/lib/date-adapter.d.ts +1 -1
  26. package/date-time-luxon/lib/date-adapter.d.ts +1 -1
  27. package/dialog/lib/brn-dialog-ref.d.ts +1 -1
  28. package/dialog/lib/brn-dialog-token.d.ts +2 -2
  29. package/dialog/lib/brn-dialog.d.ts +2 -2
  30. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  31. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  32. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  33. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
  34. package/fesm2022/spartan-ng-brain-button.mjs.map +1 -1
  35. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
  36. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  37. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
  38. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  39. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -1
  40. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
  41. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  42. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -1
  43. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  44. package/fesm2022/spartan-ng-brain-input-group.mjs +37 -0
  45. package/fesm2022/spartan-ng-brain-input-group.mjs.map +1 -0
  46. package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
  47. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -1
  48. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  49. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -1
  50. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  51. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  52. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -1
  53. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  54. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  55. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  56. package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
  57. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  58. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  59. package/forms/lib/error-options.d.ts +1 -1
  60. package/hlm-tailwind-preset.js +10 -0
  61. package/hover-card/lib/brn-hover-card-content.service.d.ts +1 -1
  62. package/hover-card/lib/createHoverObservable.d.ts +1 -1
  63. package/input-group/README.md +3 -0
  64. package/input-group/index.d.ts +3 -0
  65. package/input-group/lib/brn-affixes.d.ts +14 -0
  66. package/input-otp/lib/brn-input-otp-slot.d.ts +1 -1
  67. package/input-otp/lib/brn-input-otp.d.ts +3 -3
  68. package/input-otp/lib/brn-input-otp.token.d.ts +2 -2
  69. package/menu/lib/brn-context-menu-trigger.d.ts +1 -1
  70. package/menu/lib/brn-menu-align.d.ts +1 -1
  71. package/menu/lib/brn-menu-trigger.d.ts +1 -1
  72. package/package.json +5 -1
  73. package/popover/lib/brn-popover.d.ts +1 -1
  74. package/progress/lib/brn-progress.d.ts +2 -2
  75. package/progress/lib/brn-progress.token.d.ts +1 -1
  76. package/radio-group/lib/brn-radio-group.d.ts +3 -3
  77. package/radio-group/lib/brn-radio-group.token.d.ts +1 -1
  78. package/radio-group/lib/brn-radio.d.ts +1 -1
  79. package/select/lib/brn-select-content.d.ts +1 -1
  80. package/select/lib/brn-select-content.token.d.ts +1 -1
  81. package/select/lib/brn-select-option.d.ts +1 -1
  82. package/select/lib/brn-select-trigger.d.ts +1 -1
  83. package/select/lib/brn-select.d.ts +3 -3
  84. package/select/lib/brn-select.token.d.ts +1 -1
  85. package/separator/lib/brn-separator.d.ts +1 -1
  86. package/slider/lib/brn-slider-tick.d.ts +1 -1
  87. package/slider/lib/brn-slider-track.token.d.ts +1 -1
  88. package/slider/lib/brn-slider.d.ts +4 -4
  89. package/slider/lib/brn-slider.token.d.ts +1 -1
  90. package/switch/lib/brn-switch.d.ts +3 -3
  91. package/tabs/lib/brn-tabs-content.d.ts +1 -1
  92. package/tabs/lib/brn-tabs-list.d.ts +1 -1
  93. package/tabs/lib/brn-tabs-paginated-list.d.ts +2 -2
  94. package/tabs/lib/brn-tabs-trigger.d.ts +2 -2
  95. package/tabs/lib/brn-tabs.d.ts +2 -2
  96. package/toggle/lib/brn-toggle.d.ts +1 -1
  97. package/toggle-group/lib/brn-toggle-group.d.ts +2 -2
  98. package/toggle-group/lib/brn-toggle-group.token.d.ts +1 -1
  99. package/toggle-group/lib/brn-toggle-item.d.ts +1 -1
  100. package/tooltip/lib/brn-tooltip.token.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-checkbox.mjs","sources":["../../../../libs/brain/checkbox/src/lib/brn-checkbox.ts","../../../../libs/brain/checkbox/src/index.ts","../../../../libs/brain/checkbox/src/spartan-ng-brain-checkbox.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterContentInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tmodel,\n\ttype OnDestroy,\n\toutput,\n\tPLATFORM_ID,\n\tRenderer2,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\n\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnCheckbox),\n\tmulti: true,\n};\n\nlet uniqueIdCounter = 0;\n\nconst CONTAINER_POST_FIX = '-checkbox';\n\n@Component({\n\tselector: 'brn-checkbox',\n\ttemplate: `\n\t\t<button\n\t\t\t#checkBox\n\t\t\trole=\"checkbox\"\n\t\t\ttype=\"button\"\n\t\t\t[id]=\"getCheckboxButtonId(_state().id) ?? ''\"\n\t\t\t[name]=\"getCheckboxButtonId(_state().name) ?? ''\"\n\t\t\t[class]=\"class()\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t\t[attr.aria-label]=\"ariaLabel() || null\"\n\t\t\t[attr.aria-labelledby]=\"mutableAriaLabelledby() || null\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby() || null\"\n\t\t\t[attr.data-state]=\"_dataState()\"\n\t\t\t[attr.data-focus-visible]=\"_focusVisible()\"\n\t\t\t[attr.data-focus]=\"_focused()\"\n\t\t\t[attr.data-disabled]=\"_state().disabled()\"\n\t\t\t[disabled]=\"_state().disabled()\"\n\t\t\t[tabIndex]=\"_state().disabled() ? -1 : 0\"\n\t\t\t(click)=\"$event.preventDefault(); toggle()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</button>\n\t`,\n\thost: {\n\t\t'[style]': '{display: \"contents\"}',\n\t\t'[attr.id]': '_state().id',\n\t\t'[attr.name]': '_state().name',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-focus-visible]': '_focusVisible()',\n\t\t'[attr.data-focus]': '_focused()',\n\t\t'[attr.data-disabled]': '_state().disabled()',\n\t},\n\tproviders: [BRN_CHECKBOX_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCheckbox implements ControlValueAccessor, AfterContentInit, OnDestroy {\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _cdr = inject(ChangeDetectorRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n\tprotected readonly _focusVisible = signal(false);\n\tprotected readonly _focused = signal(false);\n\n\t/**\n\t * Current checked state of checkbox.\n\t * Can be boolean (true/false) or 'indeterminate'.\n\t * Can be bound with [(checked)] for two-way binding.\n\t */\n\tpublic readonly checked = model<BrnCheckboxValue>(false);\n\n\t/** Emits when checked state changes. */\n\tpublic readonly checkedChange = output<BrnCheckboxValue>();\n\n\t/**\n\t * Read-only signal of current checkbox state.\n\t * Use this when you only need to read state without changing it.\n\t */\n\tpublic readonly isChecked = this.checked.asReadonly();\n\n\t/**\n\t * Computed data-state attribute value based on checked state.\n\t * Returns 'checked', 'unchecked', or 'indeterminate'.\n\t */\n\tprotected readonly _dataState = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'indeterminate';\n\t\treturn checked ? 'checked' : 'unchecked';\n\t});\n\n\t/**\n\t * Computed aria-checked attribute value for accessibility.\n\t * Returns 'true', 'false', or 'mixed' (for indeterminate).\n\t */\n\tprotected readonly _ariaChecked = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'mixed';\n\t\treturn checked ? 'true' : 'false';\n\t});\n\n\t/**\n\t * Unique identifier for checkbox component.\n\t * When provided, inner button gets ID without '-checkbox' suffix.\n\t * Auto-generates ID if not provided.\n\t */\n\tpublic readonly id = input<string | null>(++uniqueIdCounter + '');\n\n\t/**\n\t * Form control name for checkbox.\n\t * When provided, inner button gets name without '-checkbox' suffix.\n\t */\n\tpublic readonly name = input<string | null>(null);\n\n\t/**\n\t * CSS classes applied to inner button element.\n\t */\n\tpublic readonly class = input<string | null>(null);\n\n\t/**\n\t * Accessibility label for screen readers.\n\t * Use when no visible label exists.\n\t */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/**\n\t * ID of element that labels this checkbox for accessibility.\n\t * Auto-set when checkbox is inside label element.\n\t */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\tpublic readonly mutableAriaLabelledby = linkedSignal(() => this.ariaLabelledby());\n\n\t/**\n\t * ID of element that describes this checkbox for accessibility.\n\t */\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\t/**\n\t * Whether checkbox is required in a form.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Whether checkbox is disabled.\n\t * Disabled checkboxes cannot be toggled and indicate disabled state through data-disabled attribute.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Computed state for checkbox container and accessibility.\n\t * Manages ID, name, and disabled state.\n\t */\n\tprotected readonly _state = computed(() => {\n\t\tconst name = this.name();\n\t\tconst id = this.id();\n\t\treturn {\n\t\t\tdisabled: signal(this.disabled()),\n\t\t\tname: name ? name + CONTAINER_POST_FIX : null,\n\t\t\tid: id ? id + CONTAINER_POST_FIX : null,\n\t\t};\n\t});\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected _onChange: ChangeFn<BrnCheckboxValue> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\t/**\n\t * Reference to the checkbox button element in the template.\n\t */\n\tpublic readonly checkbox = viewChild.required<ElementRef<HTMLButtonElement>>('checkBox');\n\n\t/**\n\t * Event emitted when checkbox is blurred (loses focus).\n\t * Used for form validation.\n\t */\n\tpublic readonly touched = output<void>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tconst isDisabled = state.disabled();\n\n\t\t\tif (!this._elementRef.nativeElement || !this._isBrowser) return;\n\n\t\t\tconst newLabelId = state.id + '-label';\n\t\t\tconst checkboxButtonId = this.getCheckboxButtonId(state.id);\n\t\t\tconst labelElement =\n\t\t\t\tthis._elementRef.nativeElement.closest('label') ??\n\t\t\t\tthis._document.querySelector(`label[for=\"${checkboxButtonId}\"]`);\n\n\t\t\tif (!labelElement) return;\n\t\t\tconst existingLabelId = labelElement.id;\n\n\t\t\tthis._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n\t\t\tthis.mutableAriaLabelledby.set(existingLabelId || newLabelId);\n\n\t\t\tif (!existingLabelId || existingLabelId.length === 0) {\n\t\t\t\tthis._renderer.setAttribute(labelElement, 'id', newLabelId);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggles checkbox between checked/unchecked states.\n\t * If checkbox is indeterminate, sets to checked.\n\t * Does nothing if checkbox is disabled.\n\t */\n\ttoggle() {\n\t\tif (this._state().disabled()) return;\n\n\t\tthis._onTouched();\n\t\tthis.touched.emit();\n\n\t\tconst previousChecked = this.checked();\n\t\tthis.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);\n\t\tthis._onChange(this.checked());\n\t\tthis.checkedChange.emit(this.checked());\n\t}\n\n\tngAfterContentInit() {\n\t\tthis._focusMonitor\n\t\t\t.monitor(this._elementRef, true)\n\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe((focusOrigin) => {\n\t\t\t\tif (focusOrigin) this._focused.set(true);\n\t\t\t\tif (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n\t\t\t\t\tthis._focusVisible.set(true);\n\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t}\n\t\t\t\tif (!focusOrigin) {\n\t\t\t\t\t// When a focused element becomes disabled, the browser *immediately* fires a blur event.\n\t\t\t\t\t// Angular does not expect events to be raised during change detection, so any state\n\t\t\t\t\t// change (such as a form control's ng-touched) will cause a changed-after-checked error.\n\t\t\t\t\t// See https://github.com/angular/angular/issues/17793. To work around this, we defer\n\t\t\t\t\t// telling the form control it has been touched until the next tick.\n\t\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\t\tthis._focusVisible.set(false);\n\t\t\t\t\t\tthis._focused.set(false);\n\t\t\t\t\t\tthis._onTouched();\n\t\t\t\t\t\tthis.touched.emit();\n\t\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/**\n\t * Gets proper ID for inner button element.\n\t * Removes '-checkbox' suffix if present in container ID.\n\t *\n\t * @param idPassedToContainer - ID applied to container element\n\t * @returns ID to use for inner button or null\n\t */\n\tprotected getCheckboxButtonId(idPassedToContainer: string | null | undefined): string | null {\n\t\treturn idPassedToContainer ? idPassedToContainer.replace(CONTAINER_POST_FIX, '') : null;\n\t}\n\n\t/**\n\t * Updates internal state when control value changes from outside.\n\t * Handles boolean and 'indeterminate' values.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param value - New checkbox state (true/false/'indeterminate')\n\t */\n\twriteValue(value: BrnCheckboxValue): void {\n\t\tif (value === 'indeterminate') {\n\t\t\tthis.checked.set('indeterminate');\n\t\t} else {\n\t\t\tthis.checked.set(value);\n\t\t}\n\t}\n\n\t/**\n\t * Registers callback for value changes.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when value changes\n\t */\n\tregisterOnChange(fn: ChangeFn<BrnCheckboxValue>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\t/**\n\t * Registers callback for touched events.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when control is touched\n\t */\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\t/**\n\t * Updates disabled state from form control.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param isDisabled - Whether checkbox should be disabled\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis._state().disabled.set(isDisabled);\n\t\tthis._cdr.markForCheck();\n\t}\n}\n\ntype BrnCheckboxValue = boolean | 'indeterminate';\n","import { BrnCheckbox } from './lib/brn-checkbox';\n\nexport * from './lib/brn-checkbox';\n\nexport const BrnCheckboxImports = [BrnCheckbox] 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-checkbox.mjs","sources":["../../../../libs/brain/checkbox/src/lib/brn-checkbox.ts","../../../../libs/brain/checkbox/src/index.ts","../../../../libs/brain/checkbox/src/spartan-ng-brain-checkbox.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterContentInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tmodel,\n\ttype OnDestroy,\n\toutput,\n\tPLATFORM_ID,\n\tRenderer2,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\n\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnCheckbox),\n\tmulti: true,\n};\n\nlet uniqueIdCounter = 0;\n\nconst CONTAINER_POST_FIX = '-checkbox';\n\n@Component({\n\tselector: 'brn-checkbox',\n\ttemplate: `\n\t\t<button\n\t\t\t#checkBox\n\t\t\trole=\"checkbox\"\n\t\t\ttype=\"button\"\n\t\t\t[id]=\"getCheckboxButtonId(_state().id) ?? ''\"\n\t\t\t[name]=\"getCheckboxButtonId(_state().name) ?? ''\"\n\t\t\t[class]=\"class()\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t\t[attr.aria-label]=\"ariaLabel() || null\"\n\t\t\t[attr.aria-labelledby]=\"mutableAriaLabelledby() || null\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby() || null\"\n\t\t\t[attr.data-state]=\"_dataState()\"\n\t\t\t[attr.data-focus-visible]=\"_focusVisible()\"\n\t\t\t[attr.data-focus]=\"_focused()\"\n\t\t\t[attr.data-disabled]=\"_state().disabled()\"\n\t\t\t[disabled]=\"_state().disabled()\"\n\t\t\t[tabIndex]=\"_state().disabled() ? -1 : 0\"\n\t\t\t(click)=\"$event.preventDefault(); toggle()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</button>\n\t`,\n\thost: {\n\t\t'[style]': '{display: \"contents\"}',\n\t\t'[attr.id]': '_state().id',\n\t\t'[attr.name]': '_state().name',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-focus-visible]': '_focusVisible()',\n\t\t'[attr.data-focus]': '_focused()',\n\t\t'[attr.data-disabled]': '_state().disabled()',\n\t},\n\tproviders: [BRN_CHECKBOX_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCheckbox implements ControlValueAccessor, AfterContentInit, OnDestroy {\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _cdr = inject(ChangeDetectorRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n\tprotected readonly _focusVisible = signal(false);\n\tprotected readonly _focused = signal(false);\n\n\t/**\n\t * Current checked state of checkbox.\n\t * Can be boolean (true/false) or 'indeterminate'.\n\t * Can be bound with [(checked)] for two-way binding.\n\t */\n\tpublic readonly checked = model<BrnCheckboxValue>(false);\n\n\t/** Emits when checked state changes. */\n\tpublic readonly checkedChange = output<BrnCheckboxValue>();\n\n\t/**\n\t * Read-only signal of current checkbox state.\n\t * Use this when you only need to read state without changing it.\n\t */\n\tpublic readonly isChecked = this.checked.asReadonly();\n\n\t/**\n\t * Computed data-state attribute value based on checked state.\n\t * Returns 'checked', 'unchecked', or 'indeterminate'.\n\t */\n\tprotected readonly _dataState = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'indeterminate';\n\t\treturn checked ? 'checked' : 'unchecked';\n\t});\n\n\t/**\n\t * Computed aria-checked attribute value for accessibility.\n\t * Returns 'true', 'false', or 'mixed' (for indeterminate).\n\t */\n\tprotected readonly _ariaChecked = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'mixed';\n\t\treturn checked ? 'true' : 'false';\n\t});\n\n\t/**\n\t * Unique identifier for checkbox component.\n\t * When provided, inner button gets ID without '-checkbox' suffix.\n\t * Auto-generates ID if not provided.\n\t */\n\tpublic readonly id = input<string | null>(++uniqueIdCounter + '');\n\n\t/**\n\t * Form control name for checkbox.\n\t * When provided, inner button gets name without '-checkbox' suffix.\n\t */\n\tpublic readonly name = input<string | null>(null);\n\n\t/**\n\t * CSS classes applied to inner button element.\n\t */\n\tpublic readonly class = input<string | null>(null);\n\n\t/**\n\t * Accessibility label for screen readers.\n\t * Use when no visible label exists.\n\t */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/**\n\t * ID of element that labels this checkbox for accessibility.\n\t * Auto-set when checkbox is inside label element.\n\t */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\tpublic readonly mutableAriaLabelledby = linkedSignal(() => this.ariaLabelledby());\n\n\t/**\n\t * ID of element that describes this checkbox for accessibility.\n\t */\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\t/**\n\t * Whether checkbox is required in a form.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Whether checkbox is disabled.\n\t * Disabled checkboxes cannot be toggled and indicate disabled state through data-disabled attribute.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Computed state for checkbox container and accessibility.\n\t * Manages ID, name, and disabled state.\n\t */\n\tprotected readonly _state = computed(() => {\n\t\tconst name = this.name();\n\t\tconst id = this.id();\n\t\treturn {\n\t\t\tdisabled: signal(this.disabled()),\n\t\t\tname: name ? name + CONTAINER_POST_FIX : null,\n\t\t\tid: id ? id + CONTAINER_POST_FIX : null,\n\t\t};\n\t});\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected _onChange: ChangeFn<BrnCheckboxValue> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\t/**\n\t * Reference to the checkbox button element in the template.\n\t */\n\tpublic readonly checkbox = viewChild.required<ElementRef<HTMLButtonElement>>('checkBox');\n\n\t/**\n\t * Event emitted when checkbox is blurred (loses focus).\n\t * Used for form validation.\n\t */\n\tpublic readonly touched = output<void>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tconst isDisabled = state.disabled();\n\n\t\t\tif (!this._elementRef.nativeElement || !this._isBrowser) return;\n\n\t\t\tconst newLabelId = state.id + '-label';\n\t\t\tconst checkboxButtonId = this.getCheckboxButtonId(state.id);\n\t\t\tconst labelElement =\n\t\t\t\tthis._elementRef.nativeElement.closest('label') ??\n\t\t\t\tthis._document.querySelector(`label[for=\"${checkboxButtonId}\"]`);\n\n\t\t\tif (!labelElement) return;\n\t\t\tconst existingLabelId = labelElement.id;\n\n\t\t\tthis._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n\t\t\tthis.mutableAriaLabelledby.set(existingLabelId || newLabelId);\n\n\t\t\tif (!existingLabelId || existingLabelId.length === 0) {\n\t\t\t\tthis._renderer.setAttribute(labelElement, 'id', newLabelId);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggles checkbox between checked/unchecked states.\n\t * If checkbox is indeterminate, sets to checked.\n\t * Does nothing if checkbox is disabled.\n\t */\n\ttoggle() {\n\t\tif (this._state().disabled()) return;\n\n\t\tthis._onTouched();\n\t\tthis.touched.emit();\n\n\t\tconst previousChecked = this.checked();\n\t\tthis.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);\n\t\tthis._onChange(this.checked());\n\t\tthis.checkedChange.emit(this.checked());\n\t}\n\n\tngAfterContentInit() {\n\t\tthis._focusMonitor\n\t\t\t.monitor(this._elementRef, true)\n\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe((focusOrigin) => {\n\t\t\t\tif (focusOrigin) this._focused.set(true);\n\t\t\t\tif (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n\t\t\t\t\tthis._focusVisible.set(true);\n\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t}\n\t\t\t\tif (!focusOrigin) {\n\t\t\t\t\t// When a focused element becomes disabled, the browser *immediately* fires a blur event.\n\t\t\t\t\t// Angular does not expect events to be raised during change detection, so any state\n\t\t\t\t\t// change (such as a form control's ng-touched) will cause a changed-after-checked error.\n\t\t\t\t\t// See https://github.com/angular/angular/issues/17793. To work around this, we defer\n\t\t\t\t\t// telling the form control it has been touched until the next tick.\n\t\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\t\tthis._focusVisible.set(false);\n\t\t\t\t\t\tthis._focused.set(false);\n\t\t\t\t\t\tthis._onTouched();\n\t\t\t\t\t\tthis.touched.emit();\n\t\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/**\n\t * Gets proper ID for inner button element.\n\t * Removes '-checkbox' suffix if present in container ID.\n\t *\n\t * @param idPassedToContainer - ID applied to container element\n\t * @returns ID to use for inner button or null\n\t */\n\tprotected getCheckboxButtonId(idPassedToContainer: string | null | undefined): string | null {\n\t\treturn idPassedToContainer ? idPassedToContainer.replace(CONTAINER_POST_FIX, '') : null;\n\t}\n\n\t/**\n\t * Updates internal state when control value changes from outside.\n\t * Handles boolean and 'indeterminate' values.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param value - New checkbox state (true/false/'indeterminate')\n\t */\n\twriteValue(value: BrnCheckboxValue): void {\n\t\tif (value === 'indeterminate') {\n\t\t\tthis.checked.set('indeterminate');\n\t\t} else {\n\t\t\tthis.checked.set(value);\n\t\t}\n\t}\n\n\t/**\n\t * Registers callback for value changes.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when value changes\n\t */\n\tregisterOnChange(fn: ChangeFn<BrnCheckboxValue>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\t/**\n\t * Registers callback for touched events.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when control is touched\n\t */\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\t/**\n\t * Updates disabled state from form control.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param isDisabled - Whether checkbox should be disabled\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis._state().disabled.set(isDisabled);\n\t\tthis._cdr.markForCheck();\n\t}\n}\n\ntype BrnCheckboxValue = boolean | 'indeterminate';\n","import { BrnCheckbox } from './lib/brn-checkbox';\n\nexport * from './lib/brn-checkbox';\n\nexport const BrnCheckboxImports = [BrnCheckbox] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AA6BO,MAAM,2BAA2B,GAAG;AAC1C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,WAAW,CAAC;AAC1C,IAAA,KAAK,EAAE,IAAI;;AAGZ,IAAI,eAAe,GAAG,CAAC;AAEvB,MAAM,kBAAkB,GAAG,WAAW;MA0CzB,WAAW,CAAA;AACN,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;AACzD,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEjD,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAE3C;;;;AAIG;AACa,IAAA,OAAO,GAAG,KAAK,CAAmB,KAAK,CAAC;;IAGxC,aAAa,GAAG,MAAM,EAAoB;AAE1D;;;AAGG;AACa,IAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAErD;;;AAGG;AACgB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,eAAe;AAAE,YAAA,OAAO,eAAe;QACvD,OAAO,OAAO,GAAG,SAAS,GAAG,WAAW;AACzC,KAAC,CAAC;AAEF;;;AAGG;AACgB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,eAAe;AAAE,YAAA,OAAO,OAAO;QAC/C,OAAO,OAAO,GAAG,MAAM,GAAG,OAAO;AAClC,KAAC,CAAC;AAEF;;;;AAIG;IACa,EAAE,GAAG,KAAK,CAAgB,EAAE,eAAe,GAAG,EAAE,CAAC;AAEjE;;;AAGG;AACa,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC;AAEjD;;AAEG;AACa,IAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,CAAC;AAElD;;;AAGG;IACa,SAAS,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAE/E;;;AAGG;IACa,cAAc,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACzE,qBAAqB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAEjF;;AAEG;IACa,eAAe,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AAE3F;;AAEG;IACa,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE/F;;;AAGG;IACa,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE/F;;;AAGG;AACgB,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;QACpB,OAAO;AACN,YAAA,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI;YAC7C,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,kBAAkB,GAAG,IAAI;SACvC;AACF,KAAC,CAAC;;AAGQ,IAAA,SAAS,GAA+B,MAAK,GAAG;;AAElD,IAAA,UAAU,GAAY,MAAK,GAAG;AAEtC;;AAEG;AACa,IAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAgC,UAAU,CAAC;AAExF;;;AAGG;IACa,OAAO,GAAG,MAAM,EAAQ;AAExC,IAAA,WAAA,GAAA;QACC,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC3B,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE;YAEnC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE;AAEzD,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,GAAG,QAAQ;YACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,YAAY,GACjB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA,WAAA,EAAc,gBAAgB,CAAA,EAAA,CAAI,CAAC;AAEjE,YAAA,IAAI,CAAC,YAAY;gBAAE;AACnB,YAAA,MAAM,eAAe,GAAG,YAAY,CAAC,EAAE;AAEvC,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;YACzF,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,eAAe,IAAI,UAAU,CAAC;YAE7D,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC;;AAE7D,SAAC,CAAC;;AAGH;;;;AAIG;IACH,MAAM,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAAE;QAE9B,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAEnB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;IAGxC,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC;AACH,aAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI;AAC9B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AAC1B,YAAA,IAAI,WAAW;AAAE,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACxC,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,SAAS,EAAE;AAC5D,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;YAEzB,IAAI,CAAC,WAAW,EAAE;;;;;;AAMjB,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC3B,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACzB,iBAAC,CAAC;;AAEJ,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGpD;;;;;;AAMG;AACO,IAAA,mBAAmB,CAAC,mBAA8C,EAAA;AAC3E,QAAA,OAAO,mBAAmB,GAAG,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,GAAG,IAAI;;AAGxF;;;;;;AAMG;AACH,IAAA,UAAU,CAAC,KAAuB,EAAA;AACjC,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;;aAC3B;AACN,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;;AAIzB;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,EAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGpB;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,EAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGrB;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;0HA5Pb,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,yBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EAHZ,CAAC,2BAA2B,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnC9B;;;;;;;;;;;;;;;;;;;;;;AAsBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAgBW,WAAW,EAAA,UAAA,EAAA,CAAA;kBAxCvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;AAsBT,CAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,uBAAuB;AAClC,wBAAA,WAAW,EAAE,aAAa;AAC1B,wBAAA,aAAa,EAAE,eAAe;AAC9B,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,yBAAyB,EAAE,MAAM;AACjC,wBAAA,mBAAmB,EAAE,cAAc;AACnC,wBAAA,2BAA2B,EAAE,iBAAiB;AAC9C,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,qBAAA;oBACD,SAAS,EAAE,CAAC,2BAA2B,CAAC;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,iBAAA;;;AC1EM,MAAM,kBAAkB,GAAG,CAAC,WAAW;;ACJ9C;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, model, signal } from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\n\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\thost: {\n\t\t'[attr.data-state]': 'expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': 'disabled() ? true : undefined',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCollapsible {\n\tpublic readonly contentId = signal(`brn-collapsible-content-${++collapsibleContentIdSequence}`);\n\n\t/**\n\t * The expanded or collapsed state of the collapsible component.\n\t */\n\tpublic readonly expanded = model<boolean>(false);\n\n\t/**\n\t * The disabled state of the collapsible component.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Toggles the expanded state of the collapsible component.\n\t */\n\tpublic toggle(): void {\n\t\tthis.expanded.update((expanded) => !expanded);\n\t}\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tOnInit,\n\tPLATFORM_ID,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnCollapsible } from './brn-collapsible';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\thost: {\n\t\t'[hidden]': '!_collapsible?.expanded()',\n\t\t'[attr.data-state]': '_collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[id]': '_collapsible?.contentId()',\n\t\t'[style.--brn-collapsible-content-width.px]': '_width()',\n\t\t'[style.--brn-collapsible-content-height.px]': '_height()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCollapsibleContent implements OnInit {\n\tprotected readonly _collapsible = inject(BrnCollapsible, { optional: true });\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\t/**\n\t * The id of the collapsible content element.\n\t */\n\tpublic readonly id = input<string | null | undefined>();\n\tprotected readonly _width = signal<number | null>(null);\n\tprotected readonly _height = signal<number | null>(null);\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this._collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tif (isPlatformServer(this._platformId)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// ensure the element is not hidden when measuring its size\n\t\tthis._elementRef.nativeElement.hidden = false;\n\n\t\tconst { width, height } = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tthis._width.set(width);\n\t\tthis._height.set(height);\n\n\t\t// we force the element to be hidden again if collapsed after measuring its size\n\t\t// this is handled by the host binding, but it can cause a flicker if we don't do this here manually\n\t\tthis._elementRef.nativeElement.hidden = this._collapsible?.expanded() ?? false;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnCollapsible } from './brn-collapsible';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\thost: {\n\t\t'[attr.data-state]': '_collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': '_collapsible?.disabled() ? true : undefined',\n\t\t'[attr.aria-expanded]': '_collapsible?.expanded()',\n\t\t'[attr.aria-controls]': '_collapsible?.contentId()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnCollapsibleTrigger {\n\tprotected readonly _collapsible = inject(BrnCollapsible, { optional: true });\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggle(): void {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { BrnCollapsible } from './lib/brn-collapsible';\nimport { BrnCollapsibleContent } from './lib/brn-collapsible-content';\nimport { BrnCollapsibleTrigger } from './lib/brn-collapsible-trigger';\n\nexport * from './lib/brn-collapsible';\nexport * from './lib/brn-collapsible-content';\nexport * from './lib/brn-collapsible-trigger';\n\nexport const BrnCollapsibleImports = [BrnCollapsible, BrnCollapsibleTrigger, BrnCollapsibleContent] 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-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import type { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, model, signal } from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\n\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\thost: {\n\t\t'[attr.data-state]': 'expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': 'disabled() ? true : undefined',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCollapsible {\n\tpublic readonly contentId = signal(`brn-collapsible-content-${++collapsibleContentIdSequence}`);\n\n\t/**\n\t * The expanded or collapsed state of the collapsible component.\n\t */\n\tpublic readonly expanded = model<boolean>(false);\n\n\t/**\n\t * The disabled state of the collapsible component.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Toggles the expanded state of the collapsible component.\n\t */\n\tpublic toggle(): void {\n\t\tthis.expanded.update((expanded) => !expanded);\n\t}\n}\n","import { isPlatformServer } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\ttype OnInit,\n\tPLATFORM_ID,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnCollapsible } from './brn-collapsible';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\thost: {\n\t\t'[hidden]': '!_collapsible?.expanded()',\n\t\t'[attr.data-state]': '_collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[id]': '_collapsible?.contentId()',\n\t\t'[style.--brn-collapsible-content-width.px]': '_width()',\n\t\t'[style.--brn-collapsible-content-height.px]': '_height()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCollapsibleContent implements OnInit {\n\tprotected readonly _collapsible = inject(BrnCollapsible, { optional: true });\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\t/**\n\t * The id of the collapsible content element.\n\t */\n\tpublic readonly id = input<string | null | undefined>();\n\tprotected readonly _width = signal<number | null>(null);\n\tprotected readonly _height = signal<number | null>(null);\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this._collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tif (isPlatformServer(this._platformId)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// ensure the element is not hidden when measuring its size\n\t\tthis._elementRef.nativeElement.hidden = false;\n\n\t\tconst { width, height } = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tthis._width.set(width);\n\t\tthis._height.set(height);\n\n\t\t// we force the element to be hidden again if collapsed after measuring its size\n\t\t// this is handled by the host binding, but it can cause a flicker if we don't do this here manually\n\t\tthis._elementRef.nativeElement.hidden = this._collapsible?.expanded() ?? false;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnCollapsible } from './brn-collapsible';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\thost: {\n\t\t'[attr.data-state]': '_collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': '_collapsible?.disabled() ? true : undefined',\n\t\t'[attr.aria-expanded]': '_collapsible?.expanded()',\n\t\t'[attr.aria-controls]': '_collapsible?.contentId()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnCollapsibleTrigger {\n\tprotected readonly _collapsible = inject(BrnCollapsible, { optional: true });\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggle(): void {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { BrnCollapsible } from './lib/brn-collapsible';\nimport { BrnCollapsibleContent } from './lib/brn-collapsible-content';\nimport { BrnCollapsibleTrigger } from './lib/brn-collapsible-trigger';\n\nexport * from './lib/brn-collapsible';\nexport * from './lib/brn-collapsible-content';\nexport * from './lib/brn-collapsible-trigger';\n\nexport const BrnCollapsibleImports = [BrnCollapsible, BrnCollapsibleTrigger, BrnCollapsibleContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-command.mjs","sources":["../../../../libs/brain/command/src/lib/brn-command-item.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.token.ts","../../../../libs/brain/command/src/lib/brn-command.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.ts","../../../../libs/brain/command/src/lib/brn-command.ts","../../../../libs/brain/command/src/lib/brn-command-empty.ts","../../../../libs/brain/command/src/lib/brn-command-group.ts","../../../../libs/brain/command/src/lib/brn-command-item.ts","../../../../libs/brain/command/src/lib/brn-command-list.ts","../../../../libs/brain/command/src/index.ts","../../../../libs/brain/command/src/spartan-ng-brain-command.ts"],"sourcesContent":["import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandItem } from './brn-command-item';\n\nexport const BrnCommandItemToken = new InjectionToken<BrnCommandItem>('BrnCommandItemToken');\n\nexport function provideBrnCommandItem(command: Type<BrnCommandItem>): ExistingProvider {\n\treturn { provide: BrnCommandItemToken, useExisting: command };\n}\n","import { ExistingProvider, InjectionToken, Type } from '@angular/core';\nimport type { BrnCommandSearchInput } from './brn-command-search-input';\n\nexport const BrnCommandSearchInputToken = new InjectionToken<BrnCommandSearchInput>('BrnCommandSearchInputToken');\n\nexport function provideBrnCommandSearchInput(command: Type<BrnCommandSearchInput>): ExistingProvider {\n\treturn { provide: BrnCommandSearchInputToken, useExisting: command };\n}\n","import { ExistingProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport type { BrnCommand } from './brn-command';\n\nexport const BrnCommandToken = new InjectionToken<BrnCommand>('BrnCommandToken');\n\nexport function provideBrnCommand(command: Type<BrnCommand>): ExistingProvider {\n\treturn { provide: BrnCommandToken, useExisting: command };\n}\n\nexport function injectBrnCommand(): BrnCommand {\n\treturn inject(BrnCommandToken);\n}\n\n// config\nexport type CommandFilter = (value: string, search: string) => boolean;\n\nexport interface BrnCommandConfig {\n\tfilter: CommandFilter;\n}\n\nconst defaultConfig: BrnCommandConfig = {\n\tfilter: (value: string, search: string) => value.toLowerCase().includes(search.toLowerCase()),\n};\n\nconst BrnCommandConfigToken = new InjectionToken<BrnCommandConfig>('BrnCommandConfig');\n\nexport function provideBrnCommandConfig(config: Partial<BrnCommandConfig>): ValueProvider {\n\treturn { provide: BrnCommandConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectBrnCommandConfig(): BrnCommandConfig {\n\treturn inject(BrnCommandConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import {\n\tcomputed,\n\tDirective,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tInject,\n\tinput,\n\tOptional,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { COMPOSITION_BUFFER_MODE, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { startWith } from 'rxjs/operators';\nimport { provideBrnCommandSearchInput } from './brn-command-search-input.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'input[brnCommandSearchInput]',\n\tproviders: [\n\t\tprovideBrnCommandSearchInput(BrnCommandSearchInput),\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => BrnCommandSearchInput),\n\t\t\tmulti: true,\n\t\t},\n\t],\n\thost: {\n\t\trole: 'combobox',\n\t\t'aria-autocomplete': 'list',\n\t\t'[attr.aria-activedescendant]': '_activeDescendant()',\n\t\t'(keydown)': 'onKeyDown($event)',\n\t\t'(input)': 'onInput()',\n\t},\n})\nexport class BrnCommandSearchInput extends DefaultValueAccessor {\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** The initial value of the search input */\n\tpublic readonly value = input<string>('');\n\n\t/** @internal The mutable value of the search input */\n\tpublic readonly mutableValue = computed(() => signal(this.value()));\n\n\t/** @internal The \"real\" value of the search input */\n\tpublic readonly valueState = computed(() => this.mutableValue()());\n\n\t/** The id of the active option */\n\tprotected readonly _activeDescendant = signal<string | undefined>(undefined);\n\n\tconstructor(\n\t\trenderer: Renderer2,\n\t\tprivate readonly elementRef: ElementRef,\n\t\t@Optional() @Inject(COMPOSITION_BUFFER_MODE) compositionMode: boolean,\n\t) {\n\t\tsuper(renderer, elementRef, compositionMode);\n\t\tthis._command.keyManager.change\n\t\t\t.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())\n\t\t\t.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));\n\t\teffect(() => {\n\t\t\tthis.elementRef.nativeElement.value = this.valueState();\n\t\t});\n\t}\n\t/** Listen for changes to the input value */\n\tprotected onInput(): void {\n\t\tthis.mutableValue().set(this.elementRef.nativeElement.value);\n\t}\n\n\t/** Listen for keydown events */\n\tprotected onKeyDown(event: KeyboardEvent): void {\n\t\tthis._command.keyManager.onKeydown(event);\n\t}\n\n\t/** CONROL VALUE ACCESSOR */\n\toverride writeValue(value: string | null): void {\n\t\tsuper.writeValue(value);\n\t\tif (value) {\n\t\t\tthis.mutableValue().set(value);\n\t\t}\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tAfterViewInit,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnCommandItemToken } from './brn-command-item.token';\nimport { BrnCommandSearchInput } from './brn-command-search-input';\nimport { CommandFilter, injectBrnCommandConfig, provideBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommand]',\n\tproviders: [provideBrnCommand(BrnCommand)],\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(keydown.enter)': 'selectActiveItem()',\n\t},\n})\nexport class BrnCommand implements AfterViewInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _injector = inject(Injector);\n\n\tprivate readonly _config = injectBrnCommandConfig();\n\n\t/** The id of the command */\n\tpublic readonly id = input<string>(`brn-command-${++BrnCommand._id}`);\n\n\t/** A custom filter function to use when searching. */\n\tpublic readonly filter = input<CommandFilter>(this._config.filter);\n\n\t/** when the selection has changed */\n\tpublic readonly valueChange = output<string>();\n\n\t/** @internal The search query */\n\tpublic readonly search = computed(() => this._searchInput()?.valueState() ?? '');\n\n\t/** Access the search input if present */\n\tprivate readonly _searchInput = contentChild(BrnCommandSearchInput, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal Access all the items within the command */\n\tpublic readonly items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal The key manager for managing active descendant */\n\tpublic readonly keyManager = new ActiveDescendantKeyManager(this.items, this._injector);\n\n\tconstructor() {\n\t\tthis.keyManager\n\t\t\t.withVerticalOrientation()\n\t\t\t.withHomeAndEnd()\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((item) => item.disabled || !item.visible());\n\n\t\t// When clearing the search input we also want to reset the active item to the first one\n\t\teffect(() => {\n\t\t\tconst searchInput = this.search();\n\t\t\tuntracked(() => {\n\t\t\t\tconst activeItemIsVisible = this.keyManager.activeItem?.visible();\n\t\t\t\tif ((searchInput !== undefined && searchInput.length === 0) || !activeItemIsVisible) {\n\t\t\t\t\tthis.keyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tconst value = this.keyManager.activeItem?.safeValue();\n\t\t\tif (value) {\n\t\t\t\tthis.valueChange.emit(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platform) && this.items().length) {\n\t\t\tthis.keyManager.setActiveItem(0);\n\t\t}\n\t}\n\n\tprotected selectActiveItem(): void {\n\t\tthis.keyManager.activeItem?.selected.emit();\n\t}\n}\n","import { computed, Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommandEmpty]',\n})\nexport class BrnCommandEmpty {\n\tprivate readonly _templateRef = inject<TemplateRef<void>>(TemplateRef);\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** Determine if the command has any visible items */\n\tprivate readonly _visible = computed(() => this._command.items().some((item) => item.visible()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this._visible()) {\n\t\t\t\tthis._viewContainerRef.clear();\n\t\t\t} else {\n\t\t\t\tthis._viewContainerRef.createEmbeddedView(this._templateRef);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { computed, contentChildren, Directive, input } from '@angular/core';\nimport { BrnCommandItemToken } from './brn-command-item.token';\n\n@Directive({\n\tselector: '[brnCommandGroup]',\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.data-hidden]': '!_visible() ? \"\" : null',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandGroup {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-group-${++BrnCommandGroup._id}`);\n\n\t/** Get the items in the group */\n\tprivate readonly _items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** Determine if there are any visible items in the group */\n\tprotected readonly _visible = computed(() => this._items().some((item) => item.visible()));\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\tOnInit,\n\toutput,\n\tPLATFORM_ID,\n\tsignal,\n} from '@angular/core';\nimport { provideBrnCommandItem } from './brn-command-item.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'button[brnCommandItem]',\n\tproviders: [provideBrnCommandItem(BrnCommandItem)],\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'option',\n\t\ttabIndex: '-1',\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': '_disabled() ? true : null',\n\t\t'[attr.data-disabled]': '_disabled() ? \"\" : null',\n\t\t'[attr.data-value]': 'value()',\n\t\t'[attr.data-hidden]': \"!visible() ? '' : null\",\n\t\t'[attr.aria-selected]': '_active()',\n\t\t'[attr.data-selected]': \"_active() ? '' : null\",\n\t\t'(click)': 'onClick()',\n\t\t'(mouseenter)': 'activate()',\n\t},\n})\nexport class BrnCommandItem implements Highlightable, OnInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t/** Access the command component */\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** A unique id for the item */\n\tpublic readonly id = input(`brn-command-item-${++BrnCommandItem._id}`);\n\n\t/** The value this item represents. */\n\tpublic readonly value = input.required<string>();\n\n\t/** Whether the item is disabled. */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Expose disabled as a value - used by the Highlightable interface */\n\tpublic get disabled() {\n\t\treturn this._disabled();\n\t}\n\n\t/** Whether the item is initialized, this is to prevent accessing the value-input before the component is initialized.\n\t * The brn-command-empty directive accesses the value before the component is initialized, which causes an error.\n\t */\n\tprivate readonly _initialized = signal(false);\n\n\t/** Whether the item is selected. */\n\tprotected readonly _active = signal(false);\n\n\t/** Emits when the item is selected. */\n\tpublic readonly selected = output<void>();\n\n\t/** @internal Determine if this item is visible based on the current search query */\n\tpublic readonly visible = computed(() => {\n\t\treturn this._command.filter()(this.safeValue(), this._command.search());\n\t});\n\n\t/** @internal Get the value of the item, with check if it has been initialized to avoid errors */\n\tpublic safeValue = computed(() => {\n\t\tif (!this._initialized()) {\n\t\t\treturn '';\n\t\t}\n\t\treturn this.value();\n\t});\n\n\t/** @internal Get the display value */\n\tpublic getLabel(): string {\n\t\treturn this.safeValue();\n\t}\n\n\t/** @internal */\n\tsetActiveStyles(): void {\n\t\tthis._active.set(true);\n\n\t\t// ensure the item is in view\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t\t}\n\t}\n\n\t/** @internal */\n\tsetInactiveStyles(): void {\n\t\tthis._active.set(false);\n\t}\n\n\tprotected onClick(): void {\n\t\tthis._command.keyManager.setActiveItem(this);\n\t\tthis.selected.emit();\n\t}\n\n\tprotected activate(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._command.keyManager.setActiveItem(this);\n\t}\n\n\tngOnInit(): void {\n\t\tthis._initialized.set(true);\n\t}\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n\tselector: '[brnCommandList]',\n\thost: {\n\t\trole: 'listbox',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandList {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-list-${++BrnCommandList._id}`);\n}\n","import { BrnCommand } from './lib/brn-command';\nimport { BrnCommandEmpty } from './lib/brn-command-empty';\nimport { BrnCommandGroup } from './lib/brn-command-group';\nimport { BrnCommandItem } from './lib/brn-command-item';\nimport { BrnCommandList } from './lib/brn-command-list';\nimport { BrnCommandSearchInput } from './lib/brn-command-search-input';\n\nexport * from './lib/brn-command';\nexport * from './lib/brn-command-empty';\nexport * from './lib/brn-command-group';\nexport * from './lib/brn-command-item';\nexport * from './lib/brn-command-item.token';\nexport * from './lib/brn-command-list';\nexport * from './lib/brn-command-search-input';\nexport * from './lib/brn-command-search-input.token';\nexport * from './lib/brn-command.token';\n\nexport const BrnCommandImports = [\n\tBrnCommandEmpty,\n\tBrnCommandGroup,\n\tBrnCommandItem,\n\tBrnCommandList,\n\tBrnCommandSearchInput,\n\tBrnCommand,\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-command.mjs","sources":["../../../../libs/brain/command/src/lib/brn-command-item.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.token.ts","../../../../libs/brain/command/src/lib/brn-command.token.ts","../../../../libs/brain/command/src/lib/brn-command-search-input.ts","../../../../libs/brain/command/src/lib/brn-command.ts","../../../../libs/brain/command/src/lib/brn-command-empty.ts","../../../../libs/brain/command/src/lib/brn-command-group.ts","../../../../libs/brain/command/src/lib/brn-command-item.ts","../../../../libs/brain/command/src/lib/brn-command-list.ts","../../../../libs/brain/command/src/index.ts","../../../../libs/brain/command/src/spartan-ng-brain-command.ts"],"sourcesContent":["import { type ExistingProvider, InjectionToken, type Type } from '@angular/core';\nimport type { BrnCommandItem } from './brn-command-item';\n\nexport const BrnCommandItemToken = new InjectionToken<BrnCommandItem>('BrnCommandItemToken');\n\nexport function provideBrnCommandItem(command: Type<BrnCommandItem>): ExistingProvider {\n\treturn { provide: BrnCommandItemToken, useExisting: command };\n}\n","import { type ExistingProvider, InjectionToken, type Type } from '@angular/core';\nimport type { BrnCommandSearchInput } from './brn-command-search-input';\n\nexport const BrnCommandSearchInputToken = new InjectionToken<BrnCommandSearchInput>('BrnCommandSearchInputToken');\n\nexport function provideBrnCommandSearchInput(command: Type<BrnCommandSearchInput>): ExistingProvider {\n\treturn { provide: BrnCommandSearchInputToken, useExisting: command };\n}\n","import { type ExistingProvider, inject, InjectionToken, type Type, type ValueProvider } from '@angular/core';\nimport type { BrnCommand } from './brn-command';\n\nexport const BrnCommandToken = new InjectionToken<BrnCommand>('BrnCommandToken');\n\nexport function provideBrnCommand(command: Type<BrnCommand>): ExistingProvider {\n\treturn { provide: BrnCommandToken, useExisting: command };\n}\n\nexport function injectBrnCommand(): BrnCommand {\n\treturn inject(BrnCommandToken);\n}\n\n// config\nexport type CommandFilter = (value: string, search: string) => boolean;\n\nexport interface BrnCommandConfig {\n\tfilter: CommandFilter;\n}\n\nconst defaultConfig: BrnCommandConfig = {\n\tfilter: (value: string, search: string) => value.toLowerCase().includes(search.toLowerCase()),\n};\n\nconst BrnCommandConfigToken = new InjectionToken<BrnCommandConfig>('BrnCommandConfig');\n\nexport function provideBrnCommandConfig(config: Partial<BrnCommandConfig>): ValueProvider {\n\treturn { provide: BrnCommandConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectBrnCommandConfig(): BrnCommandConfig {\n\treturn inject(BrnCommandConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import {\n\tcomputed,\n\tDirective,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tInject,\n\tinput,\n\tOptional,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { COMPOSITION_BUFFER_MODE, DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { startWith } from 'rxjs/operators';\nimport { provideBrnCommandSearchInput } from './brn-command-search-input.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'input[brnCommandSearchInput]',\n\tproviders: [\n\t\tprovideBrnCommandSearchInput(BrnCommandSearchInput),\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => BrnCommandSearchInput),\n\t\t\tmulti: true,\n\t\t},\n\t],\n\thost: {\n\t\trole: 'combobox',\n\t\t'aria-autocomplete': 'list',\n\t\t'[attr.aria-activedescendant]': '_activeDescendant()',\n\t\t'(keydown)': 'onKeyDown($event)',\n\t\t'(input)': 'onInput()',\n\t},\n})\nexport class BrnCommandSearchInput extends DefaultValueAccessor {\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** The initial value of the search input */\n\tpublic readonly value = input<string>('');\n\n\t/** @internal The mutable value of the search input */\n\tpublic readonly mutableValue = computed(() => signal(this.value()));\n\n\t/** @internal The \"real\" value of the search input */\n\tpublic readonly valueState = computed(() => this.mutableValue()());\n\n\t/** The id of the active option */\n\tprotected readonly _activeDescendant = signal<string | undefined>(undefined);\n\n\tconstructor(\n\t\trenderer: Renderer2,\n\t\tprivate readonly elementRef: ElementRef,\n\t\t@Optional() @Inject(COMPOSITION_BUFFER_MODE) compositionMode: boolean,\n\t) {\n\t\tsuper(renderer, elementRef, compositionMode);\n\t\tthis._command.keyManager.change\n\t\t\t.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())\n\t\t\t.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));\n\t\teffect(() => {\n\t\t\tthis.elementRef.nativeElement.value = this.valueState();\n\t\t});\n\t}\n\t/** Listen for changes to the input value */\n\tprotected onInput(): void {\n\t\tthis.mutableValue().set(this.elementRef.nativeElement.value);\n\t}\n\n\t/** Listen for keydown events */\n\tprotected onKeyDown(event: KeyboardEvent): void {\n\t\tthis._command.keyManager.onKeydown(event);\n\t}\n\n\t/** CONROL VALUE ACCESSOR */\n\toverride writeValue(value: string | null): void {\n\t\tsuper.writeValue(value);\n\t\tif (value) {\n\t\t\tthis.mutableValue().set(value);\n\t\t}\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tDirective,\n\teffect,\n\tinject,\n\tInjector,\n\tinput,\n\toutput,\n\tPLATFORM_ID,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnCommandItemToken } from './brn-command-item.token';\nimport { BrnCommandSearchInput } from './brn-command-search-input';\nimport { type CommandFilter, injectBrnCommandConfig, provideBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommand]',\n\tproviders: [provideBrnCommand(BrnCommand)],\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'(keydown.enter)': 'selectActiveItem()',\n\t},\n})\nexport class BrnCommand implements AfterViewInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _injector = inject(Injector);\n\n\tprivate readonly _config = injectBrnCommandConfig();\n\n\t/** The id of the command */\n\tpublic readonly id = input<string>(`brn-command-${++BrnCommand._id}`);\n\n\t/** A custom filter function to use when searching. */\n\tpublic readonly filter = input<CommandFilter>(this._config.filter);\n\n\t/** when the selection has changed */\n\tpublic readonly valueChange = output<string>();\n\n\t/** @internal The search query */\n\tpublic readonly search = computed(() => this._searchInput()?.valueState() ?? '');\n\n\t/** Access the search input if present */\n\tprivate readonly _searchInput = contentChild(BrnCommandSearchInput, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal Access all the items within the command */\n\tpublic readonly items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** @internal The key manager for managing active descendant */\n\tpublic readonly keyManager = new ActiveDescendantKeyManager(this.items, this._injector);\n\n\tconstructor() {\n\t\tthis.keyManager\n\t\t\t.withVerticalOrientation()\n\t\t\t.withHomeAndEnd()\n\t\t\t.withWrap()\n\t\t\t.skipPredicate((item) => item.disabled || !item.visible());\n\n\t\t// When clearing the search input we also want to reset the active item to the first one\n\t\teffect(() => {\n\t\t\tconst searchInput = this.search();\n\t\t\tuntracked(() => {\n\t\t\t\tconst activeItemIsVisible = this.keyManager.activeItem?.visible();\n\t\t\t\tif ((searchInput !== undefined && searchInput.length === 0) || !activeItemIsVisible) {\n\t\t\t\t\tthis.keyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.keyManager.change.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tconst value = this.keyManager.activeItem?.safeValue();\n\t\t\tif (value) {\n\t\t\t\tthis.valueChange.emit(value);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platform) && this.items().length) {\n\t\t\tthis.keyManager.setActiveItem(0);\n\t\t}\n\t}\n\n\tprotected selectActiveItem(): void {\n\t\tthis.keyManager.activeItem?.selected.emit();\n\t}\n}\n","import { computed, Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: '[brnCommandEmpty]',\n})\nexport class BrnCommandEmpty {\n\tprivate readonly _templateRef = inject<TemplateRef<void>>(TemplateRef);\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** Determine if the command has any visible items */\n\tprivate readonly _visible = computed(() => this._command.items().some((item) => item.visible()));\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this._visible()) {\n\t\t\t\tthis._viewContainerRef.clear();\n\t\t\t} else {\n\t\t\t\tthis._viewContainerRef.createEmbeddedView(this._templateRef);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { computed, contentChildren, Directive, input } from '@angular/core';\nimport { BrnCommandItemToken } from './brn-command-item.token';\n\n@Directive({\n\tselector: '[brnCommandGroup]',\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.data-hidden]': '!_visible() ? \"\" : null',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandGroup {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-group-${++BrnCommandGroup._id}`);\n\n\t/** Get the items in the group */\n\tprivate readonly _items = contentChildren(BrnCommandItemToken, {\n\t\tdescendants: true,\n\t});\n\n\t/** Determine if there are any visible items in the group */\n\tprotected readonly _visible = computed(() => this._items().some((item) => item.visible()));\n}\n","import type { Highlightable } from '@angular/cdk/a11y';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\ttype OnInit,\n\toutput,\n\tPLATFORM_ID,\n\tsignal,\n} from '@angular/core';\nimport { provideBrnCommandItem } from './brn-command-item.token';\nimport { injectBrnCommand } from './brn-command.token';\n\n@Directive({\n\tselector: 'button[brnCommandItem]',\n\tproviders: [provideBrnCommandItem(BrnCommandItem)],\n\thost: {\n\t\ttype: 'button',\n\t\trole: 'option',\n\t\ttabIndex: '-1',\n\t\t'[id]': 'id()',\n\t\t'[attr.disabled]': '_disabled() ? true : null',\n\t\t'[attr.data-disabled]': '_disabled() ? \"\" : null',\n\t\t'[attr.data-value]': 'value()',\n\t\t'[attr.data-hidden]': \"!visible() ? '' : null\",\n\t\t'[attr.aria-selected]': '_active()',\n\t\t'[attr.data-selected]': \"_active() ? '' : null\",\n\t\t'(click)': 'onClick()',\n\t\t'(mouseenter)': 'activate()',\n\t},\n})\nexport class BrnCommandItem implements Highlightable, OnInit {\n\tprivate static _id = 0;\n\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t/** Access the command component */\n\tprivate readonly _command = injectBrnCommand();\n\n\t/** A unique id for the item */\n\tpublic readonly id = input(`brn-command-item-${++BrnCommandItem._id}`);\n\n\t/** The value this item represents. */\n\tpublic readonly value = input.required<string>();\n\n\t/** Whether the item is disabled. */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tpublic readonly _disabled = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** Expose disabled as a value - used by the Highlightable interface */\n\tpublic get disabled() {\n\t\treturn this._disabled();\n\t}\n\n\t/** Whether the item is initialized, this is to prevent accessing the value-input before the component is initialized.\n\t * The brn-command-empty directive accesses the value before the component is initialized, which causes an error.\n\t */\n\tprivate readonly _initialized = signal(false);\n\n\t/** Whether the item is selected. */\n\tprotected readonly _active = signal(false);\n\n\t/** Emits when the item is selected. */\n\tpublic readonly selected = output<void>();\n\n\t/** @internal Determine if this item is visible based on the current search query */\n\tpublic readonly visible = computed(() => {\n\t\treturn this._command.filter()(this.safeValue(), this._command.search());\n\t});\n\n\t/** @internal Get the value of the item, with check if it has been initialized to avoid errors */\n\tpublic readonly safeValue = computed(() => {\n\t\tif (!this._initialized()) {\n\t\t\treturn '';\n\t\t}\n\t\treturn this.value();\n\t});\n\n\t/** @internal Get the display value */\n\tpublic getLabel(): string {\n\t\treturn this.safeValue();\n\t}\n\n\t/** @internal */\n\tsetActiveStyles(): void {\n\t\tthis._active.set(true);\n\n\t\t// ensure the item is in view\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._elementRef.nativeElement.scrollIntoView({ block: 'nearest' });\n\t\t}\n\t}\n\n\t/** @internal */\n\tsetInactiveStyles(): void {\n\t\tthis._active.set(false);\n\t}\n\n\tprotected onClick(): void {\n\t\tthis._command.keyManager.setActiveItem(this);\n\t\tthis.selected.emit();\n\t}\n\n\tprotected activate(): void {\n\t\tif (this._disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._command.keyManager.setActiveItem(this);\n\t}\n\n\tngOnInit(): void {\n\t\tthis._initialized.set(true);\n\t}\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n\tselector: '[brnCommandList]',\n\thost: {\n\t\trole: 'listbox',\n\t\t'[id]': 'id()',\n\t},\n})\nexport class BrnCommandList {\n\tprivate static _id = 0;\n\n\t/** The id of the command list */\n\tpublic readonly id = input<string>(`brn-command-list-${++BrnCommandList._id}`);\n}\n","import { BrnCommand } from './lib/brn-command';\nimport { BrnCommandEmpty } from './lib/brn-command-empty';\nimport { BrnCommandGroup } from './lib/brn-command-group';\nimport { BrnCommandItem } from './lib/brn-command-item';\nimport { BrnCommandList } from './lib/brn-command-list';\nimport { BrnCommandSearchInput } from './lib/brn-command-search-input';\n\nexport * from './lib/brn-command';\nexport * from './lib/brn-command-empty';\nexport * from './lib/brn-command-group';\nexport * from './lib/brn-command-item';\nexport * from './lib/brn-command-item.token';\nexport * from './lib/brn-command-list';\nexport * from './lib/brn-command-search-input';\nexport * from './lib/brn-command-search-input.token';\nexport * from './lib/brn-command.token';\n\nexport const BrnCommandImports = [\n\tBrnCommandEmpty,\n\tBrnCommandGroup,\n\tBrnCommandItem,\n\tBrnCommandList,\n\tBrnCommandSearchInput,\n\tBrnCommand,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-date-time-luxon.mjs","sources":["../../../../libs/brain/date-time-luxon/src/lib/date-adapter.ts","../../../../libs/brain/date-time-luxon/src/spartan-ng-brain-date-time-luxon.ts"],"sourcesContent":["import { BrnDateAdapter, BrnDateUnits, BrnDuration } from '@spartan-ng/brain/date-time';\nimport { DateTime } from 'luxon';\n\nexport class BrnLuxonDateAdapter implements BrnDateAdapter<DateTime> {\n\tnow() {\n\t\treturn DateTime.now();\n\t}\n\n\tset(date: DateTime, values: BrnDateUnits) {\n\t\treturn date.set(values);\n\t}\n\n\tadd(date: DateTime, duration: BrnDuration) {\n\t\treturn date.plus(duration);\n\t}\n\n\tsubtract(date: DateTime, duration: BrnDuration) {\n\t\treturn date.minus(duration);\n\t}\n\n\tcompare(a: DateTime, b: DateTime): number {\n\t\tif (a < b) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (a > b) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\tisEqual(a: DateTime, b: DateTime): boolean {\n\t\treturn a.equals(b);\n\t}\n\n\tisBefore(a: DateTime, b: DateTime): boolean {\n\t\treturn a < b;\n\t}\n\n\tisAfter(a: DateTime, b: DateTime): boolean {\n\t\treturn a > b;\n\t}\n\n\tisSameDay(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'day') && a.hasSame(b, 'month') && a.hasSame(b, 'year');\n\t}\n\n\tisSameMonth(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'month') && a.hasSame(b, 'year');\n\t}\n\n\tisSameYear(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'year');\n\t}\n\n\tgetYear(date: DateTime): number {\n\t\treturn date.year;\n\t}\n\n\tgetMonth(date: DateTime): number {\n\t\treturn date.month;\n\t}\n\n\tgetDate(date: DateTime): number {\n\t\treturn date.day;\n\t}\n\n\tgetDay(date: DateTime): number {\n\t\t// Adjust the range, Luxon calculates week days starting with Monday 1 to Sunday 7\n\t\t// , and we should return Sunday 0 to Saturday 6\n\t\treturn date.weekday % 7;\n\t}\n\n\tgetHours(date: DateTime): number {\n\t\treturn date.hour;\n\t}\n\n\tgetMinutes(date: DateTime): number {\n\t\treturn date.minute;\n\t}\n\n\tgetSeconds(date: DateTime): number {\n\t\treturn date.second;\n\t}\n\n\tgetMilliseconds(date: DateTime): number {\n\t\treturn date.millisecond;\n\t}\n\n\tgetTime(date: DateTime<boolean>): number {\n\t\treturn date.toMillis();\n\t}\n\n\tstartOfMonth(date: DateTime) {\n\t\treturn date.startOf('month');\n\t}\n\n\tendOfMonth(date: DateTime) {\n\t\treturn date.endOf('month');\n\t}\n\n\tstartOfDay(date: DateTime) {\n\t\treturn date.startOf('day');\n\t}\n\n\tendOfDay(date: DateTime) {\n\t\treturn date.endOf('day');\n\t}\n\n\tcreate(values: BrnDateUnits) {\n\t\treturn DateTime.fromObject(values);\n\t}\n}\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-date-time-luxon.mjs","sources":["../../../../libs/brain/date-time-luxon/src/lib/date-adapter.ts","../../../../libs/brain/date-time-luxon/src/spartan-ng-brain-date-time-luxon.ts"],"sourcesContent":["import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from '@spartan-ng/brain/date-time';\nimport { DateTime } from 'luxon';\n\nexport class BrnLuxonDateAdapter implements BrnDateAdapter<DateTime> {\n\tnow() {\n\t\treturn DateTime.now();\n\t}\n\n\tset(date: DateTime, values: BrnDateUnits) {\n\t\treturn date.set(values);\n\t}\n\n\tadd(date: DateTime, duration: BrnDuration) {\n\t\treturn date.plus(duration);\n\t}\n\n\tsubtract(date: DateTime, duration: BrnDuration) {\n\t\treturn date.minus(duration);\n\t}\n\n\tcompare(a: DateTime, b: DateTime): number {\n\t\tif (a < b) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (a > b) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\tisEqual(a: DateTime, b: DateTime): boolean {\n\t\treturn a.equals(b);\n\t}\n\n\tisBefore(a: DateTime, b: DateTime): boolean {\n\t\treturn a < b;\n\t}\n\n\tisAfter(a: DateTime, b: DateTime): boolean {\n\t\treturn a > b;\n\t}\n\n\tisSameDay(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'day') && a.hasSame(b, 'month') && a.hasSame(b, 'year');\n\t}\n\n\tisSameMonth(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'month') && a.hasSame(b, 'year');\n\t}\n\n\tisSameYear(a: DateTime, b: DateTime): boolean {\n\t\treturn a.hasSame(b, 'year');\n\t}\n\n\tgetYear(date: DateTime): number {\n\t\treturn date.year;\n\t}\n\n\tgetMonth(date: DateTime): number {\n\t\treturn date.month;\n\t}\n\n\tgetDate(date: DateTime): number {\n\t\treturn date.day;\n\t}\n\n\tgetDay(date: DateTime): number {\n\t\t// Adjust the range, Luxon calculates week days starting with Monday 1 to Sunday 7\n\t\t// , and we should return Sunday 0 to Saturday 6\n\t\treturn date.weekday % 7;\n\t}\n\n\tgetHours(date: DateTime): number {\n\t\treturn date.hour;\n\t}\n\n\tgetMinutes(date: DateTime): number {\n\t\treturn date.minute;\n\t}\n\n\tgetSeconds(date: DateTime): number {\n\t\treturn date.second;\n\t}\n\n\tgetMilliseconds(date: DateTime): number {\n\t\treturn date.millisecond;\n\t}\n\n\tgetTime(date: DateTime<boolean>): number {\n\t\treturn date.toMillis();\n\t}\n\n\tstartOfMonth(date: DateTime) {\n\t\treturn date.startOf('month');\n\t}\n\n\tendOfMonth(date: DateTime) {\n\t\treturn date.endOf('month');\n\t}\n\n\tstartOfDay(date: DateTime) {\n\t\treturn date.startOf('day');\n\t}\n\n\tendOfDay(date: DateTime) {\n\t\treturn date.endOf('day');\n\t}\n\n\tcreate(values: BrnDateUnits) {\n\t\treturn DateTime.fromObject(values);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-date-time.mjs","sources":["../../../../libs/brain/date-time/src/lib/native-date-adapter.ts","../../../../libs/brain/date-time/src/lib/utc-date-adapter.ts","../../../../libs/brain/date-time/src/lib/date-adapter.ts","../../../../libs/brain/date-time/src/spartan-ng-brain-date-time.ts"],"sourcesContent":["import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnNativeDateAdapter implements BrnDateAdapter<Date> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\n\t\treturn new Date(\n\t\t\tyear ?? now.getFullYear(),\n\t\t\tmonth ?? now.getMonth(),\n\t\t\tday ?? now.getDate(),\n\t\t\thour ?? now.getHours(),\n\t\t\tminute ?? now.getMinutes(),\n\t\t\tsecond ?? now.getSeconds(),\n\t\t\tmillisecond ?? now.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): Date {\n\t\treturn new Date();\n\t}\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\treturn new Date(\n\t\t\tvalues.year ?? date.getFullYear(),\n\t\t\tvalues.month ?? date.getMonth(),\n\t\t\tvalues.day ?? date.getDate(),\n\t\t\tvalues.hour ?? date.getHours(),\n\t\t\tvalues.minute ?? date.getMinutes(),\n\t\t\tvalues.second ?? date.getSeconds(),\n\t\t\tvalues.millisecond ?? date.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() + (duration.years ?? 0),\n\t\t\tdate.getMonth() + (duration.months ?? 0),\n\t\t\tdate.getDate() + (duration.days ?? 0),\n\t\t\tdate.getHours() + (duration.hours ?? 0),\n\t\t\tdate.getMinutes() + (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() + (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() + (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Subtract a duration from the date time object\n\t */\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() - (duration.years ?? 0),\n\t\t\tdate.getMonth() - (duration.months ?? 0),\n\t\t\tdate.getDate() - (duration.days ?? 0),\n\t\t\tdate.getHours() - (duration.hours ?? 0),\n\t\t\tdate.getMinutes() - (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() - (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() - (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Compare two date time objects\n\t */\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getDate() === b.getDate();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getMonth() === b.getMonth();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear();\n\t}\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: Date): number {\n\t\treturn date.getFullYear();\n\t}\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: Date): number {\n\t\treturn date.getMonth();\n\t}\n\n\t/**\n\t * Get the day.\n\t */\n\tgetDay(date: Date): number {\n\t\treturn date.getDay();\n\t}\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: Date): number {\n\t\treturn date.getDate();\n\t}\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: Date): number {\n\t\treturn date.getHours();\n\t}\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: Date): number {\n\t\treturn date.getMinutes();\n\t}\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: Date): number {\n\t\treturn date.getSeconds();\n\t}\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getMilliseconds();\n\t}\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n\t}\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n}\n","import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnUtcDateAdapter implements BrnDateAdapter<Date> {\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\t\tconst utcTime = Date.UTC(\n\t\t\tyear ?? now.getUTCFullYear(),\n\t\t\tmonth ?? now.getUTCMonth(),\n\t\t\tday ?? now.getUTCDate(),\n\t\t\thour ?? now.getUTCHours(),\n\t\t\tminute ?? now.getUTCMinutes(),\n\t\t\tsecond ?? now.getUTCSeconds(),\n\t\t\tmillisecond ?? now.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tnow(): Date {\n\t\treturn new Date(Date.now());\n\t}\n\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\tconst utcTime = Date.UTC(\n\t\t\tvalues.year ?? date.getUTCFullYear(),\n\t\t\tvalues.month ?? date.getUTCMonth(),\n\t\t\tvalues.day ?? date.getUTCDate(),\n\t\t\tvalues.hour ?? date.getUTCHours(),\n\t\t\tvalues.minute ?? date.getUTCMinutes(),\n\t\t\tvalues.second ?? date.getUTCSeconds(),\n\t\t\tvalues.millisecond ?? date.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() + (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() + (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() + (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() + (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() + (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() + (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() + (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() - (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() - (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() - (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() - (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() - (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() - (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() - (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getUTCDate() === b.getUTCDate();\n\t}\n\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getUTCMonth() === b.getUTCMonth();\n\t}\n\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getUTCFullYear() === b.getUTCFullYear();\n\t}\n\n\tgetYear(date: Date): number {\n\t\treturn date.getUTCFullYear();\n\t}\n\n\tgetMonth(date: Date): number {\n\t\treturn date.getUTCMonth();\n\t}\n\n\tgetDay(date: Date): number {\n\t\treturn date.getUTCDay();\n\t}\n\n\tgetDate(date: Date): number {\n\t\treturn date.getUTCDate();\n\t}\n\n\tgetHours(date: Date): number {\n\t\treturn date.getUTCHours();\n\t}\n\n\tgetMinutes(date: Date): number {\n\t\treturn date.getUTCMinutes();\n\t}\n\n\tgetSeconds(date: Date): number {\n\t\treturn date.getUTCSeconds();\n\t}\n\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getUTCMilliseconds();\n\t}\n\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n\t}\n\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0, 23, 59, 59, 999));\n\t}\n\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\t}\n\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59, 999));\n\t}\n}\n","import { ClassProvider, InjectionToken, Type, inject } from '@angular/core';\nimport { BrnNativeDateAdapter } from './native-date-adapter';\nimport { BrnUtcDateAdapter } from './utc-date-adapter';\n\n/**\n * An abstraction that can be used to create and modify date time objects\n * immutably regardless of the underlying implementation.\n */\nexport interface BrnDateAdapter<T> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate(values: BrnDateUnits): T;\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): T;\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: T, values: BrnDateUnits): T;\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Subtract a duration from the date time object.\n\t */\n\tsubtract(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Compare two date time objects.\n\t */\n\tcompare(a: T, b: T): number;\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: T, b: T): boolean;\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: T): number;\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: T): number;\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: T): number;\n\n\t/**\n\t * Get the day of the week.\n\t *\n\t * Returns a value between 0 and 6 where 0 is Sunday\n\t */\n\tgetDay(date: T): number;\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: T): number;\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: T): number;\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: T): number;\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: T): number;\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: T): number;\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: T): T;\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: T): T;\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: T): T;\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: T): T;\n}\n\nexport interface BrnDateUnits {\n\t/**\n\t * The year.\n\t */\n\tyear?: number;\n\n\t/**\n\t * The month.\n\t */\n\tmonth?: number;\n\n\t/**\n\t * The day.\n\t */\n\tday?: number;\n\n\t/**\n\t * The hour.\n\t */\n\thour?: number;\n\n\t/**\n\t * The minute.\n\t */\n\tminute?: number;\n\n\t/**\n\t * The second.\n\t */\n\tsecond?: number;\n\n\t/**\n\t * The millisecond.\n\t */\n\tmillisecond?: number;\n}\n\nexport interface BrnDuration {\n\t/**\n\t * The years.\n\t */\n\tyears?: number;\n\n\t/**\n\t * The months.\n\t */\n\tmonths?: number;\n\n\t/**\n\t * The days.\n\t */\n\tdays?: number;\n\n\t/**\n\t * The hours.\n\t */\n\thours?: number;\n\n\t/**\n\t * The minutes.\n\t */\n\tminutes?: number;\n\n\t/**\n\t * The seconds.\n\t */\n\tseconds?: number;\n\n\t/**\n\t * The milliseconds.\n\t */\n\tmilliseconds?: number;\n}\n\nexport const BrnDateAdapterToken = new InjectionToken<BrnDateAdapter<unknown>>('BrnDateAdapterToken');\n\n/**\n * Inject the DateAdapter instance\n */\nexport function injectDateAdapter<T>(): BrnDateAdapter<T> {\n\treturn (inject(BrnDateAdapterToken, { optional: true }) as BrnDateAdapter<T>) ?? new BrnNativeDateAdapter();\n}\n\n/**\n * Provide the DateAdapter instance\n */\nexport function provideDateAdapter<T>(adapter: Type<BrnDateAdapter<T>>): ClassProvider {\n\treturn { provide: BrnDateAdapterToken, useClass: adapter };\n}\n\n/**\n * Provide the native date adapter\n */\nexport function provideNativeDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnNativeDateAdapter);\n}\n\n/**\n * Provide the UTC date adapter\n */\nexport function provideUtcDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnUtcDateAdapter);\n}\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-date-time.mjs","sources":["../../../../libs/brain/date-time/src/lib/native-date-adapter.ts","../../../../libs/brain/date-time/src/lib/utc-date-adapter.ts","../../../../libs/brain/date-time/src/lib/date-adapter.ts","../../../../libs/brain/date-time/src/spartan-ng-brain-date-time.ts"],"sourcesContent":["import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnNativeDateAdapter implements BrnDateAdapter<Date> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\n\t\treturn new Date(\n\t\t\tyear ?? now.getFullYear(),\n\t\t\tmonth ?? now.getMonth(),\n\t\t\tday ?? now.getDate(),\n\t\t\thour ?? now.getHours(),\n\t\t\tminute ?? now.getMinutes(),\n\t\t\tsecond ?? now.getSeconds(),\n\t\t\tmillisecond ?? now.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): Date {\n\t\treturn new Date();\n\t}\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\treturn new Date(\n\t\t\tvalues.year ?? date.getFullYear(),\n\t\t\tvalues.month ?? date.getMonth(),\n\t\t\tvalues.day ?? date.getDate(),\n\t\t\tvalues.hour ?? date.getHours(),\n\t\t\tvalues.minute ?? date.getMinutes(),\n\t\t\tvalues.second ?? date.getSeconds(),\n\t\t\tvalues.millisecond ?? date.getMilliseconds(),\n\t\t);\n\t}\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() + (duration.years ?? 0),\n\t\t\tdate.getMonth() + (duration.months ?? 0),\n\t\t\tdate.getDate() + (duration.days ?? 0),\n\t\t\tdate.getHours() + (duration.hours ?? 0),\n\t\t\tdate.getMinutes() + (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() + (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() + (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Subtract a duration from the date time object\n\t */\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tdate.getFullYear() - (duration.years ?? 0),\n\t\t\tdate.getMonth() - (duration.months ?? 0),\n\t\t\tdate.getDate() - (duration.days ?? 0),\n\t\t\tdate.getHours() - (duration.hours ?? 0),\n\t\t\tdate.getMinutes() - (duration.minutes ?? 0),\n\t\t\tdate.getSeconds() - (duration.seconds ?? 0),\n\t\t\tdate.getMilliseconds() - (duration.milliseconds ?? 0),\n\t\t);\n\t}\n\n\t/**\n\t * Compare two date time objects\n\t */\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getDate() === b.getDate();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getMonth() === b.getMonth();\n\t}\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear();\n\t}\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: Date): number {\n\t\treturn date.getFullYear();\n\t}\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: Date): number {\n\t\treturn date.getMonth();\n\t}\n\n\t/**\n\t * Get the day.\n\t */\n\tgetDay(date: Date): number {\n\t\treturn date.getDay();\n\t}\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: Date): number {\n\t\treturn date.getDate();\n\t}\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: Date): number {\n\t\treturn date.getHours();\n\t}\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: Date): number {\n\t\treturn date.getMinutes();\n\t}\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: Date): number {\n\t\treturn date.getSeconds();\n\t}\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getMilliseconds();\n\t}\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n\t}\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n}\n","import type { BrnDateAdapter, BrnDateUnits, BrnDuration } from './date-adapter';\n\nexport class BrnUtcDateAdapter implements BrnDateAdapter<Date> {\n\tcreate({ day, hour, minute, month, second, year, millisecond }: BrnDateUnits): Date {\n\t\tconst now = new Date();\n\t\tconst utcTime = Date.UTC(\n\t\t\tyear ?? now.getUTCFullYear(),\n\t\t\tmonth ?? now.getUTCMonth(),\n\t\t\tday ?? now.getUTCDate(),\n\t\t\thour ?? now.getUTCHours(),\n\t\t\tminute ?? now.getUTCMinutes(),\n\t\t\tsecond ?? now.getUTCSeconds(),\n\t\t\tmillisecond ?? now.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tnow(): Date {\n\t\treturn new Date(Date.now());\n\t}\n\n\tset(date: Date, values: BrnDateUnits): Date {\n\t\tconst utcTime = Date.UTC(\n\t\t\tvalues.year ?? date.getUTCFullYear(),\n\t\t\tvalues.month ?? date.getUTCMonth(),\n\t\t\tvalues.day ?? date.getUTCDate(),\n\t\t\tvalues.hour ?? date.getUTCHours(),\n\t\t\tvalues.minute ?? date.getUTCMinutes(),\n\t\t\tvalues.second ?? date.getUTCSeconds(),\n\t\t\tvalues.millisecond ?? date.getUTCMilliseconds(),\n\t\t);\n\t\treturn new Date(utcTime);\n\t}\n\n\tadd(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() + (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() + (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() + (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() + (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() + (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() + (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() + (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tsubtract(date: Date, duration: BrnDuration): Date {\n\t\treturn new Date(\n\t\t\tDate.UTC(\n\t\t\t\tdate.getUTCFullYear() - (duration.years ?? 0),\n\t\t\t\tdate.getUTCMonth() - (duration.months ?? 0),\n\t\t\t\tdate.getUTCDate() - (duration.days ?? 0),\n\t\t\t\tdate.getUTCHours() - (duration.hours ?? 0),\n\t\t\t\tdate.getUTCMinutes() - (duration.minutes ?? 0),\n\t\t\t\tdate.getUTCSeconds() - (duration.seconds ?? 0),\n\t\t\t\tdate.getUTCMilliseconds() - (duration.milliseconds ?? 0),\n\t\t\t),\n\t\t);\n\t}\n\n\tcompare(a: Date, b: Date): number {\n\t\tconst diff = a.getTime() - b.getTime();\n\t\treturn diff === 0 ? 0 : diff > 0 ? 1 : -1;\n\t}\n\n\tisEqual(a: Date, b: Date): boolean {\n\t\treturn a.getTime() === b.getTime();\n\t}\n\n\tisBefore(a: Date, b: Date): boolean {\n\t\treturn a.getTime() < b.getTime();\n\t}\n\n\tisAfter(a: Date, b: Date): boolean {\n\t\treturn a.getTime() > b.getTime();\n\t}\n\n\tisSameDay(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && this.isSameMonth(a, b) && a.getUTCDate() === b.getUTCDate();\n\t}\n\n\tisSameMonth(a: Date, b: Date): boolean {\n\t\treturn this.isSameYear(a, b) && a.getUTCMonth() === b.getUTCMonth();\n\t}\n\n\tisSameYear(a: Date, b: Date): boolean {\n\t\treturn a.getUTCFullYear() === b.getUTCFullYear();\n\t}\n\n\tgetYear(date: Date): number {\n\t\treturn date.getUTCFullYear();\n\t}\n\n\tgetMonth(date: Date): number {\n\t\treturn date.getUTCMonth();\n\t}\n\n\tgetDay(date: Date): number {\n\t\treturn date.getUTCDay();\n\t}\n\n\tgetDate(date: Date): number {\n\t\treturn date.getUTCDate();\n\t}\n\n\tgetHours(date: Date): number {\n\t\treturn date.getUTCHours();\n\t}\n\n\tgetMinutes(date: Date): number {\n\t\treturn date.getUTCMinutes();\n\t}\n\n\tgetSeconds(date: Date): number {\n\t\treturn date.getUTCSeconds();\n\t}\n\n\tgetMilliseconds(date: Date): number {\n\t\treturn date.getUTCMilliseconds();\n\t}\n\n\tgetTime(date: Date): number {\n\t\treturn date.getTime();\n\t}\n\n\tstartOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1));\n\t}\n\n\tendOfMonth(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 0, 23, 59, 59, 999));\n\t}\n\n\tstartOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n\t}\n\n\tendOfDay(date: Date): Date {\n\t\treturn new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59, 999));\n\t}\n}\n","import { type ClassProvider, InjectionToken, type Type, inject } from '@angular/core';\nimport { BrnNativeDateAdapter } from './native-date-adapter';\nimport { BrnUtcDateAdapter } from './utc-date-adapter';\n\n/**\n * An abstraction that can be used to create and modify date time objects\n * immutably regardless of the underlying implementation.\n */\nexport interface BrnDateAdapter<T> {\n\t/**\n\t * Create a new date time object.\n\t */\n\tcreate(values: BrnDateUnits): T;\n\n\t/**\n\t * Create a new date with the current date and time.\n\t */\n\tnow(): T;\n\n\t/**\n\t * Set the year of the date time object based on a duration.\n\t */\n\tset(date: T, values: BrnDateUnits): T;\n\n\t/**\n\t * Add a duration to the date time object.\n\t */\n\tadd(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Subtract a duration from the date time object.\n\t */\n\tsubtract(date: T, duration: BrnDuration): T;\n\n\t/**\n\t * Compare two date time objects.\n\t */\n\tcompare(a: T, b: T): number;\n\n\t/**\n\t * Determine if two date time objects are equal.\n\t */\n\tisEqual(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is before another.\n\t */\n\tisBefore(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if a date time object is after another.\n\t */\n\tisAfter(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same day.\n\t */\n\tisSameDay(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same month.\n\t */\n\tisSameMonth(a: T, b: T): boolean;\n\n\t/**\n\t * Determine if two date objects are on the same year.\n\t */\n\tisSameYear(a: T, b: T): boolean;\n\n\t/**\n\t * Get the year.\n\t */\n\tgetYear(date: T): number;\n\n\t/**\n\t * Get the month.\n\t */\n\tgetMonth(date: T): number;\n\n\t/**\n\t * Get the date.\n\t */\n\tgetDate(date: T): number;\n\n\t/**\n\t * Get the day of the week.\n\t *\n\t * Returns a value between 0 and 6 where 0 is Sunday\n\t */\n\tgetDay(date: T): number;\n\n\t/**\n\t * Get the hours.\n\t */\n\tgetHours(date: T): number;\n\n\t/**\n\t * Get the minutes.\n\t */\n\tgetMinutes(date: T): number;\n\n\t/**\n\t * Get the seconds.\n\t */\n\tgetSeconds(date: T): number;\n\n\t/**\n\t * Get the milliseconds.\n\t */\n\tgetMilliseconds(date: T): number;\n\n\t/**\n\t * Get the time.\n\t */\n\tgetTime(date: T): number;\n\n\t/**\n\t * Get the first day of the month.\n\t */\n\tstartOfMonth(date: T): T;\n\n\t/**\n\t * Get the last day of the month.\n\t */\n\tendOfMonth(date: T): T;\n\n\t/**\n\t * Get the start of the day.\n\t */\n\tstartOfDay(date: T): T;\n\n\t/**\n\t * Get the end of the day.\n\t */\n\tendOfDay(date: T): T;\n}\n\nexport interface BrnDateUnits {\n\t/**\n\t * The year.\n\t */\n\tyear?: number;\n\n\t/**\n\t * The month.\n\t */\n\tmonth?: number;\n\n\t/**\n\t * The day.\n\t */\n\tday?: number;\n\n\t/**\n\t * The hour.\n\t */\n\thour?: number;\n\n\t/**\n\t * The minute.\n\t */\n\tminute?: number;\n\n\t/**\n\t * The second.\n\t */\n\tsecond?: number;\n\n\t/**\n\t * The millisecond.\n\t */\n\tmillisecond?: number;\n}\n\nexport interface BrnDuration {\n\t/**\n\t * The years.\n\t */\n\tyears?: number;\n\n\t/**\n\t * The months.\n\t */\n\tmonths?: number;\n\n\t/**\n\t * The days.\n\t */\n\tdays?: number;\n\n\t/**\n\t * The hours.\n\t */\n\thours?: number;\n\n\t/**\n\t * The minutes.\n\t */\n\tminutes?: number;\n\n\t/**\n\t * The seconds.\n\t */\n\tseconds?: number;\n\n\t/**\n\t * The milliseconds.\n\t */\n\tmilliseconds?: number;\n}\n\nexport const BrnDateAdapterToken = new InjectionToken<BrnDateAdapter<unknown>>('BrnDateAdapterToken');\n\n/**\n * Inject the DateAdapter instance\n */\nexport function injectDateAdapter<T>(): BrnDateAdapter<T> {\n\treturn (inject(BrnDateAdapterToken, { optional: true }) as BrnDateAdapter<T>) ?? new BrnNativeDateAdapter();\n}\n\n/**\n * Provide the DateAdapter instance\n */\nexport function provideDateAdapter<T>(adapter: Type<BrnDateAdapter<T>>): ClassProvider {\n\treturn { provide: BrnDateAdapterToken, useClass: adapter };\n}\n\n/**\n * Provide the native date adapter\n */\nexport function provideNativeDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnNativeDateAdapter);\n}\n\n/**\n * Provide the UTC date adapter\n */\nexport function provideUtcDateAdapter(): ClassProvider {\n\treturn provideDateAdapter(BrnUtcDateAdapter);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}