@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,108 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Component, input, numberAttribute, computed, NgModule } from '@angular/core';
3
+
4
+ const BrnProgressToken = new InjectionToken('BrnProgressComponent');
5
+ function provideBrnProgress(progress) {
6
+ return { provide: BrnProgressToken, useExisting: progress };
7
+ }
8
+ function injectBrnProgress() {
9
+ return inject(BrnProgressToken);
10
+ }
11
+
12
+ class BrnProgressIndicatorComponent {
13
+ progress = injectBrnProgress();
14
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: BrnProgressIndicatorComponent, isStandalone: true, selector: "brn-progress-indicator", host: { properties: { "attr.data-state": "progress.state()", "attr.data-value": "progress.value()", "attr.data-max": "progress.max()" } }, ngImport: i0, template: '', isInline: true });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressIndicatorComponent, decorators: [{
18
+ type: Component,
19
+ args: [{
20
+ selector: 'brn-progress-indicator',
21
+ standalone: true,
22
+ template: '',
23
+ host: {
24
+ '[attr.data-state]': 'progress.state()',
25
+ '[attr.data-value]': 'progress.value()',
26
+ '[attr.data-max]': 'progress.max()',
27
+ },
28
+ }]
29
+ }] });
30
+
31
+ class BrnProgressComponent {
32
+ value = input(undefined, {
33
+ transform: (value) => (value === undefined || value === null ? undefined : Number(value)),
34
+ });
35
+ max = input(100, { transform: numberAttribute });
36
+ getValueLabel = input((value, max) => `${Math.round((value / max) * 100)}%`);
37
+ label = computed(() => {
38
+ const value = this.value();
39
+ return value === null || value === undefined ? undefined : this.getValueLabel()(value, this.max());
40
+ });
41
+ state = computed(() => {
42
+ const value = this.value();
43
+ const max = this.max();
44
+ return value === null || value === undefined ? 'indeterminate' : value === max ? 'complete' : 'loading';
45
+ });
46
+ ngOnChanges(changes) {
47
+ if ('value' in changes || 'max' in changes) {
48
+ this.validate();
49
+ }
50
+ }
51
+ validate() {
52
+ // validate that the value is within the bounds of the max
53
+ const value = this.value();
54
+ const max = this.max();
55
+ if (value === null || value === undefined) {
56
+ return;
57
+ }
58
+ if (value > max || value < 0) {
59
+ throw Error('Value must be 0 or greater and less or equal to max');
60
+ }
61
+ if (max < 0) {
62
+ throw Error('max must be greater than 0');
63
+ }
64
+ }
65
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: BrnProgressComponent, isStandalone: true, selector: "brn-progress", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, getValueLabel: { classPropertyName: "getValueLabel", publicName: "getValueLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "attr.aria-valuemax": "max()", "attr.aria-valuemin": "0", "attr.aria-valuenow": "value()", "attr.aria-valuetext": "label()", "attr.data-state": "state()", "attr.data-value": "value()", "attr.data-max": "max()" } }, providers: [provideBrnProgress(BrnProgressComponent)], exportAs: ["brnProgress"], usesOnChanges: true, ngImport: i0, template: '<ng-content/>', isInline: true });
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressComponent, decorators: [{
69
+ type: Component,
70
+ args: [{
71
+ selector: 'brn-progress',
72
+ standalone: true,
73
+ template: '<ng-content/>',
74
+ exportAs: 'brnProgress',
75
+ providers: [provideBrnProgress(BrnProgressComponent)],
76
+ host: {
77
+ role: 'progressbar',
78
+ '[attr.aria-valuemax]': 'max()',
79
+ '[attr.aria-valuemin]': '0',
80
+ '[attr.aria-valuenow]': 'value()',
81
+ '[attr.aria-valuetext]': 'label()',
82
+ '[attr.data-state]': 'state()',
83
+ '[attr.data-value]': 'value()',
84
+ '[attr.data-max]': 'max()',
85
+ },
86
+ }]
87
+ }] });
88
+
89
+ const BrnProgressImports = [BrnProgressComponent, BrnProgressIndicatorComponent];
90
+ class BrnProgressModule {
91
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
92
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressModule, imports: [BrnProgressComponent, BrnProgressIndicatorComponent], exports: [BrnProgressComponent, BrnProgressIndicatorComponent] });
93
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressModule });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnProgressModule, decorators: [{
96
+ type: NgModule,
97
+ args: [{
98
+ imports: [...BrnProgressImports],
99
+ exports: [...BrnProgressImports],
100
+ }]
101
+ }] });
102
+
103
+ /**
104
+ * Generated bundle index. Do not edit.
105
+ */
106
+
107
+ export { BrnProgressComponent, BrnProgressImports, BrnProgressIndicatorComponent, BrnProgressModule, injectBrnProgress };
108
+ //# sourceMappingURL=spartan-ng-brain-progress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spartan-ng-brain-progress.mjs","sources":["../../../../libs/brain/progress/src/lib/brn-progress.token.ts","../../../../libs/brain/progress/src/lib/brn-progress-indicator.component.ts","../../../../libs/brain/progress/src/lib/brn-progress.component.ts","../../../../libs/brain/progress/src/index.ts","../../../../libs/brain/progress/src/spartan-ng-brain-progress.ts"],"sourcesContent":["import { ExistingProvider, InjectionToken, Type, inject } from '@angular/core';\nimport type { BrnProgressComponent } from './brn-progress.component';\n\nconst BrnProgressToken = new InjectionToken<BrnProgressComponent>('BrnProgressComponent');\n\nexport function provideBrnProgress(progress: Type<BrnProgressComponent>): ExistingProvider {\n\treturn { provide: BrnProgressToken, useExisting: progress };\n}\n\nexport function injectBrnProgress(): BrnProgressComponent {\n\treturn inject(BrnProgressToken);\n}\n","import { Component } from '@angular/core';\nimport { injectBrnProgress } from './brn-progress.token';\n\n@Component({\n\tselector: 'brn-progress-indicator',\n\tstandalone: true,\n\ttemplate: '',\n\thost: {\n\t\t'[attr.data-state]': 'progress.state()',\n\t\t'[attr.data-value]': 'progress.value()',\n\t\t'[attr.data-max]': 'progress.max()',\n\t},\n})\nexport class BrnProgressIndicatorComponent {\n\tprotected readonly progress = injectBrnProgress();\n}\n","import { type NumberInput } from '@angular/cdk/coercion';\nimport { Component, OnChanges, SimpleChanges, computed, input, numberAttribute } from '@angular/core';\nimport { provideBrnProgress } from './brn-progress.token';\n\n@Component({\n\tselector: 'brn-progress',\n\tstandalone: true,\n\ttemplate: '<ng-content/>',\n\texportAs: 'brnProgress',\n\tproviders: [provideBrnProgress(BrnProgressComponent)],\n\thost: {\n\t\trole: 'progressbar',\n\t\t'[attr.aria-valuemax]': 'max()',\n\t\t'[attr.aria-valuemin]': '0',\n\t\t'[attr.aria-valuenow]': 'value()',\n\t\t'[attr.aria-valuetext]': 'label()',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.data-value]': 'value()',\n\t\t'[attr.data-max]': 'max()',\n\t},\n})\nexport class BrnProgressComponent implements OnChanges {\n\tpublic readonly value = input<number | null | undefined, NumberInput>(undefined, {\n\t\ttransform: (value) => (value === undefined || value === null ? undefined : Number(value)),\n\t});\n\tpublic readonly max = input<number, NumberInput>(100, { transform: numberAttribute });\n\tpublic readonly getValueLabel = input<BrnProgressLabelFn>((value, max) => `${Math.round((value / max) * 100)}%`);\n\tprotected readonly label = computed(() => {\n\t\tconst value = this.value();\n\t\treturn value === null || value === undefined ? undefined : this.getValueLabel()(value, this.max());\n\t});\n\n\tprotected readonly state = computed(() => {\n\t\tconst value = this.value();\n\t\tconst max = this.max();\n\n\t\treturn value === null || value === undefined ? 'indeterminate' : value === max ? 'complete' : 'loading';\n\t});\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif ('value' in changes || 'max' in changes) {\n\t\t\tthis.validate();\n\t\t}\n\t}\n\n\tprivate validate(): void {\n\t\t// validate that the value is within the bounds of the max\n\t\tconst value = this.value();\n\t\tconst max = this.max();\n\n\t\tif (value === null || value === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (value > max || value < 0) {\n\t\t\tthrow Error('Value must be 0 or greater and less or equal to max');\n\t\t}\n\n\t\tif (max < 0) {\n\t\t\tthrow Error('max must be greater than 0');\n\t\t}\n\t}\n}\n\nexport type BrnProgressLabelFn = (value: number, max: number) => string;\n","import { NgModule } from '@angular/core';\n\nimport { BrnProgressIndicatorComponent } from './lib/brn-progress-indicator.component';\nimport { BrnProgressComponent } from './lib/brn-progress.component';\nexport { injectBrnProgress } from './lib/brn-progress.token';\n\nexport * from './lib/brn-progress-indicator.component';\nexport * from './lib/brn-progress.component';\n\nexport const BrnProgressImports = [BrnProgressComponent, BrnProgressIndicatorComponent] as const;\n\n@NgModule({\n\timports: [...BrnProgressImports],\n\texports: [...BrnProgressImports],\n})\nexport class BrnProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,299 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, input, booleanAttribute, computed, output, viewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, model, signal, contentChildren, NgModule } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { FocusMonitor } from '@angular/cdk/a11y';
5
+
6
+ const BrnRadioGroupToken = new InjectionToken('BrnRadioGroupToken');
7
+ function provideBrnRadioGroupToken(component) {
8
+ return { provide: BrnRadioGroupToken, useExisting: component };
9
+ }
10
+ function injectBrnRadioGroup() {
11
+ return inject(BrnRadioGroupToken);
12
+ }
13
+
14
+ class BrnRadioChange {
15
+ source;
16
+ value;
17
+ constructor(source, value) {
18
+ this.source = source;
19
+ this.value = value;
20
+ }
21
+ }
22
+ class BrnRadioComponent {
23
+ static _nextUniqueId = 0;
24
+ _focusMonitor = inject(FocusMonitor);
25
+ _elementRef = inject(ElementRef);
26
+ radioGroup = injectBrnRadioGroup();
27
+ /**
28
+ * Whether the radio button is disabled.
29
+ */
30
+ disabled = input(false, {
31
+ transform: booleanAttribute,
32
+ alias: 'disabled',
33
+ });
34
+ /**
35
+ * Whether the radio button is disabled or the radio group is disabled.
36
+ */
37
+ disabledState = computed(() => this.disabled() || (this.radioGroup && this.radioGroup.disabled()));
38
+ /**
39
+ * Whether the radio button is checked.
40
+ */
41
+ checked = computed(() => this.radioGroup.value() === this.value());
42
+ tabIndex = computed(() => {
43
+ const disabled = this.disabledState();
44
+ const checked = this.checked();
45
+ const hasSelectedRadio = this.radioGroup.value() !== undefined;
46
+ const isFirstRadio = this.radioGroup.radioButtons()[0] === this;
47
+ if (disabled || (!checked && (hasSelectedRadio || !isFirstRadio))) {
48
+ return -1;
49
+ }
50
+ return 0;
51
+ });
52
+ /**
53
+ * The unique ID for the radio button input. If none is supplied, it will be auto-generated.
54
+ */
55
+ id = input(`brn-radio-${++BrnRadioComponent._nextUniqueId}`);
56
+ ariaLabel = input(undefined, { alias: 'aria-label' });
57
+ ariaLabelledby = input(undefined, { alias: 'aria-labelledby' });
58
+ ariaDescribedby = input(undefined, { alias: 'aria-describedby' });
59
+ /**
60
+ * The value this radio button represents.
61
+ */
62
+ value = input.required();
63
+ /**
64
+ * Whether the radio button is required.
65
+ */
66
+ required = input(false, {
67
+ transform: booleanAttribute,
68
+ });
69
+ /**
70
+ * Event emitted when the checked state of this radio button changes.
71
+ */
72
+ change = output();
73
+ inputId = computed(() => `${this.id()}-input`);
74
+ inputElement = viewChild.required('input');
75
+ constructor() {
76
+ this._focusMonitor.monitor(this._elementRef, true);
77
+ }
78
+ ngOnDestroy() {
79
+ this._focusMonitor.stopMonitoring(this._elementRef);
80
+ }
81
+ /** Dispatch change event with current value. */
82
+ emitChangeEvent() {
83
+ this.change.emit(new BrnRadioChange(this, this.value()));
84
+ }
85
+ onInputClick(event) {
86
+ // We have to stop propagation for click events on the visual hidden input element.
87
+ // By default, when a user clicks on a label element, a generated click event will be
88
+ // dispatched on the associated input element. Since we are using a label element as our
89
+ // root container, the click event on the `radio-button` will be executed twice.
90
+ // The real click event will bubble up, and the generated click event also tries to bubble up.
91
+ // This will lead to multiple click events.
92
+ // Preventing bubbling for the second event will solve that issue.
93
+ event.stopPropagation();
94
+ }
95
+ onInputInteraction(event) {
96
+ // We always have to stop propagation on the change event.
97
+ // Otherwise the change event, from the input element, will bubble up and
98
+ // emit its event object to the `change` output.
99
+ event.stopPropagation();
100
+ if (!this.checked() && !this.disabledState()) {
101
+ this.emitChangeEvent();
102
+ this.radioGroup.select(this, this.value());
103
+ }
104
+ }
105
+ /** Triggered when the user clicks on the touch target. */
106
+ onTouchTargetClick(event) {
107
+ this.onInputInteraction(event);
108
+ if (!this.disabledState()) {
109
+ // Normally the input should be focused already, but if the click
110
+ // comes from the touch target, then we might have to focus it ourselves.
111
+ this.inputElement().nativeElement.focus();
112
+ }
113
+ }
114
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioComponent, isStandalone: true, selector: "brn-radio", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "focus": "inputElement().nativeElement.focus()" }, properties: { "attr.id": "id()", "class.brn-radio-checked": "checked()", "class.brn-radio-disabled": "disabledState()", "attr.data-checked": "checked()", "attr.data-disabled": "disabledState()", "attr.data-value": "value()", "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "brn-radio" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], exportAs: ["brnRadio"], ngImport: i0, template: `
116
+ <div style="display: flex; height: fit-content; width: fit-content" (click)="onTouchTargetClick($event)">
117
+ <ng-content select="[target],[indicator]" />
118
+ </div>
119
+ <input
120
+ #input
121
+ style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;"
122
+ type="radio"
123
+ [id]="inputId()"
124
+ [checked]="checked()"
125
+ [disabled]="disabledState()"
126
+ [tabIndex]="tabIndex()"
127
+ [attr.name]="radioGroup.name()"
128
+ [attr.value]="value()"
129
+ [required]="required()"
130
+ [attr.aria-label]="ariaLabel()"
131
+ [attr.aria-labelledby]="ariaLabelledby()"
132
+ [attr.aria-describedby]="ariaDescribedby()"
133
+ (change)="onInputInteraction($event)"
134
+ (click)="onInputClick($event)"
135
+ />
136
+ <label style="display: flex; height: fit-content; width: fit-content" [for]="inputId()">
137
+ <ng-content />
138
+ </label>
139
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
140
+ }
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioComponent, decorators: [{
142
+ type: Component,
143
+ args: [{
144
+ selector: 'brn-radio',
145
+ standalone: true,
146
+ host: {
147
+ class: 'brn-radio',
148
+ '[attr.id]': 'id()',
149
+ '[class.brn-radio-checked]': 'checked()',
150
+ '[class.brn-radio-disabled]': 'disabledState()',
151
+ '[attr.data-checked]': 'checked()',
152
+ '[attr.data-disabled]': 'disabledState()',
153
+ '[attr.data-value]': 'value()',
154
+ // Needs to be removed since it causes some a11y issues (see #21266).
155
+ '[attr.tabindex]': 'null',
156
+ '[attr.aria-label]': 'null',
157
+ '[attr.aria-labelledby]': 'null',
158
+ '[attr.aria-describedby]': 'null',
159
+ // Note: under normal conditions focus shouldn't land on this element, however it may be
160
+ // programmatically set, for example inside of a focus trap, in this case we want to forward
161
+ // the focus to the native element.
162
+ '(focus)': 'inputElement().nativeElement.focus()',
163
+ },
164
+ exportAs: 'brnRadio',
165
+ encapsulation: ViewEncapsulation.None,
166
+ changeDetection: ChangeDetectionStrategy.OnPush,
167
+ template: `
168
+ <div style="display: flex; height: fit-content; width: fit-content" (click)="onTouchTargetClick($event)">
169
+ <ng-content select="[target],[indicator]" />
170
+ </div>
171
+ <input
172
+ #input
173
+ style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;"
174
+ type="radio"
175
+ [id]="inputId()"
176
+ [checked]="checked()"
177
+ [disabled]="disabledState()"
178
+ [tabIndex]="tabIndex()"
179
+ [attr.name]="radioGroup.name()"
180
+ [attr.value]="value()"
181
+ [required]="required()"
182
+ [attr.aria-label]="ariaLabel()"
183
+ [attr.aria-labelledby]="ariaLabelledby()"
184
+ [attr.aria-describedby]="ariaDescribedby()"
185
+ (change)="onInputInteraction($event)"
186
+ (click)="onInputClick($event)"
187
+ />
188
+ <label style="display: flex; height: fit-content; width: fit-content" [for]="inputId()">
189
+ <ng-content />
190
+ </label>
191
+ `,
192
+ }]
193
+ }], ctorParameters: () => [] });
194
+
195
+ const BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {
196
+ provide: NG_VALUE_ACCESSOR,
197
+ useExisting: forwardRef(() => BrnRadioGroupComponent),
198
+ multi: true,
199
+ };
200
+ class BrnRadioGroupComponent {
201
+ static _nextUniqueId = 0;
202
+ onChange = () => { };
203
+ onTouched = () => { };
204
+ name = input(`brn-radio-group-${BrnRadioGroupComponent._nextUniqueId++}`);
205
+ /**
206
+ * The value of the selected radio button.
207
+ */
208
+ value = model();
209
+ /**
210
+ * Whether the radio group is disabled.
211
+ */
212
+ disabled = input(false, {
213
+ transform: booleanAttribute,
214
+ });
215
+ /**
216
+ * Whether the radio group should be required.
217
+ */
218
+ required = input(false, {
219
+ transform: booleanAttribute,
220
+ });
221
+ /**
222
+ * The direction of the radio group.
223
+ */
224
+ direction = input('ltr');
225
+ /**
226
+ * Event emitted when the group value changes.
227
+ */
228
+ change = output();
229
+ /**
230
+ * The internal disabled state of the radio group. This could be switched to a linkedSignal when we can drop v18 support.
231
+ * @internal
232
+ */
233
+ disabledState = computed(() => signal(this.disabled()));
234
+ /**
235
+ * Access the radio buttons within the group.
236
+ * @internal
237
+ */
238
+ radioButtons = contentChildren(BrnRadioComponent, { descendants: true });
239
+ writeValue(value) {
240
+ this.value.set(value);
241
+ }
242
+ registerOnChange(fn) {
243
+ this.onChange = fn;
244
+ }
245
+ registerOnTouched(fn) {
246
+ this.onTouched = fn;
247
+ }
248
+ setDisabledState(isDisabled) {
249
+ this.disabledState().set(isDisabled);
250
+ }
251
+ /**
252
+ * Select a radio button.
253
+ * @internal
254
+ */
255
+ select(radioButton, value) {
256
+ if (this.value() === value) {
257
+ return;
258
+ }
259
+ this.value.set(value);
260
+ this.onChange(value);
261
+ this.change.emit(new BrnRadioChange(radioButton, value));
262
+ }
263
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
264
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioGroupComponent, isStandalone: true, selector: "brn-radio-group", inputs: { name: { classPropertyName: "name", publicName: "name", 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 }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "radiogroup" }, listeners: { "focusout": "onTouched()" } }, providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)], queries: [{ propertyName: "radioButtons", predicate: BrnRadioComponent, descendants: true, isSignal: true }], ngImport: i0, template: '<ng-content />', isInline: true });
265
+ }
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupComponent, decorators: [{
267
+ type: Component,
268
+ args: [{
269
+ selector: 'brn-radio-group',
270
+ standalone: true,
271
+ providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)],
272
+ host: {
273
+ role: 'radiogroup',
274
+ '(focusout)': 'onTouched()',
275
+ },
276
+ template: '<ng-content />',
277
+ }]
278
+ }] });
279
+
280
+ const BrnRadioGroupImports = [BrnRadioGroupComponent, BrnRadioComponent];
281
+ class BrnRadioGroupModule {
282
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
283
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, imports: [BrnRadioGroupComponent, BrnRadioComponent], exports: [BrnRadioGroupComponent, BrnRadioComponent] });
284
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule });
285
+ }
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, decorators: [{
287
+ type: NgModule,
288
+ args: [{
289
+ imports: [...BrnRadioGroupImports],
290
+ exports: [...BrnRadioGroupImports],
291
+ }]
292
+ }] });
293
+
294
+ /**
295
+ * Generated bundle index. Do not edit.
296
+ */
297
+
298
+ export { BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, BrnRadioChange, BrnRadioComponent, BrnRadioGroupComponent, BrnRadioGroupImports, BrnRadioGroupModule };
299
+ //# sourceMappingURL=spartan-ng-brain-radio-group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spartan-ng-brain-radio-group.mjs","sources":["../../../../libs/brain/radio-group/src/lib/brn-radio-group.token.ts","../../../../libs/brain/radio-group/src/lib/brn-radio.component.ts","../../../../libs/brain/radio-group/src/lib/brn-radio-group.component.ts","../../../../libs/brain/radio-group/src/index.ts","../../../../libs/brain/radio-group/src/spartan-ng-brain-radio-group.ts"],"sourcesContent":["import { ExistingProvider, inject, InjectionToken, Type } from '@angular/core';\nimport type { BrnRadioGroupComponent } from './brn-radio-group.component';\n\nconst BrnRadioGroupToken = new InjectionToken<BrnRadioGroupComponent<unknown>>('BrnRadioGroupToken');\n\nexport function provideBrnRadioGroupToken<T>(component: Type<BrnRadioGroupComponent<T>>): ExistingProvider {\n\treturn { provide: BrnRadioGroupToken, useExisting: component };\n}\n\nexport function injectBrnRadioGroup<T = unknown>(): BrnRadioGroupComponent<T> {\n\treturn inject(BrnRadioGroupToken) as BrnRadioGroupComponent<T>;\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\ttype OnDestroy,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport { injectBrnRadioGroup } from './brn-radio-group.token';\n\nexport class BrnRadioChange<T> {\n\tconstructor(\n\t\tpublic source: BrnRadioComponent<T>,\n\t\tpublic value: T,\n\t) {}\n}\n\n@Component({\n\tselector: 'brn-radio',\n\tstandalone: true,\n\thost: {\n\t\tclass: 'brn-radio',\n\t\t'[attr.id]': 'id()',\n\t\t'[class.brn-radio-checked]': 'checked()',\n\t\t'[class.brn-radio-disabled]': 'disabledState()',\n\t\t'[attr.data-checked]': 'checked()',\n\t\t'[attr.data-disabled]': 'disabledState()',\n\t\t'[attr.data-value]': 'value()',\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\n\t\t'[attr.tabindex]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\n\t\t// the focus to the native element.\n\t\t'(focus)': 'inputElement().nativeElement.focus()',\n\t},\n\texportAs: 'brnRadio',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<div style=\"display: flex; height: fit-content; width: fit-content\" (click)=\"onTouchTargetClick($event)\">\n\t\t\t<ng-content select=\"[target],[indicator]\" />\n\t\t</div>\n\t\t<input\n\t\t\t#input\n\t\t\tstyle=\"position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;\"\n\t\t\ttype=\"radio\"\n\t\t\t[id]=\"inputId()\"\n\t\t\t[checked]=\"checked()\"\n\t\t\t[disabled]=\"disabledState()\"\n\t\t\t[tabIndex]=\"tabIndex()\"\n\t\t\t[attr.name]=\"radioGroup.name()\"\n\t\t\t[attr.value]=\"value()\"\n\t\t\t[required]=\"required()\"\n\t\t\t[attr.aria-label]=\"ariaLabel()\"\n\t\t\t[attr.aria-labelledby]=\"ariaLabelledby()\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby()\"\n\t\t\t(change)=\"onInputInteraction($event)\"\n\t\t\t(click)=\"onInputClick($event)\"\n\t\t/>\n\t\t<label style=\"display: flex; height: fit-content; width: fit-content\" [for]=\"inputId()\">\n\t\t\t<ng-content />\n\t\t</label>\n\t`,\n})\nexport class BrnRadioComponent<T = unknown> implements OnDestroy {\n\tprivate static _nextUniqueId = 0;\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _elementRef = inject(ElementRef);\n\tprotected readonly radioGroup = injectBrnRadioGroup<T>();\n\n\t/**\n\t * Whether the radio button is disabled.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t\talias: 'disabled',\n\t});\n\n\t/**\n\t * Whether the radio button is disabled or the radio group is disabled.\n\t */\n\tprotected readonly disabledState = computed(() => this.disabled() || (this.radioGroup && this.radioGroup.disabled()));\n\n\t/**\n\t * Whether the radio button is checked.\n\t */\n\tprotected readonly checked = computed(() => this.radioGroup.value() === this.value());\n\n\tprotected readonly tabIndex = computed(() => {\n\t\tconst disabled = this.disabledState();\n\t\tconst checked = this.checked();\n\t\tconst hasSelectedRadio = this.radioGroup.value() !== undefined;\n\t\tconst isFirstRadio = this.radioGroup.radioButtons()[0] === this;\n\n\t\tif (disabled || (!checked && (hasSelectedRadio || !isFirstRadio))) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn 0;\n\t});\n\n\t/**\n\t * The unique ID for the radio button input. If none is supplied, it will be auto-generated.\n\t */\n\tpublic readonly id = input(`brn-radio-${++BrnRadioComponent._nextUniqueId}`);\n\n\tpublic readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n\tpublic readonly ariaLabelledby = input<string | undefined>(undefined, { alias: 'aria-labelledby' });\n\n\tpublic readonly ariaDescribedby = input<string | undefined>(undefined, { alias: 'aria-describedby' });\n\n\t/**\n\t * The value this radio button represents.\n\t */\n\tpublic readonly value = input.required<T>();\n\n\t/**\n\t * Whether the radio button is required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Event emitted when the checked state of this radio button changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\tprotected readonly inputId = computed(() => `${this.id()}-input`);\n\n\tprotected readonly inputElement = viewChild.required<ElementRef<HTMLInputElement>>('input');\n\n\tconstructor() {\n\t\tthis._focusMonitor.monitor(this._elementRef, true);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/** Dispatch change event with current value. */\n\tprivate emitChangeEvent(): void {\n\t\tthis.change.emit(new BrnRadioChange(this, this.value()));\n\t}\n\n\tprotected onInputClick(event: Event): void {\n\t\t// We have to stop propagation for click events on the visual hidden input element.\n\t\t// By default, when a user clicks on a label element, a generated click event will be\n\t\t// dispatched on the associated input element. Since we are using a label element as our\n\t\t// root container, the click event on the `radio-button` will be executed twice.\n\t\t// The real click event will bubble up, and the generated click event also tries to bubble up.\n\t\t// This will lead to multiple click events.\n\t\t// Preventing bubbling for the second event will solve that issue.\n\t\tevent.stopPropagation();\n\t}\n\n\tprotected onInputInteraction(event: Event): void {\n\t\t// We always have to stop propagation on the change event.\n\t\t// Otherwise the change event, from the input element, will bubble up and\n\t\t// emit its event object to the `change` output.\n\t\tevent.stopPropagation();\n\n\t\tif (!this.checked() && !this.disabledState()) {\n\t\t\tthis.emitChangeEvent();\n\t\t\tthis.radioGroup.select(this, this.value());\n\t\t}\n\t}\n\n\t/** Triggered when the user clicks on the touch target. */\n\tprotected onTouchTargetClick(event: Event): void {\n\t\tthis.onInputInteraction(event);\n\n\t\tif (!this.disabledState()) {\n\t\t\t// Normally the input should be focused already, but if the click\n\t\t\t// comes from the touch target, then we might have to focus it ourselves.\n\t\t\tthis.inputElement().nativeElement.focus();\n\t\t}\n\t}\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n\tbooleanAttribute,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tforwardRef,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\nimport { provideBrnRadioGroupToken } from './brn-radio-group.token';\nimport { BrnRadioChange, BrnRadioComponent } from './brn-radio.component';\n\nexport const BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnRadioGroupComponent),\n\tmulti: true,\n};\n\n@Component({\n\tselector: 'brn-radio-group',\n\tstandalone: true,\n\tproviders: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)],\n\thost: {\n\t\trole: 'radiogroup',\n\t\t'(focusout)': 'onTouched()',\n\t},\n\ttemplate: '<ng-content />',\n})\nexport class BrnRadioGroupComponent<T = unknown> implements ControlValueAccessor {\n\tprivate static _nextUniqueId = 0;\n\n\tprotected onChange: ChangeFn<T> = () => {};\n\n\tprotected onTouched: TouchFn = () => {};\n\n\tpublic readonly name = input(`brn-radio-group-${BrnRadioGroupComponent._nextUniqueId++}`);\n\n\t/**\n\t * The value of the selected radio button.\n\t */\n\tpublic readonly value = model<T>();\n\n\t/**\n\t * Whether the radio group is disabled.\n\t */\n\tpublic disabled = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * Whether the radio group should be required.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t/**\n\t * The direction of the radio group.\n\t */\n\tpublic readonly direction = input<'ltr' | 'rtl' | null>('ltr');\n\n\t/**\n\t * Event emitted when the group value changes.\n\t */\n\tpublic readonly change = output<BrnRadioChange<T>>();\n\n\t/**\n\t * The internal disabled state of the radio group. This could be switched to a linkedSignal when we can drop v18 support.\n\t * @internal\n\t */\n\tpublic readonly disabledState = computed(() => signal(this.disabled()));\n\n\t/**\n\t * Access the radio buttons within the group.\n\t * @internal\n\t */\n\tpublic readonly radioButtons = contentChildren(BrnRadioComponent, { descendants: true });\n\n\twriteValue(value: T): void {\n\t\tthis.value.set(value);\n\t}\n\n\tregisterOnChange(fn: ChangeFn<T>): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabledState().set(isDisabled);\n\t}\n\n\t/**\n\t * Select a radio button.\n\t * @internal\n\t */\n\tselect(radioButton: BrnRadioComponent<T>, value: T): void {\n\t\tif (this.value() === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value.set(value);\n\t\tthis.onChange(value);\n\t\tthis.change.emit(new BrnRadioChange<T>(radioButton, value));\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnRadioGroupComponent } from './lib/brn-radio-group.component';\nimport { BrnRadioComponent } from './lib/brn-radio.component';\n\nexport * from './lib/brn-radio-group.component';\nexport * from './lib/brn-radio.component';\n\nexport const BrnRadioGroupImports = [BrnRadioGroupComponent, BrnRadioComponent] as const;\n\n@NgModule({\n\timports: [...BrnRadioGroupImports],\n\texports: [...BrnRadioGroupImports],\n})\nexport class BrnRadioGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAGA,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAkC,oBAAoB,CAAC;AAE9F,SAAU,yBAAyB,CAAI,SAA0C,EAAA;IACtF,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE;AAC/D;SAEgB,mBAAmB,GAAA;AAClC,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAA8B;AAC/D;;MCMa,cAAc,CAAA;AAElB,IAAA,MAAA;AACA,IAAA,KAAA;IAFR,WACQ,CAAA,MAA4B,EAC5B,KAAQ,EAAA;QADR,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAK,CAAA,KAAA,GAAL,KAAK;;AAEb;MAoDY,iBAAiB,CAAA;AACrB,IAAA,OAAO,aAAa,GAAG,CAAC;AACf,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACpC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IAC9B,UAAU,GAAG,mBAAmB,EAAK;AAExD;;AAEG;AACa,IAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AAC9D,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,KAAK,EAAE,UAAU;AACjB,KAAA,CAAC;AAEF;;AAEG;IACgB,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAErH;;AAEG;AACgB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;AAElE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;AACrC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,SAAS;AAC9D,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI;AAE/D,QAAA,IAAI,QAAQ,KAAK,CAAC,OAAO,KAAK,gBAAgB,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;YAClE,OAAO,CAAC,CAAC;;AAEV,QAAA,OAAO,CAAC;AACT,KAAC,CAAC;AAEF;;AAEG;IACa,EAAE,GAAG,KAAK,CAAC,CAAa,UAAA,EAAA,EAAE,iBAAiB,CAAC,aAAa,CAAE,CAAA,CAAC;IAE5D,SAAS,GAAG,KAAK,CAAqB,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAEzE,cAAc,GAAG,KAAK,CAAqB,SAAS,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAEnF,eAAe,GAAG,KAAK,CAAqB,SAAS,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AAErG;;AAEG;AACa,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAK;AAE3C;;AAEG;AACa,IAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AAC9D,QAAA,SAAS,EAAE,gBAAgB;AAC3B,KAAA,CAAC;AAEF;;AAEG;IACa,MAAM,GAAG,MAAM,EAAqB;AAEjC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;AAE9C,IAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAA+B,OAAO,CAAC;AAE3F,IAAA,WAAA,GAAA;QACC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;;IAGnD,WAAW,GAAA;QACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;;;IAI5C,eAAe,GAAA;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;AAG/C,IAAA,YAAY,CAAC,KAAY,EAAA;;;;;;;;QAQlC,KAAK,CAAC,eAAe,EAAE;;AAGd,IAAA,kBAAkB,CAAC,KAAY,EAAA;;;;QAIxC,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YAC7C,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;;;AAKlC,IAAA,kBAAkB,CAAC,KAAY,EAAA;AACxC,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAE9B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;;;YAG1B,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;;0HA/G/B,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EA1BnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,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,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sCAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAEW,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlD7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,2BAA2B,EAAE,WAAW;AACxC,wBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,sBAAsB,EAAE,iBAAiB;AACzC,wBAAA,mBAAmB,EAAE,SAAS;;AAE9B,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,yBAAyB,EAAE,MAAM;;;;AAIjC,wBAAA,SAAS,EAAE,sCAAsC;AACjD,qBAAA;AACD,oBAAA,QAAQ,EAAE,UAAU;oBACpB,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAwBT,CAAA,CAAA;AACD,iBAAA;;;ACvDY,MAAA,sCAAsC,GAAG;AACrD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE,IAAI;;MAaC,sBAAsB,CAAA;AAC1B,IAAA,OAAO,aAAa,GAAG,CAAC;AAEtB,IAAA,QAAQ,GAAgB,MAAK,GAAG;AAEhC,IAAA,SAAS,GAAY,MAAK,GAAG;IAEvB,IAAI,GAAG,KAAK,CAAC,CAAmB,gBAAA,EAAA,sBAAsB,CAAC,aAAa,EAAE,CAAE,CAAA,CAAC;AAEzF;;AAEG;IACa,KAAK,GAAG,KAAK,EAAK;AAElC;;AAEG;AACI,IAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AACrD,QAAA,SAAS,EAAE,gBAAgB;AAC3B,KAAA,CAAC;AAEF;;AAEG;AACa,IAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAE;AAC9D,QAAA,SAAS,EAAE,gBAAgB;AAC3B,KAAA,CAAC;AAEF;;AAEG;AACa,IAAA,SAAS,GAAG,KAAK,CAAuB,KAAK,CAAC;AAE9D;;AAEG;IACa,MAAM,GAAG,MAAM,EAAqB;AAEpD;;;AAGG;AACa,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEvE;;;AAGG;IACa,YAAY,GAAG,eAAe,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAExF,IAAA,UAAU,CAAC,KAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGtB,IAAA,gBAAgB,CAAC,EAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGnB,IAAA,iBAAiB,CAAC,EAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGpB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;;AAGrC;;;AAGG;IACH,MAAM,CAAC,WAAiC,EAAE,KAAQ,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE;YAC3B;;AAGD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,WAAW,EAAE,KAAK,CAAC,CAAC;;0HA7EhD,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sCAAsC,EAAE,yBAAyB,CAAC,sBAAsB,CAAC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAuDvD,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlDtD,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEd,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,sCAAsC,EAAE,yBAAyB,wBAAwB,CAAC;AACtG,oBAAA,IAAI,EAAE;AACL,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,YAAY,EAAE,aAAa;AAC3B,qBAAA;AACD,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,iBAAA;;;MCzBY,oBAAoB,GAAG,CAAC,sBAAsB,EAAE,iBAAiB;MAMjE,mBAAmB,CAAA;0HAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAnB,uBAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YANK,sBAAsB,EAAE,iBAAiB,CAAzC,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,iBAAiB,CAAA,EAAA,CAAA;2HAMjE,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,GAAG,oBAAoB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,GAAG,oBAAoB,CAAC;AAClC,iBAAA;;;ACbD;;AAEG;;;;"}