@bravobit/bb-foundation 0.33.0 → 0.40.1

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 (444) hide show
  1. package/auth/lib/auth.config.d.ts +5 -0
  2. package/auth/lib/auth.interceptor.d.ts +2 -2
  3. package/auth/lib/auth.module.d.ts +1 -4
  4. package/auth/lib/auth.service.d.ts +2 -2
  5. package/auth/lib/directives/authenticated.directive.d.ts +11 -4
  6. package/auth/lib/guards/anonymous.guard.d.ts +2 -15
  7. package/auth/lib/guards/authenticated.guard.d.ts +2 -15
  8. package/auth/lib/interfaces/config.interface.d.ts +2 -1
  9. package/auth/public_api.d.ts +1 -0
  10. package/collections/lib/collections.module.d.ts +12 -3
  11. package/collections/lib/components/collections-actions/collections-actions.component.d.ts +10 -0
  12. package/collections/lib/components/collections-grid/collections-grid.component.d.ts +18 -0
  13. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +15 -14
  14. package/collections/lib/components/collections-table/collections-table.component.d.ts +24 -0
  15. package/collections/lib/components/collections-table-label/collections-table-label.component.d.ts +11 -0
  16. package/collections/lib/components/collections-table-sorting/collections-table-sorting.component.d.ts +18 -0
  17. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +9 -5
  18. package/collections/lib/directives/collections-data-row.directive.d.ts +14 -0
  19. package/collections/lib/directives/collections-data.directive.d.ts +14 -0
  20. package/collections/lib/directives/collections-empty.directive.d.ts +14 -0
  21. package/collections/lib/directives/collections-error.directive.d.ts +14 -0
  22. package/collections/lib/directives/collections-initial.directive.d.ts +11 -0
  23. package/collections/lib/directives/collections-item.directive.d.ts +14 -0
  24. package/collections/public_api.d.ts +11 -1
  25. package/dashboard/lib/dashboard/dashboard.component.d.ts +5 -8
  26. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +3 -5
  27. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  28. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +4 -7
  29. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +3 -5
  30. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +6 -11
  31. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +2 -2
  32. package/dashboard/lib/dashboard.module.d.ts +1 -4
  33. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +1 -1
  34. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +2 -2
  35. package/dialog/lib/dialog-container/dialog-container.component.d.ts +2 -2
  36. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -1
  37. package/dialog/lib/dialog-link/dialog-link.component.d.ts +1 -1
  38. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  39. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +2 -2
  40. package/dialog/lib/dialog.config.d.ts +3 -0
  41. package/dialog/lib/dialog.insertion.d.ts +1 -1
  42. package/dialog/lib/dialog.interfaces.d.ts +2 -0
  43. package/dialog/lib/dialog.module.d.ts +2 -4
  44. package/dialog/lib/directives/confirm.directive.d.ts +13 -0
  45. package/dialog/public_api.d.ts +2 -0
  46. package/elements/lib/avatar/avatar.component.d.ts +2 -1
  47. package/elements/lib/button/button.component.d.ts +12 -14
  48. package/elements/lib/checkbox/checkbox.component.d.ts +29 -22
  49. package/elements/lib/checkbox-group/checkbox-group.component.d.ts +13 -0
  50. package/elements/lib/date-picker/date-picker.component.d.ts +17 -10
  51. package/elements/lib/directives/addon.directive.d.ts +2 -2
  52. package/elements/lib/directives/extra-error-controls.directive.d.ts +13 -0
  53. package/elements/lib/directives/form-submit.directive.d.ts +1 -1
  54. package/elements/lib/directives/form-submitter.directive.d.ts +1 -1
  55. package/elements/lib/directives/image-upload.directive.d.ts +1 -1
  56. package/elements/lib/directives/input.directive.d.ts +9 -31
  57. package/elements/lib/elements.config.d.ts +84 -0
  58. package/elements/lib/elements.module.d.ts +20 -102
  59. package/elements/lib/file-picker/file-picker.component.d.ts +14 -10
  60. package/elements/lib/form-control/form-control.component.d.ts +8 -9
  61. package/elements/lib/form-error/form-error.component.d.ts +12 -9
  62. package/elements/lib/form-group/form-group.component.d.ts +4 -7
  63. package/elements/lib/icon/icon.component.d.ts +4 -4
  64. package/elements/lib/image-picker/image-picker.component.d.ts +9 -9
  65. package/elements/lib/multi-file-control/multi-file-control.component.d.ts +58 -0
  66. package/elements/lib/pipes/date.pipe.d.ts +9 -0
  67. package/elements/lib/pipes/file-image.pipe.d.ts +1 -1
  68. package/elements/lib/pipes/file-size.pipe.d.ts +1 -1
  69. package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
  70. package/elements/lib/radio-button/radio-button.component.d.ts +18 -0
  71. package/elements/lib/radio-group/radio-group.component.d.ts +38 -0
  72. package/elements/lib/spinner/spinner.component.d.ts +4 -7
  73. package/elements/public_api.d.ts +8 -3
  74. package/esm2022/auth/lib/auth.config.mjs +16 -0
  75. package/esm2022/auth/lib/auth.interceptor.mjs +10 -7
  76. package/esm2022/auth/lib/auth.module.mjs +9 -19
  77. package/esm2022/auth/lib/auth.service.mjs +22 -13
  78. package/esm2022/auth/lib/directives/authenticated.directive.mjs +45 -11
  79. package/esm2022/auth/lib/guards/anonymous.guard.mjs +27 -51
  80. package/esm2022/auth/lib/guards/authenticated.guard.mjs +30 -54
  81. package/esm2022/auth/lib/helpers/jwt.helper.mjs +2 -2
  82. package/esm2022/auth/lib/interfaces/config.interface.mjs +2 -3
  83. package/esm2022/auth/public_api.mjs +2 -1
  84. package/esm2022/collections/lib/collections.module.mjs +53 -23
  85. package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +39 -0
  86. package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +52 -0
  87. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +51 -60
  88. package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +86 -0
  89. package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +33 -0
  90. package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +62 -0
  91. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +10 -7
  92. package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +26 -0
  93. package/esm2022/collections/lib/directives/collections-data.directive.mjs +26 -0
  94. package/esm2022/collections/lib/directives/collections-empty.directive.mjs +26 -0
  95. package/esm2022/collections/lib/directives/collections-error.directive.mjs +26 -0
  96. package/esm2022/collections/lib/directives/collections-initial.directive.mjs +22 -0
  97. package/esm2022/collections/lib/directives/collections-item.directive.mjs +26 -0
  98. package/esm2022/collections/public_api.mjs +12 -2
  99. package/esm2022/combobox/combobox/combobox-container.directive.mjs +3 -3
  100. package/esm2022/combobox/combobox/combobox.component.mjs +6 -6
  101. package/esm2022/combobox/combobox-label.directive.mjs +3 -3
  102. package/esm2022/combobox/combobox-option.directive.mjs +3 -3
  103. package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +5 -5
  104. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +17 -24
  105. package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +12 -15
  106. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +7 -8
  107. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +20 -15
  108. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +15 -14
  109. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +20 -27
  110. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +6 -10
  111. package/esm2022/dashboard/lib/dashboard.module.mjs +30 -27
  112. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +6 -6
  113. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +12 -15
  114. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +10 -7
  115. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +5 -6
  116. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +5 -5
  117. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +7 -7
  118. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +11 -7
  119. package/esm2022/dialog/lib/dialog.config.mjs +8 -0
  120. package/esm2022/dialog/lib/dialog.insertion.mjs +6 -5
  121. package/esm2022/dialog/lib/dialog.interfaces.mjs +3 -1
  122. package/esm2022/dialog/lib/dialog.module.mjs +17 -25
  123. package/esm2022/dialog/lib/dialog.service.mjs +8 -5
  124. package/esm2022/dialog/lib/directives/confirm.directive.mjs +50 -0
  125. package/esm2022/dialog/public_api.mjs +3 -1
  126. package/esm2022/elements/lib/avatar/avatar.component.mjs +15 -14
  127. package/esm2022/elements/lib/button/button.component.mjs +37 -32
  128. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +86 -47
  129. package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +36 -0
  130. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +64 -51
  131. package/esm2022/elements/lib/directives/addon.directive.mjs +11 -13
  132. package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +43 -0
  133. package/esm2022/elements/lib/directives/form-submit.directive.mjs +6 -5
  134. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +6 -5
  135. package/esm2022/elements/lib/directives/image-upload.directive.mjs +6 -5
  136. package/esm2022/elements/lib/directives/input.directive.mjs +21 -110
  137. package/esm2022/elements/lib/elements.config.mjs +42 -0
  138. package/esm2022/elements/lib/elements.module.mjs +38 -77
  139. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +36 -24
  140. package/esm2022/elements/lib/form-control/form-control.component.mjs +21 -24
  141. package/esm2022/elements/lib/form-error/form-error.component.mjs +35 -60
  142. package/esm2022/elements/lib/form-group/form-group.component.mjs +15 -12
  143. package/esm2022/elements/lib/icon/icon.component.mjs +19 -24
  144. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +33 -19
  145. package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +165 -0
  146. package/esm2022/elements/lib/pipes/date.pipe.mjs +30 -0
  147. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +6 -5
  148. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +6 -5
  149. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +6 -5
  150. package/esm2022/elements/lib/radio-button/radio-button.component.mjs +59 -0
  151. package/esm2022/elements/lib/radio-group/radio-group.component.mjs +102 -0
  152. package/esm2022/elements/lib/spinner/spinner.component.mjs +12 -13
  153. package/esm2022/elements/public_api.mjs +9 -4
  154. package/esm2022/http/lib/http.config.mjs +18 -0
  155. package/esm2022/http/lib/http.interfaces.mjs +4 -2
  156. package/esm2022/http/lib/http.module.mjs +9 -22
  157. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +9 -5
  158. package/esm2022/http/lib/interceptors/error.interceptor.mjs +10 -6
  159. package/esm2022/http/public_api.mjs +2 -1
  160. package/esm2022/lib/core/miscellaneous/coercion.mjs +5 -0
  161. package/esm2022/lib/core/services/exif.service.mjs +3 -3
  162. package/esm2022/lib/core/services/file-loader.service.mjs +3 -3
  163. package/esm2022/lib/core/services/files.service.mjs +3 -3
  164. package/esm2022/lib/core/services/image-converter.service.mjs +3 -3
  165. package/esm2022/lib/core/services/languages.service.mjs +3 -3
  166. package/esm2022/lib/core/services/network.service.mjs +3 -3
  167. package/esm2022/lib/core/services/patch.service.mjs +3 -3
  168. package/esm2022/localize/lib/interfaces/config.interfaces.mjs +2 -7
  169. package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +6 -6
  170. package/esm2022/localize/lib/localizations/dutch.localization.mjs +19 -1
  171. package/esm2022/localize/lib/localizations/english.localization.mjs +19 -1
  172. package/esm2022/localize/lib/localize.config.mjs +43 -0
  173. package/esm2022/localize/lib/localize.module.mjs +10 -54
  174. package/esm2022/localize/lib/localize.pipe.mjs +6 -5
  175. package/esm2022/localize/lib/localize.service.mjs +26 -13
  176. package/esm2022/localize/lib/localize.tokens.mjs +18 -0
  177. package/esm2022/localize/lib/transforms/interpolate.transform.mjs +3 -2
  178. package/esm2022/localize/lib/transforms/plural.transform.mjs +5 -3
  179. package/esm2022/localize/lib/transforms/reference.transform.mjs +5 -3
  180. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +6 -10
  181. package/esm2022/localize/lib/views/localize-template.directive.mjs +6 -5
  182. package/esm2022/localize/public_api.mjs +3 -3
  183. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +6 -5
  184. package/esm2022/masking/lib/directives/date-mask.directive.mjs +6 -5
  185. package/esm2022/masking/lib/directives/input-mask.directive.mjs +6 -5
  186. package/esm2022/masking/lib/masking.module.mjs +6 -6
  187. package/esm2022/masking/lib/masking.service.mjs +3 -3
  188. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +7 -9
  189. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +8 -8
  190. package/esm2022/notifications/lib/notifications.config.mjs +8 -0
  191. package/esm2022/notifications/lib/notifications.interfaces.mjs +3 -1
  192. package/esm2022/notifications/lib/notifications.module.mjs +8 -18
  193. package/esm2022/notifications/lib/notifications.service.mjs +14 -8
  194. package/esm2022/notifications/public_api.mjs +2 -1
  195. package/esm2022/permissions/lib/directives/permission.directive.mjs +6 -5
  196. package/esm2022/permissions/lib/guards/permission.guard.mjs +23 -54
  197. package/esm2022/permissions/lib/permissions.config.mjs +20 -0
  198. package/esm2022/permissions/lib/permissions.interface.mjs +3 -1
  199. package/esm2022/permissions/lib/permissions.module.mjs +9 -23
  200. package/esm2022/permissions/lib/permissions.service.mjs +8 -5
  201. package/esm2022/permissions/public_api.mjs +2 -1
  202. package/esm2022/public_api.mjs +2 -10
  203. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +12 -13
  204. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +21 -36
  205. package/esm2022/recaptcha/lib/recaptcha.config.mjs +8 -0
  206. package/esm2022/recaptcha/lib/recaptcha.module.mjs +8 -8
  207. package/esm2022/recaptcha/public_api.mjs +2 -1
  208. package/esm2022/select/bravobit-bb-foundation-select.mjs +5 -0
  209. package/esm2022/select/lib/select/select.component.mjs +214 -0
  210. package/esm2022/select/lib/select-label.directive.mjs +17 -0
  211. package/esm2022/select/lib/select-option-group.directive.mjs +17 -0
  212. package/esm2022/select/lib/select-option.directive.mjs +17 -0
  213. package/esm2022/select/lib/select.module.mjs +35 -0
  214. package/esm2022/select/public_api.mjs +6 -0
  215. package/esm2022/storage/lib/storage.service.mjs +3 -3
  216. package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +2 -5
  217. package/esm2022/table/lib/components/table/table.component.mjs +21 -22
  218. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +5 -5
  219. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +14 -14
  220. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +15 -17
  221. package/esm2022/table/lib/table.module.mjs +23 -21
  222. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +11 -17
  223. package/esm2022/tooltip/lib/tooltip.directive.mjs +17 -27
  224. package/esm2022/tooltip/lib/tooltip.module.mjs +7 -22
  225. package/esm2022/tooltip/public_api.mjs +2 -2
  226. package/esm2022/utils/lib/directives/autosize.directive.mjs +9 -7
  227. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +6 -5
  228. package/esm2022/utils/lib/directives/focus.directive.mjs +6 -5
  229. package/esm2022/utils/lib/directives/template.directive.mjs +6 -5
  230. package/esm2022/utils/lib/utils.module.mjs +6 -6
  231. package/fesm2022/bravobit-bb-foundation-auth.mjs +140 -175
  232. package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
  233. package/fesm2022/bravobit-bb-foundation-collections.mjs +451 -106
  234. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  235. package/fesm2022/bravobit-bb-foundation-combobox.mjs +18 -18
  236. package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
  237. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +106 -116
  238. package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  239. package/fesm2022/bravobit-bb-foundation-dialog.mjs +125 -70
  240. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  241. package/fesm2022/bravobit-bb-foundation-elements.mjs +1652 -1378
  242. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  243. package/fesm2022/bravobit-bb-foundation-http.mjs +38 -27
  244. package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
  245. package/fesm2022/bravobit-bb-foundation-localize.mjs +310 -264
  246. package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
  247. package/fesm2022/bravobit-bb-foundation-masking.mjs +23 -20
  248. package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
  249. package/fesm2022/bravobit-bb-foundation-notifications.mjs +67 -62
  250. package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
  251. package/fesm2022/bravobit-bb-foundation-permissions.mjs +54 -72
  252. package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
  253. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +44 -54
  254. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  255. package/fesm2022/bravobit-bb-foundation-select.mjs +292 -0
  256. package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -0
  257. package/fesm2022/bravobit-bb-foundation-storage.mjs +4 -7
  258. package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
  259. package/fesm2022/bravobit-bb-foundation-table.mjs +67 -66
  260. package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
  261. package/fesm2022/bravobit-bb-foundation-tooltip.mjs +31 -61
  262. package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  263. package/fesm2022/bravobit-bb-foundation-utils.mjs +28 -23
  264. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
  265. package/fesm2022/bravobit-bb-foundation.mjs +27 -144
  266. package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
  267. package/http/lib/http.config.d.ts +5 -0
  268. package/http/lib/http.interfaces.d.ts +3 -0
  269. package/http/lib/http.module.d.ts +2 -6
  270. package/http/public_api.d.ts +1 -0
  271. package/lib/core/miscellaneous/coercion.d.ts +2 -0
  272. package/localize/lib/interfaces/config.interfaces.d.ts +1 -1
  273. package/localize/lib/interfaces/functions.interfaces.d.ts +0 -2
  274. package/localize/lib/localizations/dutch.localization.d.ts +18 -0
  275. package/localize/lib/localizations/english.localization.d.ts +18 -0
  276. package/localize/lib/localize.config.d.ts +6 -0
  277. package/localize/lib/localize.module.d.ts +2 -7
  278. package/localize/lib/localize.pipe.d.ts +1 -1
  279. package/localize/lib/localize.service.d.ts +4 -4
  280. package/localize/lib/localize.tokens.d.ts +11 -0
  281. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  282. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  283. package/localize/public_api.d.ts +2 -2
  284. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  285. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  286. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  287. package/masking/lib/masking.module.d.ts +1 -1
  288. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  289. package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -1
  290. package/notifications/lib/notifications.config.d.ts +3 -0
  291. package/notifications/lib/notifications.interfaces.d.ts +2 -1
  292. package/notifications/lib/notifications.module.d.ts +1 -5
  293. package/notifications/public_api.d.ts +1 -0
  294. package/package.json +17 -22
  295. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  296. package/permissions/lib/guards/permission.guard.d.ts +3 -15
  297. package/permissions/lib/permissions.config.d.ts +3 -0
  298. package/permissions/lib/permissions.interface.d.ts +2 -1
  299. package/permissions/lib/permissions.module.d.ts +1 -1
  300. package/permissions/public_api.d.ts +1 -0
  301. package/public_api.d.ts +1 -9
  302. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +4 -7
  303. package/recaptcha/lib/recaptcha-loader.service.d.ts +9 -13
  304. package/recaptcha/lib/recaptcha.config.d.ts +3 -0
  305. package/recaptcha/lib/recaptcha.module.d.ts +2 -2
  306. package/recaptcha/public_api.d.ts +1 -0
  307. package/{theming → select}/index.d.ts +1 -1
  308. package/select/lib/select/select.component.d.ts +77 -0
  309. package/select/lib/select-label.directive.d.ts +8 -0
  310. package/select/lib/select-option-group.directive.d.ts +8 -0
  311. package/select/lib/select-option.directive.d.ts +8 -0
  312. package/select/lib/select.module.d.ts +10 -0
  313. package/select/public_api.d.ts +5 -0
  314. package/styles/colors.scss +20 -0
  315. package/styles/grid.scss +98 -0
  316. package/styles/reset.scss +65 -0
  317. package/styles/theme.scss +88 -0
  318. package/table/lib/components/table/table.component.d.ts +4 -6
  319. package/table/lib/components/table-cell/table-cell.component.d.ts +1 -1
  320. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +4 -7
  321. package/table/lib/components/table-pager/table-pager.component.d.ts +4 -8
  322. package/table/lib/table.module.d.ts +1 -5
  323. package/tooltip/lib/tooltip-container/tooltip-container.component.d.ts +3 -4
  324. package/tooltip/lib/tooltip.directive.d.ts +8 -17
  325. package/tooltip/lib/tooltip.module.d.ts +2 -5
  326. package/tooltip/public_api.d.ts +1 -1
  327. package/utils/lib/directives/autosize.directive.d.ts +2 -1
  328. package/utils/lib/directives/focus-trap.directive.d.ts +1 -1
  329. package/utils/lib/directives/focus.directive.d.ts +1 -1
  330. package/utils/lib/directives/template.directive.d.ts +1 -1
  331. package/utils/lib/utils.module.d.ts +1 -1
  332. package/auth/lib/directives/abstract.directive.d.ts +0 -12
  333. package/collections/lib/components/collections.directive.d.ts +0 -17
  334. package/controls/index.d.ts +0 -5
  335. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +0 -51
  336. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +0 -23
  337. package/controls/lib/checkbox/checkbox.module.d.ts +0 -10
  338. package/controls/lib/control-error/control-error/control-error.animation.d.ts +0 -1
  339. package/controls/lib/control-error/control-error/control-error.component.d.ts +0 -17
  340. package/controls/lib/control-error/control-error-submit.directive.d.ts +0 -15
  341. package/controls/lib/control-error/control-error.defaults.d.ts +0 -2
  342. package/controls/lib/control-error/control-error.interface.d.ts +0 -12
  343. package/controls/lib/control-error/control-error.module.d.ts +0 -9
  344. package/controls/lib/control-error/control-error.utils.d.ts +0 -3
  345. package/controls/lib/controls.interfaces.d.ts +0 -4
  346. package/controls/lib/controls.module.d.ts +0 -14
  347. package/controls/lib/form-control/form-control/form-control.component.d.ts +0 -29
  348. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +0 -6
  349. package/controls/lib/form-control/form-control-input.directive.d.ts +0 -35
  350. package/controls/lib/form-control/form-control.module.d.ts +0 -12
  351. package/controls/lib/radio/radio-button/radio-button.component.d.ts +0 -24
  352. package/controls/lib/radio/radio-group/radio-group.component.d.ts +0 -53
  353. package/controls/lib/radio/radio.module.d.ts +0 -11
  354. package/controls/lib/toggle/toggle/toggle.component.d.ts +0 -45
  355. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +0 -23
  356. package/controls/lib/toggle/toggle.module.d.ts +0 -10
  357. package/controls/public_api.d.ts +0 -20
  358. package/elements/lib/dropdown/dropdown.component.d.ts +0 -21
  359. package/elements/lib/tag/tag.component.d.ts +0 -7
  360. package/esm2022/auth/lib/directives/abstract.directive.mjs +0 -40
  361. package/esm2022/collections/lib/components/collections.directive.mjs +0 -43
  362. package/esm2022/controls/bravobit-bb-foundation-controls.mjs +0 -5
  363. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
  364. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
  365. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +0 -20
  366. package/esm2022/controls/lib/control-error/control-error/control-error.animation.mjs +0 -14
  367. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
  368. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
  369. package/esm2022/controls/lib/control-error/control-error.defaults.mjs +0 -26
  370. package/esm2022/controls/lib/control-error/control-error.interface.mjs +0 -3
  371. package/esm2022/controls/lib/control-error/control-error.module.mjs +0 -19
  372. package/esm2022/controls/lib/control-error/control-error.utils.mjs +0 -20
  373. package/esm2022/controls/lib/controls.interfaces.mjs +0 -2
  374. package/esm2022/controls/lib/controls.module.mjs +0 -62
  375. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
  376. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
  377. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +0 -124
  378. package/esm2022/controls/lib/form-control/form-control.module.mjs +0 -34
  379. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
  380. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
  381. package/esm2022/controls/lib/radio/radio.module.mjs +0 -21
  382. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
  383. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
  384. package/esm2022/controls/lib/toggle/toggle.module.mjs +0 -20
  385. package/esm2022/controls/public_api.mjs +0 -21
  386. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +0 -100
  387. package/esm2022/elements/lib/tag/tag.component.mjs +0 -18
  388. package/esm2022/lib/core/mixins/can-disable.mjs +0 -16
  389. package/esm2022/lib/core/mixins/can-hide-errors.mjs +0 -16
  390. package/esm2022/lib/core/mixins/can-load.mjs +0 -16
  391. package/esm2022/lib/core/mixins/constructor.mjs +0 -2
  392. package/esm2022/lib/core/mixins/has-error.mjs +0 -16
  393. package/esm2022/lib/core/mixins/is-focused.mjs +0 -16
  394. package/esm2022/lib/core/mixins/is-grouped.mjs +0 -16
  395. package/esm2022/lib/core/mixins/is-readonly.mjs +0 -16
  396. package/esm2022/lib/core/mixins/is-required.mjs +0 -16
  397. package/esm2022/localize/lib/interfaces/transforms.interfaces.mjs +0 -3
  398. package/esm2022/localize/lib/locale.token.mjs +0 -14
  399. package/esm2022/theming/bravobit-bb-foundation-theming.mjs +0 -5
  400. package/esm2022/theming/lib/themes/checkbox-group.theme.mjs +0 -17
  401. package/esm2022/theming/lib/themes/checkbox.theme.mjs +0 -35
  402. package/esm2022/theming/lib/themes/control-error.theme.mjs +0 -11
  403. package/esm2022/theming/lib/themes/form-control-addon.theme.mjs +0 -6
  404. package/esm2022/theming/lib/themes/form-control.theme.mjs +0 -45
  405. package/esm2022/theming/lib/themes/radio-button.theme.mjs +0 -29
  406. package/esm2022/theming/lib/themes/radio-group.theme.mjs +0 -20
  407. package/esm2022/theming/lib/themes/toggle-group.theme.mjs +0 -17
  408. package/esm2022/theming/lib/themes/toggle.theme.mjs +0 -28
  409. package/esm2022/theming/lib/theming.data.mjs +0 -90
  410. package/esm2022/theming/lib/theming.directive.mjs +0 -38
  411. package/esm2022/theming/lib/theming.interface.mjs +0 -2
  412. package/esm2022/theming/lib/theming.module.mjs +0 -16
  413. package/esm2022/theming/lib/utils/theming.variable.mjs +0 -41
  414. package/esm2022/theming/public_api.mjs +0 -10
  415. package/fesm2022/bravobit-bb-foundation-controls.mjs +0 -1191
  416. package/fesm2022/bravobit-bb-foundation-controls.mjs.map +0 -1
  417. package/fesm2022/bravobit-bb-foundation-theming.mjs +0 -381
  418. package/fesm2022/bravobit-bb-foundation-theming.mjs.map +0 -1
  419. package/lib/core/mixins/can-disable.d.ts +0 -6
  420. package/lib/core/mixins/can-hide-errors.d.ts +0 -6
  421. package/lib/core/mixins/can-load.d.ts +0 -6
  422. package/lib/core/mixins/constructor.d.ts +0 -1
  423. package/lib/core/mixins/has-error.d.ts +0 -6
  424. package/lib/core/mixins/is-focused.d.ts +0 -6
  425. package/lib/core/mixins/is-grouped.d.ts +0 -6
  426. package/lib/core/mixins/is-readonly.d.ts +0 -6
  427. package/lib/core/mixins/is-required.d.ts +0 -6
  428. package/localize/lib/interfaces/transforms.interfaces.d.ts +0 -3
  429. package/localize/lib/locale.token.d.ts +0 -3
  430. package/theming/lib/themes/checkbox-group.theme.d.ts +0 -16
  431. package/theming/lib/themes/checkbox.theme.d.ts +0 -32
  432. package/theming/lib/themes/control-error.theme.d.ts +0 -9
  433. package/theming/lib/themes/form-control-addon.theme.d.ts +0 -5
  434. package/theming/lib/themes/form-control.theme.d.ts +0 -32
  435. package/theming/lib/themes/radio-button.theme.d.ts +0 -26
  436. package/theming/lib/themes/radio-group.theme.d.ts +0 -17
  437. package/theming/lib/themes/toggle-group.theme.d.ts +0 -16
  438. package/theming/lib/themes/toggle.theme.d.ts +0 -25
  439. package/theming/lib/theming.data.d.ts +0 -17
  440. package/theming/lib/theming.directive.d.ts +0 -13
  441. package/theming/lib/theming.interface.d.ts +0 -34
  442. package/theming/lib/theming.module.d.ts +0 -7
  443. package/theming/lib/utils/theming.variable.d.ts +0 -16
  444. package/theming/public_api.d.ts +0 -9
