@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
@@ -4,164 +4,164 @@ import { HttpErrorResponse, HTTP_INTERCEPTORS, HttpClientModule } from '@angular
4
4
  import { catchError } from 'rxjs/operators';
5
5
  import { throwError } from 'rxjs';
6
6
 
7
- class HttpConfig {
8
- constructor(data) {
9
- this.parseAliases = (value, standardAlias) => {
10
- if (typeof value === 'string') {
11
- value = { [standardAlias]: value };
12
- }
13
- if (isDevMode()) {
14
- const stringRegex = /^[a-zA-Z]+$/;
15
- for (const alias in value) {
16
- if (value.hasOwnProperty(alias) && !stringRegex.test(alias)) {
17
- console?.warn?.(`[HttpModule]: Invalid HTTP-alias in HttpConfig named "${alias}"; only latin characters should be used.`);
18
- }
19
- }
20
- }
21
- return value;
22
- };
23
- // Get the data from the config.
24
- this.prefix = data?.alias?.prefix ?? '$';
25
- this.disableErrorParsing = data?.disableErrorParsing ?? false;
26
- // Parse the aliases.
27
- const standardAlias = data?.alias?.standard ?? 'api';
28
- this.aliases = this.parseAliases(data?.url, standardAlias);
29
- // Get the default alias.
30
- const firstAvailableAlias = Object.keys(this.aliases ?? {})?.[0];
31
- this.defaultAlias = `${this.prefix}${firstAvailableAlias}`;
32
- }
7
+ class HttpConfig {
8
+ constructor(data) {
9
+ this.parseAliases = (value, standardAlias) => {
10
+ if (typeof value === 'string') {
11
+ value = { [standardAlias]: value };
12
+ }
13
+ if (isDevMode()) {
14
+ const stringRegex = /^[a-zA-Z]+$/;
15
+ for (const alias in value) {
16
+ if (value.hasOwnProperty(alias) && !stringRegex.test(alias)) {
17
+ console?.warn?.(`[HttpModule]: Invalid HTTP-alias in HttpConfig named "${alias}"; only latin characters should be used.`);
18
+ }
19
+ }
20
+ }
21
+ return value;
22
+ };
23
+ // Get the data from the config.
24
+ this.prefix = data?.alias?.prefix ?? '$';
25
+ this.disableErrorParsing = data?.disableErrorParsing ?? false;
26
+ // Parse the aliases.
27
+ const standardAlias = data?.alias?.standard ?? 'api';
28
+ this.aliases = this.parseAliases(data?.url, standardAlias);
29
+ // Get the default alias.
30
+ const firstAvailableAlias = Object.keys(this.aliases ?? {})?.[0];
31
+ this.defaultAlias = `${this.prefix}${firstAvailableAlias}`;
32
+ }
33
33
  }
34
34
 
35
- class HttpError extends HttpErrorResponse {
36
- constructor(error) {
37
- super(error);
38
- }
39
- get(token, delimiter = '.') {
40
- const error = this.error ?? {};
41
- return (token ?? '')
42
- .split(delimiter)
43
- .reduce((previous, current) => previous?.[current] ? previous?.[current] : null, error);
44
- }
45
- has(token, delimiter = '.') {
46
- return !!this.get(token, delimiter);
47
- }
48
- includes(token, value) {
49
- const array = this.get(token);
50
- return (array ?? []).includes(value);
51
- }
35
+ class HttpError extends HttpErrorResponse {
36
+ constructor(error) {
37
+ super(error);
38
+ }
39
+ get(token, delimiter = '.') {
40
+ const error = this.error ?? {};
41
+ return (token ?? '')
42
+ .split(delimiter)
43
+ .reduce((previous, current) => previous?.[current] ? previous?.[current] : null, error);
44
+ }
45
+ has(token, delimiter = '.') {
46
+ return !!this.get(token, delimiter);
47
+ }
48
+ includes(token, value) {
49
+ const array = this.get(token);
50
+ return (array ?? []).includes(value);
51
+ }
52
52
  }
53
53
 
54
- class BaseUrlInterceptor {
55
- constructor(_config) {
56
- this._config = _config;
57
- // Aliases.
58
- this._aliases = this._config?.aliases;
59
- this._prefix = this._config?.prefix;
60
- this._extractRegex = new RegExp(`\\${this._prefix}[a-zA-Z]+`);
61
- }
62
- intercept(request, next) {
63
- const url = this.getUrlBasedOnAlias(request.url);
64
- const modified = request.clone({ url });
65
- return next.handle(modified);
66
- }
67
- getUrlBasedOnAlias(url) {
68
- const matches = this._extractRegex.exec(url);
69
- if (!matches) {
70
- return url;
71
- }
72
- return matches.reduce((previous, current) => {
73
- const alias = this.getAlias(current);
74
- if (!alias) {
75
- return previous;
76
- }
77
- return previous.replace(current, alias);
78
- }, url);
79
- }
80
- getAlias(value) {
81
- const alias = value.replace(this._prefix, '');
82
- const fetched = this._aliases?.[alias] ?? null;
83
- if (fetched) {
84
- return fetched;
85
- }
86
- if (isDevMode()) {
87
- const available = Object.keys(this._aliases)
88
- .map(item => `\$${item}`)
89
- .join(', ');
90
- console?.warn?.(`[HttpModule]: Used an invalid HTTP-alias named "${value}", skipped parsing; Available aliases is one of (${available}).`);
91
- }
92
- return null;
93
- }
94
- }
95
- BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
96
- BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BaseUrlInterceptor });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
98
- type: Injectable
54
+ class BaseUrlInterceptor {
55
+ constructor(_config) {
56
+ this._config = _config;
57
+ // Aliases.
58
+ this._aliases = this._config?.aliases;
59
+ this._prefix = this._config?.prefix;
60
+ this._extractRegex = new RegExp(`\\${this._prefix}[a-zA-Z]+`);
61
+ }
62
+ intercept(request, next) {
63
+ const url = this.getUrlBasedOnAlias(request.url);
64
+ const modified = request.clone({ url });
65
+ return next.handle(modified);
66
+ }
67
+ getUrlBasedOnAlias(url) {
68
+ const matches = this._extractRegex.exec(url);
69
+ if (!matches) {
70
+ return url;
71
+ }
72
+ return matches.reduce((previous, current) => {
73
+ const alias = this.getAlias(current);
74
+ if (!alias) {
75
+ return previous;
76
+ }
77
+ return previous.replace(current, alias);
78
+ }, url);
79
+ }
80
+ getAlias(value) {
81
+ const alias = value.replace(this._prefix, '');
82
+ const fetched = this._aliases?.[alias] ?? null;
83
+ if (fetched) {
84
+ return fetched;
85
+ }
86
+ if (isDevMode()) {
87
+ const available = Object.keys(this._aliases)
88
+ .map(item => `\$${item}`)
89
+ .join(', ');
90
+ console?.warn?.(`[HttpModule]: Used an invalid HTTP-alias named "${value}", skipped parsing; Available aliases is one of (${available}).`);
91
+ }
92
+ return null;
93
+ }
94
+ }
95
+ BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
96
+ BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor });
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
98
+ type: Injectable
99
99
  }], ctorParameters: function () { return [{ type: HttpConfig }]; } });
