@bravobit/bb-foundation 0.21.1 → 0.21.4

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 (467) hide show
  1. package/README.md +47 -47
  2. package/auth/index.d.ts +5 -5
  3. package/auth/lib/auth.interceptor.d.ts +21 -21
  4. package/auth/lib/auth.module.d.ts +15 -15
  5. package/auth/lib/auth.service.d.ts +59 -59
  6. package/auth/lib/auth.session.d.ts +34 -34
  7. package/auth/lib/directives/authenticated.directive.d.ts +14 -14
  8. package/auth/lib/directives/permission.directive.d.ts +24 -24
  9. package/auth/lib/directives/role.directive.d.ts +16 -16
  10. package/auth/lib/guards/anonymous.guard.d.ts +11 -11
  11. package/auth/lib/guards/authenticated.guard.d.ts +11 -11
  12. package/auth/lib/helpers/jwt.helper.d.ts +8 -8
  13. package/auth/lib/helpers/mapper.helper.d.ts +23 -23
  14. package/auth/lib/interfaces/config.interface.d.ts +12 -12
  15. package/auth/lib/interfaces/mapper.interface.d.ts +19 -19
  16. package/auth/lib/interfaces/provider.interface.d.ts +16 -16
  17. package/auth/lib/interfaces/token.interface.d.ts +11 -11
  18. package/auth/lib/permissions.service.d.ts +14 -14
  19. package/auth/lib/providers/email.provider.d.ts +15 -15
  20. package/auth/lib/providers/verify.provider.d.ts +13 -13
  21. package/auth/lib/tokens/use-authorization.token.d.ts +2 -2
  22. package/auth/public_api.d.ts +18 -18
  23. package/collections/index.d.ts +5 -5
  24. package/collections/lib/collection.d.ts +42 -43
  25. package/collections/lib/collections.module.d.ts +10 -10
  26. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -34
  27. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -12
  28. package/collections/lib/components/collections.directive.d.ts +17 -17
  29. package/collections/lib/interfaces/collection.interface.d.ts +27 -26
  30. package/collections/lib/providers/api-collection.provider.d.ts +18 -19
  31. package/collections/lib/providers/collection.provider.d.ts +6 -6
  32. package/collections/lib/providers/local-collection.provider.d.ts +8 -8
  33. package/collections/public_api.d.ts +9 -9
  34. package/controls/index.d.ts +5 -5
  35. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -47
  36. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +22 -22
  37. package/controls/lib/checkbox/checkbox.module.d.ts +9 -9
  38. package/controls/lib/controls.module.d.ts +7 -7
  39. package/controls/public_api.d.ts +4 -4
  40. package/dashboard/index.d.ts +5 -5
  41. package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
  42. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
  43. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
  44. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
  45. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
  46. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
  47. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
  48. package/dashboard/lib/dashboard.module.d.ts +16 -16
  49. package/dashboard/public_api.d.ts +8 -8
  50. package/dialog/index.d.ts +5 -5
  51. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
  52. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
  53. package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
  54. package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
  55. package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
  56. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
  57. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
  58. package/dialog/lib/dialog.injector.d.ts +8 -8
  59. package/dialog/lib/dialog.insertion.d.ts +8 -8
  60. package/dialog/lib/dialog.interfaces.d.ts +3 -3
  61. package/dialog/lib/dialog.module.d.ts +19 -19
  62. package/dialog/lib/dialog.ref.d.ts +8 -8
  63. package/dialog/lib/dialog.service.d.ts +19 -19
  64. package/dialog/public_api.d.ts +9 -9
  65. package/elements/index.d.ts +5 -5
  66. package/elements/lib/avatar/avatar.component.d.ts +25 -25
  67. package/elements/lib/button/button.component.d.ts +23 -23
  68. package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
  69. package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
  70. package/elements/lib/directives/addon.directive.d.ts +9 -9
  71. package/elements/lib/directives/autosize.directive.d.ts +18 -18
  72. package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
  73. package/elements/lib/directives/focus.directive.d.ts +14 -14
  74. package/elements/lib/directives/form-submit.directive.d.ts +17 -17
  75. package/elements/lib/directives/input.directive.d.ts +38 -38
  76. package/elements/lib/directives/template.directive.d.ts +10 -10
  77. package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
  78. package/elements/lib/elements.interfaces.d.ts +25 -25
  79. package/elements/lib/elements.module.d.ts +116 -116
  80. package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
  81. package/elements/lib/form-control/form-control.component.d.ts +21 -21
  82. package/elements/lib/form-error/form-error.component.d.ts +29 -29
  83. package/elements/lib/form-group/form-group.component.d.ts +10 -10
  84. package/elements/lib/icon/icon.component.d.ts +22 -22
  85. package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
  86. package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
  87. package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
  88. package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
  89. package/elements/lib/spinner/spinner.component.d.ts +12 -12
  90. package/elements/lib/tag/tag.component.d.ts +7 -7
  91. package/elements/public_api.d.ts +25 -25
  92. package/esm2020/auth/bravobit-bb-foundation-auth.mjs +4 -4
  93. package/esm2020/auth/lib/auth.interceptor.mjs +93 -93
  94. package/esm2020/auth/lib/auth.module.mjs +54 -54
  95. package/esm2020/auth/lib/auth.service.mjs +281 -281
  96. package/esm2020/auth/lib/auth.session.mjs +131 -131
  97. package/esm2020/auth/lib/directives/authenticated.directive.mjs +31 -31
  98. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -80
  99. package/esm2020/auth/lib/directives/role.directive.mjs +37 -37
  100. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -34
  101. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -35
  102. package/esm2020/auth/lib/helpers/jwt.helper.mjs +69 -69
  103. package/esm2020/auth/lib/helpers/mapper.helper.mjs +35 -35
  104. package/esm2020/auth/lib/interfaces/config.interface.mjs +3 -3
  105. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +2 -2
  106. package/esm2020/auth/lib/interfaces/provider.interface.mjs +2 -2
  107. package/esm2020/auth/lib/interfaces/token.interface.mjs +2 -2
  108. package/esm2020/auth/lib/permissions.service.mjs +56 -56
  109. package/esm2020/auth/lib/providers/email.provider.mjs +25 -25
  110. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -19
  111. package/esm2020/auth/lib/tokens/use-authorization.token.mjs +3 -3
  112. package/esm2020/auth/public_api.mjs +19 -19
  113. package/esm2020/bravobit-bb-foundation.mjs +4 -4
  114. package/esm2020/collections/bravobit-bb-foundation-collections.mjs +4 -4
  115. package/esm2020/collections/lib/collection.mjs +100 -102
  116. package/esm2020/collections/lib/collections.module.mjs +54 -54
  117. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -123
  118. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -31
  119. package/esm2020/collections/lib/components/collections.directive.mjs +43 -43
  120. package/esm2020/collections/lib/interfaces/collection.interface.mjs +2 -2
  121. package/esm2020/collections/lib/providers/api-collection.provider.mjs +91 -71
  122. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -13
  123. package/esm2020/collections/lib/providers/local-collection.provider.mjs +16 -16
  124. package/esm2020/collections/public_api.mjs +10 -10
  125. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +4 -4
  126. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -153
  127. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +61 -61
  128. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -19
  129. package/esm2020/controls/lib/controls.module.mjs +16 -16
  130. package/esm2020/controls/public_api.mjs +5 -5
  131. package/esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs +4 -4
  132. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -56
  133. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -30
  134. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -31
  135. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -29
  136. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -75
  137. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -99
  138. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -62
  139. package/esm2020/dashboard/lib/dashboard.module.mjs +47 -47
  140. package/esm2020/dashboard/public_api.mjs +9 -9
  141. package/esm2020/dialog/bravobit-bb-foundation-dialog.mjs +4 -4
  142. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -12
  143. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -37
  144. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +153 -153
  145. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -25
  146. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -11
  147. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -46
  148. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -134
  149. package/esm2020/dialog/lib/dialog.injector.mjs +18 -18
  150. package/esm2020/dialog/lib/dialog.insertion.mjs +16 -16
  151. package/esm2020/dialog/lib/dialog.interfaces.mjs +3 -3
  152. package/esm2020/dialog/lib/dialog.module.mjs +68 -68
  153. package/esm2020/dialog/lib/dialog.ref.mjs +22 -22
  154. package/esm2020/dialog/lib/dialog.service.mjs +77 -77
  155. package/esm2020/dialog/public_api.mjs +10 -10
  156. package/esm2020/elements/bravobit-bb-foundation-elements.mjs +4 -4
  157. package/esm2020/elements/lib/avatar/avatar.component.mjs +145 -145
  158. package/esm2020/elements/lib/button/button.component.mjs +61 -61
  159. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -73
  160. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -304
  161. package/esm2020/elements/lib/directives/addon.directive.mjs +29 -29
  162. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -72
  163. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +77 -77
  164. package/esm2020/elements/lib/directives/focus.directive.mjs +39 -39
  165. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -50
  166. package/esm2020/elements/lib/directives/input.directive.mjs +136 -136
  167. package/esm2020/elements/lib/directives/template.directive.mjs +28 -28
  168. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -100
  169. package/esm2020/elements/lib/elements.interfaces.mjs +4 -4
  170. package/esm2020/elements/lib/elements.module.mjs +177 -177
  171. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -236
  172. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -49
  173. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -108
  174. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -18
  175. package/esm2020/elements/lib/icon/icon.component.mjs +102 -102
  176. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -106
  177. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -42
  178. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +28 -28
  179. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -94
  180. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -25
  181. package/esm2020/elements/lib/tag/tag.component.mjs +18 -18
  182. package/esm2020/elements/public_api.mjs +26 -26
  183. package/esm2020/http/bravobit-bb-foundation-http.mjs +4 -4
  184. package/esm2020/http/lib/classes/http.config.mjs +29 -29
  185. package/esm2020/http/lib/classes/http.error.mjs +20 -20
  186. package/esm2020/http/lib/http.interfaces.mjs +2 -2
  187. package/esm2020/http/lib/http.module.mjs +43 -43
  188. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -50
  189. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -32
  190. package/esm2020/http/public_api.mjs +7 -7
  191. package/esm2020/lib/core/miscellaneous/regex.mjs +5 -5
  192. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -85
  193. package/esm2020/lib/core/mixins/can-disable.mjs +16 -16
  194. package/esm2020/lib/core/mixins/can-hide-errors.mjs +16 -16
  195. package/esm2020/lib/core/mixins/can-load.mjs +16 -16
  196. package/esm2020/lib/core/mixins/constructor.mjs +2 -2
  197. package/esm2020/lib/core/mixins/has-error.mjs +16 -16
  198. package/esm2020/lib/core/mixins/is-focused.mjs +16 -16
  199. package/esm2020/lib/core/mixins/is-grouped.mjs +16 -16
  200. package/esm2020/lib/core/mixins/is-readonly.mjs +16 -16
  201. package/esm2020/lib/core/mixins/is-required.mjs +16 -16
  202. package/esm2020/lib/core/services/clipboard.service.mjs +70 -70
  203. package/esm2020/lib/core/services/exif.service.mjs +163 -163
  204. package/esm2020/lib/core/services/file-loader.service.mjs +87 -87
  205. package/esm2020/lib/core/services/image-converter.service.mjs +123 -123
  206. package/esm2020/lib/core/services/languages.service.mjs +74 -74
  207. package/esm2020/lib/core/services/network.service.mjs +55 -55
  208. package/esm2020/lib/core/services/patch.service.mjs +63 -63
  209. package/esm2020/lib/core/services/platform.service.mjs +42 -42
  210. package/esm2020/lib/core/tokens/accept-language.token.mjs +3 -3
  211. package/esm2020/lib/core/tokens/base-url.token.mjs +3 -3
  212. package/esm2020/lib/core/tokens/cookie.token.mjs +3 -3
  213. package/esm2020/lib/core/tokens/location.token.mjs +6 -6
  214. package/esm2020/lib/core/tokens/navigator.token.mjs +6 -6
  215. package/esm2020/lib/core/tokens/window.token.mjs +12 -12
  216. package/esm2020/localize/bravobit-bb-foundation-localize.mjs +4 -4
  217. package/esm2020/localize/lib/functions/date.function.mjs +18 -18
  218. package/esm2020/localize/lib/functions/lowercase.function.mjs +13 -13
  219. package/esm2020/localize/lib/functions/uppercase.function.mjs +13 -13
  220. package/esm2020/localize/lib/handlers/missing.handler.mjs +15 -15
  221. package/esm2020/localize/lib/interfaces/config.interfaces.mjs +7 -7
  222. package/esm2020/localize/lib/interfaces/functions.interfaces.mjs +8 -8
  223. package/esm2020/localize/lib/interfaces/handlers.interfaces.mjs +2 -2
  224. package/esm2020/localize/lib/interfaces/options.interfaces.mjs +6 -6
  225. package/esm2020/localize/lib/localizations/dutch.localization.mjs +45 -45
  226. package/esm2020/localize/lib/localizations/english.localization.mjs +45 -45
  227. package/esm2020/localize/lib/localize.dictionary.mjs +26 -26
  228. package/esm2020/localize/lib/localize.module.mjs +71 -71
  229. package/esm2020/localize/lib/localize.pipe.mjs +49 -49
  230. package/esm2020/localize/lib/localize.service.mjs +207 -207
  231. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -88
  232. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +28 -28
  233. package/esm2020/localize/lib/views/localize-template.directive.mjs +21 -21
  234. package/esm2020/localize/public_api.mjs +17 -17
  235. package/esm2020/masking/bravobit-bb-foundation-masking.mjs +4 -4
  236. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +35 -0
  237. package/esm2020/masking/lib/directives/date-mask.directive.mjs +35 -0
  238. package/esm2020/masking/lib/directives/input-mask.directive.mjs +118 -0
  239. package/esm2020/masking/lib/input-mask.interface.mjs +2 -2
  240. package/esm2020/masking/lib/masking.module.mjs +30 -16
  241. package/esm2020/masking/lib/masking.service.mjs +103 -94
  242. package/esm2020/masking/public_api.mjs +7 -5
  243. package/esm2020/notifications/bravobit-bb-foundation-notifications.mjs +4 -4
  244. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -100
  245. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -47
  246. package/esm2020/notifications/lib/notifications.animations.mjs +28 -28
  247. package/esm2020/notifications/lib/notifications.injector.mjs +18 -18
  248. package/esm2020/notifications/lib/notifications.interfaces.mjs +20 -20
  249. package/esm2020/notifications/lib/notifications.module.mjs +30 -30
  250. package/esm2020/notifications/lib/notifications.service.mjs +145 -145
  251. package/esm2020/notifications/public_api.mjs +4 -4
  252. package/esm2020/public_api.mjs +29 -29
  253. package/esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs +4 -4
  254. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -185
  255. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -90
  256. package/esm2020/recaptcha/lib/recaptcha.interface.mjs +3 -3
  257. package/esm2020/recaptcha/lib/recaptcha.module.mjs +27 -27
  258. package/esm2020/recaptcha/public_api.mjs +5 -5
  259. package/esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs +4 -4
  260. package/esm2020/rxjs/lib/observables/get-control-value.observable.mjs +6 -0
  261. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -10
  262. package/esm2020/rxjs/lib/operators/filter-nil.operator.mjs +5 -5
  263. package/esm2020/rxjs/public_api.mjs +4 -3
  264. package/esm2020/storage/bravobit-bb-foundation-storage.mjs +4 -4
  265. package/esm2020/storage/lib/interfaces/attributes.interface.mjs +2 -2
  266. package/esm2020/storage/lib/interfaces/memory.interface.mjs +2 -2
  267. package/esm2020/storage/lib/interfaces/strategy.interface.mjs +2 -2
  268. package/esm2020/storage/lib/storage.service.mjs +109 -109
  269. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -142
  270. package/esm2020/storage/lib/strategies/memory-storage.strategy.mjs +56 -56
  271. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -102
  272. package/esm2020/storage/public_api.mjs +8 -8
  273. package/esm2020/table/bravobit-bb-foundation-table.mjs +4 -4
  274. package/esm2020/table/lib/components/table/table.component.mjs +191 -191
  275. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -11
  276. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -131
  277. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -136
  278. package/esm2020/table/lib/data/datasource.data.mjs +32 -32
  279. package/esm2020/table/lib/data/generic.data.mjs +72 -72
  280. package/esm2020/table/lib/interfaces/datasource.interface.mjs +2 -2
  281. package/esm2020/table/lib/interfaces/table.interfaces.mjs +2 -2
  282. package/esm2020/table/lib/table.module.mjs +42 -42
  283. package/esm2020/table/public_api.mjs +10 -10
  284. package/esm2020/theming/bravobit-bb-foundation-theming.mjs +4 -4
  285. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +2 -2
  286. package/esm2020/theming/lib/themes/checkbox.theme.mjs +2 -2
  287. package/esm2020/theming/lib/themes/theme.mjs +34 -0
  288. package/esm2020/theming/lib/theming.interface.mjs +3 -3
  289. package/esm2020/theming/lib/theming.module.mjs +38 -38
  290. package/esm2020/theming/lib/theming.service.mjs +77 -100
  291. package/esm2020/theming/public_api.mjs +7 -4
  292. package/fesm2015/bravobit-bb-foundation-auth.mjs +930 -930
  293. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  294. package/fesm2015/bravobit-bb-foundation-collections.mjs +443 -424
  295. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  296. package/fesm2015/bravobit-bb-foundation-controls.mjs +229 -229
  297. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  298. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +382 -382
  299. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  300. package/fesm2015/bravobit-bb-foundation-dialog.mjs +540 -540
  301. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  302. package/fesm2015/bravobit-bb-foundation-elements.mjs +1970 -1970
  303. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  304. package/fesm2015/bravobit-bb-foundation-http.mjs +156 -156
  305. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  306. package/fesm2015/bravobit-bb-foundation-localize.mjs +608 -608
  307. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  308. package/fesm2015/bravobit-bb-foundation-masking.mjs +313 -215
  309. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  310. package/fesm2015/bravobit-bb-foundation-notifications.mjs +348 -348
  311. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  312. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +290 -290
  313. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  314. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +14 -10
  315. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  316. package/fesm2015/bravobit-bb-foundation-storage.mjs +401 -401
  317. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  318. package/fesm2015/bravobit-bb-foundation-table.mjs +571 -571
  319. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  320. package/fesm2015/bravobit-bb-foundation-theming.mjs +151 -140
  321. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  322. package/fesm2015/bravobit-bb-foundation.mjs +859 -859
  323. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  324. package/fesm2020/bravobit-bb-foundation-auth.mjs +882 -882
  325. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  326. package/fesm2020/bravobit-bb-foundation-collections.mjs +432 -414
  327. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  328. package/fesm2020/bravobit-bb-foundation-controls.mjs +227 -227
  329. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  330. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +370 -370
  331. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  332. package/fesm2020/bravobit-bb-foundation-dialog.mjs +539 -539
  333. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  334. package/fesm2020/bravobit-bb-foundation-elements.mjs +1927 -1927
  335. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  336. package/fesm2020/bravobit-bb-foundation-http.mjs +148 -148
  337. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  338. package/fesm2020/bravobit-bb-foundation-localize.mjs +587 -587
  339. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  340. package/fesm2020/bravobit-bb-foundation-masking.mjs +295 -204
  341. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  342. package/fesm2020/bravobit-bb-foundation-notifications.mjs +346 -346
  343. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  344. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +280 -280
  345. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  346. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +17 -13
  347. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  348. package/fesm2020/bravobit-bb-foundation-storage.mjs +396 -396
  349. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  350. package/fesm2020/bravobit-bb-foundation-table.mjs +560 -560
  351. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  352. package/fesm2020/bravobit-bb-foundation-theming.mjs +141 -130
  353. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  354. package/fesm2020/bravobit-bb-foundation.mjs +831 -831
  355. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  356. package/http/index.d.ts +5 -5
  357. package/http/lib/classes/http.config.d.ts +9 -9
  358. package/http/lib/classes/http.error.d.ts +7 -7
  359. package/http/lib/http.interfaces.d.ts +12 -12
  360. package/http/lib/http.module.d.ts +15 -15
  361. package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
  362. package/http/lib/interceptors/error.interceptor.d.ts +11 -11
  363. package/http/public_api.d.ts +6 -6
  364. package/index.d.ts +5 -5
  365. package/lib/core/miscellaneous/regex.d.ts +4 -4
  366. package/lib/core/miscellaneous/validator.d.ts +13 -13
  367. package/lib/core/mixins/can-disable.d.ts +6 -6
  368. package/lib/core/mixins/can-hide-errors.d.ts +6 -6
  369. package/lib/core/mixins/can-load.d.ts +6 -6
  370. package/lib/core/mixins/constructor.d.ts +1 -1
  371. package/lib/core/mixins/has-error.d.ts +6 -6
  372. package/lib/core/mixins/is-focused.d.ts +6 -6
  373. package/lib/core/mixins/is-grouped.d.ts +6 -6
  374. package/lib/core/mixins/is-readonly.d.ts +6 -6
  375. package/lib/core/mixins/is-required.d.ts +6 -6
  376. package/lib/core/services/clipboard.service.d.ts +18 -18
  377. package/lib/core/services/exif.service.d.ts +15 -15
  378. package/lib/core/services/file-loader.service.d.ts +13 -13
  379. package/lib/core/services/image-converter.service.d.ts +21 -21
  380. package/lib/core/services/languages.service.d.ts +16 -16
  381. package/lib/core/services/network.service.d.ts +14 -14
  382. package/lib/core/services/patch.service.d.ts +16 -16
  383. package/lib/core/services/platform.service.d.ts +18 -18
  384. package/lib/core/tokens/accept-language.token.d.ts +2 -2
  385. package/lib/core/tokens/base-url.token.d.ts +2 -2
  386. package/lib/core/tokens/cookie.token.d.ts +2 -2
  387. package/lib/core/tokens/location.token.d.ts +2 -2
  388. package/lib/core/tokens/navigator.token.d.ts +2 -2
  389. package/lib/core/tokens/window.token.d.ts +2 -2
  390. package/localize/index.d.ts +5 -5
  391. package/localize/lib/functions/date.function.d.ts +5 -5
  392. package/localize/lib/functions/lowercase.function.d.ts +5 -5
  393. package/localize/lib/functions/uppercase.function.d.ts +5 -5
  394. package/localize/lib/handlers/missing.handler.d.ts +6 -6
  395. package/localize/lib/interfaces/config.interfaces.d.ts +18 -18
  396. package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
  397. package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
  398. package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
  399. package/localize/lib/localizations/dutch.localization.d.ts +44 -44
  400. package/localize/lib/localizations/english.localization.d.ts +44 -44
  401. package/localize/lib/localize.dictionary.d.ts +7 -7
  402. package/localize/lib/localize.module.d.ts +17 -17
  403. package/localize/lib/localize.pipe.d.ts +12 -12
  404. package/localize/lib/localize.service.d.ts +40 -40
  405. package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
  406. package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
  407. package/localize/lib/views/localize-template.directive.d.ts +9 -9
  408. package/localize/public_api.d.ts +16 -16
  409. package/masking/index.d.ts +5 -5
  410. package/masking/lib/directives/currency-mask.directive.d.ts +17 -0
  411. package/masking/lib/directives/date-mask.directive.d.ts +17 -0
  412. package/masking/lib/{input-mask.directive.d.ts → directives/input-mask.directive.d.ts} +38 -36
  413. package/masking/lib/input-mask.interface.d.ts +19 -20
  414. package/masking/lib/masking.module.d.ts +9 -7
  415. package/masking/lib/masking.service.d.ts +12 -12
  416. package/masking/public_api.d.ts +6 -4
  417. package/notifications/index.d.ts +5 -5
  418. package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
  419. package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
  420. package/notifications/lib/notifications.animations.d.ts +1 -1
  421. package/notifications/lib/notifications.injector.d.ts +8 -8
  422. package/notifications/lib/notifications.interfaces.d.ts +49 -49
  423. package/notifications/lib/notifications.module.d.ts +13 -13
  424. package/notifications/lib/notifications.service.d.ts +34 -34
  425. package/notifications/public_api.d.ts +3 -3
  426. package/package.json +1 -1
  427. package/public_api.d.ts +25 -25
  428. package/recaptcha/index.d.ts +5 -5
  429. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
  430. package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
  431. package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
  432. package/recaptcha/lib/recaptcha.module.d.ts +10 -10
  433. package/recaptcha/public_api.d.ts +4 -4
  434. package/rxjs/index.d.ts +5 -5
  435. package/rxjs/lib/observables/get-control-value.observable.d.ts +3 -0
  436. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
  437. package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
  438. package/rxjs/public_api.d.ts +3 -2
  439. package/storage/index.d.ts +5 -5
  440. package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
  441. package/storage/lib/interfaces/memory.interface.d.ts +7 -7
  442. package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
  443. package/storage/lib/storage.service.d.ts +26 -26
  444. package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
  445. package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
  446. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
  447. package/storage/public_api.d.ts +7 -7
  448. package/table/index.d.ts +5 -5
  449. package/table/lib/components/table/table.component.d.ts +56 -56
  450. package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
  451. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
  452. package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
  453. package/table/lib/data/datasource.data.d.ts +14 -14
  454. package/table/lib/data/generic.data.d.ts +23 -23
  455. package/table/lib/interfaces/datasource.interface.d.ts +17 -17
  456. package/table/lib/interfaces/table.interfaces.d.ts +1 -1
  457. package/table/lib/table.module.d.ts +14 -14
  458. package/table/public_api.d.ts +9 -9
  459. package/theming/index.d.ts +5 -5
  460. package/theming/lib/themes/checkbox-group.theme.d.ts +5 -5
  461. package/theming/lib/themes/checkbox.theme.d.ts +19 -19
  462. package/theming/lib/themes/theme.d.ts +12 -0
  463. package/theming/lib/theming.interface.d.ts +15 -14
  464. package/theming/lib/theming.module.d.ts +13 -13
  465. package/theming/lib/theming.service.d.ts +22 -24
  466. package/theming/public_api.d.ts +6 -3
  467. package/esm2020/masking/lib/input-mask.directive.mjs +0 -110