@@ -1 +0,0 @@
1
- {"version":3,"file":"bravobit-bb-foundation-controls.mjs","sources":["../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox.module.ts","../../../projects/bb-foundation/controls/src/lib/toggle/toggle-group/toggle-group.component.ts","../../../projects/bb-foundation/controls/src/lib/toggle/toggle-group/toggle-group.component.html","../../../projects/bb-foundation/controls/src/lib/toggle/toggle/toggle.component.ts","../../../projects/bb-foundation/controls/src/lib/toggle/toggle/toggle.component.html","../../../projects/bb-foundation/controls/src/lib/toggle/toggle.module.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error.utils.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error-submit.directive.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error.interface.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error/control-error.animation.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error/control-error.component.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error/control-error.component.html","../../../projects/bb-foundation/controls/src/lib/radio/radio-group/radio-group.component.ts","../../../projects/bb-foundation/controls/src/lib/radio/radio-group/radio-group.component.html","../../../projects/bb-foundation/controls/src/lib/radio/radio-button/radio-button.component.ts","../../../projects/bb-foundation/controls/src/lib/radio/radio-button/radio-button.component.html","../../../projects/bb-foundation/controls/src/lib/control-error/control-error.module.ts","../../../projects/bb-foundation/controls/src/lib/radio/radio.module.ts","../../../projects/bb-foundation/controls/src/lib/form-control/form-control-input.directive.ts","../../../projects/bb-foundation/controls/src/lib/form-control/form-control/form-control.component.ts","../../../projects/bb-foundation/controls/src/lib/form-control/form-control/form-control.component.html","../../../projects/bb-foundation/controls/src/lib/form-control/form-control-addon/form-control-addon.component.ts","../../../projects/bb-foundation/controls/src/lib/form-control/form-control-addon/form-control-addon.component.html","../../../projects/bb-foundation/controls/src/lib/form-control/form-control.module.ts","../../../projects/bb-foundation/controls/src/lib/control-error/control-error.defaults.ts","../../../projects/bb-foundation/controls/src/lib/controls.module.ts","../../../projects/bb-foundation/controls/src/bravobit-bb-foundation-controls.ts"],"sourcesContent":["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n@Component({\n selector: 'bbi-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bbi-checkbox-group',\n '[class.grouped]': 'grouped',\n '[class.required]': 'required',\n '[class.inline]': 'inline'\n },\n preserveWhitespaces: false\n})\nexport class BbiCheckboxGroup {\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n\n // Grouped.\n @Input()\n get grouped(): boolean {\n return this._grouped;\n }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n // Required.\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n // Inline.\n @Input()\n get inline(): boolean {\n return this._inline;\n }\n\n set inline(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.inline) {\n this._inline = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _inline: boolean = false;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_label: string | TemplateRef<any> | null | undefined;\n static ngAcceptInputType_grouped: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_inline: BooleanInput;\n\n}\n","<label *ngIf=\"label as labelContent\"\n class=\"bbi-checkbox-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-checkbox-group-items\">\n <ng-content select=\"bbi-checkbox\"></ng-content>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input, Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bbi-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true}\n ],\n host: {\n 'class': 'bbi-checkbox',\n '[class.grouped]': 'grouped',\n '[class.indeterminate]': 'indeterminate',\n '[class.required]': 'required'\n },\n preserveWhitespaces: false\n})\nexport class BbiCheckbox implements ControlValueAccessor, AfterViewInit {\n\n // Readonly data.\n readonly labelId = `bbi-checkbox-${nextUniqueId++}`;\n\n // Views.\n @ViewChild('input', {static: true}) inputElementRef: ElementRef<HTMLInputElement>;\n\n // Outputs.\n @Output() checkedChange = new EventEmitter<boolean>();\n @Output() indeterminateChange = new EventEmitter<boolean>();\n\n // Checked.\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.checked) {\n this._checked = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n // Disabled.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // Grouped.\n @Input()\n get grouped(): boolean {\n return this._grouped;\n }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n // Indeterminate.\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: BooleanInput) {\n this._indeterminate = coerceBooleanProperty(value);\n this.syncField('indeterminate', this._indeterminate);\n }\n\n private _indeterminate: boolean = false;\n\n // Required.\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n // Hide text.\n @Input()\n get hideText(): boolean {\n return this._hideText;\n }\n\n set hideText(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.hideText) {\n this._hideText = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _hideText: boolean = false;\n\n // Methods.\n onChange: (newValue: boolean) => void = () => ({});\n onTouched: () => void = () => ({});\n\n constructor(private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n this.syncField('indeterminate', this._indeterminate);\n }\n\n registerOnChange(fn: (newValue: boolean) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(newValue: boolean) {\n this.checked = !!newValue;\n }\n\n toggle() {\n this.checked = !this.checked;\n }\n\n onClickEvent(event: Event) {\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate) {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n\n onChangeEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n private emitChangeEvent() {\n this.onChange?.(this.checked);\n this.checkedChange.emit(this.checked);\n this.syncField('checked', this.checked);\n }\n\n private syncField(field: string, value: boolean) {\n const element = this.inputElementRef?.nativeElement;\n if (!element) {\n return;\n }\n this._renderer.setProperty(element, field, value);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_checked: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_grouped: BooleanInput;\n static ngAcceptInputType_indeterminate: BooleanInput;\n static ngAcceptInputType_hideText: BooleanInput;\n\n}\n","<input #input\n [id]=\"labelId\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onClickEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-checkbox-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-checkbox-label\">\n <span *ngIf=\"!hideText\"\n class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\n</label>\n","import {BbiCheckboxGroup} from './checkbox-group/checkbox-group.component';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {BbiCheckbox} from './checkbox/checkbox.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule, UtilsModule],\n declarations: [BbiCheckbox, BbiCheckboxGroup],\n exports: [BbiCheckbox, BbiCheckboxGroup]\n})\nexport class CheckboxModule {\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n@Component({\n selector: 'bbi-toggle-group',\n templateUrl: './toggle-group.component.html',\n styleUrls: ['./toggle-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bbi-toggle-group',\n '[class.grouped]': 'grouped',\n '[class.required]': 'required',\n '[class.inline]': 'inline'\n },\n preserveWhitespaces: false\n})\nexport class BbiToggleGroup {\n\n // Inputs.\n @Input() label: string| TemplateRef<any> | null = null;\n\n // Grouped.\n @Input()\n get grouped(): boolean { return this._grouped; }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n // Required.\n @Input()\n get required(): boolean { return this._required; }\n\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n // Inline.\n @Input()\n get inline(): boolean { return this._inline; }\n\n set inline(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.inline) {\n this._inline = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _inline: boolean = false;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_label: string | TemplateRef<any> | null | undefined;\n static ngAcceptInputType_grouped: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_inline: BooleanInput;\n\n}\n","<label *ngIf=\"label as labelContent\"\n class=\"bbi-toggle-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-toggle-group-items\">\n <ng-content select=\"bbi-toggle\"></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input, Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bbi-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiToggle), multi: true}\n ],\n host: {\n 'class': 'bbi-toggle',\n '[class.grouped]': 'grouped',\n '[class.required]': 'required'\n },\n preserveWhitespaces: false\n})\nexport class BbiToggle implements ControlValueAccessor {\n\n // Readonly data.\n readonly labelId = `bbi-toggle-${nextUniqueId++}`;\n\n // Views.\n @ViewChild('input', {static: true}) inputElementRef: ElementRef<HTMLInputElement>;\n\n // Outputs.\n @Output() checkedChange = new EventEmitter<boolean>();\n\n // Checked.\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.checked) {\n this._checked = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n // Disabled.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // Grouped.\n @Input()\n get grouped(): boolean {\n return this._grouped;\n }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n // Required.\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n // Hide text.\n @Input()\n get hideText(): boolean {\n return this._hideText;\n }\n\n set hideText(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.hideText) {\n this._hideText = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _hideText: boolean = false;\n\n // Methods.\n onChange: (newValue: boolean) => void = () => ({});\n onTouched: () => void = () => ({});\n\n constructor(private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n registerOnChange(fn: (newValue: boolean) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(newValue: boolean) {\n this.checked = !!newValue;\n }\n\n toggle() {\n this.checked = !this.checked;\n }\n\n onClickEvent(event: Event) {\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n\n this.toggle();\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n }\n\n onChangeEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n private emitChangeEvent() {\n this.onChange?.(this.checked);\n this.checkedChange.emit(this.checked);\n this.syncField('checked', this.checked);\n }\n\n private syncField(field: string, value: boolean) {\n const element = this.inputElementRef?.nativeElement;\n if (!element) {\n return;\n }\n this._renderer.setProperty(element, field, value);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_checked: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_grouped: BooleanInput;\n static ngAcceptInputType_hideText: BooleanInput;\n\n}\n","<input #input\n [id]=\"labelId\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"onChangeEvent($event)\"\n (click)=\"onClickEvent($event)\"\n (blur)=\"onTouched()\"\n class=\"bbi-toggle-input\"\n type=\"checkbox\">\n<label [attr.for]=\"labelId\"\n class=\"bbi-toggle-label\">\n <div class=\"bbi-toggle-switch\"></div>\n <span *ngIf=\"!hideText\"\n class=\"bbi-toggle-text\"><ng-content></ng-content></span>\n</label>\n","import {BbiToggleGroup} from './toggle-group/toggle-group.component';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {BbiToggle} from './toggle/toggle.component';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule, UtilsModule],\n declarations: [BbiToggle, BbiToggleGroup],\n exports: [BbiToggle, BbiToggleGroup]\n})\nexport class ToggleModule {\n}\n","import {ControlErrorMode} from './control-error.interface';\nimport {NgControl} from '@angular/forms';\n\nexport function shouldShowErrors(mode: ControlErrorMode, control: NgControl, submitted: boolean, focused: boolean, readonly: boolean) {\n if (mode === 'hidden' || readonly || control?.disabled) {\n return false;\n }\n\n // When submitted always show the errors.\n if (submitted && !focused) {\n return true;\n }\n\n // We want to show changes even when the user is focused.\n if (mode === 'changes') {\n return control?.dirty ?? false;\n }\n\n // On blur show the error.\n if (mode === 'blur' && !focused) {\n return control?.touched ?? false;\n }\n\n // Must not show the errors.\n return false;\n}\n","import {BehaviorSubject, fromEvent, merge, Subscription} from 'rxjs';\nimport {Directive, ElementRef, OnInit} from '@angular/core';\nimport {map} from 'rxjs/operators';\n\n@Directive({\n selector: 'form',\n exportAs: 'bbiControlErrorSubmit'\n})\nexport class BbiControlErrorSubmit implements OnInit {\n\n // State.\n private _submitted$ = new BehaviorSubject(false);\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _elementRef: ElementRef<HTMLFormElement>) {\n }\n\n ngOnInit() {\n this.handleNativeForm();\n }\n\n get submitted() {\n return this._submitted$.getValue();\n }\n\n submit() {\n this._submitted$.next(true);\n }\n\n reset() {\n this._submitted$.next(false);\n }\n\n private handleNativeForm() {\n const element = this._elementRef?.nativeElement;\n if (!element) {\n return;\n }\n\n const formSubmit$ = fromEvent(element, 'submit').pipe(\n map(() => true)\n );\n\n const formReset$ = fromEvent(element, 'reset').pipe(\n map(() => false)\n );\n\n const subscription = merge(formSubmit$, formReset$).subscribe(submitted => {\n this._submitted$.next(submitted);\n });\n this._subscription.add(subscription);\n }\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport type ControlErrorData = { [key: string]: any };\n\nexport type ControlError = {\n [name: string]: (data: ControlErrorData) => string | { token: string, data: object };\n}\n\nexport const BBI_CONTROL_ERRORS: InjectionToken<ControlError[]> = new InjectionToken('bbi_control_errors');\n\nexport type ControlErrorMode = 'blur' | 'changes' | 'hidden';\n","import {animate, style, transition, trigger} from '@angular/animations';\n\nexport const controlErrorAnimation = trigger('errorAnimation', [\n transition(':enter', [\n style({height: 0, opacity: 0, overflow: 'hidden'}),\n animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({height: '*'})),\n animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 1}))\n ]),\n transition(':leave', [\n style({overflow: 'hidden'}),\n animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({opacity: 0})),\n animate('150ms cubic-bezier(0, 0, 0.2, 1)', style({height: 0}))\n ])\n]);\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {BBI_CONTROL_ERRORS, ControlError} from '../control-error.interface';\nimport {controlErrorAnimation} from './control-error.animation';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {ValidationErrors} from '@angular/forms';\n\n@Component({\n selector: 'bbi-control-error',\n templateUrl: './control-error.component.html',\n styleUrls: ['./control-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bbi-control-error'},\n preserveWhitespaces: false,\n animations: [controlErrorAnimation]\n})\nexport class BbiControlError {\n\n // Readonly data.\n readonly errorFunctions: ControlError = (this._functions ?? [])\n .reduce((previous, current) => ({...previous, ...current}), {});\n\n // Host bindings.\n @HostBinding('@errorAnimation') animation: boolean = true;\n\n // Inputs.\n @Input()\n set errors(errors: ValidationErrors | null) {\n this.error = this.parseError(errors);\n }\n\n // State.\n error: string | null = null;\n\n constructor(@Optional() private _localize?: Localize,\n @Optional() @Inject(BBI_CONTROL_ERRORS) private _functions?: ControlError[]) {\n }\n\n private parseError(errors: ValidationErrors | null) {\n const errorName = Object.keys(errors ?? {})?.[0] ?? null;\n if (!errorName) {\n return null;\n }\n\n const errorFunction = this.errorFunctions?.[errorName] ?? this.errorFunctions?.['unknown'] ?? null;\n if (!errorFunction) {\n return null;\n }\n\n const errorData = errors?.[errorName] ?? {};\n const result = errorFunction(errorData);\n if (!result) {\n return null;\n }\n\n const resultObject = typeof result === 'string' ? {token: result} : result;\n return this.getErrorSentence(resultObject);\n }\n\n private getErrorSentence(data: { token: string }) {\n return !!this._localize\n ? this._localize.translate(data)\n : data?.token;\n }\n\n}\n","{{ error ?? '...' }}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DoCheck, EventEmitter, forwardRef, Injector, Input, Optional, Output, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, ValidationErrors} from '@angular/forms';\nimport {BbiControlErrorSubmit} from '../../control-error/control-error-submit.directive';\nimport {ControlErrorMode} from '../../control-error/control-error.interface';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {shouldShowErrors} from '../../control-error/control-error.utils';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bbi-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiRadioGroup), multi: true}\n ],\n host: {\n 'class': 'bbi-radio-group',\n '[class.disabled]': 'disabled',\n '[class.readonly]': 'readonly',\n '[class.grouped]': 'grouped',\n '[class.required]': 'required',\n '[class.inline]': 'inline',\n '[class.error]': 'validationErrors$?.getValue()'\n },\n preserveWhitespaces: false\n})\nexport class BbiRadioGroup implements DoCheck, ControlValueAccessor {\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() errorMode: ControlErrorMode = 'blur';\n\n // Outputs.\n @Output() valueChange = new EventEmitter<any>();\n\n // State.\n validationErrors$ = new BehaviorSubject<ValidationErrors | null>(null);\n\n // Value.\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n private _value: any = null;\n\n // Disabled.\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // Grouped.\n @Input()\n get grouped(): boolean {\n return this._grouped;\n }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n // Readonly.\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n\n set readonly(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._readonly = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _readonly: boolean = false;\n\n // Required.\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n // Inline.\n @Input()\n get inline(): boolean {\n return this._inline;\n }\n\n set inline(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.inline) {\n this._inline = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _inline: boolean = false;\n\n // Methods.\n onChange: (newValue: any) => void = () => ({});\n onTouched: () => void = () => ({});\n\n constructor(private _injector: Injector,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _errorSubmit?: BbiControlErrorSubmit) {\n }\n\n ngDoCheck() {\n const control = this._injector.get(NgControl);\n const submitted = this._errorSubmit?.submitted;\n const hasErrors = shouldShowErrors(this.errorMode, control, submitted, false, this.readonly);\n const errors = control?.errors ?? null;\n const newValue = hasErrors ? errors : null;\n\n const equal = JSON.stringify(newValue) === JSON.stringify(this.validationErrors$.getValue());\n if (equal) {\n return;\n }\n\n this.validationErrors$.next(newValue);\n }\n\n select(value: any) {\n if (this.value === value || this.disabled || this.readonly) {\n return;\n }\n this.value = value;\n this.onChange?.(this.value);\n this.valueChange.emit(this.value);\n this.onTouched?.();\n }\n\n registerOnChange(fn: (newValue: boolean) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(newValue: any) {\n this.value = newValue;\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_label: string | TemplateRef<any> | null | undefined;\n static ngAcceptInputType_value: any;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_grouped: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n static ngAcceptInputType_inline: BooleanInput;\n static ngAcceptInputType_errorMode: ControlErrorMode;\n\n}\n","<label *ngIf=\"label as labelContent\"\n class=\"bbi-radio-group-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-radio-group-items\">\n <ng-content select=\"bbi-radio-button\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"validationErrors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Input, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BbiRadioGroup} from '../radio-group/radio-group.component';\n\n@Component({\n selector: 'bbi-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bbi-radio-button',\n '[class.disabled]': 'disabled',\n '[tabindex]': 'disabled ? -1 : 0'\n },\n preserveWhitespaces: false\n})\nexport class BbiRadioButton {\n\n // Inputs.\n @Input() value: any | null = null;\n\n // Disabled.\n @Input()\n get disabled(): boolean {\n return this._radioGroup?.disabled || this._disabled;\n }\n\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // Hide text.\n @Input()\n get hideText(): boolean {\n return this._hideText;\n }\n\n set hideText(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.hideText) {\n this._hideText = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _hideText: boolean = false;\n\n @HostListener('click')\n onClick() {\n if (this.disabled) {\n return;\n }\n this._radioGroup.select(this.value);\n }\n\n @HostListener('keydown.space')\n onSpacePressed() {\n return this.onClick();\n }\n\n @HostBinding('class.selected')\n get selected() {\n return this._radioGroup?.value === this.value;\n }\n\n constructor(private _radioGroup: BbiRadioGroup,\n private _changeDetectorRef: ChangeDetectorRef) {\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_value: any;\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_hideText: BooleanInput;\n\n}\n","<div class=\"bbi-radio-button-indicator\"></div>\n<span *ngIf=\"!hideText\"\n class=\"bbi-radio-button-text\"><ng-content></ng-content></span>\n","import {BbiControlError} from './control-error/control-error.component';\nimport {BbiControlErrorSubmit} from './control-error-submit.directive';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BbiControlError, BbiControlErrorSubmit],\n exports: [BbiControlError, BbiControlErrorSubmit]\n})\nexport class ControlErrorModule {\n}\n","import {ControlErrorModule} from '../control-error/control-error.module';\nimport {BbiRadioButton} from './radio-button/radio-button.component';\nimport {BbiRadioGroup} from './radio-group/radio-group.component';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule, ControlErrorModule, UtilsModule],\n declarations: [BbiRadioGroup, BbiRadioButton],\n exports: [BbiRadioGroup, BbiRadioButton]\n})\nexport class RadioModule {\n}\n","import {ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnDestroy, OnInit, Optional, Self} from '@angular/core';\nimport {delay, distinctUntilChanged, map, pairwise, startWith, switchMap} from 'rxjs/operators';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {NgControl, ValidationErrors, Validators} from '@angular/forms';\nimport {BbiFormControl} from './form-control/form-control.component';\nimport {fromEvent, merge, of, Subscription} from 'rxjs';\n\n@Directive({\n selector: 'input[bbiFormControlInput]'\n})\nexport class BbiFormControlInput implements OnInit, OnDestroy {\n\n // Readonly data.\n @HostBinding('attr.id') readonly labelId: string = this._formControl?.labelId ?? null;\n\n // State.\n errors: ValidationErrors | null = null;\n focused: boolean = false;\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _elementRef: ElementRef,\n private _formControl: BbiFormControl,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Self() private _ngControl: NgControl) {\n }\n\n ngOnInit() {\n this.handleControlDisabledStatus();\n this.handleControlErrorStatus();\n this.handleFocusedState();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n get control() {\n return this._ngControl ?? null;\n }\n\n get disabled(): boolean { return this._disabled; }\n\n @Input()\n set disabled(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n get readonly(): boolean { return this._readonly; }\n\n @Input()\n set readonly(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.readonly) {\n this._readonly = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _readonly: boolean = false;\n\n get required() {\n if (this._ngControl) {\n return this._ngControl?.control?.hasValidator(Validators.required);\n }\n return this._required;\n }\n\n @HostBinding('required')\n @Input()\n set required(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.required) {\n this._required = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _required: boolean = false;\n\n private handleControlErrorStatus() {\n if (!this._ngControl) {\n return;\n }\n\n const errors$ = this._ngControl.statusChanges.pipe(\n startWith(this._ngControl.status),\n map(() => this._ngControl?.errors ?? null)\n );\n\n const subscription = errors$.subscribe(errors => {\n this.errors = errors;\n this._changeDetectorRef.markForCheck();\n });\n this._subscription.add(subscription);\n }\n\n private handleControlDisabledStatus() {\n if (!this._ngControl) {\n return;\n }\n\n const disabled$ = this._ngControl.statusChanges.pipe(\n startWith(this._ngControl.status),\n map(status => status === 'DISABLED'),\n distinctUntilChanged()\n );\n\n const subscription = disabled$.subscribe(disabled => {\n this.disabled = disabled;\n });\n this._subscription.add(subscription);\n }\n\n private handleFocusedState() {\n const focus$ = fromEvent(this._elementRef.nativeElement, 'focus').pipe(\n map(() => true)\n );\n const blur$ = fromEvent(this._elementRef.nativeElement, 'blur').pipe(\n map(() => false)\n );\n\n const focused$ = merge(focus$, blur$).pipe(\n startWith(false),\n pairwise(),\n switchMap(([oldValue, currentValue]) => {\n if (oldValue && !currentValue) {\n return of(currentValue).pipe(delay(100));\n }\n\n return of(currentValue);\n }),\n distinctUntilChanged()\n );\n\n const subscription = focused$.subscribe(focused => this.focused = focused);\n this._subscription.add(subscription);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DoCheck, Input, Optional, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {BbiControlErrorSubmit} from '../../control-error/control-error-submit.directive';\nimport {ControlErrorMode} from '../../control-error/control-error.interface';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {shouldShowErrors} from '../../control-error/control-error.utils';\nimport {BbiFormControlInput} from '../form-control-input.directive';\nimport {ValidationErrors} from '@angular/forms';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bbi-form-control',\n templateUrl: './form-control.component.html',\n styleUrls: ['./form-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bbi-form-control',\n '[class.grouped]': 'grouped',\n '[class.disabled]': 'formControlInput?.disabled',\n '[class.required]': 'formControlInput?.required',\n '[class.readonly]': 'formControlInput?.readonly',\n '[class.focused]': 'formControlInput?.focused',\n '[class.error]': 'validationErrors$?.getValue()'\n },\n preserveWhitespaces: false\n})\nexport class BbiFormControl implements DoCheck {\n\n // Readonly data.\n readonly labelId: string = `bbi-form-control-${nextUniqueId++}`;\n\n // Views.\n @ContentChild(BbiFormControlInput, {static: false}) formControlInput?: BbiFormControlInput;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() errorMode: ControlErrorMode = 'blur';\n\n // State.\n validationErrors$ = new BehaviorSubject<ValidationErrors | null>(null);\n\n // Grouped.\n @Input()\n get grouped(): boolean {\n return this._grouped;\n }\n\n set grouped(value: BooleanInput) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this.grouped) {\n this._grouped = newValue;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _grouped: boolean = false;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _errorSubmit?: BbiControlErrorSubmit) {\n }\n\n ngDoCheck() {\n const control = this.formControlInput?.control;\n const submitted = this._errorSubmit?.submitted;\n const focused = this.formControlInput?.focused;\n const readonly = this.formControlInput?.readonly;\n const hasErrors = shouldShowErrors(this.errorMode, control, submitted, focused, readonly);\n const errors = this.formControlInput?.errors ?? null;\n const newValue = hasErrors ? errors : null;\n\n const equal = JSON.stringify(newValue) === JSON.stringify(this.validationErrors$.getValue());\n if (equal) {\n return;\n }\n\n this.validationErrors$.next(newValue);\n }\n\n // Required so that the template type checker can infer the type of the coerced inputs.\n static ngAcceptInputType_label: string | TemplateRef<any> | null | undefined;\n static ngAcceptInputType_hint: string | TemplateRef<any> | null | undefined;\n static ngAcceptInputType_errorMode: ControlErrorMode;\n static ngAcceptInputType_grouped: BooleanInput;\n\n}\n","<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bbi-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">{{ labelContent }}</ng-template>\n</label>\n\n<div class=\"bbi-form-control-container\">\n <ng-content select=\"[bbi-form-control-addon=prefix]\"></ng-content>\n <ng-content select=\"input[bbiFormControlInput]\"></ng-content>\n <ng-content select=\"[bbi-form-control-addon=suffix]\"></ng-content>\n</div>\n\n<bbi-control-error *ngIf=\"validationErrors$ | async as errors\"\n [errors]=\"errors\">\n</bbi-control-error>\n\n<div *ngIf=\"hint as hintContent\"\n class=\"bbi-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">{{ hintContent }}</ng-template>\n</div>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: '[bbi-form-control-addon]',\n templateUrl: './form-control-addon.component.html',\n styleUrls: ['./form-control-addon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bbi-form-control-addon',\n '[class.prefix]': 'type === \\'prefix\\'',\n '[class.suffix]': 'type === \\'suffix\\''\n },\n preserveWhitespaces: false\n})\nexport class BbiFormControlAddon {\n\n // Inputs.\n @Input('bbi-form-control-addon') type: 'prefix' | 'suffix' | null = null;\n\n}\n","<ng-content></ng-content>\n","import {BbiFormControlAddon} from './form-control-addon/form-control-addon.component';\nimport {ControlErrorModule} from '../control-error/control-error.module';\nimport {BbiFormControl} from './form-control/form-control.component';\nimport {BbiFormControlInput} from './form-control-input.directive';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [CommonModule, ControlErrorModule, UtilsModule],\n declarations: [\n BbiFormControl,\n BbiFormControlInput,\n BbiFormControlAddon\n ],\n exports: [\n BbiFormControl,\n BbiFormControlInput,\n BbiFormControlAddon\n ]\n})\nexport class FormControlModule {\n}\n","import {ControlError} from './control-error.interface';\n\nexport const controlErrorDefaults: ControlError = {\n unknown: () => 'form-control-errors.unknown',\n required: () => 'form-control-errors.required',\n pattern: () => 'form-control-errors.pattern',\n email: () => 'form-control-errors.email',\n emailTaken: () => 'form-control-errors.emailTaken',\n passwordMatch: () => 'form-control-errors.passwordMatch',\n confirm: () => 'form-control-errors.confirm',\n fullNumber: () => 'form-control-errors.fullNumber',\n min: ({min}) => ({token: 'form-control-errors.min', data: {min}}),\n max: ({max}) => ({token: 'form-control-errors.max', data: {max}}),\n maxFileSize: ({maxSize}) => ({token: 'form-control-errors.maxFileSize', data: {maxSize}}),\n minDate: ({date}) => ({token: 'form-control-errors.minDate', data: {date}}),\n maxDate: ({date}) => ({token: 'form-control-errors.maxDate', data: {date}}),\n invalidDate: () => 'form-control-errors.invalidDate',\n invalidFileType: () => 'form-control-errors.invalidFileType',\n minlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.minlength',\n data: {requiredLength, actualLength}\n }),\n maxlength: ({requiredLength, actualLength}) => ({\n token: 'form-control-errors.maxlength',\n data: {requiredLength, actualLength}\n })\n};\n","import {controlErrorDefaults} from './control-error/control-error.defaults';\nimport {BBI_CONTROL_ERRORS} from './control-error/control-error.interface';\nimport {ControlErrorModule} from './control-error/control-error.module';\nimport {FormControlModule} from './form-control/form-control.module';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CheckboxModule} from './checkbox/checkbox.module';\nimport {ControlsConfig} from './controls.interfaces';\nimport {ToggleModule} from './toggle/toggle.module';\nimport {RadioModule} from './radio/radio.module';\n\n@NgModule({\n imports: [\n FormControlModule,\n CheckboxModule,\n RadioModule,\n ToggleModule,\n ControlErrorModule\n ],\n exports: [\n FormControlModule,\n CheckboxModule,\n RadioModule,\n ToggleModule,\n ControlErrorModule\n ]\n})\nexport class ControlsModule {\n\n static forRoot(config?: ControlsConfig): ModuleWithProviders<ControlsModule> {\n return {\n ngModule: ControlsModule,\n providers: [\n {\n provide: BBI_CONTROL_ERRORS,\n useValue: {...controlErrorDefaults, ...(config?.errors ?? {})},\n multi: true\n }\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","nextUniqueId","i1.BbiControlErrorSubmit","i3.BbiControlError","i4","i1.BbiRadioGroup","i1.BbiFormControl"],"mappings":"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"}
@@ -1,381 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { RendererStyleFlags2, Directive, Input, NgModule } from '@angular/core';
3
-
4
- class BbiTheming {
5
- // Inputs.
6
- set theme(theme) {
7
- this._theme = theme;
8
- this.setTheme();
9
- }
10
- constructor(_renderer, _elementRef) {
11
- this._renderer = _renderer;
12
- this._elementRef = _elementRef;
13
- // Cache.
14
- this._theme = null;
15
- }
16
- setTheme() {
17
- if (!this._theme) {
18
- return;
19
- }
20
- const variables = this._theme.variables();
21
- const element = this._elementRef.nativeElement;
22
- for (const key in variables) {
23
- const value = variables?.[key];
24
- this._renderer.setStyle(element, key, value, RendererStyleFlags2.DashCase);
25
- }
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbiTheming, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
28
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BbiTheming, selector: "[bbiTheming]", inputs: { theme: ["bbiTheming", "theme"] }, ngImport: i0 }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbiTheming, decorators: [{
31
- type: Directive,
32
- args: [{
33
- selector: '[bbiTheming]'
34
- }]
35
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { theme: [{
36
- type: Input,
37
- args: ['bbiTheming']
38
- }] } });
39
-
40
- function formControlAddonThemeFactory() {
41
- return {
42
- spacing: '10px'
43
- };
44
- }
45
-
46
- function checkboxGroupThemeFactory() {
47
- return {
48
- grouping: '20px',
49
- label: {
50
- color: '#525252',
51
- offset: '4px',
52
- fontSize: '14px',
53
- fontWeight: '400',
54
- lineHeight: '1.33'
55
- },
56
- spacing: {
57
- horizontal: '10px',
58
- vertical: '4px'
59
- }
60
- };
61
- }
62
-
63
- class ThemeVariableFunction {
64
- constructor(_key) {
65
- this._key = _key;
66
- }
67
- toString(variables) {
68
- const value = variables?.[this._key] ?? null;
69
- if (!value) {
70
- throw new Error(`Invalid variable key "${this._key}"`);
71
- }
72
- return !!value ? this.format(value) : null;
73
- }
74
- }
75
- class ThemeColorVariable extends ThemeVariableFunction {
76
- constructor(key) {
77
- super(key);
78
- // State.
79
- this._opacity = 1;
80
- }
81
- format(value) {
82
- const rgb = this.hexToRgb(value);
83
- return this.toRgba(rgb);
84
- }
85
- opacity(value) {
86
- this._opacity = value;
87
- return this;
88
- }
89
- toRgba(data) {
90
- return `rgba(${data?.red},${data?.green},${data?.blue},${this._opacity})`;
91
- }
92
- hexToRgb(value) {
93
- const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(value);
94
- if (!result) {
95
- throw new Error(`Invalid color format for "${value}". Only hex is currently supported.`);
96
- }
97
- const red = parseInt(result?.[1], 16);
98
- const green = parseInt(result?.[2], 16);
99
- const blue = parseInt(result?.[3], 16);
100
- return { red, green, blue };
101
- }
102
- }
103
-
104
- function controlErrorThemeFactory() {
105
- return {
106
- color: new ThemeColorVariable('errorColor'),
107
- fontSize: '13px',
108
- lineHeight: '1.5',
109
- fontWeight: '400',
110
- spacing: '4px'
111
- };
112
- }
113
-
114
- function formControlThemeFactory() {
115
- const errorColorKey = 'errorColor';
116
- const inputColor = '#111111';
117
- const backgroundColor = '#ffffff';
118
- return {
119
- grouping: '20px',
120
- color: inputColor,
121
- background: backgroundColor,
122
- error: {
123
- color: new ThemeColorVariable(errorColorKey),
124
- background: new ThemeColorVariable(errorColorKey).opacity(0.1),
125
- placeholderColor: new ThemeColorVariable(errorColorKey).opacity(0.4)
126
- },
127
- border: {
128
- radius: '6px',
129
- width: '1px',
130
- style: 'solid',
131
- color: 'rgba(67, 90, 111, 0.3)'
132
- },
133
- focused: {
134
- color: inputColor,
135
- background: backgroundColor,
136
- border: {
137
- radius: '6px',
138
- width: '1px',
139
- style: 'solid',
140
- color: '#212121'
141
- },
142
- shadow: '0 0 0 3px rgba(0, 123, 255, 0.2)'
143
- },
144
- disabled: {
145
- color: inputColor,
146
- background: backgroundColor,
147
- border: {
148
- radius: '6px',
149
- width: '1px',
150
- style: 'solid',
151
- color: '#212121'
152
- },
153
- opacity: '0.25'
154
- }
155
- };
156
- }
157
-
158
- function toggleGroupThemeFactory() {
159
- return {
160
- grouping: '20px',
161
- label: {
162
- color: '#525252',
163
- offset: '4px',
164
- fontSize: '14px',
165
- fontWeight: '400',
166
- lineHeight: '1.33'
167
- },
168
- spacing: {
169
- horizontal: '10px',
170
- vertical: '4px'
171
- }
172
- };
173
- }
174
-
175
- function radioButtonThemeFactory() {
176
- const accentColor = new ThemeColorVariable('accentColor');
177
- return {
178
- size: '20px',
179
- colors: {
180
- accent: accentColor,
181
- disabled: '#c6c6c6'
182
- },
183
- border: {
184
- color: '#111111',
185
- thickness: '1px',
186
- radius: '50%'
187
- },
188
- outline: {
189
- color: accentColor,
190
- offset: '1px',
191
- thickness: '2px'
192
- },
193
- label: {
194
- color: '#111111',
195
- offset: '6px',
196
- fontSize: '16px',
197
- fontWeight: '400',
198
- lineHeight: '1.28'
199
- }
200
- };
201
- }
202
-
203
- function radioGroupThemeFactory() {
204
- const errorColor = new ThemeColorVariable('errorColor');
205
- return {
206
- grouping: '20px',
207
- error: errorColor,
208
- label: {
209
- color: '#525252',
210
- offset: '4px',
211
- fontSize: '14px',
212
- fontWeight: '400',
213
- lineHeight: '1.33'
214
- },
215
- spacing: {
216
- horizontal: '10px',
217
- vertical: '4px'
218
- }
219
- };
220
- }
221
-
222
- function checkboxThemeFactory() {
223
- const accentColor = new ThemeColorVariable('accentColor');
224
- return {
225
- size: '20px',
226
- grouping: '20px',
227
- colors: {
228
- accent: accentColor,
229
- disabled: '#c6c6c6'
230
- },
231
- border: {
232
- color: '#111111',
233
- thickness: '1px',
234
- radius: '4px'
235
- },
236
- outline: {
237
- color: accentColor,
238
- offset: '1px',
239
- thickness: '2px'
240
- },
241
- check: {
242
- size: '12px',
243
- color: 'white',
244
- thickness: '2px'
245
- },
246
- label: {
247
- color: '#111111',
248
- offset: '6px',
249
- fontSize: '16px',
250
- fontWeight: '400',
251
- lineHeight: '1.28'
252
- }
253
- };
254
- }
255
-
256
- function toggleThemeFactory() {
257
- const accentColor = new ThemeColorVariable('accentColor');
258
- return {
259
- grouping: '20px',
260
- width: '40px',
261
- height: '20px',
262
- colors: {
263
- accent: accentColor,
264
- disabled: '#c6c6c6',
265
- indicator: '#ffffff',
266
- background: '#aeaeae'
267
- },
268
- outline: {
269
- color: accentColor,
270
- offset: '1px',
271
- thickness: '2px'
272
- },
273
- label: {
274
- color: '#111111',
275
- offset: '6px',
276
- fontSize: '16px',
277
- fontWeight: '400',
278
- lineHeight: '1.28'
279
- }
280
- };
281
- }
282
-
283
- class Theme {
284
- constructor(theme) {
285
- this.isObject = (item) => {
286
- return (item && typeof item === 'object' && !Array.isArray(item));
287
- };
288
- const defaultFactories = this.defaultFactories();
289
- this.data = this.mergeThemeData(defaultFactories, theme);
290
- this.globals = this.getGlobals();
291
- }
292
- variables() {
293
- return this.getContents(this.data);
294
- }
295
- defaultFactories() {
296
- return {
297
- accentColor: '#1565c0',
298
- errorColor: '#bd322a',
299
- formControl: formControlThemeFactory(),
300
- formControlAddon: formControlAddonThemeFactory(),
301
- checkbox: checkboxThemeFactory(),
302
- checkboxGroup: checkboxGroupThemeFactory(),
303
- radioButton: radioButtonThemeFactory(),
304
- radioGroup: radioGroupThemeFactory(),
305
- toggle: toggleThemeFactory(),
306
- toggleGroup: toggleGroupThemeFactory(),
307
- controlError: controlErrorThemeFactory()
308
- };
309
- }
310
- getContents(data, scope = null) {
311
- return Object.keys(data).reduce((previous, current) => {
312
- const value = data?.[current];
313
- const token = this.getToken(current, scope);
314
- if (typeof value === 'object' && value !== null && !(value instanceof ThemeVariableFunction)) {
315
- const formatted = this.getContents(value, token);
316
- return { ...previous, ...formatted };
317
- }
318
- const formattedValue = (value instanceof ThemeVariableFunction)
319
- ? value.toString(this.globals)
320
- : value;
321
- if (!formattedValue) {
322
- return previous;
323
- }
324
- return { ...previous, [`--${token}`]: formattedValue };
325
- }, {});
326
- }
327
- getToken(key, scope) {
328
- const token = this.tokenize(key);
329
- return [scope, token].filter(item => !!item).join('-');
330
- }
331
- tokenize(value) {
332
- const result = value.replace(/([A-Z])/g, ' $1');
333
- return result.split(' ').join('-').toLowerCase();
334
- }
335
- mergeThemeData(target, ...sources) {
336
- if (!sources?.length) {
337
- return target;
338
- }
339
- const source = sources.shift();
340
- if (this.isObject(target) && this.isObject(source)) {
341
- for (const key in source) {
342
- if (this.isObject(source[key])) {
343
- if (!target[key]) {
344
- Object.assign(target, { [key]: {} });
345
- }
346
- this.mergeThemeData(target[key], source[key]);
347
- }
348
- else {
349
- Object.assign(target, { [key]: source[key] });
350
- }
351
- }
352
- }
353
- return this.mergeThemeData(target, ...sources);
354
- }
355
- getGlobals() {
356
- return {
357
- accentColor: this.data.accentColor,
358
- errorColor: this.data.errorColor
359
- };
360
- }
361
- }
362
-
363
- class ThemingModule {
364
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ThemingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
365
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ThemingModule, declarations: [BbiTheming], exports: [BbiTheming] }); }
366
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ThemingModule }); }
367
- }
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ThemingModule, decorators: [{
369
- type: NgModule,
370
- args: [{
371
- declarations: [BbiTheming],
372
- exports: [BbiTheming]
373
- }]
374
- }] });
375
-
376
- /**
377
- * Generated bundle index. Do not edit.
378
- */
379
-
380
- export { BbiTheming, Theme, ThemeColorVariable, ThemeVariableFunction, ThemingModule, checkboxGroupThemeFactory, checkboxThemeFactory, formControlAddonThemeFactory, formControlThemeFactory };
381
- //# sourceMappingURL=bravobit-bb-foundation-theming.mjs.map