@spartan-ng/brain 0.0.1-alpha.563 → 0.0.1-alpha.565

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 (272) hide show
  1. package/accordion/index.d.ts +125 -10
  2. package/alert-dialog/index.d.ts +40 -13
  3. package/autocomplete/index.d.ts +113 -15
  4. package/avatar/index.d.ts +40 -8
  5. package/button/index.d.ts +15 -3
  6. package/calendar/index.d.ts +465 -29
  7. package/checkbox/index.d.ts +156 -3
  8. package/collapsible/index.d.ts +70 -8
  9. package/command/index.d.ts +147 -16
  10. package/core/index.d.ts +153 -11
  11. package/date-time/index.d.ts +321 -3
  12. package/date-time-luxon/index.d.ts +32 -1
  13. package/dialog/index.d.ts +225 -21
  14. package/fesm2022/spartan-ng-brain-accordion.mjs +12 -12
  15. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  16. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +18 -18
  17. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  18. package/fesm2022/spartan-ng-brain-autocomplete.mjs +18 -18
  19. package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
  20. package/fesm2022/spartan-ng-brain-avatar.mjs +12 -12
  21. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
  22. package/fesm2022/spartan-ng-brain-button.mjs +3 -3
  23. package/fesm2022/spartan-ng-brain-button.mjs.map +1 -1
  24. package/fesm2022/spartan-ng-brain-calendar.mjs +42 -42
  25. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
  26. package/fesm2022/spartan-ng-brain-checkbox.mjs +5 -5
  27. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  28. package/fesm2022/spartan-ng-brain-collapsible.mjs +9 -9
  29. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
  30. package/fesm2022/spartan-ng-brain-command.mjs +29 -34
  31. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
  32. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -1
  33. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -1
  34. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
  35. package/fesm2022/spartan-ng-brain-dialog.mjs +24 -24
  36. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  37. package/fesm2022/spartan-ng-brain-form-field.mjs +3 -3
  38. package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -1
  39. package/fesm2022/spartan-ng-brain-forms.mjs +6 -6
  40. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -1
  41. package/fesm2022/spartan-ng-brain-hover-card.mjs +12 -12
  42. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  43. package/fesm2022/spartan-ng-brain-input-otp.mjs +6 -6
  44. package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
  45. package/fesm2022/spartan-ng-brain-label.mjs +3 -3
  46. package/fesm2022/spartan-ng-brain-label.mjs.map +1 -1
  47. package/fesm2022/spartan-ng-brain-menu.mjs +24 -24
  48. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -1
  49. package/fesm2022/spartan-ng-brain-navigation-menu.mjs +21 -21
  50. package/fesm2022/spartan-ng-brain-navigation-menu.mjs.map +1 -1
  51. package/fesm2022/spartan-ng-brain-popover.mjs +12 -12
  52. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  53. package/fesm2022/spartan-ng-brain-progress.mjs +6 -6
  54. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -1
  55. package/fesm2022/spartan-ng-brain-radio-group.mjs +6 -6
  56. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  57. package/fesm2022/spartan-ng-brain-resizable.mjs +10 -11
  58. package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
  59. package/fesm2022/spartan-ng-brain-select.mjs +33 -33
  60. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  61. package/fesm2022/spartan-ng-brain-separator.mjs +3 -3
  62. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -1
  63. package/fesm2022/spartan-ng-brain-sheet.mjs +21 -21
  64. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  65. package/fesm2022/spartan-ng-brain-slider.mjs +17 -17
  66. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  67. package/fesm2022/spartan-ng-brain-switch.mjs +8 -8
  68. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
  69. package/fesm2022/spartan-ng-brain-tabs.mjs +15 -15
  70. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  71. package/fesm2022/spartan-ng-brain-toggle-group.mjs +6 -6
  72. package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
  73. package/fesm2022/spartan-ng-brain-toggle.mjs +3 -3
  74. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  75. package/fesm2022/spartan-ng-brain-tooltip.mjs +14 -14
  76. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  77. package/fesm2022/spartan-ng-brain.mjs.map +1 -1
  78. package/form-field/index.d.ts +14 -1
  79. package/forms/index.d.ts +35 -3
  80. package/hover-card/index.d.ts +86 -5
  81. package/index.d.ts +2 -2
  82. package/input-otp/index.d.ts +82 -5
  83. package/label/index.d.ts +20 -3
  84. package/menu/index.d.ts +79 -17
  85. package/navigation-menu/index.d.ts +185 -13
  86. package/package.json +9 -9
  87. package/popover/index.d.ts +39 -9
  88. package/progress/index.d.ts +39 -6
  89. package/radio-group/index.d.ts +124 -6
  90. package/resizable/index.d.ts +103 -3
  91. package/select/index.d.ts +217 -21
  92. package/separator/index.d.ts +27 -4
  93. package/sheet/index.d.ts +51 -15
  94. package/slider/index.d.ts +100 -12
  95. package/switch/index.d.ts +141 -5
  96. package/tabs/index.d.ts +276 -10
  97. package/toggle/index.d.ts +30 -3
  98. package/toggle-group/index.d.ts +108 -6
  99. package/tooltip/index.d.ts +261 -10
  100. package/accordion/lib/brn-accordion-content.d.ts +0 -20
  101. package/accordion/lib/brn-accordion-item.d.ts +0 -28
  102. package/accordion/lib/brn-accordion-token.d.ts +0 -19
  103. package/accordion/lib/brn-accordion-trigger.d.ts +0 -16
  104. package/accordion/lib/brn-accordion.d.ts +0 -39
  105. package/alert-dialog/lib/brn-alert-dialog-content.d.ts +0 -6
  106. package/alert-dialog/lib/brn-alert-dialog-description.d.ts +0 -6
  107. package/alert-dialog/lib/brn-alert-dialog-overlay.d.ts +0 -6
  108. package/alert-dialog/lib/brn-alert-dialog-title.d.ts +0 -6
  109. package/alert-dialog/lib/brn-alert-dialog-trigger.d.ts +0 -10
  110. package/alert-dialog/lib/brn-alert-dialog.d.ts +0 -7
  111. package/autocomplete/lib/brn-autocomplete-empty.d.ts +0 -11
  112. package/autocomplete/lib/brn-autocomplete-group.d.ts +0 -8
  113. package/autocomplete/lib/brn-autocomplete-item.d.ts +0 -32
  114. package/autocomplete/lib/brn-autocomplete-item.token.d.ts +0 -4
  115. package/autocomplete/lib/brn-autocomplete-list.d.ts +0 -8
  116. package/autocomplete/lib/brn-autocomplete-search-input.d.ts +0 -13
  117. package/autocomplete/lib/brn-autocomplete.d.ts +0 -30
  118. package/autocomplete/lib/brn-autocomplete.token.d.ts +0 -5
  119. package/avatar/lib/brn-avatar.d.ts +0 -7
  120. package/avatar/lib/fallback/brn-avatar-fallback.d.ts +0 -9
  121. package/avatar/lib/fallback/index.d.ts +0 -1
  122. package/avatar/lib/image/brn-avatar-image.d.ts +0 -9
  123. package/avatar/lib/image/index.d.ts +0 -1
  124. package/avatar/lib/util/hex-color-for.d.ts +0 -1
  125. package/avatar/lib/util/index.d.ts +0 -3
  126. package/avatar/lib/util/initials.pipe.d.ts +0 -7
  127. package/avatar/lib/util/is-bright.d.ts +0 -1
  128. package/button/lib/brn-button.d.ts +0 -10
  129. package/calendar/lib/brn-calendar-cell-button.d.ts +0 -62
  130. package/calendar/lib/brn-calendar-cell.d.ts +0 -5
  131. package/calendar/lib/brn-calendar-grid.d.ts +0 -7
  132. package/calendar/lib/brn-calendar-header.d.ts +0 -7
  133. package/calendar/lib/brn-calendar-month-select.d.ts +0 -17
  134. package/calendar/lib/brn-calendar-next-button.d.ts +0 -13
  135. package/calendar/lib/brn-calendar-previous-button.d.ts +0 -13
  136. package/calendar/lib/brn-calendar-week.d.ts +0 -25
  137. package/calendar/lib/brn-calendar-weekday.d.ts +0 -28
  138. package/calendar/lib/brn-calendar-year-select.d.ts +0 -16
  139. package/calendar/lib/brn-calendar.d.ts +0 -74
  140. package/calendar/lib/brn-calendar.token.d.ts +0 -22
  141. package/calendar/lib/i18n/calendar-i18n.d.ts +0 -32
  142. package/calendar/lib/mode/brn-calendar-multiple.d.ts +0 -77
  143. package/calendar/lib/mode/brn-calendar-range.d.ts +0 -79
  144. package/checkbox/lib/brn-checkbox.d.ts +0 -151
  145. package/collapsible/lib/brn-collapsible-content.d.ts +0 -15
  146. package/collapsible/lib/brn-collapsible-token.d.ts +0 -16
  147. package/collapsible/lib/brn-collapsible-trigger.d.ts +0 -9
  148. package/collapsible/lib/brn-collapsible.d.ts +0 -24
  149. package/command/lib/brn-command-empty.d.ts +0 -11
  150. package/command/lib/brn-command-group.d.ts +0 -12
  151. package/command/lib/brn-command-item.d.ts +0 -42
  152. package/command/lib/brn-command-item.token.d.ts +0 -4
  153. package/command/lib/brn-command-list.d.ts +0 -8
  154. package/command/lib/brn-command-search-input.d.ts +0 -24
  155. package/command/lib/brn-command-search-input.token.d.ts +0 -4
  156. package/command/lib/brn-command.d.ts +0 -29
  157. package/command/lib/brn-command.token.d.ts +0 -11
  158. package/core/helpers/computed-previous.d.ts +0 -36
  159. package/core/helpers/create-hover-observable.d.ts +0 -7
  160. package/core/helpers/create-injection-token.d.ts +0 -20
  161. package/core/helpers/custom-element-class-settable.d.ts +0 -12
  162. package/core/helpers/debounced-signal.d.ts +0 -9
  163. package/core/helpers/dev-mode.d.ts +0 -5
  164. package/core/helpers/exposes-side.d.ts +0 -13
  165. package/core/helpers/exposes-state.d.ts +0 -13
  166. package/core/helpers/measure-dimensions.d.ts +0 -5
  167. package/core/helpers/table-classes-settable.d.ts +0 -16
  168. package/core/helpers/wait-for-element-animations.d.ts +0 -5
  169. package/core/helpers/zone-free.d.ts +0 -10
  170. package/date-time/lib/date-adapter.d.ts +0 -186
  171. package/date-time/lib/native-date-adapter.d.ts +0 -103
  172. package/date-time/lib/utc-date-adapter.d.ts +0 -28
  173. package/date-time-luxon/lib/date-adapter.d.ts +0 -29
  174. package/dialog/lib/brn-dialog-close.d.ts +0 -8
  175. package/dialog/lib/brn-dialog-content.d.ts +0 -12
  176. package/dialog/lib/brn-dialog-description.d.ts +0 -8
  177. package/dialog/lib/brn-dialog-options.d.ts +0 -26
  178. package/dialog/lib/brn-dialog-overlay.d.ts +0 -9
  179. package/dialog/lib/brn-dialog-ref.d.ts +0 -24
  180. package/dialog/lib/brn-dialog-state.d.ts +0 -1
  181. package/dialog/lib/brn-dialog-title.d.ts +0 -8
  182. package/dialog/lib/brn-dialog-token.d.ts +0 -29
  183. package/dialog/lib/brn-dialog-trigger.d.ts +0 -18
  184. package/dialog/lib/brn-dialog-utils.d.ts +0 -1
  185. package/dialog/lib/brn-dialog.d.ts +0 -61
  186. package/dialog/lib/brn-dialog.service.d.ts +0 -23
  187. package/form-field/lib/brn-form-field-control.d.ts +0 -11
  188. package/forms/lib/control-value-accessor.d.ts +0 -2
  189. package/forms/lib/error-options.d.ts +0 -14
  190. package/forms/lib/error-state-tracker.d.ts +0 -15
  191. package/hover-card/lib/brn-hover-card-content.service.d.ts +0 -72
  192. package/hover-card/lib/brn-hover-card.d.ts +0 -9
  193. package/input-otp/lib/brn-input-otp-slot.d.ts +0 -15
  194. package/input-otp/lib/brn-input-otp.d.ts +0 -61
  195. package/input-otp/lib/brn-input-otp.token.d.ts +0 -5
  196. package/label/lib/brn-label.d.ts +0 -15
  197. package/menu/lib/brn-context-menu-trigger.d.ts +0 -14
  198. package/menu/lib/brn-menu-align.d.ts +0 -4
  199. package/menu/lib/brn-menu-bar.d.ts +0 -6
  200. package/menu/lib/brn-menu-group.d.ts +0 -6
  201. package/menu/lib/brn-menu-item-checkbox.d.ts +0 -11
  202. package/menu/lib/brn-menu-item-radio.d.ts +0 -11
  203. package/menu/lib/brn-menu-item.d.ts +0 -10
  204. package/menu/lib/brn-menu-trigger.d.ts +0 -11
  205. package/menu/lib/brn-menu.d.ts +0 -11
  206. package/navigation-menu/lib/brn-navigation-menu-content.d.ts +0 -22
  207. package/navigation-menu/lib/brn-navigation-menu-content.service.d.ts +0 -44
  208. package/navigation-menu/lib/brn-navigation-menu-item-focusable.token.d.ts +0 -4
  209. package/navigation-menu/lib/brn-navigation-menu-item.d.ts +0 -23
  210. package/navigation-menu/lib/brn-navigation-menu-item.token.d.ts +0 -5
  211. package/navigation-menu/lib/brn-navigation-menu-link.d.ts +0 -22
  212. package/navigation-menu/lib/brn-navigation-menu-list.d.ts +0 -7
  213. package/navigation-menu/lib/brn-navigation-menu-trigger.d.ts +0 -44
  214. package/navigation-menu/lib/brn-navigation-menu.d.ts +0 -61
  215. package/navigation-menu/lib/brn-navigation-menu.token.d.ts +0 -5
  216. package/navigation-menu/lib/brn-parent-nav-menu.token.d.ts +0 -8
  217. package/popover/lib/brn-popover-close.d.ts +0 -6
  218. package/popover/lib/brn-popover-content.d.ts +0 -6
  219. package/popover/lib/brn-popover-trigger.d.ts +0 -10
  220. package/popover/lib/brn-popover.d.ts +0 -15
  221. package/progress/lib/brn-progress-indicator.d.ts +0 -6
  222. package/progress/lib/brn-progress.d.ts +0 -24
  223. package/progress/lib/brn-progress.token.d.ts +0 -4
  224. package/radio-group/lib/brn-radio-group.d.ts +0 -59
  225. package/radio-group/lib/brn-radio-group.token.d.ts +0 -4
  226. package/radio-group/lib/brn-radio.d.ts +0 -58
  227. package/resizable/lib/brn-resizable-group.d.ts +0 -37
  228. package/resizable/lib/brn-resizable-handle.d.ts +0 -26
  229. package/resizable/lib/brn-resizable-panel.d.ts +0 -39
  230. package/select/lib/brn-select-content.d.ts +0 -48
  231. package/select/lib/brn-select-content.token.d.ts +0 -4
  232. package/select/lib/brn-select-group.d.ts +0 -6
  233. package/select/lib/brn-select-label.d.ts +0 -9
  234. package/select/lib/brn-select-option.d.ts +0 -25
  235. package/select/lib/brn-select-placeholder.d.ts +0 -8
  236. package/select/lib/brn-select-trigger.d.ts +0 -24
  237. package/select/lib/brn-select-value-template.d.ts +0 -11
  238. package/select/lib/brn-select-value.d.ts +0 -18
  239. package/select/lib/brn-select.d.ts +0 -69
  240. package/select/lib/brn-select.token.d.ts +0 -4
  241. package/separator/lib/brn-separator.d.ts +0 -14
  242. package/separator/lib/brn-separator.token.d.ts +0 -7
  243. package/sheet/lib/brn-sheet-close.d.ts +0 -6
  244. package/sheet/lib/brn-sheet-content.d.ts +0 -8
  245. package/sheet/lib/brn-sheet-description.d.ts +0 -6
  246. package/sheet/lib/brn-sheet-overlay.d.ts +0 -6
  247. package/sheet/lib/brn-sheet-title.d.ts +0 -6
  248. package/sheet/lib/brn-sheet-trigger.d.ts +0 -10
  249. package/sheet/lib/brn-sheet.d.ts +0 -10
  250. package/slider/lib/brn-slider-range.d.ts +0 -7
  251. package/slider/lib/brn-slider-thumb.d.ts +0 -24
  252. package/slider/lib/brn-slider-tick.d.ts +0 -12
  253. package/slider/lib/brn-slider-track.d.ts +0 -12
  254. package/slider/lib/brn-slider-track.token.d.ts +0 -5
  255. package/slider/lib/brn-slider.d.ts +0 -39
  256. package/slider/lib/brn-slider.token.d.ts +0 -4
  257. package/switch/lib/brn-switch-thumb.d.ts +0 -5
  258. package/switch/lib/brn-switch.d.ts +0 -131
  259. package/tabs/lib/brn-tabs-content.d.ts +0 -15
  260. package/tabs/lib/brn-tabs-list.d.ts +0 -17
  261. package/tabs/lib/brn-tabs-paginated-list.d.ts +0 -196
  262. package/tabs/lib/brn-tabs-trigger.d.ts +0 -21
  263. package/tabs/lib/brn-tabs.d.ts +0 -38
  264. package/toggle/lib/brn-toggle.d.ts +0 -25
  265. package/toggle-group/lib/brn-toggle-group.d.ts +0 -68
  266. package/toggle-group/lib/brn-toggle-group.token.d.ts +0 -4
  267. package/toggle-group/lib/brn-toggle-item.d.ts +0 -31
  268. package/tooltip/lib/brn-tooltip-content-template.d.ts +0 -8
  269. package/tooltip/lib/brn-tooltip-content.d.ts +0 -73
  270. package/tooltip/lib/brn-tooltip-trigger.d.ts +0 -141
  271. package/tooltip/lib/brn-tooltip.d.ts +0 -7
  272. package/tooltip/lib/brn-tooltip.token.d.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../../../../libs/brain/resizable/src/lib/brn-resizable-panel.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-group.ts","../../../../libs/brain/resizable/src/lib/brn-resizable-handle.ts","../../../../libs/brain/resizable/src/spartan-ng-brain-resizable.ts"],"sourcesContent":["import {\n\tbooleanAttribute,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-panel, [brnResizablePanel]',\n\texportAs: 'brnResizablePanel',\n\thost: {\n\t\t'[attr.data-panel-group-id]': '_panelGroup.id()',\n\t\t'[attr.data-panel-id]': 'id()',\n\t\t'[attr.data-panel-size]': '_panelSize()',\n\t\t'[id]': 'id()',\n\t\t'[style.flex]': '_flex()',\n\t\t'[style.overflow]': '\"hidden\"',\n\t\t'data-panel': '',\n\t\t'data-slot': 'resizable-panel',\n\t},\n})\nexport class BrnResizablePanel {\n\t/** Unique ID for the panel. */\n\tpublic readonly id = input<string>(`brn-resizable-panel-${++nextId}`);\n\n\t/** Reference to the parent {@link BrnResizableGroup}. */\n\tprotected readonly _panelGroup = inject(BrnResizableGroup);\n\n\t/** Host DOM element reference. */\n\tpublic readonly el = inject(ElementRef<HTMLElement>);\n\n\t/**\n\t * The default size of the panel (percentage of container space).\n\t * - `undefined` → group decides initial size.\n\t * - Number → interpreted as percentage (0–100).\n\t */\n\tpublic readonly defaultSize = input(undefined, { transform: numberAttribute });\n\n\t/** The minimum size this panel can shrink to (percentage). */\n\n\tpublic readonly minSize = input(0, { transform: numberAttribute });\n\n\t/**\t The maximum size this panel can grow to (percentage). */\n\tpublic readonly maxSize = input(100, { transform: numberAttribute });\n\n\t/** Whether this panel can be collapsed entirely. */\n\tpublic readonly collapsible = input(true, { transform: booleanAttribute });\n\n\t/** Reactive signal holding the current size of the panel. */\n\tprotected readonly _panelSize = signal<number>(100);\n\n\t/**\n\t * CSS flex style for this panel, derived from its current size.\n\t * Format: `\"flex-grow flex-shrink flex-basis\"`.\n\t *\n\t * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n\t */\n\tprotected readonly _flex = computed(() => `${this._panelSize()} 1 0`);\n\n\t/**\n\t * Sets the size of the panel.\n\t * @param size New size (percentage of container space).\n\t */\n\tpublic setSize(size: number) {\n\t\tthis._panelSize.set(size);\n\t}\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n\tafterNextRender,\n\tcontentChildren,\n\tDirective,\n\tElementRef,\n\tinject,\n\tinput,\n\tmodel,\n\tNgZone,\n\toutput,\n} from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: 'brn-resizable-group, [brnResizableGroup]',\n\texportAs: 'brnResizableGroup',\n\thost: {\n\t\t'[attr.data-panel-group-direction]': 'direction()',\n\t\t'[attr.data-panel-group-id]': 'id()',\n\t\t'[id]': 'id()',\n\t\t'data-panel-group': '',\n\t\t'data-slot': 'resizable-panel-group',\n\t},\n})\nexport class BrnResizableGroup {\n\t/** The id of the BrnResizableGroup */\n\tpublic readonly id = input<string>(`brn-resizable-group-${++nextId}`);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Group orientation */\n\tpublic readonly direction = input<'horizontal' | 'vertical'>('horizontal');\n\n\t/** @internal Access all the panels within the group */\n\tpublic readonly panels = contentChildren(BrnResizablePanel);\n\n\t/** event when resize starts */\n\tpublic readonly dragStart = output<void>();\n\n\t/** event when resize ends */\n\tpublic readonly dragEnd = output<void>();\n\n\t/** Resize panel group to the specified layout ([1 - 100, ...]). */\n\tpublic readonly layout = model<number[]>([]);\n\n\t/** Called when group layout changes */\n\tpublic readonly layoutChanged = output<number[]>();\n\n\tprivate readonly _document = inject(DOCUMENT);\n\n\tprivate readonly _zone = inject(NgZone);\n\n\tprivate _resizeRaf: number | null = null;\n\n\tprivate _pendingSizes: number[] | null = null;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._initializePanelSizes();\n\t\t});\n\t}\n\n\tprivate _initializePanelSizes(): void {\n\t\tconst panels = this.panels();\n\t\tconst totalPanels = panels.length;\n\n\t\tif (totalPanels === 0) return;\n\n\t\tconst sizes: number[] = [];\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst defaultSize = panel.defaultSize() ?? this.layout()[index];\n\t\t\tconst size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n\t\t\tsizes.push(size);\n\t\t\tpanel.setSize(size);\n\t\t});\n\n\t\tif (this.layout().toString() !== sizes.toString()) {\n\t\t\tthis._setLayout(sizes);\n\t\t}\n\t}\n\n\tpublic startResize(handleIndex: number, event: MouseEvent | TouchEvent): void {\n\t\tevent.preventDefault();\n\n\t\tconst cursor = this.direction() === 'vertical' ? 'row-resize' : 'col-resize';\n\t\tthis._document.body.style.cursor = `${cursor}`;\n\t\tconst sizes = [...this.layout()];\n\t\tthis.dragStart.emit();\n\n\t\tconst startPosition = this._getEventPosition(event);\n\t\tconst startSizes = [...sizes];\n\n\t\tconst handleMove = (moveEvent: MouseEvent | TouchEvent) => {\n\t\t\tthis._zone.runOutsideAngular(() => {\n\t\t\t\tthis._handleResize(moveEvent, handleIndex, startPosition, startSizes);\n\t\t\t});\n\t\t};\n\n\t\tconst handleEnd = () => {\n\t\t\tthis._zone.run(() => this._endResize());\n\n\t\t\tthis._document.body.style.cursor = 'default';\n\t\t\tthis._document.removeEventListener('mousemove', handleMove);\n\t\t\tthis._document.removeEventListener('touchmove', handleMove);\n\t\t\tthis._document.removeEventListener('mouseup', handleEnd);\n\t\t\tthis._document.removeEventListener('touchend', handleEnd);\n\t\t};\n\n\t\tthis._zone.runOutsideAngular(() => {\n\t\t\tthis._document.addEventListener('mousemove', handleMove);\n\t\t\tthis._document.addEventListener('touchmove', handleMove);\n\t\t\tthis._document.addEventListener('mouseup', handleEnd);\n\t\t\tthis._document.addEventListener('touchend', handleEnd);\n\t\t});\n\t}\n\n\tprivate _handleResize(\n\t\tevent: MouseEvent | TouchEvent,\n\t\thandleIndex: number,\n\t\tstartPosition: number,\n\t\tstartSizes: number[],\n\t): void {\n\t\tconst currentPosition = this._getEventPosition(event);\n\t\tconst delta = currentPosition - startPosition;\n\t\tconst containerSize = this._getContainerSize();\n\t\tconst deltaPercentage = (delta / containerSize) * 100;\n\n\t\tconst newSizes = [...startSizes];\n\t\tconst panels = this.panels();\n\n\t\tconst leftPanel = panels[handleIndex];\n\t\tconst rightPanel = panels[handleIndex + 1];\n\n\t\tif (!leftPanel || !rightPanel) return;\n\n\t\tconst leftMin = leftPanel.minSize();\n\t\tconst leftMax = leftPanel.maxSize();\n\t\tconst rightMin = rightPanel.minSize();\n\t\tconst rightMax = rightPanel.maxSize();\n\n\t\tlet newLeftSize = startSizes[handleIndex] + deltaPercentage;\n\t\tlet newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n\n\t\tnewLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tnewSizes[handleIndex] = newLeftSize;\n\t\t\tnewSizes[handleIndex + 1] = newRightSize;\n\n\t\t\t// batch update\n\t\t\tthis._queueResize(newSizes);\n\t\t}\n\t}\n\n\tprivate _queueResize(sizes: number[]): void {\n\t\tthis._pendingSizes = sizes;\n\n\t\tif (this._resizeRaf !== null) return;\n\n\t\tthis._resizeRaf = requestAnimationFrame(() => {\n\t\t\tthis._resizeRaf = null;\n\t\t\tif (this._pendingSizes) {\n\t\t\t\tthis._setLayout(this._pendingSizes);\n\t\t\t\tthis.updatePanelStyles();\n\t\t\t\tthis._pendingSizes = null;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _endResize(): void {\n\t\tif (this._resizeRaf !== null) {\n\t\t\tcancelAnimationFrame(this._resizeRaf);\n\t\t\tthis._resizeRaf = null;\n\t\t\tthis._pendingSizes = null;\n\t\t}\n\t\tthis.dragEnd.emit();\n\t}\n\n\tpublic updatePanelStyles(): void {\n\t\tconst panels = this.panels();\n\t\tconst sizes = this.layout();\n\n\t\tpanels.forEach((panel, index) => {\n\t\t\tconst size = sizes[index];\n\t\t\tif (size !== undefined) {\n\t\t\t\tpanel.setSize(size);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _getEventPosition(event: MouseEvent | TouchEvent): number {\n\t\tconst layout = this.direction();\n\t\tif (event instanceof MouseEvent) {\n\t\t\treturn layout === 'vertical' ? event.clientY : event.clientX;\n\t\t} else {\n\t\t\tconst touch = event.touches[0];\n\t\t\treturn layout === 'vertical' ? touch.clientY : touch.clientX;\n\t\t}\n\t}\n\n\tprivate _getContainerSize(): number {\n\t\tconst element = this._el.nativeElement as HTMLElement;\n\t\tconst layout = this.direction();\n\t\treturn layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n\t}\n\n\tpublic collapsePanel(index: number): void {\n\t\tconst panels = this.panels();\n\t\tconst panel = panels[index];\n\n\t\tif (!panel || !panel.collapsible()) return;\n\n\t\tconst sizes = [...this.layout()];\n\t\tconst isCollapsed = sizes[index] === 0;\n\n\t\tif (isCollapsed) {\n\t\t\tconst panelDefaultSize = panel.defaultSize();\n\t\t\tconst defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n\t\t\tsizes[index] = defaultSize;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (100 - defaultSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst collapsedSize = sizes[index];\n\t\t\tsizes[index] = 0;\n\n\t\t\tconst totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n\t\t\tconst scale = (totalOthers + collapsedSize) / totalOthers;\n\n\t\t\tsizes.forEach((size, i) => {\n\t\t\t\tif (i !== index) {\n\t\t\t\t\tsizes[i] = size * scale;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._setLayout(sizes);\n\t\tthis.updatePanelStyles();\n\t}\n\n\tprivate _setLayout(sizes: number[]): void {\n\t\tthis.layout.set(sizes);\n\t\tthis.layoutChanged.emit(sizes);\n\t}\n}\n","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\n\nimport { BrnResizableGroup } from './brn-resizable-group';\n\n@Directive({\n\tselector: 'brn-resizable-handle, [brnResizeHandle]',\n\texportAs: 'brnResizableHandle',\n\thost: {\n\t\t'[attr.data-layout]': '_layout()',\n\t\t'[attr.tabindex]': 'disabled() ? null : 0',\n\t\t'[attr.role]': '\"separator\"',\n\t\t'[attr.data-panel-group-direction]': '_direction()',\n\t\t'[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n\t\t'[attr.aria-disabled]': 'disabled()',\n\t\t'(mousedown)': '_handleMouseDown($event)',\n\t\t'(keydown)': '_handleKeyDown($event)',\n\t},\n})\nexport class BrnResizableHandle {\n\t/** Parent resizable group. */\n\tprivate readonly _resizable = inject(BrnResizableGroup);\n\n\t/** Host element reference. */\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\n\t/** Whether a visual handle is rendered inside the separator. */\n\tpublic readonly withHandle = input(false, { transform: booleanAttribute });\n\n\t/** Whether the handle is disabled (not interactive). */\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\t/** The direction of the resizable group (`horizontal` or `vertical`). */\n\tprotected readonly _direction = this._resizable.direction;\n\n\t/** Computed layout orientation based on the parent group. */\n\tprotected readonly _layout = computed(() => this._resizable?.direction() || 'horizontal');\n\n\t/** Index of this handle relative to panels in the group. */\n\tprivate _handleIndex = 0;\n\n\tconstructor() {\n\t\tafterNextRender(() => {\n\t\t\tthis._handleIndex = this._getHandleIndex();\n\t\t});\n\t}\n\n\tprivate _getHandleIndex(): number {\n\t\tconst host = this._el.nativeElement;\n\t\tconst parent = host.parentElement;\n\t\tif (!parent) return -1;\n\n\t\t// Collect all panels under this group\n\t\tconst panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n\n\t\t// Find the previous panel (the closest one before this handle)\n\t\tconst prevPanel = host.previousElementSibling;\n\t\tif (!prevPanel) return -1;\n\n\t\t// Return its index among all panels\n\t\treturn panels.indexOf(prevPanel as HTMLElement);\n\t}\n\n\tprotected _handleMouseDown(event: MouseEvent): void {\n\t\tif (this.disabled() || !this._resizable) return;\n\t\tthis._resizable.startResize(this._handleIndex, event);\n\t}\n\n\tprotected _handleKeyDown(event: KeyboardEvent): void {\n\t\tif (this.disabled()) return;\n\n\t\tconst panels = this._resizable.panels();\n\t\tconst handleIndex = this._handleIndex;\n\t\tconst layout = this._layout();\n\n\t\tlet delta = 0;\n\t\tconst step = event.shiftKey ? 10 : 1;\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tif (layout === 'horizontal') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowRight':\n\t\t\t\tif (layout === 'horizontal') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tif (layout === 'vertical') delta = -step;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tif (layout === 'vertical') delta = step;\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(true);\n\t\t\t\treturn;\n\t\t\tcase 'End':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis._moveToExtreme(false);\n\t\t\t\treturn;\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n\t\t\t\t\tconst collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n\t\t\t\t\tthis._resizable.collapsePanel(collapsibleIndex);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tif (delta !== 0) {\n\t\t\tevent.preventDefault();\n\t\t\tthis._adjustSizes(delta);\n\t\t}\n\t}\n\n\tprivate _getPanelContext() {\n\t\tconst panels = this._resizable.panels();\n\t\tconst li = this._handleIndex;\n\t\tconst ri = li + 1;\n\n\t\tconst left = panels[li];\n\t\tconst right = panels[ri];\n\t\tif (!left || !right) return null;\n\n\t\tconst sizes = [...this._resizable.layout()];\n\n\t\treturn {\n\t\t\tsizes,\n\t\t\tli,\n\t\t\tri,\n\t\t\tleft,\n\t\t\tright,\n\t\t\tleftMin: left.minSize(),\n\t\t\tleftMax: left.maxSize(),\n\t\t\trightMin: right.minSize(),\n\t\t\trightMax: right.maxSize(),\n\t\t};\n\t}\n\n\tprivate _adjustSizes(delta: number): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tlet newLeftSize = ctx.sizes[ctx.li] + delta;\n\t\tlet newRightSize = ctx.sizes[ctx.ri] - delta;\n\n\t\tnewLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n\t\tnewRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n\n\t\tconst totalSize = newLeftSize + newRightSize;\n\t\tconst originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (Math.abs(totalSize - originalTotal) < 0.01) {\n\t\t\tctx.sizes[ctx.li] = newLeftSize;\n\t\t\tctx.sizes[ctx.ri] = newRightSize;\n\n\t\t\tthis._resizable.layout.set(ctx.sizes);\n\t\t\tthis._resizable.updatePanelStyles();\n\t\t}\n\t}\n\n\tprivate _moveToExtreme(toMin: boolean): void {\n\t\tconst ctx = this._getPanelContext();\n\t\tif (!ctx) return;\n\n\t\tconst totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n\n\t\tif (toMin) {\n\t\t\tctx.sizes[ctx.li] = ctx.leftMin;\n\t\t\tctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n\t\t} else {\n\t\t\tctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n\t\t\tctx.sizes[ctx.ri] = ctx.rightMin;\n\t\t}\n\n\t\tthis._resizable.layout.set(ctx.sizes);\n\t\tthis._resizable.updatePanelStyles();\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/brn-resizable-panel.js","../tmp-esm2022/resizable/lib/brn-resizable-group.js","../tmp-esm2022/resizable/lib/brn-resizable-handle.js","../tmp-esm2022/resizable/spartan-ng-brain-resizable.js"],"sourcesContent":["import { booleanAttribute, computed, Directive, ElementRef, inject, input, numberAttribute, signal, } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizablePanel {\n /** Unique ID for the panel. */\n id = input(`brn-resizable-panel-${++nextId}`);\n /** Reference to the parent {@link BrnResizableGroup}. */\n _panelGroup = inject(BrnResizableGroup);\n /** Host DOM element reference. */\n el = inject((ElementRef));\n /**\n * The default size of the panel (percentage of container space).\n * - `undefined` → group decides initial size.\n * - Number → interpreted as percentage (0–100).\n */\n defaultSize = input(undefined, { transform: numberAttribute });\n /** The minimum size this panel can shrink to (percentage). */\n minSize = input(0, { transform: numberAttribute });\n /**\t The maximum size this panel can grow to (percentage). */\n maxSize = input(100, { transform: numberAttribute });\n /** Whether this panel can be collapsed entirely. */\n collapsible = input(true, { transform: booleanAttribute });\n /** Reactive signal holding the current size of the panel. */\n _panelSize = signal(100);\n /**\n * CSS flex style for this panel, derived from its current size.\n * Format: `\"flex-grow flex-shrink flex-basis\"`.\n *\n * Example: `\"25 1 0\"` means 25% width (or height in vertical layout).\n */\n _flex = computed(() => `${this._panelSize()} 1 0`);\n /**\n * Sets the size of the panel.\n * @param size New size (percentage of container space).\n */\n setSize(size) {\n this._panelSize.set(size);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizablePanel, isStandalone: true, selector: \"brn-resizable-panel, [brnResizablePanel]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, defaultSize: { classPropertyName: \"defaultSize\", publicName: \"defaultSize\", isSignal: true, isRequired: false, transformFunction: null }, minSize: { classPropertyName: \"minSize\", publicName: \"minSize\", isSignal: true, isRequired: false, transformFunction: null }, maxSize: { classPropertyName: \"maxSize\", publicName: \"maxSize\", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: \"collapsible\", publicName: \"collapsible\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"data-panel\": \"\", \"data-slot\": \"resizable-panel\" }, properties: { \"attr.data-panel-group-id\": \"_panelGroup.id()\", \"attr.data-panel-id\": \"id()\", \"attr.data-panel-size\": \"_panelSize()\", \"id\": \"id()\", \"style.flex\": \"_flex()\", \"style.overflow\": \"\\\"hidden\\\"\" } }, exportAs: [\"brnResizablePanel\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizablePanel, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-panel, [brnResizablePanel]',\n exportAs: 'brnResizablePanel',\n host: {\n '[attr.data-panel-group-id]': '_panelGroup.id()',\n '[attr.data-panel-id]': 'id()',\n '[attr.data-panel-size]': '_panelSize()',\n '[id]': 'id()',\n '[style.flex]': '_flex()',\n '[style.overflow]': '\"hidden\"',\n 'data-panel': '',\n 'data-slot': 'resizable-panel',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBZ0JmLE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsaUNBQWlDO0lBQ2pCLEVBQUUsR0FBRyxLQUFLLENBQVMsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUV0RSx5REFBeUQ7SUFDdEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELGtDQUFrQztJQUNsQixFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNhLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFL0UsOERBQThEO0lBRTlDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFbkUsK0RBQStEO0lBQy9DLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFckUsb0RBQW9EO0lBQ3BDLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUUzRSw2REFBNkQ7SUFDMUMsVUFBVSxHQUFHLE1BQU0sQ0FBUyxHQUFHLENBQUMsQ0FBQztJQUVwRDs7Ozs7T0FLRztJQUNnQixLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0RTs7O09BR0c7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzBIQTVDVyxpQkFBaUI7OEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFkN0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUU7d0JBQ0wsNEJBQTRCLEVBQUUsa0JBQWtCO3dCQUNoRCxzQkFBc0IsRUFBRSxNQUFNO3dCQUM5Qix3QkFBd0IsRUFBRSxjQUFjO3dCQUN4QyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxjQUFjLEVBQUUsU0FBUzt3QkFDekIsa0JBQWtCLEVBQUUsVUFBVTt3QkFDOUIsWUFBWSxFQUFFLEVBQUU7d0JBQ2hCLFdBQVcsRUFBRSxpQkFBaUI7cUJBQzlCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0bnVtYmVyQXR0cmlidXRlLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuUmVzaXphYmxlR3JvdXAgfSBmcm9tICcuL2Jybi1yZXNpemFibGUtZ3JvdXAnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1wYW5lbCwgW2JyblJlc2l6YWJsZVBhbmVsXScsXG5cdGV4cG9ydEFzOiAnYnJuUmVzaXphYmxlUGFuZWwnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtaWRdJzogJ19wYW5lbEdyb3VwLmlkKCknLFxuXHRcdCdbYXR0ci5kYXRhLXBhbmVsLWlkXSc6ICdpZCgpJyxcblx0XHQnW2F0dHIuZGF0YS1wYW5lbC1zaXplXSc6ICdfcGFuZWxTaXplKCknLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdbc3R5bGUuZmxleF0nOiAnX2ZsZXgoKScsXG5cdFx0J1tzdHlsZS5vdmVyZmxvd10nOiAnXCJoaWRkZW5cIicsXG5cdFx0J2RhdGEtcGFuZWwnOiAnJyxcblx0XHQnZGF0YS1zbG90JzogJ3Jlc2l6YWJsZS1wYW5lbCcsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIEJyblJlc2l6YWJsZVBhbmVsIHtcblx0LyoqIFVuaXF1ZSBJRCBmb3IgdGhlIHBhbmVsLiAgICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1yZXNpemFibGUtcGFuZWwtJHsrK25leHRJZH1gKTtcblxuXHQvKiogUmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQge0BsaW5rIEJyblJlc2l6YWJsZUdyb3VwfS4gKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wYW5lbEdyb3VwID0gaW5qZWN0KEJyblJlc2l6YWJsZUdyb3VwKTtcblxuXHQvKiogSG9zdCBET00gZWxlbWVudCByZWZlcmVuY2UuICovXG5cdHB1YmxpYyByZWFkb25seSBlbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cblx0LyoqXG5cdCAqIFRoZSBkZWZhdWx0IHNpemUgb2YgdGhlIHBhbmVsIChwZXJjZW50YWdlIG9mIGNvbnRhaW5lciBzcGFjZSkuXG5cdCAqIC0gYHVuZGVmaW5lZGAg4oaSIGdyb3VwIGRlY2lkZXMgaW5pdGlhbCBzaXplLlxuXHQgKiAtIE51bWJlciDihpIgaW50ZXJwcmV0ZWQgYXMgcGVyY2VudGFnZSAoMOKAkzEwMCkuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFNpemUgPSBpbnB1dCh1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cblx0LyoqIFRoZSBtaW5pbXVtIHNpemUgdGhpcyBwYW5lbCBjYW4gc2hyaW5rIHRvIChwZXJjZW50YWdlKS4gKi9cblxuXHRwdWJsaWMgcmVhZG9ubHkgbWluU2l6ZSA9IGlucHV0KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cblx0LyoqXHQgVGhlIG1heGltdW0gc2l6ZSB0aGlzIHBhbmVsIGNhbiBncm93IHRvIChwZXJjZW50YWdlKS4gICAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgbWF4U2l6ZSA9IGlucHV0KDEwMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuXHQvKiogV2hldGhlciB0aGlzIHBhbmVsIGNhbiBiZSBjb2xsYXBzZWQgZW50aXJlbHkuICovXG5cdHB1YmxpYyByZWFkb25seSBjb2xsYXBzaWJsZSA9IGlucHV0KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKiBSZWFjdGl2ZSBzaWduYWwgaG9sZGluZyB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBwYW5lbC4gKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9wYW5lbFNpemUgPSBzaWduYWw8bnVtYmVyPigxMDApO1xuXG5cdC8qKlxuXHQgKiBDU1MgZmxleCBzdHlsZSBmb3IgdGhpcyBwYW5lbCwgZGVyaXZlZCBmcm9tIGl0cyBjdXJyZW50IHNpemUuXG5cdCAqIEZvcm1hdDogYFwiZmxleC1ncm93IGZsZXgtc2hyaW5rIGZsZXgtYmFzaXNcImAuXG5cdCAqXG5cdCAqIEV4YW1wbGU6IGBcIjI1IDEgMFwiYCBtZWFucyAyNSUgd2lkdGggKG9yIGhlaWdodCBpbiB2ZXJ0aWNhbCBsYXlvdXQpLlxuXHQgKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9mbGV4ID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5fcGFuZWxTaXplKCl9IDEgMGApO1xuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBwYW5lbC5cblx0ICogQHBhcmFtIHNpemUgTmV3IHNpemUgKHBlcmNlbnRhZ2Ugb2YgY29udGFpbmVyIHNwYWNlKS5cblx0ICovXG5cdHB1YmxpYyBzZXRTaXplKHNpemU6IG51bWJlcikge1xuXHRcdHRoaXMuX3BhbmVsU2l6ZS5zZXQoc2l6ZSk7XG5cdH1cbn1cbiJdfQ==","import { afterNextRender, contentChildren, Directive, DOCUMENT, ElementRef, inject, input, model, NgZone, output, } from '@angular/core';\nimport { BrnResizablePanel } from './brn-resizable-panel';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class BrnResizableGroup {\n /** The id of the BrnResizableGroup */\n id = input(`brn-resizable-group-${++nextId}`);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Group orientation */\n direction = input('horizontal');\n /** @internal Access all the panels within the group */\n panels = contentChildren(BrnResizablePanel);\n /** event when resize starts */\n dragStart = output();\n /** event when resize ends */\n dragEnd = output();\n /** Resize panel group to the specified layout ([1 - 100, ...]). */\n layout = model([]);\n /** Called when group layout changes */\n layoutChanged = output();\n _document = inject(DOCUMENT);\n _zone = inject(NgZone);\n _resizeRaf = null;\n _pendingSizes = null;\n constructor() {\n afterNextRender(() => {\n this._initializePanelSizes();\n });\n }\n _initializePanelSizes() {\n const panels = this.panels();\n const totalPanels = panels.length;\n if (totalPanels === 0)\n return;\n const sizes = [];\n panels.forEach((panel, index) => {\n const defaultSize = panel.defaultSize() ?? this.layout()[index];\n const size = defaultSize !== undefined ? defaultSize : 100 / totalPanels;\n sizes.push(size);\n panel.setSize(size);\n });\n if (this.layout().toString() !== sizes.toString()) {\n this._setLayout(sizes);\n }\n }\n startResize(handleIndex, event) {\n event.preventDefault();\n const cursor = this.direction() === 'vertical' ? 'row-resize' : 'col-resize';\n this._document.body.style.cursor = `${cursor}`;\n const sizes = [...this.layout()];\n this.dragStart.emit();\n const startPosition = this._getEventPosition(event);\n const startSizes = [...sizes];\n const handleMove = (moveEvent) => {\n this._zone.runOutsideAngular(() => {\n this._handleResize(moveEvent, handleIndex, startPosition, startSizes);\n });\n };\n const handleEnd = () => {\n this._zone.run(() => this._endResize());\n this._document.body.style.cursor = 'default';\n this._document.removeEventListener('mousemove', handleMove);\n this._document.removeEventListener('touchmove', handleMove);\n this._document.removeEventListener('mouseup', handleEnd);\n this._document.removeEventListener('touchend', handleEnd);\n };\n this._zone.runOutsideAngular(() => {\n this._document.addEventListener('mousemove', handleMove);\n this._document.addEventListener('touchmove', handleMove);\n this._document.addEventListener('mouseup', handleEnd);\n this._document.addEventListener('touchend', handleEnd);\n });\n }\n _handleResize(event, handleIndex, startPosition, startSizes) {\n const currentPosition = this._getEventPosition(event);\n const delta = currentPosition - startPosition;\n const containerSize = this._getContainerSize();\n const deltaPercentage = (delta / containerSize) * 100;\n const newSizes = [...startSizes];\n const panels = this.panels();\n const leftPanel = panels[handleIndex];\n const rightPanel = panels[handleIndex + 1];\n if (!leftPanel || !rightPanel)\n return;\n const leftMin = leftPanel.minSize();\n const leftMax = leftPanel.maxSize();\n const rightMin = rightPanel.minSize();\n const rightMax = rightPanel.maxSize();\n let newLeftSize = startSizes[handleIndex] + deltaPercentage;\n let newRightSize = startSizes[handleIndex + 1] - deltaPercentage;\n newLeftSize = Math.max(leftMin, Math.min(leftMax, newLeftSize));\n newRightSize = Math.max(rightMin, Math.min(rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = startSizes[handleIndex] + startSizes[handleIndex + 1];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n newSizes[handleIndex] = newLeftSize;\n newSizes[handleIndex + 1] = newRightSize;\n // batch update\n this._queueResize(newSizes);\n }\n }\n _queueResize(sizes) {\n this._pendingSizes = sizes;\n if (this._resizeRaf !== null)\n return;\n this._resizeRaf = requestAnimationFrame(() => {\n this._resizeRaf = null;\n if (this._pendingSizes) {\n this._setLayout(this._pendingSizes);\n this.updatePanelStyles();\n this._pendingSizes = null;\n }\n });\n }\n _endResize() {\n if (this._resizeRaf !== null) {\n cancelAnimationFrame(this._resizeRaf);\n this._resizeRaf = null;\n this._pendingSizes = null;\n }\n this.dragEnd.emit();\n }\n updatePanelStyles() {\n const panels = this.panels();\n const sizes = this.layout();\n panels.forEach((panel, index) => {\n const size = sizes[index];\n if (size !== undefined) {\n panel.setSize(size);\n }\n });\n }\n _getEventPosition(event) {\n const layout = this.direction();\n if (event instanceof MouseEvent) {\n return layout === 'vertical' ? event.clientY : event.clientX;\n }\n else {\n const touch = event.touches[0];\n return layout === 'vertical' ? touch.clientY : touch.clientX;\n }\n }\n _getContainerSize() {\n const element = this._el.nativeElement;\n const layout = this.direction();\n return layout === 'vertical' ? element.offsetHeight : element.offsetWidth;\n }\n collapsePanel(index) {\n const panels = this.panels();\n const panel = panels[index];\n if (!panel || !panel.collapsible())\n return;\n const sizes = [...this.layout()];\n const isCollapsed = sizes[index] === 0;\n if (isCollapsed) {\n const panelDefaultSize = panel.defaultSize();\n const defaultSize = panelDefaultSize !== undefined ? panelDefaultSize / panels.length : 100 / panels.length;\n sizes[index] = defaultSize;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (100 - defaultSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n else {\n const collapsedSize = sizes[index];\n sizes[index] = 0;\n const totalOthers = sizes.reduce((sum, size, i) => (i !== index ? sum + size : sum), 0);\n const scale = (totalOthers + collapsedSize) / totalOthers;\n sizes.forEach((size, i) => {\n if (i !== index) {\n sizes[i] = size * scale;\n }\n });\n }\n this._setLayout(sizes);\n this.updatePanelStyles();\n }\n _setLayout(sizes) {\n this.layout.set(sizes);\n this.layoutChanged.emit(sizes);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnResizableGroup, isStandalone: true, selector: \"brn-resizable-group, [brnResizableGroup]\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: \"direction\", publicName: \"direction\", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: \"layout\", publicName: \"layout\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragStart: \"dragStart\", dragEnd: \"dragEnd\", layout: \"layoutChange\", layoutChanged: \"layoutChanged\" }, host: { attributes: { \"data-panel-group\": \"\", \"data-slot\": \"resizable-panel-group\" }, properties: { \"attr.data-panel-group-direction\": \"direction()\", \"attr.data-panel-group-id\": \"id()\", \"id\": \"id()\" } }, queries: [{ propertyName: \"panels\", predicate: BrnResizablePanel, isSignal: true }], exportAs: [\"brnResizableGroup\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableGroup, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-group, [brnResizableGroup]',\n exportAs: 'brnResizableGroup',\n host: {\n '[attr.data-panel-group-direction]': 'direction()',\n '[attr.data-panel-group-id]': 'id()',\n '[id]': 'id()',\n 'data-panel-group': '',\n 'data-slot': 'resizable-panel-group',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vcmVzaXphYmxlL3NyYy9saWIvYnJuLXJlc2l6YWJsZS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFhZixNQUFNLE9BQU8saUJBQWlCO0lBQzdCLHNDQUFzQztJQUN0QixFQUFFLEdBQUcsS0FBSyxDQUFTLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFdEUsOEJBQThCO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXZELHdCQUF3QjtJQUNSLFNBQVMsR0FBRyxLQUFLLENBQTRCLFlBQVksQ0FBQyxDQUFDO0lBRTNFLHVEQUF1RDtJQUN2QyxNQUFNLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFNUQsK0JBQStCO0lBQ2YsU0FBUyxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRTNDLDZCQUE2QjtJQUNiLE9BQU8sR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV6QyxtRUFBbUU7SUFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztJQUU3Qyx1Q0FBdUM7SUFDdkIsYUFBYSxHQUFHLE1BQU0sRUFBWSxDQUFDO0lBRWxDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENB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RyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUUxRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBZTtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzBIQXZPVyxpQkFBaUI7OEdBQWpCLGlCQUFpQixrekJBV1ksaUJBQWlCOzsyRkFYOUMsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDTCxtQ0FBbUMsRUFBRSxhQUFhO3dCQUNsRCw0QkFBNEIsRUFBRSxNQUFNO3dCQUNwQyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxrQkFBa0IsRUFBRSxFQUFFO3dCQUN0QixXQUFXLEVBQUUsdUJBQXVCO3FCQUNwQztpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdERPQ1VNRU5ULFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRtb2RlbCxcblx0Tmdab25lLFxuXHRvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJuUmVzaXphYmxlUGFuZWwgfSBmcm9tICcuL2Jybi1yZXNpemFibGUtcGFuZWwnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1ncm91cCwgW2JyblJlc2l6YWJsZUdyb3VwXScsXG5cdGV4cG9ydEFzOiAnYnJuUmVzaXphYmxlR3JvdXAnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdkaXJlY3Rpb24oKScsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtaWRdJzogJ2lkKCknLFxuXHRcdCdbaWRdJzogJ2lkKCknLFxuXHRcdCdkYXRhLXBhbmVsLWdyb3VwJzogJycsXG5cdFx0J2RhdGEtc2xvdCc6ICdyZXNpemFibGUtcGFuZWwtZ3JvdXAnLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5SZXNpemFibGVHcm91cCB7XG5cdC8qKiBUaGUgaWQgb2YgdGhlIEJyblJlc2l6YWJsZUdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oYGJybi1yZXNpemFibGUtZ3JvdXAtJHsrK25leHRJZH1gKTtcblxuXHQvKiogSG9zdCBlbGVtZW50IHJlZmVyZW5jZS4gKi9cblx0cHJpdmF0ZSByZWFkb25seSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG5cdC8qKiBHcm91cCBvcmllbnRhdGlvbiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlyZWN0aW9uID0gaW5wdXQ8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ2hvcml6b250YWwnKTtcblxuXHQvKiogQGludGVybmFsIEFjY2VzcyBhbGwgdGhlIHBhbmVscyB3aXRoaW4gdGhlIGdyb3VwICovXG5cdHB1YmxpYyByZWFkb25seSBwYW5lbHMgPSBjb250ZW50Q2hpbGRyZW4oQnJuUmVzaXphYmxlUGFuZWwpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBzdGFydHMgKi9cblx0cHVibGljIHJlYWRvbmx5IGRyYWdTdGFydCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdC8qKiBldmVudCB3aGVuIHJlc2l6ZSBlbmRzICovXG5cdHB1YmxpYyByZWFkb25seSBkcmFnRW5kID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0LyoqIFJlc2l6ZSBwYW5lbCBncm91cCB0byB0aGUgc3BlY2lmaWVkIGxheW91dCAoWzEgLSAxMDAsIC4uLl0pLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgbGF5b3V0ID0gbW9kZWw8bnVtYmVyW10+KFtdKTtcblxuXHQvKiogQ2FsbGVkIHdoZW4gZ3JvdXAgbGF5b3V0IGNoYW5nZXMgKi9cblx0cHVibGljIHJlYWRvbmx5IGxheW91dENoYW5nZWQgPSBvdXRwdXQ8bnVtYmVyW10+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuXHRwcml2YXRlIF9yZXNpemVSYWY6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG5cdHByaXZhdGUgX3BlbmRpbmdTaXplczogbnVtYmVyW10gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5faW5pdGlhbGl6ZVBhbmVsU2l6ZXMoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRpYWxpemVQYW5lbFNpemVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3QgdG90YWxQYW5lbHMgPSBwYW5lbHMubGVuZ3RoO1xuXG5cdFx0aWYgKHRvdGFsUGFuZWxzID09PSAwKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplczogbnVtYmVyW10gPSBbXTtcblxuXHRcdHBhbmVscy5mb3JFYWNoKChwYW5lbCwgaW5kZXgpID0+IHtcblx0XHRcdGNvbnN0IGRlZmF1bHRTaXplID0gcGFuZWwuZGVmYXVsdFNpemUoKSA/PyB0aGlzLmxheW91dCgpW2luZGV4XTtcblx0XHRcdGNvbnN0IHNpemUgPSBkZWZhdWx0U2l6ZSAhPT0gdW5kZWZpbmVkID8gZGVmYXVsdFNpemUgOiAxMDAgLyB0b3RhbFBhbmVscztcblx0XHRcdHNpemVzLnB1c2goc2l6ZSk7XG5cdFx0XHRwYW5lbC5zZXRTaXplKHNpemUpO1xuXHRcdH0pO1xuXG5cdFx0aWYgKHRoaXMubGF5b3V0KCkudG9TdHJpbmcoKSAhPT0gc2l6ZXMudG9TdHJpbmcoKSkge1xuXHRcdFx0dGhpcy5fc2V0TGF5b3V0KHNpemVzKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc3RhcnRSZXNpemUoaGFuZGxlSW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGNvbnN0IGN1cnNvciA9IHRoaXMuZGlyZWN0aW9uKCkgPT09ICd2ZXJ0aWNhbCcgPyAncm93LXJlc2l6ZScgOiAnY29sLXJlc2l6ZSc7XG5cdFx0dGhpcy5fZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSBgJHtjdXJzb3J9YDtcblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHR0aGlzLmRyYWdTdGFydC5lbWl0KCk7XG5cblx0XHRjb25zdCBzdGFydFBvc2l0aW9uID0gdGhpcy5fZ2V0RXZlbnRQb3NpdGlvbihldmVudCk7XG5cdFx0Y29uc3Qgc3RhcnRTaXplcyA9IFsuLi5zaXplc107XG5cblx0XHRjb25zdCBoYW5kbGVNb3ZlID0gKG1vdmVFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHtcblx0XHRcdHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVSZXNpemUobW92ZUV2ZW50LCBoYW5kbGVJbmRleCwgc3RhcnRQb3NpdGlvbiwgc3RhcnRTaXplcyk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgaGFuZGxlRW5kID0gKCkgPT4ge1xuXHRcdFx0dGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fZW5kUmVzaXplKCkpO1xuXG5cdFx0XHR0aGlzLl9kb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0Jztcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgaGFuZGxlTW92ZSk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlRW5kKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlRW5kKTtcblx0XHR9O1xuXG5cdFx0dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3ZlKTtcblx0XHRcdHRoaXMuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZU1vdmUpO1xuXHRcdFx0dGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZUVuZCk7XG5cdFx0XHR0aGlzLl9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGhhbmRsZUVuZCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9oYW5kbGVSZXNpemUoXG5cdFx0ZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LFxuXHRcdGhhbmRsZUluZGV4OiBudW1iZXIsXG5cdFx0c3RhcnRQb3NpdGlvbjogbnVtYmVyLFxuXHRcdHN0YXJ0U2l6ZXM6IG51bWJlcltdLFxuXHQpOiB2b2lkIHtcblx0XHRjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRFdmVudFBvc2l0aW9uKGV2ZW50KTtcblx0XHRjb25zdCBkZWx0YSA9IGN1cnJlbnRQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb247XG5cdFx0Y29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMuX2dldENvbnRhaW5lclNpemUoKTtcblx0XHRjb25zdCBkZWx0YVBlcmNlbnRhZ2UgPSAoZGVsdGEgLyBjb250YWluZXJTaXplKSAqIDEwMDtcblxuXHRcdGNvbnN0IG5ld1NpemVzID0gWy4uLnN0YXJ0U2l6ZXNdO1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cblx0XHRjb25zdCBsZWZ0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXhdO1xuXHRcdGNvbnN0IHJpZ2h0UGFuZWwgPSBwYW5lbHNbaGFuZGxlSW5kZXggKyAxXTtcblxuXHRcdGlmICghbGVmdFBhbmVsIHx8ICFyaWdodFBhbmVsKSByZXR1cm47XG5cblx0XHRjb25zdCBsZWZ0TWluID0gbGVmdFBhbmVsLm1pblNpemUoKTtcblx0XHRjb25zdCBsZWZ0TWF4ID0gbGVmdFBhbmVsLm1heFNpemUoKTtcblx0XHRjb25zdCByaWdodE1pbiA9IHJpZ2h0UGFuZWwubWluU2l6ZSgpO1xuXHRcdGNvbnN0IHJpZ2h0TWF4ID0gcmlnaHRQYW5lbC5tYXhTaXplKCk7XG5cblx0XHRsZXQgbmV3TGVmdFNpemUgPSBzdGFydFNpemVzW2hhbmRsZUluZGV4XSArIGRlbHRhUGVyY2VudGFnZTtcblx0XHRsZXQgbmV3UmlnaHRTaXplID0gc3RhcnRTaXplc1toYW5kbGVJbmRleCArIDFdIC0gZGVsdGFQZXJjZW50YWdlO1xuXG5cdFx0bmV3TGVmdFNpemUgPSBNYXRoLm1heChsZWZ0TWluLCBNYXRoLm1pbihsZWZ0TWF4LCBuZXdMZWZ0U2l6ZSkpO1xuXHRcdG5ld1JpZ2h0U2l6ZSA9IE1hdGgubWF4KHJpZ2h0TWluLCBNYXRoLm1pbihyaWdodE1heCwgbmV3UmlnaHRTaXplKSk7XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBuZXdMZWZ0U2l6ZSArIG5ld1JpZ2h0U2l6ZTtcblx0XHRjb25zdCBvcmlnaW5hbFRvdGFsID0gc3RhcnRTaXplc1toYW5kbGVJbmRleF0gKyBzdGFydFNpemVzW2hhbmRsZUluZGV4ICsgMV07XG5cblx0XHRpZiAoTWF0aC5hYnModG90YWxTaXplIC0gb3JpZ2luYWxUb3RhbCkgPCAwLjAxKSB7XG5cdFx0XHRuZXdTaXplc1toYW5kbGVJbmRleF0gPSBuZXdMZWZ0U2l6ZTtcblx0XHRcdG5ld1NpemVzW2hhbmRsZUluZGV4ICsgMV0gPSBuZXdSaWdodFNpemU7XG5cblx0XHRcdC8vIGJhdGNoIHVwZGF0ZVxuXHRcdFx0dGhpcy5fcXVldWVSZXNpemUobmV3U2l6ZXMpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3F1ZXVlUmVzaXplKHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IHNpemVzO1xuXG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5fcmVzaXplUmFmID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHRpZiAodGhpcy5fcGVuZGluZ1NpemVzKSB7XG5cdFx0XHRcdHRoaXMuX3NldExheW91dCh0aGlzLl9wZW5kaW5nU2l6ZXMpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdFx0XHRcdHRoaXMuX3BlbmRpbmdTaXplcyA9IG51bGw7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9lbmRSZXNpemUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuX3Jlc2l6ZVJhZiAhPT0gbnVsbCkge1xuXHRcdFx0Y2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fcmVzaXplUmFmKTtcblx0XHRcdHRoaXMuX3Jlc2l6ZVJhZiA9IG51bGw7XG5cdFx0XHR0aGlzLl9wZW5kaW5nU2l6ZXMgPSBudWxsO1xuXHRcdH1cblx0XHR0aGlzLmRyYWdFbmQuZW1pdCgpO1xuXHR9XG5cblx0cHVibGljIHVwZGF0ZVBhbmVsU3R5bGVzKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzKCk7XG5cdFx0Y29uc3Qgc2l6ZXMgPSB0aGlzLmxheW91dCgpO1xuXG5cdFx0cGFuZWxzLmZvckVhY2goKHBhbmVsLCBpbmRleCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2l6ZSA9IHNpemVzW2luZGV4XTtcblx0XHRcdGlmIChzaXplICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFuZWwuc2V0U2l6ZShzaXplKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldEV2ZW50UG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdGlmIChldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcblx0XHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBldmVudC5jbGllbnRZIDogZXZlbnQuY2xpZW50WDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xuXHRcdFx0cmV0dXJuIGxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/IHRvdWNoLmNsaWVudFkgOiB0b3VjaC5jbGllbnRYO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2dldENvbnRhaW5lclNpemUoKTogbnVtYmVyIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblx0XHRjb25zdCBsYXlvdXQgPSB0aGlzLmRpcmVjdGlvbigpO1xuXHRcdHJldHVybiBsYXlvdXQgPT09ICd2ZXJ0aWNhbCcgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cdH1cblxuXHRwdWJsaWMgY29sbGFwc2VQYW5lbChpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMoKTtcblx0XHRjb25zdCBwYW5lbCA9IHBhbmVsc1tpbmRleF07XG5cblx0XHRpZiAoIXBhbmVsIHx8ICFwYW5lbC5jb2xsYXBzaWJsZSgpKSByZXR1cm47XG5cblx0XHRjb25zdCBzaXplcyA9IFsuLi50aGlzLmxheW91dCgpXTtcblx0XHRjb25zdCBpc0NvbGxhcHNlZCA9IHNpemVzW2luZGV4XSA9PT0gMDtcblxuXHRcdGlmIChpc0NvbGxhcHNlZCkge1xuXHRcdFx0Y29uc3QgcGFuZWxEZWZhdWx0U2l6ZSA9IHBhbmVsLmRlZmF1bHRTaXplKCk7XG5cdFx0XHRjb25zdCBkZWZhdWx0U2l6ZSA9IHBhbmVsRGVmYXVsdFNpemUgIT09IHVuZGVmaW5lZCA/IHBhbmVsRGVmYXVsdFNpemUgLyBwYW5lbHMubGVuZ3RoIDogMTAwIC8gcGFuZWxzLmxlbmd0aDtcblx0XHRcdHNpemVzW2luZGV4XSA9IGRlZmF1bHRTaXplO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICgxMDAgLSBkZWZhdWx0U2l6ZSkgLyB0b3RhbE90aGVycztcblxuXHRcdFx0c2l6ZXMuZm9yRWFjaCgoc2l6ZSwgaSkgPT4ge1xuXHRcdFx0XHRpZiAoaSAhPT0gaW5kZXgpIHtcblx0XHRcdFx0XHRzaXplc1tpXSA9IHNpemUgKiBzY2FsZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGNvbGxhcHNlZFNpemUgPSBzaXplc1tpbmRleF07XG5cdFx0XHRzaXplc1tpbmRleF0gPSAwO1xuXG5cdFx0XHRjb25zdCB0b3RhbE90aGVycyA9IHNpemVzLnJlZHVjZSgoc3VtLCBzaXplLCBpKSA9PiAoaSAhPT0gaW5kZXggPyBzdW0gKyBzaXplIDogc3VtKSwgMCk7XG5cdFx0XHRjb25zdCBzY2FsZSA9ICh0b3RhbE90aGVycyArIGNvbGxhcHNlZFNpemUpIC8gdG90YWxPdGhlcnM7XG5cblx0XHRcdHNpemVzLmZvckVhY2goKHNpemUsIGkpID0+IHtcblx0XHRcdFx0aWYgKGkgIT09IGluZGV4KSB7XG5cdFx0XHRcdFx0c2l6ZXNbaV0gPSBzaXplICogc2NhbGU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuX3NldExheW91dChzaXplcyk7XG5cdFx0dGhpcy51cGRhdGVQYW5lbFN0eWxlcygpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0TGF5b3V0KHNpemVzOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdHRoaXMubGF5b3V0LnNldChzaXplcyk7XG5cdFx0dGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoc2l6ZXMpO1xuXHR9XG59XG4iXX0=","import { afterNextRender, booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { BrnResizableGroup } from './brn-resizable-group';\nimport * as i0 from \"@angular/core\";\nexport class BrnResizableHandle {\n /** Parent resizable group. */\n _resizable = inject(BrnResizableGroup);\n /** Host element reference. */\n _el = inject((ElementRef));\n /** Whether a visual handle is rendered inside the separator. */\n withHandle = input(false, { transform: booleanAttribute });\n /** Whether the handle is disabled (not interactive). */\n disabled = input(false, { transform: booleanAttribute });\n /** The direction of the resizable group (`horizontal` or `vertical`). */\n _direction = this._resizable.direction;\n /** Computed layout orientation based on the parent group. */\n _layout = computed(() => this._resizable?.direction() || 'horizontal');\n /** Index of this handle relative to panels in the group. */\n _handleIndex = 0;\n constructor() {\n afterNextRender(() => {\n this._handleIndex = this._getHandleIndex();\n });\n }\n _getHandleIndex() {\n const host = this._el.nativeElement;\n const parent = host.parentElement;\n if (!parent)\n return -1;\n // Collect all panels under this group\n const panels = Array.from(parent.querySelectorAll('[data-slot=\"resizable-panel\"]'));\n // Find the previous panel (the closest one before this handle)\n const prevPanel = host.previousElementSibling;\n if (!prevPanel)\n return -1;\n // Return its index among all panels\n return panels.indexOf(prevPanel);\n }\n _handleMouseDown(event) {\n if (this.disabled() || !this._resizable)\n return;\n this._resizable.startResize(this._handleIndex, event);\n }\n _handleKeyDown(event) {\n if (this.disabled())\n return;\n const panels = this._resizable.panels();\n const handleIndex = this._handleIndex;\n const layout = this._layout();\n let delta = 0;\n const step = event.shiftKey ? 10 : 1;\n switch (event.key) {\n case 'ArrowLeft':\n if (layout === 'horizontal')\n delta = -step;\n break;\n case 'ArrowRight':\n if (layout === 'horizontal')\n delta = step;\n break;\n case 'ArrowUp':\n if (layout === 'vertical')\n delta = -step;\n break;\n case 'ArrowDown':\n if (layout === 'vertical')\n delta = step;\n break;\n case 'Home':\n event.preventDefault();\n this._moveToExtreme(true);\n return;\n case 'End':\n event.preventDefault();\n this._moveToExtreme(false);\n return;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (panels[handleIndex]?.collapsible() || panels[handleIndex + 1]?.collapsible()) {\n const collapsibleIndex = panels[handleIndex]?.collapsible() ? handleIndex : handleIndex + 1;\n this._resizable.collapsePanel(collapsibleIndex);\n }\n return;\n default:\n return;\n }\n if (delta !== 0) {\n event.preventDefault();\n this._adjustSizes(delta);\n }\n }\n _getPanelContext() {\n const panels = this._resizable.panels();\n const li = this._handleIndex;\n const ri = li + 1;\n const left = panels[li];\n const right = panels[ri];\n if (!left || !right)\n return null;\n const sizes = [...this._resizable.layout()];\n return {\n sizes,\n li,\n ri,\n left,\n right,\n leftMin: left.minSize(),\n leftMax: left.maxSize(),\n rightMin: right.minSize(),\n rightMax: right.maxSize(),\n };\n }\n _adjustSizes(delta) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n let newLeftSize = ctx.sizes[ctx.li] + delta;\n let newRightSize = ctx.sizes[ctx.ri] - delta;\n newLeftSize = Math.max(ctx.leftMin, Math.min(ctx.leftMax, newLeftSize));\n newRightSize = Math.max(ctx.rightMin, Math.min(ctx.rightMax, newRightSize));\n const totalSize = newLeftSize + newRightSize;\n const originalTotal = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (Math.abs(totalSize - originalTotal) < 0.01) {\n ctx.sizes[ctx.li] = newLeftSize;\n ctx.sizes[ctx.ri] = newRightSize;\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n }\n _moveToExtreme(toMin) {\n const ctx = this._getPanelContext();\n if (!ctx)\n return;\n const totalSize = ctx.sizes[ctx.li] + ctx.sizes[ctx.ri];\n if (toMin) {\n ctx.sizes[ctx.li] = ctx.leftMin;\n ctx.sizes[ctx.ri] = Math.min(totalSize - ctx.leftMin, ctx.rightMax);\n }\n else {\n ctx.sizes[ctx.li] = Math.min(totalSize - ctx.rightMin, ctx.leftMax);\n ctx.sizes[ctx.ri] = ctx.rightMin;\n }\n this._resizable.layout.set(ctx.sizes);\n this._resizable.updatePanelStyles();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnResizableHandle, isStandalone: true, selector: \"brn-resizable-handle, [brnResizeHandle]\", inputs: { withHandle: { classPropertyName: \"withHandle\", publicName: \"withHandle\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"mousedown\": \"_handleMouseDown($event)\", \"keydown\": \"_handleKeyDown($event)\" }, properties: { \"attr.data-layout\": \"_layout()\", \"attr.tabindex\": \"disabled() ? null : 0\", \"attr.role\": \"\\\"separator\\\"\", \"attr.data-panel-group-direction\": \"_direction()\", \"attr.aria-orientation\": \"_layout() === \\\"vertical\\\" ? \\\"horizontal\\\" : \\\"vertical\\\"\", \"attr.aria-disabled\": \"disabled()\" } }, exportAs: [\"brnResizableHandle\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnResizableHandle, decorators: [{\n type: Directive,\n args: [{\n selector: 'brn-resizable-handle, [brnResizeHandle]',\n exportAs: 'brnResizableHandle',\n host: {\n '[attr.data-layout]': '_layout()',\n '[attr.tabindex]': 'disabled() ? null : 0',\n '[attr.role]': '\"separator\"',\n '[attr.data-panel-group-direction]': '_direction()',\n '[attr.aria-orientation]': '_layout() === \"vertical\" ? \"horizontal\" : \"vertical\"',\n '[attr.aria-disabled]': 'disabled()',\n '(mousedown)': '_handleMouseDown($event)',\n '(keydown)': '_handleKeyDown($event)',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXJlc2l6YWJsZS1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvbGliL2Jybi1yZXNpemFibGUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQjFELE1BQU0sT0FBTyxrQkFBa0I7SUFDOUIsOEJBQThCO0lBQ2IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXhELDhCQUE4QjtJQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUV2RCxnRUFBZ0U7SUFDaEQsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLHdEQUF3RDtJQUN4QyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFekUseUVBQXlFO0lBQ3RELFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUUxRCw2REFBNkQ7SUFDMUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBRTFGLDREQUE0RDtJQUNwRCxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRXpCO1FBQ0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FB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RTt3QkFDTCxvQkFBb0IsRUFBRSxXQUFXO3dCQUNqQyxpQkFBaUIsRUFBRSx1QkFBdUI7d0JBQzFDLGFBQWEsRUFBRSxhQUFhO3dCQUM1QixtQ0FBbUMsRUFBRSxjQUFjO3dCQUNuRCx5QkFBeUIsRUFBRSxzREFBc0Q7d0JBQ2pGLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLGFBQWEsRUFBRSwwQkFBMEI7d0JBQ3pDLFdBQVcsRUFBRSx3QkFBd0I7cUJBQ3JDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyblJlc2l6YWJsZUdyb3VwIH0gZnJvbSAnLi9icm4tcmVzaXphYmxlLWdyb3VwJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnYnJuLXJlc2l6YWJsZS1oYW5kbGUsIFticm5SZXNpemVIYW5kbGVdJyxcblx0ZXhwb3J0QXM6ICdicm5SZXNpemFibGVIYW5kbGUnLFxuXHRob3N0OiB7XG5cdFx0J1thdHRyLmRhdGEtbGF5b3V0XSc6ICdfbGF5b3V0KCknLFxuXHRcdCdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQoKSA/IG51bGwgOiAwJyxcblx0XHQnW2F0dHIucm9sZV0nOiAnXCJzZXBhcmF0b3JcIicsXG5cdFx0J1thdHRyLmRhdGEtcGFuZWwtZ3JvdXAtZGlyZWN0aW9uXSc6ICdfZGlyZWN0aW9uKCknLFxuXHRcdCdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdfbGF5b3V0KCkgPT09IFwidmVydGljYWxcIiA/IFwiaG9yaXpvbnRhbFwiIDogXCJ2ZXJ0aWNhbFwiJyxcblx0XHQnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG5cdFx0Jyhtb3VzZWRvd24pJzogJ19oYW5kbGVNb3VzZURvd24oJGV2ZW50KScsXG5cdFx0JyhrZXlkb3duKSc6ICdfaGFuZGxlS2V5RG93bigkZXZlbnQpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuUmVzaXphYmxlSGFuZGxlIHtcblx0LyoqIFBhcmVudCByZXNpemFibGUgZ3JvdXAuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6YWJsZSA9IGluamVjdChCcm5SZXNpemFibGVHcm91cCk7XG5cblx0LyoqIEhvc3QgZWxlbWVudCByZWZlcmVuY2UuICovXG5cdHByaXZhdGUgcmVhZG9ubHkgX2VsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuXHQvKiogV2hldGhlciBhIHZpc3VhbCBoYW5kbGUgaXMgcmVuZGVyZWQgaW5zaWRlIHRoZSBzZXBhcmF0b3IuICovXG5cdHB1YmxpYyByZWFkb25seSB3aXRoSGFuZGxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKiBXaGV0aGVyIHRoZSBoYW5kbGUgaXMgZGlzYWJsZWQgKG5vdCBpbnRlcmFjdGl2ZSkuICovXG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuXHQvKiogVGhlIGRpcmVjdGlvbiBvZiB0aGUgcmVzaXphYmxlIGdyb3VwIChgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYCkuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfZGlyZWN0aW9uID0gdGhpcy5fcmVzaXphYmxlLmRpcmVjdGlvbjtcblxuXHQvKiogQ29tcHV0ZWQgbGF5b3V0IG9yaWVudGF0aW9uIGJhc2VkIG9uIHRoZSBwYXJlbnQgZ3JvdXAuICovXG5cdHByb3RlY3RlZCByZWFkb25seSBfbGF5b3V0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcmVzaXphYmxlPy5kaXJlY3Rpb24oKSB8fCAnaG9yaXpvbnRhbCcpO1xuXG5cdC8qKiBJbmRleCBvZiB0aGlzIGhhbmRsZSByZWxhdGl2ZSB0byBwYW5lbHMgaW4gdGhlIGdyb3VwLiAqL1xuXHRwcml2YXRlIF9oYW5kbGVJbmRleCA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuX2hhbmRsZUluZGV4ID0gdGhpcy5fZ2V0SGFuZGxlSW5kZXgoKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldEhhbmRsZUluZGV4KCk6IG51bWJlciB7XG5cdFx0Y29uc3QgaG9zdCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0Y29uc3QgcGFyZW50ID0gaG9zdC5wYXJlbnRFbGVtZW50O1xuXHRcdGlmICghcGFyZW50KSByZXR1cm4gLTE7XG5cblx0XHQvLyBDb2xsZWN0IGFsbCBwYW5lbHMgdW5kZXIgdGhpcyBncm91cFxuXHRcdGNvbnN0IHBhbmVscyA9IEFycmF5LmZyb20ocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXNsb3Q9XCJyZXNpemFibGUtcGFuZWxcIl0nKSk7XG5cblx0XHQvLyBGaW5kIHRoZSBwcmV2aW91cyBwYW5lbCAodGhlIGNsb3Nlc3Qgb25lIGJlZm9yZSB0aGlzIGhhbmRsZSlcblx0XHRjb25zdCBwcmV2UGFuZWwgPSBob3N0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cdFx0aWYgKCFwcmV2UGFuZWwpIHJldHVybiAtMTtcblxuXHRcdC8vIFJldHVybiBpdHMgaW5kZXggYW1vbmcgYWxsIHBhbmVsc1xuXHRcdHJldHVybiBwYW5lbHMuaW5kZXhPZihwcmV2UGFuZWwgYXMgSFRNTEVsZW1lbnQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9oYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpIHx8ICF0aGlzLl9yZXNpemFibGUpIHJldHVybjtcblx0XHR0aGlzLl9yZXNpemFibGUuc3RhcnRSZXNpemUodGhpcy5faGFuZGxlSW5kZXgsIGV2ZW50KTtcblx0fVxuXG5cdHByb3RlY3RlZCBfaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybjtcblxuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMuX3Jlc2l6YWJsZS5wYW5lbHMoKTtcblx0XHRjb25zdCBoYW5kbGVJbmRleCA9IHRoaXMuX2hhbmRsZUluZGV4O1xuXHRcdGNvbnN0IGxheW91dCA9IHRoaXMuX2xheW91dCgpO1xuXG5cdFx0bGV0IGRlbHRhID0gMDtcblx0XHRjb25zdCBzdGVwID0gZXZlbnQuc2hpZnRLZXkgPyAxMCA6IDE7XG5cblx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xuXHRcdFx0Y2FzZSAnQXJyb3dMZWZ0Jzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ2hvcml6b250YWwnKSBkZWx0YSA9IC1zdGVwO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ0Fycm93UmlnaHQnOlxuXHRcdFx0XHRpZiAobGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIGRlbHRhID0gc3RlcDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd1VwJzpcblx0XHRcdFx0aWYgKGxheW91dCA9PT0gJ3ZlcnRpY2FsJykgZGVsdGEgPSAtc3RlcDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd0Rvd24nOlxuXHRcdFx0XHRpZiAobGF5b3V0ID09PSAndmVydGljYWwnKSBkZWx0YSA9IHN0ZXA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnSG9tZSc6XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdHRoaXMuX21vdmVUb0V4dHJlbWUodHJ1ZSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdGNhc2UgJ0VuZCc6XG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdHRoaXMuX21vdmVUb0V4dHJlbWUoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHRjYXNlICdFbnRlcic6XG5cdFx0XHRjYXNlICcgJzpcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0aWYgKHBhbmVsc1toYW5kbGVJbmRleF0/LmNvbGxhcHNpYmxlKCkgfHwgcGFuZWxzW2hhbmRsZUluZGV4ICsgMV0/LmNvbGxhcHNpYmxlKCkpIHtcblx0XHRcdFx0XHRjb25zdCBjb2xsYXBzaWJsZUluZGV4ID0gcGFuZWxzW2hhbmRsZUluZGV4XT8uY29sbGFwc2libGUoKSA/IGhhbmRsZUluZGV4IDogaGFuZGxlSW5kZXggKyAxO1xuXHRcdFx0XHRcdHRoaXMuX3Jlc2l6YWJsZS5jb2xsYXBzZVBhbmVsKGNvbGxhcHNpYmxlSW5kZXgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoZGVsdGEgIT09IDApIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR0aGlzLl9hZGp1c3RTaXplcyhkZWx0YSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0UGFuZWxDb250ZXh0KCkge1xuXHRcdGNvbnN0IHBhbmVscyA9IHRoaXMuX3Jlc2l6YWJsZS5wYW5lbHMoKTtcblx0XHRjb25zdCBsaSA9IHRoaXMuX2hhbmRsZUluZGV4O1xuXHRcdGNvbnN0IHJpID0gbGkgKyAxO1xuXG5cdFx0Y29uc3QgbGVmdCA9IHBhbmVsc1tsaV07XG5cdFx0Y29uc3QgcmlnaHQgPSBwYW5lbHNbcmldO1xuXHRcdGlmICghbGVmdCB8fCAhcmlnaHQpIHJldHVybiBudWxsO1xuXG5cdFx0Y29uc3Qgc2l6ZXMgPSBbLi4udGhpcy5fcmVzaXphYmxlLmxheW91dCgpXTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRzaXplcyxcblx0XHRcdGxpLFxuXHRcdFx0cmksXG5cdFx0XHRsZWZ0LFxuXHRcdFx0cmlnaHQsXG5cdFx0XHRsZWZ0TWluOiBsZWZ0Lm1pblNpemUoKSxcblx0XHRcdGxlZnRNYXg6IGxlZnQubWF4U2l6ZSgpLFxuXHRcdFx0cmlnaHRNaW46IHJpZ2h0Lm1pblNpemUoKSxcblx0XHRcdHJpZ2h0TWF4OiByaWdodC5tYXhTaXplKCksXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgX2FkanVzdFNpemVzKGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCBjdHggPSB0aGlzLl9nZXRQYW5lbENvbnRleHQoKTtcblx0XHRpZiAoIWN0eCkgcmV0dXJuO1xuXG5cdFx0bGV0IG5ld0xlZnRTaXplID0gY3R4LnNpemVzW2N0eC5saV0gKyBkZWx0YTtcblx0XHRsZXQgbmV3UmlnaHRTaXplID0gY3R4LnNpemVzW2N0eC5yaV0gLSBkZWx0YTtcblxuXHRcdG5ld0xlZnRTaXplID0gTWF0aC5tYXgoY3R4LmxlZnRNaW4sIE1hdGgubWluKGN0eC5sZWZ0TWF4LCBuZXdMZWZ0U2l6ZSkpO1xuXHRcdG5ld1JpZ2h0U2l6ZSA9IE1hdGgubWF4KGN0eC5yaWdodE1pbiwgTWF0aC5taW4oY3R4LnJpZ2h0TWF4LCBuZXdSaWdodFNpemUpKTtcblxuXHRcdGNvbnN0IHRvdGFsU2l6ZSA9IG5ld0xlZnRTaXplICsgbmV3UmlnaHRTaXplO1xuXHRcdGNvbnN0IG9yaWdpbmFsVG90YWwgPSBjdHguc2l6ZXNbY3R4LmxpXSArIGN0eC5zaXplc1tjdHgucmldO1xuXG5cdFx0aWYgKE1hdGguYWJzKHRvdGFsU2l6ZSAtIG9yaWdpbmFsVG90YWwpIDwgMC4wMSkge1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5saV0gPSBuZXdMZWZ0U2l6ZTtcblx0XHRcdGN0eC5zaXplc1tjdHgucmldID0gbmV3UmlnaHRTaXplO1xuXG5cdFx0XHR0aGlzLl9yZXNpemFibGUubGF5b3V0LnNldChjdHguc2l6ZXMpO1xuXHRcdFx0dGhpcy5fcmVzaXphYmxlLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfbW92ZVRvRXh0cmVtZSh0b01pbjogYm9vbGVhbik6IHZvaWQge1xuXHRcdGNvbnN0IGN0eCA9IHRoaXMuX2dldFBhbmVsQ29udGV4dCgpO1xuXHRcdGlmICghY3R4KSByZXR1cm47XG5cblx0XHRjb25zdCB0b3RhbFNpemUgPSBjdHguc2l6ZXNbY3R4LmxpXSArIGN0eC5zaXplc1tjdHgucmldO1xuXG5cdFx0aWYgKHRvTWluKSB7XG5cdFx0XHRjdHguc2l6ZXNbY3R4LmxpXSA9IGN0eC5sZWZ0TWluO1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5yaV0gPSBNYXRoLm1pbih0b3RhbFNpemUgLSBjdHgubGVmdE1pbiwgY3R4LnJpZ2h0TWF4KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y3R4LnNpemVzW2N0eC5saV0gPSBNYXRoLm1pbih0b3RhbFNpemUgLSBjdHgucmlnaHRNaW4sIGN0eC5sZWZ0TWF4KTtcblx0XHRcdGN0eC5zaXplc1tjdHgucmldID0gY3R4LnJpZ2h0TWluO1xuXHRcdH1cblxuXHRcdHRoaXMuX3Jlc2l6YWJsZS5sYXlvdXQuc2V0KGN0eC5zaXplcyk7XG5cdFx0dGhpcy5fcmVzaXphYmxlLnVwZGF0ZVBhbmVsU3R5bGVzKCk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3Jlc2l6YWJsZS9zcmMvc3BhcnRhbi1uZy1icmFpbi1yZXNpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["nextId"],"mappings":"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"}
@@ -78,10 +78,10 @@ class BrnSelectOption {
78
78
  this.elementRef.nativeElement.focus();
79
79
  this._active.set(true);
80
80
  }
81
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
82
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: BrnSelectOption, 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()", "blur": "setInactiveStyles()" }, 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", "tabindex": "-1" } }, ngImport: i0 });
81
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
82
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnSelectOption, 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()", "blur": "setInactiveStyles()" }, 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", "tabindex": "-1" } }, ngImport: i0 });
83
83
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectOption, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectOption, decorators: [{
85
85
  type: Directive,
86
86
  args: [{
87
87
  selector: '[brnOption]',
@@ -116,10 +116,10 @@ class BrnSelectScrollUp {
116
116
  stopEmittingEvents() {
117
117
  this._endReached.next(true);
118
118
  }
119
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectScrollUp, deps: [], target: i0.ɵɵFactoryTarget.Directive });
120
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectScrollUp, isStandalone: true, selector: "[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
119
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectScrollUp, deps: [], target: i0.ɵɵFactoryTarget.Directive });
120
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectScrollUp, isStandalone: true, selector: "[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectScrollUp, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectScrollUp, decorators: [{
123
123
  type: Directive,
124
124
  args: [{
125
125
  selector: '[brnSelectScrollUp], brn-select-scroll-up, hlm-select-scroll-up:not(noHlm)',
@@ -143,10 +143,10 @@ class BrnSelectScrollDown {
143
143
  stopEmittingEvents() {
144
144
  this._endReached.next(true);
145
145
  }
146
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectScrollDown, deps: [], target: i0.ɵɵFactoryTarget.Directive });
147
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectScrollDown, isStandalone: true, selector: "[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
146
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectScrollDown, deps: [], target: i0.ɵɵFactoryTarget.Directive });
147
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectScrollDown, isStandalone: true, selector: "[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseenter": "startEmittingEvents()" } }, ngImport: i0 });
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectScrollDown, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectScrollDown, decorators: [{
150
150
  type: Directive,
151
151
  args: [{
152
152
  selector: '[brnSelectScrollDown], brn-select-scroll-down, hlm-select-scroll-down:not(noHlm)',
@@ -240,8 +240,8 @@ class BrnSelectContent {
240
240
  this._select.toggleSelect(activeOption.value());
241
241
  }
242
242
  }
243
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: BrnSelectContent, isStandalone: true, selector: "brn-select-content, hlm-select-content:not(noHlm)", host: { attributes: { "role": "listbox", "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-labelledBy": "_select.labelId()", "attr.aria-controlledBy": "_select.id() +'--trigger'", "id": "_select.id() + '--content'", "attr.dir": "_select.dir()" }, classAttribute: "flex flex-col outline-none pointer-events-auto" }, providers: [provideBrnSelectContent(BrnSelectContent)], queries: [{ propertyName: "_scrollUpBtn", first: true, predicate: BrnSelectScrollUp, descendants: true, isSignal: true }, { propertyName: "_scrollDownBtn", first: true, predicate: BrnSelectScrollDown, descendants: true, isSignal: true }, { propertyName: "_options", predicate: BrnSelectOption, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
243
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
244
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.7", type: BrnSelectContent, isStandalone: true, selector: "brn-select-content, hlm-select-content:not(noHlm)", host: { attributes: { "role": "listbox", "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-labelledBy": "_select.labelId()", "attr.aria-controlledBy": "_select.id() +'--trigger'", "id": "_select.id() + '--content'", "attr.dir": "_select.dir()" }, classAttribute: "flex flex-col outline-none pointer-events-auto" }, providers: [provideBrnSelectContent(BrnSelectContent)], queries: [{ propertyName: "_scrollUpBtn", first: true, predicate: BrnSelectScrollUp, descendants: true, isSignal: true }, { propertyName: "_scrollDownBtn", first: true, predicate: BrnSelectScrollDown, descendants: true, isSignal: true }, { propertyName: "_options", predicate: BrnSelectOption, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_viewport", first: true, predicate: ["viewport"], descendants: true, isSignal: true }], ngImport: i0, template: `
245
245
  <ng-template #scrollUp>
246
246
  <ng-content select="hlm-select-scroll-up" />
247
247
  <ng-content select="brnSelectScrollUp" />
@@ -262,7 +262,7 @@ class BrnSelectContent {
262
262
  <ng-container *ngTemplateOutlet="_canScrollDown() && _scrollDownBtn() ? scrollDown : null" />
263
263
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
264
264
  }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectContent, decorators: [{
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectContent, decorators: [{
266
266
  type: Component,
267
267
  args: [{
268
268
  selector: 'brn-select-content, hlm-select-content:not(noHlm)',
@@ -483,8 +483,8 @@ class BrnSelect {
483
483
  }
484
484
  return false;
485
485
  }
486
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
487
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: BrnSelect, isStandalone: true, selector: "brn-select, hlm-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", value: "valueChange", valueChange: "valueChange" }, providers: [
486
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
487
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: BrnSelect, isStandalone: true, selector: "brn-select, hlm-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: "closeDelay", publicName: "closeDelay", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", value: "valueChange", valueChange: "valueChange" }, providers: [
488
488
  provideExposedSideProviderExisting((() => BrnSelect)),
489
489
  provideExposesStateProviderExisting((() => BrnSelect)),
490
490
  provideBrnSelect(BrnSelect),
@@ -520,7 +520,7 @@ class BrnSelect {
520
520
  </ng-template>
521
521
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: CdkListboxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
522
522
  }
523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelect, decorators: [{
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelect, decorators: [{
524
524
  type: Component,
525
525
  args: [{
526
526
  selector: 'brn-select, hlm-select',
@@ -567,10 +567,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
567
567
 
568
568
  class BrnSelectGroup {
569
569
  labelledBy = signal('');
570
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
571
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectGroup, isStandalone: true, selector: "[brnSelectGroup]", host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()" } }, ngImport: i0 });
570
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
571
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectGroup, isStandalone: true, selector: "[brnSelectGroup]", host: { attributes: { "role": "group" }, properties: { "attr.aria-labelledby": "labelledBy()" } }, ngImport: i0 });
572
572
  }
573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectGroup, decorators: [{
573
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectGroup, decorators: [{
574
574
  type: Directive,
575
575
  args: [{
576
576
  selector: '[brnSelectGroup]',
@@ -587,10 +587,10 @@ class BrnSelectLabel {
587
587
  constructor() {
588
588
  this._group?.labelledBy.set(this._label.id());
589
589
  }
590
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
591
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectLabel, isStandalone: true, selector: "[brnSelectLabel]", hostDirectives: [{ directive: i1$1.BrnLabel }], ngImport: i0 });
590
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
591
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectLabel, isStandalone: true, selector: "[brnSelectLabel]", hostDirectives: [{ directive: i1$1.BrnLabel }], ngImport: i0 });
592
592
  }
593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectLabel, decorators: [{
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectLabel, decorators: [{
594
594
  type: Directive,
595
595
  args: [{
596
596
  selector: '[brnSelectLabel]',
@@ -601,10 +601,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
601
601
  class BrnSelectPlaceholder {
602
602
  /** @internale */
603
603
  templateRef = inject(TemplateRef);
604
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Directive });
605
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectPlaceholder, isStandalone: true, selector: "[brnSelectPlaceholder], [hlmSelectPlaceholder]", ngImport: i0 });
604
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Directive });
605
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectPlaceholder, isStandalone: true, selector: "[brnSelectPlaceholder], [hlmSelectPlaceholder]", ngImport: i0 });
606
606
  }
607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectPlaceholder, decorators: [{
607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectPlaceholder, decorators: [{
608
608
  type: Directive,
609
609
  args: [{
610
610
  selector: '[brnSelectPlaceholder], [hlmSelectPlaceholder]',
@@ -655,10 +655,10 @@ class BrnSelectTrigger {
655
655
  focus() {
656
656
  this._elementRef.nativeElement.focus();
657
657
  }
658
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
659
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectTrigger, 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 });
658
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
659
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectTrigger, 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 });
660
660
  }
661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectTrigger, decorators: [{
661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectTrigger, decorators: [{
662
662
  type: Directive,
663
663
  args: [{
664
664
  selector: '[brnSelectTrigger]',
@@ -686,10 +686,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
686
686
  class BrnSelectValueTemplate {
687
687
  /** @internal */
688
688
  templateRef = inject(TemplateRef);
689
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectValueTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
690
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: BrnSelectValueTemplate, isStandalone: true, selector: "[brnSelectValue], [hlmSelectValue]", ngImport: i0 });
689
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectValueTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
690
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnSelectValueTemplate, isStandalone: true, selector: "[brnSelectValue], [hlmSelectValue]", ngImport: i0 });
691
691
  }
692
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectValueTemplate, decorators: [{
692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectValueTemplate, decorators: [{
693
693
  type: Directive,
694
694
  args: [{
695
695
  selector: '[brnSelectValue], [hlmSelectValue]',
@@ -724,8 +724,8 @@ class BrnSelectValue {
724
724
  /** Normalize the values as an array */
725
725
  _values = computed(() => Array.isArray(this._select.value()) ? this._select.value() : [this._select.value()]);
726
726
  transformFn = input((values) => (values ?? []).join(', '));
727
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectValue, deps: [], target: i0.ɵɵFactoryTarget.Component });
728
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: BrnSelectValue, 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()", "attr.data-placeholder": "_showPlaceholder() ? \"\" : null" }, classAttribute: "line-clamp-1 whitespace-nowrap pointer-events-none" }, queries: [{ propertyName: "_customValueTemplate", first: true, predicate: BrnSelectValueTemplate, descendants: true, isSignal: true }, { propertyName: "_customPlaceholderTemplate", first: true, predicate: BrnSelectPlaceholder, descendants: true, isSignal: true }], ngImport: i0, template: `
727
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectValue, deps: [], target: i0.ɵɵFactoryTarget.Component });
728
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: BrnSelectValue, 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()", "attr.data-placeholder": "_showPlaceholder() ? \"\" : null" }, classAttribute: "line-clamp-1 whitespace-nowrap pointer-events-none" }, queries: [{ propertyName: "_customValueTemplate", first: true, predicate: BrnSelectValueTemplate, descendants: true, isSignal: true }, { propertyName: "_customPlaceholderTemplate", first: true, predicate: BrnSelectPlaceholder, descendants: true, isSignal: true }], ngImport: i0, template: `
729
729
  @if (_showPlaceholder()) {
730
730
  <ng-container [ngTemplateOutlet]="_customPlaceholderTemplate()?.templateRef ?? defaultPlaceholderTemplate" />
731
731
  } @else {
@@ -739,7 +739,7 @@ class BrnSelectValue {
739
739
  <ng-template #defaultPlaceholderTemplate>{{ placeholder() }}</ng-template>
740
740
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
741
741
  }
742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: BrnSelectValue, decorators: [{
742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnSelectValue, decorators: [{
743
743
  type: Component,
744
744
  args: [{
745
745
  selector: 'brn-select-value, hlm-select-value',