@@ -8,644 +8,644 @@ import { __awaiter } from 'tslib';
8
8
  import * as i1$1 from '@bravobit/bb-foundation/storage';
9
9
  import * as i2 from '@bravobit/bb-foundation';
10
10
 
11
- //
12
- // The configuration that can be passed when
13
- // the user initializes the localize module.
14
- //
15
- class LocalizeConfig {
11
+ //
12
+ // The configuration that can be passed when
13
+ // the user initializes the localize module.
14
+ //
15
+ class LocalizeConfig {
16
16
  }
17
17
 
18
- //
19
- // This is the injection token that will be injected
20
- // into the service so that the all localize functions
21
- // can retrieved and used.
22
- //
18
+ //
19
+ // This is the injection token that will be injected
20
+ // into the service so that the all localize functions
21
+ // can retrieved and used.
22
+ //
23
23
  const LOCALIZE_FUNCTION = new InjectionToken('localize_function');
24
24
 
25
- //
26
- // This function transform the value
27
- // to a lowercase variant of the value.
28
- //
29
- class LocalizeLowercaseFunction {
30
- keyword() {
31
- return 'lowercase';
32
- }
33
- transform(value) {
34
- return (value || '').toLowerCase();
35
- }
25
+ //
26
+ // This function transform the value
27
+ // to a lowercase variant of the value.
28
+ //
29
+ class LocalizeLowercaseFunction {
30
+ keyword() {
31
+ return 'lowercase';
32
+ }
33
+ transform(value) {
34
+ return (value || '').toLowerCase();
35
+ }
36
36
  }
37
37
 
38
- //
39
- // This function transform the value
40
- // to a uppercase variant of the value.
41
- //
42
- class LocalizeUppercaseFunction {
43
- keyword() {
44
- return 'uppercase';
45
- }
46
- transform(value) {
47
- return (value || '').toUpperCase();
48
- }
38
+ //
39
+ // This function transform the value
40
+ // to a uppercase variant of the value.
41
+ //
42
+ class LocalizeUppercaseFunction {
43
+ keyword() {
44
+ return 'uppercase';
45
+ }
46
+ transform(value) {
47
+ return (value || '').toUpperCase();
48
+ }
49
49
  }
50
50
 
51
- //
52
- // This function transform the value
53
- // to a localized date.
54
- //
55
- class LocalizeDateFunction {
56
- keyword() {
57
- return 'date';
58
- }
59
- transform(value, locale) {
60
- const date = new Date(value);
61
- if (date.toString() === 'Invalid Date') {
62
- return '?';
63
- }
64
- return formatDate(date, 'longDate', locale);
65
- }
51
+ //
52
+ // This function transform the value
53
+ // to a localized date.
54
+ //
55
+ class LocalizeDateFunction {
56
+ keyword() {
57
+ return 'date';
58
+ }
59
+ transform(value, locale) {
60
+ const date = new Date(value);
61
+ if (date.toString() === 'Invalid Date') {
62
+ return '?';
63
+ }
64
+ return formatDate(date, 'longDate', locale);
65
+ }
66
66
  }
67
67
 
68
- const extraEnglishDictionary = {
69
- 'form-control-errors': {
70
- 'unknown': 'The field has an unknown error.',
71
- 'required': 'This field is required.',
72
- 'pattern': 'Invalid format.',
73
- 'email': 'The field does not match a valid email address.',
74
- 'emailTaken': 'The e-mail is already taken.',
75
- 'passwordMatch': 'The passwords don\'t match.',
76
- 'confirm': 'The field does not match.',
77
- 'fullNumber': 'The field should be a full number.',
78
- 'min': 'Minimum amount should be {{min}}.',
79
- 'max': 'Maximum amount should be {{max}}.',
80
- 'invalidFileType': 'The file type is not allowed.',
81
- 'maxFileSize': 'The file has exceed the maximum amount of {{maxSize}}.',
82
- 'minDate': 'The first accepted date is {{date|date}}.',
83
- 'maxDate': 'The last accepted date is {{date|date}}.',
84
- 'invalidDate': 'The field contains an invalid date.',
85
- 'minlength': 'Expected a minimum of {{requiredLength}} characters but got {{actualLength}} characters.',
86
- 'maxlength': 'Expected a maximum of {{requiredLength}} characters but got {{actualLength}} characters.'
87
- },
88
- 'tables': {
89
- 'search': 'Search...',
90
- 'loading': 'Loading...',
91
- 'empty': 'There is nothing to find here.',
92
- 'page': 'page',
93
- 'error_datasource': 'No data source was provided.',
94
- 'error_unauthorized': 'You need to be authenticated to view this data.',
95
- 'error_forbidden': 'You do not have access to view this data.',
96
- 'error_not_found': 'The data was not found.',
97
- 'error_server': 'A server error occurred while fetching data from the server.',
98
- 'error_down': 'It looks like the server is down.',
99
- 'error_unknown': 'A unknown error occurred.'
100
- },
101
- 'file-picker': {
102
- 'choose': 'Choose file',
103
- 'remove': 'Remove file',
104
- 'drop': 'or drag and drop file here'
105
- },
106
- 'times': {
107
- 'tomorrow_at': 'Tomorrow at {{date}}',
108
- 'today_at': 'Today at {{date}}',
109
- 'yesterday_at': 'Yesterday at {{date}}'
110
- }
68
+ const extraEnglishDictionary = {
69
+ 'form-control-errors': {
70
+ 'unknown': 'The field has an unknown error.',
71
+ 'required': 'This field is required.',
72
+ 'pattern': 'Invalid format.',
73
+ 'email': 'The field does not match a valid email address.',
74
+ 'emailTaken': 'The e-mail is already taken.',
75
+ 'passwordMatch': 'The passwords don\'t match.',
76
+ 'confirm': 'The field does not match.',
77
+ 'fullNumber': 'The field should be a full number.',
78
+ 'min': 'Minimum amount should be {{min}}.',
79
+ 'max': 'Maximum amount should be {{max}}.',
80
+ 'invalidFileType': 'The file type is not allowed.',
81
+ 'maxFileSize': 'The file has exceed the maximum amount of {{maxSize}}.',
82
+ 'minDate': 'The first accepted date is {{date|date}}.',
83
+ 'maxDate': 'The last accepted date is {{date|date}}.',
84
+ 'invalidDate': 'The field contains an invalid date.',
85
+ 'minlength': 'Expected a minimum of {{requiredLength}} characters but got {{actualLength}} characters.',
86
+ 'maxlength': 'Expected a maximum of {{requiredLength}} characters but got {{actualLength}} characters.'
87
+ },
88
+ 'tables': {
89
+ 'search': 'Search...',
90
+ 'loading': 'Loading...',
91
+ 'empty': 'There is nothing to find here.',
92
+ 'page': 'page',
93
+ 'error_datasource': 'No data source was provided.',
94
+ 'error_unauthorized': 'You need to be authenticated to view this data.',
95
+ 'error_forbidden': 'You do not have access to view this data.',
96
+ 'error_not_found': 'The data was not found.',
97
+ 'error_server': 'A server error occurred while fetching data from the server.',
98
+ 'error_down': 'It looks like the server is down.',
99
+ 'error_unknown': 'A unknown error occurred.'
100
+ },
101
+ 'file-picker': {
102
+ 'choose': 'Choose file',
103
+ 'remove': 'Remove file',
104
+ 'drop': 'or drag and drop file here'
105
+ },
106
+ 'times': {
107
+ 'tomorrow_at': 'Tomorrow at {{date}}',
108
+ 'today_at': 'Today at {{date}}',
109
+ 'yesterday_at': 'Yesterday at {{date}}'
110
+ }
111
111
  };
112
112
 
113
- const extraDutchDictionary = {
114
- 'form-control-errors': {
115
- 'unknown': 'Het veld heeft een onbekende fout.',
116
- 'required': 'Dit veld is verplicht.',
117
- 'pattern': 'Ongeldig formaat.',
118
- 'email': 'Het veld komt niet overeen met een geldig e-mailadres.',
119
- 'emailTaken': 'Het e-mailadres is al bezet.',
120
- 'passwordMatch': 'De wachtwoorden komen niet overeen.',
121
- 'confirm': 'Het veld komt niet overeen.',
122
- 'fullNumber': 'Het veld moet een volledig getal zijn.',
123
- 'min': 'Minimum hoeveelheid moet {{min}} zijn.',
124
- 'max': 'Maximum hoeveelheid moet {{max}} zijn.',
125
- 'invalidFileType': 'Het type bestand is niet toegestaan.',
126
- 'maxFileSize': 'Het bestand heeft de maximum hoeveelheid van {{maxSize}} overschreden.',
127
- 'minDate': 'De eerst mogelijke datum is {{date|date}}.',
128
- 'maxDate': 'De laatst mogelijke datum is {{date|date}}.',
129
- 'invalidDate': 'Het veld bevat een ongeldige datum.',
130
- 'minlength': 'Verwachtte minimaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.',
131
- 'maxlength': 'Verwachtte maximaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.'
132
- },
133
- 'tables': {
134
- 'search': 'Zoeken...',
135
- 'loading': 'Aan het laden...',
136
- 'empty': 'Er is hier niets te vinden.',
137
- 'page': 'pagina',
138
- 'error_datasource': 'Er is geen gegevensbron verstrekt.',
139
- 'error_unauthorized': 'U moet ingelogd zijn om deze gegevens te bekijken.',
140
- 'error_forbidden': 'U hebt geen toegang om deze gegevens te bekijken.',
141
- 'error_not_found': 'De gegevens zijn niet gevonden.',
142
- 'error_server': 'Er is een serverfout opgetreden bij het ophalen van gegevens van de server.',
143
- 'error_down': 'Het lijkt erop dat de server down is.',
144
- 'error_unknown': 'Er is een onbekende fout opgetreden bij het ophalen van gegevens van de server.'
145
- },
146
- 'file-picker': {
147
- 'choose': 'Kies bestand',
148
- 'remove': 'Verwijder bestand',
149
- 'drop': 'of sleep het bestand hiernaartoe'
150
- },
151
- 'times': {
152
- 'tomorrow_at': 'Morgen om {{date}}',
153
- 'today_at': 'Vandaag om {{date}}',
154
- 'yesterday_at': 'Gisteren om {{date}}'
155
- }
113
+ const extraDutchDictionary = {
114
+ 'form-control-errors': {
115
+ 'unknown': 'Het veld heeft een onbekende fout.',
116
+ 'required': 'Dit veld is verplicht.',
117
+ 'pattern': 'Ongeldig formaat.',
118
+ 'email': 'Het veld komt niet overeen met een geldig e-mailadres.',
119
+ 'emailTaken': 'Het e-mailadres is al bezet.',
120
+ 'passwordMatch': 'De wachtwoorden komen niet overeen.',
121
+ 'confirm': 'Het veld komt niet overeen.',
122
+ 'fullNumber': 'Het veld moet een volledig getal zijn.',
123
+ 'min': 'Minimum hoeveelheid moet {{min}} zijn.',
124
+ 'max': 'Maximum hoeveelheid moet {{max}} zijn.',
125
+ 'invalidFileType': 'Het type bestand is niet toegestaan.',
126
+ 'maxFileSize': 'Het bestand heeft de maximum hoeveelheid van {{maxSize}} overschreden.',
127
+ 'minDate': 'De eerst mogelijke datum is {{date|date}}.',
128
+ 'maxDate': 'De laatst mogelijke datum is {{date|date}}.',
129
+ 'invalidDate': 'Het veld bevat een ongeldige datum.',
130
+ 'minlength': 'Verwachtte minimaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.',
131
+ 'maxlength': 'Verwachtte maximaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.'
132
+ },
133
+ 'tables': {
134
+ 'search': 'Zoeken...',
135
+ 'loading': 'Aan het laden...',
136
+ 'empty': 'Er is hier niets te vinden.',
137
+ 'page': 'pagina',
138
+ 'error_datasource': 'Er is geen gegevensbron verstrekt.',
139
+ 'error_unauthorized': 'U moet ingelogd zijn om deze gegevens te bekijken.',
140
+ 'error_forbidden': 'U hebt geen toegang om deze gegevens te bekijken.',
141
+ 'error_not_found': 'De gegevens zijn niet gevonden.',
142
+ 'error_server': 'Er is een serverfout opgetreden bij het ophalen van gegevens van de server.',
143
+ 'error_down': 'Het lijkt erop dat de server down is.',
144
+ 'error_unknown': 'Er is een onbekende fout opgetreden bij het ophalen van gegevens van de server.'
145
+ },
146
+ 'file-picker': {
147
+ 'choose': 'Kies bestand',
148
+ 'remove': 'Verwijder bestand',
149
+ 'drop': 'of sleep het bestand hiernaartoe'
150
+ },
151
+ 'times': {
152
+ 'tomorrow_at': 'Morgen om {{date}}',
153
+ 'today_at': 'Vandaag om {{date}}',
154
+ 'yesterday_at': 'Gisteren om {{date}}'
155
+ }
156
156
  };
157
157
 
158
- class LocalizeMissingHandler {
159
- constructor() {
160
- this.log = (message) => { var _a; return (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, message); };
161
- }
162
- handle(params) {
163
- var _a;
164
- // Log to the console when the token was not found
165
- // if the user did not mark it as optional.
166
- if (!(params === null || params === void 0 ? void 0 : params.optional)) {
167
- this.log(`Localize: The token with name: "${params === null || params === void 0 ? void 0 : params.token}" was not found.`);
168
- }
169
- // Return the default token back.
170
- return (_a = params === null || params === void 0 ? void 0 : params.token) !== null && _a !== void 0 ? _a : null;
171
- }
158
+ class LocalizeMissingHandler {
159
+ constructor() {
160
+ this.log = (message) => { var _a; return (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, message); };
161
+ }
162
+ handle(params) {
163
+ var _a;
164
+ // Log to the console when the token was not found
165
+ // if the user did not mark it as optional.
166
+ if (!(params === null || params === void 0 ? void 0 : params.optional)) {
167
+ this.log(`Localize: The token with name: "${params === null || params === void 0 ? void 0 : params.token}" was not found.`);
168
+ }
169
+ // Return the default token back.
170
+ return (_a = params === null || params === void 0 ? void 0 : params.token) !== null && _a !== void 0 ? _a : null;
171
+ }
172
172
  }
173
173
 
174
- class BbLocalizeTemplate {
175
- constructor(templateRef) {
176
- this.templateRef = templateRef;
177
- // Inputs.
178
- this.name = null;
179
- }
180
- }
181
- BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
182
- BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
184
- type: Directive,
185
- args: [{
186
- selector: '[bbLocalizeTemplate]'
187
- }]
188
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
189
- type: Input,
190
- args: ['bbLocalizeTemplate']
174
+ class BbLocalizeTemplate {
175
+ constructor(templateRef) {
176
+ this.templateRef = templateRef;
177
+ // Inputs.
178
+ this.name = null;
179
+ }
180
+ }
181
+ BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
182
+ BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
184
+ type: Directive,
185
+ args: [{
186
+ selector: '[bbLocalizeTemplate]'
187
+ }]
188
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
189
+ type: Input,
190
+ args: ['bbLocalizeTemplate']
191
191
  }] } });
192
192
 
193
- class BbLocalizeTemplateOrString {
194
- constructor(_templateRef, _viewContainerRef) {
195
- this._templateRef = _templateRef;
196
- this._viewContainerRef = _viewContainerRef;
197
- }
198
- set bbLocalizeTemplateOrString(content) {
199
- // Get the template.
200
- const template = content instanceof TemplateRef
201
- ? content
202
- : this._templateRef;
203
- // Clear the view container ref and create the view.
204
- this._viewContainerRef.clear();
205
- this._viewContainerRef.createEmbeddedView(template);
206
- }
207
- }
208
- BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
209
- BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.3", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
211
- type: Directive,
212
- args: [{
213
- selector: '[bbLocalizeTemplateOrString]'
214
- }]
215
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbLocalizeTemplateOrString: [{
216
- type: Input
193
+ class BbLocalizeTemplateOrString {
194
+ constructor(_templateRef, _viewContainerRef) {
195
+ this._templateRef = _templateRef;
196
+ this._viewContainerRef = _viewContainerRef;
197
+ }
198
+ set bbLocalizeTemplateOrString(content) {
199
+ // Get the template.
200
+ const template = content instanceof TemplateRef
201
+ ? content
202
+ : this._templateRef;
203
+ // Clear the view container ref and create the view.
204
+ this._viewContainerRef.clear();
205
+ this._viewContainerRef.createEmbeddedView(template);
206
+ }
207
+ }
208
+ BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
209
+ BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
211
+ type: Directive,
212
+ args: [{
213
+ selector: '[bbLocalizeTemplateOrString]'
214
+ }]
215
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbLocalizeTemplateOrString: [{
216
+ type: Input
217
217
  }] } });
218
218
 
219
- class BbLocalizeString {
220
- constructor(_changeDetection) {
221
- this._changeDetection = _changeDetection;
222
- // Inputs.
223
- this.substitutions = ['[', ']'];
224
- // Data.
225
- this.components = [];
226
- // Subscriptions.
227
- this._subscription = new Subscription();
228
- // State.
229
- this._value = null;
230
- }
231
- set value(value) {
232
- this._value = value;
233
- this.revalidate();
234
- }
235
- get value() {
236
- return this._value;
237
- }
238
- ngAfterViewInit() {
239
- this.observeItemChanges();
240
- }
241
- ngOnDestroy() {
242
- var _a;
243
- (_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
244
- }
245
- observeItemChanges() {
246
- const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
247
- this._subscription.add(subscription);
248
- }
249
- revalidate() {
250
- var _a, _b;
251
- const items = (_b = (_a = this.items) === null || _a === void 0 ? void 0 : _a.toArray()) !== null && _b !== void 0 ? _b : [];
252
- if (items.length <= 0) {
253
- return;
254
- }
255
- this.setComponents(items);
256
- }
257
- setComponents(items) {
258
- const [start, end] = this.substitutions;
259
- const templates = items.reduce((previous, current) => {
260
- var _a, _b;
261
- const template = (_a = current === null || current === void 0 ? void 0 : current.templateRef) !== null && _a !== void 0 ? _a : null;
262
- const name = (_b = current === null || current === void 0 ? void 0 : current.name) !== null && _b !== void 0 ? _b : null;
263
- if (!template || !name) {
264
- return previous;
265
- }
266
- return Object.assign(Object.assign({}, previous), { [`${start}${name}${end}`]: template });
267
- }, {});
268
- this.components = this.getStringComponents(this._value)
269
- .map(component => { var _a, _b; return (_b = (_a = templates === null || templates === void 0 ? void 0 : templates[component]) !== null && _a !== void 0 ? _a : component) !== null && _b !== void 0 ? _b : null; })
270
- .filter(item => !!item);
271
- this._changeDetection.detectChanges();
272
- }
273
- getStringComponents(value) {
274
- const [start, end] = this.getSubstitutions();
275
- const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
276
- return value.split(regex);
277
- }
278
- getSubstitutions() {
279
- const [start, end] = this.substitutions;
280
- const escape = /[.*+?^${}()|[\]\\]/g;
281
- return [
282
- start.replace(escape, '\\$&'),
283
- end.replace(escape, '\\$&')
284
- ];
285
- }
286
- }
287
- BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
288
- BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\r\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\r\n</ng-container>\r\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalizeString, decorators: [{
290
- type: Component,
291
- args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
292
- 'class': 'bb-localize-string'
293
- }, template: "<ng-container *ngFor=\"let component of components\">\r\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\r\n</ng-container>\r\n", styles: [".bb-localize-string{display:inline}\n"] }]
294
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
295
- type: ContentChildren,
296
- args: [BbLocalizeTemplate]
297
- }], substitutions: [{
298
- type: Input
299
- }], value: [{
300
- type: Input
219
+ class BbLocalizeString {
220
+ constructor(_changeDetection) {
221
+ this._changeDetection = _changeDetection;
222
+ // Inputs.
223
+ this.substitutions = ['[', ']'];
224
+ // Data.
225
+ this.components = [];
226
+ // Subscriptions.
227
+ this._subscription = new Subscription();
228
+ // State.
229
+ this._value = null;
230
+ }
231
+ set value(value) {
232
+ this._value = value;
233
+ this.revalidate();
234
+ }
235
+ get value() {
236
+ return this._value;
237
+ }
238
+ ngAfterViewInit() {
239
+ this.observeItemChanges();
240
+ }
241
+ ngOnDestroy() {
242
+ var _a;
243
+ (_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
244
+ }
245
+ observeItemChanges() {
246
+ const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
247
+ this._subscription.add(subscription);
248
+ }
249
+ revalidate() {
250
+ var _a, _b;
251
+ const items = (_b = (_a = this.items) === null || _a === void 0 ? void 0 : _a.toArray()) !== null && _b !== void 0 ? _b : [];
252
+ if (items.length <= 0) {
253
+ return;
254
+ }
255
+ this.setComponents(items);
256
+ }
257
+ setComponents(items) {
258
+ const [start, end] = this.substitutions;
259
+ const templates = items.reduce((previous, current) => {
260
+ var _a, _b;
261
+ const template = (_a = current === null || current === void 0 ? void 0 : current.templateRef) !== null && _a !== void 0 ? _a : null;
262
+ const name = (_b = current === null || current === void 0 ? void 0 : current.name) !== null && _b !== void 0 ? _b : null;
263
+ if (!template || !name) {
264
+ return previous;
265
+ }
266
+ return Object.assign(Object.assign({}, previous), { [`${start}${name}${end}`]: template });
267
+ }, {});
268
+ this.components = this.getStringComponents(this._value)
269
+ .map(component => { var _a, _b; return (_b = (_a = templates === null || templates === void 0 ? void 0 : templates[component]) !== null && _a !== void 0 ? _a : component) !== null && _b !== void 0 ? _b : null; })
270
+ .filter(item => !!item);
271
+ this._changeDetection.detectChanges();
272
+ }
273
+ getStringComponents(value) {
274
+ const [start, end] = this.getSubstitutions();
275
+ const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
276
+ return value.split(regex);
277
+ }
278
+ getSubstitutions() {
279
+ const [start, end] = this.substitutions;
280
+ const escape = /[.*+?^${}()|[\]\\]/g;
281
+ return [
282
+ start.replace(escape, '\\$&'),
283
+ end.replace(escape, '\\$&')
284
+ ];
285
+ }
286
+ }
287
+ BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
288
+ BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeString, decorators: [{
290
+ type: Component,
291
+ args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
292
+ 'class': 'bb-localize-string'
293
+ }, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"] }]
294
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
295
+ type: ContentChildren,
296
+ args: [BbLocalizeTemplate]
297
+ }], substitutions: [{
298
+ type: Input
299
+ }], value: [{
300
+ type: Input
301
301
  }] } });
