@spartan-ng/brain 0.0.1-alpha.380 → 0.0.1-alpha.386

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 (101) hide show
  1. package/accordion/lib/brn-accordion-content.component.d.ts +1 -1
  2. package/accordion/lib/brn-accordion.directive.d.ts +2 -2
  3. package/core/README.md +3 -0
  4. package/core/helpers/create-injection-token.d.ts +20 -0
  5. package/core/helpers/custom-element-class-settable.d.ts +12 -0
  6. package/core/helpers/dev-mode.d.ts +5 -0
  7. package/core/helpers/exposes-side.d.ts +13 -0
  8. package/core/helpers/exposes-state.d.ts +13 -0
  9. package/core/helpers/hlm.d.ts +2 -0
  10. package/core/helpers/table-classes-settable.d.ts +16 -0
  11. package/core/helpers/zone-free.d.ts +10 -0
  12. package/core/index.d.ts +7 -0
  13. package/esm2022/accordion/lib/brn-accordion-content.component.mjs +1 -1
  14. package/esm2022/accordion/lib/brn-accordion.directive.mjs +8 -3
  15. package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +2 -2
  16. package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +2 -2
  17. package/esm2022/core/helpers/create-injection-token.mjs +15 -0
  18. package/esm2022/core/helpers/custom-element-class-settable.mjs +3 -0
  19. package/esm2022/core/helpers/dev-mode.mjs +6 -0
  20. package/esm2022/core/helpers/exposes-side.mjs +3 -0
  21. package/esm2022/core/helpers/exposes-state.mjs +3 -0
  22. package/esm2022/core/helpers/hlm.mjs +6 -0
  23. package/esm2022/core/helpers/table-classes-settable.mjs +3 -0
  24. package/esm2022/core/helpers/zone-free.mjs +15 -0
  25. package/esm2022/core/index.mjs +8 -0
  26. package/esm2022/core/spartan-ng-brain-core.mjs +5 -0
  27. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +2 -2
  28. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +2 -2
  29. package/esm2022/dialog/lib/brn-dialog-ref.mjs +3 -2
  30. package/esm2022/dialog/lib/brn-dialog.component.mjs +2 -2
  31. package/esm2022/dialog/lib/brn-dialog.service.mjs +3 -2
  32. package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +26 -36
  33. package/esm2022/hover-card/lib/brn-hover-card.component.mjs +8 -14
  34. package/esm2022/hover-card/lib/createHoverObservable.mjs +4 -3
  35. package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +9 -3
  36. package/esm2022/popover/lib/brn-popover-content.directive.mjs +2 -2
  37. package/esm2022/radio-group/index.mjs +5 -5
  38. package/esm2022/radio-group/lib/{brn-radio-group.component.mjs → brn-radio-group.directive.mjs} +12 -12
  39. package/esm2022/radio-group/lib/brn-radio-group.token.mjs +3 -3
  40. package/esm2022/select/lib/brn-select-content.component.mjs +3 -2
  41. package/esm2022/select/lib/brn-select.component.mjs +4 -3
  42. package/esm2022/select/lib/brn-select.service.mjs +3 -2
  43. package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +2 -2
  44. package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +2 -2
  45. package/esm2022/slider/lib/brn-slider-track.directive.mjs +3 -2
  46. package/esm2022/table/lib/brn-table.component.mjs +2 -2
  47. package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +3 -2
  48. package/esm2022/toggle/lib/brn-toggle.directive.mjs +3 -3
  49. package/esm2022/tooltip/index.mjs +2 -1
  50. package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +8 -15
  51. package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +136 -200
  52. package/esm2022/tooltip/lib/brn-tooltip.token.mjs +18 -0
  53. package/esm2022/tooltip/lib/computed-previous.mjs +46 -0
  54. package/fesm2022/spartan-ng-brain-accordion.mjs +7 -2
  55. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  56. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +1 -1
  57. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  58. package/fesm2022/spartan-ng-brain-core.mjs +57 -0
  59. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -0
  60. package/fesm2022/spartan-ng-brain-dialog.mjs +3 -2
  61. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  62. package/fesm2022/spartan-ng-brain-hover-card.mjs +31 -40
  63. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  64. package/fesm2022/spartan-ng-brain-menu.mjs +8 -2
  65. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -1
  66. package/fesm2022/spartan-ng-brain-popover.mjs +1 -1
  67. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  68. package/fesm2022/spartan-ng-brain-radio-group.mjs +16 -16
  69. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  70. package/fesm2022/spartan-ng-brain-select.mjs +3 -2
  71. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  72. package/fesm2022/spartan-ng-brain-sheet.mjs +1 -1
  73. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  74. package/fesm2022/spartan-ng-brain-slider.mjs +2 -1
  75. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  76. package/fesm2022/spartan-ng-brain-table.mjs +1 -1
  77. package/fesm2022/spartan-ng-brain-table.mjs.map +1 -1
  78. package/fesm2022/spartan-ng-brain-tabs.mjs +2 -2
  79. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  80. package/fesm2022/spartan-ng-brain-toggle.mjs +2 -2
  81. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  82. package/fesm2022/spartan-ng-brain-tooltip.mjs +200 -211
  83. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  84. package/hlm-tailwind-preset.js +73 -0
  85. package/hover-card/lib/brn-hover-card-content.service.d.ts +18 -11
  86. package/hover-card/lib/brn-hover-card.component.d.ts +2 -2
  87. package/hover-card/lib/createHoverObservable.d.ts +1 -1
  88. package/menu/lib/brn-menu-trigger.directive.d.ts +1 -1
  89. package/package.json +57 -46
  90. package/radio-group/index.d.ts +5 -5
  91. package/radio-group/lib/{brn-radio-group.component.d.ts → brn-radio-group.directive.d.ts} +3 -3
  92. package/radio-group/lib/brn-radio-group.token.d.ts +3 -3
  93. package/radio-group/lib/brn-radio.component.d.ts +1 -1
  94. package/select/lib/brn-select.component.d.ts +1 -1
  95. package/sheet/lib/brn-sheet-content.directive.d.ts +1 -1
  96. package/table/lib/brn-table.component.d.ts +1 -1
  97. package/tooltip/index.d.ts +1 -0
  98. package/tooltip/lib/brn-tooltip-content.component.d.ts +2 -2
  99. package/tooltip/lib/brn-tooltip-trigger.directive.d.ts +24 -64
  100. package/tooltip/lib/brn-tooltip.token.d.ts +28 -0
  101. package/tooltip/lib/computed-previous.d.ts +36 -0
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-radio-group.mjs","sources":["../../../../libs/brain/radio-group/src/lib/brn-radio-group.token.ts","../../../../libs/brain/radio-group/src/lib/brn-radio.component.ts","../../../../libs/brain/radio-group/src/lib/brn-radio-group.component.ts","../../../../libs/brain/radio-group/src/index.ts","../../../../libs/brain/radio-group/src/spartan-ng-brain-radio-group.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnRadioGroupComponent } from './brn-radio-group.component';\n\nconst BrnRadioGroupToken = new InjectionToken<BrnRadioGroupComponent<unknown>>('BrnRadioGroupToken');\n\nexport function provideBrnRadioGroupToken<T>(component: Type<BrnRadioGroupComponent<T>>): ExistingProvider {\n\treturn { provide: BrnRadioGroupToken, useExisting: component };\n}\n\nexport function injectBrnRadioGroup<T = unknown>(): BrnRadioGroupComponent<T> {\n\treturn inject(BrnRadioGroupToken) as BrnRadioGroupComponent<T>;\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\ttype OnDestroy,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport { injectBrnRadioGroup } from './brn-radio-group.token';\n\nexport class BrnRadioChange<T> {\n\tconstructor(\n\t\tpublic source: BrnRadioComponent<T>,\n\t\tpublic value: T,\n\t) {}\n}\n\n@Component({\n\tselector: 'brn-radio',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'brn-radio',\n\t\t'[attr.id]': 'id()',\n\t\t'[class.brn-radio-checked]': 'checked()',\n\t\t'[class.brn-radio-disabled]': 'disabledState()',\n\t\t'[attr.data-checked]': 'checked()',\n\t\t'[attr.data-disabled]': 'disabledState()',\n\t\t'[attr.data-value]': 'value()',\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\n\t\t'[attr.tabindex]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\n\t\t// the focus to the native element.\n\t\t'(focus)': 'inputElement().nativeElement.focus()',\n\t},\n\texportAs: 'brnRadio',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div style=\"display: flex; height: fit-content; width: fit-content\" (click)=\"onTouchTargetClick($event)\">\n\t\t\t<ng-content select=\"[target],[indicator]\" />\n\t\t</div>\n\t\t<input\n\t\t\t#input\n\t\t\tstyle=\"position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;\"\n\t\t\ttype=\"radio\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[checked]=\"checked()\"\n\t\t\t[disabled]=\"disabledState()\"\n\t\t\t[tabIndex]=\"tabIndex()\"\n\t\t\t[attr.name]=\"radioGroup.name()\"\n\t\t\t[attr.value]=\"value()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(change)=\"onInputInteraction($event)\"\n\t\t\t(click)=\"onInputClick($event)\"\n\t\t/>\n\t\t<label style=\"display: flex; height: fit-content; width: fit-content\" [for]=\"inputId()\">\n\t\t\t<ng-content />\n\t\t</label>\n\t`,\n})\nexport class BrnRadioComponent<T = unknown> implements OnDestroy {\n\tprivate static _nextUniqueId = 0;\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprotected readonly radioGroup = injectBrnRadioGroup<T>();\n\n\t/**\n\t * Whether the radio button is disabled.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t\talias: 'disabled',\n\t});\n\n\t/**\n\t * Whether the radio button is disabled or the radio group is disabled.\n\t */\n\tprotected readonly disabledState = computed(() => this.disabled() || (this.radioGroup && this.radioGroup.disabled()));\n\n\t/**\n\t * Whether the radio button is checked.\n\t */\n\tprotected readonly checked = computed(() => this.radioGroup.value() === this.value());\n\n\tprotected readonly tabIndex = computed(() => {\n\t\tconst disabled = this.disabledState();\n\t\tconst checked = this.checked();\n\t\tconst hasSelectedRadio = this.radioGroup.value() !== undefined;\n\t\tconst isFirstRadio = this.radioGroup.radioButtons()[0] === this;\n\n\t\tif (disabled || (!checked && (hasSelectedRadio || !isFirstRadio))) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn 0;\n\t});\n\n\t/**\n\t * The unique ID for the radio button input. If none is supplied, it will be auto-generated.\n\t */\n\tpublic readonly id = input(`brn-radio-${++BrnRadioComponent._nextUniqueId}`);\n\n\tpublic readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n\tpublic readonly ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n\n\tpublic readonly ariaDescribedby = input<string | undefined>(undefined, { alias: 'aria-describedby' });\n\n\t/**\n\t * The value this radio button represents.\n\t */\n\tpublic readonly value = input.required<T>();\n\n\t/**\n\t * Whether the radio button is required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Event emitted when the checked state of this radio button changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\tprotected readonly inputId = computed(() => `${this.id()}-input`);\n\n\tprotected readonly inputElement = viewChild.required<ElementRef<HTMLInputElement>>('input');\n\n\tconstructor() {\n\t\tthis._focusMonitor.monitor(this._elementRef, true);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/** Dispatch change event with current value. */\n\tprivate emitChangeEvent(): void {\n\t\tthis.change.emit(new BrnRadioChange(this, this.value()));\n\t}\n\n\tprotected onInputClick(event: Event): void {\n\t\t// We have to stop propagation for click events on the visual hidden input element.\n\t\t// By default, when a user clicks on a label element, a generated click event will be\n\t\t// dispatched on the associated input element. Since we are using a label element as our\n\t\t// root container, the click event on the `radio-button` will be executed twice.\n\t\t// The real click event will bubble up, and the generated click event also tries to bubble up.\n\t\t// This will lead to multiple click events.\n\t\t// Preventing bubbling for the second event will solve that issue.\n\t\tevent.stopPropagation();\n\t}\n\n\tprotected onInputInteraction(event: Event): void {\n\t\t// We always have to stop propagation on the change event.\n\t\t// Otherwise the change event, from the input element, will bubble up and\n\t\t// emit its event object to the `change` output.\n\t\tevent.stopPropagation();\n\n\t\tif (!this.checked() && !this.disabledState()) {\n\t\t\tthis.emitChangeEvent();\n\t\t\tthis.radioGroup.select(this, this.value());\n\t\t}\n\t}\n\n\t/** Triggered when the user clicks on the touch target. */\n\tprotected onTouchTargetClick(event: Event): void {\n\t\tthis.onInputInteraction(event);\n\n\t\tif (!this.disabledState()) {\n\t\t\t// Normally the input should be focused already, but if the click\n\t\t\t// comes from the touch target, then we might have to focus it ourselves.\n\t\t\tthis.inputElement().nativeElement.focus();\n\t\t}\n\t}\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tforwardRef,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { provideBrnRadioGroupToken } from './brn-radio-group.token';\nimport { BrnRadioChange, BrnRadioComponent } from './brn-radio.component';\n\nexport const BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnRadioGroupComponent),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'brn-radio-group',\n\tstandalone: true,\n\tproviders: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)],\n\thost: {\n\t\trole: 'radiogroup',\n\t\t'(focusout)': 'onTouched()',\n\t},\n\ttemplate: '<ng-content />',\n})\nexport class BrnRadioGroupComponent<T = unknown> implements ControlValueAccessor {\n\tprivate static _nextUniqueId = 0;\n\n\tprotected onChange: ChangeFn<T> = () => {};\n\n\tprotected onTouched: TouchFn = () => {};\n\n\tpublic readonly name = input(`brn-radio-group-${BrnRadioGroupComponent._nextUniqueId++}`);\n\n\t/**\n\t * The value of the selected radio button.\n\t */\n\tpublic readonly value = model<T>();\n\n\t/**\n\t * Whether the radio group is disabled.\n\t */\n\tpublic disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Whether the radio group should be required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * The direction of the radio group.\n\t */\n\tpublic readonly direction = input<'ltr' | 'rtl' | null>('ltr');\n\n\t/**\n\t * Event emitted when the group value changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\t/**\n\t * The internal disabled state of the radio group. This could be switched to a linkedSignal when we can drop v18 support.\n\t * @internal\n\t */\n\tpublic readonly disabledState = computed(() => signal(this.disabled()));\n\n\t/**\n\t * Access the radio buttons within the group.\n\t * @internal\n\t */\n\tpublic readonly radioButtons = contentChildren(BrnRadioComponent, { descendants: true });\n\n\twriteValue(value: T): void {\n\t\tthis.value.set(value);\n\t}\n\n\tregisterOnChange(fn: ChangeFn<T>): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabledState().set(isDisabled);\n\t}\n\n\t/**\n\t * Select a radio button.\n\t * @internal\n\t */\n\tselect(radioButton: BrnRadioComponent<T>, value: T): void {\n\t\tif (this.value() === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value.set(value);\n\t\tthis.onChange(value);\n\t\tthis.change.emit(new BrnRadioChange<T>(radioButton, value));\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnRadioGroupComponent } from './lib/brn-radio-group.component';\nimport { BrnRadioComponent } from './lib/brn-radio.component';\n\nexport * from './lib/brn-radio-group.component';\nexport * from './lib/brn-radio.component';\n\nexport const BrnRadioGroupImports = [BrnRadioGroupComponent, BrnRadioComponent] as const;\n\n@NgModule({\n\timports: [...BrnRadioGroupImports],\n\texports: [...BrnRadioGroupImports],\n})\nexport class BrnRadioGroupModule {}\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-radio-group.mjs","sources":["../../../../libs/brain/radio-group/src/lib/brn-radio-group.token.ts","../../../../libs/brain/radio-group/src/lib/brn-radio.component.ts","../../../../libs/brain/radio-group/src/lib/brn-radio-group.directive.ts","../../../../libs/brain/radio-group/src/index.ts","../../../../libs/brain/radio-group/src/spartan-ng-brain-radio-group.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnRadioGroupDirective } from './brn-radio-group.directive';\n\nconst BrnRadioGroupToken = new InjectionToken<BrnRadioGroupDirective<unknown>>('BrnRadioGroupToken');\n\nexport function provideBrnRadioGroupToken<T>(directive: Type<BrnRadioGroupDirective<T>>): ExistingProvider {\n\treturn { provide: BrnRadioGroupToken, useExisting: directive };\n}\n\nexport function injectBrnRadioGroup<T = unknown>(): BrnRadioGroupDirective<T> {\n\treturn inject(BrnRadioGroupToken) as BrnRadioGroupDirective<T>;\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\ttype OnDestroy,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport { injectBrnRadioGroup } from './brn-radio-group.token';\n\nexport class BrnRadioChange<T> {\n\tconstructor(\n\t\tpublic source: BrnRadioComponent<T>,\n\t\tpublic value: T,\n\t) {}\n}\n\n@Component({\n\tselector: 'brn-radio',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'brn-radio',\n\t\t'[attr.id]': 'id()',\n\t\t'[class.brn-radio-checked]': 'checked()',\n\t\t'[class.brn-radio-disabled]': 'disabledState()',\n\t\t'[attr.data-checked]': 'checked()',\n\t\t'[attr.data-disabled]': 'disabledState()',\n\t\t'[attr.data-value]': 'value()',\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\n\t\t'[attr.tabindex]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\n\t\t// the focus to the native element.\n\t\t'(focus)': 'inputElement().nativeElement.focus()',\n\t},\n\texportAs: 'brnRadio',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div style=\"display: flex; height: fit-content; width: fit-content\" (click)=\"onTouchTargetClick($event)\">\n\t\t\t<ng-content select=\"[target],[indicator]\" />\n\t\t</div>\n\t\t<input\n\t\t\t#input\n\t\t\tstyle=\"position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;\"\n\t\t\ttype=\"radio\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[checked]=\"checked()\"\n\t\t\t[disabled]=\"disabledState()\"\n\t\t\t[tabIndex]=\"tabIndex()\"\n\t\t\t[attr.name]=\"radioGroup.name()\"\n\t\t\t[attr.value]=\"value()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(change)=\"onInputInteraction($event)\"\n\t\t\t(click)=\"onInputClick($event)\"\n\t\t/>\n\t\t<label style=\"display: flex; height: fit-content; width: fit-content\" [for]=\"inputId()\">\n\t\t\t<ng-content />\n\t\t</label>\n\t`,\n})\nexport class BrnRadioComponent<T = unknown> implements OnDestroy {\n\tprivate static _nextUniqueId = 0;\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprotected readonly radioGroup = injectBrnRadioGroup<T>();\n\n\t/**\n\t * Whether the radio button is disabled.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t\talias: 'disabled',\n\t});\n\n\t/**\n\t * Whether the radio button is disabled or the radio group is disabled.\n\t */\n\tprotected readonly disabledState = computed(() => this.disabled() || (this.radioGroup && this.radioGroup.disabled()));\n\n\t/**\n\t * Whether the radio button is checked.\n\t */\n\tprotected readonly checked = computed(() => this.radioGroup.value() === this.value());\n\n\tprotected readonly tabIndex = computed(() => {\n\t\tconst disabled = this.disabledState();\n\t\tconst checked = this.checked();\n\t\tconst hasSelectedRadio = this.radioGroup.value() !== undefined;\n\t\tconst isFirstRadio = this.radioGroup.radioButtons()[0] === this;\n\n\t\tif (disabled || (!checked && (hasSelectedRadio || !isFirstRadio))) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn 0;\n\t});\n\n\t/**\n\t * The unique ID for the radio button input. If none is supplied, it will be auto-generated.\n\t */\n\tpublic readonly id = input(`brn-radio-${++BrnRadioComponent._nextUniqueId}`);\n\n\tpublic readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n\tpublic readonly ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n\n\tpublic readonly ariaDescribedby = input<string | undefined>(undefined, { alias: 'aria-describedby' });\n\n\t/**\n\t * The value this radio button represents.\n\t */\n\tpublic readonly value = input.required<T>();\n\n\t/**\n\t * Whether the radio button is required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Event emitted when the checked state of this radio button changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\tprotected readonly inputId = computed(() => `${this.id()}-input`);\n\n\tprotected readonly inputElement = viewChild.required<ElementRef<HTMLInputElement>>('input');\n\n\tconstructor() {\n\t\tthis._focusMonitor.monitor(this._elementRef, true);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/** Dispatch change event with current value. */\n\tprivate emitChangeEvent(): void {\n\t\tthis.change.emit(new BrnRadioChange(this, this.value()));\n\t}\n\n\tprotected onInputClick(event: Event): void {\n\t\t// We have to stop propagation for click events on the visual hidden input element.\n\t\t// By default, when a user clicks on a label element, a generated click event will be\n\t\t// dispatched on the associated input element. Since we are using a label element as our\n\t\t// root container, the click event on the `radio-button` will be executed twice.\n\t\t// The real click event will bubble up, and the generated click event also tries to bubble up.\n\t\t// This will lead to multiple click events.\n\t\t// Preventing bubbling for the second event will solve that issue.\n\t\tevent.stopPropagation();\n\t}\n\n\tprotected onInputInteraction(event: Event): void {\n\t\t// We always have to stop propagation on the change event.\n\t\t// Otherwise the change event, from the input element, will bubble up and\n\t\t// emit its event object to the `change` output.\n\t\tevent.stopPropagation();\n\n\t\tif (!this.checked() && !this.disabledState()) {\n\t\t\tthis.emitChangeEvent();\n\t\t\tthis.radioGroup.select(this, this.value());\n\t\t}\n\t}\n\n\t/** Triggered when the user clicks on the touch target. */\n\tprotected onTouchTargetClick(event: Event): void {\n\t\tthis.onInputInteraction(event);\n\n\t\tif (!this.disabledState()) {\n\t\t\t// Normally the input should be focused already, but if the click\n\t\t\t// comes from the touch target, then we might have to focus it ourselves.\n\t\t\tthis.inputElement().nativeElement.focus();\n\t\t}\n\t}\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tcontentChildren,\n\tDirective,\n\tforwardRef,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { provideBrnRadioGroupToken } from './brn-radio-group.token';\nimport { BrnRadioChange, BrnRadioComponent } from './brn-radio.component';\n\nexport const BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnRadioGroupDirective),\n\tmulti: true,\n};\n\n@Directive({\n\tselector: '[brnRadioGroup]',\n\tstandalone: true,\n\tproviders: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupDirective)],\n\thost: {\n\t\trole: 'radiogroup',\n\t\t'[dir]': 'direction()',\n\t\t'(focusout)': 'onTouched()',\n\t},\n})\nexport class BrnRadioGroupDirective<T = unknown> implements ControlValueAccessor {\n\tprivate static _nextUniqueId = 0;\n\n\tprotected onChange: ChangeFn<T> = () => {};\n\n\tprotected onTouched: TouchFn = () => {};\n\n\tpublic readonly name = input(`brn-radio-group-${BrnRadioGroupDirective._nextUniqueId++}`);\n\n\t/**\n\t * The value of the selected radio button.\n\t */\n\tpublic readonly value = model<T>();\n\n\t/**\n\t * Whether the radio group is disabled.\n\t */\n\tpublic disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Whether the radio group should be required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * The direction of the radio group.\n\t */\n\tpublic readonly direction = input<'ltr' | 'rtl' | null>('ltr');\n\n\t/**\n\t * Event emitted when the group value changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\t/**\n\t * The internal disabled state of the radio group. This could be switched to a linkedSignal when we can drop v18 support.\n\t * @internal\n\t */\n\tpublic readonly disabledState = computed(() => signal(this.disabled()));\n\n\t/**\n\t * Access the radio buttons within the group.\n\t * @internal\n\t */\n\tpublic readonly radioButtons = contentChildren(BrnRadioComponent, { descendants: true });\n\n\twriteValue(value: T): void {\n\t\tthis.value.set(value);\n\t}\n\n\tregisterOnChange(fn: ChangeFn<T>): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabledState().set(isDisabled);\n\t}\n\n\t/**\n\t * Select a radio button.\n\t * @internal\n\t */\n\tselect(radioButton: BrnRadioComponent<T>, value: T): void {\n\t\tif (this.value() === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value.set(value);\n\t\tthis.onChange(value);\n\t\tthis.change.emit(new BrnRadioChange<T>(radioButton, value));\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnRadioGroupDirective } from './lib/brn-radio-group.directive';\nimport { BrnRadioComponent } from './lib/brn-radio.component';\n\nexport * from './lib/brn-radio-group.directive';\nexport * from './lib/brn-radio.component';\n\nexport const BrnRadioGroupImports = [BrnRadioGroupDirective, BrnRadioComponent] as const;\n\n@NgModule({\n\timports: [...BrnRadioGroupImports],\n\texports: [...BrnRadioGroupImports],\n})\nexport class BrnRadioGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,14 +5,15 @@ import { CdkOption, CdkListbox, CdkListboxModule } from '@angular/cdk/listbox';
5
5
  import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';
6
6
  import { toObservable, takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
7
7
  import { NgControl, NgForm, FormGroupDirective } from '@angular/forms';
8
- import { Subject, skip, fromEvent, interval, takeUntil, map, switchMap, of, delay, combineLatest } from 'rxjs';
8
+ import { Subject, fromEvent, interval, of, combineLatest } from 'rxjs';
9
+ import { skip, takeUntil, map, switchMap, delay } from 'rxjs/operators';
9
10
  import * as i1$1 from '@spartan-ng/brain/label';
10
11
  import { BrnLabelDirective } from '@spartan-ng/brain/label';
11
12
  import * as i1$2 from '@angular/cdk/overlay';
12
13
  import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
14
+ import { provideExposedSideProviderExisting, provideExposesStateProviderExisting } from '@spartan-ng/brain/core';
13
15
  import { BrnFormFieldControl } from '@spartan-ng/brain/form-field';
14
16
  import { ErrorStateMatcher, ErrorStateTracker } from '@spartan-ng/brain/forms';
15
- import { provideExposedSideProviderExisting, provideExposesStateProviderExisting } from '@spartan-ng/ui-core';
16
17
 
17
18
  class BrnSelectTriggerDirective {
18
19
  _el = inject(ElementRef);
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-select.mjs","sources":["../../../../libs/brain/select/src/lib/brn-select.service.ts","../../../../libs/brain/select/src/lib/brn-select-option.directive.ts","../../../../libs/brain/select/src/lib/brn-select-content.component.ts","../../../../libs/brain/select/src/lib/brn-select-group.directive.ts","../../../../libs/brain/select/src/lib/brn-select-label.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.component.ts","../../../../libs/brain/select/src/lib/brn-select.component.ts","../../../../libs/brain/select/src/index.ts","../../../../libs/brain/select/src/spartan-ng-brain-select.ts"],"sourcesContent":["import type { CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tDirective,\n\tElementRef,\n\tInjectable,\n\tOnDestroy,\n\tPLATFORM_ID,\n\tSignal,\n\tcomputed,\n\tinject,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { Subject, skip } from 'rxjs';\n\n@Directive({\n\tselector: '[brnSelectTrigger]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'combobox',\n\t\t'[attr.id]': 'selectTriggerId()',\n\t\t'[disabled]': 'selectDisable()',\n\t\t'[attr.aria-expanded]': 'isExpanded()',\n\t\t'[attr.aria-controls]': \"selectContentId() + ''\",\n\t\t'[attr.aria-labelledBy]': 'selectTriggerLabelledBy()',\n\t\t'aria-autocomplete': 'none',\n\t\t'[attr.dir]': '_selectService.dir()',\n\t\t'[class.ng-invalid]': 'this._ngControl?.invalid || null',\n\t\t'[class.ng-dirty]': 'this._ngControl?.dirty || null',\n\t\t'[class.ng-valid]': 'this._ngControl?.valid || null',\n\t\t'[class.ng-touched]': 'this._ngControl?.touched || null',\n\t\t'[class.ng-untouched]': 'this._ngControl?.untouched || null',\n\t\t'[class.ng-pristine]': 'this._ngControl?.pristine || null',\n\t\ttype: 'button',\n\t},\n})\nexport class BrnSelectTriggerDirective implements AfterViewInit, OnDestroy {\n\tprivate readonly _el = inject(ElementRef);\n\tprotected readonly _selectService = inject(BrnSelectService);\n\tprotected readonly _ngControl = inject(NgControl, { optional: true });\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\tpublic readonly isExpanded = this._selectService.isExpanded;\n\tpublic readonly selectTriggerId = computed(() => `${this._selectService.id()}--trigger`);\n\tpublic readonly selectContentId = computed(() => `${this._selectService.id()}--content`);\n\tpublic readonly selectDisable = computed(() => this._selectService.disabled());\n\tpublic readonly selectTriggerLabelledBy = computed(() => {\n\t\tif (this._selectService.value() && this._selectService.value().length > 0) {\n\t\t\treturn `${this._selectService.labelId()} ${this._selectService.id()}--value`;\n\t\t}\n\t\treturn this._selectService.labelId();\n\t});\n\n\tprivate _resizeObserver?: ResizeObserver;\n\n\tconstructor() {\n\t\tif (!this._selectService) return;\n\t\tthis._selectService._setSelectTrigger(this);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis._selectService.setTriggerWidth(this._el.nativeElement.offsetWidth);\n\n\t\t// if we are on the client, listen for element resize events\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._resizeObserver = new ResizeObserver(() =>\n\t\t\t\tthis._selectService.setTriggerWidth(this._el.nativeElement.offsetWidth),\n\t\t\t);\n\n\t\t\tthis._resizeObserver.observe(this._el.nativeElement);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._resizeObserver?.disconnect();\n\t}\n\n\tpublic focus() {\n\t\tthis._el.nativeElement.focus();\n\t}\n}\n\ntype BrnReadDirection = 'ltr' | 'rtl';\n\n@Injectable()\nexport class BrnSelectService {\n\tpublic readonly state = signal<{\n\t\tid: string;\n\t\tlabelId: string;\n\t\tpanelId: string;\n\t\tplaceholder: Signal<string>;\n\t\tisExpanded: boolean;\n\t\tmultiple: Signal<boolean>;\n\t\tdisabled: Signal<boolean>;\n\t\tdisabledBySetDisabled: Signal<boolean>;\n\t\tdir: Signal<BrnReadDirection>;\n\t\tselectedOptions: Array<CdkOption | null>;\n\t\tpossibleOptions: Array<CdkOption | null>;\n\t\tvalue: string | string[];\n\t\ttriggerWidth: number;\n\t}>({\n\t\tid: '',\n\t\tlabelId: '',\n\t\tpanelId: '',\n\t\tisExpanded: false,\n\t\tplaceholder: signal(''),\n\t\tmultiple: signal(false),\n\t\tdisabled: signal(false),\n\t\tdisabledBySetDisabled: signal(false),\n\t\tdir: signal('ltr' as BrnReadDirection),\n\t\tselectedOptions: [],\n\t\tpossibleOptions: [],\n\t\tvalue: '',\n\t\ttriggerWidth: 0,\n\t});\n\n\tpublic readonly id = computed(() => this.state().id);\n\tpublic readonly labelId = computed(() => this.state().labelId);\n\tpublic readonly panelId = computed(() => this.state().panelId);\n\tpublic readonly placeholder = computed(() => this.state().placeholder());\n\tpublic readonly disabled = computed(() => this.state().disabled() || this.state().disabledBySetDisabled());\n\tpublic readonly isExpanded = computed(() => this.state().isExpanded);\n\tpublic readonly multiple = computed(() => this.state().multiple());\n\tpublic readonly dir = computed(() => this.state().dir());\n\tpublic readonly selectedOptions = computed(() => this.state().selectedOptions);\n\tpublic readonly value = computed(() => this.state().value);\n\tpublic readonly triggerWidth = computed(() => this.state().triggerWidth);\n\tpublic readonly possibleOptions = computed(() => this.state().possibleOptions);\n\n\tprivate readonly _multiple$ = toObservable(this.multiple);\n\n\tpublic readonly listBoxValueChangeEvent$ = new Subject<ListboxValueChangeEvent<unknown>>();\n\n\tprivate _selectTrigger?: BrnSelectTriggerDirective;\n\tpublic get selectTrigger() {\n\t\treturn this._selectTrigger;\n\t}\n\n\tconstructor() {\n\t\tthis.listBoxValueChangeEvent$.pipe(takeUntilDestroyed()).subscribe((listBoxChange) => {\n\t\t\tconst updatedSelections = this.multiple() ? this.getUpdatedOptions(listBoxChange) : [listBoxChange.option];\n\t\t\tconst value = this.multiple() ? listBoxChange.value : listBoxChange.value[0];\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions: [...updatedSelections],\n\t\t\t\tvalue: value as string | string[],\n\t\t\t}));\n\t\t});\n\n\t\t// We need to skip the first value because we don't want to deselect all options when the component is initialized with a preselected value e.g. by the form control\n\t\tthis._multiple$.pipe(skip(1), takeUntilDestroyed()).subscribe((multiple) => {\n\t\t\tif (!multiple && this.value().length > 1) {\n\t\t\t\tthis.deselectAllOptions();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic setTriggerWidth(triggerWidth: number) {\n\t\tthis.state.update((s) => ({ ...s, triggerWidth }));\n\t}\n\n\tpublic getUpdatedOptions(latestListboxChange: ListboxValueChangeEvent<unknown>): Array<CdkOption | null> {\n\t\tconst isNewSelection = latestListboxChange.value.findIndex((value) => value === latestListboxChange.option?.value);\n\t\tif (isNewSelection === -1) {\n\t\t\tconst removedOptionIndex = this.selectedOptions().findIndex((option) => latestListboxChange.option === option);\n\t\t\tconst options = this.selectedOptions();\n\t\t\toptions.splice(removedOptionIndex, 1);\n\t\t\treturn options;\n\t\t}\n\t\treturn [...this.selectedOptions(), latestListboxChange.option];\n\t}\n\n\tpublic deselectAllOptions() {\n\t\tthis.state.update((state) => ({\n\t\t\t...state,\n\t\t\tselectedOptions: [],\n\t\t\tvalue: [],\n\t\t}));\n\t}\n\n\t// Needed due to https://github.com/angular/angular/issues/20810\n\tpublic _setSelectTrigger(trigger: BrnSelectTriggerDirective) {\n\t\tthis._selectTrigger = trigger;\n\t}\n\n\tpublic setInitialSelectedOptions(value: unknown) {\n\t\tthis.selectOptionByValue(value);\n\t\tthis.state.update((state) => ({\n\t\t\t...state,\n\t\t\tvalue: value as string | string[],\n\t\t\tinitialSelectedOptions: this.selectedOptions(),\n\t\t\tselectedOptions: this.selectedOptions(),\n\t\t}));\n\t}\n\n\tprivate selectOptionByValue(value: unknown) {\n\t\tconst options = this.possibleOptions();\n\t\tif (value === null || value === undefined) {\n\t\t\tconst nullOrUndefinedOption = options.find((o) => o && o.value === value);\n\t\t\tif (!nullOrUndefinedOption) {\n\t\t\t\tthis.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: [],\n\t\t\t\t\tvalue: this.multiple() ? [] : '',\n\t\t\t\t}));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\tconst selectedOptions = options.filter((option) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\treturn value.includes(option?.value as string);\n\t\t\t\t}\n\t\t\t\treturn value === option?.value;\n\t\t\t});\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions,\n\t\t\t\tvalue: value as string[],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst selectedOption = options.find((option) => option?.value === value);\n\t\t\tif (!selectedOption) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions: [selectedOption as CdkOption | null],\n\t\t\t\tvalue: selectedOption.value as string,\n\t\t\t}));\n\t\t}\n\t}\n}\n","import type { FocusableOption } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkOption } from '@angular/cdk/listbox';\nimport {\n\tAfterContentChecked,\n\tDirective,\n\tElementRef,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n} from '@angular/core';\nimport { BrnSelectService } from './brn-select.service';\n\n@Directive({\n\tselector: '[brnOption]',\n\tstandalone: true,\n\thostDirectives: [CdkOption],\n\thost: {\n\t\t'(mouseenter)': 'hover()',\n\t\t'(blur)': 'blur()',\n\t\t'[attr.dir]': '_selectService.dir()',\n\t\t'[attr.data-disabled]': \"disabledSignal() ? '' : undefined\",\n\t},\n})\nexport class BrnSelectOptionDirective implements FocusableOption, AfterContentChecked {\n\tprivate readonly _cdkSelectOption = inject(CdkOption, { host: true });\n\tprotected readonly _selectService = inject(BrnSelectService);\n\n\tprivate readonly _focused = signal<boolean>(false);\n\tpublic readonly elementRef = inject(ElementRef);\n\n\tpublic readonly selected = computed(() => {\n\t\tif (Array.isArray(this._selectService.value())) {\n\t\t\tconst itemFound = (this._selectService.value() as Array<unknown>).find(\n\t\t\t\t(val) => val === this._cdkSelectOption.value,\n\t\t\t);\n\t\t\treturn !!itemFound;\n\t\t}\n\t\treturn this._cdkSelectOption.value === this._selectService.value();\n\t});\n\tpublic readonly focused = computed(() => this._focused());\n\tpublic readonly checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));\n\tpublic readonly dir = computed(() => this._selectService.dir());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._cdkSelectOption.value = this.value();\n\t\t});\n\t\teffect(() => {\n\t\t\tthis._cdkSelectOption.disabled = this.disabledSignal();\n\t\t});\n\t}\n\tngAfterContentChecked(): void {\n\t\tthis._cdkSelectOption.value = this.value();\n\t}\n\n\tpublic value = input<unknown | null>(null);\n\n\t// we use \"disabledSignal\" here because disabled is already defined in the FocusableOption interface\n\tpublic readonly disabledSignal = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected hover(): void {\n\t\tthis.focus();\n\t}\n\n\tpublic focus(): void {\n\t\tthis._cdkSelectOption.focus();\n\t\tthis._focused.set(true);\n\t}\n\n\tpublic blur(): void {\n\t\tthis._focused.set(false);\n\t}\n}\n","import { CdkListbox, type ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tcontentChild,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\nimport { BrnSelectService } from './brn-select.service';\n\nimport { Directive } from '@angular/core';\nimport { Subject, fromEvent, interval, takeUntil } from 'rxjs';\n\nconst SCROLLBY_PIXELS = 100;\n\n@Directive({\n\tselector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollUpDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusUp());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollDownDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusDown());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Component({\n\tselector: 'brn-select-content, hlm-select-content:not(noHlm)',\n\tstandalone: true,\n\timports: [BrnSelectScrollUpDirective, BrnSelectScrollDownDirective, NgTemplateOutlet],\n\thostDirectives: [CdkListbox],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-labelledBy]': 'labelledBy()',\n\t\t'[attr.aria-controlledBy]': \"id() +'--trigger'\",\n\t\t'[id]': \"id() + '--content'\",\n\t\t'[attr.dir]': '_selectService.dir()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tflex-direction: column;\n\t\t\t\toutline: none;\n\t\t\t\tpointer-events: auto;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport] {\n\t\t\t\tscrollbar-width: none;\n\t\t\t\t-ms-overflow-style: none;\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport]::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\ttemplate: `\n\t\t<ng-template #scrollUp>\n\t\t\t<ng-content select=\"hlm-select-scroll-up\" />\n\t\t\t<ng-content select=\"brnSelectScrollUp\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollUp() && scrollUpBtn() ? scrollUp : null\" />\n\t\t<div\n\t\t\tdata-brn-select-viewport\n\t\t\t#viewport\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\tstyle=\"flex: 1 1 0%;\n\t\t\tposition: relative;\n\t\t\twidth:100%;\n\t\t\toverflow:auto;\n\t\t\tmin-height: 36px;\n padding-bottom: 2px;\n margin-bottom: -2px;\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<ng-template #scrollDown>\n\t\t\t<ng-content select=\"brnSelectScrollDown\" />\n\t\t\t<ng-content select=\"hlm-select-scroll-down\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollDown() && scrollDownBtn() ? scrollDown : null\" />\n\t`,\n})\nexport class BrnSelectContentComponent implements AfterViewInit {\n\tprivate readonly _el: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _cdkListbox = inject(CdkListbox, { host: true });\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprotected readonly _selectService = inject(BrnSelectService);\n\n\tprotected readonly labelledBy = this._selectService.labelId;\n\tprotected readonly id = this._selectService.id;\n\tprotected readonly canScrollUp = signal(false);\n\tprotected readonly canScrollDown = signal(false);\n\n\tprotected initialSelectedOptions$ = toObservable(this._selectService.selectedOptions);\n\n\tprotected viewport = viewChild.required<ElementRef<HTMLElement>>('viewport');\n\n\tprotected scrollUpBtn = contentChild.required(BrnSelectScrollUpDirective);\n\n\tprotected scrollDownBtn = contentChild.required(BrnSelectScrollDownDirective);\n\n\tprotected _options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\tconstructor() {\n\t\tthis._cdkListbox.valueChange\n\t\t\t.asObservable()\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe((val: ListboxValueChangeEvent<unknown>) => this._selectService.listBoxValueChangeEvent$.next(val));\n\n\t\teffect(() => {\n\t\t\tthis._cdkListbox.multiple = this._selectService.multiple();\n\t\t\tthis._selectService.isExpanded() && setTimeout(() => this.updateArrowDisplay());\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.setInitiallySelectedOptions();\n\t}\n\n\tprivate setInitiallySelectedOptions() {\n\t\tthis.initialSelectedOptions$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((selectedOptions) => {\n\t\t\t// Reapplying cdkLibstbox multiple because seems this is running before effect that\n\t\t\t// updates cdklistbox, reapplying multiple true so we can set the multiple initial options\n\t\t\tif (this._selectService.multiple()) {\n\t\t\t\tthis._cdkListbox.multiple = true;\n\t\t\t}\n\n\t\t\tfor (const cdkOption of this._selectService.possibleOptions()) {\n\t\t\t\tif (selectedOptions.includes(cdkOption)) {\n\t\t\t\t\tcdkOption?.select();\n\t\t\t\t} else {\n\t\t\t\t\tcdkOption?.deselect();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const cdkOption of selectedOptions) {\n\t\t\t\tcdkOption?.select();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic updateArrowDisplay(): void {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;\n\t\tthis.canScrollUp.set(scrollTop > 0);\n\t\tconst maxScroll = scrollHeight - clientHeight;\n\t\tthis.canScrollDown.set(Math.ceil(scrollTop) < maxScroll);\n\t}\n\n\tpublic handleScroll() {\n\t\tthis.updateArrowDisplay();\n\t}\n\n\tpublic focusList(): void {\n\t\tthis._cdkListbox.focus();\n\t}\n\n\tpublic moveFocusUp() {\n\t\tthis.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tif (this.viewport().nativeElement.scrollTop === 0) {\n\t\t\tthis.scrollUpBtn().stopEmittingEvents();\n\t\t}\n\t}\n\n\tpublic moveFocusDown() {\n\t\tthis.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tconst viewportSize = this._el.nativeElement.scrollHeight;\n\t\tconst viewportScrollPosition = this.viewport().nativeElement.scrollTop;\n\t\tif (\n\t\t\tviewportSize + viewportScrollPosition + SCROLLBY_PIXELS >\n\t\t\tthis.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2\n\t\t) {\n\t\t\tthis.scrollDownBtn().stopEmittingEvents();\n\t\t}\n\t}\n}\n","import { Directive, signal } from '@angular/core';\n\n@Directive({\n\tselector: '[brnSelectGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.aria-labelledby]': 'labelledBy()',\n\t},\n})\nexport class BrnSelectGroupDirective {\n\tpublic readonly labelledBy = signal('');\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { BrnSelectGroupDirective } from './brn-select-group.directive';\n\n@Directive({\n\tselector: '[brnSelectLabel]',\n\thostDirectives: [BrnLabelDirective],\n\tstandalone: true,\n})\nexport class BrnSelectLabelDirective {\n\tprivate readonly _group = inject(BrnSelectGroupDirective, { optional: true });\n\tprivate readonly _label = inject(BrnLabelDirective, { host: true });\n\n\tconstructor() {\n\t\tthis._group?.labelledBy.set(this._label.id());\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BrnSelectService } from './brn-select.service';\n\n@Component({\n\tselector: 'brn-select-value, hlm-select-value',\n\ttemplate: `\n\t\t{{ value || placeholder() }}\n\t`,\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t-webkit-line-clamp: 1;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t`,\n\t],\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnSelectValueComponent {\n\tprivate readonly _selectService = inject(BrnSelectService);\n\n\tpublic readonly id = computed(() => `${this._selectService.id()}--value`);\n\tpublic readonly placeholder = computed(() => this._selectService.placeholder());\n\tpublic value: string | null = null;\n\n\tpublic readonly transformFn = input<(values: (string | undefined)[]) => any>((values) => (values ?? []).join(', '));\n\n\tconstructor() {\n\t\tconst cdr = inject(ChangeDetectorRef);\n\n\t\t// In certain cases (when using a computed signal for value) where the value of the select and the options are\n\t\t// changed dynamically, the template does not update until the next frame. To work around this we can use a simple\n\t\t// string variable in the template and manually trigger change detection when we update it.\n\t\ttoObservable(this._selectService.selectedOptions)\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe((value) => {\n\t\t\t\tif (value.length === 0) {\n\t\t\t\t\tthis.value = null;\n\t\t\t\t\tcdr.detectChanges();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selectedLabels = value.map((selectedOption) => selectedOption?.getLabel());\n\n\t\t\t\tif (this._selectService.dir() === 'rtl') {\n\t\t\t\t\tselectedLabels.reverse();\n\t\t\t\t}\n\t\t\t\tconst result = this.transformFn()(selectedLabels);\n\t\t\t\tthis.value = result;\n\t\t\t\tcdr.detectChanges();\n\t\t\t});\n\t}\n}\n","import { CdkListbox, CdkListboxModule, CdkOption } from '@angular/cdk/listbox';\nimport {\n\tCdkConnectedOverlay,\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\tOverlayModule,\n} from '@angular/cdk/overlay';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\ttype DoCheck,\n\ttype Signal,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { ChangeFn, ErrorStateMatcher, ErrorStateTracker, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/ui-core';\nimport { Subject, combineLatest, delay, map, of, switchMap } from 'rxjs';\nimport { BrnSelectContentComponent } from './brn-select-content.component';\nimport { BrnSelectService } from './brn-select.service';\n\nexport type BrnReadDirection = 'ltr' | 'rtl';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'brn-select, hlm-select',\n\tstandalone: true,\n\timports: [OverlayModule, CdkListboxModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tBrnSelectService,\n\t\tCdkListbox,\n\t\tprovideExposedSideProviderExisting(() => BrnSelectComponent),\n\t\tprovideExposesStateProviderExisting(() => BrnSelectComponent),\n\t\t{\n\t\t\tprovide: BrnFormFieldControl,\n\t\t\tuseExisting: BrnSelectComponent,\n\t\t},\n\t],\n\ttemplate: `\n\t\t@if (!labelProvided() && placeholder()) {\n\t\t\t<label class=\"hidden\" [attr.id]=\"backupLabelId()\">{{ placeholder() }}</label>\n\t\t} @else {\n\t\t\t<ng-content select=\"label[hlmLabel],label[brnLabel]\" />\n\t\t}\n\n\t\t<div cdk-overlay-origin (click)=\"toggle()\" #trigger=\"cdkOverlayOrigin\">\n\t\t\t<ng-content select=\"hlm-select-trigger,[brnSelectTrigger]\" />\n\t\t</div>\n\t\t<ng-template\n\t\t\tcdk-connected-overlay\n\t\t\tcdkConnectedOverlayLockPosition\n\t\t\tcdkConnectedOverlayHasBackdrop\n\t\t\tcdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n\t\t\t[cdkConnectedOverlayOrigin]=\"trigger\"\n\t\t\t[cdkConnectedOverlayOpen]=\"_delayedExpanded()\"\n\t\t\t[cdkConnectedOverlayPositions]=\"_positions\"\n\t\t\t[cdkConnectedOverlayWidth]=\"triggerWidth() > 0 ? triggerWidth() : 'auto'\"\n\t\t\t(backdropClick)=\"close()\"\n\t\t\t(detach)=\"close()\"\n\t\t\t(positionChange)=\"_positionChanges$.next($event)\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t`,\n})\nexport class BrnSelectComponent<T = unknown>\n\timplements ControlValueAccessor, AfterContentInit, DoCheck, ExposesSide, ExposesState, BrnFormFieldControl\n{\n\tprivate readonly _selectService = inject(BrnSelectService);\n\n\tpublic readonly triggerWidth = this._selectService.triggerWidth;\n\n\tpublic readonly multiple = input<boolean>(false);\n\tpublic readonly placeholder = input<string>('');\n\tpublic readonly disabled = input<boolean>(false);\n\tpublic readonly dir = input<BrnReadDirection>('ltr');\n\tprivate readonly _disabledFromSetDisabledState = signal(false);\n\n\tprotected selectLabel = contentChild(BrnLabelDirective, { descendants: false });\n\t/** Overlay pane containing the options. */\n\tprotected selectContent = contentChild.required(BrnSelectContentComponent);\n\n\tprotected options = contentChildren(CdkOption, { descendants: true });\n\tprotected options$ = toObservable(this.options);\n\tprotected optionsAndIndex$ = this.options$.pipe(map((options, index) => [options, index] as const));\n\n\t/** Overlay pane containing the options. */\n\tprotected _overlayDir = viewChild(CdkConnectedOverlay);\n\n\tpublic readonly openedChange = output<boolean>();\n\n\tpublic readonly closeDelay = input<number>(100);\n\tpublic readonly isExpanded = this._selectService.isExpanded;\n\tprotected readonly _delayedExpanded = toSignal(\n\t\ttoObservable(this.isExpanded).pipe(\n\t\t\tswitchMap((expanded) => (!expanded ? of(expanded).pipe(delay(this.closeDelay())) : of(expanded))),\n\t\t\ttakeUntilDestroyed(),\n\t\t),\n\t\t{ initialValue: false },\n\t);\n\tpublic readonly state = computed(() => (this.isExpanded() ? 'open' : 'closed'));\n\n\tprotected readonly _positionChanges$ = new Subject<ConnectedOverlayPositionChange>();\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis._positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic readonly backupLabelId = computed(() => this._selectService.labelId());\n\tpublic readonly labelProvided = signal(false);\n\n\tpublic readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: ChangeFn<T> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\tprivate readonly _shouldEmitValueChange = signal(false);\n\n\t/*\n\t * This position config ensures that the top \"start\" corner of the overlay\n\t * is aligned with with the top \"start\" of the origin by default (overlapping\n\t * the trigger completely). If the panel cannot fit below the trigger, it\n\t * will fall back to a position above the trigger.\n\t */\n\tprotected _positions: ConnectedPosition[] = [\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t];\n\n\tpublic errorStateTracker: ErrorStateTracker;\n\n\tprivate readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n\tpublic errorState = computed(() => this.errorStateTracker.errorState());\n\n\tpublic writeValue$ = new Subject<T>();\n\n\tconstructor() {\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tmultiple: this.multiple,\n\t\t\tplaceholder: this.placeholder,\n\t\t\tdisabled: this.disabled,\n\t\t\tdisabledBySetDisabled: this._disabledFromSetDisabledState,\n\t\t\tdir: this.dir,\n\t\t}));\n\t\tthis.handleOptionChanges();\n\t\tthis.handleInitialOptionSelect();\n\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tid: `brn-select-${nextId++}`,\n\t\t}));\n\t\tif (this.ngControl !== null) {\n\t\t\tthis.ngControl.valueAccessor = this;\n\t\t}\n\n\t\t// Watch for Listbox Selection Changes to trigger Collapse and Value Change\n\t\tthis._selectService.listBoxValueChangeEvent$.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tif (!this.multiple()) {\n\t\t\t\tthis.close();\n\t\t\t}\n\n\t\t\t// we set shouldEmitValueChange to true because we want to propagate the value change\n\t\t\t// as a result of user interaction\n\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t});\n\n\t\t/**\n\t\t * Listening to value changes in order to trigger forms api on change\n\t\t * ShouldEmitValueChange simply ensures we only propagate value change when a user makes a selection\n\t\t * we don't propagate changes made from outside the component (ex. patch value or initial value from form control)\n\t\t */\n\t\ttoObservable(this._selectService.value).subscribe((value) => {\n\t\t\tif (this._shouldEmitValueChange()) {\n\t\t\t\tthis._onChange((value ?? null) as T);\n\t\t\t}\n\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t});\n\n\t\tthis.errorStateTracker = new ErrorStateTracker(\n\t\t\tthis._defaultErrorStateMatcher,\n\t\t\tthis.ngControl,\n\t\t\tthis._parentFormGroup,\n\t\t\tthis._parentForm,\n\t\t);\n\t}\n\n\tpublic ngAfterContentInit(): void {\n\t\t// Check if Label Directive Provided and pass to service\n\t\tconst label = this.selectLabel();\n\t\tif (label) {\n\t\t\tthis.labelProvided.set(true);\n\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tlabelId: label.id(),\n\t\t\t}));\n\t\t} else if (this.placeholder()) {\n\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tlabelId: `${state.id}--label`,\n\t\t\t}));\n\t\t}\n\t}\n\n\tngDoCheck() {\n\t\tthis.errorStateTracker.updateErrorState();\n\t}\n\n\tpublic toggle(): void {\n\t\tif (this.isExpanded()) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tpublic open(): void {\n\t\tif (!this._canOpen()) return;\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tisExpanded: true,\n\t\t}));\n\t\tthis.openedChange.emit(true);\n\t\tthis._moveFocusToCDKList();\n\t}\n\n\tpublic close(): void {\n\t\tif (!this.isExpanded()) return;\n\n\t\tif (this._selectService.selectTrigger) {\n\t\t\tthis._selectService.selectTrigger.focus();\n\t\t}\n\n\t\tthis.openedChange.emit(false);\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tisExpanded: false,\n\t\t}));\n\t\tthis._onTouched();\n\t}\n\n\tprotected _canOpen(): boolean {\n\t\treturn !this.isExpanded() && !this.disabled() && this.options()?.length > 0;\n\t}\n\n\tprivate _moveFocusToCDKList(): void {\n\t\tsetTimeout(() => {\n\t\t\tthis.selectContent()?.focusList();\n\t\t});\n\t}\n\n\tpublic writeValue(value: T): void {\n\t\tthis.writeValue$.next(value);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean) {\n\t\tthis._disabledFromSetDisabledState.set(isDisabled);\n\t}\n\n\t/**\n\t * Once writeValue is called and options are available we can handle setting the initial options\n\t * @private\n\t */\n\tprivate handleInitialOptionSelect() {\n\t\t// Write value cannot be handled until options are available, so we wait until both are available with a combineLatest\n\t\tcombineLatest([this.writeValue$, this.options$])\n\t\t\t.pipe(\n\t\t\t\tmap((values, index) => [...values, index]),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe(([value, _, index]) => {\n\t\t\t\tthis._shouldEmitValueChange.set(false);\n\t\t\t\tthis._selectService.setInitialSelectedOptions(value);\n\t\t\t\t// the first time this observable emits a value we are simply setting the initial state\n\t\t\t\t// this change should not count as changing the state of the select, so we need to mark as pristine\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tthis.ngControl?.control?.markAsPristine();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\t/**\n\t * When options change, our current selected options may become invalid\n\t * Here we will automatically update our current selected options so that they are always inline with the possibleOptions\n\t * @private\n\t */\n\tprivate handleOptionChanges() {\n\t\tthis.optionsAndIndex$.pipe(takeUntilDestroyed()).subscribe(([options, index]) => {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.handleInvalidOptions(options);\n\t\t\t}\n\t\t\tthis.updatePossibleOptions(options);\n\t\t});\n\t}\n\n\t/**\n\t * Check that our \"selectedOptions\" are still valid when \"possibleOptions\" is about to be updated\n\t */\n\tprivate handleInvalidOptions(options: readonly CdkOption[]) {\n\t\tconst selectedOptions = this._selectService.selectedOptions();\n\t\tconst availableOptionSet = new Set<CdkOption | null>(options);\n\t\tif (this._selectService.multiple()) {\n\t\t\tconst filteredOptions = selectedOptions.filter((o) => availableOptionSet.has(o));\n\t\t\t// only update if there was an actual change\n\t\t\tif (selectedOptions.length !== filteredOptions.length) {\n\t\t\t\t// update should result in a value change since we are deselecting a value\n\t\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t\t\tconst value = filteredOptions.map((o) => (o?.value as string) ?? '');\n\t\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: filteredOptions,\n\t\t\t\t\tvalue: value,\n\t\t\t\t}));\n\t\t\t\tthis._onChange((value ?? null) as T);\n\t\t\t}\n\t\t} else {\n\t\t\tconst selectedOption = selectedOptions[0] ?? null;\n\t\t\tif (selectedOption !== null && !availableOptionSet.has(selectedOption)) {\n\t\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: [],\n\t\t\t\t\tvalue: '',\n\t\t\t\t}));\n\t\t\t\tthis._onChange('' as T);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sync the updated options with \"possibleOptions\" in the select service\n\t */\n\tprivate updatePossibleOptions(options: readonly CdkOption[]) {\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tpossibleOptions: options as CdkOption[],\n\t\t}));\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport {\n\tBrnSelectContentComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n} from './lib/brn-select-content.component';\nimport { BrnSelectGroupDirective } from './lib/brn-select-group.directive';\nimport { BrnSelectLabelDirective } from './lib/brn-select-label.directive';\nimport { BrnSelectOptionDirective } from './lib/brn-select-option.directive';\nimport { BrnSelectValueComponent } from './lib/brn-select-value.component';\nimport { BrnSelectComponent } from './lib/brn-select.component';\nimport { BrnSelectTriggerDirective } from './lib/brn-select.service';\nexport * from './lib/brn-select-content.component';\nexport * from './lib/brn-select-group.directive';\nexport * from './lib/brn-select-label.directive';\nexport * from './lib/brn-select-option.directive';\nexport * from './lib/brn-select-value.component';\nexport * from './lib/brn-select.component';\nexport * from './lib/brn-select.service';\n\nexport const BrnSelectImports = [\n\tBrnSelectComponent,\n\tBrnSelectContentComponent,\n\tBrnSelectTriggerDirective,\n\tBrnSelectOptionDirective,\n\tBrnSelectValueComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n\tBrnSelectGroupDirective,\n\tBrnSelectLabelDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSelectImports],\n\texports: [...BrnSelectImports],\n})\nexport class BrnSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-select.mjs","sources":["../../../../libs/brain/select/src/lib/brn-select.service.ts","../../../../libs/brain/select/src/lib/brn-select-option.directive.ts","../../../../libs/brain/select/src/lib/brn-select-content.component.ts","../../../../libs/brain/select/src/lib/brn-select-group.directive.ts","../../../../libs/brain/select/src/lib/brn-select-label.directive.ts","../../../../libs/brain/select/src/lib/brn-select-value.component.ts","../../../../libs/brain/select/src/lib/brn-select.component.ts","../../../../libs/brain/select/src/index.ts","../../../../libs/brain/select/src/spartan-ng-brain-select.ts"],"sourcesContent":["import type { CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tDirective,\n\tElementRef,\n\tInjectable,\n\tOnDestroy,\n\tPLATFORM_ID,\n\tSignal,\n\tcomputed,\n\tinject,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\n@Directive({\n\tselector: '[brnSelectTrigger]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'combobox',\n\t\t'[attr.id]': 'selectTriggerId()',\n\t\t'[disabled]': 'selectDisable()',\n\t\t'[attr.aria-expanded]': 'isExpanded()',\n\t\t'[attr.aria-controls]': \"selectContentId() + ''\",\n\t\t'[attr.aria-labelledBy]': 'selectTriggerLabelledBy()',\n\t\t'aria-autocomplete': 'none',\n\t\t'[attr.dir]': '_selectService.dir()',\n\t\t'[class.ng-invalid]': 'this._ngControl?.invalid || null',\n\t\t'[class.ng-dirty]': 'this._ngControl?.dirty || null',\n\t\t'[class.ng-valid]': 'this._ngControl?.valid || null',\n\t\t'[class.ng-touched]': 'this._ngControl?.touched || null',\n\t\t'[class.ng-untouched]': 'this._ngControl?.untouched || null',\n\t\t'[class.ng-pristine]': 'this._ngControl?.pristine || null',\n\t\ttype: 'button',\n\t},\n})\nexport class BrnSelectTriggerDirective implements AfterViewInit, OnDestroy {\n\tprivate readonly _el = inject(ElementRef);\n\tprotected readonly _selectService = inject(BrnSelectService);\n\tprotected readonly _ngControl = inject(NgControl, { optional: true });\n\tprivate readonly _platform = inject(PLATFORM_ID);\n\tpublic readonly isExpanded = this._selectService.isExpanded;\n\tpublic readonly selectTriggerId = computed(() => `${this._selectService.id()}--trigger`);\n\tpublic readonly selectContentId = computed(() => `${this._selectService.id()}--content`);\n\tpublic readonly selectDisable = computed(() => this._selectService.disabled());\n\tpublic readonly selectTriggerLabelledBy = computed(() => {\n\t\tif (this._selectService.value() && this._selectService.value().length > 0) {\n\t\t\treturn `${this._selectService.labelId()} ${this._selectService.id()}--value`;\n\t\t}\n\t\treturn this._selectService.labelId();\n\t});\n\n\tprivate _resizeObserver?: ResizeObserver;\n\n\tconstructor() {\n\t\tif (!this._selectService) return;\n\t\tthis._selectService._setSelectTrigger(this);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis._selectService.setTriggerWidth(this._el.nativeElement.offsetWidth);\n\n\t\t// if we are on the client, listen for element resize events\n\t\tif (isPlatformBrowser(this._platform)) {\n\t\t\tthis._resizeObserver = new ResizeObserver(() =>\n\t\t\t\tthis._selectService.setTriggerWidth(this._el.nativeElement.offsetWidth),\n\t\t\t);\n\n\t\t\tthis._resizeObserver.observe(this._el.nativeElement);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._resizeObserver?.disconnect();\n\t}\n\n\tpublic focus() {\n\t\tthis._el.nativeElement.focus();\n\t}\n}\n\ntype BrnReadDirection = 'ltr' | 'rtl';\n\n@Injectable()\nexport class BrnSelectService {\n\tpublic readonly state = signal<{\n\t\tid: string;\n\t\tlabelId: string;\n\t\tpanelId: string;\n\t\tplaceholder: Signal<string>;\n\t\tisExpanded: boolean;\n\t\tmultiple: Signal<boolean>;\n\t\tdisabled: Signal<boolean>;\n\t\tdisabledBySetDisabled: Signal<boolean>;\n\t\tdir: Signal<BrnReadDirection>;\n\t\tselectedOptions: Array<CdkOption | null>;\n\t\tpossibleOptions: Array<CdkOption | null>;\n\t\tvalue: string | string[];\n\t\ttriggerWidth: number;\n\t}>({\n\t\tid: '',\n\t\tlabelId: '',\n\t\tpanelId: '',\n\t\tisExpanded: false,\n\t\tplaceholder: signal(''),\n\t\tmultiple: signal(false),\n\t\tdisabled: signal(false),\n\t\tdisabledBySetDisabled: signal(false),\n\t\tdir: signal('ltr' as BrnReadDirection),\n\t\tselectedOptions: [],\n\t\tpossibleOptions: [],\n\t\tvalue: '',\n\t\ttriggerWidth: 0,\n\t});\n\n\tpublic readonly id = computed(() => this.state().id);\n\tpublic readonly labelId = computed(() => this.state().labelId);\n\tpublic readonly panelId = computed(() => this.state().panelId);\n\tpublic readonly placeholder = computed(() => this.state().placeholder());\n\tpublic readonly disabled = computed(() => this.state().disabled() || this.state().disabledBySetDisabled());\n\tpublic readonly isExpanded = computed(() => this.state().isExpanded);\n\tpublic readonly multiple = computed(() => this.state().multiple());\n\tpublic readonly dir = computed(() => this.state().dir());\n\tpublic readonly selectedOptions = computed(() => this.state().selectedOptions);\n\tpublic readonly value = computed(() => this.state().value);\n\tpublic readonly triggerWidth = computed(() => this.state().triggerWidth);\n\tpublic readonly possibleOptions = computed(() => this.state().possibleOptions);\n\n\tprivate readonly _multiple$ = toObservable(this.multiple);\n\n\tpublic readonly listBoxValueChangeEvent$ = new Subject<ListboxValueChangeEvent<unknown>>();\n\n\tprivate _selectTrigger?: BrnSelectTriggerDirective;\n\tpublic get selectTrigger() {\n\t\treturn this._selectTrigger;\n\t}\n\n\tconstructor() {\n\t\tthis.listBoxValueChangeEvent$.pipe(takeUntilDestroyed()).subscribe((listBoxChange) => {\n\t\t\tconst updatedSelections = this.multiple() ? this.getUpdatedOptions(listBoxChange) : [listBoxChange.option];\n\t\t\tconst value = this.multiple() ? listBoxChange.value : listBoxChange.value[0];\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions: [...updatedSelections],\n\t\t\t\tvalue: value as string | string[],\n\t\t\t}));\n\t\t});\n\n\t\t// We need to skip the first value because we don't want to deselect all options when the component is initialized with a preselected value e.g. by the form control\n\t\tthis._multiple$.pipe(skip(1), takeUntilDestroyed()).subscribe((multiple) => {\n\t\t\tif (!multiple && this.value().length > 1) {\n\t\t\t\tthis.deselectAllOptions();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic setTriggerWidth(triggerWidth: number) {\n\t\tthis.state.update((s) => ({ ...s, triggerWidth }));\n\t}\n\n\tpublic getUpdatedOptions(latestListboxChange: ListboxValueChangeEvent<unknown>): Array<CdkOption | null> {\n\t\tconst isNewSelection = latestListboxChange.value.findIndex((value) => value === latestListboxChange.option?.value);\n\t\tif (isNewSelection === -1) {\n\t\t\tconst removedOptionIndex = this.selectedOptions().findIndex((option) => latestListboxChange.option === option);\n\t\t\tconst options = this.selectedOptions();\n\t\t\toptions.splice(removedOptionIndex, 1);\n\t\t\treturn options;\n\t\t}\n\t\treturn [...this.selectedOptions(), latestListboxChange.option];\n\t}\n\n\tpublic deselectAllOptions() {\n\t\tthis.state.update((state) => ({\n\t\t\t...state,\n\t\t\tselectedOptions: [],\n\t\t\tvalue: [],\n\t\t}));\n\t}\n\n\t// Needed due to https://github.com/angular/angular/issues/20810\n\tpublic _setSelectTrigger(trigger: BrnSelectTriggerDirective) {\n\t\tthis._selectTrigger = trigger;\n\t}\n\n\tpublic setInitialSelectedOptions(value: unknown) {\n\t\tthis.selectOptionByValue(value);\n\t\tthis.state.update((state) => ({\n\t\t\t...state,\n\t\t\tvalue: value as string | string[],\n\t\t\tinitialSelectedOptions: this.selectedOptions(),\n\t\t\tselectedOptions: this.selectedOptions(),\n\t\t}));\n\t}\n\n\tprivate selectOptionByValue(value: unknown) {\n\t\tconst options = this.possibleOptions();\n\t\tif (value === null || value === undefined) {\n\t\t\tconst nullOrUndefinedOption = options.find((o) => o && o.value === value);\n\t\t\tif (!nullOrUndefinedOption) {\n\t\t\t\tthis.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: [],\n\t\t\t\t\tvalue: this.multiple() ? [] : '',\n\t\t\t\t}));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.multiple()) {\n\t\t\tconst selectedOptions = options.filter((option) => {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\treturn value.includes(option?.value as string);\n\t\t\t\t}\n\t\t\t\treturn value === option?.value;\n\t\t\t});\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions,\n\t\t\t\tvalue: value as string[],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst selectedOption = options.find((option) => option?.value === value);\n\t\t\tif (!selectedOption) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tselectedOptions: [selectedOption as CdkOption | null],\n\t\t\t\tvalue: selectedOption.value as string,\n\t\t\t}));\n\t\t}\n\t}\n}\n","import type { FocusableOption } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkOption } from '@angular/cdk/listbox';\nimport {\n\tAfterContentChecked,\n\tDirective,\n\tElementRef,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n} from '@angular/core';\nimport { BrnSelectService } from './brn-select.service';\n\n@Directive({\n\tselector: '[brnOption]',\n\tstandalone: true,\n\thostDirectives: [CdkOption],\n\thost: {\n\t\t'(mouseenter)': 'hover()',\n\t\t'(blur)': 'blur()',\n\t\t'[attr.dir]': '_selectService.dir()',\n\t\t'[attr.data-disabled]': \"disabledSignal() ? '' : undefined\",\n\t},\n})\nexport class BrnSelectOptionDirective implements FocusableOption, AfterContentChecked {\n\tprivate readonly _cdkSelectOption = inject(CdkOption, { host: true });\n\tprotected readonly _selectService = inject(BrnSelectService);\n\n\tprivate readonly _focused = signal<boolean>(false);\n\tpublic readonly elementRef = inject(ElementRef);\n\n\tpublic readonly selected = computed(() => {\n\t\tif (Array.isArray(this._selectService.value())) {\n\t\t\tconst itemFound = (this._selectService.value() as Array<unknown>).find(\n\t\t\t\t(val) => val === this._cdkSelectOption.value,\n\t\t\t);\n\t\t\treturn !!itemFound;\n\t\t}\n\t\treturn this._cdkSelectOption.value === this._selectService.value();\n\t});\n\tpublic readonly focused = computed(() => this._focused());\n\tpublic readonly checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));\n\tpublic readonly dir = computed(() => this._selectService.dir());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._cdkSelectOption.value = this.value();\n\t\t});\n\t\teffect(() => {\n\t\t\tthis._cdkSelectOption.disabled = this.disabledSignal();\n\t\t});\n\t}\n\tngAfterContentChecked(): void {\n\t\tthis._cdkSelectOption.value = this.value();\n\t}\n\n\tpublic value = input<unknown | null>(null);\n\n\t// we use \"disabledSignal\" here because disabled is already defined in the FocusableOption interface\n\tpublic readonly disabledSignal = input<boolean, BooleanInput>(false, {\n\t\talias: 'disabled',\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprotected hover(): void {\n\t\tthis.focus();\n\t}\n\n\tpublic focus(): void {\n\t\tthis._cdkSelectOption.focus();\n\t\tthis._focused.set(true);\n\t}\n\n\tpublic blur(): void {\n\t\tthis._focused.set(false);\n\t}\n}\n","import { CdkListbox, type ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tDestroyRef,\n\tElementRef,\n\tcontentChild,\n\tcontentChildren,\n\teffect,\n\tinject,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BrnSelectOptionDirective } from './brn-select-option.directive';\nimport { BrnSelectService } from './brn-select.service';\n\nimport { Directive } from '@angular/core';\nimport { Subject, fromEvent, interval } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst SCROLLBY_PIXELS = 100;\n\n@Directive({\n\tselector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollUpDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusUp());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',\n\tstandalone: true,\n\thost: {\n\t\t'aria-hidden': 'true',\n\t\t'(mouseenter)': 'startEmittingEvents()',\n\t},\n})\nexport class BrnSelectScrollDownDirective {\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _selectContent = inject(BrnSelectContentComponent);\n\n\tprivate readonly _endReached = new Subject<boolean>();\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tpublic startEmittingEvents(): void {\n\t\tconst mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');\n\n\t\tinterval(100)\n\t\t\t.pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this._selectContent.moveFocusDown());\n\t}\n\n\tpublic stopEmittingEvents(): void {\n\t\tthis._endReached.next(true);\n\t}\n}\n\n@Component({\n\tselector: 'brn-select-content, hlm-select-content:not(noHlm)',\n\tstandalone: true,\n\timports: [BrnSelectScrollUpDirective, BrnSelectScrollDownDirective, NgTemplateOutlet],\n\thostDirectives: [CdkListbox],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-labelledBy]': 'labelledBy()',\n\t\t'[attr.aria-controlledBy]': \"id() +'--trigger'\",\n\t\t'[id]': \"id() + '--content'\",\n\t\t'[attr.dir]': '_selectService.dir()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: flex;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tflex-direction: column;\n\t\t\t\toutline: none;\n\t\t\t\tpointer-events: auto;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport] {\n\t\t\t\tscrollbar-width: none;\n\t\t\t\t-ms-overflow-style: none;\n\t\t\t\t-webkit-overflow-scrolling: touch;\n\t\t\t}\n\n\t\t\t[data-brn-select-viewport]::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t`,\n\t],\n\ttemplate: `\n\t\t<ng-template #scrollUp>\n\t\t\t<ng-content select=\"hlm-select-scroll-up\" />\n\t\t\t<ng-content select=\"brnSelectScrollUp\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollUp() && scrollUpBtn() ? scrollUp : null\" />\n\t\t<div\n\t\t\tdata-brn-select-viewport\n\t\t\t#viewport\n\t\t\t(scroll)=\"handleScroll()\"\n\t\t\tstyle=\"flex: 1 1 0%;\n\t\t\tposition: relative;\n\t\t\twidth:100%;\n\t\t\toverflow:auto;\n\t\t\tmin-height: 36px;\n padding-bottom: 2px;\n margin-bottom: -2px;\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<ng-template #scrollDown>\n\t\t\t<ng-content select=\"brnSelectScrollDown\" />\n\t\t\t<ng-content select=\"hlm-select-scroll-down\" />\n\t\t</ng-template>\n\t\t<ng-container *ngTemplateOutlet=\"canScrollDown() && scrollDownBtn() ? scrollDown : null\" />\n\t`,\n})\nexport class BrnSelectContentComponent implements AfterViewInit {\n\tprivate readonly _el: ElementRef<HTMLElement> = inject(ElementRef);\n\tprivate readonly _cdkListbox = inject(CdkListbox, { host: true });\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprotected readonly _selectService = inject(BrnSelectService);\n\n\tprotected readonly labelledBy = this._selectService.labelId;\n\tprotected readonly id = this._selectService.id;\n\tprotected readonly canScrollUp = signal(false);\n\tprotected readonly canScrollDown = signal(false);\n\n\tprotected initialSelectedOptions$ = toObservable(this._selectService.selectedOptions);\n\n\tprotected viewport = viewChild.required<ElementRef<HTMLElement>>('viewport');\n\n\tprotected scrollUpBtn = contentChild.required(BrnSelectScrollUpDirective);\n\n\tprotected scrollDownBtn = contentChild.required(BrnSelectScrollDownDirective);\n\n\tprotected _options = contentChildren(BrnSelectOptionDirective, { descendants: true });\n\n\tconstructor() {\n\t\tthis._cdkListbox.valueChange\n\t\t\t.asObservable()\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe((val: ListboxValueChangeEvent<unknown>) => this._selectService.listBoxValueChangeEvent$.next(val));\n\n\t\teffect(() => {\n\t\t\tthis._cdkListbox.multiple = this._selectService.multiple();\n\t\t\tthis._selectService.isExpanded() && setTimeout(() => this.updateArrowDisplay());\n\t\t});\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.setInitiallySelectedOptions();\n\t}\n\n\tprivate setInitiallySelectedOptions() {\n\t\tthis.initialSelectedOptions$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((selectedOptions) => {\n\t\t\t// Reapplying cdkLibstbox multiple because seems this is running before effect that\n\t\t\t// updates cdklistbox, reapplying multiple true so we can set the multiple initial options\n\t\t\tif (this._selectService.multiple()) {\n\t\t\t\tthis._cdkListbox.multiple = true;\n\t\t\t}\n\n\t\t\tfor (const cdkOption of this._selectService.possibleOptions()) {\n\t\t\t\tif (selectedOptions.includes(cdkOption)) {\n\t\t\t\t\tcdkOption?.select();\n\t\t\t\t} else {\n\t\t\t\t\tcdkOption?.deselect();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const cdkOption of selectedOptions) {\n\t\t\t\tcdkOption?.select();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic updateArrowDisplay(): void {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;\n\t\tthis.canScrollUp.set(scrollTop > 0);\n\t\tconst maxScroll = scrollHeight - clientHeight;\n\t\tthis.canScrollDown.set(Math.ceil(scrollTop) < maxScroll);\n\t}\n\n\tpublic handleScroll() {\n\t\tthis.updateArrowDisplay();\n\t}\n\n\tpublic focusList(): void {\n\t\tthis._cdkListbox.focus();\n\t}\n\n\tpublic moveFocusUp() {\n\t\tthis.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tif (this.viewport().nativeElement.scrollTop === 0) {\n\t\t\tthis.scrollUpBtn().stopEmittingEvents();\n\t\t}\n\t}\n\n\tpublic moveFocusDown() {\n\t\tthis.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });\n\t\tconst viewportSize = this._el.nativeElement.scrollHeight;\n\t\tconst viewportScrollPosition = this.viewport().nativeElement.scrollTop;\n\t\tif (\n\t\t\tviewportSize + viewportScrollPosition + SCROLLBY_PIXELS >\n\t\t\tthis.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2\n\t\t) {\n\t\t\tthis.scrollDownBtn().stopEmittingEvents();\n\t\t}\n\t}\n}\n","import { Directive, signal } from '@angular/core';\n\n@Directive({\n\tselector: '[brnSelectGroup]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'group',\n\t\t'[attr.aria-labelledby]': 'labelledBy()',\n\t},\n})\nexport class BrnSelectGroupDirective {\n\tpublic readonly labelledBy = signal('');\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { BrnSelectGroupDirective } from './brn-select-group.directive';\n\n@Directive({\n\tselector: '[brnSelectLabel]',\n\thostDirectives: [BrnLabelDirective],\n\tstandalone: true,\n})\nexport class BrnSelectLabelDirective {\n\tprivate readonly _group = inject(BrnSelectGroupDirective, { optional: true });\n\tprivate readonly _label = inject(BrnLabelDirective, { host: true });\n\n\tconstructor() {\n\t\tthis._group?.labelledBy.set(this._label.id());\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BrnSelectService } from './brn-select.service';\n\n@Component({\n\tselector: 'brn-select-value, hlm-select-value',\n\ttemplate: `\n\t\t{{ value || placeholder() }}\n\t`,\n\thost: {\n\t\t'[id]': 'id()',\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t-webkit-line-clamp: 1;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t`,\n\t],\n\tstandalone: true,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnSelectValueComponent {\n\tprivate readonly _selectService = inject(BrnSelectService);\n\n\tpublic readonly id = computed(() => `${this._selectService.id()}--value`);\n\tpublic readonly placeholder = computed(() => this._selectService.placeholder());\n\tpublic value: string | null = null;\n\n\tpublic readonly transformFn = input<(values: (string | undefined)[]) => any>((values) => (values ?? []).join(', '));\n\n\tconstructor() {\n\t\tconst cdr = inject(ChangeDetectorRef);\n\n\t\t// In certain cases (when using a computed signal for value) where the value of the select and the options are\n\t\t// changed dynamically, the template does not update until the next frame. To work around this we can use a simple\n\t\t// string variable in the template and manually trigger change detection when we update it.\n\t\ttoObservable(this._selectService.selectedOptions)\n\t\t\t.pipe(takeUntilDestroyed())\n\t\t\t.subscribe((value) => {\n\t\t\t\tif (value.length === 0) {\n\t\t\t\t\tthis.value = null;\n\t\t\t\t\tcdr.detectChanges();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selectedLabels = value.map((selectedOption) => selectedOption?.getLabel());\n\n\t\t\t\tif (this._selectService.dir() === 'rtl') {\n\t\t\t\t\tselectedLabels.reverse();\n\t\t\t\t}\n\t\t\t\tconst result = this.transformFn()(selectedLabels);\n\t\t\t\tthis.value = result;\n\t\t\t\tcdr.detectChanges();\n\t\t\t});\n\t}\n}\n","import { CdkListbox, CdkListboxModule, CdkOption } from '@angular/cdk/listbox';\nimport {\n\tCdkConnectedOverlay,\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\tOverlayModule,\n} from '@angular/cdk/overlay';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\ttype DoCheck,\n\ttype Signal,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tinject,\n\tinput,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnFormFieldControl } from '@spartan-ng/brain/form-field';\nimport { ChangeFn, ErrorStateMatcher, ErrorStateTracker, TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { Subject, combineLatest, of } from 'rxjs';\nimport { delay, map, switchMap } from 'rxjs/operators';\nimport { BrnSelectContentComponent } from './brn-select-content.component';\nimport { BrnSelectService } from './brn-select.service';\n\nexport type BrnReadDirection = 'ltr' | 'rtl';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'brn-select, hlm-select',\n\tstandalone: true,\n\timports: [OverlayModule, CdkListboxModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\tBrnSelectService,\n\t\tCdkListbox,\n\t\tprovideExposedSideProviderExisting(() => BrnSelectComponent),\n\t\tprovideExposesStateProviderExisting(() => BrnSelectComponent),\n\t\t{\n\t\t\tprovide: BrnFormFieldControl,\n\t\t\tuseExisting: BrnSelectComponent,\n\t\t},\n\t],\n\ttemplate: `\n\t\t@if (!labelProvided() && placeholder()) {\n\t\t\t<label class=\"hidden\" [attr.id]=\"backupLabelId()\">{{ placeholder() }}</label>\n\t\t} @else {\n\t\t\t<ng-content select=\"label[hlmLabel],label[brnLabel]\" />\n\t\t}\n\n\t\t<div cdk-overlay-origin (click)=\"toggle()\" #trigger=\"cdkOverlayOrigin\">\n\t\t\t<ng-content select=\"hlm-select-trigger,[brnSelectTrigger]\" />\n\t\t</div>\n\t\t<ng-template\n\t\t\tcdk-connected-overlay\n\t\t\tcdkConnectedOverlayLockPosition\n\t\t\tcdkConnectedOverlayHasBackdrop\n\t\t\tcdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n\t\t\t[cdkConnectedOverlayOrigin]=\"trigger\"\n\t\t\t[cdkConnectedOverlayOpen]=\"_delayedExpanded()\"\n\t\t\t[cdkConnectedOverlayPositions]=\"_positions\"\n\t\t\t[cdkConnectedOverlayWidth]=\"triggerWidth() > 0 ? triggerWidth() : 'auto'\"\n\t\t\t(backdropClick)=\"close()\"\n\t\t\t(detach)=\"close()\"\n\t\t\t(positionChange)=\"_positionChanges$.next($event)\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t`,\n})\nexport class BrnSelectComponent<T = unknown>\n\timplements ControlValueAccessor, AfterContentInit, DoCheck, ExposesSide, ExposesState, BrnFormFieldControl\n{\n\tprivate readonly _selectService = inject(BrnSelectService);\n\n\tpublic readonly triggerWidth = this._selectService.triggerWidth;\n\n\tpublic readonly multiple = input<boolean>(false);\n\tpublic readonly placeholder = input<string>('');\n\tpublic readonly disabled = input<boolean>(false);\n\tpublic readonly dir = input<BrnReadDirection>('ltr');\n\tprivate readonly _disabledFromSetDisabledState = signal(false);\n\n\tprotected selectLabel = contentChild(BrnLabelDirective, { descendants: false });\n\t/** Overlay pane containing the options. */\n\tprotected selectContent = contentChild.required(BrnSelectContentComponent);\n\n\tprotected options = contentChildren(CdkOption, { descendants: true });\n\tprotected options$ = toObservable(this.options);\n\tprotected optionsAndIndex$ = this.options$.pipe(map((options, index) => [options, index] as const));\n\n\t/** Overlay pane containing the options. */\n\tprotected _overlayDir = viewChild(CdkConnectedOverlay);\n\n\tpublic readonly openedChange = output<boolean>();\n\n\tpublic readonly closeDelay = input<number>(100);\n\tpublic readonly isExpanded = this._selectService.isExpanded;\n\tprotected readonly _delayedExpanded = toSignal(\n\t\ttoObservable(this.isExpanded).pipe(\n\t\t\tswitchMap((expanded) => (!expanded ? of(expanded).pipe(delay(this.closeDelay())) : of(expanded))),\n\t\t\ttakeUntilDestroyed(),\n\t\t),\n\t\t{ initialValue: false },\n\t);\n\tpublic readonly state = computed(() => (this.isExpanded() ? 'open' : 'closed'));\n\n\tprotected readonly _positionChanges$ = new Subject<ConnectedOverlayPositionChange>();\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis._positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic readonly backupLabelId = computed(() => this._selectService.labelId());\n\tpublic readonly labelProvided = signal(false);\n\n\tpublic readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onChange: ChangeFn<T> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\tprivate readonly _shouldEmitValueChange = signal(false);\n\n\t/*\n\t * This position config ensures that the top \"start\" corner of the overlay\n\t * is aligned with with the top \"start\" of the origin by default (overlapping\n\t * the trigger completely). If the panel cannot fit below the trigger, it\n\t * will fall back to a position above the trigger.\n\t */\n\tprotected _positions: ConnectedPosition[] = [\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'bottom',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'top',\n\t\t},\n\t\t{\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t\t{\n\t\t\toriginX: 'end',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t];\n\n\tpublic errorStateTracker: ErrorStateTracker;\n\n\tprivate readonly _defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\tprivate readonly _parentForm = inject(NgForm, { optional: true });\n\tprivate readonly _parentFormGroup = inject(FormGroupDirective, { optional: true });\n\n\tpublic errorState = computed(() => this.errorStateTracker.errorState());\n\n\tpublic writeValue$ = new Subject<T>();\n\n\tconstructor() {\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tmultiple: this.multiple,\n\t\t\tplaceholder: this.placeholder,\n\t\t\tdisabled: this.disabled,\n\t\t\tdisabledBySetDisabled: this._disabledFromSetDisabledState,\n\t\t\tdir: this.dir,\n\t\t}));\n\t\tthis.handleOptionChanges();\n\t\tthis.handleInitialOptionSelect();\n\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tid: `brn-select-${nextId++}`,\n\t\t}));\n\t\tif (this.ngControl !== null) {\n\t\t\tthis.ngControl.valueAccessor = this;\n\t\t}\n\n\t\t// Watch for Listbox Selection Changes to trigger Collapse and Value Change\n\t\tthis._selectService.listBoxValueChangeEvent$.pipe(takeUntilDestroyed()).subscribe(() => {\n\t\t\tif (!this.multiple()) {\n\t\t\t\tthis.close();\n\t\t\t}\n\n\t\t\t// we set shouldEmitValueChange to true because we want to propagate the value change\n\t\t\t// as a result of user interaction\n\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t});\n\n\t\t/**\n\t\t * Listening to value changes in order to trigger forms api on change\n\t\t * ShouldEmitValueChange simply ensures we only propagate value change when a user makes a selection\n\t\t * we don't propagate changes made from outside the component (ex. patch value or initial value from form control)\n\t\t */\n\t\ttoObservable(this._selectService.value).subscribe((value) => {\n\t\t\tif (this._shouldEmitValueChange()) {\n\t\t\t\tthis._onChange((value ?? null) as T);\n\t\t\t}\n\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t});\n\n\t\tthis.errorStateTracker = new ErrorStateTracker(\n\t\t\tthis._defaultErrorStateMatcher,\n\t\t\tthis.ngControl,\n\t\t\tthis._parentFormGroup,\n\t\t\tthis._parentForm,\n\t\t);\n\t}\n\n\tpublic ngAfterContentInit(): void {\n\t\t// Check if Label Directive Provided and pass to service\n\t\tconst label = this.selectLabel();\n\t\tif (label) {\n\t\t\tthis.labelProvided.set(true);\n\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tlabelId: label.id(),\n\t\t\t}));\n\t\t} else if (this.placeholder()) {\n\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t...state,\n\t\t\t\tlabelId: `${state.id}--label`,\n\t\t\t}));\n\t\t}\n\t}\n\n\tngDoCheck() {\n\t\tthis.errorStateTracker.updateErrorState();\n\t}\n\n\tpublic toggle(): void {\n\t\tif (this.isExpanded()) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open();\n\t\t}\n\t}\n\n\tpublic open(): void {\n\t\tif (!this._canOpen()) return;\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tisExpanded: true,\n\t\t}));\n\t\tthis.openedChange.emit(true);\n\t\tthis._moveFocusToCDKList();\n\t}\n\n\tpublic close(): void {\n\t\tif (!this.isExpanded()) return;\n\n\t\tif (this._selectService.selectTrigger) {\n\t\t\tthis._selectService.selectTrigger.focus();\n\t\t}\n\n\t\tthis.openedChange.emit(false);\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tisExpanded: false,\n\t\t}));\n\t\tthis._onTouched();\n\t}\n\n\tprotected _canOpen(): boolean {\n\t\treturn !this.isExpanded() && !this.disabled() && this.options()?.length > 0;\n\t}\n\n\tprivate _moveFocusToCDKList(): void {\n\t\tsetTimeout(() => {\n\t\t\tthis.selectContent()?.focusList();\n\t\t});\n\t}\n\n\tpublic writeValue(value: T): void {\n\t\tthis.writeValue$.next(value);\n\t}\n\n\tpublic registerOnChange(fn: ChangeFn<T>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tpublic registerOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tpublic setDisabledState(isDisabled: boolean) {\n\t\tthis._disabledFromSetDisabledState.set(isDisabled);\n\t}\n\n\t/**\n\t * Once writeValue is called and options are available we can handle setting the initial options\n\t * @private\n\t */\n\tprivate handleInitialOptionSelect() {\n\t\t// Write value cannot be handled until options are available, so we wait until both are available with a combineLatest\n\t\tcombineLatest([this.writeValue$, this.options$])\n\t\t\t.pipe(\n\t\t\t\tmap((values, index) => [...values, index]),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe(([value, _, index]) => {\n\t\t\t\tthis._shouldEmitValueChange.set(false);\n\t\t\t\tthis._selectService.setInitialSelectedOptions(value);\n\t\t\t\t// the first time this observable emits a value we are simply setting the initial state\n\t\t\t\t// this change should not count as changing the state of the select, so we need to mark as pristine\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tthis.ngControl?.control?.markAsPristine();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\t/**\n\t * When options change, our current selected options may become invalid\n\t * Here we will automatically update our current selected options so that they are always inline with the possibleOptions\n\t * @private\n\t */\n\tprivate handleOptionChanges() {\n\t\tthis.optionsAndIndex$.pipe(takeUntilDestroyed()).subscribe(([options, index]) => {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.handleInvalidOptions(options);\n\t\t\t}\n\t\t\tthis.updatePossibleOptions(options);\n\t\t});\n\t}\n\n\t/**\n\t * Check that our \"selectedOptions\" are still valid when \"possibleOptions\" is about to be updated\n\t */\n\tprivate handleInvalidOptions(options: readonly CdkOption[]) {\n\t\tconst selectedOptions = this._selectService.selectedOptions();\n\t\tconst availableOptionSet = new Set<CdkOption | null>(options);\n\t\tif (this._selectService.multiple()) {\n\t\t\tconst filteredOptions = selectedOptions.filter((o) => availableOptionSet.has(o));\n\t\t\t// only update if there was an actual change\n\t\t\tif (selectedOptions.length !== filteredOptions.length) {\n\t\t\t\t// update should result in a value change since we are deselecting a value\n\t\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t\t\tconst value = filteredOptions.map((o) => (o?.value as string) ?? '');\n\t\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: filteredOptions,\n\t\t\t\t\tvalue: value,\n\t\t\t\t}));\n\t\t\t\tthis._onChange((value ?? null) as T);\n\t\t\t}\n\t\t} else {\n\t\t\tconst selectedOption = selectedOptions[0] ?? null;\n\t\t\tif (selectedOption !== null && !availableOptionSet.has(selectedOption)) {\n\t\t\t\tthis._shouldEmitValueChange.set(true);\n\t\t\t\tthis._selectService.state.update((state) => ({\n\t\t\t\t\t...state,\n\t\t\t\t\tselectedOptions: [],\n\t\t\t\t\tvalue: '',\n\t\t\t\t}));\n\t\t\t\tthis._onChange('' as T);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Sync the updated options with \"possibleOptions\" in the select service\n\t */\n\tprivate updatePossibleOptions(options: readonly CdkOption[]) {\n\t\tthis._selectService.state.update((state) => ({\n\t\t\t...state,\n\t\t\tpossibleOptions: options as CdkOption[],\n\t\t}));\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport {\n\tBrnSelectContentComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n} from './lib/brn-select-content.component';\nimport { BrnSelectGroupDirective } from './lib/brn-select-group.directive';\nimport { BrnSelectLabelDirective } from './lib/brn-select-label.directive';\nimport { BrnSelectOptionDirective } from './lib/brn-select-option.directive';\nimport { BrnSelectValueComponent } from './lib/brn-select-value.component';\nimport { BrnSelectComponent } from './lib/brn-select.component';\nimport { BrnSelectTriggerDirective } from './lib/brn-select.service';\nexport * from './lib/brn-select-content.component';\nexport * from './lib/brn-select-group.directive';\nexport * from './lib/brn-select-label.directive';\nexport * from './lib/brn-select-option.directive';\nexport * from './lib/brn-select-value.component';\nexport * from './lib/brn-select.component';\nexport * from './lib/brn-select.service';\n\nexport const BrnSelectImports = [\n\tBrnSelectComponent,\n\tBrnSelectContentComponent,\n\tBrnSelectTriggerDirective,\n\tBrnSelectOptionDirective,\n\tBrnSelectValueComponent,\n\tBrnSelectScrollDownDirective,\n\tBrnSelectScrollUpDirective,\n\tBrnSelectGroupDirective,\n\tBrnSelectLabelDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSelectImports],\n\texports: [...BrnSelectImports],\n})\nexport class BrnSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, signal, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, inject, NgModule } from '@angular/core';
3
3
  import { BrnDialogCloseDirective, BrnDialogComponent, BrnDialogContentDirective, BrnDialogDescriptionDirective, BrnDialogOverlayComponent, BrnDialogTitleDirective, BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';
4
- import { provideExposesStateProviderExisting, provideExposedSideProviderExisting, provideCustomClassSettableExisting } from '@spartan-ng/ui-core';
4
+ import { provideExposesStateProviderExisting, provideExposedSideProviderExisting, provideCustomClassSettableExisting } from '@spartan-ng/brain/core';
5
5
 
6
6
  class BrnSheetCloseDirective extends BrnDialogCloseDirective {
7
7
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSheetCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-sheet.mjs","sources":["../../../../libs/brain/sheet/src/lib/brn-sheet-close.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet.component.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-content.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-description.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-overlay.component.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-title.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-trigger.directive.ts","../../../../libs/brain/sheet/src/index.ts","../../../../libs/brain/sheet/src/spartan-ng-brain-sheet.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnDialogCloseDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnSheetClose]',\n\tstandalone: true,\n})\nexport class BrnSheetCloseDirective extends BrnDialogCloseDirective {}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, forwardRef, signal } from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-sheet',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnSheetComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnSheet',\n})\nexport class BrnSheetComponent extends BrnDialogComponent {\n\tprivate readonly _side = signal<'top' | 'bottom' | 'left' | 'right'>('top');\n\tpublic readonly side = this._side.asReadonly();\n\t/* eslint-disable-next-line @angular-eslint/no-input-rename */\n\t@Input('side')\n\tpublic set setSide(side: 'top' | 'bottom' | 'left' | 'right') {\n\t\tthis._side.set(side);\n\t\tif (side === 'top') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().top();\n\t\t}\n\t\tif (side === 'bottom') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().bottom();\n\t\t}\n\t\tif (side === 'left') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().left();\n\t\t}\n\t\tif (side === 'right') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().right();\n\t\t}\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/ui-core';\nimport { BrnSheetComponent } from './brn-sheet.component';\n\n@Directive({\n\tselector: '[brnSheetContent]',\n\tstandalone: true,\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnSheetContentDirective),\n\t\tprovideExposedSideProviderExisting(() => BrnSheetContentDirective),\n\t],\n})\nexport class BrnSheetContentDirective<T> extends BrnDialogContentDirective<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnSheetComponent).side;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescriptionDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnSheetDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnSheetDescriptionDirective extends BrnDialogDescriptionDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BrnDialogOverlayComponent } from '@spartan-ng/brain/dialog';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/ui-core';\n\n@Component({\n\tselector: 'brn-sheet-overlay',\n\tstandalone: true,\n\tproviders: [provideCustomClassSettableExisting(() => BrnSheetOverlayComponent)],\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnSheetOverlayComponent extends BrnDialogOverlayComponent {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitleDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnSheetTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnSheetTitleDirective extends BrnDialogTitleDirective {}\n","import { Directive, Input, inject } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport { BrnSheetComponent } from './brn-sheet.component';\n\n@Directive({\n\tselector: 'button[brnSheetTrigger]',\n\tstandalone: true,\n})\nexport class BrnSheetTriggerDirective extends BrnDialogTriggerDirective {\n\tprivate readonly _sheet = inject(BrnSheetComponent, { optional: true });\n\t@Input()\n\tpublic side: 'top' | 'bottom' | 'left' | 'right' | undefined;\n\n\toverride open() {\n\t\tif (this._sheet && this.side) {\n\t\t\tthis._sheet.setSide = this.side;\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnSheetCloseDirective } from './lib/brn-sheet-close.directive';\nimport { BrnSheetContentDirective } from './lib/brn-sheet-content.directive';\nimport { BrnSheetDescriptionDirective } from './lib/brn-sheet-description.directive';\nimport { BrnSheetOverlayComponent } from './lib/brn-sheet-overlay.component';\nimport { BrnSheetTitleDirective } from './lib/brn-sheet-title.directive';\nimport { BrnSheetTriggerDirective } from './lib/brn-sheet-trigger.directive';\nimport { BrnSheetComponent } from './lib/brn-sheet.component';\n\nexport * from './lib/brn-sheet-close.directive';\nexport * from './lib/brn-sheet-content.directive';\nexport * from './lib/brn-sheet-description.directive';\nexport * from './lib/brn-sheet-overlay.component';\nexport * from './lib/brn-sheet-title.directive';\nexport * from './lib/brn-sheet-trigger.directive';\nexport * from './lib/brn-sheet.component';\n\nexport const BrnSheetImports = [\n\tBrnSheetComponent,\n\tBrnSheetOverlayComponent,\n\tBrnSheetTriggerDirective,\n\tBrnSheetCloseDirective,\n\tBrnSheetContentDirective,\n\tBrnSheetTitleDirective,\n\tBrnSheetDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSheetImports],\n\texports: [...BrnSheetImports],\n})\nexport class BrnSheetModule {}\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-sheet.mjs","sources":["../../../../libs/brain/sheet/src/lib/brn-sheet-close.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet.component.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-content.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-description.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-overlay.component.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-title.directive.ts","../../../../libs/brain/sheet/src/lib/brn-sheet-trigger.directive.ts","../../../../libs/brain/sheet/src/index.ts","../../../../libs/brain/sheet/src/spartan-ng-brain-sheet.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnDialogCloseDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnSheetClose]',\n\tstandalone: true,\n})\nexport class BrnSheetCloseDirective extends BrnDialogCloseDirective {}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, forwardRef, signal } from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-sheet',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnSheetComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnSheet',\n})\nexport class BrnSheetComponent extends BrnDialogComponent {\n\tprivate readonly _side = signal<'top' | 'bottom' | 'left' | 'right'>('top');\n\tpublic readonly side = this._side.asReadonly();\n\t/* eslint-disable-next-line @angular-eslint/no-input-rename */\n\t@Input('side')\n\tpublic set setSide(side: 'top' | 'bottom' | 'left' | 'right') {\n\t\tthis._side.set(side);\n\t\tif (side === 'top') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().top();\n\t\t}\n\t\tif (side === 'bottom') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().bottom();\n\t\t}\n\t\tif (side === 'left') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().left();\n\t\t}\n\t\tif (side === 'right') {\n\t\t\tthis.positionStrategy = this.positionBuilder.global().right();\n\t\t}\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport {\n\ttype ExposesSide,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\nimport { BrnSheetComponent } from './brn-sheet.component';\n\n@Directive({\n\tselector: '[brnSheetContent]',\n\tstandalone: true,\n\tproviders: [\n\t\tprovideExposesStateProviderExisting(() => BrnSheetContentDirective),\n\t\tprovideExposedSideProviderExisting(() => BrnSheetContentDirective),\n\t],\n})\nexport class BrnSheetContentDirective<T> extends BrnDialogContentDirective<T> implements ExposesSide {\n\tpublic readonly side = inject(BrnSheetComponent).side;\n}\n","import { Directive } from '@angular/core';\nimport { BrnDialogDescriptionDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnSheetDescription]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnSheetDescriptionDirective extends BrnDialogDescriptionDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { provideCustomClassSettableExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogOverlayComponent } from '@spartan-ng/brain/dialog';\n\n@Component({\n\tselector: 'brn-sheet-overlay',\n\tstandalone: true,\n\tproviders: [provideCustomClassSettableExisting(() => BrnSheetOverlayComponent)],\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnSheetOverlayComponent extends BrnDialogOverlayComponent {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogTitleDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnSheetTitle]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': '_id()',\n\t},\n})\nexport class BrnSheetTitleDirective extends BrnDialogTitleDirective {}\n","import { Directive, Input, inject } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport { BrnSheetComponent } from './brn-sheet.component';\n\n@Directive({\n\tselector: 'button[brnSheetTrigger]',\n\tstandalone: true,\n})\nexport class BrnSheetTriggerDirective extends BrnDialogTriggerDirective {\n\tprivate readonly _sheet = inject(BrnSheetComponent, { optional: true });\n\t@Input()\n\tpublic side: 'top' | 'bottom' | 'left' | 'right' | undefined;\n\n\toverride open() {\n\t\tif (this._sheet && this.side) {\n\t\t\tthis._sheet.setSide = this.side;\n\t\t}\n\t\tsuper.open();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnSheetCloseDirective } from './lib/brn-sheet-close.directive';\nimport { BrnSheetContentDirective } from './lib/brn-sheet-content.directive';\nimport { BrnSheetDescriptionDirective } from './lib/brn-sheet-description.directive';\nimport { BrnSheetOverlayComponent } from './lib/brn-sheet-overlay.component';\nimport { BrnSheetTitleDirective } from './lib/brn-sheet-title.directive';\nimport { BrnSheetTriggerDirective } from './lib/brn-sheet-trigger.directive';\nimport { BrnSheetComponent } from './lib/brn-sheet.component';\n\nexport * from './lib/brn-sheet-close.directive';\nexport * from './lib/brn-sheet-content.directive';\nexport * from './lib/brn-sheet-description.directive';\nexport * from './lib/brn-sheet-overlay.component';\nexport * from './lib/brn-sheet-title.directive';\nexport * from './lib/brn-sheet-trigger.directive';\nexport * from './lib/brn-sheet.component';\n\nexport const BrnSheetImports = [\n\tBrnSheetComponent,\n\tBrnSheetOverlayComponent,\n\tBrnSheetTriggerDirective,\n\tBrnSheetCloseDirective,\n\tBrnSheetContentDirective,\n\tBrnSheetTitleDirective,\n\tBrnSheetDescriptionDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnSheetImports],\n\texports: [...BrnSheetImports],\n})\nexport class BrnSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ import { Directionality } from '@angular/cdk/bidi';
5
5
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
6
6
  import { toObservable } from '@angular/core/rxjs-interop';
7
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
- import { Subject, merge, takeUntil, tap, debounceTime } from 'rxjs';
8
+ import { Subject, merge } from 'rxjs';
9
+ import { takeUntil, tap, debounceTime } from 'rxjs/operators';
9
10
 
10
11
  const BRN_SLIDER_INPUT = new InjectionToken('BrnSliderInput');
11
12
  const BRN_SLIDER_TRACK = new InjectionToken('BrnSliderTrack');