@spartan-ng/brain 0.0.1-alpha.421 → 0.0.1-alpha.423

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 (231) hide show
  1. package/fesm2022/spartan-ng-brain-accordion.mjs +16 -16
  2. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +22 -22
  3. package/fesm2022/spartan-ng-brain-avatar.mjs +16 -16
  4. package/fesm2022/spartan-ng-brain-calendar.mjs +31 -31
  5. package/fesm2022/spartan-ng-brain-checkbox.mjs +7 -8
  6. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  7. package/fesm2022/spartan-ng-brain-collapsible.mjs +13 -13
  8. package/fesm2022/spartan-ng-brain-command.mjs +22 -22
  9. package/fesm2022/spartan-ng-brain-dialog.mjs +28 -28
  10. package/fesm2022/spartan-ng-brain-form-field.mjs +3 -3
  11. package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -1
  12. package/fesm2022/spartan-ng-brain-forms.mjs +6 -6
  13. package/fesm2022/spartan-ng-brain-hover-card.mjs +16 -16
  14. package/fesm2022/spartan-ng-brain-label.mjs +7 -7
  15. package/fesm2022/spartan-ng-brain-menu.mjs +40 -40
  16. package/fesm2022/spartan-ng-brain-popover.mjs +16 -16
  17. package/fesm2022/spartan-ng-brain-progress.mjs +10 -10
  18. package/fesm2022/spartan-ng-brain-radio-group.mjs +10 -10
  19. package/fesm2022/spartan-ng-brain-select.mjs +37 -38
  20. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  21. package/fesm2022/spartan-ng-brain-separator.mjs +7 -7
  22. package/fesm2022/spartan-ng-brain-sheet.mjs +25 -25
  23. package/fesm2022/spartan-ng-brain-slider.mjs +22 -20
  24. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  25. package/fesm2022/spartan-ng-brain-switch.mjs +10 -12
  26. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  27. package/fesm2022/spartan-ng-brain-table.mjs +22 -24
  28. package/fesm2022/spartan-ng-brain-table.mjs.map +1 -1
  29. package/fesm2022/spartan-ng-brain-tabs.mjs +19 -19
  30. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  31. package/fesm2022/spartan-ng-brain-toggle.mjs +14 -14
  32. package/fesm2022/spartan-ng-brain-tooltip.mjs +16 -17
  33. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  34. package/form-field/lib/brn-form-field-control.d.ts +1 -1
  35. package/package.json +5 -63
  36. package/slider/lib/brn-slider-track.directive.d.ts +1 -0
  37. package/tabs/lib/brn-tabs-paginated-list.directive.d.ts +1 -1
  38. package/esm2022/accordion/index.mjs +0 -31
  39. package/esm2022/accordion/lib/brn-accordion-content.component.mjs +0 -50
  40. package/esm2022/accordion/lib/brn-accordion.directive.mjs +0 -185
  41. package/esm2022/accordion/spartan-ng-brain-accordion.mjs +0 -5
  42. package/esm2022/alert-dialog/index.mjs +0 -45
  43. package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +0 -17
  44. package/esm2022/alert-dialog/lib/brn-alert-dialog-description.directive.mjs +0 -18
  45. package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +0 -20
  46. package/esm2022/alert-dialog/lib/brn-alert-dialog-title.directive.mjs +0 -18
  47. package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +0 -34
  48. package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +0 -41
  49. package/esm2022/alert-dialog/spartan-ng-brain-alert-dialog.mjs +0 -5
  50. package/esm2022/avatar/index.mjs +0 -23
  51. package/esm2022/avatar/lib/brn-avatar.component.mjs +0 -31
  52. package/esm2022/avatar/lib/fallback/brn-avatar-fallback.directive.mjs +0 -21
  53. package/esm2022/avatar/lib/fallback/index.mjs +0 -2
  54. package/esm2022/avatar/lib/image/brn-avatar-image.directive.mjs +0 -29
  55. package/esm2022/avatar/lib/image/index.mjs +0 -2
  56. package/esm2022/avatar/lib/util/hex-color-for.mjs +0 -22
  57. package/esm2022/avatar/lib/util/index.mjs +0 -4
  58. package/esm2022/avatar/lib/util/initials.pipe.mjs +0 -27
  59. package/esm2022/avatar/lib/util/is-bright.mjs +0 -12
  60. package/esm2022/avatar/spartan-ng-brain-avatar.mjs +0 -5
  61. package/esm2022/calendar/index.mjs +0 -62
  62. package/esm2022/calendar/lib/brn-calendar-cell-button.directive.mjs +0 -160
  63. package/esm2022/calendar/lib/brn-calendar-cell.directive.mjs +0 -17
  64. package/esm2022/calendar/lib/brn-calendar-grid.directive.mjs +0 -21
  65. package/esm2022/calendar/lib/brn-calendar-header.directive.mjs +0 -22
  66. package/esm2022/calendar/lib/brn-calendar-next-button.directive.mjs +0 -42
  67. package/esm2022/calendar/lib/brn-calendar-previous-button.directive.mjs +0 -42
  68. package/esm2022/calendar/lib/brn-calendar-week.directive.mjs +0 -67
  69. package/esm2022/calendar/lib/brn-calendar-weekday.directive.mjs +0 -48
  70. package/esm2022/calendar/lib/brn-calendar.directive.mjs +0 -154
  71. package/esm2022/calendar/lib/brn-calendar.token.mjs +0 -12
  72. package/esm2022/calendar/lib/i18n/calendar-i18n.mjs +0 -33
  73. package/esm2022/calendar/spartan-ng-brain-calendar.mjs +0 -5
  74. package/esm2022/checkbox/index.mjs +0 -18
  75. package/esm2022/checkbox/lib/brn-checkbox.component.mjs +0 -248
  76. package/esm2022/checkbox/spartan-ng-brain-checkbox.mjs +0 -5
  77. package/esm2022/collapsible/index.mjs +0 -30
  78. package/esm2022/collapsible/lib/brn-collapsible-content.component.mjs +0 -62
  79. package/esm2022/collapsible/lib/brn-collapsible-trigger.directive.mjs +0 -35
  80. package/esm2022/collapsible/lib/brn-collapsible.component.mjs +0 -33
  81. package/esm2022/collapsible/spartan-ng-brain-collapsible.mjs +0 -5
  82. package/esm2022/command/index.mjs +0 -48
  83. package/esm2022/command/lib/brn-command-empty.directive.mjs +0 -30
  84. package/esm2022/command/lib/brn-command-group.directive.mjs +0 -29
  85. package/esm2022/command/lib/brn-command-item.directive.mjs +0 -92
  86. package/esm2022/command/lib/brn-command-item.token.mjs +0 -6
  87. package/esm2022/command/lib/brn-command-list.directive.mjs +0 -21
  88. package/esm2022/command/lib/brn-command-search-input.directive.mjs +0 -81
  89. package/esm2022/command/lib/brn-command-search-input.token.mjs +0 -6
  90. package/esm2022/command/lib/brn-command.directive.mjs +0 -81
  91. package/esm2022/command/lib/brn-command.token.mjs +0 -9
  92. package/esm2022/command/spartan-ng-brain-command.mjs +0 -5
  93. package/esm2022/core/helpers/create-injection-token.mjs +0 -15
  94. package/esm2022/core/helpers/custom-element-class-settable.mjs +0 -3
  95. package/esm2022/core/helpers/dev-mode.mjs +0 -6
  96. package/esm2022/core/helpers/exposes-side.mjs +0 -3
  97. package/esm2022/core/helpers/exposes-state.mjs +0 -3
  98. package/esm2022/core/helpers/hlm.mjs +0 -6
  99. package/esm2022/core/helpers/table-classes-settable.mjs +0 -3
  100. package/esm2022/core/helpers/zone-free.mjs +0 -15
  101. package/esm2022/core/index.mjs +0 -8
  102. package/esm2022/core/spartan-ng-brain-core.mjs +0 -5
  103. package/esm2022/date-time/index.mjs +0 -3
  104. package/esm2022/date-time/lib/date-adapter.mjs +0 -16
  105. package/esm2022/date-time/lib/native-date-adapter.mjs +0 -155
  106. package/esm2022/date-time/spartan-ng-brain-date-time.mjs +0 -5
  107. package/esm2022/date-time-luxon/index.mjs +0 -2
  108. package/esm2022/date-time-luxon/lib/date-adapter.mjs +0 -85
  109. package/esm2022/date-time-luxon/spartan-ng-brain-date-time-luxon.mjs +0 -5
  110. package/esm2022/dialog/index.mjs +0 -56
  111. package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +0 -24
  112. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +0 -41
  113. package/esm2022/dialog/lib/brn-dialog-description.directive.mjs +0 -25
  114. package/esm2022/dialog/lib/brn-dialog-options.mjs +0 -19
  115. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +0 -33
  116. package/esm2022/dialog/lib/brn-dialog-ref.mjs +0 -54
  117. package/esm2022/dialog/lib/brn-dialog-state.mjs +0 -2
  118. package/esm2022/dialog/lib/brn-dialog-title.directive.mjs +0 -25
  119. package/esm2022/dialog/lib/brn-dialog-token.mjs +0 -25
  120. package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +0 -47
  121. package/esm2022/dialog/lib/brn-dialog-utils.mjs +0 -12
  122. package/esm2022/dialog/lib/brn-dialog.component.mjs +0 -179
  123. package/esm2022/dialog/lib/brn-dialog.service.mjs +0 -128
  124. package/esm2022/dialog/spartan-ng-brain-dialog.mjs +0 -5
  125. package/esm2022/form-field/index.mjs +0 -2
  126. package/esm2022/form-field/lib/brn-form-field-control.mjs +0 -14
  127. package/esm2022/form-field/spartan-ng-brain-form-field.mjs +0 -5
  128. package/esm2022/forms/index.mjs +0 -4
  129. package/esm2022/forms/lib/control-value-accessor.mjs +0 -2
  130. package/esm2022/forms/lib/error-options.mjs +0 -26
  131. package/esm2022/forms/lib/error-state-tracker.mjs +0 -29
  132. package/esm2022/forms/spartan-ng-brain-forms.mjs +0 -5
  133. package/esm2022/hover-card/index.mjs +0 -29
  134. package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +0 -197
  135. package/esm2022/hover-card/lib/brn-hover-card.component.mjs +0 -28
  136. package/esm2022/hover-card/lib/createHoverObservable.mjs +0 -20
  137. package/esm2022/hover-card/spartan-ng-brain-hover-card.mjs +0 -5
  138. package/esm2022/index.mjs +0 -3
  139. package/esm2022/label/index.mjs +0 -17
  140. package/esm2022/label/lib/brn-label.directive.mjs +0 -49
  141. package/esm2022/label/spartan-ng-brain-label.mjs +0 -5
  142. package/esm2022/menu/index.mjs +0 -100
  143. package/esm2022/menu/lib/brn-context-menu-trigger.directive.mjs +0 -40
  144. package/esm2022/menu/lib/brn-menu-align.mjs +0 -15
  145. package/esm2022/menu/lib/brn-menu-bar.directive.mjs +0 -17
  146. package/esm2022/menu/lib/brn-menu-group.directive.mjs +0 -17
  147. package/esm2022/menu/lib/brn-menu-item-checkbox.directive.mjs +0 -30
  148. package/esm2022/menu/lib/brn-menu-item-radio.directive.mjs +0 -30
  149. package/esm2022/menu/lib/brn-menu-item.directive.mjs +0 -27
  150. package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +0 -42
  151. package/esm2022/menu/lib/brn-menu.directive.mjs +0 -56
  152. package/esm2022/menu/spartan-ng-brain-menu.mjs +0 -5
  153. package/esm2022/popover/index.mjs +0 -35
  154. package/esm2022/popover/lib/brn-popover-close.directive.mjs +0 -15
  155. package/esm2022/popover/lib/brn-popover-content.directive.mjs +0 -17
  156. package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +0 -43
  157. package/esm2022/popover/lib/brn-popover.component.mjs +0 -81
  158. package/esm2022/popover/spartan-ng-brain-popover.mjs +0 -5
  159. package/esm2022/progress/index.mjs +0 -21
  160. package/esm2022/progress/lib/brn-progress-indicator.component.mjs +0 -22
  161. package/esm2022/progress/lib/brn-progress.component.mjs +0 -61
  162. package/esm2022/progress/lib/brn-progress.token.mjs +0 -9
  163. package/esm2022/progress/spartan-ng-brain-progress.mjs +0 -5
  164. package/esm2022/radio-group/index.mjs +0 -20
  165. package/esm2022/radio-group/lib/brn-radio-group.directive.mjs +0 -90
  166. package/esm2022/radio-group/lib/brn-radio-group.token.mjs +0 -9
  167. package/esm2022/radio-group/lib/brn-radio.component.mjs +0 -191
  168. package/esm2022/radio-group/spartan-ng-brain-radio-group.mjs +0 -5
  169. package/esm2022/select/index.mjs +0 -66
  170. package/esm2022/select/lib/brn-select-content.component.mjs +0 -224
  171. package/esm2022/select/lib/brn-select-content.token.mjs +0 -9
  172. package/esm2022/select/lib/brn-select-group.directive.mjs +0 -19
  173. package/esm2022/select/lib/brn-select-label.directive.mjs +0 -23
  174. package/esm2022/select/lib/brn-select-option.directive.mjs +0 -69
  175. package/esm2022/select/lib/brn-select-placeholder.directive.mjs +0 -16
  176. package/esm2022/select/lib/brn-select-trigger.directive.mjs +0 -67
  177. package/esm2022/select/lib/brn-select-value.component.mjs +0 -68
  178. package/esm2022/select/lib/brn-select-value.directive.mjs +0 -16
  179. package/esm2022/select/lib/brn-select.component.mjs +0 -272
  180. package/esm2022/select/lib/brn-select.token.mjs +0 -9
  181. package/esm2022/select/spartan-ng-brain-select.mjs +0 -5
  182. package/esm2022/separator/index.mjs +0 -17
  183. package/esm2022/separator/lib/brn-separator.component.mjs +0 -24
  184. package/esm2022/separator/spartan-ng-brain-separator.mjs +0 -5
  185. package/esm2022/sheet/index.mjs +0 -50
  186. package/esm2022/sheet/lib/brn-sheet-close.directive.mjs +0 -15
  187. package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +0 -25
  188. package/esm2022/sheet/lib/brn-sheet-description.directive.mjs +0 -18
  189. package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +0 -20
  190. package/esm2022/sheet/lib/brn-sheet-title.directive.mjs +0 -18
  191. package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +0 -25
  192. package/esm2022/sheet/lib/brn-sheet.component.mjs +0 -57
  193. package/esm2022/sheet/spartan-ng-brain-sheet.mjs +0 -5
  194. package/esm2022/slider/index.mjs +0 -13
  195. package/esm2022/slider/lib/brn-slider-thumb.directive.mjs +0 -41
  196. package/esm2022/slider/lib/brn-slider-tick-mark.directive.mjs +0 -37
  197. package/esm2022/slider/lib/brn-slider-track-active-fill.directive.mjs +0 -29
  198. package/esm2022/slider/lib/brn-slider-track.directive.mjs +0 -297
  199. package/esm2022/slider/spartan-ng-brain-slider.mjs +0 -5
  200. package/esm2022/spartan-ng-brain.mjs +0 -5
  201. package/esm2022/switch/index.mjs +0 -20
  202. package/esm2022/switch/lib/brn-switch-thumb.component.mjs +0 -16
  203. package/esm2022/switch/lib/brn-switch.component.mjs +0 -236
  204. package/esm2022/switch/spartan-ng-brain-switch.mjs +0 -5
  205. package/esm2022/table/index.mjs +0 -47
  206. package/esm2022/table/lib/brn-cell-def.directive.mjs +0 -22
  207. package/esm2022/table/lib/brn-column-def.component.mjs +0 -82
  208. package/esm2022/table/lib/brn-column-manager.mjs +0 -61
  209. package/esm2022/table/lib/brn-footer-def.directive.mjs +0 -22
  210. package/esm2022/table/lib/brn-header-def.directive.mjs +0 -22
  211. package/esm2022/table/lib/brn-paginator.directive.mjs +0 -111
  212. package/esm2022/table/lib/brn-table.component.mjs +0 -169
  213. package/esm2022/table/spartan-ng-brain-table.mjs +0 -5
  214. package/esm2022/tabs/index.mjs +0 -32
  215. package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +0 -66
  216. package/esm2022/tabs/lib/brn-tabs-paginated-list.directive.mjs +0 -525
  217. package/esm2022/tabs/lib/brn-tabs-trigger.directive.mjs +0 -136
  218. package/esm2022/tabs/spartan-ng-brain-tabs.mjs +0 -5
  219. package/esm2022/toggle/index.mjs +0 -31
  220. package/esm2022/toggle/lib/brn-toggle-group.component.mjs +0 -159
  221. package/esm2022/toggle/lib/brn-toggle-group.token.mjs +0 -9
  222. package/esm2022/toggle/lib/brn-toggle.directive.mjs +0 -65
  223. package/esm2022/toggle/spartan-ng-brain-toggle.mjs +0 -5
  224. package/esm2022/tooltip/index.mjs +0 -36
  225. package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +0 -221
  226. package/esm2022/tooltip/lib/brn-tooltip-content.directive.mjs +0 -22
  227. package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +0 -629
  228. package/esm2022/tooltip/lib/brn-tooltip.directive.mjs +0 -15
  229. package/esm2022/tooltip/lib/brn-tooltip.token.mjs +0 -18
  230. package/esm2022/tooltip/lib/computed-previous.mjs +0 -46
  231. package/esm2022/tooltip/spartan-ng-brain-tooltip.mjs +0 -5