302
302
 
303
- class LocalizeDictionary {
304
- constructor(data) {
305
- this._data = this.formatData(data);
306
- }
307
- get(token) {
308
- var _a, _b;
309
- const key = Array.isArray(token) ? token.join('.') : token;
310
- return (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : null;
311
- }
312
- formatData(data, scope = null) {
313
- const devMode = isDevMode();
314
- return Object.keys(data).reduce((previous, current) => {
315
- var _a;
316
- const value = data === null || data === void 0 ? void 0 : data[current];
317
- if (typeof value === 'object' && value !== null) {
318
- const reformatted = this.formatData(value, current);
319
- return Object.assign(Object.assign({}, previous), reformatted);
320
- }
321
- const token = [scope, current].filter(item => !!item).join('.');
322
- if (previous[token] && devMode) {
323
- (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `Localize: Duplicate key "${token}" was found, please verify your translation files.`);
324
- }
325
- return Object.assign(Object.assign({}, previous), { [token]: value });
326
- }, {});
327
- }
303
+ class LocalizeDictionary {
304
+ constructor(data) {
305
+ this._data = this.formatData(data);
306
+ }
307
+ get(token) {
308
+ var _a, _b;
309
+ const key = Array.isArray(token) ? token.join('.') : token;
310
+ return (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : null;
311
+ }
312
+ formatData(data, scope = null) {
313
+ const devMode = isDevMode();
314
+ return Object.keys(data).reduce((previous, current) => {
315
+ var _a;
316
+ const value = data === null || data === void 0 ? void 0 : data[current];
317
+ if (typeof value === 'object' && value !== null) {
318
+ const reformatted = this.formatData(value, current);
319
+ return Object.assign(Object.assign({}, previous), reformatted);
320
+ }
321
+ const token = [scope, current].filter(item => !!item).join('.');
322
+ if (previous[token] && devMode) {
323
+ (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `Localize: Duplicate key "${token}" was found, please verify your translation files.`);
324
+ }
325
+ return Object.assign(Object.assign({}, previous), { [token]: value });
326
+ }, {});
327
+ }
328
328
  }
329
329
 
330
- class Localize {
331
- constructor(_storage, _languages, _config, _missingHandler, _document, _functions) {
332
- this._storage = _storage;
333
- this._languages = _languages;
334
- this._config = _config;
335
- this._missingHandler = _missingHandler;
336
- this._document = _document;
337
- this._functions = _functions;
338
- this._storageToken = 'bb-language-dictionary-id';
339
- // Current language dictionary.
340
- this._currentLanguage = null;
341
- this._currentDictionary = null;
342
- this.convertToParams = (tokenOrParams) => {
343
- if (typeof tokenOrParams !== 'string') {
344
- // Destruct the params from the object.
345
- const { token, optional, data } = tokenOrParams;
346
- // Make sure all parameters are valid
347
- // by type safe adding them.
348
- return { token: token, optional: optional !== null && optional !== void 0 ? optional : false, data: data !== null && data !== void 0 ? data : {} };
349
- }
350
- // If the parameter is a string fill in the blanks.
351
- return { token: tokenOrParams, optional: false, data: {} };
352
- };
353
- this.getMatches = (value, substitutions) => {
354
- // Get the matching substitutions.
355
- const { start, end } = substitutions;
356
- // Compose a regex that will find the matches.
357
- const regex = new RegExp(`${start}([^${end}]+)${end}`, 'g');
358
- // Execute the regex to find matches.
359
- let match = regex.exec(value);
360
- const matches = [];
361
- while (match !== null) {
362
- matches.push({ match: match[0], token: match[1] });
363
- match = regex.exec(value);
364
- }
365
- // Return the processed value.
366
- return matches.filter(item => !!item);
367
- };
368
- // Check if at least one language was passed in the config.
369
- this._availableLanguages = this._config.languages;
370
- if (this._availableLanguages.length < 1) {
371
- throw new Error('Localize: one or more languages should be supplied.');
372
- }
373
- // Gather all the localize functions.
374
- this._functionMiddleware = this._functions.reduce((previous, current) => {
375
- previous[current.keyword()] = current;
376
- return previous;
377
- }, {});
378
- // Save the best matching current dictionary.
379
- this._bestMatchingLanguage = this.retrieveBestMatchingLanguage();
380
- this.renderDocumentLanguage();
381
- }
382
- get languages() {
383
- var _a;
384
- return (_a = this._availableLanguages) !== null && _a !== void 0 ? _a : [];
385
- }
386
- get current() {
387
- return this._currentLanguage;
388
- }
389
- set(language, cache = true) {
390
- var _a, _b;
391
- return __awaiter(this, void 0, void 0, function* () {
392
- // Await the language data and set the current
393
- // dictionary to the loaded data.
394
- this._currentLanguage = language !== null && language !== void 0 ? language : (_a = this._availableLanguages) === null || _a === void 0 ? void 0 : _a[0];
395
- if (this._currentLanguage) {
396
- this._currentDictionary = yield this._currentLanguage.data();
397
- }
398
- // Save the selected language in the storage.
399
- if (cache) {
400
- this._storage.cookie.set(this._storageToken, (_b = this._currentLanguage) === null || _b === void 0 ? void 0 : _b.id, {});
401
- }
402
- });
403
- }
404
- initialize() {
405
- return () => __awaiter(this, void 0, void 0, function* () { return this.set(this._bestMatchingLanguage, false); });
406
- }
407
- clear() {
408
- this._storage.cookie.remove(this._storageToken);
409
- }
410
- translate(tokenOrParams) {
411
- // 1. Convert to the params.
412
- const params = this.convertToParams(tokenOrParams);
413
- // 2. Try to find the translation in the dictionary.
414
- const searchResult = this._currentDictionary.get(params === null || params === void 0 ? void 0 : params.token);
415
- // 3. Verify the translation was found.
416
- if (!searchResult) {
417
- return this._missingHandler.handle(params);
418
- }
419
- // 4. Find references in the translation that need to be translated as well.
420
- const processResult = this.findReferencesInTranslation(searchResult);
421
- // 5. Parse the interpolation data.
422
- return this.parseInterpolationData(processResult, params === null || params === void 0 ? void 0 : params.data);
423
- }
424
- parseInterpolationData(value, data) {
425
- // Get the interpolation substitutions.
426
- const substitutions = this.getSubstitutions('interpolation', ['{{', '}}']);
427
- // Get all matches in the value.
428
- const matches = this.getMatches(value, substitutions);
429
- // Replace all matches with the parsed value.
430
- return matches.reduce((previous, current) => {
431
- // Try to parse the token.
432
- const interpolatedToken = this.interpolateFunctionData(current === null || current === void 0 ? void 0 : current.token, data);
433
- // Replace the match with the parsed token.
434
- return previous.replace(current === null || current === void 0 ? void 0 : current.match, interpolatedToken);
435
- }, `${value}`);
436
- }
437
- interpolateFunctionData(value, interpolationData) {
438
- var _a;
439
- // Get the token and the methods by splitting
440
- // on the pipe symbol.
441
- const [token, ...methods] = value.split('|').map(item => item.trim());
442
- // Get the value for the token from
443
- // the interpolation data.
444
- const interpolationValue = (_a = interpolationData === null || interpolationData === void 0 ? void 0 : interpolationData[token]) !== null && _a !== void 0 ? _a : token;
445
- // Loop through all the middleware methods and try to
446
- // conform the string to the given parameters.
447
- return methods.reduce((string, middlewareName) => {
448
- var _a;
449
- // Try to retrieve the middleware from the collection.
450
- const middleware = this._functionMiddleware[middlewareName];
451
- // If the middleware is missing return an error
452
- // so that the user knows it was not found.
453
- if (!middleware) {
454
- return string;
455
- }
456
- // Execute the middleware function with the string.
457
- return middleware.transform(string, (_a = this.current) === null || _a === void 0 ? void 0 : _a.locale);
458
- }, `${interpolationValue}`);
459
- }
460
- findReferencesInTranslation(value) {
461
- // Get the reference substitutions.
462
- const substitutions = this.getSubstitutions('references', ['#(', ')']);
463
- // Get all matches in the value.
464
- const matches = this.getMatches(value, substitutions);
465
- // Replace all matches with the translated value.
466
- return matches.reduce((previous, current) => {
467
- // Try to translate the token.
468
- const translatedToken = this.translate(current === null || current === void 0 ? void 0 : current.token);
469
- // Replace the match with the translated token.
470
- return previous.replace(current === null || current === void 0 ? void 0 : current.match, translatedToken);
471
- }, value);
472
- }
473
- getSubstitutions(type, defaultValue) {
474
- var _a, _b, _c;
475
- // Get the substitutions.
476
- const substitutions = (_c = (_b = (_a = this._config) === null || _a === void 0 ? void 0 : _a.substitutions) === null || _b === void 0 ? void 0 : _b[type]) !== null && _c !== void 0 ? _c : null;
477
- const value = (!substitutions || substitutions.length !== 2)
478
- ? defaultValue
479
- : substitutions;
480
- // Escape both substitutions so that they
481
- // can be used.
482
- const escape = /[.*+?^${}()|[\]\\]/g;
483
- const start = value[0].replace(escape, '\\$&');
484
- const end = value[1].replace(escape, '\\$&');
485
- // Return the substitutions.
486
- return { start, end };
487
- }
488
- retrieveBestMatchingLanguage() {
489
- var _a, _b;
490
- // Get the language based on storage.
491
- const storageLanguage = this.getLanguageFromStorage();
492
- // Get the language based on the supported languages of the browser.
493
- const browserLanguage = this.getBestBrowserMatchLanguage();
494
- // Return the best matching language.
495
- return (_a = storageLanguage !== null && storageLanguage !== void 0 ? storageLanguage : browserLanguage) !== null && _a !== void 0 ? _a : (_b = this._availableLanguages) === null || _b === void 0 ? void 0 : _b[0];
496
- }
497
- getLanguageFromStorage() {
498
- // Get id from the storage.
499
- const id = this._storage.cookie.get(this._storageToken);
500
- // Return the language based on the storage id.
501
- return this._availableLanguages.find(item => (item === null || item === void 0 ? void 0 : item.id) === id);
502
- }
503
- getBestBrowserMatchLanguage() {
504
- // Loop through all browser languages and return the
505
- // best matching language.
506
- return this._languages.all.map(({ code, region }) => {
507
- const languageCode = [code, region].filter(data => !!data).join('-');
508
- return this._availableLanguages.find(item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.supported) === null || _a === void 0 ? void 0 : _a.includes(languageCode); });
509
- }).filter(item => !!item).find((_, index) => index === 0);
510
- }
511
- renderDocumentLanguage() {
512
- var _a, _b, _c, _d, _e;
513
- const element = (_a = this._document) === null || _a === void 0 ? void 0 : _a.documentElement;
514
- if (!element) {
515
- return;
516
- }
517
- element.lang = (_d = (_c = (_b = this._bestMatchingLanguage) === null || _b === void 0 ? void 0 : _b.supported) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : (_e = this._bestMatchingLanguage) === null || _e === void 0 ? void 0 : _e.locale;
518
- }
519
- }
520
- Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: Localize, deps: [{ token: i1$1.Storage }, { token: i2.Languages }, { token: LocalizeConfig, optional: true }, { token: LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
521
- Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: Localize });
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: Localize, decorators: [{
523
- type: Injectable
524
- }], ctorParameters: function () {
525
- return [{ type: i1$1.Storage }, { type: i2.Languages }, { type: LocalizeConfig, decorators: [{
526
- type: Optional
527
- }] }, { type: LocalizeMissingHandler }, { type: undefined, decorators: [{
528
- type: Optional
529
- }, {
530
- type: Inject,
531
- args: [DOCUMENT]
532
- }] }, { type: undefined, decorators: [{
533
- type: Optional
534
- }, {
535
- type: Inject,
536
- args: [LOCALIZE_FUNCTION]
537
- }] }];
330
+ class Localize {
331
+ constructor(_storage, _languages, _config, _missingHandler, _document, _functions) {
332
+ this._storage = _storage;
333
+ this._languages = _languages;
334
+ this._config = _config;
335
+ this._missingHandler = _missingHandler;
336
+ this._document = _document;
337
+ this._functions = _functions;
338
+ this._storageToken = 'bb-language-dictionary-id';
339
+ // Current language dictionary.
340
+ this._currentLanguage = null;
341
+ this._currentDictionary = null;
342
+ this.convertToParams = (tokenOrParams) => {
343
+ if (typeof tokenOrParams !== 'string') {
344
+ // Destruct the params from the object.
345
+ const { token, optional, data } = tokenOrParams;
346
+ // Make sure all parameters are valid
347
+ // by type safe adding them.
348
+ return { token: token, optional: optional !== null && optional !== void 0 ? optional : false, data: data !== null && data !== void 0 ? data : {} };
349
+ }
350
+ // If the parameter is a string fill in the blanks.
351
+ return { token: tokenOrParams, optional: false, data: {} };
352
+ };
353
+ this.getMatches = (value, substitutions) => {
354
+ // Get the matching substitutions.
355
+ const { start, end } = substitutions;
356
+ // Compose a regex that will find the matches.
357
+ const regex = new RegExp(`${start}([^${end}]+)${end}`, 'g');
358
+ // Execute the regex to find matches.
359
+ let match = regex.exec(value);
360
+ const matches = [];
361
+ while (match !== null) {
362
+ matches.push({ match: match[0], token: match[1] });
363
+ match = regex.exec(value);
364
+ }
365
+ // Return the processed value.
366
+ return matches.filter(item => !!item);
367
+ };
368
+ // Check if at least one language was passed in the config.
369
+ this._availableLanguages = this._config.languages;
370
+ if (this._availableLanguages.length < 1) {
371
+ throw new Error('Localize: one or more languages should be supplied.');
372
+ }
373
+ // Gather all the localize functions.
374
+ this._functionMiddleware = this._functions.reduce((previous, current) => {
375
+ previous[current.keyword()] = current;
376
+ return previous;
377
+ }, {});
378
+ // Save the best matching current dictionary.
379
+ this._bestMatchingLanguage = this.retrieveBestMatchingLanguage();
380
+ this.renderDocumentLanguage();
381
+ }
382
+ get languages() {
383
+ var _a;
384
+ return (_a = this._availableLanguages) !== null && _a !== void 0 ? _a : [];
385
+ }
386
+ get current() {
387
+ return this._currentLanguage;
388
+ }
389
+ set(language, cache = true) {
390
+ var _a, _b;
391
+ return __awaiter(this, void 0, void 0, function* () {
392
+ // Await the language data and set the current
393
+ // dictionary to the loaded data.
394
+ this._currentLanguage = language !== null && language !== void 0 ? language : (_a = this._availableLanguages) === null || _a === void 0 ? void 0 : _a[0];
395
+ if (this._currentLanguage) {
396
+ this._currentDictionary = yield this._currentLanguage.data();
397
+ }
398
+ // Save the selected language in the storage.
399
+ if (cache) {
400
+ this._storage.cookie.set(this._storageToken, (_b = this._currentLanguage) === null || _b === void 0 ? void 0 : _b.id, {});
401
+ }
402
+ });
403
+ }
404
+ initialize() {
405
+ return () => __awaiter(this, void 0, void 0, function* () { return this.set(this._bestMatchingLanguage, false); });
406
+ }
407
+ clear() {
408
+ this._storage.cookie.remove(this._storageToken);
409
+ }
410
+ translate(tokenOrParams) {
411
+ // 1. Convert to the params.
412
+ const params = this.convertToParams(tokenOrParams);
413
+ // 2. Try to find the translation in the dictionary.
414
+ const searchResult = this._currentDictionary.get(params === null || params === void 0 ? void 0 : params.token);
415
+ // 3. Verify the translation was found.
416
+ if (!searchResult) {
417
+ return this._missingHandler.handle(params);
418
+ }
419
+ // 4. Find references in the translation that need to be translated as well.
420
+ const processResult = this.findReferencesInTranslation(searchResult);
421
+ // 5. Parse the interpolation data.
422
+ return this.parseInterpolationData(processResult, params === null || params === void 0 ? void 0 : params.data);
423
+ }
424
+ parseInterpolationData(value, data) {
425
+ // Get the interpolation substitutions.
426
+ const substitutions = this.getSubstitutions('interpolation', ['{{', '}}']);
427
+ // Get all matches in the value.
428
+ const matches = this.getMatches(value, substitutions);
429
+ // Replace all matches with the parsed value.
430
+ return matches.reduce((previous, current) => {
431
+ // Try to parse the token.
432
+ const interpolatedToken = this.interpolateFunctionData(current === null || current === void 0 ? void 0 : current.token, data);
433
+ // Replace the match with the parsed token.
434
+ return previous.replace(current === null || current === void 0 ? void 0 : current.match, interpolatedToken);
435
+ }, `${value}`);
436
+ }
437
+ interpolateFunctionData(value, interpolationData) {
438
+ var _a;
439
+ // Get the token and the methods by splitting
440
+ // on the pipe symbol.
441
+ const [token, ...methods] = value.split('|').map(item => item.trim());
442
+ // Get the value for the token from
443
+ // the interpolation data.
444
+ const interpolationValue = (_a = interpolationData === null || interpolationData === void 0 ? void 0 : interpolationData[token]) !== null && _a !== void 0 ? _a : token;
445
+ // Loop through all the middleware methods and try to
446
+ // conform the string to the given parameters.
447
+ return methods.reduce((string, middlewareName) => {
448
+ var _a;
449
+ // Try to retrieve the middleware from the collection.
450
+ const middleware = this._functionMiddleware[middlewareName];
451
+ // If the middleware is missing return an error
452
+ // so that the user knows it was not found.
453
+ if (!middleware) {
454
+ return string;
455
+ }
456
+ // Execute the middleware function with the string.
457
+ return middleware.transform(string, (_a = this.current) === null || _a === void 0 ? void 0 : _a.locale);
458
+ }, `${interpolationValue}`);
459
+ }
460
+ findReferencesInTranslation(value) {
461
+ // Get the reference substitutions.
462
+ const substitutions = this.getSubstitutions('references', ['#(', ')']);
463
+ // Get all matches in the value.
464
+ const matches = this.getMatches(value, substitutions);
465
+ // Replace all matches with the translated value.
466
+ return matches.reduce((previous, current) => {
467
+ // Try to translate the token.
468
+ const translatedToken = this.translate(current === null || current === void 0 ? void 0 : current.token);
469
+ // Replace the match with the translated token.
470
+ return previous.replace(current === null || current === void 0 ? void 0 : current.match, translatedToken);
471
+ }, value);
472
+ }
473
+ getSubstitutions(type, defaultValue) {
474
+ var _a, _b, _c;
475
+ // Get the substitutions.
476
+ const substitutions = (_c = (_b = (_a = this._config) === null || _a === void 0 ? void 0 : _a.substitutions) === null || _b === void 0 ? void 0 : _b[type]) !== null && _c !== void 0 ? _c : null;
477
+ const value = (!substitutions || substitutions.length !== 2)
478
+ ? defaultValue
479
+ : substitutions;
480
+ // Escape both substitutions so that they
481
+ // can be used.
482
+ const escape = /[.*+?^${}()|[\]\\]/g;
483
+ const start = value[0].replace(escape, '\\$&');
484
+ const end = value[1].replace(escape, '\\$&');
485
+ // Return the substitutions.
486
+ return { start, end };
487
+ }
488
+ retrieveBestMatchingLanguage() {
489
+ var _a, _b;
490
+ // Get the language based on storage.
491
+ const storageLanguage = this.getLanguageFromStorage();
492
+ // Get the language based on the supported languages of the browser.
493
+ const browserLanguage = this.getBestBrowserMatchLanguage();
494
+ // Return the best matching language.
495
+ return (_a = storageLanguage !== null && storageLanguage !== void 0 ? storageLanguage : browserLanguage) !== null && _a !== void 0 ? _a : (_b = this._availableLanguages) === null || _b === void 0 ? void 0 : _b[0];
496
+ }
497
+ getLanguageFromStorage() {
498
+ // Get id from the storage.
499
+ const id = this._storage.cookie.get(this._storageToken);
500
+ // Return the language based on the storage id.
501
+ return this._availableLanguages.find(item => (item === null || item === void 0 ? void 0 : item.id) === id);
502
+ }
503
+ getBestBrowserMatchLanguage() {
504
+ // Loop through all browser languages and return the
505
+ // best matching language.
506
+ return this._languages.all.map(({ code, region }) => {
507
+ const languageCode = [code, region].filter(data => !!data).join('-');
508
+ return this._availableLanguages.find(item => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.supported) === null || _a === void 0 ? void 0 : _a.includes(languageCode); });
509
+ }).filter(item => !!item).find((_, index) => index === 0);
510
+ }
511
+ renderDocumentLanguage() {
512
+ var _a, _b, _c, _d, _e;
513
+ const element = (_a = this._document) === null || _a === void 0 ? void 0 : _a.documentElement;
514
+ if (!element) {
515
+ return;
516
+ }
517
+ element.lang = (_d = (_c = (_b = this._bestMatchingLanguage) === null || _b === void 0 ? void 0 : _b.supported) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : (_e = this._bestMatchingLanguage) === null || _e === void 0 ? void 0 : _e.locale;
518
+ }
519
+ }
520
+ Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize, deps: [{ token: i1$1.Storage }, { token: i2.Languages }, { token: LocalizeConfig, optional: true }, { token: LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
521
+ Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize });
522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize, decorators: [{
523
+ type: Injectable
524
+ }], ctorParameters: function () {
525
+ return [{ type: i1$1.Storage }, { type: i2.Languages }, { type: LocalizeConfig, decorators: [{
526
+ type: Optional
527
+ }] }, { type: LocalizeMissingHandler }, { type: undefined, decorators: [{
528
+ type: Optional
529
+ }, {
530
+ type: Inject,
531
+ args: [DOCUMENT]
532
+ }] }, { type: undefined, decorators: [{
533
+ type: Optional
534
+ }, {
535
+ type: Inject,
536
+ args: [LOCALIZE_FUNCTION]
537
+ }] }];
538
538
  } });
