@bravobit/bb-foundation 0.26.3 → 0.27.0

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 (490) hide show
  1. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  2. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  3. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  4. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
  5. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  6. package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
  7. package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
  8. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
  9. package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
  10. package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
  11. package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
  12. package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
  13. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
  14. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  19. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  20. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  21. package/elements/lib/button/button.component.d.ts +2 -2
  22. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  23. package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
  24. package/elements/lib/directives/input.directive.d.ts +2 -2
  25. package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
  26. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  27. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  28. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  29. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  30. package/elements/lib/icon/icon.component.d.ts +1 -1
  31. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  32. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  33. package/esm2022/auth/lib/auth.interceptor.mjs +91 -0
  34. package/esm2022/auth/lib/auth.module.mjs +36 -0
  35. package/esm2022/auth/lib/auth.service.mjs +271 -0
  36. package/esm2022/auth/lib/directives/authenticated.directive.mjs +43 -0
  37. package/esm2022/auth/lib/guards/anonymous.guard.mjs +54 -0
  38. package/esm2022/auth/lib/guards/authenticated.guard.mjs +57 -0
  39. package/esm2022/collections/lib/collections.module.mjs +55 -0
  40. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +124 -0
  41. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +32 -0
  42. package/esm2022/collections/lib/components/collections.directive.mjs +47 -0
  43. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +179 -0
  44. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +69 -0
  45. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +21 -0
  46. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +64 -0
  47. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +48 -0
  48. package/esm2022/controls/lib/control-error/control-error.module.mjs +20 -0
  49. package/esm2022/controls/lib/controls.module.mjs +63 -0
  50. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +80 -0
  51. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +23 -0
  52. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +125 -0
  53. package/esm2022/controls/lib/form-control/form-control.module.mjs +35 -0
  54. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +76 -0
  55. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +169 -0
  56. package/esm2022/controls/lib/radio/radio.module.mjs +22 -0
  57. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +154 -0
  58. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +63 -0
  59. package/esm2022/controls/lib/toggle/toggle.module.mjs +21 -0
  60. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +58 -0
  61. package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +6 -5
  62. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +32 -0
  63. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +30 -0
  64. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +76 -0
  65. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +100 -0
  66. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +63 -0
  67. package/esm2022/dashboard/lib/dashboard.module.mjs +48 -0
  68. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +13 -0
  69. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +47 -0
  70. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +78 -0
  71. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +19 -0
  72. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +12 -0
  73. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +68 -0
  74. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +80 -0
  75. package/esm2022/dialog/lib/dialog.insertion.mjs +17 -0
  76. package/esm2022/dialog/lib/dialog.module.mjs +69 -0
  77. package/esm2022/dialog/lib/dialog.service.mjs +69 -0
  78. package/esm2022/elements/lib/avatar/avatar.component.mjs +150 -0
  79. package/esm2022/elements/lib/button/button.component.mjs +63 -0
  80. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +74 -0
  81. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +308 -0
  82. package/esm2022/elements/lib/directives/addon.directive.mjs +31 -0
  83. package/esm2022/elements/lib/directives/form-submit.directive.mjs +51 -0
  84. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +26 -0
  85. package/esm2022/elements/lib/directives/input.directive.mjs +138 -0
  86. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +102 -0
  87. package/esm2022/elements/lib/elements.module.mjs +178 -0
  88. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +237 -0
  89. package/esm2022/elements/lib/form-control/form-control.component.mjs +50 -0
  90. package/esm2022/elements/lib/form-error/form-error.component.mjs +124 -0
  91. package/esm2022/elements/lib/form-group/form-group.component.mjs +19 -0
  92. package/esm2022/elements/lib/icon/icon.component.mjs +103 -0
  93. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +107 -0
  94. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +44 -0
  95. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +29 -0
  96. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +97 -0
  97. package/esm2022/elements/lib/spinner/spinner.component.mjs +26 -0
  98. package/esm2022/elements/lib/tag/tag.component.mjs +19 -0
  99. package/esm2022/http/lib/http.module.mjs +44 -0
  100. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +51 -0
  101. package/esm2022/http/lib/interceptors/error.interceptor.mjs +33 -0
  102. package/esm2022/lib/core/services/clipboard.service.mjs +71 -0
  103. package/esm2022/lib/core/services/exif.service.mjs +164 -0
  104. package/esm2022/lib/core/services/file-loader.service.mjs +88 -0
  105. package/esm2022/lib/core/services/image-converter.service.mjs +124 -0
  106. package/esm2022/lib/core/services/languages.service.mjs +75 -0
  107. package/esm2022/lib/core/services/network.service.mjs +56 -0
  108. package/esm2022/lib/core/services/patch.service.mjs +64 -0
  109. package/esm2022/localize/lib/localize.module.mjs +82 -0
  110. package/esm2022/localize/lib/localize.pipe.mjs +47 -0
  111. package/esm2022/localize/lib/localize.service.mjs +186 -0
  112. package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +1 -1
  113. package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +1 -1
  114. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +89 -0
  115. package/esm2022/localize/lib/views/localize-template.directive.mjs +22 -0
  116. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +36 -0
  117. package/esm2022/masking/lib/directives/date-mask.directive.mjs +36 -0
  118. package/esm2022/masking/lib/directives/input-mask.directive.mjs +119 -0
  119. package/esm2022/masking/lib/masking.module.mjs +31 -0
  120. package/esm2022/masking/lib/masking.service.mjs +104 -0
  121. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +101 -0
  122. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +48 -0
  123. package/esm2022/notifications/lib/notifications.module.mjs +31 -0
  124. package/esm2022/notifications/lib/notifications.service.mjs +142 -0
  125. package/esm2022/permissions/lib/directives/permission.directive.mjs +89 -0
  126. package/esm2022/permissions/lib/guards/permission.guard.mjs +57 -0
  127. package/esm2022/permissions/lib/permissions.module.mjs +40 -0
  128. package/esm2022/permissions/lib/permissions.service.mjs +97 -0
  129. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +220 -0
  130. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +96 -0
  131. package/esm2022/recaptcha/lib/recaptcha.module.mjs +28 -0
  132. package/esm2022/storage/lib/storage.service.mjs +110 -0
  133. package/esm2022/table/lib/components/table/table.component.mjs +194 -0
  134. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +12 -0
  135. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +132 -0
  136. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +137 -0
  137. package/esm2022/table/lib/table.module.mjs +43 -0
  138. package/esm2022/theming/lib/theming.directive.mjs +39 -0
  139. package/esm2022/theming/lib/theming.module.mjs +17 -0
  140. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +32 -0
  141. package/esm2022/tooltip/lib/tooltip.directive.mjs +141 -0
  142. package/esm2022/tooltip/lib/tooltip.module.mjs +32 -0
  143. package/esm2022/utils/lib/directives/autosize.directive.mjs +73 -0
  144. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +78 -0
  145. package/esm2022/utils/lib/directives/focus.directive.mjs +38 -0
  146. package/esm2022/utils/lib/directives/template.directive.mjs +29 -0
  147. package/esm2022/utils/lib/functions/parse-date.function.mjs +19 -0
  148. package/esm2022/utils/lib/utils.module.mjs +36 -0
  149. package/esm2022/utils/public_api.mjs +7 -0
  150. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +19 -19
  151. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
  152. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
  153. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
  154. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
  155. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
  156. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
  157. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  158. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
  159. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
  160. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
  161. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
  162. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +10 -10
  163. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs.map +1 -1
  164. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
  165. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
  166. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
  167. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
  168. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
  169. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
  170. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
  171. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
  172. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
  173. package/{fesm2015 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  174. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
  175. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
  176. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +34 -34
  177. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs.map +1 -1
  178. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
  179. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
  180. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
  181. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  182. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +42 -23
  183. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -0
  184. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
  185. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
  186. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  187. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  188. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  189. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  190. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  191. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  192. package/package.json +70 -112
  193. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  194. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  195. package/table/lib/components/table/table.component.d.ts +1 -1
  196. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  197. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  198. package/theming/lib/theming.directive.d.ts +1 -1
  199. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  200. package/utils/lib/directives/autosize.directive.d.ts +1 -1
  201. package/utils/lib/directives/template.directive.d.ts +1 -1
  202. package/utils/lib/functions/parse-date.function.d.ts +1 -0
  203. package/utils/public_api.d.ts +1 -0
  204. package/esm2020/auth/lib/auth.interceptor.mjs +0 -90
  205. package/esm2020/auth/lib/auth.module.mjs +0 -35
  206. package/esm2020/auth/lib/auth.service.mjs +0 -270
  207. package/esm2020/auth/lib/directives/authenticated.directive.mjs +0 -42
  208. package/esm2020/auth/lib/guards/anonymous.guard.mjs +0 -53
  209. package/esm2020/auth/lib/guards/authenticated.guard.mjs +0 -56
  210. package/esm2020/collections/lib/collections.module.mjs +0 -54
  211. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -123
  212. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -31
  213. package/esm2020/collections/lib/components/collections.directive.mjs +0 -43
  214. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
  215. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
  216. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +0 -20
  217. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
  218. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
  219. package/esm2020/controls/lib/control-error/control-error.module.mjs +0 -19
  220. package/esm2020/controls/lib/controls.module.mjs +0 -62
  221. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
  222. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
  223. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +0 -124
  224. package/esm2020/controls/lib/form-control/form-control.module.mjs +0 -34
  225. package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
  226. package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
  227. package/esm2020/controls/lib/radio/radio.module.mjs +0 -21
  228. package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
  229. package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
  230. package/esm2020/controls/lib/toggle/toggle.module.mjs +0 -20
  231. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +0 -57
  232. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -31
  233. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -29
  234. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
  235. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -99
  236. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -62
  237. package/esm2020/dashboard/lib/dashboard.module.mjs +0 -47
  238. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
  239. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -46
  240. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +0 -77
  241. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +0 -18
  242. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
  243. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -67
  244. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -79
  245. package/esm2020/dialog/lib/dialog.insertion.mjs +0 -16
  246. package/esm2020/dialog/lib/dialog.module.mjs +0 -68
  247. package/esm2020/dialog/lib/dialog.service.mjs +0 -68
  248. package/esm2020/elements/lib/avatar/avatar.component.mjs +0 -149
  249. package/esm2020/elements/lib/button/button.component.mjs +0 -61
  250. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +0 -73
  251. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
  252. package/esm2020/elements/lib/directives/addon.directive.mjs +0 -29
  253. package/esm2020/elements/lib/directives/form-submit.directive.mjs +0 -50
  254. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +0 -25
  255. package/esm2020/elements/lib/directives/input.directive.mjs +0 -136
  256. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
  257. package/esm2020/elements/lib/elements.module.mjs +0 -177
  258. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
  259. package/esm2020/elements/lib/form-control/form-control.component.mjs +0 -49
  260. package/esm2020/elements/lib/form-error/form-error.component.mjs +0 -123
  261. package/esm2020/elements/lib/form-group/form-group.component.mjs +0 -18
  262. package/esm2020/elements/lib/icon/icon.component.mjs +0 -102
  263. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +0 -106
  264. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +0 -43
  265. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +0 -28
  266. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +0 -96
  267. package/esm2020/elements/lib/spinner/spinner.component.mjs +0 -25
  268. package/esm2020/elements/lib/tag/tag.component.mjs +0 -18
  269. package/esm2020/http/lib/http.module.mjs +0 -43
  270. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
  271. package/esm2020/http/lib/interceptors/error.interceptor.mjs +0 -32
  272. package/esm2020/lib/core/services/clipboard.service.mjs +0 -70
  273. package/esm2020/lib/core/services/exif.service.mjs +0 -163
  274. package/esm2020/lib/core/services/file-loader.service.mjs +0 -87
  275. package/esm2020/lib/core/services/image-converter.service.mjs +0 -123
  276. package/esm2020/lib/core/services/languages.service.mjs +0 -74
  277. package/esm2020/lib/core/services/network.service.mjs +0 -55
  278. package/esm2020/lib/core/services/patch.service.mjs +0 -63
  279. package/esm2020/localize/lib/localize.module.mjs +0 -81
  280. package/esm2020/localize/lib/localize.pipe.mjs +0 -46
  281. package/esm2020/localize/lib/localize.service.mjs +0 -185
  282. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +0 -88
  283. package/esm2020/localize/lib/views/localize-template.directive.mjs +0 -21
  284. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +0 -35
  285. package/esm2020/masking/lib/directives/date-mask.directive.mjs +0 -35
  286. package/esm2020/masking/lib/directives/input-mask.directive.mjs +0 -118
  287. package/esm2020/masking/lib/masking.module.mjs +0 -30
  288. package/esm2020/masking/lib/masking.service.mjs +0 -103
  289. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +0 -100
  290. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +0 -47
  291. package/esm2020/notifications/lib/notifications.module.mjs +0 -30
  292. package/esm2020/notifications/lib/notifications.service.mjs +0 -141
  293. package/esm2020/permissions/lib/directives/permission.directive.mjs +0 -88
  294. package/esm2020/permissions/lib/guards/permission.guard.mjs +0 -56
  295. package/esm2020/permissions/lib/permissions.module.mjs +0 -39
  296. package/esm2020/permissions/lib/permissions.service.mjs +0 -96
  297. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -219
  298. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +0 -95
  299. package/esm2020/recaptcha/lib/recaptcha.module.mjs +0 -27
  300. package/esm2020/storage/lib/storage.service.mjs +0 -109
  301. package/esm2020/table/lib/components/table/table.component.mjs +0 -191
  302. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +0 -11
  303. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -131
  304. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +0 -136
  305. package/esm2020/table/lib/table.module.mjs +0 -42
  306. package/esm2020/theming/lib/theming.directive.mjs +0 -38
  307. package/esm2020/theming/lib/theming.module.mjs +0 -16
  308. package/esm2020/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -31
  309. package/esm2020/tooltip/lib/tooltip.directive.mjs +0 -140
  310. package/esm2020/tooltip/lib/tooltip.module.mjs +0 -31
  311. package/esm2020/utils/lib/directives/autosize.directive.mjs +0 -72
  312. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +0 -77
  313. package/esm2020/utils/lib/directives/focus.directive.mjs +0 -37
  314. package/esm2020/utils/lib/directives/template.directive.mjs +0 -28
  315. package/esm2020/utils/lib/utils.module.mjs +0 -35
  316. package/esm2020/utils/public_api.mjs +0 -6
  317. package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
  318. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
  319. package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
  320. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
  321. package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
  322. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
  323. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
  324. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
  325. package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
  326. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
  327. package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
  328. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
  329. package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
  330. package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
  331. package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
  332. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
  333. package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
  334. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
  335. package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
  336. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
  337. package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
  338. package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
  339. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
  340. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
  341. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
  342. package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
  343. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
  344. package/fesm2015/bravobit-bb-foundation-table.mjs +0 -613
  345. package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
  346. package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
  347. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
  348. package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
  349. package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
  350. package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
  351. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
  352. package/fesm2015/bravobit-bb-foundation.mjs +0 -929
  353. package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
  354. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
  355. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
  356. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +0 -1
  357. /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
  358. /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
  359. /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
  360. /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
  361. /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
  363. /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
  364. /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
  365. /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
  366. /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
  367. /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
  368. /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
  369. /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
  370. /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
  371. /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
  372. /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
  373. /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
  374. /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
  375. /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
  376. /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
  377. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
  378. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
  379. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
  380. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
  381. /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
  382. /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
  383. /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
  384. /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
  385. /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
  386. /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
  387. /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
  388. /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
  389. /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
  390. /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
  391. /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
  392. /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
  393. /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
  394. /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
  395. /package/{esm2020 → esm2022}/http/lib/classes/http.config.mjs +0 -0
  396. /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
  397. /package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +0 -0
  398. /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
  399. /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
  400. /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
  401. /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
  402. /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
  418. /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
  419. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
  420. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
  421. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
  422. /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
  423. /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
  424. /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
  425. /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
  426. /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
  427. /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
  428. /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
  429. /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
  430. /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
  431. /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
  432. /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
  433. /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
  434. /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
  435. /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
  436. /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
  437. /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
  438. /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
  439. /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
  440. /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
  441. /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
  442. /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
  443. /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
  444. /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
  445. /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
  446. /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
  447. /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
  448. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  449. /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
  450. /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
  451. /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
  452. /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
  453. /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
  454. /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
  455. /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
  456. /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
  457. /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
  458. /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
  459. /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
  460. /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
  461. /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
  462. /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
  463. /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
  464. /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
  465. /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
  466. /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
  467. /package/{esm2020 → esm2022}/table/lib/data/generic.data.mjs +0 -0
  468. /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
  469. /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
  470. /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
  471. /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
  472. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
  473. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
  474. /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
  475. /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
  476. /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
  477. /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
  478. /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
  479. /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
  480. /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
  481. /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
  482. /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
  483. /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
  484. /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
  485. /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
  486. /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
  487. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
  488. /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
  489. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
  490. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"bravobit-bb-foundation.mjs","sources":["../../../projects/bb-foundation/src/lib/core/services/file-loader.service.ts","../../../projects/bb-foundation/src/lib/core/services/exif.service.ts","../../../projects/bb-foundation/src/lib/core/services/image-converter.service.ts","../../../projects/bb-foundation/src/lib/core/tokens/accept-language.token.ts","../../../projects/bb-foundation/src/lib/core/services/languages.service.ts","../../../projects/bb-foundation/src/lib/core/tokens/window.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/navigator.token.ts","../../../projects/bb-foundation/src/lib/core/services/network.service.ts","../../../projects/bb-foundation/src/lib/core/services/patch.service.ts","../../../projects/bb-foundation/src/lib/core/services/clipboard.service.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-disable.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-load.ts","../../../projects/bb-foundation/src/lib/core/mixins/has-error.ts","../../../projects/bb-foundation/src/lib/core/mixins/can-hide-errors.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-focused.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-grouped.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-readonly.ts","../../../projects/bb-foundation/src/lib/core/mixins/is-required.ts","../../../projects/bb-foundation/src/lib/core/tokens/base-url.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/cookie.token.ts","../../../projects/bb-foundation/src/lib/core/tokens/location.token.ts","../../../projects/bb-foundation/src/lib/core/miscellaneous/regex.ts","../../../projects/bb-foundation/src/lib/core/miscellaneous/validator.ts","../../../projects/bb-foundation/src/lib/core/functions/date.utils.ts","../../../projects/bb-foundation/src/lib/core/functions/password.utils.ts","../../../projects/bb-foundation/src/public_api.ts","../../../projects/bb-foundation/src/bravobit-bb-foundation.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileLoader {\n\n fromDataUrl(value: string, name: string = 'file') {\n if (!value) {\n return null;\n }\n\n try {\n // Convert base64 to raw binary data held in a string.\n const byteString = window.atob(value.split(',')[1]);\n\n // Separate out the mime component.\n const mimeString = value\n .split(',')[0]\n .split(':')[1]\n .split(';')[0];\n\n // Write the bytes of the string to an ArrayBuffer.\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const uint8Array = new Uint8Array(arrayBuffer);\n for (let index = 0; index < byteString.length; index++) {\n uint8Array[index] = byteString.charCodeAt(index);\n }\n\n const dataView = new DataView(arrayBuffer);\n const blob = new Blob([dataView.buffer], {type: mimeString});\n\n return this.createFile(blob, name);\n } catch {\n return null;\n }\n }\n\n asDataUrl(file: File | Blob) {\n return this.read<string>(file, 'dataurl');\n }\n\n asArrayBuffer(file: File | Blob) {\n return this.read<ArrayBuffer>(file, 'arraybuffer');\n }\n\n private async read<T = string | ArrayBuffer>(file: File | Blob, type: 'dataurl' | 'arraybuffer') {\n return new Promise<T>((resolve, reject) => {\n const isFileLike = this.isFile(file) || this.isBlob(file);\n if (!file || !isFileLike) {\n return reject('Invalid file');\n }\n\n const reader = new FileReader();\n reader.onerror = () => reject('Error file read');\n reader.onabort = () => reject('Abort file read');\n reader.onload = () => {\n const result = reader.result as unknown;\n return resolve(result as T);\n };\n\n if (type === 'dataurl') {\n reader.readAsDataURL(file);\n } else if (type === 'arraybuffer') {\n reader.readAsArrayBuffer(file);\n }\n });\n }\n\n private isFile = (input: unknown) => {\n return 'File' in window && input instanceof File;\n };\n\n private isBlob = (input: unknown) => {\n return 'Blob' in window && input instanceof Blob;\n };\n\n private createFile(blob: Blob, name: string) {\n if (!navigator['msSaveBlob']) {\n return new File([blob], name, {lastModified: Date.now(), type: blob?.type});\n }\n\n const blobFile = new Blob([blob], {type: blob?.type});\n return this.blobToFile(blobFile, name);\n }\n\n private blobToFile = (blob: Blob, fileName: string) => {\n const anyBlob: any = blob;\n anyBlob.lastModifiedDate = new Date();\n anyBlob.name = fileName;\n return anyBlob as File;\n };\n\n}\n","import {FileLoader} from './file-loader.service';\nimport {Platform} from '@angular/cdk/platform';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Exif {\n\n constructor(private _platform: Platform,\n private _fileLoader: FileLoader) {\n }\n\n async strip(file: File, quality: number = 100) {\n // Validate we are on a browser.\n if (!this._platform.isBrowser) {\n return file;\n }\n\n // Validate the file exists and is\n // an instance of a File object.\n if (!file || !(file instanceof File)) {\n return file;\n }\n\n // Only jpeg images need correction.\n if (!['image/jpeg'].includes(file.type)) {\n return file;\n }\n\n try {\n // Read the file as an array buffer and data url.\n const arrayBuffer = await this._fileLoader.asArrayBuffer(file);\n const dataUrl = await this._fileLoader.asDataUrl(file);\n\n // Create an image element.\n const imageElement = await this.createImageElement(dataUrl);\n\n // Get the orientation by using the buffer.\n const orientation = this.getOrientation(arrayBuffer);\n\n // Transform the image to remove the orientation.\n const canvasType = this.getSupportedCanvasType(file.type);\n const imageUrl = this.transformImage(imageElement, canvasType, orientation, quality);\n\n // Validate the image url exists.\n if (!imageUrl) {\n return file;\n }\n\n // Transform the image url to a file.\n return this._fileLoader.fromDataUrl(imageUrl, file.name);\n } catch {\n // When something goes wrong we\n // just return the default file.\n return file;\n }\n }\n\n private async createImageElement(dataUrl: string) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.src = dataUrl;\n image.onerror = () => reject('Error image create');\n image.onabort = () => reject('Abort image create');\n image.onload = () => resolve(image);\n });\n }\n\n private transformImage = (image: HTMLImageElement, type: string, orientation: number, quality: number = 100) => {\n // Create the canvas and context.\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // Validate the context exists.\n if (!context) {\n return null;\n }\n\n // Set the canvas size based on the image.\n const {width, height} = image;\n canvas.width = width;\n canvas.height = height;\n\n // Validate the orientation is correct\n // else flip the canvas sizes.\n if (4 < orientation && orientation < 9) {\n canvas.width = height;\n canvas.height = width;\n }\n\n // Transform the context based on the orientation.\n switch (orientation) {\n case 2:\n context.transform(-1, 0, 0, 1, width, 0);\n break;\n case 3:\n context.transform(-1, 0, 0, -1, width, height);\n break;\n case 4:\n context.transform(1, 0, 0, -1, 0, height);\n break;\n case 5:\n context.transform(0, 1, 1, 0, 0, 0);\n break;\n case 6:\n context.transform(0, 1, -1, 0, height, 0);\n break;\n case 7:\n context.transform(0, -1, -1, 0, height, width);\n break;\n case 8:\n context.transform(0, -1, 1, 0, 0, width);\n break;\n default:\n break;\n }\n\n // Draw the image on the context and return the data URL.\n context.drawImage(image, 0, 0, width, height);\n return canvas.toDataURL(type, quality / 100);\n };\n\n private getSupportedCanvasType = (fileType: string) => {\n switch (fileType) {\n case 'image/jpeg':\n case 'image/jpg':\n return 'image/jpeg';\n case 'image/x-windows-bmp':\n case 'image/bmp':\n return 'image/bmp';\n default:\n return 'image/png';\n }\n };\n\n private getOrientation = (buffer: ArrayBuffer) => {\n // Create a new data view.\n const view = new DataView(buffer);\n\n if (view.getUint16(0, false) !== 0xFFD8) {\n return -2;\n }\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8) {\n return -1;\n }\n\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker === 0xFFE1) {\n if (view.getUint32(offset += 2, false) !== 0x45786966) {\n return -1;\n }\n\n const little = view.getUint16(offset += 6, false) === 0x4949;\n offset += view.getUint32(offset + 4, little);\n\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let index = 0; index < tags; index++) {\n if (view.getUint16(offset + index * 12, little) === 0x0112) {\n return view.getUint16(offset + index * 12 + 8, little);\n }\n }\n } else if ((marker & 0xFF00) !== 0xFF00) {\n break;\n } else {\n offset += view.getUint16(offset, false);\n }\n }\n\n return -1;\n };\n\n}\n","import {FileLoader} from './file-loader.service';\nimport {Platform} from '@angular/cdk/platform';\nimport {Injectable} from '@angular/core';\nimport {Exif} from './exif.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImageConverter {\n\n // Data.\n private readonly _types = ['image/png', 'image/jpeg'];\n\n constructor(private _exif: Exif,\n private _platform: Platform,\n private _fileLoader: FileLoader) {\n }\n\n async toDataUri(contents: string | File | HTMLImageElement, options: { width: number, height: number } | null = null) {\n // Check if the current platform is a browser.\n if (!this._platform.isBrowser) {\n return null;\n }\n\n // Get the image.\n const image = await this.getImage(contents);\n\n // Get the canvas width and height.\n const canvasWidth = options?.width || image?.width;\n const canvasHeight = options?.height || image?.height;\n\n // Get the canvas and context.\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n // Validate the context exists.\n if (!context) {\n return null;\n }\n\n // Set the width and height.\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n\n // When the canvas sizes are 0 we have failed.\n if (canvas?.width === 0 && canvas?.height === 0) {\n return null;\n }\n\n // Check if dimensions where supplied, else create the image.\n if (!options) {\n // Draw the image.\n context.drawImage(image, 0, 0);\n\n // Convert the canvas to a data url.\n return canvas.toDataURL(this._types[0]);\n }\n\n // Get the dimensions and offsets.\n const {width, height, xOffset, yOffset} = this.calculateOffsetAndDimensions(image, canvasWidth, canvasHeight);\n\n // Draw the image.\n context.drawImage(image, 0, 0, image.width, image.height, xOffset, yOffset, width, height);\n\n // Convert the canvas to a data url.\n return canvas.toDataURL(this._types[0]);\n }\n\n async fileToImage(file: File, types: string[] = this._types) {\n // Check if the file matches an image.\n if (!types.includes(file.type)) {\n throw new Error('The selected file does not meet the required format.');\n }\n\n let stripped: File | null = null;\n try {\n stripped = await this._exif.strip(file, 90);\n } catch {\n // Do nothing.\n }\n\n // Ge the data uri.\n const dataUri = await this._fileLoader.asDataUrl(stripped ?? file);\n\n // Convert the data URI to a image element.\n return await this.stringToImage(dataUri);\n }\n\n stringToImage(src: string) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image();\n image.src = src;\n image.onload = () => resolve(image);\n image.onerror = error => reject(error);\n });\n }\n\n private async getImage(contents: string | File | HTMLImageElement) {\n // If the contents is already an HTML image element just return it.\n if (contents instanceof HTMLImageElement) {\n return contents;\n }\n\n // If the contents is a file convert it to an HTML image element.\n if (contents instanceof File) {\n return this.fileToImage(contents);\n }\n\n // If the contents is a string convert it to an HTML image element.\n return this.stringToImage(contents);\n }\n\n private calculateOffsetAndDimensions = (image: HTMLImageElement, canvasWidth: number, canvasHeight: number) => {\n const originalWidth = image.width;\n const originalHeight = image.height;\n\n const widthRatio = canvasWidth / originalWidth;\n const heightRatio = canvasHeight / originalHeight;\n\n let width: number;\n let height: number;\n\n if (originalWidth > originalHeight) {\n height = originalHeight * heightRatio;\n width = (originalWidth / originalHeight) * height;\n } else {\n width = originalWidth * widthRatio;\n height = (originalHeight / originalWidth) * width;\n }\n\n let xOffset = 0;\n let yOffset = 0;\n\n if (canvasHeight === height) {\n xOffset = -((width - canvasWidth) / 2);\n } else if (canvasWidth === width) {\n yOffset = -((height - canvasHeight) / 2);\n }\n\n return {xOffset, yOffset, width, height};\n };\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const ACCEPT_LANGUAGE = new InjectionToken<string>('AcceptLanguage');\n","import {ACCEPT_LANGUAGE} from '../tokens/accept-language.token';\nimport {Inject, Injectable, Optional} from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Languages {\n\n // Data.\n private readonly _data: { code: string, script?: string, region?: string, quality: number }[] = [];\n\n constructor(@Optional() @Inject(ACCEPT_LANGUAGE) private _acceptLanguage?: string) {\n this._data = this.initialize();\n }\n\n get all() {\n return this._data;\n }\n\n private initialize() {\n // Get the languages.\n const data = this.getLanguages();\n\n // Parse all languages by using a regex.\n const strings = (data || '')\n .match(/((([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\\*)(;q=[0-1](\\.[0-9]+)?)?)*/g);\n\n // Get the content by parsing the strings.\n const content = strings.map(item => {\n if (!item) {\n return null;\n }\n\n const bits = item.split(';');\n const ietf = bits[0].split('-');\n const hasScript = ietf.length === 3;\n\n return {\n code: ietf[0],\n script: hasScript ? ietf[1] : null,\n region: hasScript ? ietf[2] : ietf[1],\n quality: bits[1] ? parseFloat(bits[1].split('=')[1]) : 1.0\n };\n });\n\n // Filter out all the empty items\n // and sort them by the quality.\n return content\n .filter(item => !!item)\n .sort((a, b) => b.quality - a.quality);\n }\n\n private getLanguages = () => {\n // If defined we must be in a server environment.\n if (this._acceptLanguage) {\n return this._acceptLanguage;\n }\n\n // Try to get the languages from the navigator.\n if (typeof navigator !== 'object') {\n return null;\n }\n\n let t = 'anguage';\n let n = navigator;\n let f = n['l' + t + 's'];\n\n const data = f && f.length ? f : (t = n['l' + t] ||\n n['browserL' + t] ||\n n['userL' + t]) ? [t] : t;\n\n return typeof data === 'string'\n ? data\n : data.join(';');\n };\n\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\nexport const WINDOW = new InjectionToken<Window>(\n 'An abstraction over global window object',\n {\n factory: () => {\n const {defaultView} = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n }\n }\n);","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from './window.token';\n\nexport const NAVIGATOR = new InjectionToken<Navigator>(\n 'An abstraction over window.navigator object',\n {\n factory: () => inject(WINDOW).navigator\n }\n);","import {distinctUntilChanged, map, shareReplay} from 'rxjs/operators';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {fromEvent, merge, Observable, of} from 'rxjs';\nimport {NAVIGATOR} from '../tokens/navigator.token';\nimport {Platform} from '@angular/cdk/platform';\nimport {WINDOW} from '../tokens/window.token';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Network {\n\n // Data.\n private _online$: Observable<boolean> = of(true);\n\n constructor(private _platform: Platform,\n @Optional() @Inject(WINDOW) private _window?: Window,\n @Optional() @Inject(NAVIGATOR) private _navigator?: Navigator) {\n this.getOnlineObservable();\n }\n\n online() {\n return this._online$;\n }\n\n private getOnlineObservable() {\n // Validate we are on a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Get all the events from the window.\n const online$ = fromEvent(this._window, 'online').pipe(map(() => true));\n const offline$ = fromEvent(this._window, 'offline').pipe(map(() => false));\n const now$ = new Observable(subscriber => {\n subscriber.next(this._navigator?.onLine);\n subscriber.complete();\n });\n\n // Merge all event so we get notified when\n // a user is online/offline.\n this._online$ = merge(now$, online$, offline$).pipe(\n map(value => value as boolean),\n distinctUntilChanged(),\n shareReplay({refCount: true, bufferSize: 1})\n );\n }\n\n}\n","import {Inject, Injectable, OnDestroy, Optional} from '@angular/core';\nimport {debounceTime, startWith} from 'rxjs/operators';\nimport {Platform} from '@angular/cdk/platform';\nimport {WINDOW} from '../tokens/window.token';\nimport {fromEvent, Subscription} from 'rxjs';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Patch implements OnDestroy {\n\n private _hasPatchedMobileVerticalHeight: boolean = false;\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _platform: Platform,\n @Optional() @Inject(WINDOW) private _window?: Window,\n @Optional() @Inject(DOCUMENT) private _document?: Document) {\n }\n\n mobileVerticalHeight() {\n // Check if the user has already patched\n // the mobile vertical height.\n if (this._hasPatchedMobileVerticalHeight) {\n return;\n }\n\n this.periodicallySetDocumentVerticalProperty();\n this._hasPatchedMobileVerticalHeight = true;\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n private periodicallySetDocumentVerticalProperty() {\n // Validate we are using a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Listen to a debounced window resize event.\n const resize$ = fromEvent(this._window, 'resize').pipe(\n debounceTime(25),\n startWith(0)\n );\n\n // Subscribe to the resize observable.\n const subscription = resize$.subscribe(() => {\n const verticalHeight = this._window?.innerHeight * 0.01;\n this._document?.documentElement?.style?.setProperty('--vh', `${verticalHeight}px`);\n });\n\n // Save the subscription so we can destroy it later.\n this._subscription.add(subscription);\n }\n\n}\n","import {Inject, Injectable, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Clipboard {\n\n constructor(@Optional() @Inject(DOCUMENT) private _document?: Document) {\n }\n\n copy(text: string) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n\n return successful;\n }\n\n beginCopy(text: string) {\n return new ClipboardCopy(text, this._document);\n }\n\n}\n\n\nexport class ClipboardCopy {\n\n private _textarea?: HTMLTextAreaElement;\n\n constructor(private _text: string,\n private readonly _document: Document) {\n this.initialize();\n }\n\n copy() {\n const textarea = this._textarea;\n let successful = false;\n\n try {\n const currentFocus = <unknown>this._document.activeElement as HTMLOrSVGElement | null;\n\n textarea?.select?.();\n textarea?.setSelectionRange?.(0, textarea?.value?.length);\n successful = this._document?.execCommand?.('copy');\n\n currentFocus?.focus?.();\n } catch {\n // Do nothing.\n }\n\n return successful;\n }\n\n destroy() {\n this._textarea?.parentNode?.removeChild?.(this._textarea);\n this._textarea = undefined;\n }\n\n private initialize() {\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = this._text;\n this._document.body.appendChild(textarea);\n }\n\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\nexport type CanDisableConstructor = Constructor<CanDisable>;\n\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableConstructor & T {\n return class extends base {\n\n private _disable: boolean = false;\n\n get disabled() {\n return this._disable;\n }\n\n set disabled(value: any) {\n this._disable = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanLoad {\n loading: boolean;\n}\n\nexport type CanLoadConstructor = Constructor<CanLoad>;\n\nexport function mixinLoad<T extends Constructor<{}>>(base: T): CanLoadConstructor & T {\n return class extends base {\n\n private _loading: boolean = false;\n\n get loading() {\n return this._loading;\n }\n\n set loading(value: any) {\n this._loading = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface HasError {\n error: boolean;\n}\n\nexport type HasErrorConstructor = Constructor<HasError>;\n\nexport function mixinError<T extends Constructor<{}>>(base: T): HasErrorConstructor & T {\n return class extends base {\n\n private _error: boolean = false;\n\n get error() {\n return this._error;\n }\n\n set error(value: any) {\n this._error = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface CanHideErrors {\n hideErrors: boolean;\n}\n\nexport type CanHideErrorsConstructor = Constructor<CanHideErrors>;\n\nexport function mixinHideErrors<T extends Constructor<{}>>(base: T): CanHideErrorsConstructor & T {\n return class extends base {\n\n private _hideErrors: boolean = false;\n\n get hideErrors() {\n return this._hideErrors;\n }\n\n set hideErrors(value: any) {\n this._hideErrors = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsFocused {\n focused: boolean;\n}\n\nexport type IsFocusedConstructor = Constructor<IsFocused>;\n\nexport function mixinFocused<T extends Constructor<{}>>(base: T): IsFocusedConstructor & T {\n return class extends base {\n\n private _focused: boolean = false;\n\n get focused() {\n return this._focused;\n }\n\n set focused(value: any) {\n this._focused = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsGrouped {\n grouped: boolean;\n}\n\nexport type IsGroupedConstructor = Constructor<IsGrouped>;\n\nexport function mixinGrouped<T extends Constructor<{}>>(base: T): IsGroupedConstructor & T {\n return class extends base {\n\n private _grouped: boolean = false;\n\n get grouped() {\n return this._grouped;\n }\n\n set grouped(value: any) {\n this._grouped = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsReadonly {\n readonly: boolean;\n}\n\nexport type IsReadonlyConstructor = Constructor<IsReadonly>;\n\nexport function mixinReadonly<T extends Constructor<{}>>(base: T): IsReadonlyConstructor & T {\n return class extends base {\n\n private _readonly: boolean = false;\n\n get readonly() {\n return this._readonly;\n }\n\n set readonly(value: any) {\n this._readonly = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Constructor} from './constructor';\n\nexport interface IsRequired {\n required: boolean;\n}\n\nexport type IsRequiredConstructor = Constructor<IsRequired>;\n\nexport function mixinRequired<T extends Constructor<{}>>(base: T): IsRequiredConstructor & T {\n return class extends base {\n\n private _required: boolean = false;\n\n get required() {\n return this._required;\n }\n\n set required(value: any) {\n this._required = coerceBooleanProperty(value);\n }\n\n constructor(...args: any[]) {\n super(...args);\n }\n\n };\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const BASE_URL = new InjectionToken<string>('BaseUrl');\n","import {InjectionToken} from '@angular/core';\n\nexport const COOKIE = new InjectionToken<string>('Cookie');\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from './window.token';\n\nexport const LOCATION = new InjectionToken<Location>(\n 'An abstraction over window.location object',\n {\n factory: () => inject(WINDOW).location\n }\n);","export const BbRegex = {\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n fullNumber: /^\\d*[1-9]\\d*$/\n};\n","import {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {formatDate} from '@angular/common';\nimport {BbRegex} from './regex';\n\nexport class BbValidator {\n\n static email(control: AbstractControl) {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n return BbRegex.email.test(control.value) ? null : {email: true};\n }\n\n static fullNumber(control: AbstractControl) {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n return BbRegex.fullNumber.test(control.value) ? null : {fullNumber: true};\n }\n\n static maxFileSize(bytes: number) {\n const validator: ValidatorFn = (control: AbstractControl) => {\n const value = control.value;\n\n // Validate if the value is a file.\n if (!(value instanceof File)) {\n return null;\n }\n\n if (value.size <= bytes) {\n return null;\n }\n\n let maxSize = '0 Bytes';\n if (bytes !== 0) {\n const k = 1024;\n const dm = 2;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n const index = Math.floor(Math.log(bytes) / Math.log(k));\n maxSize = parseFloat((bytes / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];\n }\n\n return {maxFileSize: {maxSize}};\n };\n return validator;\n }\n\n static confirm(fieldName: string, error: string = 'confirm') {\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const field = control?.parent?.get(fieldName);\n\n return control?.value === field?.value\n ? null\n : {[error]: true};\n };\n return validator;\n }\n\n static maxDate(date: Date, error: string = 'maxDate') {\n const formattedDate = date.toString() !== 'Invalid Date'\n ? formatDate(date, 'yyyy-MM-dd', 'en-US')\n : null;\n\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const controlDate = new Date(control.value);\n\n return controlDate.getTime() > date.getTime()\n ? {[error]: {date: formattedDate}}\n : null;\n };\n return validator;\n }\n\n static minDate(date: Date, error: string = 'minDate') {\n const formattedDate = date.toString() !== 'Invalid Date'\n ? formatDate(date, 'yyyy-MM-dd', 'en-US')\n : null;\n\n const validator: ValidatorFn = (control: AbstractControl) => {\n if (isEmptyInputValue(control.value)) {\n return null;\n }\n\n const controlDate = new Date(control.value);\n\n return controlDate.getTime() < date.getTime()\n ? {[error]: {date: formattedDate}}\n : null;\n };\n return validator;\n }\n\n}\n\nfunction isEmptyInputValue(value: any) {\n // We don't check for string here so it also works with arrays.\n return value == null || value.length === 0;\n}\n","export function parseDate(value: string | number | Date): Date | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (typeof value === 'string') {\n if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(value)) {\n return createDate(new Date(`${value}Z`));\n }\n\n if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(value)) {\n const [y, m, d] = value.split('-');\n const year = Number(y);\n const month = Number(m) - 1;\n const day = Number(d);\n return createDate(new Date(year, month, day));\n }\n }\n\n return createDate(new Date(value));\n}\n\nexport function createDate(date: Date) {\n return isValidDate(date) ? date : null;\n}\n\nexport function isValidDate(date: unknown) {\n if (!isDate(date)) {\n return false;\n }\n\n return !isNaN(Number(date));\n}\n\nexport function isDate(value: unknown): value is Date {\n return (value instanceof Date || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]'));\n}\n","export function generatePassword(length: number = 12) {\n const chars = 'abcdefghijklmnopqrstuvwxyz';\n const upperChars = chars.toUpperCase();\n const numberChars = '0123456789';\n const specialChars = '#?!@$%^&*-';\n const usableChars = chars + upperChars + numberChars + specialChars;\n\n let generatedPassword = '';\n\n for (let index = 0; index < length - 4; index++) {\n generatedPassword += usableChars[Math.floor(Math.random() * (usableChars.length))];\n }\n\n generatedPassword += chars[Math.floor(Math.random() * (chars.length))];\n generatedPassword += upperChars[Math.floor(Math.random() * (upperChars.length))];\n generatedPassword += numberChars[Math.floor(Math.random() * (numberChars.length))];\n generatedPassword += specialChars[Math.floor(Math.random() * (specialChars.length))];\n\n return generatedPassword;\n}\n","/*\n * Public API Surface of bb-foundation\n */\n\nexport * from './lib/core/services/image-converter.service';\nexport * from './lib/core/services/file-loader.service';\nexport * from './lib/core/services/languages.service';\nexport * from './lib/core/services/network.service';\nexport * from './lib/core/services/patch.service';\nexport * from './lib/core/services/exif.service';\nexport * from './lib/core/services/clipboard.service';\n\nexport * from './lib/core/mixins/constructor';\nexport * from './lib/core/mixins/can-disable';\nexport * from './lib/core/mixins/can-load';\nexport * from './lib/core/mixins/has-error';\nexport * from './lib/core/mixins/can-hide-errors';\nexport * from './lib/core/mixins/is-focused';\nexport * from './lib/core/mixins/is-grouped';\nexport * from './lib/core/mixins/is-readonly';\nexport * from './lib/core/mixins/is-required';\n\nexport * from './lib/core/tokens/base-url.token';\nexport * from './lib/core/tokens/accept-language.token';\nexport * from './lib/core/tokens/cookie.token';\nexport * from './lib/core/tokens/window.token';\nexport * from './lib/core/tokens/navigator.token';\nexport * from './lib/core/tokens/location.token';\n\nexport * from './lib/core/miscellaneous/regex';\nexport * from './lib/core/miscellaneous/validator';\n\nexport * from './lib/core/functions/date.utils';\nexport * from './lib/core/functions/password.utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.FileLoader","i1.Exif","i2","i3.FileLoader"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bravobit-bb-foundation-elements.mjs","sources":["../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.ts","../../../projects/bb-foundation/elements/src/lib/dropdown/dropdown.component.html","../../../projects/bb-foundation/elements/src/lib/elements.interfaces.ts","../../../projects/bb-foundation/elements/src/lib/directives/form-submitter.directive.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.ts","../../../projects/bb-foundation/elements/src/lib/spinner/spinner.component.html","../../../projects/bb-foundation/elements/src/lib/button/button.component.ts","../../../projects/bb-foundation/elements/src/lib/button/button.component.html","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/image-picker/image-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/form-submit.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.ts","../../../projects/bb-foundation/elements/src/lib/form-error/form-error.component.html","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.ts","../../../projects/bb-foundation/elements/src/lib/form-control/form-control.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/file-size.pipe.ts","../../../projects/bb-foundation/elements/src/lib/pipes/file-image.pipe.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/file-picker/file-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/input.directive.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.ts","../../../projects/bb-foundation/elements/src/lib/date-picker/date-picker.component.html","../../../projects/bb-foundation/elements/src/lib/directives/addon.directive.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.ts","../../../projects/bb-foundation/elements/src/lib/form-group/form-group.component.html","../../../projects/bb-foundation/elements/src/lib/pipes/relative-time.pipe.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.ts","../../../projects/bb-foundation/elements/src/lib/checkbox/checkbox.component.html","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.ts","../../../projects/bb-foundation/elements/src/lib/avatar/avatar.component.html","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.ts","../../../projects/bb-foundation/elements/src/lib/icon/icon.component.html","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.ts","../../../projects/bb-foundation/elements/src/lib/tag/tag.component.html","../../../projects/bb-foundation/elements/src/lib/elements.module.ts","../../../projects/bb-foundation/elements/src/bravobit-bb-foundation-elements.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Host,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dropdown'},\n preserveWhitespaces: false,\n animations: [\n trigger('dropdownMenuAnimation', [\n transition(':enter', [\n // 1. Set the initial state.\n style({opacity: 0, transform: 'scale(0.9)'}),\n // 2. Start the animation to show the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 1, transform: 'scale(1)'}))\n ]),\n transition(':leave', [\n // 1. Set the initial state.\n style({opacity: 1, transform: 'scale(1)'}),\n // 2. Start the animation to hide the item.\n animate('80ms cubic-bezier(0, 0, .2, 1)', style({opacity: 0, transform: 'scale(0.9)'}))\n ])\n ])\n ]\n\n})\nexport class BbDropdown {\n\n // State.\n visible$ = new BehaviorSubject<boolean>(false);\n\n constructor(private _elementRef: ElementRef) {\n }\n\n toggle() {\n return this.visible$.next(!this.visible$.getValue());\n }\n\n close() {\n return this.visible$.next(false);\n }\n\n @HostListener('document:click', ['$event.target'])\n onDocumentClick(target: HTMLElement) {\n if (!target) {\n return;\n }\n\n if (this._elementRef?.nativeElement?.contains(target)) {\n return;\n }\n\n return this.close();\n }\n\n}\n\n@Directive({\n selector: '[bbDropdownItem]',\n host: {\n 'class': 'bb-dropdown-item'\n }\n})\nexport class BbDropdownItem {\n\n // Inputs.\n @Input() closeOnClick: boolean = true;\n\n constructor(@Optional() @Host() private _parent?: BbDropdown) {\n }\n\n @HostListener('click')\n onClick() {\n if (!this.closeOnClick) {\n return;\n }\n\n this._parent?.close();\n }\n\n}\n","<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n","import {InjectionToken} from '@angular/core';\n\nexport const ELEMENTS_ICONS: InjectionToken<ElementsIcon[]> = new InjectionToken('elements_icons');\nexport const ELEMENTS_ERRORS: InjectionToken<ElementsError[]> = new InjectionToken('elements_errors');\n\nexport type ElementsIcon = ElementsIconFont | ElementsIconImage | ElementsIconUnknown;\nexport type ElementsError = { [error: string]: (data?: any) => string | { token: string, data?: any }; };\n\nexport interface ElementsIconFont {\n namespace: string;\n className: string;\n uses: 'content' | 'data-attribute';\n type: 'font';\n}\n\nexport interface ElementsIconImage {\n namespace: string;\n name: string;\n src: string;\n type: 'image';\n}\n\nexport interface ElementsIconUnknown {\n type: 'unknown';\n}\n","import {Directive} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Directive({\n selector: '[bbFormSubmitter]',\n exportAs: 'bbFormSubmitter'\n})\nexport class BbFormSubmitter {\n\n // State.\n submitted$ = new BehaviorSubject<boolean>(false);\n\n submit() {\n this.submitted$.next(true);\n }\n\n reset() {\n this.submitted$.next(false);\n }\n\n}\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\n\nclass BbSpinnerBase {\n}\n\nconst BbSpinnerMixinBase: CanDisableConstructor\n & typeof BbSpinnerBase\n = mixinDisabled(BbSpinnerBase);\n\n@Component({\n selector: 'bb-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-spinner'},\n inputs: ['color', 'alt', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbSpinner extends BbSpinnerMixinBase implements CanDisable {\n\n // Inputs.\n @Input() color: string = '#303f9f';\n @Input() alt: string = 'Loading...';\n\n}\n","<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n","import {\n CanLoad,\n CanLoadConstructor,\n mixinLoad,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation} from '@angular/core';\n\nclass BbButtonBase {\n constructor(public _elementRef: ElementRef) {\n }\n}\n\nconst BbButtonMixinBase: CanDisableConstructor & CanLoadConstructor\n & typeof BbButtonBase = mixinDisabled(mixinLoad(BbButtonBase));\n\n@Component({\n selector: 'button[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton',\n host: {\n 'class': 'bb-button',\n '[class.loading]': 'loading',\n '[attr.disabled]': 'disabled || loading || null'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbButton extends BbButtonMixinBase implements CanDisable, CanLoad {\n\n get nativeElement() {\n return this._elementRef.nativeElement;\n }\n\n constructor(_elementRef: ElementRef<HTMLButtonElement>) {\n super(_elementRef);\n }\n\n focus() {\n this.nativeElement && this.nativeElement.focus();\n }\n\n}\n\n@Component({\n selector: 'a[bb-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n exportAs: 'bbButton, bbAnchor',\n host: {\n 'class': 'bb-button',\n '[attr.tabindex]': '(disabled || loading) ? -1 : (tabIndex || 0)',\n '[attr.disabled]': 'disabled || loading || null',\n '[attr.aria-disabled]': '(disabled || loading).toString()',\n '(click)': 'stopDisabledEvents($event)'\n },\n inputs: ['disabled', 'loading'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BbAnchor extends BbButton {\n\n // Inputs.\n @Input() tabIndex: number;\n\n constructor(_elementRef: ElementRef) {\n super(_elementRef);\n }\n\n stopDisabledEvents(event: Event) {\n // If the button is not disabled (and not loading) let all events pass.\n if (!this.disabled && !this.loading) {\n return;\n }\n\n // If the button is disabled and/or loading stop\n // the event from bubbling up.\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n}\n","<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ImageConverter,\n CanDisableConstructor,\n mixinDisabled,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BehaviorSubject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nclass BbImagePickerBase {\n}\n\nconst BbImagePickerMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbImagePickerBase\n = mixinDisabled(mixinGrouped(BbImagePickerBase));\n\n@Component({\n selector: 'bb-image-picker',\n templateUrl: './image-picker.component.html',\n styleUrls: ['./image-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-image-picker',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbImagePicker), multi: true}],\n preserveWhitespaces: false\n})\nexport class BbImagePicker extends BbImagePickerMixinBase implements ControlValueAccessor {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n\n // Inputs.\n @Input() label: string | null = null;\n @Input() placeholder: string | null = null;\n @Input() styleDimensions: { width: string, height: string } | null = null;\n @Input() cropDimensions: { width: number, height: number } | null = null;\n\n // Form.\n private _value$ = new BehaviorSubject<string | null>(null);\n\n constructor(private _converter: ImageConverter) {\n super();\n }\n\n @Input()\n get value() {\n return this._value$.getValue();\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n set value(value: string | null) {\n this._value$.next(value);\n this.valueChange.emit(value);\n }\n\n get image() {\n return this._value$.pipe(\n map(value => value || this.placeholder),\n map(value => value ? `url(${value})` : null)\n );\n }\n\n async onFileChange(event) {\n // Grab the file from the event.\n const file: File = event.target.files[0];\n\n // Check if the file exists.\n if (!file || this.disabled) {\n return;\n }\n\n try {\n this.value = await this._converter.toDataUri(file, this.cropDimensions);\n } catch (error) {\n this.value = null;\n }\n\n this.onChangeCallback(this.value);\n\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n openFilePicker() {\n if (this.disabled) {\n return;\n }\n\n // Execute a click on the file input.\n this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n writeValue(value: string | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n}\n","<!-- The input that can open the file picker. -->\n<input #fileInput\n (change)=\"onFileChange($event)\"\n class=\"bb-image-picker-input\"\n type=\"file\"\n tabindex=\"-1\"\n accept=\"image/*\">\n\n<span [style.width]=\"styleDimensions?.width || '100%'\"\n [style.height]=\"styleDimensions?.height || '215px'\"\n [style.background-image]=\"image | async\"\n class=\"bb-image-input-image\">\n </span>\n\n<button *ngIf=\"label as labelText\"\n (click)=\"openFilePicker()\"\n bb-button\n class=\"bb-image-input-button\"\n type=\"button\">\n {{ labelText }}\n</button>\n","import {distinctUntilChanged, map, shareReplay, startWith} from 'rxjs/operators';\nimport {Directive, ElementRef, OnInit, Optional, Self} from '@angular/core';\nimport {EMPTY, fromEvent, merge, Observable} from 'rxjs';\nimport {FormGroupDirective} from '@angular/forms';\n\n@Directive({\n selector: 'form',\n exportAs: 'bbForm'\n})\nexport class BbFormSubmit implements OnInit {\n\n submitStatus$: Observable<boolean>;\n\n constructor(private _host: ElementRef<HTMLFormElement>,\n @Optional() @Self() private _formDirective: FormGroupDirective) {\n }\n\n ngOnInit() {\n // Submit changes.\n const regularSubmitChanges$ = fromEvent(this.nativeElement, 'submit').pipe(\n map(() => true)\n );\n\n // Reactive form submit changes.\n const reactiveSubmitChanges$ = this.reactiveSubmitChanges();\n\n // Reset changes.\n const resetChanges$ = fromEvent(this.nativeElement, 'reset').pipe(\n map(() => false)\n );\n\n // Listen to the submit status.\n this.submitStatus$ = merge(regularSubmitChanges$, reactiveSubmitChanges$, resetChanges$).pipe(\n startWith(false),\n distinctUntilChanged(),\n shareReplay({refCount: true, bufferSize: 1})\n );\n }\n\n submit() {\n this._formDirective?.ngSubmit?.emit();\n }\n\n reset() {\n return this.nativeElement?.reset();\n }\n\n private get nativeElement() {\n return this._host?.nativeElement;\n }\n\n private reactiveSubmitChanges() {\n if (!this._formDirective) {\n return EMPTY;\n }\n\n return this._formDirective.ngSubmit.pipe(\n map(() => true)\n );\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport {delay, distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {BbFormSubmitter} from '../directives/form-submitter.directive';\nimport {ELEMENTS_ERRORS, ElementsError} from '../elements.interfaces';\nimport {BbFormSubmit} from '../directives/form-submit.directive';\nimport {NgControl, ValidationErrors} from '@angular/forms';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\n\n@Component({\n selector: 'bb-form-error',\n templateUrl: './form-error.component.html',\n styleUrls: ['./form-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-error'\n },\n preserveWhitespaces: false\n})\nexport class BbFormError implements OnInit {\n\n // Inputs.\n @Input()\n set control(value: NgControl) {\n this._ngControl = value;\n }\n\n get control() {\n return this._ngControl;\n }\n\n // Outputs.\n @Output() errorChange = new EventEmitter<{ token: string, data?: any } | null>();\n\n // State.\n error$: Observable<{ token: string, data?: any } | null>;\n\n // Subscriptions.\n private _ngControl: NgControl | null = null;\n\n constructor(@Optional() private _form?: BbFormSubmit,\n @Optional() private _control?: NgControl,\n @Optional() private _formSubmitter?: BbFormSubmitter,\n @Optional() @Inject(ELEMENTS_ERRORS) private _errors?: ElementsError[]) {\n }\n\n ngOnInit() {\n // Set the control if it was not set before.\n if (!this.control) {\n this.control = this._control;\n }\n\n // Listen for the submit changes\n const submitStatus$ = this.submitStatusChanges();\n\n // An observable that emits error changes.\n const errorChanges$ = this.statusChanges().pipe(\n map(() => this.getError(this.control.errors)),\n distinctUntilChanged(),\n map(error => typeof error === 'string' ? {token: error} : error)\n );\n\n // Whenever the user submitted the form we want to\n // listen for any error changes.\n this.error$ = combineLatest([submitStatus$, errorChanges$]).pipe(\n map(([submitted, error]) => {\n // If not submitted return null.\n if (!submitted) {\n return null;\n }\n\n // Return the error if submitted.\n return error;\n }),\n tap(value => this.errorChange.emit(value))\n );\n }\n\n private getError(errors?: ValidationErrors) {\n // Validate the errors exist.\n if (!errors) {\n return null;\n }\n\n // Get the first error in the errors.\n const [errorName] = Object.keys(errors);\n const error = errors[errorName];\n\n // Validate the error exists.\n if (!error) {\n return null;\n }\n\n // Map the arrays into a object so we can\n // access the functions by a key-lookup.\n const errorFunctions = this._errors.reduce((previous, current) => ({...previous, ...current}), {});\n\n // Get the error function.\n const errorFunction = errorFunctions[errorName] || errorFunctions['unknown'];\n\n // Validate the error function exists.\n if (!errorFunction) {\n return null;\n }\n\n // Return the parsed error.\n return errorFunction(error);\n }\n\n private submitStatusChanges() {\n const native$ = this.getNativeFormSubmit();\n const manual$ = this.getManualFormSubmit();\n return combineLatest([native$, manual$]).pipe(\n map(([native, manual]) => native || manual),\n distinctUntilChanged()\n );\n }\n\n private getNativeFormSubmit() {\n if (!this._form) {\n return of(true);\n }\n\n return this._form.submitStatus$;\n }\n\n private getManualFormSubmit() {\n if (!this._formSubmitter) {\n return of(false);\n }\n\n return this._formSubmitter.submitted$.pipe(\n distinctUntilChanged()\n );\n }\n\n private statusChanges() {\n if (!this.control) {\n return EMPTY;\n }\n\n if (!this.control.statusChanges) {\n return EMPTY;\n }\n\n return this.control.statusChanges.pipe(\n startWith(this.control.status as unknown),\n delay(0)\n );\n }\n\n}\n","<ng-container *ngIf=\"error$ | async as error\">\n <p *ngIf=\"error?.token | bbLocalize:{optional: true, data: error?.data} as message\"\n class=\"bb-form-error-message\">\n {{ message }}\n </p>\n</ng-container>","import {\n IsRequired,\n IsRequiredConstructor,\n mixinRequired,\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsReadonly,\n IsReadonlyConstructor,\n mixinReadonly,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped,\n IsFocused,\n IsFocusedConstructor,\n mixinFocused,\n HasError,\n HasErrorConstructor,\n mixinError,\n CanHideErrors,\n CanHideErrorsConstructor,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\nlet nextUniqueId = 0;\n\nclass BbFormControlBase {\n}\n\nconst BbFormControlMixinBase: IsRequiredConstructor\n & IsGroupedConstructor\n & IsFocusedConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFormControlBase\n = mixinDisabled(mixinFocused(mixinReadonly(mixinGrouped(mixinRequired(mixinError(mixinHideErrors(BbFormControlBase)))))));\n\n@Component({\n selector: 'bb-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': 'bb-form-control',\n '[class.readonly]': 'readonly',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.focused]': 'focused',\n '[class.grouped]': 'grouped',\n '[class.arrow]': 'arrow',\n '[class.error]': 'error'\n },\n inputs: ['grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbFormControl extends BbFormControlMixinBase implements IsRequired, IsFocused, IsReadonly, IsGrouped, CanDisable, HasError, CanHideErrors {\n\n // Views.\n @ContentChild(NgControl) ngControl: NgControl;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n\n // Data.\n arrow: boolean = false;\n\n // Data.\n labelId = `bb-form-control-${nextUniqueId++}`;\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n}\n","<!-- Label of the form control. -->\n<label *ngIf=\"label as labelContent\"\n [attr.for]=\"labelId\"\n class=\"bb-form-control-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input with the addons. -->\n<div class=\"bb-form-control-container\">\n <ng-content select=\"[bbPrefix]\"></ng-content>\n <ng-content select=\"[bbInput]\"></ng-content>\n <ng-content select=\"[bbSuffix]\"></ng-content>\n</div>\n\n<!-- The error component. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n [control]=\"ngControl\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The form control hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-form-control-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'bbFileSize'\n})\nexport class BbFileSize implements PipeTransform {\n\n transform(value: number) {\n return this.format(value);\n }\n\n private format = (value: number, decimals: number = 2) => {\n if (value === 0) {\n return '0 Bytes';\n }\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const index = Math.floor(Math.log(value) / Math.log(k));\n\n return parseFloat((value / Math.pow(k, index)).toFixed(dm)) + ' ' + sizes[index];\n };\n\n}\n","import {ImageConverter} from '@bravobit/bb-foundation';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\n\n@Pipe({\n name: 'bbFileImage'\n})\nexport class BbFileImage implements PipeTransform {\n\n constructor(private _platform: Platform,\n private _image: ImageConverter,\n private _sanitizer: DomSanitizer) {\n }\n\n async transform(file: File) {\n // If the file is not a file return.\n if (!this._platform.isBrowser || !(file instanceof File)) {\n return null;\n }\n\n return this._image.fileToImage(file, [\n 'image/png',\n 'image/jpeg',\n 'image/gif',\n 'image/svg+xml'\n ]).then(image => {\n if (!image) {\n return null;\n }\n\n return {\n background: this._sanitizer.bypassSecurityTrustStyle(`url(${image.src})`),\n aspectRatio: image.height / image.width\n };\n }).catch(() => {\n return null;\n });\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n CanDisable,\n CanDisableConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsRequired,\n IsRequiredConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n mixinDisabled,\n mixinGrouped,\n mixinRequired,\n mixinError,\n mixinHideErrors\n} from '@bravobit/bb-foundation';\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {animate, style, transition, trigger} from '@angular/animations';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\nclass BbFilePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbFilePickerBase\n = mixinRequired(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbFilePickerBase)))));\n\n@Component({\n selector: 'bb-file-picker',\n templateUrl: './file-picker.component.html',\n styleUrls: ['./file-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbFilePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbFilePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-file-picker',\n '[class.required]': 'required',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.hovered]': 'hovered',\n '[class.error]': 'error'\n },\n animations: [\n trigger('bbFilePickerImageAnimation', [\n transition(':enter', [\n style({opacity: 0}),\n animate('200ms', style({opacity: 1}))\n ]),\n transition(':leave', [\n animate('200ms', style({opacity: 0}))\n ])\n ])\n ],\n inputs: ['disabled', 'hideErrors', 'grouped', 'required'],\n preserveWhitespaces: false\n})\nexport class BbFilePicker extends BbFilePickerMixinBase implements ControlValueAccessor, IsRequired, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Views.\n @ViewChild('fileInput', {static: true}) fileInput: ElementRef<HTMLInputElement>;\n @ContentChild('extra') extraTemplate: TemplateRef<ElementRef>;\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() accept: string | null = null;\n @Input() showImages: boolean = true;\n @Input() allowDragging: boolean = true;\n\n // State.\n labelId = `bb-file-picker-${nextUniqueId++}`;\n hovered: boolean = false;\n value$ = new BehaviorSubject<{ file?: File }>({});\n\n @Input()\n get value() {\n const {file} = this.value$.getValue();\n return file;\n }\n\n @Output() valueChange = new EventEmitter<File | null>();\n\n set value(value: File | null) {\n this.value$.next({file: value});\n this.valueChange.emit(value);\n }\n\n @HostListener('dragover', ['$event', 'true'])\n @HostListener('dragleave', ['$event', 'false'])\n onDrag(event: Event, isHovered: boolean) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and start the hovering.\n this.preventDefault(event);\n this.hovered = isHovered;\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: Event) {\n // Validate the input can support drag.\n if (!this.allowDragging || this.disabled) {\n return;\n }\n\n // Prevent the default event action\n // and stop the hovering.\n this.preventDefault(event);\n this.hovered = false;\n\n // Save the file.\n this.saveFile(event['dataTransfer'].files);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n }\n\n onButtonPressed(file?: File) {\n if (file) {\n this.value = null;\n this.onChangeCallback(this.value);\n return;\n }\n\n return this.openFilePicker();\n }\n\n openFilePicker() {\n return this.fileInput\n && this.fileInput.nativeElement\n && this.fileInput.nativeElement.click\n && this.fileInput.nativeElement.click();\n }\n\n onFileChange(event: Event) {\n // Validate the input is not disabled.\n if (this.disabled) {\n return;\n }\n\n // Extract the file from the event.\n const fileList = this.getFileListFromEvent(event);\n\n // Save the file.\n this.saveFile(fileList);\n\n // Run the on change callback.\n this.onChangeCallback(this.value);\n\n // Clear the file input.\n if (this.fileInput && this.fileInput.nativeElement) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: File | null) => void = () => {\n };\n\n writeValue(value: File | null) {\n this.value = value;\n }\n\n registerOnChange(method: (_: File | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<File>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const regexString = (this.accept || '*')\n .replace(/\\*/g, '.\\*')\n .replace(/,/g, '|');\n const mimeTypeRegex = new RegExp(regexString);\n\n const isNotValid = (typeof File === 'undefined') || !(value instanceof File) || !mimeTypeRegex.test(value?.type);\n return isNotValid && {\n invalidFileType: true\n };\n }\n\n private saveFile = (files?: FileList) => {\n // Validate the files exist.\n if (!files) {\n return;\n }\n\n // Retrieve the first file.\n const file = files[0];\n\n // Validate the first file exists.\n if (!file) {\n return;\n }\n\n // Save the file.\n this.value = file;\n };\n\n private getFileListFromEvent = (event: Event) => {\n const element = event.target as HTMLInputElement;\n\n if (!element) {\n return null;\n }\n\n return element.files;\n };\n\n private preventDefault = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n}\n","<!-- The label of the input. -->\n<label *ngIf=\"label as labelContent\"\n [for]=\"labelId\"\n class=\"bb-file-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The input that can open the file picker. -->\n<input #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n class=\"bb-file-picker-input\"\n type=\"file\"\n tabindex=\"-1\">\n\n<div *ngIf=\"value$ | async as data\"\n class=\"bb-file-picker-wrapper\">\n <!-- The button that accepts files. -->\n <div class=\"bb-file-picker-container\">\n <button [class.destructive]=\"!!data?.file\"\n [class.standalone]=\"!allowDragging\"\n [disabled]=\"disabled\"\n [id]=\"labelId\"\n (click)=\"onButtonPressed(data?.file)\"\n type=\"button\"\n class=\"bb-file-picker-button\">\n <ng-container *ngTemplateOutlet=\"data?.file ? closeIcon : uploadIcon\"></ng-container>\n {{ (data?.file ? 'file-picker.remove' : 'file-picker.choose') | bbLocalize }}\n </button>\n <div *ngIf=\"allowDragging\"\n class=\"bb-file-picker-zone\">\n {{ 'file-picker.drop' | bbLocalize }}\n </div>\n </div>\n\n <ng-container *ngIf=\"!!extraTemplate\">\n <ng-container *ngTemplateOutlet=\"extraTemplate; context: {$implicit: data?.file}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"showImages\">\n <div *ngIf=\"data?.file | bbFileImage | async as image\"\n class=\"bb-file-picker-image-container\">\n <div class=\"bb-file-picker-image-wrapper\">\n <div [@bbFilePickerImageAnimation]=\"true\"\n [style.padding-top.%]=\"image?.aspectRatio * 100\"\n [style.background-image]=\"image?.background\"\n class=\"bb-file-picker-image\">\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- Extra information of the file. -->\n <div [class.visible]=\"!!data?.file\"\n class=\"bb-file-picker-info\">\n <span *ngIf=\"data?.file?.name as name\">{{ name }}</span>\n <span *ngIf=\"data?.file?.size as size\">{{ size | bbFileSize }}</span>\n </div>\n</div>\n\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The file picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-file-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n\n<!-- Upload icon. -->\n<ng-template #uploadIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"></path>\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\n </svg>\n</ng-template>\n\n<!-- Close icon. -->\n<ng-template #closeIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n class=\"bb-file-picker-icon\"\n width=\"24\"\n height=\"24\">\n <path fill=\"currentColor\"\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n</ng-template>\n","import {\n Directive,\n DoCheck,\n ElementRef,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self\n} from '@angular/core';\nimport {BbFormControl} from '../form-control/form-control.component';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {NgControl} from '@angular/forms';\nimport {Subscription} from 'rxjs';\n\n@Directive({\n selector: 'select[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbSelect implements OnInit, DoCheck, OnDestroy {\n\n protected hasArrow: boolean = true;\n\n private _subscription: Subscription;\n\n constructor(protected _elementRef: ElementRef,\n @Optional() @Self() protected _ngControl: NgControl,\n @Optional() @Host() protected _formControl: BbFormControl) {\n }\n\n ngOnInit() {\n // Set an arrow on the form control if\n // it requires one.\n this._formControl.arrow = this.hasArrow;\n }\n\n ngDoCheck() {\n if (this._ngControl) {\n this.disabled = this._ngControl.disabled;\n }\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n focus() {\n return this._elementRef?.nativeElement?.focus();\n }\n\n setFocus(hasFocus: boolean) {\n if (!this._formControl) {\n return;\n }\n\n this._formControl.focused = hasFocus;\n }\n\n @HostBinding('attr.id')\n get id() {\n return this._formControl?.labelId ?? null;\n }\n\n get disabled() {\n if (this._ngControl && this._ngControl.disabled !== null) {\n return this._ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n @Input()\n set disabled(newValue: boolean) {\n this._disabled = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.disabled = this._disabled;\n }\n\n private _disabled = false;\n\n get required() {\n return this._required;\n }\n\n @Input()\n set required(newValue: boolean) {\n this._required = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.required = this._required;\n }\n\n private _required = false;\n\n}\n\n@Directive({\n selector: 'input[bbInput], textarea[bbInput]',\n host: {\n '[disabled]': 'disabled',\n '[readonly]': 'readonly',\n '(focus)': 'setFocus(true)',\n '(blur)': 'setFocus(false)'\n }\n})\nexport class BbInput extends BbSelect {\n\n protected override hasArrow: boolean = false;\n\n constructor(protected override _elementRef: ElementRef,\n @Optional() @Self() protected override _ngControl: NgControl,\n @Optional() @Host() protected override _formControl: BbFormControl) {\n super(_elementRef, _ngControl, _formControl);\n }\n\n get readonly() {\n return this._readonly;\n }\n\n @Input()\n set readonly(newValue: boolean) {\n this._readonly = coerceBooleanProperty(newValue);\n\n if (!this._formControl) {\n return;\n }\n\n this._formControl.readonly = this._readonly;\n }\n\n private _readonly = false;\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n CanHideErrors,\n CanHideErrorsConstructor,\n HasError,\n HasErrorConstructor,\n IsGrouped,\n IsGroupedConstructor,\n IsReadonly,\n IsReadonlyConstructor,\n IsRequired,\n IsRequiredConstructor,\n mixinDisabled,\n mixinError,\n mixinGrouped,\n mixinHideErrors,\n mixinReadonly,\n mixinRequired\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validators\n} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, tap} from 'rxjs/operators';\nimport {LOCALIZE_ID} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\nclass BbDatePickerBase {\n}\n\nconst BbFilePickerMixinBase: IsRequiredConstructor\n & IsReadonlyConstructor\n & CanDisableConstructor\n & IsGroupedConstructor\n & HasErrorConstructor\n & CanHideErrorsConstructor\n & typeof BbDatePickerBase\n = mixinRequired(mixinReadonly(mixinDisabled(mixinGrouped(mixinError(mixinHideErrors(BbDatePickerBase))))));\n\n@Component({\n selector: 'bb-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BbDatePicker),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: BbDatePicker,\n multi: true\n }\n ],\n host: {\n 'class': 'bb-date-picker',\n '[class.required]': 'required',\n '[class.readonly]': 'readonly',\n '[class.disabled]': 'disabled',\n '[class.grouped]': 'grouped',\n '[class.error]': 'error'\n },\n inputs: ['required', 'readonly', 'disabled', 'grouped', 'hideErrors'],\n preserveWhitespaces: false\n})\nexport class BbDatePicker extends BbFilePickerMixinBase implements ControlValueAccessor, OnInit, OnDestroy, IsRequired, IsReadonly, CanDisable, IsGrouped, HasError, CanHideErrors {\n\n // Readonly data.\n readonly _yearRegex = /^(10|[1-9][0-9])\\d{2}$/; // Note: 1000 - 9999\n\n // Inputs.\n @Input() label: string | TemplateRef<any> | null = null;\n @Input() hint: string | TemplateRef<any> | null = null;\n @Input() dayPlaceholder: string | null = 'dd';\n @Input() monthPlaceholder: string | null = 'mm';\n @Input() yearPlaceholder: string | null = 'yyyy';\n\n @Input()\n set years(value: [string | number, string | number] | null) {\n this.parseYears(value);\n }\n\n // Forms.\n form: FormGroup;\n trackByValue = (_, item) => item?.value;\n\n // Data.\n data$: Observable<{\n days?: { label: string, value: number }[],\n months?: { label: string, value: number }[],\n years?: number[] | null\n }>;\n years$ = new BehaviorSubject<number[] | null>(null);\n\n get value() {\n return this.formToDateString(this.form?.value);\n }\n\n @Input()\n set value(value: string | null) {\n this.parseDateStringInForm(value);\n this.valueChange.emit(this.value);\n }\n\n @Output() valueChange = new EventEmitter<string | null>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(@Inject(LOCALIZE_ID) private _localizeId: Observable<string>) {\n super();\n }\n\n ngOnInit() {\n this.composeForm();\n this.getData();\n this.handleChanges();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n writeValue(value: string | null) {\n this.parseDateStringInForm(value);\n }\n\n registerOnChange(method: (_: string | null) => void) {\n this.onChangeCallback = method;\n }\n\n registerOnTouched(method: () => void) {\n this.onTouchedCallback = method;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n\n if (this.disabled) {\n this.form?.disable();\n } else {\n this.form?.enable();\n }\n }\n\n onTouchedCallback: () => void = () => {\n };\n\n onChangeCallback: (_: string | null) => void = () => {\n };\n\n onErrorChange(error: { token: string, data?: any } | null) {\n this.error = !!error;\n }\n\n validate({value}: FormControl<string>) {\n if (value === null || value === undefined) {\n return null;\n }\n\n const data = this.parseDateString(value);\n const date = new Date(data?.year, data?.month - 1, data?.day);\n\n const maxDays = this.getDaysInMonth(data?.month, `${data?.year}`);\n\n const isInvalidDate = date.toString() === 'Invalid Date';\n const exceededMaxDays = data?.day > maxDays;\n\n return (isInvalidDate || exceededMaxDays) && {\n invalidDate: true\n };\n }\n\n private handleChanges() {\n const dateOrNull$ = this.form.valueChanges.pipe(\n map(value => this.formToDateString(value)),\n distinctUntilChanged()\n );\n\n const subscription = dateOrNull$.subscribe(() => {\n this.valueChange.emit(this.value);\n this.onChangeCallback(this.value);\n });\n this._subscription.add(subscription);\n }\n\n private getData() {\n const years$ = this.years$.asObservable();\n const months$ = this.getMonthData();\n const days$ = this.getDayData();\n\n this.data$ = combineLatest([years$, months$, days$]).pipe(\n map(([years, months, days]) => ({years, months, days})),\n tap(data => this.verifyListData(data?.days?.length, data?.years))\n );\n }\n\n private verifyListData(maxDays: number, years: number[] | null) {\n const dayControl = this.form.get('day');\n if (dayControl?.value !== null && dayControl?.value > maxDays) {\n dayControl.patchValue(maxDays);\n }\n\n const yearControl = this.form.get('year');\n if (years !== null && yearControl?.value !== null && this._yearRegex.test(yearControl?.value)) {\n const selectedYear = Number(yearControl?.value);\n\n const firstYear = Math.min(...years);\n const lastYear = Math.max(...years);\n\n if (selectedYear < firstYear || selectedYear > lastYear) {\n Promise.resolve().then(() => yearControl.patchValue(null));\n }\n }\n }\n\n private getDayData() {\n const count$ = this.form.valueChanges.pipe(\n startWith(this.form?.value as object),\n map(({month, year}) => this.getDaysInMonth(month, year)),\n distinctUntilChanged()\n );\n\n return count$.pipe(\n map(count => Array(count).fill(0).map((_, index) => ({\n label: `${index + 1}`,\n value: index + 1\n })))\n );\n }\n\n private getMonthData() {\n return this._localizeId.pipe(\n map(locale => {\n return Array(12).fill(0).map((_, month) => {\n const date = new Date(2000, month, 1);\n const label = formatDate(date, 'LLLL', locale);\n return {label, value: month + 1};\n });\n })\n );\n }\n\n private composeForm() {\n const {required, pattern, minLength, maxLength} = Validators;\n const yearPattern = pattern(this._yearRegex);\n const yearValidators = [required, yearPattern, minLength(4), maxLength(4)];\n\n this.form = new FormGroup({\n day: new FormControl<number>(null, required),\n month: new FormControl<number>(null, required),\n year: new FormControl<number>(null, yearValidators)\n });\n }\n\n private parseDateStringInForm(value: string | null) {\n // If the date string was not a valid format, reset the form.\n if (!this.isValidDateString(value)) {\n if (value !== null) {\n this.form?.reset({year: null, month: null, day: null}, {emitEvent: false});\n }\n return;\n }\n\n // Parse the date string and save in the form.\n const data = this.parseDateString(value);\n const year = data?.year !== null && data?.year !== undefined\n ? this.padString(`${data?.year}`, 4, '0')\n : null;\n const formData = {...(data ?? {}), year};\n\n this.form?.patchValue(formData, {emitEvent: false});\n }\n\n private parseDateString(value: string) {\n if (!this.isValidDateString(value)) {\n return null;\n }\n\n // Parse the date string.\n const [year, month, day] = value?.split('-');\n\n return {\n day: day ? parseInt(day, 10) : null,\n month: month ? parseInt(month, 10) : null,\n year: year ? parseInt(year, 10) : null\n };\n }\n\n private parseYears(values: [string | number, string | number] | null) {\n if (!values) {\n return this.years$.next(null);\n }\n\n // Parse the values to years (in numbers).\n const [first, last] = values;\n const firstYear = this.parseYearFormat(first);\n const lastYear = this.parseYearFormat(last);\n\n // Check cases in where we cannot parse.\n if (firstYear === null || lastYear === null) {\n return this.years$.next(null);\n }\n\n const difference = firstYear - lastYear;\n const absoluteDifference = Math.abs(difference) + 1;\n\n // Create an array with years.\n const years = Array(absoluteDifference)\n .fill(0)\n .map((_, index) => difference < 0 ? (firstYear + index) : (firstYear - index));\n\n // Validate we have one or more years.\n if (years?.length <= 0) {\n return this.years$.next(null);\n }\n\n // Push the years.\n return this.years$.next(years);\n }\n\n private formToDateString = ({year, month, day}) => {\n if (this.form?.invalid) {\n return null;\n }\n\n const prefixedMonth = this.padString(`${month}`, 2, '0');\n const prefixedDay = this.padString(`${day}`, 2, '0');\n\n return [year, prefixedMonth, prefixedDay].join('-');\n };\n\n private parseYearFormat = (value: string | number) => {\n // Transform the value to a definitive string.\n const yearString = `${value}`;\n const currentFullYear = new Date().getFullYear();\n\n // Handle default \"current\" syntax.\n if (yearString === 'current') {\n return currentFullYear;\n }\n\n // Handle \"current + {amount}\" syntax.\n if (/^current\\s?\\+\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('+')?.[1]?.trim()) ?? 0;\n return currentFullYear + amount;\n }\n\n // Handle \"current - {amount}\" syntax.\n if (/^current\\s?-\\s?\\d+$/.test(yearString)) {\n const amount = Number(yearString?.split('-')?.[1]?.trim()) ?? 0;\n return currentFullYear - amount;\n }\n\n // Handling the default number case.\n if (/^[0-9]{4}$/.test(yearString)) {\n return Number(yearString);\n }\n\n // We could not parse it.\n return null;\n };\n\n private getDaysInMonth = (month: number | null = null, year: string | null = null) => {\n if (this.form?.invalid || month === null || year === null) {\n return 31;\n }\n\n const parsedYear = parseInt(year, 10);\n return new Date(parsedYear, month, 0).getDate();\n };\n\n private isValidDateString = (value: unknown) => {\n return typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(value);\n };\n\n private padString = (value: string, maxLength: number, fillString: string = '0') => {\n const count = maxLength - value.length;\n for (let index = 0; index < count; index++) {\n value = `${fillString}${value}`;\n }\n\n return value;\n };\n\n}\n","<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[bbSuffix]',\n host: {\n 'class': 'bb-suffix'\n }\n})\nexport class BbSuffix {\n}\n\n@Directive({\n selector: '[bbPrefix]',\n host: {\n 'class': 'bb-prefix'\n }\n})\nexport class BbPrefix {\n}\n","import {IsGrouped, IsGroupedConstructor, mixinGrouped} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\nclass BbFormGroupBase {\n}\n\nconst BbFormGroupMixinBase: IsGroupedConstructor\n & typeof BbFormGroupBase\n = mixinGrouped(BbFormGroupBase);\n\n@Component({\n selector: 'bb-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-form-group',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped'],\n preserveWhitespaces: false\n})\nexport class BbFormGroup extends BbFormGroupMixinBase implements IsGrouped {\n}\n","<ng-content></ng-content>\n","import {Inject, LOCALE_ID, Optional, Pipe, PipeTransform} from '@angular/core';\nimport {Localize} from '@bravobit/bb-foundation/localize';\nimport {formatDate} from '@angular/common';\n\n@Pipe({\n name: 'bbRelativeTime'\n})\nexport class BbRelativeTime implements PipeTransform {\n\n constructor(@Inject(LOCALE_ID) private _localeId: string,\n @Optional() private _localize?: Localize) {\n }\n\n transform(value: string | number | Date) {\n // Parse the value to a date object.\n const date = this.parseAsDate(value);\n\n // Check if the date is valid.\n if (!this.isValidDate(date)) {\n return value;\n }\n\n // Return the formatted date.\n return this.format(date);\n }\n\n private format(date: Date) {\n // It happens tomorrow.\n if (this.isTomorrow(date)) {\n return this.formatString(date, 'times.tomorrow_at', 'shortTime');\n }\n\n // It happened today.\n if (this.isToday(date)) {\n return this.formatString(date, 'times.today_at', 'shortTime');\n }\n\n // It happened yesterday.\n if (this.isYesterday(date)) {\n return this.formatString(date, 'times.yesterday_at', 'shortTime');\n }\n\n // Just return the date.\n return this.formatString(date);\n }\n\n private formatString(date: Date, token?: string, format?: string) {\n // Just return the parsed date.\n if (!this._localize || !token || !format) {\n return formatDate(date, 'mediumDate', this.locale);\n }\n\n // Return the translated formatting.\n return this._localize.translate({\n token: token,\n data: {date: formatDate(date, format, this.locale)}\n });\n }\n\n private get locale() {\n return this._localize?.current?.locale ?? this._localeId;\n }\n\n private isValidDate = (date: Date) => {\n return typeof date === 'object' &&\n typeof date.getTime === 'function' &&\n !isNaN(date.getTime());\n };\n\n private parseAsDate = (value: string | number | Date) => {\n // Add a Z after the date so\n // it is treated as a UTC date.\n if (typeof value === 'string' && /^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(value)) {\n return new Date(`${value}Z`);\n }\n\n // Return the regular parsed date.\n return new Date(value);\n };\n\n private isToday = (date: Date) => {\n const today = new Date();\n return date?.getDate() === today?.getDate() &&\n date?.getMonth() === today?.getMonth() &&\n date?.getFullYear() === today?.getFullYear();\n };\n\n private isYesterday = (date: Date) => {\n const yesterday = new Date(new Date()?.setDate(new Date()?.getDate() - 1));\n return date?.getDate() === yesterday?.getDate() &&\n date?.getMonth() === yesterday?.getMonth() &&\n date?.getFullYear() === yesterday?.getFullYear();\n };\n\n private isTomorrow = (date: Date) => {\n const tomorrow = new Date(new Date()?.setDate(new Date()?.getDate() + 1));\n return date?.getDate() === tomorrow?.getDate() &&\n date?.getMonth() === tomorrow?.getMonth() &&\n date?.getFullYear() === tomorrow?.getFullYear();\n };\n\n}\n","import {\n CanDisable,\n CanDisableConstructor,\n mixinDisabled,\n IsGrouped,\n IsGroupedConstructor,\n mixinGrouped\n} from '@bravobit/bb-foundation';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\nlet nextUniqueId = 0;\n\nclass BbCheckboxBase {\n}\n\nconst BbCheckboxMixinBase: IsGroupedConstructor\n & CanDisableConstructor\n & typeof BbCheckboxBase\n = mixinDisabled(mixinGrouped(BbCheckboxBase));\n\n@Component({\n selector: 'bb-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(() => BbCheckbox), multi: true}\n ],\n host: {\n 'class': 'bb-checkbox',\n '[class.grouped]': 'grouped'\n },\n inputs: ['grouped', 'disabled'],\n preserveWhitespaces: false\n})\nexport class BbCheckbox extends BbCheckboxMixinBase implements ControlValueAccessor, IsGrouped, CanDisable {\n\n // Data.\n labelId = `bb-checkbox-${nextUniqueId++}`;\n\n // Inputs.\n @Input() tabIndex: number;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: any) {\n this._checked = coerceBooleanProperty(value);\n this._changeDetection.markForCheck();\n }\n\n private _checked: boolean = false;\n\n constructor(private _changeDetection: ChangeDetectorRef) {\n super();\n }\n\n // Methods.\n onChange: (newValue: boolean) => void = () => {\n };\n\n onTouched: () => void = () => {\n };\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this._changeDetection.markForCheck();\n }\n\n writeValue(newValue: boolean) {\n this.checked = newValue;\n }\n\n onInteractionEvent(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n }\n\n onInputClick(event: Event) {\n // Stop the propagation to prevent it from bubbling up.\n event.stopPropagation();\n\n // Toggle the value.\n this.checked = !this.checked;\n\n // Emit the change event.\n this.onChange && this.onChange(this.checked);\n }\n\n}\n","<input [id]=\"labelId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n class=\"bb-checkbox-input\"\n tabindex=\"-1\"\n type=\"checkbox\">\n\n<label [for]=\"labelId\"\n [attr.tabindex]=\"disabled ? -1 : (tabIndex || 0)\"\n (keyup.space)=\"onInputClick($event)\"\n class=\"bb-checkbox-label\">\n <span>\n <svg width=\"12px\"\n height=\"10px\"\n viewbox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-avatar',\n 'role': 'img',\n '[style.width.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size * 0.42',\n '[style.color]': 'color',\n '[style.background-color]': 'backgroundColor'\n }\n})\nexport class BbAvatar {\n\n // Inputs.\n @Input() size: number = 40;\n\n // State.\n state$ = new BehaviorSubject<string>('initials');\n\n // Data.\n private _src: string | null = null;\n private _title: string | null = null;\n private _initials: string = '!';\n private _color: string = 'rgb(255, 255, 255)';\n private _backgroundColor: string = 'rgb(66, 66, 66)';\n\n @Input()\n set src(value: string) {\n this._src = value;\n\n if (this._src) {\n this.state$.next('image');\n }\n }\n\n @Input()\n @HostBinding('attr.title')\n set title(value: string) {\n // Set the title and the initials.\n this._title = value ?? '!';\n this._initials = this.getInitials(this._title);\n\n // Generate the colors based on the name.\n const {r, g, b} = this.toRgb(this._title);\n this.setColors(r, g, b);\n }\n\n @Input()\n set tintColor(value: string) {\n const result = this.parseColorFormat(value);\n if (!result) {\n return;\n }\n\n const {r, g, b} = result;\n this.setColors(r, g, b);\n }\n\n get src() {\n return this._src;\n }\n\n get color() {\n return this._color;\n }\n\n get backgroundColor() {\n return this._backgroundColor;\n }\n\n get title() {\n return this._title;\n }\n\n get initials() {\n return this._initials;\n }\n\n private setColors(red: number, green: number, blue: number) {\n this._color = `rgb(${red},${green},${blue})`;\n this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;\n }\n\n private toRgb = (value: string) => {\n const baseRed = 128;\n const baseGreen = 128;\n const baseBlue = 128;\n\n let seed = value.charCodeAt(0) ^ value.charCodeAt(1);\n const rand_1 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_2 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n const rand_3 = Math.abs((Math.sin(seed++) * 10000)) % 256;\n\n const r = Math.round((rand_1 + baseRed) / 2);\n const g = Math.round((rand_2 + baseGreen) / 2);\n const b = Math.round((rand_3 + baseBlue) / 2);\n\n return {r, g, b};\n };\n\n private getInitials = (name: string) => {\n // Get all the initials.\n const names = (name ?? '').split(' ');\n const initials = names\n .map(name => name.charAt(0).toUpperCase())\n .filter(name => /^[a-zA-Z]+$/.test(name));\n\n // Check if there are any initials.\n if (initials?.length <= 0) {\n return null;\n }\n\n // Get the first and last initials.\n if (initials?.length > 1) {\n return `${initials?.[0]}${initials?.[initials?.length - 1]}`;\n }\n\n // Get only the first initial.\n return initials?.[0];\n };\n\n private parseColorFormat = (value: string) => {\n if (!value) {\n return null;\n }\n\n // Hex 3 values.\n let match = value.match(/^#([0-9a-f]{3})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].charAt(0), 16) * 0x11;\n const g = parseInt(match[1].charAt(1), 16) * 0x11;\n const b = parseInt(match[1].charAt(2), 16) * 0x11;\n\n return {r, g, b};\n }\n\n // Hex 6 values.\n match = value.match(/^#([0-9a-f]{6})$/i);\n if (match && match[1]) {\n const r = parseInt(match[1].substring(0, 2), 16);\n const g = parseInt(match[1].substring(2, 4), 16);\n const b = parseInt(match[1].substring(4, 6), 16);\n\n return {r, g, b};\n }\n\n // Rgb values.\n match = value.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i);\n if (match) {\n const r = parseInt(match[1], 10);\n const g = parseInt(match[2], 10);\n const b = parseInt(match[3], 10);\n\n return {r, g, b};\n }\n\n // Not a supported color format.\n console?.warn?.(`BbAvatar: Unsupported tintColor \"${value}\" was used.`);\n return null;\n };\n\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {ELEMENTS_ICONS, ElementsIcon} from '../elements.interfaces';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'bb-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-icon',\n '[attr.aria-hidden]': 'ariaHidden',\n '[style.width.px]': 'size',\n '[style.height.px]': 'size',\n '[style.min-width.px]': 'size',\n '[style.min-height.px]': 'size',\n '[style.font-size.px]': 'size'\n },\n preserveWhitespaces: false\n})\nexport class BbIcon {\n\n // Data.\n private _src: string | null = null;\n\n // State.\n state$ = new BehaviorSubject<any>(null);\n\n @Input() alt: string | null = null;\n @Input() size: number = 24;\n\n @Input()\n set src(newValue: string | null) {\n this.state$.next(this.convert(newValue));\n this._src = newValue;\n }\n\n get src() {\n return this._src;\n }\n\n @Input()\n set ariaHidden(newValue: boolean) {\n this._ariaHidden = coerceBooleanProperty(newValue);\n }\n\n get ariaHidden() {\n return this._ariaHidden;\n }\n\n private _ariaHidden = true;\n\n constructor(@Optional() @Inject(ELEMENTS_ICONS) private _registry: ElementsIcon[]) {\n }\n\n private convert(src: string | null) {\n const [namespace, value] = (src || '').split(':');\n\n const onError = () => {\n this.warn(`ElementsModule: The icon with src \"${src}\" could not be rendered correctly; Did you put a correct src attribute?`);\n return {type: 'unknown'};\n };\n\n if (!namespace || !value || !this._registry) {\n return onError();\n }\n\n // Try to find a image icon.\n const imageIcon = this.findImageIcon(namespace, value);\n if (imageIcon) {\n return imageIcon;\n }\n\n // Try to find a font icon.\n const fontIcon = this.findFontIcon(namespace, value);\n if (fontIcon) {\n return fontIcon;\n }\n\n // Return the on error function.\n return onError();\n }\n\n private findImageIcon(namespace: string, value: string) {\n const data = this._registry.find(item => item['namespace'] === namespace && item['name'] === value);\n\n if (!data) {\n return null;\n }\n\n return {type: data['type'], src: data['src']};\n }\n\n private findFontIcon(namespace: string, content: string) {\n const data = this._registry.find(item => item['namespace'] === namespace);\n\n if (!data) {\n return null;\n }\n\n const uses = data['uses'];\n if (uses === 'data-attribute') {\n return {type: data['type'], className: data['className'], attribute: content};\n }\n\n return {type: data['type'], className: data['className'], content};\n }\n\n private warn = (content: string) => {\n return console && console.warn && console.warn(content);\n };\n\n}\n","<ng-container *ngIf=\"state$ | async as data\"\n [ngSwitch]=\"data?.type\">\n <i *ngSwitchCase=\"'font'\"\n [attr.data-icon]=\"data?.attribute\"\n [class]=\"data?.className\">\n {{ data?.content }}\n </i>\n <img *ngSwitchCase=\"'image'\"\n [src]=\"data?.src\"\n [alt]=\"alt\">\n <svg *ngSwitchCase=\"'unknown'\"\n viewBox=\"0 0 1 1\">\n <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#c5c5c5\"></rect>\n </svg>\n</ng-container>\n","import {ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'bb-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {'class': 'bb-tag'}\n})\nexport class BbTag {\n\n // Outputs.\n @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\n\n}\n","<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>","import {BbDropdown, BbDropdownItem} from './dropdown/dropdown.component';\nimport {ELEMENTS_ERRORS, ELEMENTS_ICONS} from './elements.interfaces';\nimport {BbFormSubmitter} from './directives/form-submitter.directive';\nimport {BbImagePicker} from './image-picker/image-picker.component';\nimport {BbFormControl} from './form-control/form-control.component';\nimport {BbFilePicker} from './file-picker/file-picker.component';\nimport {BbDatePicker} from './date-picker/date-picker.component';\nimport {LocalizeModule} from '@bravobit/bb-foundation/localize';\nimport {BbPrefix, BbSuffix} from './directives/addon.directive';\nimport {BbFormSubmit} from './directives/form-submit.directive';\nimport {BbInput, BbSelect} from './directives/input.directive';\nimport {BbFormGroup} from './form-group/form-group.component';\nimport {BbFormError} from './form-error/form-error.component';\nimport {BbAnchor, BbButton} from './button/button.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbRelativeTime} from './pipes/relative-time.pipe';\nimport {UtilsModule} from '@bravobit/bb-foundation/utils';\nimport {BbCheckbox} from './checkbox/checkbox.component';\nimport {BbSpinner} from './spinner/spinner.component';\nimport {BbFileImage} from './pipes/file-image.pipe';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {BbAvatar} from './avatar/avatar.component';\nimport {BbFileSize} from './pipes/file-size.pipe';\nimport {CommonModule} from '@angular/common';\nimport {BbIcon} from './icon/icon.component';\nimport {BbTag} from './tag/tag.component';\n\nconst DECLARATIONS_EXPORTS = [\n // Directives.\n BbFormError,\n BbFormSubmit,\n BbFormSubmitter,\n BbInput,\n BbSelect,\n BbPrefix,\n BbSuffix,\n // Pipes.\n BbFileSize,\n BbFileImage,\n BbRelativeTime,\n // Components.\n BbButton,\n BbAnchor,\n BbSpinner,\n BbIcon,\n BbFormControl,\n BbFormGroup,\n BbCheckbox,\n BbDropdown,\n BbDropdownItem,\n BbTag,\n BbAvatar,\n BbFilePicker,\n BbImagePicker,\n BbDatePicker\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n LocalizeModule,\n UtilsModule\n ],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS, UtilsModule]\n})\nexport class ElementsModule {\n\n static forRoot(): ModuleWithProviders<ElementsModule> {\n return {\n ngModule: ElementsModule,\n providers: [\n {provide: ELEMENTS_ERRORS, useFactory: getErrors, multi: true},\n ELEMENTS_MATERIAL_ICON\n ]\n };\n }\n\n}\n\nexport const ELEMENTS_MATERIAL_ICON = {\n provide: ELEMENTS_ICONS,\n useValue: {namespace: 'material', className: 'material-icons', uses: 'content', type: 'font'},\n multi: true\n};\n\nexport function getErrors() {\n const data = {\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\n return data;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BbSpinner","i1","i2","i3.BbButton","i4","i5","nextUniqueId","i3.BbFormError","BbFilePickerMixinBase","i5.BbFileSize","i6.BbFileImage","i2.BbFormControl","i3","i4.BbFormError","i5.BbFormSubmit","i6.BbInput","i6.BbSelect","i7.BbFormControl"],"mappings":"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"}