100
100
 
101
- class ErrorInterceptor {
102
- constructor(_config) {
103
- this._config = _config;
104
- // State.
105
- this._disabled = this._config?.disableErrorParsing ?? false;
106
- }
107
- intercept(request, next) {
108
- return next.handle(request).pipe(catchError(error => {
109
- // If we have a matching http error response
110
- // re-map it with our custom class (if not disabled).
111
- if (!this._disabled && error instanceof HttpErrorResponse) {
112
- const parsed = new HttpError(error);
113
- return throwError(() => parsed);
114
- }
115
- // We did not match anything, just re-trow the error.
116
- return throwError(() => error);
117
- }));
118
- }
119
- }
120
- ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ErrorInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
121
- ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ErrorInterceptor });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ErrorInterceptor, decorators: [{
123
- type: Injectable
101
+ class ErrorInterceptor {
102
+ constructor(_config) {
103
+ this._config = _config;
104
+ // State.
105
+ this._disabled = this._config?.disableErrorParsing ?? false;
106
+ }
107
+ intercept(request, next) {
108
+ return next.handle(request).pipe(catchError(error => {
109
+ // If we have a matching http error response
110
+ // re-map it with our custom class (if not disabled).
111
+ if (!this._disabled && error instanceof HttpErrorResponse) {
112
+ const parsed = new HttpError(error);
113
+ return throwError(() => parsed);
114
+ }
115
+ // We did not match anything, just re-trow the error.
116
+ return throwError(() => error);
117
+ }));
118
+ }
119
+ }
120
+ ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
121
+ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor, decorators: [{
123
+ type: Injectable
124
124
  }], ctorParameters: function () { return [{ type: HttpConfig }]; } });