539
539
 
540
- class BbLocalize {
541
- constructor(_localize) {
542
- this._localize = _localize;
543
- }
544
- transform(tokenOrParams, args) {
545
- // Validate that the localize service
546
- // exists in the pipe.
547
- if (!this._localize) {
548
- return tokenOrParams;
549
- }
550
- // Combine the params with the options
551
- // to form the localize params.
552
- const params = this.combineParamsWithOptions(tokenOrParams, args);
553
- // Try to localize the value.
554
- return this._localize.translate(params);
555
- }
556
- combineParamsWithOptions(tokenOrParams, args) {
557
- // Gather the extras.
558
- const extras = args || {};
559
- // Loop through all the keys to find the set options.
560
- const options = Object.keys(extras).reduce((previous, current) => {
561
- if (typeof extras[current] === 'undefined') {
562
- return previous;
563
- }
564
- previous[current] = extras[current];
565
- return previous;
566
- }, {});
567
- // Convert the string token to a params object.
568
- const params = typeof tokenOrParams === 'string'
569
- ? { token: tokenOrParams, optional: false, data: {} }
570
- : tokenOrParams;
571
- // Return the combined params and options.
572
- return Object.assign(Object.assign({}, params), options);
573
- }
574
- }
575
- BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalize, deps: [{ token: Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
576
- BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbLocalize, decorators: [{
578
- type: Pipe,
579
- args: [{
580
- name: 'bbLocalize'
581
- }]
582
- }], ctorParameters: function () {
583
- return [{ type: Localize, decorators: [{
584
- type: Optional
585
- }] }];
540
+ class BbLocalize {
541
+ constructor(_localize) {
542
+ this._localize = _localize;
543
+ }
544
+ transform(tokenOrParams, args) {
545
+ // Validate that the localize service
546
+ // exists in the pipe.
547
+ if (!this._localize) {
548
+ return tokenOrParams;
549
+ }
550
+ // Combine the params with the options
551
+ // to form the localize params.
552
+ const params = this.combineParamsWithOptions(tokenOrParams, args);
553
+ // Try to localize the value.
554
+ return this._localize.translate(params);
555
+ }
556
+ combineParamsWithOptions(tokenOrParams, args) {
557
+ // Gather the extras.
558
+ const extras = args || {};
559
+ // Loop through all the keys to find the set options.
560
+ const options = Object.keys(extras).reduce((previous, current) => {
561
+ if (typeof extras[current] === 'undefined') {
562
+ return previous;
563
+ }
564
+ previous[current] = extras[current];
565
+ return previous;
566
+ }, {});
567
+ // Convert the string token to a params object.
568
+ const params = typeof tokenOrParams === 'string'
569
+ ? { token: tokenOrParams, optional: false, data: {} }
570
+ : tokenOrParams;
571
+ // Return the combined params and options.
572
+ return Object.assign(Object.assign({}, params), options);
573
+ }
574
+ }
575
+ BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, deps: [{ token: Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
576
+ BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, decorators: [{
578
+ type: Pipe,
579
+ args: [{
580
+ name: 'bbLocalize'
581
+ }]
582
+ }], ctorParameters: function () {
583
+ return [{ type: Localize, decorators: [{
584
+ type: Optional
585
+ }] }];
586
586
  } });
587
587
 
588
- class LocalizeModule {
589
- static forRoot(config) {
590
- var _a;
591
- const automatic = (_a = config === null || config === void 0 ? void 0 : config.automatic) !== null && _a !== void 0 ? _a : true;
592
- return {
593
- ngModule: LocalizeModule,
594
- providers: [
595
- // Angular providers.
596
- ...(automatic ? [
597
- { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
598
- { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale }
599
- ] : []),
600
- // Config provider.
601
- { provide: LocalizeConfig, useValue: config },
602
- // Function providers.
603
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeLowercaseFunction, multi: true },
604
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeUppercaseFunction, multi: true },
605
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeDateFunction, multi: true },
606
- // Handler providers.
607
- { provide: LocalizeMissingHandler, useClass: LocalizeMissingHandler },
608
- // Service providers.
609
- Localize
610
- ]
611
- };
612
- }
613
- }
614
- LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
615
- LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
616
- BbLocalizeString,
617
- BbLocalizeTemplate,
618
- BbLocalizeTemplateOrString], imports: [CommonModule], exports: [BbLocalize,
619
- BbLocalizeString,
620
- BbLocalizeTemplate] });
621
- LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LocalizeModule, imports: [CommonModule] });
622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: LocalizeModule, decorators: [{
623
- type: NgModule,
624
- args: [{
625
- imports: [CommonModule],
626
- declarations: [
627
- BbLocalize,
628
- BbLocalizeString,
629
- BbLocalizeTemplate,
630
- BbLocalizeTemplateOrString
631
- ],
632
- exports: [
633
- BbLocalize,
634
- BbLocalizeString,
635
- BbLocalizeTemplate
636
- ]
637
- }]
638
- }] });
639
- function initializeLocale(localize) {
640
- return localize.initialize();
641
- }
642
- function getLocale(localize) {
643
- var _a, _b;
644
- return (_b = (_a = localize === null || localize === void 0 ? void 0 : localize.current) === null || _a === void 0 ? void 0 : _a.locale) !== null && _b !== void 0 ? _b : null;
588
+ class LocalizeModule {
589
+ static forRoot(config) {
590
+ var _a;
591
+ const automatic = (_a = config === null || config === void 0 ? void 0 : config.automatic) !== null && _a !== void 0 ? _a : true;
592
+ return {
593
+ ngModule: LocalizeModule,
594
+ providers: [
595
+ // Angular providers.
596
+ ...(automatic ? [
597
+ { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
598
+ { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale }
599
+ ] : []),
600
+ // Config provider.
601
+ { provide: LocalizeConfig, useValue: config },
602
+ // Function providers.
603
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeLowercaseFunction, multi: true },
604
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeUppercaseFunction, multi: true },
605
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeDateFunction, multi: true },
606
+ // Handler providers.
607
+ { provide: LocalizeMissingHandler, useClass: LocalizeMissingHandler },
608
+ // Service providers.
609
+ Localize
610
+ ]
611
+ };
612
+ }
613
+ }
614
+ LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
615
+ LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
616
+ BbLocalizeString,
617
+ BbLocalizeTemplate,
618
+ BbLocalizeTemplateOrString], imports: [CommonModule], exports: [BbLocalize,
619
+ BbLocalizeString,
620
+ BbLocalizeTemplate] });
621
+ LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, imports: [CommonModule] });
622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, decorators: [{
623
+ type: NgModule,
624
+ args: [{
625
+ imports: [CommonModule],
626
+ declarations: [
627
+ BbLocalize,
628
+ BbLocalizeString,
629
+ BbLocalizeTemplate,
630
+ BbLocalizeTemplateOrString
631
+ ],
632
+ exports: [
633
+ BbLocalize,
634
+ BbLocalizeString,
635
+ BbLocalizeTemplate
636
+ ]
637
+ }]
638
+ }] });
639
+ function initializeLocale(localize) {
640
+ return localize.initialize();
641
+ }
642
+ function getLocale(localize) {
643
+ var _a, _b;
644
+ return (_b = (_a = localize === null || localize === void 0 ? void 0 : localize.current) === null || _a === void 0 ? void 0 : _a.locale) !== null && _b !== void 0 ? _b : null;
645
645
  }
646
646
 
647
- /**
648
- * Generated bundle index. Do not edit.
647
+ /**
648
+ * Generated bundle index. Do not edit.
649
649
  */
650
650
 
651
651
  export { BbLocalize, BbLocalizeString, BbLocalizeTemplate, LOCALIZE_FUNCTION, Localize, LocalizeConfig, LocalizeDateFunction, LocalizeDictionary, LocalizeLowercaseFunction, LocalizeMissingHandler, LocalizeModule, LocalizeUppercaseFunction, extraDutchDictionary, extraEnglishDictionary, getLocale, initializeLocale };