@bravobit/bb-foundation 0.20.3 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/README.md +47 -47
  2. package/auth/{bravobit-bb-foundation-auth.d.ts → 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/{bravobit-bb-foundation-collections.d.ts → index.d.ts} +5 -5
  24. package/collections/lib/collection.d.ts +43 -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 +26 -26
  30. package/collections/lib/providers/api-collection.provider.d.ts +19 -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/{bravobit-bb-foundation-controls.d.ts → 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 -18
  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/{bravobit-bb-foundation-dashboard.d.ts → 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/{bravobit-bb-foundation-dialog.d.ts → 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/{bravobit-bb-foundation-elements.d.ts → 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 +102 -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 +71 -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 -48
  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 -70
  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 +5 -0
  236. package/esm2020/masking/lib/input-mask.directive.mjs +110 -0
  237. package/esm2020/masking/lib/input-mask.interface.mjs +2 -0
  238. package/esm2020/masking/lib/masking.module.mjs +16 -0
  239. package/esm2020/masking/lib/masking.service.mjs +94 -0
  240. package/esm2020/masking/public_api.mjs +5 -0
  241. package/esm2020/notifications/bravobit-bb-foundation-notifications.mjs +4 -4
  242. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -100
  243. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -47
  244. package/esm2020/notifications/lib/notifications.animations.mjs +28 -28
  245. package/esm2020/notifications/lib/notifications.injector.mjs +18 -18
  246. package/esm2020/notifications/lib/notifications.interfaces.mjs +20 -20
  247. package/esm2020/notifications/lib/notifications.module.mjs +30 -30
  248. package/esm2020/notifications/lib/notifications.service.mjs +145 -145
  249. package/esm2020/notifications/public_api.mjs +4 -4
  250. package/esm2020/public_api.mjs +29 -29
  251. package/esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs +4 -4
  252. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -185
  253. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -90
  254. package/esm2020/recaptcha/lib/recaptcha.interface.mjs +3 -3
  255. package/esm2020/recaptcha/lib/recaptcha.module.mjs +27 -27
  256. package/esm2020/recaptcha/public_api.mjs +5 -5
  257. package/esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs +4 -4
  258. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -10
  259. package/esm2020/rxjs/lib/operators/filter-nil.operator.mjs +5 -5
  260. package/esm2020/rxjs/public_api.mjs +3 -3
  261. package/esm2020/storage/bravobit-bb-foundation-storage.mjs +4 -4
  262. package/esm2020/storage/lib/interfaces/attributes.interface.mjs +2 -2
  263. package/esm2020/storage/lib/interfaces/memory.interface.mjs +2 -2
  264. package/esm2020/storage/lib/interfaces/strategy.interface.mjs +2 -2
  265. package/esm2020/storage/lib/storage.service.mjs +109 -109
  266. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -142
  267. package/esm2020/storage/lib/strategies/memory-storage.strategy.mjs +56 -56
  268. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -102
  269. package/esm2020/storage/public_api.mjs +8 -8
  270. package/esm2020/table/bravobit-bb-foundation-table.mjs +4 -4
  271. package/esm2020/table/lib/components/table/table.component.mjs +191 -191
  272. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -11
  273. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -131
  274. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -136
  275. package/esm2020/table/lib/data/datasource.data.mjs +32 -32
  276. package/esm2020/table/lib/data/generic.data.mjs +72 -72
  277. package/esm2020/table/lib/interfaces/datasource.interface.mjs +2 -2
  278. package/esm2020/table/lib/interfaces/table.interfaces.mjs +2 -2
  279. package/esm2020/table/lib/table.module.mjs +42 -42
  280. package/esm2020/table/public_api.mjs +10 -10
  281. package/esm2020/theming/bravobit-bb-foundation-theming.mjs +5 -0
  282. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +2 -0
  283. package/esm2020/theming/lib/themes/checkbox.theme.mjs +2 -0
  284. package/esm2020/theming/lib/theming.interface.mjs +3 -0
  285. package/esm2020/theming/lib/theming.module.mjs +38 -0
  286. package/esm2020/theming/lib/theming.service.mjs +100 -0
  287. package/esm2020/theming/public_api.mjs +4 -0
  288. package/fesm2015/bravobit-bb-foundation-auth.mjs +930 -930
  289. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  290. package/fesm2015/bravobit-bb-foundation-collections.mjs +423 -423
  291. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  292. package/fesm2015/bravobit-bb-foundation-controls.mjs +229 -216
  293. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  294. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +383 -383
  295. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  296. package/fesm2015/bravobit-bb-foundation-dialog.mjs +541 -543
  297. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  298. package/fesm2015/bravobit-bb-foundation-elements.mjs +1977 -1977
  299. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  300. package/fesm2015/bravobit-bb-foundation-http.mjs +156 -156
  301. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  302. package/fesm2015/bravobit-bb-foundation-localize.mjs +608 -608
  303. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  304. package/fesm2015/bravobit-bb-foundation-masking.mjs +235 -0
  305. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -0
  306. package/fesm2015/bravobit-bb-foundation-notifications.mjs +349 -349
  307. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  308. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +290 -290
  309. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  310. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +7 -7
  311. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  312. package/fesm2015/bravobit-bb-foundation-storage.mjs +401 -401
  313. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  314. package/fesm2015/bravobit-bb-foundation-table.mjs +575 -575
  315. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  316. package/fesm2015/bravobit-bb-foundation-theming.mjs +153 -0
  317. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -0
  318. package/fesm2015/bravobit-bb-foundation.mjs +859 -859
  319. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  320. package/fesm2020/bravobit-bb-foundation-auth.mjs +882 -882
  321. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  322. package/fesm2020/bravobit-bb-foundation-collections.mjs +413 -413
  323. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  324. package/fesm2020/bravobit-bb-foundation-controls.mjs +227 -214
  325. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  326. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +371 -371
  327. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  328. package/fesm2020/bravobit-bb-foundation-dialog.mjs +540 -542
  329. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  330. package/fesm2020/bravobit-bb-foundation-elements.mjs +1934 -1934
  331. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  332. package/fesm2020/bravobit-bb-foundation-http.mjs +148 -148
  333. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  334. package/fesm2020/bravobit-bb-foundation-localize.mjs +587 -587
  335. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  336. package/fesm2020/bravobit-bb-foundation-masking.mjs +223 -0
  337. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -0
  338. package/fesm2020/bravobit-bb-foundation-notifications.mjs +347 -347
  339. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  340. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +280 -280
  341. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  342. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +10 -10
  343. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  344. package/fesm2020/bravobit-bb-foundation-storage.mjs +396 -396
  345. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  346. package/fesm2020/bravobit-bb-foundation-table.mjs +564 -564
  347. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  348. package/fesm2020/bravobit-bb-foundation-theming.mjs +143 -0
  349. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -0
  350. package/fesm2020/bravobit-bb-foundation.mjs +831 -831
  351. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  352. package/http/{bravobit-bb-foundation-http.d.ts → index.d.ts} +5 -5
  353. package/http/lib/classes/http.config.d.ts +9 -9
  354. package/http/lib/classes/http.error.d.ts +7 -7
  355. package/http/lib/http.interfaces.d.ts +12 -12
  356. package/http/lib/http.module.d.ts +15 -15
  357. package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
  358. package/http/lib/interceptors/error.interceptor.d.ts +11 -11
  359. package/http/public_api.d.ts +6 -6
  360. package/{bravobit-bb-foundation.d.ts → index.d.ts} +5 -5
  361. package/lib/core/miscellaneous/regex.d.ts +4 -4
  362. package/lib/core/miscellaneous/validator.d.ts +13 -13
  363. package/lib/core/mixins/can-disable.d.ts +6 -6
  364. package/lib/core/mixins/can-hide-errors.d.ts +6 -6
  365. package/lib/core/mixins/can-load.d.ts +6 -6
  366. package/lib/core/mixins/constructor.d.ts +1 -1
  367. package/lib/core/mixins/has-error.d.ts +6 -6
  368. package/lib/core/mixins/is-focused.d.ts +6 -6
  369. package/lib/core/mixins/is-grouped.d.ts +6 -6
  370. package/lib/core/mixins/is-readonly.d.ts +6 -6
  371. package/lib/core/mixins/is-required.d.ts +6 -6
  372. package/lib/core/services/clipboard.service.d.ts +18 -18
  373. package/lib/core/services/exif.service.d.ts +15 -15
  374. package/lib/core/services/file-loader.service.d.ts +13 -13
  375. package/lib/core/services/image-converter.service.d.ts +21 -21
  376. package/lib/core/services/languages.service.d.ts +16 -16
  377. package/lib/core/services/network.service.d.ts +14 -14
  378. package/lib/core/services/patch.service.d.ts +16 -16
  379. package/lib/core/services/platform.service.d.ts +18 -18
  380. package/lib/core/tokens/accept-language.token.d.ts +2 -2
  381. package/lib/core/tokens/base-url.token.d.ts +2 -2
  382. package/lib/core/tokens/cookie.token.d.ts +2 -2
  383. package/lib/core/tokens/location.token.d.ts +2 -2
  384. package/lib/core/tokens/navigator.token.d.ts +2 -2
  385. package/lib/core/tokens/window.token.d.ts +2 -2
  386. package/localize/{bravobit-bb-foundation-localize.d.ts → index.d.ts} +5 -5
  387. package/localize/lib/functions/date.function.d.ts +5 -5
  388. package/localize/lib/functions/lowercase.function.d.ts +5 -5
  389. package/localize/lib/functions/uppercase.function.d.ts +5 -5
  390. package/localize/lib/handlers/missing.handler.d.ts +6 -6
  391. package/localize/lib/interfaces/config.interfaces.d.ts +18 -18
  392. package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
  393. package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
  394. package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
  395. package/localize/lib/localizations/dutch.localization.d.ts +44 -44
  396. package/localize/lib/localizations/english.localization.d.ts +44 -44
  397. package/localize/lib/localize.dictionary.d.ts +7 -7
  398. package/localize/lib/localize.module.d.ts +17 -17
  399. package/localize/lib/localize.pipe.d.ts +12 -12
  400. package/localize/lib/localize.service.d.ts +40 -40
  401. package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
  402. package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
  403. package/localize/lib/views/localize-template.directive.d.ts +9 -9
  404. package/localize/public_api.d.ts +16 -16
  405. package/masking/index.d.ts +5 -0
  406. package/masking/lib/input-mask.directive.d.ts +36 -0
  407. package/masking/lib/input-mask.interface.d.ts +20 -0
  408. package/masking/lib/masking.module.d.ts +7 -0
  409. package/masking/lib/masking.service.d.ts +12 -0
  410. package/masking/public_api.d.ts +4 -0
  411. package/notifications/{bravobit-bb-foundation-notifications.d.ts → index.d.ts} +5 -5
  412. package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
  413. package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
  414. package/notifications/lib/notifications.animations.d.ts +1 -1
  415. package/notifications/lib/notifications.injector.d.ts +8 -8
  416. package/notifications/lib/notifications.interfaces.d.ts +49 -49
  417. package/notifications/lib/notifications.module.d.ts +13 -13
  418. package/notifications/lib/notifications.service.d.ts +34 -34
  419. package/notifications/public_api.d.ts +3 -3
  420. package/package.json +36 -19
  421. package/public_api.d.ts +25 -25
  422. package/recaptcha/{bravobit-bb-foundation-recaptcha.d.ts → index.d.ts} +5 -5
  423. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
  424. package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
  425. package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
  426. package/recaptcha/lib/recaptcha.module.d.ts +10 -10
  427. package/recaptcha/public_api.d.ts +4 -4
  428. package/rxjs/{bravobit-bb-foundation-rxjs.d.ts → index.d.ts} +5 -5
  429. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
  430. package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
  431. package/rxjs/public_api.d.ts +2 -2
  432. package/storage/{bravobit-bb-foundation-storage.d.ts → index.d.ts} +5 -5
  433. package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
  434. package/storage/lib/interfaces/memory.interface.d.ts +7 -7
  435. package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
  436. package/storage/lib/storage.service.d.ts +26 -26
  437. package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
  438. package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
  439. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
  440. package/storage/public_api.d.ts +7 -7
  441. package/table/{bravobit-bb-foundation-table.d.ts → index.d.ts} +5 -5
  442. package/table/lib/components/table/table.component.d.ts +56 -56
  443. package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
  444. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
  445. package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
  446. package/table/lib/data/datasource.data.d.ts +14 -14
  447. package/table/lib/data/generic.data.d.ts +23 -23
  448. package/table/lib/interfaces/datasource.interface.d.ts +17 -17
  449. package/table/lib/interfaces/table.interfaces.d.ts +1 -1
  450. package/table/lib/table.module.d.ts +14 -14
  451. package/table/public_api.d.ts +9 -9
  452. package/theming/index.d.ts +5 -0
  453. package/theming/lib/themes/checkbox-group.theme.d.ts +5 -0
  454. package/theming/lib/themes/checkbox.theme.d.ts +19 -0
  455. package/theming/lib/theming.interface.d.ts +14 -0
  456. package/theming/lib/theming.module.d.ts +13 -0
  457. package/theming/lib/theming.service.d.ts +24 -0
  458. package/theming/public_api.d.ts +3 -0
  459. package/auth/package.json +0 -10
  460. package/collections/package.json +0 -10
  461. package/controls/package.json +0 -10
  462. package/dashboard/package.json +0 -10
  463. package/dialog/package.json +0 -10
  464. package/elements/package.json +0 -10
  465. package/http/package.json +0 -10
  466. package/localize/package.json +0 -10
  467. package/notifications/package.json +0 -10
  468. package/recaptcha/package.json +0 -10
  469. package/rxjs/package.json +0 -10
  470. package/storage/package.json +0 -10
  471. package/table/package.json +0 -10
@@ -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: "13.3.6", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
96
- BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BaseUrlInterceptor });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", 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.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
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: "13.3.6", ngImport: i0, type: ErrorInterceptor, deps: [{ token: HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
121
- ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: ErrorInterceptor });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", 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.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
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: "13.3.6", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
146
- HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
147
- HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: HttpModule, imports: [[HttpClientModule]] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", 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.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);
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';\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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"}
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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"}