@spartan-ng/brain 0.0.1-alpha.373 → 0.0.1-alpha.379

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 (398) hide show
  1. package/accordion/README.md +3 -0
  2. package/accordion/index.d.ts +13 -0
  3. package/accordion/lib/brn-accordion-content.component.d.ts +15 -0
  4. package/accordion/lib/brn-accordion.directive.d.ts +47 -0
  5. package/alert-dialog/README.md +3 -0
  6. package/alert-dialog/index.d.ts +25 -0
  7. package/alert-dialog/lib/brn-alert-dialog-content.directive.d.ts +6 -0
  8. package/alert-dialog/lib/brn-alert-dialog-description.directive.d.ts +6 -0
  9. package/alert-dialog/lib/brn-alert-dialog-overlay.component.d.ts +6 -0
  10. package/alert-dialog/lib/brn-alert-dialog-title.directive.d.ts +6 -0
  11. package/alert-dialog/lib/brn-alert-dialog-trigger.directive.d.ts +8 -0
  12. package/alert-dialog/lib/brn-alert-dialog.component.d.ts +7 -0
  13. package/avatar/README.md +3 -0
  14. package/avatar/index.d.ts +17 -0
  15. package/avatar/lib/brn-avatar.component.d.ts +7 -0
  16. package/avatar/lib/fallback/brn-avatar-fallback.directive.d.ts +11 -0
  17. package/avatar/lib/fallback/index.d.ts +1 -0
  18. package/avatar/lib/image/brn-avatar-image.directive.d.ts +9 -0
  19. package/avatar/lib/image/index.d.ts +1 -0
  20. package/avatar/lib/util/hex-color-for.d.ts +1 -0
  21. package/avatar/lib/util/index.d.ts +3 -0
  22. package/avatar/lib/util/initials.pipe.d.ts +7 -0
  23. package/avatar/lib/util/is-bright.d.ts +1 -0
  24. package/calendar/README.md +3 -0
  25. package/calendar/index.d.ts +36 -0
  26. package/calendar/lib/brn-calendar-cell-button.directive.d.ts +59 -0
  27. package/calendar/lib/brn-calendar-cell.directive.d.ts +5 -0
  28. package/calendar/lib/brn-calendar-grid.directive.d.ts +7 -0
  29. package/calendar/lib/brn-calendar-header.directive.d.ts +7 -0
  30. package/calendar/lib/brn-calendar-next-button.directive.d.ts +13 -0
  31. package/calendar/lib/brn-calendar-previous-button.directive.d.ts +13 -0
  32. package/calendar/lib/brn-calendar-week.directive.d.ts +25 -0
  33. package/calendar/lib/brn-calendar-weekday.directive.d.ts +25 -0
  34. package/calendar/lib/brn-calendar.directive.d.ts +55 -0
  35. package/calendar/lib/brn-calendar.token.d.ts +8 -0
  36. package/calendar/lib/i18n/calendar-i18n.d.ts +17 -0
  37. package/checkbox/lib/brn-checkbox.component.d.ts +1 -1
  38. package/collapsible/README.md +3 -0
  39. package/collapsible/index.d.ts +16 -0
  40. package/collapsible/lib/brn-collapsible-content.component.d.ts +19 -0
  41. package/collapsible/lib/brn-collapsible-trigger.directive.d.ts +12 -0
  42. package/collapsible/lib/brn-collapsible.component.d.ts +11 -0
  43. package/command/README.md +3 -0
  44. package/command/index.d.ts +33 -0
  45. package/command/lib/brn-command-empty.directive.d.ts +6 -0
  46. package/command/lib/brn-command-group.component.d.ts +6 -0
  47. package/command/lib/brn-command-input.directive.d.ts +6 -0
  48. package/command/lib/brn-command-item.directive.d.ts +6 -0
  49. package/command/lib/brn-command-list.component.d.ts +6 -0
  50. package/command/lib/brn-command-loader.directive.d.ts +6 -0
  51. package/command/lib/brn-command-separator.component.d.ts +6 -0
  52. package/command/lib/brn-command.component.d.ts +6 -0
  53. package/date-time/README.md +3 -0
  54. package/date-time/index.d.ts +2 -0
  55. package/date-time/lib/date-adapter.d.ts +176 -0
  56. package/date-time/lib/native-date-adapter.d.ts +103 -0
  57. package/date-time-luxon/README.md +3 -0
  58. package/date-time-luxon/index.d.ts +1 -0
  59. package/date-time-luxon/lib/date-adapter.d.ts +29 -0
  60. package/dialog/README.md +3 -0
  61. package/dialog/index.d.ts +33 -0
  62. package/dialog/lib/brn-dialog-close.directive.d.ts +10 -0
  63. package/dialog/lib/brn-dialog-content.directive.d.ts +12 -0
  64. package/dialog/lib/brn-dialog-description.directive.d.ts +8 -0
  65. package/dialog/lib/brn-dialog-options.d.ts +26 -0
  66. package/dialog/lib/brn-dialog-overlay.component.d.ts +8 -0
  67. package/dialog/lib/brn-dialog-ref.d.ts +24 -0
  68. package/dialog/lib/brn-dialog-state.d.ts +1 -0
  69. package/dialog/lib/brn-dialog-title.directive.d.ts +8 -0
  70. package/dialog/lib/brn-dialog-trigger.directive.d.ts +16 -0
  71. package/dialog/lib/brn-dialog-utils.d.ts +1 -0
  72. package/dialog/lib/brn-dialog.component.d.ts +56 -0
  73. package/dialog/lib/brn-dialog.service.d.ts +22 -0
  74. package/esm2022/accordion/index.mjs +31 -0
  75. package/esm2022/accordion/lib/brn-accordion-content.component.mjs +50 -0
  76. package/esm2022/accordion/lib/brn-accordion.directive.mjs +180 -0
  77. package/esm2022/accordion/spartan-ng-brain-accordion.mjs +5 -0
  78. package/esm2022/alert-dialog/index.mjs +45 -0
  79. package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +17 -0
  80. package/esm2022/alert-dialog/lib/brn-alert-dialog-description.directive.mjs +18 -0
  81. package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +20 -0
  82. package/esm2022/alert-dialog/lib/brn-alert-dialog-title.directive.mjs +18 -0
  83. package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +27 -0
  84. package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +40 -0
  85. package/esm2022/alert-dialog/spartan-ng-brain-alert-dialog.mjs +5 -0
  86. package/esm2022/avatar/index.mjs +23 -0
  87. package/esm2022/avatar/lib/brn-avatar.component.mjs +31 -0
  88. package/esm2022/avatar/lib/fallback/brn-avatar-fallback.directive.mjs +21 -0
  89. package/esm2022/avatar/lib/fallback/index.mjs +2 -0
  90. package/esm2022/avatar/lib/image/brn-avatar-image.directive.mjs +29 -0
  91. package/esm2022/avatar/lib/image/index.mjs +2 -0
  92. package/esm2022/avatar/lib/util/hex-color-for.mjs +22 -0
  93. package/esm2022/avatar/lib/util/index.mjs +4 -0
  94. package/esm2022/avatar/lib/util/initials.pipe.mjs +27 -0
  95. package/esm2022/avatar/lib/util/is-bright.mjs +12 -0
  96. package/esm2022/avatar/spartan-ng-brain-avatar.mjs +5 -0
  97. package/esm2022/calendar/index.mjs +62 -0
  98. package/esm2022/calendar/lib/brn-calendar-cell-button.directive.mjs +160 -0
  99. package/esm2022/calendar/lib/brn-calendar-cell.directive.mjs +17 -0
  100. package/esm2022/calendar/lib/brn-calendar-grid.directive.mjs +21 -0
  101. package/esm2022/calendar/lib/brn-calendar-header.directive.mjs +22 -0
  102. package/esm2022/calendar/lib/brn-calendar-next-button.directive.mjs +42 -0
  103. package/esm2022/calendar/lib/brn-calendar-previous-button.directive.mjs +42 -0
  104. package/esm2022/calendar/lib/brn-calendar-week.directive.mjs +64 -0
  105. package/esm2022/calendar/lib/brn-calendar-weekday.directive.mjs +48 -0
  106. package/esm2022/calendar/lib/brn-calendar.directive.mjs +154 -0
  107. package/esm2022/calendar/lib/brn-calendar.token.mjs +12 -0
  108. package/esm2022/calendar/lib/i18n/calendar-i18n.mjs +33 -0
  109. package/esm2022/calendar/spartan-ng-brain-calendar.mjs +5 -0
  110. package/esm2022/checkbox/lib/brn-checkbox.component.mjs +1 -1
  111. package/esm2022/collapsible/index.mjs +30 -0
  112. package/esm2022/collapsible/lib/brn-collapsible-content.component.mjs +61 -0
  113. package/esm2022/collapsible/lib/brn-collapsible-trigger.directive.mjs +35 -0
  114. package/esm2022/collapsible/lib/brn-collapsible.component.mjs +33 -0
  115. package/esm2022/collapsible/spartan-ng-brain-collapsible.mjs +5 -0
  116. package/esm2022/command/index.mjs +64 -0
  117. package/esm2022/command/lib/brn-command-empty.directive.mjs +29 -0
  118. package/esm2022/command/lib/brn-command-group.component.mjs +45 -0
  119. package/esm2022/command/lib/brn-command-input.directive.mjs +29 -0
  120. package/esm2022/command/lib/brn-command-item.directive.mjs +36 -0
  121. package/esm2022/command/lib/brn-command-list.component.mjs +35 -0
  122. package/esm2022/command/lib/brn-command-loader.directive.mjs +29 -0
  123. package/esm2022/command/lib/brn-command-separator.component.mjs +30 -0
  124. package/esm2022/command/lib/brn-command.component.mjs +21 -0
  125. package/esm2022/command/spartan-ng-brain-command.mjs +5 -0
  126. package/esm2022/date-time/index.mjs +3 -0
  127. package/esm2022/date-time/lib/date-adapter.mjs +16 -0
  128. package/esm2022/date-time/lib/native-date-adapter.mjs +155 -0
  129. package/esm2022/date-time/spartan-ng-brain-date-time.mjs +5 -0
  130. package/esm2022/date-time-luxon/index.mjs +2 -0
  131. package/esm2022/date-time-luxon/lib/date-adapter.mjs +85 -0
  132. package/esm2022/date-time-luxon/spartan-ng-brain-date-time-luxon.mjs +5 -0
  133. package/esm2022/dialog/index.mjs +55 -0
  134. package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +29 -0
  135. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +41 -0
  136. package/esm2022/dialog/lib/brn-dialog-description.directive.mjs +25 -0
  137. package/esm2022/dialog/lib/brn-dialog-options.mjs +19 -0
  138. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +29 -0
  139. package/esm2022/dialog/lib/brn-dialog-ref.mjs +53 -0
  140. package/esm2022/dialog/lib/brn-dialog-state.mjs +2 -0
  141. package/esm2022/dialog/lib/brn-dialog-title.directive.mjs +25 -0
  142. package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +39 -0
  143. package/esm2022/dialog/lib/brn-dialog-utils.mjs +12 -0
  144. package/esm2022/dialog/lib/brn-dialog.component.mjs +208 -0
  145. package/esm2022/dialog/lib/brn-dialog.service.mjs +127 -0
  146. package/esm2022/dialog/spartan-ng-brain-dialog.mjs +5 -0
  147. package/esm2022/form-field/index.mjs +2 -0
  148. package/esm2022/form-field/lib/brn-form-field-control.mjs +14 -0
  149. package/esm2022/form-field/spartan-ng-brain-form-field.mjs +5 -0
  150. package/esm2022/forms/index.mjs +4 -0
  151. package/esm2022/forms/lib/control-value-accessor.mjs +2 -0
  152. package/esm2022/forms/lib/error-options.mjs +26 -0
  153. package/esm2022/forms/lib/error-state-tracker.mjs +29 -0
  154. package/esm2022/forms/spartan-ng-brain-forms.mjs +5 -0
  155. package/esm2022/hover-card/index.mjs +29 -0
  156. package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +205 -0
  157. package/esm2022/hover-card/lib/brn-hover-card.component.mjs +34 -0
  158. package/esm2022/hover-card/lib/createHoverObservable.mjs +19 -0
  159. package/esm2022/hover-card/spartan-ng-brain-hover-card.mjs +5 -0
  160. package/esm2022/label/index.mjs +17 -0
  161. package/esm2022/label/lib/brn-label.directive.mjs +49 -0
  162. package/esm2022/label/spartan-ng-brain-label.mjs +5 -0
  163. package/esm2022/menu/index.mjs +100 -0
  164. package/esm2022/menu/lib/brn-context-menu-trigger.directive.mjs +40 -0
  165. package/esm2022/menu/lib/brn-menu-align.mjs +15 -0
  166. package/esm2022/menu/lib/brn-menu-bar.directive.mjs +17 -0
  167. package/esm2022/menu/lib/brn-menu-group.directive.mjs +17 -0
  168. package/esm2022/menu/lib/brn-menu-item-checkbox.directive.mjs +30 -0
  169. package/esm2022/menu/lib/brn-menu-item-radio.directive.mjs +30 -0
  170. package/esm2022/menu/lib/brn-menu-item.directive.mjs +27 -0
  171. package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +36 -0
  172. package/esm2022/menu/lib/brn-menu.directive.mjs +50 -0
  173. package/esm2022/menu/spartan-ng-brain-menu.mjs +5 -0
  174. package/esm2022/popover/index.mjs +35 -0
  175. package/esm2022/popover/lib/brn-popover-close.directive.mjs +15 -0
  176. package/esm2022/popover/lib/brn-popover-content.directive.mjs +17 -0
  177. package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +37 -0
  178. package/esm2022/popover/lib/brn-popover.component.mjs +81 -0
  179. package/esm2022/popover/spartan-ng-brain-popover.mjs +5 -0
  180. package/esm2022/progress/index.mjs +21 -0
  181. package/esm2022/progress/lib/brn-progress-indicator.component.mjs +22 -0
  182. package/esm2022/progress/lib/brn-progress.component.mjs +61 -0
  183. package/esm2022/progress/lib/brn-progress.token.mjs +9 -0
  184. package/esm2022/progress/spartan-ng-brain-progress.mjs +5 -0
  185. package/esm2022/radio-group/index.mjs +20 -0
  186. package/esm2022/radio-group/lib/brn-radio-group.component.mjs +90 -0
  187. package/esm2022/radio-group/lib/brn-radio-group.token.mjs +9 -0
  188. package/esm2022/radio-group/lib/brn-radio.component.mjs +185 -0
  189. package/esm2022/radio-group/spartan-ng-brain-radio-group.mjs +5 -0
  190. package/esm2022/select/index.mjs +56 -0
  191. package/esm2022/select/lib/brn-select-content.component.mjs +204 -0
  192. package/esm2022/select/lib/brn-select-group.directive.mjs +19 -0
  193. package/esm2022/select/lib/brn-select-label.directive.mjs +23 -0
  194. package/esm2022/select/lib/brn-select-option.directive.mjs +65 -0
  195. package/esm2022/select/lib/brn-select-value.component.mjs +46 -0
  196. package/esm2022/select/lib/brn-select.component.mjs +358 -0
  197. package/esm2022/select/lib/brn-select.service.mjs +197 -0
  198. package/esm2022/select/spartan-ng-brain-select.mjs +5 -0
  199. package/esm2022/separator/index.mjs +17 -0
  200. package/esm2022/separator/lib/brn-separator.component.mjs +24 -0
  201. package/esm2022/separator/spartan-ng-brain-separator.mjs +5 -0
  202. package/esm2022/sheet/index.mjs +50 -0
  203. package/esm2022/sheet/lib/brn-sheet-close.directive.mjs +15 -0
  204. package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +25 -0
  205. package/esm2022/sheet/lib/brn-sheet-description.directive.mjs +18 -0
  206. package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +20 -0
  207. package/esm2022/sheet/lib/brn-sheet-title.directive.mjs +18 -0
  208. package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +26 -0
  209. package/esm2022/sheet/lib/brn-sheet.component.mjs +55 -0
  210. package/esm2022/sheet/spartan-ng-brain-sheet.mjs +5 -0
  211. package/esm2022/slider/index.mjs +13 -0
  212. package/esm2022/slider/lib/brn-slider-thumb.directive.mjs +41 -0
  213. package/esm2022/slider/lib/brn-slider-tick-mark.directive.mjs +37 -0
  214. package/esm2022/slider/lib/brn-slider-track-active-fill.directive.mjs +29 -0
  215. package/esm2022/slider/lib/brn-slider-track.directive.mjs +290 -0
  216. package/esm2022/slider/spartan-ng-brain-slider.mjs +5 -0
  217. package/esm2022/switch/index.mjs +20 -0
  218. package/esm2022/switch/lib/brn-switch-thumb.component.mjs +16 -0
  219. package/esm2022/switch/lib/brn-switch.component.mjs +236 -0
  220. package/esm2022/switch/spartan-ng-brain-switch.mjs +5 -0
  221. package/esm2022/table/index.mjs +47 -0
  222. package/esm2022/table/lib/brn-cell-def.directive.mjs +22 -0
  223. package/esm2022/table/lib/brn-column-def.component.mjs +82 -0
  224. package/esm2022/table/lib/brn-column-manager.mjs +61 -0
  225. package/esm2022/table/lib/brn-footer-def.directive.mjs +22 -0
  226. package/esm2022/table/lib/brn-header-def.directive.mjs +22 -0
  227. package/esm2022/table/lib/brn-paginator.directive.mjs +109 -0
  228. package/esm2022/table/lib/brn-table.component.mjs +169 -0
  229. package/esm2022/table/spartan-ng-brain-table.mjs +5 -0
  230. package/esm2022/tabs/index.mjs +32 -0
  231. package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +65 -0
  232. package/esm2022/tabs/lib/brn-tabs-paginated-list.directive.mjs +525 -0
  233. package/esm2022/tabs/lib/brn-tabs-trigger.directive.mjs +134 -0
  234. package/esm2022/tabs/spartan-ng-brain-tabs.mjs +5 -0
  235. package/esm2022/toggle/index.mjs +31 -0
  236. package/esm2022/toggle/lib/brn-toggle-group.component.mjs +159 -0
  237. package/esm2022/toggle/lib/brn-toggle-group.token.mjs +9 -0
  238. package/esm2022/toggle/lib/brn-toggle.directive.mjs +65 -0
  239. package/esm2022/toggle/spartan-ng-brain-toggle.mjs +5 -0
  240. package/esm2022/tooltip/index.mjs +35 -0
  241. package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +228 -0
  242. package/esm2022/tooltip/lib/brn-tooltip-content.directive.mjs +22 -0
  243. package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +689 -0
  244. package/esm2022/tooltip/lib/brn-tooltip.directive.mjs +15 -0
  245. package/esm2022/tooltip/spartan-ng-brain-tooltip.mjs +5 -0
  246. package/fesm2022/spartan-ng-brain-accordion.mjs +259 -0
  247. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -0
  248. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +162 -0
  249. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -0
  250. package/fesm2022/spartan-ng-brain-avatar.mjs +156 -0
  251. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -0
  252. package/fesm2022/spartan-ng-brain-calendar.mjs +629 -0
  253. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -0
  254. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  255. package/fesm2022/spartan-ng-brain-collapsible.mjs +152 -0
  256. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -0
  257. package/fesm2022/spartan-ng-brain-command.mjs +284 -0
  258. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -0
  259. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs +92 -0
  260. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -0
  261. package/fesm2022/spartan-ng-brain-date-time.mjs +177 -0
  262. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -0
  263. package/fesm2022/spartan-ng-brain-dialog.mjs +617 -0
  264. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -0
  265. package/fesm2022/spartan-ng-brain-form-field.mjs +21 -0
  266. package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -0
  267. package/fesm2022/spartan-ng-brain-forms.mjs +61 -0
  268. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -0
  269. package/fesm2022/spartan-ng-brain-hover-card.mjs +274 -0
  270. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -0
  271. package/fesm2022/spartan-ng-brain-label.mjs +69 -0
  272. package/fesm2022/spartan-ng-brain-label.mjs.map +1 -0
  273. package/fesm2022/spartan-ng-brain-menu.mjs +316 -0
  274. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -0
  275. package/fesm2022/spartan-ng-brain-popover.mjs +173 -0
  276. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -0
  277. package/fesm2022/spartan-ng-brain-progress.mjs +108 -0
  278. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -0
  279. package/fesm2022/spartan-ng-brain-radio-group.mjs +299 -0
  280. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -0
  281. package/fesm2022/spartan-ng-brain-select.mjs +928 -0
  282. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -0
  283. package/fesm2022/spartan-ng-brain-separator.mjs +44 -0
  284. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -0
  285. package/fesm2022/spartan-ng-brain-sheet.mjs +197 -0
  286. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -0
  287. package/fesm2022/spartan-ng-brain-slider.mjs +399 -0
  288. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -0
  289. package/fesm2022/spartan-ng-brain-switch.mjs +271 -0
  290. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -0
  291. package/fesm2022/spartan-ng-brain-table.mjs +506 -0
  292. package/fesm2022/spartan-ng-brain-table.mjs.map +1 -0
  293. package/fesm2022/spartan-ng-brain-tabs.mjs +748 -0
  294. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -0
  295. package/fesm2022/spartan-ng-brain-toggle.mjs +260 -0
  296. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -0
  297. package/fesm2022/spartan-ng-brain-tooltip.mjs +975 -0
  298. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -0
  299. package/form-field/README.md +3 -0
  300. package/form-field/index.d.ts +1 -0
  301. package/form-field/lib/brn-form-field-control.d.ts +11 -0
  302. package/forms/README.md +3 -0
  303. package/forms/index.d.ts +3 -0
  304. package/forms/lib/control-value-accessor.d.ts +2 -0
  305. package/forms/lib/error-options.d.ts +14 -0
  306. package/forms/lib/error-state-tracker.d.ts +15 -0
  307. package/hover-card/README.md +3 -0
  308. package/hover-card/index.d.ts +14 -0
  309. package/hover-card/lib/brn-hover-card-content.service.d.ts +65 -0
  310. package/hover-card/lib/brn-hover-card.component.d.ts +9 -0
  311. package/hover-card/lib/createHoverObservable.d.ts +4 -0
  312. package/label/README.md +3 -0
  313. package/label/index.d.ts +8 -0
  314. package/label/lib/brn-label.directive.d.ts +15 -0
  315. package/menu/README.md +3 -0
  316. package/menu/index.d.ts +49 -0
  317. package/menu/lib/brn-context-menu-trigger.directive.d.ts +13 -0
  318. package/menu/lib/brn-menu-align.d.ts +3 -0
  319. package/menu/lib/brn-menu-bar.directive.d.ts +6 -0
  320. package/menu/lib/brn-menu-group.directive.d.ts +6 -0
  321. package/menu/lib/brn-menu-item-checkbox.directive.d.ts +11 -0
  322. package/menu/lib/brn-menu-item-radio.directive.d.ts +11 -0
  323. package/menu/lib/brn-menu-item.directive.d.ts +10 -0
  324. package/menu/lib/brn-menu-trigger.directive.d.ts +10 -0
  325. package/menu/lib/brn-menu.directive.d.ts +11 -0
  326. package/package.json +182 -9
  327. package/popover/README.md +3 -0
  328. package/popover/index.d.ts +19 -0
  329. package/popover/lib/brn-popover-close.directive.d.ts +6 -0
  330. package/popover/lib/brn-popover-content.directive.d.ts +6 -0
  331. package/popover/lib/brn-popover-trigger.directive.d.ts +10 -0
  332. package/popover/lib/brn-popover.component.d.ts +14 -0
  333. package/progress/README.md +3 -0
  334. package/progress/index.d.ts +14 -0
  335. package/progress/lib/brn-progress-indicator.component.d.ts +6 -0
  336. package/progress/lib/brn-progress.component.d.ts +15 -0
  337. package/progress/lib/brn-progress.token.d.ts +4 -0
  338. package/radio-group/README.md +3 -0
  339. package/radio-group/index.d.ts +13 -0
  340. package/radio-group/lib/brn-radio-group.component.d.ts +57 -0
  341. package/radio-group/lib/brn-radio-group.token.d.ts +4 -0
  342. package/radio-group/lib/brn-radio.component.d.ts +58 -0
  343. package/select/README.md +3 -0
  344. package/select/index.d.ts +28 -0
  345. package/select/lib/brn-select-content.component.d.ts +50 -0
  346. package/select/lib/brn-select-group.directive.d.ts +6 -0
  347. package/select/lib/brn-select-label.directive.d.ts +9 -0
  348. package/select/lib/brn-select-option.directive.d.ts +25 -0
  349. package/select/lib/brn-select-value.component.d.ts +11 -0
  350. package/select/lib/brn-select.component.d.ts +82 -0
  351. package/select/lib/brn-select.service.d.ts +67 -0
  352. package/separator/README.md +3 -0
  353. package/separator/index.d.ts +8 -0
  354. package/separator/lib/brn-separator.component.d.ts +11 -0
  355. package/sheet/README.md +3 -0
  356. package/sheet/index.d.ts +28 -0
  357. package/sheet/lib/brn-sheet-close.directive.d.ts +6 -0
  358. package/sheet/lib/brn-sheet-content.directive.d.ts +8 -0
  359. package/sheet/lib/brn-sheet-description.directive.d.ts +6 -0
  360. package/sheet/lib/brn-sheet-overlay.component.d.ts +6 -0
  361. package/sheet/lib/brn-sheet-title.directive.d.ts +6 -0
  362. package/sheet/lib/brn-sheet-trigger.directive.d.ts +9 -0
  363. package/sheet/lib/brn-sheet.component.d.ts +9 -0
  364. package/slider/README.md +3 -0
  365. package/slider/index.d.ts +7 -0
  366. package/slider/lib/brn-slider-thumb.directive.d.ts +17 -0
  367. package/slider/lib/brn-slider-tick-mark.directive.d.ts +15 -0
  368. package/slider/lib/brn-slider-track-active-fill.directive.d.ts +10 -0
  369. package/slider/lib/brn-slider-track.directive.d.ts +139 -0
  370. package/switch/README.md +3 -0
  371. package/switch/index.d.ts +13 -0
  372. package/switch/lib/brn-switch-thumb.component.d.ts +5 -0
  373. package/switch/lib/brn-switch.component.d.ts +58 -0
  374. package/table/README.md +3 -0
  375. package/table/index.d.ts +26 -0
  376. package/table/lib/brn-cell-def.directive.d.ts +9 -0
  377. package/table/lib/brn-column-def.component.d.ts +18 -0
  378. package/table/lib/brn-column-manager.d.ts +26 -0
  379. package/table/lib/brn-footer-def.directive.d.ts +9 -0
  380. package/table/lib/brn-header-def.directive.d.ts +9 -0
  381. package/table/lib/brn-paginator.directive.d.ts +41 -0
  382. package/table/lib/brn-table.component.d.ts +37 -0
  383. package/tabs/README.md +3 -0
  384. package/tabs/index.d.ts +14 -0
  385. package/tabs/lib/brn-tabs-list.directive.d.ts +17 -0
  386. package/tabs/lib/brn-tabs-paginated-list.directive.d.ts +196 -0
  387. package/tabs/lib/brn-tabs-trigger.directive.d.ts +61 -0
  388. package/toggle/README.md +3 -0
  389. package/toggle/index.d.ts +15 -0
  390. package/toggle/lib/brn-toggle-group.component.d.ts +68 -0
  391. package/toggle/lib/brn-toggle-group.token.d.ts +4 -0
  392. package/toggle/lib/brn-toggle.directive.d.ts +25 -0
  393. package/tooltip/README.md +3 -0
  394. package/tooltip/index.d.ts +19 -0
  395. package/tooltip/lib/brn-tooltip-content.component.d.ts +73 -0
  396. package/tooltip/lib/brn-tooltip-content.directive.d.ts +8 -0
  397. package/tooltip/lib/brn-tooltip-trigger.directive.d.ts +177 -0
  398. package/tooltip/lib/brn-tooltip.directive.d.ts +7 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spartan-ng-brain-calendar.mjs","sources":["../../../../libs/brain/calendar/src/lib/brn-calendar.token.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-cell-button.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-cell.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-grid.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-header.directive.ts","../../../../libs/brain/calendar/src/lib/i18n/calendar-i18n.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-next-button.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-previous-button.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-week.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar-weekday.directive.ts","../../../../libs/brain/calendar/src/lib/brn-calendar.directive.ts","../../../../libs/brain/calendar/src/index.ts","../../../../libs/brain/calendar/src/spartan-ng-brain-calendar.ts"],"sourcesContent":["import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { BrnCalendarDirective } from './brn-calendar.directive';\n\nexport const BrnCalendarToken = new InjectionToken<BrnCalendarDirective<unknown>>('BrnCalendarToken');\n\nexport function provideBrnCalendar<T>(instance: Type<BrnCalendarDirective<T>>): ExistingProvider {\n\treturn { provide: BrnCalendarToken, useExisting: instance };\n}\n\n/**\n * Inject the calendar component.\n */\nexport function injectBrnCalendar<T>(): BrnCalendarDirective<T> {\n\treturn inject(BrnCalendarToken) as BrnCalendarDirective<T>;\n}\n","import { Directive, ElementRef, computed, inject, input } from '@angular/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { injectBrnCalendar } from './brn-calendar.token';\n\n@Directive({\n\tselector: 'button[brnCalendarCellButton]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'gridcell',\n\t\t'[tabindex]': 'focusable() ? 0 : -1',\n\t\ttype: 'button',\n\t\t'[attr.data-outside]': \"outside() ? '' : null\",\n\t\t'[attr.data-today]': \"today() && !selected() ? '' : null\",\n\t\t'[attr.data-selected]': \"selected() ? '' : null\",\n\t\t'[attr.data-disabled]': \"disabled() ? '' : null\",\n\t\t'[attr.aria-selected]': \"selected() ? 'true' : null\",\n\t\t'[attr.aria-disabled]': \"disabled() ? 'true' : null\",\n\t\t'[disabled]': 'disabled()',\n\t\t'(click)': 'calendar.selectDate(date())',\n\t\t'(keydown.arrowLeft)': 'focusPrevious($event)',\n\t\t'(keydown.arrowRight)': 'focusNext($event)',\n\t\t'(keydown.arrowUp)': 'focusAbove($event)',\n\t\t'(keydown.arrowDown)': 'focusBelow($event)',\n\t\t'(keydown.home)': 'focusFirst($event)',\n\t\t'(keydown.end)': 'focusLast($event)',\n\t\t'(keydown.pageUp)': 'focusPreviousMonth($event)',\n\t\t'(keydown.pageDown)': 'focusNextMonth($event)',\n\t},\n})\nexport class BrnCalendarCellButtonDirective<T> {\n\t/** Access the date adapter */\n\tprotected readonly dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the calendar component */\n\tprotected readonly calendar = injectBrnCalendar<T>();\n\n\t/** Access the element ref */\n\tprivate readonly _elementRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n\n\t/** The date this cell represents */\n\tpublic readonly date = input.required<T>();\n\n\t/** Whether this date is currently selected */\n\tpublic readonly selected = computed(() => {\n\t\tconst selectedDate = this.calendar.date();\n\t\treturn selectedDate && this.dateAdapter.isSameDay(this.date(), selectedDate);\n\t});\n\n\t/** Whether this date is focusable */\n\tpublic readonly focusable = computed(() => this.dateAdapter.isSameDay(this.calendar.focusedDate(), this.date()));\n\n\tpublic readonly outside = computed(() => {\n\t\tconst focusedDate = this.calendar.focusedDate();\n\t\treturn !this.dateAdapter.isSameMonth(this.date(), focusedDate);\n\t});\n\n\t/** Whether this date is today */\n\tpublic readonly today = computed(() => this.dateAdapter.isSameDay(this.date(), this.dateAdapter.now()));\n\n\t/** Whether this date is disabled */\n\tpublic readonly disabled = computed(() => this.calendar.isDateDisabled(this.date()) || this.calendar.disabled());\n\n\t/**\n\t * Focus the previous cell.\n\t */\n\tprotected focusPrevious(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\t// in rtl, the arrow keys are reversed.\n\t\tconst targetDate = this.dateAdapter.add(this.calendar.focusedDate(), {\n\t\t\tdays: this.getDirection() === 'rtl' ? 1 : -1,\n\t\t});\n\n\t\tthis.calendar.setFocusedDate(targetDate);\n\t}\n\n\t/**\n\t * Focus the next cell.\n\t */\n\tprotected focusNext(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tconst targetDate = this.dateAdapter.add(this.calendar.focusedDate(), {\n\t\t\tdays: this.getDirection() === 'rtl' ? -1 : 1,\n\t\t});\n\n\t\tthis.calendar.setFocusedDate(targetDate);\n\t}\n\n\t/**\n\t * Focus the above cell.\n\t */\n\tprotected focusAbove(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.calendar.setFocusedDate(this.dateAdapter.subtract(this.calendar.focusedDate(), { days: 7 }));\n\t}\n\n\t/**\n\t * Focus the below cell.\n\t */\n\tprotected focusBelow(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.calendar.setFocusedDate(this.dateAdapter.add(this.calendar.focusedDate(), { days: 7 }));\n\t}\n\n\t/**\n\t * Focus the first date of the month.\n\t */\n\tprotected focusFirst(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.calendar.setFocusedDate(this.dateAdapter.startOfMonth(this.calendar.focusedDate()));\n\t}\n\n\t/**\n\t * Focus the last date of the month.\n\t */\n\tprotected focusLast(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tthis.calendar.setFocusedDate(this.dateAdapter.endOfMonth(this.calendar.focusedDate()));\n\t}\n\n\t/**\n\t * Focus the same date in the previous month.\n\t */\n\tprotected focusPreviousMonth(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tconst date = this.dateAdapter.getDate(this.calendar.focusedDate());\n\n\t\tlet previousMonthTarget = this.dateAdapter.startOfMonth(this.calendar.focusedDate());\n\t\tpreviousMonthTarget = this.dateAdapter.subtract(previousMonthTarget, { months: 1 });\n\n\t\tconst lastDay = this.dateAdapter.endOfMonth(previousMonthTarget);\n\n\t\t// if we are on a date that does not exist in the previous month, we should focus the last day of the month.\n\t\tif (date > this.dateAdapter.getDate(lastDay)) {\n\t\t\tthis.calendar.setFocusedDate(lastDay);\n\t\t} else {\n\t\t\tthis.calendar.setFocusedDate(this.dateAdapter.set(previousMonthTarget, { day: date }));\n\t\t}\n\t}\n\n\t/**\n\t * Focus the same date in the next month.\n\t */\n\tprotected focusNextMonth(event: Event): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tconst date = this.dateAdapter.getDate(this.calendar.focusedDate());\n\n\t\tlet nextMonthTarget = this.dateAdapter.startOfMonth(this.calendar.focusedDate());\n\t\tnextMonthTarget = this.dateAdapter.add(nextMonthTarget, { months: 1 });\n\n\t\tconst lastDay = this.dateAdapter.endOfMonth(nextMonthTarget);\n\n\t\t// if we are on a date that does not exist in the next month, we should focus the last day of the month.\n\t\tif (date > this.dateAdapter.getDate(lastDay)) {\n\t\t\tthis.calendar.setFocusedDate(lastDay);\n\t\t} else {\n\t\t\tthis.calendar.setFocusedDate(this.dateAdapter.set(nextMonthTarget, { day: date }));\n\t\t}\n\t}\n\n\t/**\n\t * Get the direction of the element.\n\t */\n\tprivate getDirection(): 'ltr' | 'rtl' {\n\t\treturn getComputedStyle(this._elementRef.nativeElement).direction === 'rtl' ? 'rtl' : 'ltr';\n\t}\n\n\tfocus(): void {\n\t\tthis._elementRef.nativeElement.focus();\n\t}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[brnCalendarCell]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'presentation',\n\t},\n})\nexport class BrnCalendarCellDirective {}\n","import { Directive } from '@angular/core';\nimport { injectBrnCalendar } from './brn-calendar.token';\n\n@Directive({\n\tselector: '[brnCalendarGrid]',\n\tstandalone: true,\n\thost: {\n\t\trole: 'grid',\n\t\t'[attr.aria-labelledby]': 'calendar.header()?.id()',\n\t},\n})\nexport class BrnCalendarGridDirective<T> {\n\t/** Access the calendar component */\n\tprotected readonly calendar = injectBrnCalendar<T>();\n}\n","import { Directive, input } from '@angular/core';\n\nlet uniqueId = 0;\n\n@Directive({\n\tselector: '[brnCalendarHeader]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'aria-live': 'polite',\n\t\trole: 'presentation',\n\t},\n})\nexport class BrnCalendarHeaderDirective {\n\t/** The unique id for the header */\n\tpublic readonly id = input(`brn-calendar-header-${uniqueId++}`);\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\n\nexport interface BrnCalendarI18n {\n\tformatWeekdayName: (index: number) => string;\n\tformatHeader: (month: number, year: number) => string;\n\tlabelPrevious: () => string;\n\tlabelNext: () => string;\n\tlabelWeekday: (index: number) => string;\n}\n\nexport const BrnCalendarI18nToken = new InjectionToken<BrnCalendarI18n>('BrnCalendarI18nToken');\n\n/**\n * Provide the calendar i18n configuration.\n */\nexport function provideBrnCalendarI18n(configuration: BrnCalendarI18n): ValueProvider {\n\treturn { provide: BrnCalendarI18nToken, useValue: configuration };\n}\n\nconst defaultCalendarI18n: BrnCalendarI18n = {\n\tformatWeekdayName: (index: number) => {\n\t\tconst weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\t\treturn weekdays[index];\n\t},\n\tformatHeader: (month: number, year: number) => {\n\t\treturn new Date(year, month).toLocaleDateString(undefined, {\n\t\t\tmonth: 'long',\n\t\t\tyear: 'numeric',\n\t\t});\n\t},\n\tlabelPrevious: () => 'Go to the previous month',\n\tlabelNext: () => 'Go to the next month',\n\tlabelWeekday: (index: number) => {\n\t\tconst weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\t\treturn weekdays[index];\n\t},\n};\n\n/**\n * Inject the calendar i18n configuration.\n */\nexport function injectBrnCalendarI18n(): BrnCalendarI18n {\n\treturn inject(BrnCalendarI18nToken, { optional: true }) ?? defaultCalendarI18n;\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { injectBrnCalendar } from './brn-calendar.token';\nimport { injectBrnCalendarI18n } from './i18n/calendar-i18n';\n\n@Directive({\n\tselector: '[brnCalendarNextButton]',\n\tstandalone: true,\n\thost: {\n\t\ttype: 'button',\n\t\t'[attr.aria-label]': 'i18n.labelNext()',\n\t},\n})\nexport class BrnCalendarNextButtonDirective {\n\t/** Access the calendar */\n\tprivate readonly _calendar = injectBrnCalendar();\n\n\t/** Access the date adapter */\n\tprivate readonly _dateAdapter = injectDateAdapter();\n\n\t/** Access the calendar i18n */\n\tprotected readonly i18n = injectBrnCalendarI18n();\n\n\t/** Focus the previous month */\n\t@HostListener('click')\n\tprotected focusPreviousMonth(): void {\n\t\tconst targetDate = this._dateAdapter.add(this._calendar.state().focusedDate(), { months: 1 });\n\n\t\t// if the date is disabled, but there are available dates in the month, focus the last day of the month.\n\t\tconst possibleDate = this._calendar.constrainDate(targetDate);\n\n\t\tif (this._dateAdapter.isSameMonth(possibleDate, targetDate)) {\n\t\t\t// if this date is within the same month, then focus it\n\t\t\tthis._calendar.state().focusedDate.set(possibleDate);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._calendar.state().focusedDate.set(targetDate);\n\t}\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { injectBrnCalendar } from './brn-calendar.token';\nimport { injectBrnCalendarI18n } from './i18n/calendar-i18n';\n\n@Directive({\n\tselector: '[brnCalendarPreviousButton]',\n\tstandalone: true,\n\thost: {\n\t\ttype: 'button',\n\t\t'[attr.aria-label]': 'i18n.labelPrevious()',\n\t},\n})\nexport class BrnCalendarPreviousButtonDirective {\n\t/** Access the calendar */\n\tprivate readonly _calendar = injectBrnCalendar();\n\n\t/** Access the date adapter */\n\tprivate readonly _dateAdapter = injectDateAdapter();\n\n\t/** Access the calendar i18n */\n\tprotected readonly i18n = injectBrnCalendarI18n();\n\n\t/** Focus the previous month */\n\t@HostListener('click')\n\tprotected focusPreviousMonth(): void {\n\t\tconst targetDate = this._dateAdapter.subtract(this._calendar.state().focusedDate(), { months: 1 });\n\n\t\t// if the date is disabled, but there are available dates in the month, focus the last day of the month.\n\t\tconst possibleDate = this._calendar.constrainDate(targetDate);\n\n\t\tif (this._dateAdapter.isSameMonth(possibleDate, targetDate)) {\n\t\t\t// if this date is within the same month, then focus it\n\t\t\tthis._calendar.state().focusedDate.set(possibleDate);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._calendar.state().focusedDate.set(targetDate);\n\t}\n}\n","import {\n\tChangeDetectorRef,\n\tDirective,\n\tEmbeddedViewRef,\n\tOnDestroy,\n\tTemplateRef,\n\tViewContainerRef,\n\tcomputed,\n\teffect,\n\tinject,\n} from '@angular/core';\nimport { injectBrnCalendar } from './brn-calendar.token';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCalendarWeek]',\n})\nexport class BrnCalendarWeekDirective<T> implements OnDestroy {\n\t/** Access the calendar */\n\tprivate readonly _calendar = injectBrnCalendar<T>();\n\n\t/** Access the view container ref */\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\n\t/** Access the change detector */\n\tprivate readonly _changeDetector = inject(ChangeDetectorRef);\n\n\t/** Access the template ref */\n\tprivate readonly _templateRef = inject<TemplateRef<BrnWeekContext<T>>>(TemplateRef);\n\n\t// get the weeks to display.\n\tprotected readonly weeks = computed(() => {\n\t\tconst days = this._calendar.days();\n\t\tconst weeks = [];\n\n\t\tfor (let i = 0; i < days.length; i += 7) {\n\t\t\tweeks.push(days.slice(i, i + 7));\n\t\t}\n\n\t\treturn weeks;\n\t});\n\n\t/** Store the view refs */\n\tprivate readonly _viewRefs: EmbeddedViewRef<BrnWeekContext<T>>[] = [];\n\n\t// Make sure the template checker knows the type of the context with which the\n\t// template of this directive will be rendered\n\tstatic ngTemplateContextGuard<T>(_: BrnCalendarWeekDirective<T>, ctx: unknown): ctx is BrnWeekContext<T> {\n\t\treturn true;\n\t}\n\n\tconstructor() {\n\t\t// this should use `afterRenderEffect` but it's not available in the current version\n\t\teffect(() => this.renderWeek(), { allowSignalWrites: true });\n\t}\n\n\tprivate renderWeek(): void {\n\t\t// Destroy all the views when the directive is destroyed\n\t\tfor (const viewRef of this._viewRefs) {\n\t\t\tviewRef.destroy();\n\t\t}\n\n\t\tthis._viewRefs.length = 0;\n\n\t\t// Create a new view for each week\n\t\tfor (const week of this.weeks()) {\n\t\t\tconst viewRef = this._viewContainerRef.createEmbeddedView(this._templateRef, {\n\t\t\t\t$implicit: week,\n\t\t\t});\n\t\t\tthis._viewRefs.push(viewRef);\n\t\t}\n\n\t\tthis._changeDetector.detectChanges();\n\t}\n\n\tngOnDestroy(): void {\n\t\t// Destroy all the views when the directive is destroyed\n\t\tfor (const viewRef of this._viewRefs) {\n\t\t\tviewRef.destroy();\n\t\t}\n\t}\n}\n\ninterface BrnWeekContext<T> {\n\t$implicit: T[];\n}\n","import { Directive, EmbeddedViewRef, OnDestroy, TemplateRef, ViewContainerRef, computed, inject } from '@angular/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { injectBrnCalendar } from './brn-calendar.token';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[brnCalendarWeekday]',\n})\nexport class BrnCalendarWeekdayDirective<T> implements OnDestroy {\n\t/** Access the calendar */\n\tprivate readonly _calendar = injectBrnCalendar<T>();\n\n\t/** Access the date time adapter */\n\tprivate readonly _dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the view container ref */\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\n\t/** Access the template ref */\n\tprivate readonly _templateRef = inject<TemplateRef<BrnWeekdayContext>>(TemplateRef);\n\n\t/** Get the days of the week to display in the header. */\n\tprotected readonly weekdays = computed(() => this._calendar.days().slice(0, 7));\n\n\t/** Store the view refs */\n\tprivate readonly _viewRefs: EmbeddedViewRef<BrnWeekdayContext>[] = [];\n\n\t// Make sure the template checker knows the type of the context with which the\n\t// template of this directive will be rendered\n\tstatic ngTemplateContextGuard<T>(_: BrnCalendarWeekdayDirective<T>, ctx: unknown): ctx is BrnWeekdayContext {\n\t\treturn true;\n\t}\n\n\tconstructor() {\n\t\t// Create a new view for each day\n\t\tfor (const day of this.weekdays()) {\n\t\t\tconst viewRef = this._viewContainerRef.createEmbeddedView(this._templateRef, {\n\t\t\t\t$implicit: this._dateAdapter.getDay(day),\n\t\t\t});\n\t\t\tthis._viewRefs.push(viewRef);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\t// Destroy all the views when the directive is destroyed\n\t\tfor (const viewRef of this._viewRefs) {\n\t\t\tviewRef.destroy();\n\t\t}\n\t}\n}\n\ninterface BrnWeekdayContext {\n\t$implicit: number;\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectorRef,\n\tDirective,\n\tInjector,\n\tafterNextRender,\n\tbooleanAttribute,\n\tcomputed,\n\tcontentChild,\n\tcontentChildren,\n\tinject,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport { BrnCalendarCellButtonDirective } from './brn-calendar-cell-button.directive';\nimport { BrnCalendarHeaderDirective } from './brn-calendar-header.directive';\nimport { provideBrnCalendar } from './brn-calendar.token';\n\n@Directive({\n\tselector: '[brnCalendar]',\n\tstandalone: true,\n\tproviders: [provideBrnCalendar(BrnCalendarDirective)],\n})\nexport class BrnCalendarDirective<T> {\n\t/** Access the date adapter */\n\tprotected readonly dateAdapter = injectDateAdapter<T>();\n\n\t/** Access the change detector */\n\tprivate readonly _changeDetector = inject(ChangeDetectorRef);\n\n\t/** Access the injector */\n\tprivate readonly _injector = inject(Injector);\n\n\t/** The minimum date that can be selected.*/\n\tpublic readonly min = input<T>();\n\n\t/* * The maximum date that can be selected. */\n\tpublic readonly max = input<T>();\n\n\t/** Determine if the date picker is disabled. */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/** The selected value. */\n\tpublic readonly date = model<T>();\n\n\t/** Whether a specific date is disabled. */\n\tpublic readonly dateDisabled = input<(date: T) => boolean>(() => false);\n\n\t/** The day the week starts on */\n\tpublic readonly weekStartsOn = input<Weekday, NumberInput>(0, {\n\t\ttransform: (v: unknown) => numberAttribute(v) as Weekday,\n\t});\n\n\t/** The default focused date. */\n\tpublic readonly defaultFocusedDate = input<T>();\n\n\t/** @internal Access the header */\n\tpublic readonly header = contentChild(BrnCalendarHeaderDirective);\n\n\t/** Store the cells */\n\tprotected readonly cells = contentChildren<BrnCalendarCellButtonDirective<T>>(BrnCalendarCellButtonDirective, {\n\t\tdescendants: true,\n\t});\n\n\t/**\n\t * @internal\n\t * The internal state of the component.\n\t */\n\tpublic readonly state = computed(() => ({\n\t\tfocusedDate: signal(this.constrainDate(this.defaultFocusedDate() ?? this.date() ?? this.dateAdapter.now())),\n\t}));\n\n\t/**\n\t * The focused date.\n\t */\n\tpublic readonly focusedDate = computed(() => this.state().focusedDate());\n\n\t/**\n\t * Get all the days to display, this is the days of the current month\n\t * and the days of the previous and next month to fill the grid.\n\t */\n\tpublic readonly days = computed(() => {\n\t\tconst weekStartsOn = this.weekStartsOn();\n\t\tconst month = this.state().focusedDate();\n\t\tconst days: T[] = [];\n\n\t\t// Get the first and last day of the month.\n\t\tlet firstDay = this.dateAdapter.startOfMonth(month);\n\t\tlet lastDay = this.dateAdapter.endOfMonth(month);\n\n\t\t// we need to subtract until we get the to starting day before or on the start of the month.\n\t\twhile (this.dateAdapter.getDay(firstDay) !== weekStartsOn) {\n\t\t\tfirstDay = this.dateAdapter.subtract(firstDay, { days: 1 });\n\t\t}\n\n\t\tconst weekEndsOn = (weekStartsOn + 6) % 7;\n\n\t\t// we need to add until we get to the ending day after or on the end of the month.\n\t\twhile (this.dateAdapter.getDay(lastDay) !== weekEndsOn) {\n\t\t\tlastDay = this.dateAdapter.add(lastDay, { days: 1 });\n\t\t}\n\n\t\t// collect all the days to display.\n\t\twhile (firstDay <= lastDay) {\n\t\t\tdays.push(firstDay);\n\t\t\tfirstDay = this.dateAdapter.add(firstDay, { days: 1 });\n\t\t}\n\n\t\treturn days;\n\t});\n\n\t/** @internal Constrain a date to the min and max boundaries */\n\tconstrainDate(date: T): T {\n\t\tconst min = this.min();\n\t\tconst max = this.max();\n\n\t\t// If there is no min or max, return the date.\n\t\tif (!min && !max) {\n\t\t\treturn date;\n\t\t}\n\n\t\t// If there is a min and the date is before the min, return the min.\n\t\tif (min && this.dateAdapter.isBefore(date, this.dateAdapter.startOfDay(min))) {\n\t\t\treturn min;\n\t\t}\n\n\t\t// If there is a max and the date is after the max, return the max.\n\t\tif (max && this.dateAdapter.isAfter(date, this.dateAdapter.endOfDay(max))) {\n\t\t\treturn max;\n\t\t}\n\n\t\t// Return the date.\n\t\treturn date;\n\t}\n\n\t/** @internal Determine if a date is disabled */\n\tisDateDisabled(date: T): boolean {\n\t\t// if the calendar is disabled we can't select this date\n\t\tif (this.disabled()) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// if the date is outside the min and max range\n\t\tconst min = this.min();\n\t\tconst max = this.max();\n\n\t\tif (min && this.dateAdapter.isBefore(date, this.dateAdapter.startOfDay(min))) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (max && this.dateAdapter.isAfter(date, this.dateAdapter.endOfDay(max))) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// if this specific date is disabled\n\t\tconst disabledFn = this.dateDisabled();\n\n\t\tif (disabledFn(date)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tselectDate(date: T): void {\n\t\tthis.date.set(date);\n\t\tthis.state().focusedDate.set(date);\n\t}\n\n\t/** @internal Set the focused date */\n\tsetFocusedDate(date: T): void {\n\t\t// check if the date is disabled.\n\t\tif (this.isDateDisabled(date)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.state().focusedDate.set(date);\n\n\t\t// wait until the cells have all updated\n\t\tafterNextRender(\n\t\t\t{\n\t\t\t\twrite: () => {\n\t\t\t\t\t// focus the cell with the target date.\n\t\t\t\t\tconst cell = this.cells().find((c) => this.dateAdapter.isSameDay(c.date(), date));\n\n\t\t\t\t\tif (cell) {\n\t\t\t\t\t\tcell.focus();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this._injector,\n\t\t\t},\n\t\t);\n\n\t\t// we must update the view to ensure the focused cell is visible.\n\t\tthis._changeDetector.detectChanges();\n\t}\n}\n\nexport type Weekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n","export * from './lib/brn-calendar-cell-button.directive';\nexport * from './lib/brn-calendar-cell.directive';\nexport * from './lib/brn-calendar-grid.directive';\nexport * from './lib/brn-calendar-header.directive';\nexport * from './lib/brn-calendar-next-button.directive';\nexport * from './lib/brn-calendar-previous-button.directive';\nexport * from './lib/brn-calendar-week.directive';\nexport * from './lib/brn-calendar-weekday.directive';\nexport * from './lib/brn-calendar.directive';\nexport * from './lib/brn-calendar.token';\nexport * from './lib/i18n/calendar-i18n';\n\nimport { NgModule } from '@angular/core';\nimport { BrnCalendarCellButtonDirective } from './lib/brn-calendar-cell-button.directive';\nimport { BrnCalendarCellDirective } from './lib/brn-calendar-cell.directive';\nimport { BrnCalendarGridDirective } from './lib/brn-calendar-grid.directive';\nimport { BrnCalendarHeaderDirective } from './lib/brn-calendar-header.directive';\nimport { BrnCalendarNextButtonDirective } from './lib/brn-calendar-next-button.directive';\nimport { BrnCalendarPreviousButtonDirective } from './lib/brn-calendar-previous-button.directive';\nimport { BrnCalendarWeekDirective } from './lib/brn-calendar-week.directive';\nimport { BrnCalendarWeekdayDirective } from './lib/brn-calendar-weekday.directive';\nimport { BrnCalendarDirective } from './lib/brn-calendar.directive';\n\nexport const BrnCalendarImports = [\n\tBrnCalendarCellButtonDirective,\n\tBrnCalendarGridDirective,\n\tBrnCalendarHeaderDirective,\n\tBrnCalendarNextButtonDirective,\n\tBrnCalendarPreviousButtonDirective,\n\tBrnCalendarWeekDirective,\n\tBrnCalendarWeekdayDirective,\n\tBrnCalendarDirective,\n\tBrnCalendarCellDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnCalendarImports],\n\texports: [...BrnCalendarImports],\n})\nexport class BrnCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-checkbox.mjs","sources":["../../../../libs/brain/checkbox/src/lib/brn-checkbox.component.ts","../../../../libs/brain/checkbox/src/index.ts","../../../../libs/brain/checkbox/src/spartan-ng-brain-checkbox.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgStyle, isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tHostListener,\n\ttype OnDestroy,\n\tPLATFORM_ID,\n\tRenderer2,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\tinject,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/ui-forms-brain';\n\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnCheckboxComponent),\n\tmulti: true,\n};\n\nexport function indeterminateBooleanAttribute(value: unknown): boolean | 'indeterminate' {\n\tif (value === 'indeterminate') return 'indeterminate';\n\treturn booleanAttribute(value);\n}\n\nconst CONTAINER_POST_FIX = '-checkbox';\n\n@Component({\n\tselector: 'brn-checkbox',\n\tstandalone: true,\n\timports: [NgStyle],\n\ttemplate: `\n\t\t<input\n\t\t\t#checkBox\n\t\t\ttabindex=\"-1\"\n\t\t\ttype=\"checkbox\"\n\t\t\trole=\"checkbox\"\n\t\t\t[ngStyle]=\"{\n\t\t\t\tposition: 'absolute',\n\t\t\t\twidth: '1px',\n\t\t\t\theight: '1px',\n\t\t\t\tpadding: '0',\n\t\t\t\tmargin: '-1px',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tclip: 'rect(0, 0, 0, 0)',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tborderWidth: '0',\n\t\t\t}\"\n\t\t\t[id]=\"id() ?? ''\"\n\t\t\t[name]=\"name() ?? ''\"\n\t\t\t[value]=\"_value()\"\n\t\t\t[checked]=\"isChecked()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby()\"\n\t\t\t[attr.aria-required]=\"required() || null\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t/>\n\t\t<ng-content />\n\t`,\n\thost: {\n\t\t'[attr.tabindex]': 'state().disabled() ? \"-1\" : \"0\"',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-focus-visible]': 'focusVisible()',\n\t\t'[attr.data-focus]': 'focused()',\n\t\t'[attr.data-disabled]': 'state().disabled()',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.id]': 'hostId()',\n\t\t'[attr.name]': 'hostName()',\n\t},\n\tproviders: [BRN_CHECKBOX_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCheckboxComponent implements AfterContentInit, OnDestroy {\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n\tprivate readonly _focusVisible = signal(false);\n\tpublic readonly focusVisible = this._focusVisible.asReadonly();\n\tprivate readonly _focused = signal(false);\n\tpublic readonly focused = this._focused.asReadonly();\n\n\tpublic readonly checked = model<BrnCheckboxValue>(false);\n\tpublic readonly isChecked = this.checked.asReadonly();\n\n\tprotected readonly _dataState = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'indeterminate';\n\t\treturn checked ? 'checked' : 'unchecked';\n\t});\n\tprotected readonly _ariaChecked = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'mixed';\n\t\treturn checked ? 'true' : 'false';\n\t});\n\tprotected readonly _value = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return '';\n\t\treturn checked ? 'on' : 'off';\n\t});\n\n\t/** Used to set the id on the underlying input element. */\n\tpublic readonly id = input<string | null>(null);\n\tprotected readonly hostId = computed(() => (this.id() ? this.id() + CONTAINER_POST_FIX : null));\n\n\t/** Used to set the name attribute on the underlying input element. */\n\tpublic readonly name = input<string | null>(null);\n\tprotected readonly hostName = computed(() => (this.name() ? this.name() + CONTAINER_POST_FIX : null));\n\n\t/** Used to set the aria-label attribute on the underlying input element. */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying input element. */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\tpublic readonly required = input(false, { transform: booleanAttribute });\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tprotected readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected _onChange: ChangeFn<BrnCheckboxValue> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\tpublic readonly checkbox = viewChild.required<ElementRef<HTMLInputElement>>('checkBox');\n\n\tpublic readonly changed = output<BrnCheckboxValue>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst parent = this._renderer.parentNode(this._elementRef.nativeElement);\n\t\t\tif (!parent) return;\n\t\t\t// check if parent is a label and assume it is for this checkbox\n\t\t\tif (parent?.tagName === 'LABEL') {\n\t\t\t\tthis._renderer.setAttribute(parent, 'data-disabled', this.state().disabled() ? 'true' : 'false');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this._isBrowser) return;\n\n\t\t\tconst label = parent?.querySelector(`label[for=\"${this.id()}\"]`);\n\t\t\tif (!label) return;\n\t\t\tthis._renderer.setAttribute(label, 'data-disabled', this.state().disabled() ? 'true' : 'false');\n\t\t});\n\t}\n\n\t@HostListener('click', ['$event'])\n\t@HostListener('keyup.space', ['$event'])\n\t@HostListener('keyup.enter', ['$event'])\n\ttoggle(event: Event) {\n\t\tif (this.state().disabled()) return;\n\t\tevent.preventDefault();\n\t\tconst previousChecked = this.checked();\n\t\tthis.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);\n\t\tthis._onChange(!previousChecked);\n\t\tthis.changed.emit(!previousChecked);\n\t}\n\n\tngAfterContentInit() {\n\t\tthis._focusMonitor.monitor(this._elementRef, true).subscribe((focusOrigin) => {\n\t\t\tif (focusOrigin) this._focused.set(true);\n\t\t\tif (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n\t\t\t\tthis._focusVisible.set(true);\n\t\t\t}\n\t\t\tif (!focusOrigin) {\n\t\t\t\t// When a focused element becomes disabled, the browser *immediately* fires a blur event.\n\t\t\t\t// Angular does not expect events to be raised during change detection, so any state\n\t\t\t\t// change (such as a form control's ng-touched) will cause a changed-after-checked error.\n\t\t\t\t// See https://github.com/angular/angular/issues/17793. To work around this, we defer\n\t\t\t\t// telling the form control it has been touched until the next tick.\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tthis._focusVisible.set(false);\n\t\t\t\t\tthis._focused.set(false);\n\t\t\t\t\tthis._onTouched();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.checkbox().nativeElement.indeterminate = this.checked() === 'indeterminate';\n\t\tif (this.checkbox().nativeElement.indeterminate) {\n\t\t\tthis.checkbox().nativeElement.value = 'indeterminate';\n\t\t} else {\n\t\t\tthis.checkbox().nativeElement.value = this.checked() ? 'on' : 'off';\n\t\t}\n\t\tthis.checkbox().nativeElement.dispatchEvent(new Event('change'));\n\t}\n\n\tngOnDestroy() {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\twriteValue(value: BrnCheckboxValue): void {\n\t\tif (value === 'indeterminate') {\n\t\t\tthis.checked.set('indeterminate');\n\t\t} else {\n\t\t\tthis.checked.set(!!value);\n\t\t}\n\t}\n\n\tregisterOnChange(fn: ChangeFn<BrnCheckboxValue>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\t/** Implemented as a part of ControlValueAccessor. */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\t/**\n\t * If the space key is pressed, prevent the default action to stop the page from scrolling.\n\t */\n\t@HostListener('keydown.space', ['$event'])\n\tprotected preventScrolling(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\t}\n}\n\ntype BrnCheckboxValue = boolean | 'indeterminate';\n","import { NgModule } from '@angular/core';\n\nimport { BrnCheckboxComponent } from './lib/brn-checkbox.component';\n\nexport * from './lib/brn-checkbox.component';\n\nexport const BrnCheckboxImports = [BrnCheckboxComponent] as const;\n\n@NgModule({\n\timports: [...BrnCheckboxImports],\n\texports: [...BrnCheckboxImports],\n})\nexport class BrnCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-checkbox.mjs","sources":["../../../../libs/brain/checkbox/src/lib/brn-checkbox.component.ts","../../../../libs/brain/checkbox/src/index.ts","../../../../libs/brain/checkbox/src/spartan-ng-brain-checkbox.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgStyle, isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterContentInit,\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tHostListener,\n\ttype OnDestroy,\n\tPLATFORM_ID,\n\tRenderer2,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tforwardRef,\n\tinject,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\n\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnCheckboxComponent),\n\tmulti: true,\n};\n\nexport function indeterminateBooleanAttribute(value: unknown): boolean | 'indeterminate' {\n\tif (value === 'indeterminate') return 'indeterminate';\n\treturn booleanAttribute(value);\n}\n\nconst CONTAINER_POST_FIX = '-checkbox';\n\n@Component({\n\tselector: 'brn-checkbox',\n\tstandalone: true,\n\timports: [NgStyle],\n\ttemplate: `\n\t\t<input\n\t\t\t#checkBox\n\t\t\ttabindex=\"-1\"\n\t\t\ttype=\"checkbox\"\n\t\t\trole=\"checkbox\"\n\t\t\t[ngStyle]=\"{\n\t\t\t\tposition: 'absolute',\n\t\t\t\twidth: '1px',\n\t\t\t\theight: '1px',\n\t\t\t\tpadding: '0',\n\t\t\t\tmargin: '-1px',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tclip: 'rect(0, 0, 0, 0)',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tborderWidth: '0',\n\t\t\t}\"\n\t\t\t[id]=\"id() ?? ''\"\n\t\t\t[name]=\"name() ?? ''\"\n\t\t\t[value]=\"_value()\"\n\t\t\t[checked]=\"isChecked()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby()\"\n\t\t\t[attr.aria-required]=\"required() || null\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t/>\n\t\t<ng-content />\n\t`,\n\thost: {\n\t\t'[attr.tabindex]': 'state().disabled() ? \"-1\" : \"0\"',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-focus-visible]': 'focusVisible()',\n\t\t'[attr.data-focus]': 'focused()',\n\t\t'[attr.data-disabled]': 'state().disabled()',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.id]': 'hostId()',\n\t\t'[attr.name]': 'hostName()',\n\t},\n\tproviders: [BRN_CHECKBOX_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCheckboxComponent implements AfterContentInit, OnDestroy {\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n\tprivate readonly _focusVisible = signal(false);\n\tpublic readonly focusVisible = this._focusVisible.asReadonly();\n\tprivate readonly _focused = signal(false);\n\tpublic readonly focused = this._focused.asReadonly();\n\n\tpublic readonly checked = model<BrnCheckboxValue>(false);\n\tpublic readonly isChecked = this.checked.asReadonly();\n\n\tprotected readonly _dataState = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'indeterminate';\n\t\treturn checked ? 'checked' : 'unchecked';\n\t});\n\tprotected readonly _ariaChecked = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return 'mixed';\n\t\treturn checked ? 'true' : 'false';\n\t});\n\tprotected readonly _value = computed(() => {\n\t\tconst checked = this.checked();\n\t\tif (checked === 'indeterminate') return '';\n\t\treturn checked ? 'on' : 'off';\n\t});\n\n\t/** Used to set the id on the underlying input element. */\n\tpublic readonly id = input<string | null>(null);\n\tprotected readonly hostId = computed(() => (this.id() ? this.id() + CONTAINER_POST_FIX : null));\n\n\t/** Used to set the name attribute on the underlying input element. */\n\tpublic readonly name = input<string | null>(null);\n\tprotected readonly hostName = computed(() => (this.name() ? this.name() + CONTAINER_POST_FIX : null));\n\n\t/** Used to set the aria-label attribute on the underlying input element. */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/** Used to set the aria-labelledby attribute on the underlying input element. */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\tpublic readonly required = input(false, { transform: booleanAttribute });\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tprotected readonly state = computed(() => ({\n\t\tdisabled: signal(this.disabled()),\n\t}));\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected _onChange: ChangeFn<BrnCheckboxValue> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\tpublic readonly checkbox = viewChild.required<ElementRef<HTMLInputElement>>('checkBox');\n\n\tpublic readonly changed = output<BrnCheckboxValue>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst parent = this._renderer.parentNode(this._elementRef.nativeElement);\n\t\t\tif (!parent) return;\n\t\t\t// check if parent is a label and assume it is for this checkbox\n\t\t\tif (parent?.tagName === 'LABEL') {\n\t\t\t\tthis._renderer.setAttribute(parent, 'data-disabled', this.state().disabled() ? 'true' : 'false');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this._isBrowser) return;\n\n\t\t\tconst label = parent?.querySelector(`label[for=\"${this.id()}\"]`);\n\t\t\tif (!label) return;\n\t\t\tthis._renderer.setAttribute(label, 'data-disabled', this.state().disabled() ? 'true' : 'false');\n\t\t});\n\t}\n\n\t@HostListener('click', ['$event'])\n\t@HostListener('keyup.space', ['$event'])\n\t@HostListener('keyup.enter', ['$event'])\n\ttoggle(event: Event) {\n\t\tif (this.state().disabled()) return;\n\t\tevent.preventDefault();\n\t\tconst previousChecked = this.checked();\n\t\tthis.checked.set(previousChecked === 'indeterminate' ? true : !previousChecked);\n\t\tthis._onChange(!previousChecked);\n\t\tthis.changed.emit(!previousChecked);\n\t}\n\n\tngAfterContentInit() {\n\t\tthis._focusMonitor.monitor(this._elementRef, true).subscribe((focusOrigin) => {\n\t\t\tif (focusOrigin) this._focused.set(true);\n\t\t\tif (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n\t\t\t\tthis._focusVisible.set(true);\n\t\t\t}\n\t\t\tif (!focusOrigin) {\n\t\t\t\t// When a focused element becomes disabled, the browser *immediately* fires a blur event.\n\t\t\t\t// Angular does not expect events to be raised during change detection, so any state\n\t\t\t\t// change (such as a form control's ng-touched) will cause a changed-after-checked error.\n\t\t\t\t// See https://github.com/angular/angular/issues/17793. To work around this, we defer\n\t\t\t\t// telling the form control it has been touched until the next tick.\n\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\tthis._focusVisible.set(false);\n\t\t\t\t\tthis._focused.set(false);\n\t\t\t\t\tthis._onTouched();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.checkbox().nativeElement.indeterminate = this.checked() === 'indeterminate';\n\t\tif (this.checkbox().nativeElement.indeterminate) {\n\t\t\tthis.checkbox().nativeElement.value = 'indeterminate';\n\t\t} else {\n\t\t\tthis.checkbox().nativeElement.value = this.checked() ? 'on' : 'off';\n\t\t}\n\t\tthis.checkbox().nativeElement.dispatchEvent(new Event('change'));\n\t}\n\n\tngOnDestroy() {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\twriteValue(value: BrnCheckboxValue): void {\n\t\tif (value === 'indeterminate') {\n\t\t\tthis.checked.set('indeterminate');\n\t\t} else {\n\t\t\tthis.checked.set(!!value);\n\t\t}\n\t}\n\n\tregisterOnChange(fn: ChangeFn<BrnCheckboxValue>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\t/** Implemented as a part of ControlValueAccessor. */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.state().disabled.set(isDisabled);\n\t}\n\n\t/**\n\t * If the space key is pressed, prevent the default action to stop the page from scrolling.\n\t */\n\t@HostListener('keydown.space', ['$event'])\n\tprotected preventScrolling(event: KeyboardEvent): void {\n\t\tevent.preventDefault();\n\t}\n}\n\ntype BrnCheckboxValue = boolean | 'indeterminate';\n","import { NgModule } from '@angular/core';\n\nimport { BrnCheckboxComponent } from './lib/brn-checkbox.component';\n\nexport * from './lib/brn-checkbox.component';\n\nexport const BrnCheckboxImports = [BrnCheckboxComponent] as const;\n\n@NgModule({\n\timports: [...BrnCheckboxImports],\n\texports: [...BrnCheckboxImports],\n})\nexport class BrnCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AA0Ba,MAAA,2BAA2B,GAAG;AAC1C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE,IAAI;;AAGN,SAAU,6BAA6B,CAAC,KAAc,EAAA;IAC3D,IAAI,KAAK,KAAK,eAAe;AAAE,QAAA,OAAO,eAAe;AACrD,IAAA,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC/B;AAEA,MAAM,kBAAkB,GAAG,WAAW;MAoDzB,oBAAoB,CAAA;AACf,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;IACpC,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEnD,IAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9B,IAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAC7C,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,IAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAEpC,IAAA,OAAO,GAAG,KAAK,CAAmB,KAAK,CAAC;AACxC,IAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAElC,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,eAAe;AAAE,YAAA,OAAO,eAAe;QACvD,OAAO,OAAO,GAAG,SAAS,GAAG,WAAW;AACzC,KAAC,CAAC;AACiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,eAAe;AAAE,YAAA,OAAO,OAAO;QAC/C,OAAO,OAAO,GAAG,MAAM,GAAG,OAAO;AAClC,KAAC,CAAC;AACiB,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,KAAK,eAAe;AAAE,YAAA,OAAO,EAAE;QAC1C,OAAO,OAAO,GAAG,IAAI,GAAG,KAAK;AAC9B,KAAC,CAAC;;AAGc,IAAA,EAAE,GAAG,KAAK,CAAgB,IAAI,CAAC;IAC5B,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAAC;;AAG/E,IAAA,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC;IAC9B,QAAQ,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,kBAAkB,GAAG,IAAI,CAAC,CAAC;;IAGrF,SAAS,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;;IAG/D,cAAc,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAEzE,eAAe,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAE3E,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAExD,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAErD,IAAA,KAAK,GAAG,QAAQ,CAAC,OAAO;AAC1C,QAAA,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjC,KAAA,CAAC,CAAC;;AAGO,IAAA,SAAS,GAA+B,MAAK,GAAG;;AAElD,IAAA,UAAU,GAAY,MAAK,GAAG;AAEtB,IAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAA+B,UAAU,CAAC;IAEvE,OAAO,GAAG,MAAM,EAAoB;AAEpD,IAAA,WAAA,GAAA;QACC,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACxE,YAAA,IAAI,CAAC,MAAM;gBAAE;;AAEb,YAAA,IAAI,MAAM,EAAE,OAAO,KAAK,OAAO,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC;gBAChG;;YAED,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE;AAEtB,YAAA,MAAM,KAAK,GAAG,MAAM,EAAE,aAAa,CAAC,CAAc,WAAA,EAAA,IAAI,CAAC,EAAE,EAAE,CAAA,EAAA,CAAI,CAAC;AAChE,YAAA,IAAI,CAAC,KAAK;gBAAE;YACZ,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC;AAChG,SAAC,CAAC;;AAMH,IAAA,MAAM,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;YAAE;QAC7B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC/E,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC;;IAGpC,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;AAC5E,YAAA,IAAI,WAAW;AAAE,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACxC,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,SAAS,EAAE;AAC5D,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;;YAE7B,IAAI,CAAC,WAAW,EAAE;;;;;;AAMjB,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAC3B,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;oBACxB,IAAI,CAAC,UAAU,EAAE;AAClB,iBAAC,CAAC;;AAEJ,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,eAAe;QAChF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,eAAe;;aAC/C;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,KAAK;;AAEpE,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;;IAGjE,WAAW,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGpD,IAAA,UAAU,CAAC,KAAuB,EAAA;AACjC,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;;aAC3B;YACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;;;AAI3B,IAAA,gBAAgB,CAAC,EAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;;AAIrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;;AAGtC;;AAEG;AAEO,IAAA,gBAAgB,CAAC,KAAoB,EAAA;QAC9C,KAAK,CAAC,cAAc,EAAE;;0HAvJX,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAJrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,qCAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,2BAA2B,CAAC,EA1C9B,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA9BS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA+CL,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlDhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,CAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACL,wBAAA,iBAAiB,EAAE,iCAAiC;AACpD,wBAAA,mBAAmB,EAAE,cAAc;AACnC,wBAAA,2BAA2B,EAAE,gBAAgB;AAC7C,wBAAA,mBAAmB,EAAE,WAAW;AAChC,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,yBAAyB,EAAE,MAAM;AACjC,wBAAA,WAAW,EAAE,UAAU;AACvB,wBAAA,aAAa,EAAE,YAAY;AAC3B,qBAAA;oBACD,SAAS,EAAE,CAAC,2BAA2B,CAAC;oBACxC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,iBAAA;wDAoFA,MAAM,EAAA,CAAA;sBAHL,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAChC,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;;sBACtC,YAAY;uBAAC,aAAa,EAAE,CAAC,QAAQ,CAAC;gBAoE7B,gBAAgB,EAAA,CAAA;sBADzB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;ACxO7B,MAAA,kBAAkB,GAAG,CAAC,oBAAoB;MAM1C,iBAAiB,CAAA;0HAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;2HAAjB,iBAAiB,EAAA,OAAA,EAAA,CANK,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAApB,oBAAoB,CAAA,EAAA,CAAA;2HAM1C,iBAAiB,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC;AAChC,oBAAA,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC;AAChC,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -0,0 +1,152 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, input, booleanAttribute, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, inject, ElementRef, effect, Directive, NgModule } from '@angular/core';
3
+
4
+ let collapsibleContentIdSequence = 0;
5
+ class BrnCollapsibleComponent {
6
+ state = signal('closed');
7
+ contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);
8
+ disabled = input(false, { transform: booleanAttribute });
9
+ attrDisabled = computed(() => (this.disabled() ? true : undefined));
10
+ toggle() {
11
+ this.state.set(this.state() === 'closed' ? 'open' : 'closed');
12
+ }
13
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnCollapsibleComponent, isStandalone: true, selector: "brn-collapsible", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "state()", "attr.disabled": "attrDisabled()" } }, ngImport: i0, template: `
15
+ <ng-content />
16
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleComponent, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'brn-collapsible',
22
+ standalone: true,
23
+ host: {
24
+ '[attr.data-state]': 'state()',
25
+ '[attr.disabled]': 'attrDisabled()',
26
+ },
27
+ template: `
28
+ <ng-content />
29
+ `,
30
+ changeDetection: ChangeDetectionStrategy.OnPush,
31
+ encapsulation: ViewEncapsulation.None,
32
+ }]
33
+ }] });
34
+
35
+ class BrnCollapsibleContentComponent {
36
+ _collapsible = inject(BrnCollapsibleComponent, { optional: true });
37
+ _elementRef = inject(ElementRef);
38
+ _height = signal(0);
39
+ _width = signal(0);
40
+ contentId = computed(() => this._collapsible?.contentId());
41
+ state = computed(() => this._collapsible?.state?.() ?? 'closed');
42
+ computedStyles = computed(() => {
43
+ const height = this._height();
44
+ const width = this._width();
45
+ return {
46
+ '--radix-collapsible-content-height': height ? `${height}px` : undefined,
47
+ '--radix-collapsible-content-width': width ? `${width}px` : undefined,
48
+ };
49
+ });
50
+ id = input();
51
+ constructor() {
52
+ if (!this._collapsible) {
53
+ throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');
54
+ }
55
+ effect(() => {
56
+ const id = this.id();
57
+ if (!id || !this._collapsible)
58
+ return;
59
+ this._collapsible.contentId.set(id);
60
+ }, { allowSignalWrites: true });
61
+ }
62
+ ngAfterContentInit() {
63
+ if (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function')
64
+ return;
65
+ const rect = this._elementRef.nativeElement.getBoundingClientRect();
66
+ if (!rect)
67
+ return;
68
+ this._width.set(rect.width);
69
+ this._height.set(rect.height);
70
+ }
71
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
72
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnCollapsibleContentComponent, isStandalone: true, selector: "brn-collapsible-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "state() === \"closed\"", "attr.data-state": "state()", "style": "computedStyles()", "id": "contentId()" } }, ngImport: i0, template: `
73
+ <ng-content />
74
+ `, isInline: true });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleContentComponent, decorators: [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'brn-collapsible-content',
80
+ standalone: true,
81
+ host: {
82
+ '[hidden]': 'state() === "closed"',
83
+ '[attr.data-state]': 'state()',
84
+ '[style]': 'computedStyles()',
85
+ '[id]': 'contentId()',
86
+ },
87
+ template: `
88
+ <ng-content />
89
+ `,
90
+ }]
91
+ }], ctorParameters: () => [] });
92
+
93
+ class BrnCollapsibleTriggerDirective {
94
+ _collapsible = inject(BrnCollapsibleComponent, { optional: true });
95
+ state = computed(() => this._collapsible?.state());
96
+ disabled = computed(() => this._collapsible?.disabled?.());
97
+ attrDisabled = computed(() => this._collapsible?.attrDisabled?.());
98
+ ariaControls = computed(() => this._collapsible?.contentId());
99
+ constructor() {
100
+ if (!this._collapsible) {
101
+ throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');
102
+ }
103
+ }
104
+ toggleCollapsible() {
105
+ this._collapsible?.toggle();
106
+ }
107
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
108
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnCollapsibleTriggerDirective, isStandalone: true, selector: "button[brnCollapsibleTrigger]", host: { listeners: { "click": "toggleCollapsible()" }, properties: { "attr.data-state": "state()", "attr.disabled": "attrDisabled()", "attr.aria-expanded": "state() === \"open\"", "attr.aria-controls": "ariaControls()" } }, ngImport: i0 });
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleTriggerDirective, decorators: [{
111
+ type: Directive,
112
+ args: [{
113
+ selector: 'button[brnCollapsibleTrigger]',
114
+ standalone: true,
115
+ host: {
116
+ '[attr.data-state]': 'state()',
117
+ '[attr.disabled]': 'attrDisabled()',
118
+ '[attr.aria-expanded]': 'state() === "open"',
119
+ '[attr.aria-controls]': 'ariaControls()',
120
+ '(click)': 'toggleCollapsible()',
121
+ },
122
+ }]
123
+ }], ctorParameters: () => [] });
124
+
125
+ const BrnCollapsibleImports = [
126
+ BrnCollapsibleComponent,
127
+ BrnCollapsibleTriggerDirective,
128
+ BrnCollapsibleContentComponent,
129
+ ];
130
+ class BrnCollapsibleModule {
131
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleModule, imports: [BrnCollapsibleComponent,
133
+ BrnCollapsibleTriggerDirective,
134
+ BrnCollapsibleContentComponent], exports: [BrnCollapsibleComponent,
135
+ BrnCollapsibleTriggerDirective,
136
+ BrnCollapsibleContentComponent] });
137
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleModule });
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnCollapsibleModule, decorators: [{
140
+ type: NgModule,
141
+ args: [{
142
+ imports: [...BrnCollapsibleImports],
143
+ exports: [...BrnCollapsibleImports],
144
+ }]
145
+ }] });
146
+
147
+ /**
148
+ * Generated bundle index. Do not edit.
149
+ */
150
+
151
+ export { BrnCollapsibleComponent, BrnCollapsibleContentComponent, BrnCollapsibleImports, BrnCollapsibleModule, BrnCollapsibleTriggerDirective };
152
+ //# sourceMappingURL=spartan-ng-brain-collapsible.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.directive.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCollapsibleComponent {\n\tpublic readonly state = signal<BrnCollapsibleState>('closed');\n\n\tpublic readonly contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tpublic readonly attrDisabled = computed(() => (this.disabled() ? true : undefined));\n\n\tpublic toggle() {\n\t\tthis.state.set(this.state() === 'closed' ? 'open' : 'closed');\n\t}\n}\n","import { type AfterContentInit, Component, ElementRef, computed, effect, inject, input, signal } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\tstandalone: true,\n\thost: {\n\t\t'[hidden]': 'state() === \"closed\"',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[style]': 'computedStyles()',\n\t\t'[id]': 'contentId()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnCollapsibleContentComponent implements AfterContentInit {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tprivate readonly _height = signal(0);\n\n\tprivate readonly _width = signal(0);\n\n\tpublic readonly contentId = computed(() => this._collapsible?.contentId());\n\n\tpublic readonly state = computed(() => this._collapsible?.state?.() ?? 'closed');\n\n\tpublic readonly computedStyles = computed(() => {\n\t\tconst height = this._height();\n\t\tconst width = this._width();\n\t\treturn {\n\t\t\t'--radix-collapsible-content-height': height ? `${height}px` : undefined,\n\t\t\t'--radix-collapsible-content-width': width ? `${width}px` : undefined,\n\t\t};\n\t});\n\n\tpublic readonly id = input<string | null | undefined>();\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst id = this.id();\n\t\t\t\tif (!id || !this._collapsible) return;\n\t\t\t\tthis._collapsible.contentId.set(id);\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\t}\n\n\tngAfterContentInit() {\n\t\tif (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function') return;\n\t\tconst rect = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tif (!rect) return;\n\t\tthis._width.set(rect.width);\n\t\tthis._height.set(rect.height);\n\t}\n}\n","import { Directive, computed, inject } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls()',\n\t\t'(click)': 'toggleCollapsible()',\n\t},\n})\nexport class BrnCollapsibleTriggerDirective {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tpublic readonly state = computed(() => this._collapsible?.state());\n\n\tpublic readonly disabled = computed(() => this._collapsible?.disabled?.());\n\n\tpublic readonly attrDisabled = computed(() => this._collapsible?.attrDisabled?.());\n\n\tpublic readonly ariaControls = computed(() => this._collapsible?.contentId());\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggleCollapsible() {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnCollapsibleContentComponent } from './lib/brn-collapsible-content.component';\nimport { BrnCollapsibleTriggerDirective } from './lib/brn-collapsible-trigger.directive';\nimport { BrnCollapsibleComponent } from './lib/brn-collapsible.component';\n\nexport * from './lib/brn-collapsible-content.component';\nexport * from './lib/brn-collapsible-trigger.directive';\nexport * from './lib/brn-collapsible.component';\n\nexport const BrnCollapsibleImports = [\n\tBrnCollapsibleComponent,\n\tBrnCollapsibleTriggerDirective,\n\tBrnCollapsibleContentComponent,\n] as const;\n\n@NgModule({\n\timports: [...BrnCollapsibleImports],\n\texports: [...BrnCollapsibleImports],\n})\nexport class BrnCollapsibleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}