125
125
 
126
- class HttpModule {
127
- constructor(_parent) {
128
- this._parent = _parent;
129
- if (this._parent) {
130
- throw new Error('HttpModule is already loaded; Import it in the core module only.');
131
- }
132
- }
133
- static forRoot(config) {
134
- return {
135
- ngModule: HttpModule,
136
- providers: [
137
- { provide: HTTP_CONFIGURATION_DATA, useValue: config },
138
- { provide: HttpConfig, useFactory: createHttpConfig, deps: [HTTP_CONFIGURATION_DATA] },
139
- { provide: HTTP_INTERCEPTORS, useClass: BaseUrlInterceptor, multi: true },
140
- { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }
141
- ]
142
- };
143
- }
144
- }
145
- HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
146
- HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
147
- HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: HttpModule, decorators: [{
149
- type: NgModule,
150
- args: [{
151
- imports: [HttpClientModule]
152
- }]
153
- }], ctorParameters: function () { return [{ type: HttpModule, decorators: [{
154
- type: Optional
155
- }, {
156
- type: SkipSelf
157
- }] }]; } });
158
- const HTTP_CONFIGURATION_DATA = new InjectionToken('HTTP_CONFIGURATION_DATA');
159
- function createHttpConfig(data) {
160
- return new HttpConfig(data);
126
+ class HttpModule {
127
+ constructor(_parent) {
128
+ this._parent = _parent;
129
+ if (this._parent) {
130
+ throw new Error('HttpModule is already loaded; Import it in the core module only.');
131
+ }
132
+ }
133
+ static forRoot(config) {
134
+ return {
135
+ ngModule: HttpModule,
136
+ providers: [
137
+ { provide: HTTP_CONFIGURATION_DATA, useValue: config },
138
+ { provide: HttpConfig, useFactory: createHttpConfig, deps: [HTTP_CONFIGURATION_DATA] },
139
+ { provide: HTTP_INTERCEPTORS, useClass: BaseUrlInterceptor, multi: true },
140
+ { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }
141
+ ]
142
+ };
143
+ }
144
+ }
145
+ HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
146
+ HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
147
+ HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, decorators: [{
149
+ type: NgModule,
150
+ args: [{
151
+ imports: [HttpClientModule]
152
+ }]
153
+ }], ctorParameters: function () { return [{ type: HttpModule, decorators: [{
154
+ type: Optional
155
+ }, {
156
+ type: SkipSelf
157
+ }] }]; } });
158
+ const HTTP_CONFIGURATION_DATA = new InjectionToken('HTTP_CONFIGURATION_DATA');
159
+ function createHttpConfig(data) {
160
+ return new HttpConfig(data);
161
161
  }
162
162
 
163
- /**
164
- * Generated bundle index. Do not edit.
163
+ /**
164
+ * Generated bundle index. Do not edit.
165
165
  */
166
166
 