@@ -1,224 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Injector, afterNextRender, contentChild, contentChildren, effect, inject, signal, untracked, viewChild, } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { BrnSelectOptionDirective } from './brn-select-option.directive';
5
- import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
6
- import { Directive } from '@angular/core';
7
- import { Subject, fromEvent, interval } from 'rxjs';
8
- import { takeUntil } from 'rxjs/operators';
9
- import { provideBrnSelectContent } from './brn-select-content.token';
10
- import { injectBrnSelect } from './brn-select.token';
11
- import * as i0 from "@angular/core";
12
- const SCROLLBY_PIXELS = 100;
13
- export class BrnSelectScrollUpDirective {
14
- _el = inject(ElementRef);
15
- _selectContent = inject(BrnSelectContentComponent);
16
- _endReached = new Subject();
17
- _destroyRef = inject(DestroyRef);
18
- startEmittingEvents() {
19
- const mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');
20
- interval(100)
21
- .pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))
22
- .subscribe(() => this._selectContent.moveFocusUp());
23
- }
24
- stopEmittingEvents() {
25
- this._endReached.next(true);
26
- }
27
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectScrollUpDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
28
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectScrollUpDirective, isStandalone: true, selector: "[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectScrollUpDirective, decorators: [{
31
- type: Directive,
32
- args: [{
33
- selector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',
34
- standalone: true,
35
- host: {
36
- 'aria-hidden': 'true',
37
- '(mouseenter)': 'startEmittingEvents()',
38
- },
39
- }]
40
- }] });
41
- export class BrnSelectScrollDownDirective {
42
- _el = inject(ElementRef);
43
- _selectContent = inject(BrnSelectContentComponent);
44
- _endReached = new Subject();
45
- _destroyRef = inject(DestroyRef);
46
- startEmittingEvents() {
47
- const mouseLeave$ = fromEvent(this._el.nativeElement, 'mouseleave');
48
- interval(100)
49
- .pipe(takeUntil(mouseLeave$), takeUntil(this._endReached), takeUntilDestroyed(this._destroyRef))
50
- .subscribe(() => this._selectContent.moveFocusDown());
51
- }
52
- stopEmittingEvents() {
53
- this._endReached.next(true);
54
- }
55
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectScrollDownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectScrollDownDirective, isStandalone: true, selector: "[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectScrollDownDirective, decorators: [{
59
- type: Directive,
60
- args: [{
61
- selector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',
62
- standalone: true,
63
- host: {
64
- 'aria-hidden': 'true',
65
- '(mouseenter)': 'startEmittingEvents()',
66
- },
67
- }]
68
- }] });
69
- export class BrnSelectContentComponent {
70
- _elementRef = inject(ElementRef);
71
- _injector = inject(Injector);
72
- _select = injectBrnSelect();
73
- canScrollUp = signal(false);
74
- canScrollDown = signal(false);
75
- viewport = viewChild.required('viewport');
76
- scrollUpBtn = contentChild(BrnSelectScrollUpDirective);
77
- scrollDownBtn = contentChild(BrnSelectScrollDownDirective);
78
- _options = contentChildren(BrnSelectOptionDirective, { descendants: true });
79
- /** @internal */
80
- keyManager = null;
81
- constructor() {
82
- effect(() => {
83
- this._select.open() && afterNextRender(() => this.updateArrowDisplay(), { injector: this._injector });
84
- });
85
- }
86
- ngAfterContentInit() {
87
- this.keyManager = new ActiveDescendantKeyManager(this._options, this._injector)
88
- .withHomeAndEnd()
89
- .withVerticalOrientation()
90
- .withTypeAhead()
91
- .withAllowedModifierKeys(['shiftKey'])
92
- .withWrap()
93
- .skipPredicate((option) => option._disabled());
94
- effect(() => {
95
- // any time the select is opened, we need to focus the first selected option or the first option
96
- const open = this._select.open();
97
- const options = this._options();
98
- if (!open || !options.length) {
99
- return;
100
- }
101
- untracked(() => {
102
- const selectedOption = options.find((option) => option.selected());
103
- if (selectedOption) {
104
- this.keyManager?.setActiveItem(selectedOption);
105
- }
106
- else {
107
- this.keyManager?.setFirstItemActive();
108
- }
109
- });
110
- }, { injector: this._injector });
111
- }
112
- updateArrowDisplay() {
113
- const { scrollTop, scrollHeight, clientHeight } = this.viewport().nativeElement;
114
- this.canScrollUp.set(scrollTop > 0);
115
- const maxScroll = scrollHeight - clientHeight;
116
- this.canScrollDown.set(Math.ceil(scrollTop) < maxScroll);
117
- }
118
- handleScroll() {
119
- this.updateArrowDisplay();
120
- }
121
- focusList() {
122
- this._elementRef.nativeElement.focus();
123
- }
124
- moveFocusUp() {
125
- this.viewport().nativeElement.scrollBy({ top: -SCROLLBY_PIXELS, behavior: 'smooth' });
126
- if (this.viewport().nativeElement.scrollTop === 0) {
127
- this.scrollUpBtn()?.stopEmittingEvents();
128
- }
129
- }
130
- moveFocusDown() {
131
- this.viewport().nativeElement.scrollBy({ top: SCROLLBY_PIXELS, behavior: 'smooth' });
132
- const viewportSize = this._elementRef.nativeElement.scrollHeight;
133
- const viewportScrollPosition = this.viewport().nativeElement.scrollTop;
134
- if (viewportSize + viewportScrollPosition + SCROLLBY_PIXELS >
135
- this.viewport().nativeElement.scrollHeight + SCROLLBY_PIXELS / 2) {
136
- this.scrollDownBtn()?.stopEmittingEvents();
137
- }
138
- }
139
- setActiveOption(option) {
140
- const index = this._options().findIndex((o) => o === option);
141
- if (index === -1) {
142
- return;
143
- }
144
- this.keyManager?.setActiveItem(index);
145
- }
146
- selectActiveItem(event) {
147
- event.preventDefault();
148
- const activeOption = this.keyManager?.activeItem;
149
- if (activeOption) {
150
- this._select.selectOption(activeOption.value());
151
- }
152
- }
153
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnSelectContentComponent, isStandalone: true, selector: "brn-select-content, hlm-select-content:not(noHlm)", host: { attributes: { "role": "listbox", "tabindex": "0", "aria-orientation": "vertical" }, listeners: { "keydown": "keyManager?.onKeydown($event)", "keydown.enter": "selectActiveItem($event)", "keydown.space": "selectActiveItem($event)" }, properties: { "attr.aria-multiselectable": "_select.multiple()", "attr.aria-disabled": "_select.disabled() || _select._formDisabled()", "attr.aria-activedescendant": "keyManager?.activeItem?.id()", "attr.aria-labelledBy": "_select.labelId()", "attr.aria-controlledBy": "_select.id() +'--trigger'", "id": "_select.id() + '--content'", "attr.dir": "_select.dir()" } }, providers: [provideBrnSelectContent(BrnSelectContentComponent)], queries: [{ propertyName: "scrollUpBtn", first: true, predicate: BrnSelectScrollUpDirective, descendants: true, isSignal: true }, { propertyName: "scrollDownBtn", first: true, predicate: BrnSelectScrollDownDirective, descendants: true, isSignal: true }, { propertyName: "_options", predicate: BrnSelectOptionDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
155
- <ng-template #scrollUp>
156
- <ng-content select="hlm-select-scroll-up" />
157
- <ng-content select="brnSelectScrollUp" />
158
- </ng-template>
159
- <ng-container *ngTemplateOutlet="canScrollUp() && scrollUpBtn() ? scrollUp : null" />
160
- <div
161
- data-brn-select-viewport
162
- #viewport
163
- (scroll)="handleScroll()"
164
- style="flex: 1 1 0%;
165
- position: relative;
166
- width:100%;
167
- overflow:auto;
168
- min-height: 36px;
169
- padding-bottom: 2px;
170
- margin-bottom: -2px;"
171
- >
172
- <ng-content />
173
- </div>
174
- <ng-template #scrollDown>
175
- <ng-content select="brnSelectScrollDown" />
176
- <ng-content select="hlm-select-scroll-down" />
177
- </ng-template>
178
- <ng-container *ngTemplateOutlet="canScrollDown() && scrollDownBtn() ? scrollDown : null" />
179
- `, isInline: true, styles: [":host{display:flex;box-sizing:border-box;flex-direction:column;outline:none;pointer-events:auto}[data-brn-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}[data-brn-select-viewport]::-webkit-scrollbar{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
- }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectContentComponent, decorators: [{
182
- type: Component,
183
- args: [{ standalone: true, selector: 'brn-select-content, hlm-select-content:not(noHlm)', imports: [NgTemplateOutlet], providers: [provideBrnSelectContent(BrnSelectContentComponent)], changeDetection: ChangeDetectionStrategy.OnPush, host: {
184
- role: 'listbox',
185
- tabindex: '0',
186
- '[attr.aria-multiselectable]': '_select.multiple()',
187
- '[attr.aria-disabled]': '_select.disabled() || _select._formDisabled()',
188
- 'aria-orientation': 'vertical',
189
- '[attr.aria-activedescendant]': 'keyManager?.activeItem?.id()',
190
- '[attr.aria-labelledBy]': '_select.labelId()',
191
- '[attr.aria-controlledBy]': "_select.id() +'--trigger'",
192
- '[id]': "_select.id() + '--content'",
193
- '[attr.dir]': '_select.dir()',
194
- '(keydown)': 'keyManager?.onKeydown($event)',
195
- '(keydown.enter)': 'selectActiveItem($event)',
196
- '(keydown.space)': 'selectActiveItem($event)',
197
- }, template: `
198
- <ng-template #scrollUp>
199
- <ng-content select="hlm-select-scroll-up" />
200
- <ng-content select="brnSelectScrollUp" />
201
- </ng-template>
202
- <ng-container *ngTemplateOutlet="canScrollUp() && scrollUpBtn() ? scrollUp : null" />
203
- <div
204
- data-brn-select-viewport
205
- #viewport
206
- (scroll)="handleScroll()"
207
- style="flex: 1 1 0%;
208
- position: relative;
209
- width:100%;
210
- overflow:auto;
211
- min-height: 36px;
212
- padding-bottom: 2px;
213
- margin-bottom: -2px;"
214
- >
215
- <ng-content />
216
- </div>
217
- <ng-template #scrollDown>
218
- <ng-content select="brnSelectScrollDown" />
219
- <ng-content select="hlm-select-scroll-down" />
220
- </ng-template>
221
- <ng-container *ngTemplateOutlet="canScrollDown() && scrollDownBtn() ? scrollDown : null" />
222
- `, styles: [":host{display:flex;box-sizing:border-box;flex-direction:column;outline:none;pointer-events:auto}[data-brn-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}[data-brn-select-viewport]::-webkit-scrollbar{display:none}\n"] }]
223
- }], ctorParameters: () => [] });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC1jb250ZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBRU4sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJELE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQVU1QixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JCLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lB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QUF5Qjs4R0FBekIseUJBQXlCLGdzQkFqRTFCLENBQUMsdUJBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQyxtRUF3RWpCLDBCQUEwQixnR0FDeEIsNEJBQTRCLDhFQUNoQyx3QkFBd0Isc0xBcEMxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVCxnVkFoRVMsZ0JBQWdCOzsyRkFrRWQseUJBQXlCO2tCQXJFckMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sbURBQW1ELFdBQ3BELENBQUMsZ0JBQWdCLENBQUMsYUFDaEIsQ0FBQyx1QkFBdUIsMkJBQTJCLENBQUMsbUJBQzlDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0wsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsNkJBQTZCLEVBQUUsb0JBQW9CO3dCQUNuRCxzQkFBc0IsRUFBRSwrQ0FBK0M7d0JBQ3ZFLGtCQUFrQixFQUFFLFVBQVU7d0JBQzlCLDhCQUE4QixFQUFFLDhCQUE4Qjt3QkFDOUQsd0JBQXdCLEVBQUUsbUJBQW1CO3dCQUM3QywwQkFBMEIsRUFBRSwyQkFBMkI7d0JBQ3ZELE1BQU0sRUFBRSw0QkFBNEI7d0JBQ3BDLFlBQVksRUFBRSxlQUFlO3dCQUM3QixXQUFXLEVBQUUsK0JBQStCO3dCQUM1QyxpQkFBaUIsRUFBRSwwQkFBMEI7d0JBQzdDLGlCQUFpQixFQUFFLDBCQUEwQjtxQkFDN0MsWUFzQlM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdERlc3Ryb3lSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdG9yLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbnRlbnRDaGlsZCxcblx0Y29udGVudENoaWxkcmVuLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCcm5TZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIGludGVydmFsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwcm92aWRlQnJuU2VsZWN0Q29udGVudCB9IGZyb20gJy4vYnJuLXNlbGVjdC1jb250ZW50LnRva2VuJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdCB9IGZyb20gJy4vYnJuLXNlbGVjdC50b2tlbic7XG5cbmNvbnN0IFNDUk9MTEJZX1BJWEVMUyA9IDEwMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNlbGVjdFNjcm9sbFVwXSwgYnJuLXNlbGVjdC1zY3JvbGwtdXAsIGhsbS1zZWxlY3Qtc2Nyb2xsLXVwOm5vdChub0hsbSknLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0J2FyaWEtaGlkZGVuJzogJ3RydWUnLFxuXHRcdCcobW91c2VlbnRlciknOiAnc3RhcnRFbWl0dGluZ0V2ZW50cygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUge1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbCA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfc2VsZWN0Q29udGVudCA9IGluamVjdChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9lbmRSZWFjaGVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuXHRwdWJsaWMgc3RhcnRFbWl0dGluZ0V2ZW50cygpOiB2b2lkIHtcblx0XHRjb25zdCBtb3VzZUxlYXZlJCA9IGZyb21FdmVudCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpO1xuXG5cdFx0aW50ZXJ2YWwoMTAwKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsKG1vdXNlTGVhdmUkKSwgdGFrZVVudGlsKHRoaXMuX2VuZFJlYWNoZWQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3NlbGVjdENvbnRlbnQubW92ZUZvY3VzVXAoKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2VsZWN0U2Nyb2xsRG93bl0sIGJybi1zZWxlY3Qtc2Nyb2xsLWRvd24sIGhsbS1zZWxlY3Qtc2Nyb2xsLWRvd246bm90KG5vSGxtKScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHQnYXJpYS1oaWRkZW4nOiAndHJ1ZScsXG5cdFx0Jyhtb3VzZWVudGVyKSc6ICdzdGFydEVtaXR0aW5nRXZlbnRzKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdENvbnRlbnQgPSBpbmplY3QoQnJuU2VsZWN0Q29udGVudENvbXBvbmVudCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZW5kUmVhY2hlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cblx0cHVibGljIHN0YXJ0RW1pdHRpbmdFdmVudHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgbW91c2VMZWF2ZSQgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuXHRcdGludGVydmFsKDEwMClcblx0XHRcdC5waXBlKHRha2VVbnRpbChtb3VzZUxlYXZlJCksIHRha2VVbnRpbCh0aGlzLl9lbmRSZWFjaGVkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZWxlY3RDb250ZW50Lm1vdmVGb2N1c0Rvd24oKSk7XG5cdH1cblxuXHRwdWJsaWMgc3RvcEVtaXR0aW5nRXZlbnRzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VuZFJlYWNoZWQubmV4dCh0cnVlKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LWNvbnRlbnQsIGhsbS1zZWxlY3QtY29udGVudDpub3Qobm9IbG0pJyxcblx0aW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuU2VsZWN0Q29udGVudChCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50KV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ2xpc3Rib3gnLFxuXHRcdHRhYmluZGV4OiAnMCcsXG5cdFx0J1thdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSc6ICdfc2VsZWN0Lm11bHRpcGxlKCknLFxuXHRcdCdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdfc2VsZWN0LmRpc2FibGVkKCkgfHwgX3NlbGVjdC5fZm9ybURpc2FibGVkKCknLFxuXHRcdCdhcmlhLW9yaWVudGF0aW9uJzogJ3ZlcnRpY2FsJyxcblx0XHQnW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XSc6ICdrZXlNYW5hZ2VyPy5hY3RpdmVJdGVtPy5pZCgpJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZEJ5XSc6ICdfc2VsZWN0LmxhYmVsSWQoKScsXG5cdFx0J1thdHRyLmFyaWEtY29udHJvbGxlZEJ5XSc6IFwiX3NlbGVjdC5pZCgpICsnLS10cmlnZ2VyJ1wiLFxuXHRcdCdbaWRdJzogXCJfc2VsZWN0LmlkKCkgKyAnLS1jb250ZW50J1wiLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3QuZGlyKCknLFxuXHRcdCcoa2V5ZG93biknOiAna2V5TWFuYWdlcj8ub25LZXlkb3duKCRldmVudCknLFxuXHRcdCcoa2V5ZG93bi5lbnRlciknOiAnc2VsZWN0QWN0aXZlSXRlbSgkZXZlbnQpJyxcblx0XHQnKGtleWRvd24uc3BhY2UpJzogJ3NlbGVjdEFjdGl2ZUl0ZW0oJGV2ZW50KScsXG5cdH0sXG5cdHN0eWxlczogW1xuXHRcdGBcblx0XHRcdDpob3N0IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0XHR9XG5cblx0XHRcdFtkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRdIHtcblx0XHRcdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRcdFx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG5cdFx0XHRcdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0XHRcdH1cblxuXHRcdFx0W2RhdGEtYnJuLXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHRgLFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSAjc2Nyb2xsVXA+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJobG0tc2VsZWN0LXNjcm9sbC11cFwiIC8+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxVcFwiIC8+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FuU2Nyb2xsVXAoKSAmJiBzY3JvbGxVcEJ0bigpID8gc2Nyb2xsVXAgOiBudWxsXCIgLz5cblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLWJybi1zZWxlY3Qtdmlld3BvcnRcblx0XHRcdCN2aWV3cG9ydFxuXHRcdFx0KHNjcm9sbCk9XCJoYW5kbGVTY3JvbGwoKVwiXG5cdFx0XHRzdHlsZT1cImZsZXg6IDEgMSAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0XHRvdmVyZmxvdzphdXRvO1xuXHRcdFx0bWluLWhlaWdodDogMzZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1wiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L2Rpdj5cblx0XHQ8bmctdGVtcGxhdGUgI3Njcm9sbERvd24+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJicm5TZWxlY3RTY3JvbGxEb3duXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImhsbS1zZWxlY3Qtc2Nyb2xsLWRvd25cIiAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhblNjcm9sbERvd24oKSAmJiBzY3JvbGxEb3duQnRuKCkgPyBzY3JvbGxEb3duIDogbnVsbFwiIC8+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9zZWxlY3QgPSBpbmplY3RCcm5TZWxlY3Q8VD4oKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNhblNjcm9sbFVwID0gc2lnbmFsKGZhbHNlKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNhblNjcm9sbERvd24gPSBzaWduYWwoZmFsc2UpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd2aWV3cG9ydCcpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsVXBCdG4gPSBjb250ZW50Q2hpbGQoQnJuU2VsZWN0U2Nyb2xsVXBEaXJlY3RpdmUpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsRG93bkJ0biA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RTY3JvbGxEb3duRGlyZWN0aXZlKTtcblx0cHJpdmF0ZSByZWFkb25seSBfb3B0aW9ucyA9IGNvbnRlbnRDaGlsZHJlbihCcm5TZWxlY3RPcHRpb25EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cblx0LyoqIEBpbnRlcm5hbCAqL1xuXHRwdWJsaWMga2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8QnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFQ+PiB8IG51bGwgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLl9zZWxlY3Qub3BlbigpICYmIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB0aGlzLnVwZGF0ZUFycm93RGlzcGxheSgpLCB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9KTtcblx0XHR9KTtcblx0fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5fb3B0aW9ucywgdGhpcy5faW5qZWN0b3IpXG5cdFx0XHQud2l0aEhvbWVBbmRFbmQoKVxuXHRcdFx0LndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcblx0XHRcdC53aXRoVHlwZUFoZWFkKClcblx0XHRcdC53aXRoQWxsb3dlZE1vZGlmaWVyS2V5cyhbJ3NoaWZ0S2V5J10pXG5cdFx0XHQud2l0aFdyYXAoKVxuXHRcdFx0LnNraXBQcmVkaWNhdGUoKG9wdGlvbikgPT4gb3B0aW9uLl9kaXNhYmxlZCgpKTtcblxuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Ly8gYW55IHRpbWUgdGhlIHNlbGVjdCBpcyBvcGVuZWQsIHdlIG5lZWQgdG8gZm9jdXMgdGhlIGZpcnN0IHNlbGVjdGVkIG9wdGlvbiBvciB0aGUgZmlyc3Qgb3B0aW9uXG5cdFx0XHRcdGNvbnN0IG9wZW4gPSB0aGlzLl9zZWxlY3Qub3BlbigpO1xuXHRcdFx0XHRjb25zdCBvcHRpb25zID0gdGhpcy5fb3B0aW9ucygpO1xuXG5cdFx0XHRcdGlmICghb3BlbiB8fCAhb3B0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCgpKTtcblxuXHRcdFx0XHRcdGlmIChzZWxlY3RlZE9wdGlvbikge1xuXHRcdFx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKHNlbGVjdGVkT3B0aW9uKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyB1cGRhdGVBcnJvd0Rpc3BsYXkoKTogdm9pZCB7XG5cdFx0Y29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSB0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLmNhblNjcm9sbFVwLnNldChzY3JvbGxUb3AgPiAwKTtcblx0XHRjb25zdCBtYXhTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQ7XG5cdFx0dGhpcy5jYW5TY3JvbGxEb3duLnNldChNYXRoLmNlaWwoc2Nyb2xsVG9wKSA8IG1heFNjcm9sbCk7XG5cdH1cblxuXHRwdWJsaWMgaGFuZGxlU2Nyb2xsKCk6IHZvaWQge1xuXHRcdHRoaXMudXBkYXRlQXJyb3dEaXNwbGF5KCk7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXNMaXN0KCk6IHZvaWQge1xuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG5cblx0cHVibGljIG1vdmVGb2N1c1VwKCk6IHZvaWQge1xuXHRcdHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KHsgdG9wOiAtU0NST0xMQllfUElYRUxTLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0aWYgKHRoaXMudmlld3BvcnQoKS5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zY3JvbGxVcEJ0bigpPy5zdG9wRW1pdHRpbmdFdmVudHMoKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgbW92ZUZvY3VzRG93bigpOiB2b2lkIHtcblx0XHR0aGlzLnZpZXdwb3J0KCkubmF0aXZlRWxlbWVudC5zY3JvbGxCeSh7IHRvcDogU0NST0xMQllfUElYRUxTLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0Y29uc3Qgdmlld3BvcnRTaXplID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcblx0XHRjb25zdCB2aWV3cG9ydFNjcm9sbFBvc2l0aW9uID0gdGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xuXHRcdGlmIChcblx0XHRcdHZpZXdwb3J0U2l6ZSArIHZpZXdwb3J0U2Nyb2xsUG9zaXRpb24gKyBTQ1JPTExCWV9QSVhFTFMgPlxuXHRcdFx0dGhpcy52aWV3cG9ydCgpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgU0NST0xMQllfUElYRUxTIC8gMlxuXHRcdCkge1xuXHRcdFx0dGhpcy5zY3JvbGxEb3duQnRuKCk/LnN0b3BFbWl0dGluZ0V2ZW50cygpO1xuXHRcdH1cblx0fVxuXG5cdHNldEFjdGl2ZU9wdGlvbihvcHRpb246IEJyblNlbGVjdE9wdGlvbkRpcmVjdGl2ZTxUPik6IHZvaWQge1xuXHRcdGNvbnN0IGluZGV4ID0gdGhpcy5fb3B0aW9ucygpLmZpbmRJbmRleCgobykgPT4gbyA9PT0gb3B0aW9uKTtcblxuXHRcdGlmIChpbmRleCA9PT0gLTEpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLmtleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oaW5kZXgpO1xuXHR9XG5cblx0cHJvdGVjdGVkIHNlbGVjdEFjdGl2ZUl0ZW0oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0Y29uc3QgYWN0aXZlT3B0aW9uID0gdGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtO1xuXG5cdFx0aWYgKGFjdGl2ZU9wdGlvbikge1xuXHRcdFx0dGhpcy5fc2VsZWN0LnNlbGVjdE9wdGlvbihhY3RpdmVPcHRpb24udmFsdWUoKSEpO1xuXHRcdH1cblx0fVxufVxuIl19
@@ -1,9 +0,0 @@
1
- import { inject, InjectionToken } from '@angular/core';
2
- const BrnSelectContentToken = new InjectionToken('BrnSelectContentToken');
3
- export function injectBrnSelectContent() {
4
- return inject(BrnSelectContentToken);
5
- }
6
- export function provideBrnSelectContent(select) {
7
- return { provide: BrnSelectContentToken, useExisting: select };
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1jb250ZW50LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zZWxlY3Qvc3JjL2xpYi9icm4tc2VsZWN0LWNvbnRlbnQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixNQUFNLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFDLHVCQUF1QixDQUFDLENBQUM7QUFFOUcsTUFBTSxVQUFVLHNCQUFzQjtJQUNyQyxPQUFPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBaUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWdEO0lBQ3ZGLE9BQU8sRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGlzdGluZ1Byb3ZpZGVyLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2Jybi1zZWxlY3QtY29udGVudC5jb21wb25lbnQnO1xuXG5jb25zdCBCcm5TZWxlY3RDb250ZW50VG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJuU2VsZWN0Q29udGVudENvbXBvbmVudDx1bmtub3duPj4oJ0JyblNlbGVjdENvbnRlbnRUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJuU2VsZWN0Q29udGVudDxUPigpOiBCcm5TZWxlY3RDb250ZW50Q29tcG9uZW50PFQ+IHtcblx0cmV0dXJuIGluamVjdChCcm5TZWxlY3RDb250ZW50VG9rZW4pIGFzIEJyblNlbGVjdENvbnRlbnRDb21wb25lbnQ8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQnJuU2VsZWN0Q29udGVudChzZWxlY3Q6IFR5cGU8QnJuU2VsZWN0Q29udGVudENvbXBvbmVudDx1bmtub3duPj4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuU2VsZWN0Q29udGVudFRva2VuLCB1c2VFeGlzdGluZzogc2VsZWN0IH07XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { Directive, signal } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BrnSelectGroupDirective {
4
- labelledBy = signal('');
5
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectGroupDirective, isStandalone: true, selector: "[brnSelectGroup]", host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()" } }, ngImport: i0 });
7
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectGroupDirective, decorators: [{
9
- type: Directive,
10
- args: [{
11
- selector: '[brnSelectGroup]',
12
- standalone: true,
13
- host: {
14
- role: 'group',
15
- '[attr.aria-labelledby]': 'labelledBy()',
16
- },
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtZ3JvdXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVVsRCxNQUFNLE9BQU8sdUJBQXVCO0lBQ25CLFVBQVUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7MEhBRDVCLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQVJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLE9BQU87d0JBQ2Isd0JBQXdCLEVBQUUsY0FBYztxQkFDeEM7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2VsZWN0R3JvdXBdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDoge1xuXHRcdHJvbGU6ICdncm91cCcsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbGFiZWxsZWRCeSgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0R3JvdXBEaXJlY3RpdmUge1xuXHRwdWJsaWMgcmVhZG9ubHkgbGFiZWxsZWRCeSA9IHNpZ25hbCgnJyk7XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { BrnLabelDirective } from '@spartan-ng/brain/label';
3
- import { BrnSelectGroupDirective } from './brn-select-group.directive';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@spartan-ng/brain/label";
6
- export class BrnSelectLabelDirective {
7
- _group = inject(BrnSelectGroupDirective, { optional: true });
8
- _label = inject(BrnLabelDirective, { host: true });
9
- constructor() {
10
- this._group?.labelledBy.set(this._label.id());
11
- }
12
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectLabelDirective, isStandalone: true, selector: "[brnSelectLabel]", hostDirectives: [{ directive: i1.BrnLabelDirective }], ngImport: i0 });
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectLabelDirective, decorators: [{
16
- type: Directive,
17
- args: [{
18
- selector: '[brnSelectLabel]',
19
- hostDirectives: [BrnLabelDirective],
20
- standalone: true,
21
- }]
22
- }], ctorParameters: () => [] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1sYWJlbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtbGFiZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQixNQUFNLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBFO1FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDOzBIQU5XLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLGNBQWMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuTGFiZWxEaXJlY3RpdmUgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9sYWJlbCc7XG5pbXBvcnQgeyBCcm5TZWxlY3RHcm91cERpcmVjdGl2ZSB9IGZyb20gJy4vYnJuLXNlbGVjdC1ncm91cC5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2VsZWN0TGFiZWxdJyxcblx0aG9zdERpcmVjdGl2ZXM6IFtCcm5MYWJlbERpcmVjdGl2ZV0sXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNlbGVjdExhYmVsRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfZ3JvdXAgPSBpbmplY3QoQnJuU2VsZWN0R3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2xhYmVsID0gaW5qZWN0KEJybkxhYmVsRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5fZ3JvdXA/LmxhYmVsbGVkQnkuc2V0KHRoaXMuX2xhYmVsLmlkKCkpO1xuXHR9XG59XG4iXX0=
@@ -1,69 +0,0 @@
1
- import { Directive, ElementRef, booleanAttribute, computed, inject, input, signal } from '@angular/core';
2
- import { injectBrnSelectContent } from './brn-select-content.token';
3
- import { injectBrnSelect } from './brn-select.token';
4
- import * as i0 from "@angular/core";
5
- let nextId = 0;
6
- export class BrnSelectOptionDirective {
7
- _select = injectBrnSelect();
8
- _content = injectBrnSelectContent();
9
- elementRef = inject(ElementRef);
10
- id = input(`brn-option-${nextId++}`);
11
- value = input();
12
- // we use "_disabled" here because disabled is already defined in the Highlightable interface
13
- _disabled = input(false, {
14
- alias: 'disabled',
15
- transform: booleanAttribute,
16
- });
17
- get disabled() {
18
- return this._disabled();
19
- }
20
- selected = computed(() => this.value() !== undefined && this._select.isSelected(this.value()));
21
- _active = signal(false);
22
- checkedState = computed(() => (this.selected() ? 'checked' : 'unchecked'));
23
- dir = this._select.dir;
24
- select() {
25
- if (this._disabled()) {
26
- return;
27
- }
28
- this._select.selectOption(this.value());
29
- }
30
- /** Get the label for this element which is required by the FocusableOption interface. */
31
- getLabel() {
32
- return this.elementRef.nativeElement.textContent?.trim() ?? '';
33
- }
34
- setActiveStyles() {
35
- this._active.set(true);
36
- // scroll the option into view if it is not visible
37
- this.elementRef.nativeElement.scrollIntoView({ block: 'nearest' });
38
- }
39
- setInactiveStyles() {
40
- this._active.set(false);
41
- }
42
- activate() {
43
- if (this._disabled()) {
44
- return;
45
- }
46
- this._content.setActiveOption(this);
47
- }
48
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
49
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnSelectOptionDirective, isStandalone: true, selector: "[brnOption]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, listeners: { "click": "select()", "mouseenter": "activate()" }, properties: { "id": "id()", "attr.aria-selected": "selected()", "attr.aria-disabled": "_disabled()", "attr.dir": "_select.dir()", "attr.data-active": "_active() ? '' : undefined", "attr.data-disabled": "_disabled() ? '' : undefined" } }, ngImport: i0 });
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectOptionDirective, decorators: [{
52
- type: Directive,
53
- args: [{
54
- selector: '[brnOption]',
55
- standalone: true,
56
- host: {
57
- role: 'option',
58
- '[id]': 'id()',
59
- '[attr.aria-selected]': 'selected()',
60
- '[attr.aria-disabled]': '_disabled()',
61
- '(click)': 'select()',
62
- '[attr.dir]': '_select.dir()',
63
- '[attr.data-active]': "_active() ? '' : undefined",
64
- '[attr.data-disabled]': "_disabled() ? '' : undefined",
65
- '(mouseenter)': 'activate()',
66
- },
67
- }]
68
- }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zZWxlY3Qvc3JjL2xpYi9icm4tc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBaUJmLE1BQU0sT0FBTyx3QkFBd0I7SUFDakIsT0FBTyxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBQzVCLFFBQVEsR0FBRyxzQkFBc0IsRUFBSyxDQUFDO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsRUFBRSxHQUFHLEtBQUssQ0FBQyxjQUFjLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxLQUFLLEdBQUcsS0FBSyxFQUFLLENBQUM7SUFFbkMsNkZBQTZGO0lBQzdFLFNBQVMsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtRQUMvRCxLQUFLLEVBQUUsVUFBVTtRQUNqQixTQUFTLEVBQUUsZ0JBQWdCO0tBQzNCLENBQUMsQ0FBQztJQUVILElBQVcsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRWUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUYsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRWhDLE1BQU07UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHlGQUF5RjtJQUN6RixRQUFRO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkIsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxpQkFBaUI7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVTLFFBQVE7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7MEhBbkRXLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQWZwQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLE1BQU0sRUFBRSxNQUFNO3dCQUNkLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLHNCQUFzQixFQUFFLGFBQWE7d0JBQ3JDLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixZQUFZLEVBQUUsZUFBZTt3QkFDN0Isb0JBQW9CLEVBQUUsNEJBQTRCO3dCQUNsRCxzQkFBc0IsRUFBRSw4QkFBOEI7d0JBQ3RELGNBQWMsRUFBRSxZQUFZO3FCQUM1QjtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdENvbnRlbnQgfSBmcm9tICcuL2Jybi1zZWxlY3QtY29udGVudC50b2tlbic7XG5pbXBvcnQgeyBpbmplY3RCcm5TZWxlY3QgfSBmcm9tICcuL2Jybi1zZWxlY3QudG9rZW4nO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2Jybk9wdGlvbl0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ29wdGlvbicsXG5cdFx0J1tpZF0nOiAnaWQoKScsXG5cdFx0J1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuXHRcdCdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG5cdFx0JyhjbGljayknOiAnc2VsZWN0KCknLFxuXHRcdCdbYXR0ci5kaXJdJzogJ19zZWxlY3QuZGlyKCknLFxuXHRcdCdbYXR0ci5kYXRhLWFjdGl2ZV0nOiBcIl9hY3RpdmUoKSA/ICcnIDogdW5kZWZpbmVkXCIsXG5cdFx0J1thdHRyLmRhdGEtZGlzYWJsZWRdJzogXCJfZGlzYWJsZWQoKSA/ICcnIDogdW5kZWZpbmVkXCIsXG5cdFx0Jyhtb3VzZWVudGVyKSc6ICdhY3RpdmF0ZSgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0KCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfY29udGVudCA9IGluamVjdEJyblNlbGVjdENvbnRlbnQ8VD4oKTtcblx0cHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0KGBicm4tb3B0aW9uLSR7bmV4dElkKyt9YCk7XG5cdHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGlucHV0PFQ+KCk7XG5cblx0Ly8gd2UgdXNlIFwiX2Rpc2FibGVkXCIgaGVyZSBiZWNhdXNlIGRpc2FibGVkIGlzIGFscmVhZHkgZGVmaW5lZCBpbiB0aGUgSGlnaGxpZ2h0YWJsZSBpbnRlcmZhY2Vcblx0cHVibGljIHJlYWRvbmx5IF9kaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcblx0XHRhbGlhczogJ2Rpc2FibGVkJyxcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2Rpc2FibGVkKCk7XG5cdH1cblxuXHRwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlKCkgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9zZWxlY3QuaXNTZWxlY3RlZCh0aGlzLnZhbHVlKCkpKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9hY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2VsZWN0ZWQoKSA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnKSk7XG5cdHB1YmxpYyByZWFkb25seSBkaXIgPSB0aGlzLl9zZWxlY3QuZGlyO1xuXG5cdHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX2Rpc2FibGVkKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9zZWxlY3Quc2VsZWN0T3B0aW9uKHRoaXMudmFsdWUoKSk7XG5cdH1cblxuXHQvKiogR2V0IHRoZSBsYWJlbCBmb3IgdGhpcyBlbGVtZW50IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IHRoZSBGb2N1c2FibGVPcHRpb24gaW50ZXJmYWNlLiAqL1xuXHRnZXRMYWJlbCgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnO1xuXHR9XG5cblx0c2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2FjdGl2ZS5zZXQodHJ1ZSk7XG5cblx0XHQvLyBzY3JvbGwgdGhlIG9wdGlvbiBpbnRvIHZpZXcgaWYgaXQgaXMgbm90IHZpc2libGVcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cdH1cblxuXHRzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9hY3RpdmUuc2V0KGZhbHNlKTtcblx0fVxuXG5cdHByb3RlY3RlZCBhY3RpdmF0ZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5fZGlzYWJsZWQoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9jb250ZW50LnNldEFjdGl2ZU9wdGlvbih0aGlzKTtcblx0fVxufVxuIl19
@@ -1,16 +0,0 @@
1
- import { Directive, inject, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BrnSelectPlaceholderDirective {
4
- /** @internale */
5
- templateRef = inject(TemplateRef);
6
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectPlaceholderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectPlaceholderDirective, isStandalone: true, selector: "[brnSelectPlaceholder], [hlmSelectPlaceholder]", ngImport: i0 });
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectPlaceholderDirective, decorators: [{
10
- type: Directive,
11
- args: [{
12
- standalone: true,
13
- selector: '[brnSelectPlaceholder], [hlmSelectPlaceholder]',
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC1wbGFjZWhvbGRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtcGxhY2Vob2xkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLDZCQUE2QjtJQUN6QyxpQkFBaUI7SUFDRCxXQUFXLEdBQUcsTUFBTSxDQUFvQixXQUFXLENBQUMsQ0FBQzswSEFGekQsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnREFBZ0Q7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RQbGFjZWhvbGRlcl0sIFtobG1TZWxlY3RQbGFjZWhvbGRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RQbGFjZWhvbGRlckRpcmVjdGl2ZSB7XG5cdC8qKiBAaW50ZXJuYWxlICovXG5cdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjx2b2lkPj4oVGVtcGxhdGVSZWYpO1xufVxuIl19
@@ -1,67 +0,0 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { Directive, ElementRef, PLATFORM_ID, computed, inject } from '@angular/core';
3
- import { NgControl } from '@angular/forms';
4
- import { injectBrnSelect } from './brn-select.token';
5
- import * as i0 from "@angular/core";
6
- export class BrnSelectTriggerDirective {
7
- _elementRef = inject(ElementRef);
8
- _select = injectBrnSelect();
9
- _ngControl = inject(NgControl, { optional: true });
10
- _platform = inject(PLATFORM_ID);
11
- _triggerId = computed(() => `${this._select.id()}--trigger`);
12
- _contentId = computed(() => `${this._select.id()}--content`);
13
- _disabled = computed(() => this._select.disabled() || this._select._formDisabled());
14
- _labelledBy = computed(() => {
15
- const value = this._select.value();
16
- if (Array.isArray(value) && value.length > 0) {
17
- return `${this._select.labelId()} ${this._select.id()}--value`;
18
- }
19
- return this._select.labelId();
20
- });
21
- _resizeObserver;
22
- constructor() {
23
- this._select.trigger.set(this);
24
- }
25
- ngAfterViewInit() {
26
- this._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth);
27
- // if we are on the client, listen for element resize events
28
- if (isPlatformBrowser(this._platform)) {
29
- this._resizeObserver = new ResizeObserver(() => this._select.triggerWidth.set(this._elementRef.nativeElement.offsetWidth));
30
- this._resizeObserver.observe(this._elementRef.nativeElement);
31
- }
32
- }
33
- ngOnDestroy() {
34
- this._resizeObserver?.disconnect();
35
- }
36
- focus() {
37
- this._elementRef.nativeElement.focus();
38
- }
39
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectTriggerDirective, isStandalone: true, selector: "[brnSelectTrigger]", host: { attributes: { "type": "button", "role": "combobox", "aria-autocomplete": "none" }, listeners: { "keydown.ArrowDown": "_select.show()" }, properties: { "attr.id": "_triggerId()", "disabled": "_disabled()", "attr.aria-expanded": "_select.open()", "attr.aria-controls": "_contentId()", "attr.aria-labelledBy": "_labelledBy()", "attr.dir": "_select.dir()", "class.ng-invalid": "_ngControl?.invalid || null", "class.ng-dirty": "_ngControl?.dirty || null", "class.ng-valid": "_ngControl?.valid || null", "class.ng-touched": "_ngControl?.touched || null", "class.ng-untouched": "_ngControl?.untouched || null", "class.ng-pristine": "_ngControl?.pristine || null" } }, ngImport: i0 });
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectTriggerDirective, decorators: [{
43
- type: Directive,
44
- args: [{
45
- selector: '[brnSelectTrigger]',
46
- standalone: true,
47
- host: {
48
- type: 'button',
49
- role: 'combobox',
50
- '[attr.id]': '_triggerId()',
51
- '[disabled]': '_disabled()',
52
- '[attr.aria-expanded]': '_select.open()',
53
- '[attr.aria-controls]': '_contentId()',
54
- '[attr.aria-labelledBy]': '_labelledBy()',
55
- 'aria-autocomplete': 'none',
56
- '[attr.dir]': '_select.dir()',
57
- '[class.ng-invalid]': '_ngControl?.invalid || null',
58
- '[class.ng-dirty]': '_ngControl?.dirty || null',
59
- '[class.ng-valid]': '_ngControl?.valid || null',
60
- '[class.ng-touched]': '_ngControl?.touched || null',
61
- '[class.ng-untouched]': '_ngControl?.untouched || null',
62
- '[class.ng-pristine]': '_ngControl?.pristine || null',
63
- '(keydown.ArrowDown)': '_select.show()',
64
- },
65
- }]
66
- }], ctorParameters: () => [] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vc2VsZWN0L3NyYy9saWIvYnJuLXNlbGVjdC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQXNCLFNBQVMsRUFBRSxVQUFVLEVBQWEsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUF3QnJELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixPQUFPLEdBQUcsZUFBZSxFQUFLLENBQUM7SUFDL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDN0QsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRixXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0lBRUssZUFBZSxDQUFrQjtJQUV6QztRQUNDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRSw0REFBNEQ7UUFDNUQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQ3pFLENBQUM7WUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzBIQTFDVyx5QkFBeUI7OEdBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkF0QnJDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDTCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsV0FBVyxFQUFFLGNBQWM7d0JBQzNCLFlBQVksRUFBRSxhQUFhO3dCQUMzQixzQkFBc0IsRUFBRSxnQkFBZ0I7d0JBQ3hDLHNCQUFzQixFQUFFLGNBQWM7d0JBQ3RDLHdCQUF3QixFQUFFLGVBQWU7d0JBQ3pDLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixvQkFBb0IsRUFBRSw2QkFBNkI7d0JBQ25ELGtCQUFrQixFQUFFLDJCQUEyQjt3QkFDL0Msa0JBQWtCLEVBQUUsMkJBQTJCO3dCQUMvQyxvQkFBb0IsRUFBRSw2QkFBNkI7d0JBQ25ELHNCQUFzQixFQUFFLCtCQUErQjt3QkFDdkQscUJBQXFCLEVBQUUsOEJBQThCO3dCQUNyRCxxQkFBcUIsRUFBRSxnQkFBZ0I7cUJBQ3ZDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdHlwZSBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgUExBVEZPUk1fSUQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGluamVjdEJyblNlbGVjdCB9IGZyb20gJy4vYnJuLXNlbGVjdC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RUcmlnZ2VyXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGhvc3Q6IHtcblx0XHR0eXBlOiAnYnV0dG9uJyxcblx0XHRyb2xlOiAnY29tYm9ib3gnLFxuXHRcdCdbYXR0ci5pZF0nOiAnX3RyaWdnZXJJZCgpJyxcblx0XHQnW2Rpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG5cdFx0J1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ19zZWxlY3Qub3BlbigpJyxcblx0XHQnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnX2NvbnRlbnRJZCgpJyxcblx0XHQnW2F0dHIuYXJpYS1sYWJlbGxlZEJ5XSc6ICdfbGFiZWxsZWRCeSgpJyxcblx0XHQnYXJpYS1hdXRvY29tcGxldGUnOiAnbm9uZScsXG5cdFx0J1thdHRyLmRpcl0nOiAnX3NlbGVjdC5kaXIoKScsXG5cdFx0J1tjbGFzcy5uZy1pbnZhbGlkXSc6ICdfbmdDb250cm9sPy5pbnZhbGlkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctZGlydHldJzogJ19uZ0NvbnRyb2w/LmRpcnR5IHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctdmFsaWRdJzogJ19uZ0NvbnRyb2w/LnZhbGlkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctdG91Y2hlZF0nOiAnX25nQ29udHJvbD8udG91Y2hlZCB8fCBudWxsJyxcblx0XHQnW2NsYXNzLm5nLXVudG91Y2hlZF0nOiAnX25nQ29udHJvbD8udW50b3VjaGVkIHx8IG51bGwnLFxuXHRcdCdbY2xhc3MubmctcHJpc3RpbmVdJzogJ19uZ0NvbnRyb2w/LnByaXN0aW5lIHx8IG51bGwnLFxuXHRcdCcoa2V5ZG93bi5BcnJvd0Rvd24pJzogJ19zZWxlY3Quc2hvdygpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0PFQ+KCk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblx0cHJpdmF0ZSByZWFkb25seSBfcGxhdGZvcm0gPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3RyaWdnZXJJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdHJpZ2dlcmApO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbnRlbnRJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tY29udGVudGApO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0LmRpc2FibGVkKCkgfHwgdGhpcy5fc2VsZWN0Ll9mb3JtRGlzYWJsZWQoKSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBfbGFiZWxsZWRCeSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX3NlbGVjdC52YWx1ZSgpO1xuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLl9zZWxlY3QubGFiZWxJZCgpfSAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdmFsdWVgO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0LmxhYmVsSWQoKTtcblx0fSk7XG5cblx0cHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLl9zZWxlY3QudHJpZ2dlci5zZXQodGhpcyk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5fc2VsZWN0LnRyaWdnZXJXaWR0aC5zZXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcblxuXHRcdC8vIGlmIHdlIGFyZSBvbiB0aGUgY2xpZW50LCBsaXN0ZW4gZm9yIGVsZW1lbnQgcmVzaXplIGV2ZW50c1xuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybSkpIHtcblx0XHRcdHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+XG5cdFx0XHRcdHRoaXMuX3NlbGVjdC50cmlnZ2VyV2lkdGguc2V0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCksXG5cdFx0XHQpO1xuXG5cdFx0XHR0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcblx0fVxuXG5cdGZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG59XG4iXX0=
@@ -1,68 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, contentChild, input } from '@angular/core';
3
- import { BrnSelectPlaceholderDirective } from './brn-select-placeholder.directive';
4
- import { BrnSelectValueDirective } from './brn-select-value.directive';
5
- import { injectBrnSelect } from './brn-select.token';
6
- import * as i0 from "@angular/core";
7
- export class BrnSelectValueComponent {
8
- _select = injectBrnSelect();
9
- id = computed(() => `${this._select.id()}--value`);
10
- placeholder = computed(() => this._select.placeholder());
11
- _showPlaceholder = computed(() => this.value() === null || this.value() === undefined || this.value() === '');
12
- /** Allow a custom value template */
13
- customValueTemplate = contentChild(BrnSelectValueDirective, { descendants: true });
14
- customPlaceholderTemplate = contentChild(BrnSelectPlaceholderDirective, { descendants: true });
15
- value = computed(() => {
16
- const value = this._values();
17
- if (value.length === 0) {
18
- return null;
19
- }
20
- // remove any selected values that are not in the options list
21
- const existingOptions = value.filter((val) => this._select.options().some((option) => this._select.compareWith()(option.value(), val)));
22
- const selectedOption = existingOptions.map((val) => this._select.options().find((option) => this._select.compareWith()(option.value(), val)));
23
- if (selectedOption.length === 0) {
24
- return null;
25
- }
26
- const selectedLabels = selectedOption.map((option) => option?.getLabel());
27
- if (this._select.dir() === 'rtl') {
28
- selectedLabels.reverse();
29
- }
30
- return this.transformFn()(selectedLabels);
31
- });
32
- /** Normalize the values as an array */
33
- _values = computed(() => Array.isArray(this._select.value()) ? this._select.value() : [this._select.value()]);
34
- transformFn = input((values) => (values ?? []).join(', '));
35
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnSelectValueComponent, isStandalone: true, selector: "brn-select-value, hlm-select-value", inputs: { transformFn: { classPropertyName: "transformFn", publicName: "transformFn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" } }, queries: [{ propertyName: "customValueTemplate", first: true, predicate: BrnSelectValueDirective, descendants: true, isSignal: true }, { propertyName: "customPlaceholderTemplate", first: true, predicate: BrnSelectPlaceholderDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
37
- @if (_showPlaceholder()) {
38
- <ng-container [ngTemplateOutlet]="customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate" />
39
- } @else {
40
- <ng-container
41
- [ngTemplateOutlet]="customValueTemplate()?.templateRef ?? defaultValueTemplate"
42
- [ngTemplateOutletContext]="{ $implicit: _select.value() }"
43
- />
44
- }
45
-
46
- <ng-template #defaultValueTemplate>{{ value() }}</ng-template>
47
- <ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>
48
- `, isInline: true, styles: [":host{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:nowrap;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueComponent, decorators: [{
51
- type: Component,
52
- args: [{ selector: 'brn-select-value, hlm-select-value', imports: [NgTemplateOutlet], template: `
53
- @if (_showPlaceholder()) {
54
- <ng-container [ngTemplateOutlet]="customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate" />
55
- } @else {
56
- <ng-container
57
- [ngTemplateOutlet]="customValueTemplate()?.templateRef ?? defaultValueTemplate"
58
- [ngTemplateOutletContext]="{ $implicit: _select.value() }"
59
- />
60
- }
61
-
62
- <ng-template #defaultValueTemplate>{{ value() }}</ng-template>
63
- <ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>
64
- `, host: {
65
- '[id]': 'id()',
66
- }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;white-space:nowrap;pointer-events:none}\n"] }]
67
- }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC12YWx1ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtdmFsdWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1DckQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQixPQUFPLEdBQUcsZUFBZSxFQUFLLENBQUM7SUFDbEMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRXRELGdCQUFnQixHQUFHLFFBQVEsQ0FDN0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQ2hGLENBQUM7SUFFRixvQ0FBb0M7SUFDakIsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYseUJBQXlCLEdBQUcsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFL0YsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTdCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCw4REFBOEQ7UUFDOUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUN4RixDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUN4RixDQUFDO1FBRUYsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUgsdUNBQXVDO0lBQ3BCLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBVSxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQVMsQ0FDckcsQ0FBQztJQUVjLFdBQVcsR0FBRyxLQUFLLENBQTBDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzswSEE3Q3hHLHVCQUF1Qjs4R0FBdkIsdUJBQXVCLDZVQVVtQix1QkFBdUIsNEdBQ2pCLDZCQUE2QixnRUF6Qy9FOzs7Ozs7Ozs7Ozs7RUFZVCw4TEFiUyxnQkFBZ0I7OzJGQStCZCx1QkFBdUI7a0JBakNuQyxTQUFTOytCQUNDLG9DQUFvQyxXQUNyQyxDQUFDLGdCQUFnQixDQUFDLFlBQ2pCOzs7Ozs7Ozs7Ozs7RUFZVCxRQUNLO3dCQUNMLE1BQU0sRUFBRSxNQUFNO3FCQUNkLGNBWVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuU2VsZWN0UGxhY2Vob2xkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2Jybi1zZWxlY3QtcGxhY2Vob2xkZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJyblNlbGVjdFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9icm4tc2VsZWN0LXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBpbmplY3RCcm5TZWxlY3QgfSBmcm9tICcuL2Jybi1zZWxlY3QudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdicm4tc2VsZWN0LXZhbHVlLCBobG0tc2VsZWN0LXZhbHVlJyxcblx0aW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoX3Nob3dQbGFjZWhvbGRlcigpKSB7XG5cdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbVBsYWNlaG9sZGVyVGVtcGxhdGUoKT8udGVtcGxhdGVSZWYgPz8gZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGVcIiAvPlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PG5nLWNvbnRhaW5lclxuXHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21WYWx1ZVRlbXBsYXRlKCk/LnRlbXBsYXRlUmVmID8/IGRlZmF1bHRWYWx1ZVRlbXBsYXRlXCJcblx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBfc2VsZWN0LnZhbHVlKCkgfVwiXG5cdFx0XHQvPlxuXHRcdH1cblxuXHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFZhbHVlVGVtcGxhdGU+e3sgdmFsdWUoKSB9fTwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZT57eyBwbGFjZWhvbGRlcigpIH19PC9uZy10ZW1wbGF0ZT5cblx0YCxcblx0aG9zdDoge1xuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHR9LFxuXHRzdHlsZXM6IFtcblx0XHRgXG5cdFx0XHQ6aG9zdCB7XG5cdFx0XHRcdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRcdFx0XHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuXHRcdFx0XHQtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXHRcdGAsXG5cdF0sXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RWYWx1ZUNvbXBvbmVudDxUPiB7XG5cdHByb3RlY3RlZCByZWFkb25seSBfc2VsZWN0ID0gaW5qZWN0QnJuU2VsZWN0PFQ+KCk7XG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX3NlbGVjdC5pZCgpfS0tdmFsdWVgKTtcblx0cHVibGljIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fc2VsZWN0LnBsYWNlaG9sZGVyKCkpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBfc2hvd1BsYWNlaG9sZGVyID0gY29tcHV0ZWQoXG5cdFx0KCkgPT4gdGhpcy52YWx1ZSgpID09PSBudWxsIHx8IHRoaXMudmFsdWUoKSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUoKSA9PT0gJycsXG5cdCk7XG5cblx0LyoqIEFsbG93IGEgY3VzdG9tIHZhbHVlIHRlbXBsYXRlICovXG5cdHByb3RlY3RlZCByZWFkb25seSBjdXN0b21WYWx1ZVRlbXBsYXRlID0gY29udGVudENoaWxkKEJyblNlbGVjdFZhbHVlRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgY3VzdG9tUGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChCcm5TZWxlY3RQbGFjZWhvbGRlckRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLl92YWx1ZXMoKTtcblxuXHRcdGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8vIHJlbW92ZSBhbnkgc2VsZWN0ZWQgdmFsdWVzIHRoYXQgYXJlIG5vdCBpbiB0aGUgb3B0aW9ucyBsaXN0XG5cdFx0Y29uc3QgZXhpc3RpbmdPcHRpb25zID0gdmFsdWUuZmlsdGVyKCh2YWwpID0+XG5cdFx0XHR0aGlzLl9zZWxlY3Qub3B0aW9ucygpLnNvbWUoKG9wdGlvbikgPT4gdGhpcy5fc2VsZWN0LmNvbXBhcmVXaXRoKCkob3B0aW9uLnZhbHVlKCksIHZhbCkpLFxuXHRcdCk7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBleGlzdGluZ09wdGlvbnMubWFwKCh2YWwpID0+XG5cdFx0XHR0aGlzLl9zZWxlY3Qub3B0aW9ucygpLmZpbmQoKG9wdGlvbikgPT4gdGhpcy5fc2VsZWN0LmNvbXBhcmVXaXRoKCkob3B0aW9uLnZhbHVlKCksIHZhbCkpLFxuXHRcdCk7XG5cblx0XHRpZiAoc2VsZWN0ZWRPcHRpb24ubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRjb25zdCBzZWxlY3RlZExhYmVscyA9IHNlbGVjdGVkT3B0aW9uLm1hcCgob3B0aW9uKSA9PiBvcHRpb24/LmdldExhYmVsKCkpO1xuXG5cdFx0aWYgKHRoaXMuX3NlbGVjdC5kaXIoKSA9PT0gJ3J0bCcpIHtcblx0XHRcdHNlbGVjdGVkTGFiZWxzLnJldmVyc2UoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudHJhbnNmb3JtRm4oKShzZWxlY3RlZExhYmVscyk7XG5cdH0pO1xuXG5cdC8qKiBOb3JtYWxpemUgdGhlIHZhbHVlcyBhcyBhbiBhcnJheSAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbHVlcyA9IGNvbXB1dGVkKCgpID0+XG5cdFx0QXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3QudmFsdWUoKSkgPyAodGhpcy5fc2VsZWN0LnZhbHVlKCkgYXMgVFtdKSA6IChbdGhpcy5fc2VsZWN0LnZhbHVlKCldIGFzIFRbXSksXG5cdCk7XG5cblx0cHVibGljIHJlYWRvbmx5IHRyYW5zZm9ybUZuID0gaW5wdXQ8KHZhbHVlczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkgPT4gYW55PigodmFsdWVzKSA9PiAodmFsdWVzID8/IFtdKS5qb2luKCcsICcpKTtcbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { Directive, inject, TemplateRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BrnSelectValueDirective {
4
- /** @internale */
5
- templateRef = inject(TemplateRef);
6
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSelectValueDirective, isStandalone: true, selector: "[brnSelectValue], [hlmSelectValue]", ngImport: i0 });
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSelectValueDirective, decorators: [{
10
- type: Directive,
11
- args: [{
12
- standalone: true,
13
- selector: '[brnSelectValue], [hlmSelectValue]',
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NlbGVjdC9zcmMvbGliL2Jybi1zZWxlY3QtdmFsdWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLHVCQUF1QjtJQUNuQyxpQkFBaUI7SUFDRCxXQUFXLEdBQUcsTUFBTSxDQUF3QyxXQUFXLENBQUMsQ0FBQzswSEFGN0UsdUJBQXVCOzhHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQ0FBb0M7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ1ticm5TZWxlY3RWYWx1ZV0sIFtobG1TZWxlY3RWYWx1ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5TZWxlY3RWYWx1ZURpcmVjdGl2ZTxUPiB7XG5cdC8qKiBAaW50ZXJuYWxlICovXG5cdHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxCcm5TZWxlY3RWYWx1ZUNvbnRleHQ8VD4+PihUZW1wbGF0ZVJlZik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJuU2VsZWN0VmFsdWVDb250ZXh0PFQ+IHtcblx0JGltcGxpY2l0OiBUIHwgVFtdO1xufVxuIl19