167
167
  export { BaseUrlInterceptor, ErrorInterceptor, HTTP_CONFIGURATION_DATA, HttpConfig, HttpError, HttpModule, createHttpConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-http.mjs","sources":["../../../projects/bb-foundation/http/src/lib/classes/http.config.ts","../../../projects/bb-foundation/http/src/lib/classes/http.error.ts","../../../projects/bb-foundation/http/src/lib/interceptors/base-url.interceptor.ts","../../../projects/bb-foundation/http/src/lib/interceptors/error.interceptor.ts","../../../projects/bb-foundation/http/src/lib/http.module.ts","../../../projects/bb-foundation/http/src/bravobit-bb-foundation-http.ts"],"sourcesContent":["import {HttpConfigAliases, HttpConfigData, HttpConfigUrl} from '../http.interfaces';\r\nimport {isDevMode} from '@angular/core';\r\n\r\nexport class HttpConfig {\r\n\r\n readonly aliases: HttpConfigAliases;\r\n readonly prefix: string;\r\n readonly defaultAlias: string;\r\n readonly disableErrorParsing: boolean;\r\n\r\n constructor(data: HttpConfigData) {\r\n // Get the data from the config.\r\n this.prefix = data?.alias?.prefix ?? '$';\r\n this.disableErrorParsing = data?.disableErrorParsing ?? false;\r\n\r\n // Parse the aliases.\r\n const standardAlias = data?.alias?.standard ?? 'api';\r\n this.aliases = this.parseAliases(data?.url, standardAlias);\r\n\r\n // Get the default alias.\r\n const firstAvailableAlias = Object.keys(this.aliases ?? {})?.[0];\r\n this.defaultAlias = `${this.prefix}${firstAvailableAlias}`;\r\n }\r\n\r\n private parseAliases = (value: HttpConfigUrl, standardAlias: string) => {\r\n if (typeof value === 'string') {\r\n value = {[standardAlias]: value};\r\n }\r\n\r\n if (isDevMode()) {\r\n const stringRegex = /^[a-zA-Z]+$/;\r\n for (const alias in value) {\r\n if (value.hasOwnProperty(alias) && !stringRegex.test(alias)) {\r\n console?.warn?.(`[HttpModule]: Invalid HTTP-alias in HttpConfig named \"${alias}\"; only latin characters should be used.`);\r\n }\r\n }\r\n }\r\n\r\n return value;\r\n };\r\n\r\n}","import {HttpErrorResponse} from '@angular/common/http';\r\n\r\nexport class HttpError extends HttpErrorResponse {\r\n\r\n constructor(error: HttpErrorResponse) {\r\n super(error);\r\n }\r\n\r\n get<T = any>(token: string, delimiter: string = '.') {\r\n const error = this.error ?? {};\r\n return (token ?? '')\r\n .split(delimiter)\r\n .reduce((previous, current) => previous?.[current] ? previous?.[current] : null, error) as T;\r\n }\r\n\r\n has(token: string, delimiter: string = '.') {\r\n return !!this.get(token, delimiter);\r\n }\r\n\r\n includes<T = any>(token: string, value: T) {\r\n const array = this.get<T[]>(token);\r\n return (array ?? []).includes(value);\r\n }\r\n\r\n}\r\n","import {HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\r\nimport {HttpConfigAliases} from '../http.interfaces';\r\nimport {Injectable, isDevMode} from '@angular/core';\r\nimport {HttpConfig} from '../classes/http.config';\r\n\r\n@Injectable()\r\nexport class BaseUrlInterceptor implements HttpInterceptor {\r\n\r\n // Aliases.\r\n private readonly _aliases: HttpConfigAliases = this._config?.aliases;\r\n private readonly _prefix: string = this._config?.prefix;\r\n private readonly _extractRegex: RegExp = new RegExp(`\\\\${this._prefix}[a-zA-Z]+`);\r\n\r\n constructor(private _config: HttpConfig) {\r\n }\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler) {\r\n const url = this.getUrlBasedOnAlias(request.url);\r\n const modified = request.clone({url});\r\n\r\n return next.handle(modified);\r\n }\r\n\r\n private getUrlBasedOnAlias(url: string) {\r\n const matches = this._extractRegex.exec(url);\r\n if (!matches) {\r\n return url;\r\n }\r\n\r\n return matches.reduce((previous, current) => {\r\n const alias = this.getAlias(current);\r\n if (!alias) {\r\n return previous;\r\n }\r\n\r\n return previous.replace(current, alias);\r\n }, url);\r\n }\r\n\r\n private getAlias(value: string) {\r\n const alias = value.replace(this._prefix, '');\r\n const fetched = this._aliases?.[alias] ?? null;\r\n if (fetched) {\r\n return fetched;\r\n }\r\n\r\n if (isDevMode()) {\r\n const available = Object.keys(this._aliases)\r\n .map(item => `\\$${item}`)\r\n .join(', ');\r\n console?.warn?.(`[HttpModule]: Used an invalid HTTP-alias named \"${value}\", skipped parsing; Available aliases is one of (${available}).`);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import {HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\r\nimport {HttpConfig} from '../classes/http.config';\r\nimport {HttpError} from '../classes/http.error';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {Injectable} from '@angular/core';\r\nimport {throwError} from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n\r\n // State.\r\n private readonly _disabled = this._config?.disableErrorParsing ?? false;\r\n\r\n constructor(private _config: HttpConfig) {\r\n }\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler) {\r\n return next.handle(request).pipe(\r\n catchError(error => {\r\n // If we have a matching http error response\r\n // re-map it with our custom class (if not disabled).\r\n if (!this._disabled && error instanceof HttpErrorResponse) {\r\n const parsed = new HttpError(error);\r\n return throwError(() => parsed);\r\n }\r\n\r\n // We did not match anything, just re-trow the error.\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import {InjectionToken, ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core';\r\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\r\nimport {BaseUrlInterceptor} from './interceptors/base-url.interceptor';\r\nimport {ErrorInterceptor} from './interceptors/error.interceptor';\r\nimport {HttpConfigData} from './http.interfaces';\r\nimport {HttpConfig} from './classes/http.config';\r\n\r\n@NgModule({\r\n imports: [HttpClientModule]\r\n})\r\nexport class HttpModule {\r\n\r\n constructor(@Optional() @SkipSelf() private _parent?: HttpModule) {\r\n if (this._parent) {\r\n throw new Error('HttpModule is already loaded; Import it in the core module only.');\r\n }\r\n }\r\n\r\n static forRoot(config: HttpConfigData): ModuleWithProviders<HttpModule> {\r\n return {\r\n ngModule: HttpModule,\r\n providers: [\r\n {provide: HTTP_CONFIGURATION_DATA, useValue: config},\r\n {provide: HttpConfig, useFactory: createHttpConfig, deps: [HTTP_CONFIGURATION_DATA]},\r\n {provide: HTTP_INTERCEPTORS, useClass: BaseUrlInterceptor, multi: true},\r\n {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true}\r\n ]\r\n };\r\n }\r\n\r\n}\r\n\r\nexport const HTTP_CONFIGURATION_DATA = new InjectionToken<HttpConfigData>('HTTP_CONFIGURATION_DATA');\r\n\r\nexport function createHttpConfig(data: HttpConfigData) {\r\n return new HttpConfig(data);\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.HttpConfig"],"mappings":"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"}
1
+ {"version":3,"file":"bravobit-bb-foundation-http.mjs","sources":["../../../projects/bb-foundation/http/src/lib/classes/http.config.ts","../../../projects/bb-foundation/http/src/lib/classes/http.error.ts","../../../projects/bb-foundation/http/src/lib/interceptors/base-url.interceptor.ts","../../../projects/bb-foundation/http/src/lib/interceptors/error.interceptor.ts","../../../projects/bb-foundation/http/src/lib/http.module.ts","../../../projects/bb-foundation/http/src/bravobit-bb-foundation-http.ts"],"sourcesContent":["import {HttpConfigAliases, HttpConfigData, HttpConfigUrl} from '../http.interfaces';\nimport {isDevMode} from '@angular/core';\n\nexport class HttpConfig {\n\n readonly aliases: HttpConfigAliases;\n readonly prefix: string;\n readonly defaultAlias: string;\n readonly disableErrorParsing: boolean;\n\n constructor(data: HttpConfigData) {\n // Get the data from the config.\n this.prefix = data?.alias?.prefix ?? '$';\n this.disableErrorParsing = data?.disableErrorParsing ?? false;\n\n // Parse the aliases.\n const standardAlias = data?.alias?.standard ?? 'api';\n this.aliases = this.parseAliases(data?.url, standardAlias);\n\n // Get the default alias.\n const firstAvailableAlias = Object.keys(this.aliases ?? {})?.[0];\n this.defaultAlias = `${this.prefix}${firstAvailableAlias}`;\n }\n\n private parseAliases = (value: HttpConfigUrl, standardAlias: string) => {\n if (typeof value === 'string') {\n value = {[standardAlias]: value};\n }\n\n if (isDevMode()) {\n const stringRegex = /^[a-zA-Z]+$/;\n for (const alias in value) {\n if (value.hasOwnProperty(alias) && !stringRegex.test(alias)) {\n console?.warn?.(`[HttpModule]: Invalid HTTP-alias in HttpConfig named \"${alias}\"; only latin characters should be used.`);\n }\n }\n }\n\n return value;\n };\n\n}","import {HttpErrorResponse} from '@angular/common/http';\n\nexport class HttpError extends HttpErrorResponse {\n\n constructor(error: HttpErrorResponse) {\n super(error);\n }\n\n get<T = any>(token: string, delimiter: string = '.') {\n const error = this.error ?? {};\n return (token ?? '')\n .split(delimiter)\n .reduce((previous, current) => previous?.[current] ? previous?.[current] : null, error) as T;\n }\n\n has(token: string, delimiter: string = '.') {\n return !!this.get(token, delimiter);\n }\n\n includes<T = any>(token: string, value: T) {\n const array = this.get<T[]>(token);\n return (array ?? []).includes(value);\n }\n\n}\n","import {HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {HttpConfigAliases} from '../http.interfaces';\nimport {Injectable, isDevMode} from '@angular/core';\nimport {HttpConfig} from '../classes/http.config';\n\n@Injectable()\nexport class BaseUrlInterceptor implements HttpInterceptor {\n\n // Aliases.\n private readonly _aliases: HttpConfigAliases = this._config?.aliases;\n private readonly _prefix: string = this._config?.prefix;\n private readonly _extractRegex: RegExp = new RegExp(`\\\\${this._prefix}[a-zA-Z]+`);\n\n constructor(private _config: HttpConfig) {\n }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler) {\n const url = this.getUrlBasedOnAlias(request.url);\n const modified = request.clone({url});\n\n return next.handle(modified);\n }\n\n private getUrlBasedOnAlias(url: string) {\n const matches = this._extractRegex.exec(url);\n if (!matches) {\n return url;\n }\n\n return matches.reduce((previous, current) => {\n const alias = this.getAlias(current);\n if (!alias) {\n return previous;\n }\n\n return previous.replace(current, alias);\n }, url);\n }\n\n private getAlias(value: string) {\n const alias = value.replace(this._prefix, '');\n const fetched = this._aliases?.[alias] ?? null;\n if (fetched) {\n return fetched;\n }\n\n if (isDevMode()) {\n const available = Object.keys(this._aliases)\n .map(item => `\\$${item}`)\n .join(', ');\n console?.warn?.(`[HttpModule]: Used an invalid HTTP-alias named \"${value}\", skipped parsing; Available aliases is one of (${available}).`);\n }\n\n return null;\n }\n\n}\n","import {HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {HttpConfig} from '../classes/http.config';\nimport {HttpError} from '../classes/http.error';\nimport {catchError} from 'rxjs/operators';\nimport {Injectable} from '@angular/core';\nimport {throwError} from 'rxjs';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n\n // State.\n private readonly _disabled = this._config?.disableErrorParsing ?? false;\n\n constructor(private _config: HttpConfig) {\n }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler) {\n return next.handle(request).pipe(\n catchError(error => {\n // If we have a matching http error response\n // re-map it with our custom class (if not disabled).\n if (!this._disabled && error instanceof HttpErrorResponse) {\n const parsed = new HttpError(error);\n return throwError(() => parsed);\n }\n\n // We did not match anything, just re-trow the error.\n return throwError(() => error);\n })\n );\n }\n\n}\n","import {InjectionToken, ModuleWithProviders, NgModule, Optional, SkipSelf} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {BaseUrlInterceptor} from './interceptors/base-url.interceptor';\nimport {ErrorInterceptor} from './interceptors/error.interceptor';\nimport {HttpConfigData} from './http.interfaces';\nimport {HttpConfig} from './classes/http.config';\n\n@NgModule({\n imports: [HttpClientModule]\n})\nexport class HttpModule {\n\n constructor(@Optional() @SkipSelf() private _parent?: HttpModule) {\n if (this._parent) {\n throw new Error('HttpModule is already loaded; Import it in the core module only.');\n }\n }\n\n static forRoot(config: HttpConfigData): ModuleWithProviders<HttpModule> {\n return {\n ngModule: HttpModule,\n providers: [\n {provide: HTTP_CONFIGURATION_DATA, useValue: config},\n {provide: HttpConfig, useFactory: createHttpConfig, deps: [HTTP_CONFIGURATION_DATA]},\n {provide: HTTP_INTERCEPTORS, useClass: BaseUrlInterceptor, multi: true},\n {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true}\n ]\n };\n }\n\n}\n\nexport const HTTP_CONFIGURATION_DATA = new InjectionToken<HttpConfigData>('HTTP_CONFIGURATION_DATA');\n\nexport function createHttpConfig(data: HttpConfigData) {\n return new HttpConfig(data);\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.HttpConfig"],"mappings":"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"}