@bravobit/bb-foundation 0.16.5 → 0.20.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 (426) hide show
  1. package/README.md +47 -47
  2. package/auth/bravobit-bb-foundation-auth.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/bravobit-bb-foundation.d.ts +5 -5
  24. package/collections/bravobit-bb-foundation-collections.d.ts +5 -5
  25. package/collections/lib/collection.d.ts +43 -43
  26. package/collections/lib/collections.module.d.ts +10 -10
  27. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -34
  28. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -12
  29. package/collections/lib/components/collections.directive.d.ts +17 -17
  30. package/collections/lib/interfaces/collection.interface.d.ts +26 -26
  31. package/collections/lib/providers/api-collection.provider.d.ts +17 -15
  32. package/collections/lib/providers/collection.provider.d.ts +6 -6
  33. package/collections/lib/providers/local-collection.provider.d.ts +8 -8
  34. package/collections/public_api.d.ts +9 -9
  35. package/controls/bravobit-bb-foundation-controls.d.ts +5 -5
  36. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -47
  37. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +18 -18
  38. package/controls/lib/checkbox/checkbox.module.d.ts +9 -9
  39. package/controls/lib/controls.module.d.ts +7 -7
  40. package/controls/public_api.d.ts +4 -4
  41. package/dashboard/bravobit-bb-foundation-dashboard.d.ts +5 -5
  42. package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
  43. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
  44. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
  45. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
  46. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
  47. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
  48. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
  49. package/dashboard/lib/dashboard.module.d.ts +16 -16
  50. package/dashboard/public_api.d.ts +8 -8
  51. package/dialog/bravobit-bb-foundation-dialog.d.ts +5 -5
  52. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
  53. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
  54. package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
  55. package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
  56. package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
  57. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
  58. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
  59. package/dialog/lib/dialog.injector.d.ts +8 -8
  60. package/dialog/lib/dialog.insertion.d.ts +8 -8
  61. package/dialog/lib/dialog.interfaces.d.ts +3 -3
  62. package/dialog/lib/dialog.module.d.ts +19 -19
  63. package/dialog/lib/dialog.ref.d.ts +8 -8
  64. package/dialog/lib/dialog.service.d.ts +19 -19
  65. package/dialog/public_api.d.ts +9 -9
  66. package/elements/bravobit-bb-foundation-elements.d.ts +5 -5
  67. package/elements/lib/avatar/avatar.component.d.ts +25 -25
  68. package/elements/lib/button/button.component.d.ts +23 -23
  69. package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
  70. package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
  71. package/elements/lib/directives/addon.directive.d.ts +9 -9
  72. package/elements/lib/directives/autosize.directive.d.ts +18 -18
  73. package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
  74. package/elements/lib/directives/focus.directive.d.ts +14 -14
  75. package/elements/lib/directives/form-submit.directive.d.ts +17 -17
  76. package/elements/lib/directives/input.directive.d.ts +38 -38
  77. package/elements/lib/directives/template.directive.d.ts +10 -10
  78. package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
  79. package/elements/lib/elements.interfaces.d.ts +25 -25
  80. package/elements/lib/elements.module.d.ts +116 -116
  81. package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
  82. package/elements/lib/form-control/form-control.component.d.ts +21 -21
  83. package/elements/lib/form-error/form-error.component.d.ts +29 -29
  84. package/elements/lib/form-group/form-group.component.d.ts +10 -10
  85. package/elements/lib/icon/icon.component.d.ts +22 -22
  86. package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
  87. package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
  88. package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
  89. package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
  90. package/elements/lib/spinner/spinner.component.d.ts +12 -12
  91. package/elements/lib/tag/tag.component.d.ts +7 -7
  92. package/elements/public_api.d.ts +25 -25
  93. package/esm2020/auth/bravobit-bb-foundation-auth.mjs +4 -4
  94. package/esm2020/auth/lib/auth.interceptor.mjs +93 -94
  95. package/esm2020/auth/lib/auth.module.mjs +54 -54
  96. package/esm2020/auth/lib/auth.service.mjs +281 -276
  97. package/esm2020/auth/lib/auth.session.mjs +131 -131
  98. package/esm2020/auth/lib/directives/authenticated.directive.mjs +31 -31
  99. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -80
  100. package/esm2020/auth/lib/directives/role.directive.mjs +37 -37
  101. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -34
  102. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -35
  103. package/esm2020/auth/lib/helpers/jwt.helper.mjs +69 -69
  104. package/esm2020/auth/lib/helpers/mapper.helper.mjs +35 -35
  105. package/esm2020/auth/lib/interfaces/config.interface.mjs +3 -3
  106. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +2 -2
  107. package/esm2020/auth/lib/interfaces/provider.interface.mjs +2 -2
  108. package/esm2020/auth/lib/interfaces/token.interface.mjs +2 -2
  109. package/esm2020/auth/lib/permissions.service.mjs +56 -56
  110. package/esm2020/auth/lib/providers/email.provider.mjs +25 -25
  111. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -19
  112. package/esm2020/auth/lib/tokens/use-authorization.token.mjs +3 -3
  113. package/esm2020/auth/public_api.mjs +19 -19
  114. package/esm2020/bravobit-bb-foundation.mjs +4 -4
  115. package/esm2020/collections/bravobit-bb-foundation-collections.mjs +4 -4
  116. package/esm2020/collections/lib/collection.mjs +102 -102
  117. package/esm2020/collections/lib/collections.module.mjs +54 -54
  118. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -123
  119. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -31
  120. package/esm2020/collections/lib/components/collections.directive.mjs +43 -43
  121. package/esm2020/collections/lib/interfaces/collection.interface.mjs +2 -2
  122. package/esm2020/collections/lib/providers/api-collection.provider.mjs +71 -71
  123. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -13
  124. package/esm2020/collections/lib/providers/local-collection.provider.mjs +16 -16
  125. package/esm2020/collections/public_api.mjs +10 -10
  126. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +4 -4
  127. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -153
  128. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +48 -48
  129. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -19
  130. package/esm2020/controls/lib/controls.module.mjs +16 -16
  131. package/esm2020/controls/public_api.mjs +5 -5
  132. package/esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs +4 -4
  133. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -56
  134. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -30
  135. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -31
  136. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -29
  137. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -75
  138. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -99
  139. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -62
  140. package/esm2020/dashboard/lib/dashboard.module.mjs +47 -47
  141. package/esm2020/dashboard/public_api.mjs +9 -9
  142. package/esm2020/dialog/bravobit-bb-foundation-dialog.mjs +4 -4
  143. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -12
  144. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -37
  145. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +153 -153
  146. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -25
  147. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -11
  148. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -46
  149. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -134
  150. package/esm2020/dialog/lib/dialog.injector.mjs +18 -18
  151. package/esm2020/dialog/lib/dialog.insertion.mjs +16 -16
  152. package/esm2020/dialog/lib/dialog.interfaces.mjs +3 -3
  153. package/esm2020/dialog/lib/dialog.module.mjs +70 -70
  154. package/esm2020/dialog/lib/dialog.ref.mjs +22 -22
  155. package/esm2020/dialog/lib/dialog.service.mjs +77 -77
  156. package/esm2020/dialog/public_api.mjs +10 -10
  157. package/esm2020/elements/bravobit-bb-foundation-elements.mjs +4 -4
  158. package/esm2020/elements/lib/avatar/avatar.component.mjs +145 -145
  159. package/esm2020/elements/lib/button/button.component.mjs +61 -61
  160. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -73
  161. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -304
  162. package/esm2020/elements/lib/directives/addon.directive.mjs +29 -29
  163. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -72
  164. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +77 -77
  165. package/esm2020/elements/lib/directives/focus.directive.mjs +39 -39
  166. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -50
  167. package/esm2020/elements/lib/directives/input.directive.mjs +136 -136
  168. package/esm2020/elements/lib/directives/template.directive.mjs +28 -28
  169. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -100
  170. package/esm2020/elements/lib/elements.interfaces.mjs +4 -4
  171. package/esm2020/elements/lib/elements.module.mjs +177 -177
  172. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -236
  173. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -49
  174. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -108
  175. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -18
  176. package/esm2020/elements/lib/icon/icon.component.mjs +102 -102
  177. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -106
  178. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -42
  179. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +28 -28
  180. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -94
  181. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -25
  182. package/esm2020/elements/lib/tag/tag.component.mjs +18 -18
  183. package/esm2020/elements/public_api.mjs +26 -26
  184. package/esm2020/http/bravobit-bb-foundation-http.mjs +4 -4
  185. package/esm2020/http/lib/classes/http.config.mjs +29 -29
  186. package/esm2020/http/lib/classes/http.error.mjs +20 -20
  187. package/esm2020/http/lib/http.interfaces.mjs +2 -2
  188. package/esm2020/http/lib/http.module.mjs +43 -43
  189. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -50
  190. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -32
  191. package/esm2020/http/public_api.mjs +7 -7
  192. package/esm2020/lib/core/miscellaneous/regex.mjs +5 -5
  193. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -85
  194. package/esm2020/lib/core/mixins/can-disable.mjs +16 -16
  195. package/esm2020/lib/core/mixins/can-hide-errors.mjs +16 -16
  196. package/esm2020/lib/core/mixins/can-load.mjs +16 -16
  197. package/esm2020/lib/core/mixins/constructor.mjs +2 -2
  198. package/esm2020/lib/core/mixins/has-error.mjs +16 -16
  199. package/esm2020/lib/core/mixins/is-focused.mjs +16 -16
  200. package/esm2020/lib/core/mixins/is-grouped.mjs +16 -16
  201. package/esm2020/lib/core/mixins/is-readonly.mjs +16 -16
  202. package/esm2020/lib/core/mixins/is-required.mjs +16 -16
  203. package/esm2020/lib/core/services/clipboard.service.mjs +70 -70
  204. package/esm2020/lib/core/services/exif.service.mjs +163 -163
  205. package/esm2020/lib/core/services/file-loader.service.mjs +87 -87
  206. package/esm2020/lib/core/services/image-converter.service.mjs +123 -123
  207. package/esm2020/lib/core/services/languages.service.mjs +74 -74
  208. package/esm2020/lib/core/services/network.service.mjs +55 -55
  209. package/esm2020/lib/core/services/patch.service.mjs +63 -63
  210. package/esm2020/lib/core/services/platform.service.mjs +42 -42
  211. package/esm2020/lib/core/tokens/accept-language.token.mjs +3 -3
  212. package/esm2020/lib/core/tokens/base-url.token.mjs +3 -3
  213. package/esm2020/lib/core/tokens/cookie.token.mjs +3 -3
  214. package/esm2020/lib/core/tokens/location.token.mjs +6 -6
  215. package/esm2020/lib/core/tokens/navigator.token.mjs +6 -6
  216. package/esm2020/lib/core/tokens/window.token.mjs +12 -12
  217. package/esm2020/localize/bravobit-bb-foundation-localize.mjs +4 -4
  218. package/esm2020/localize/lib/functions/date.function.mjs +18 -18
  219. package/esm2020/localize/lib/functions/lowercase.function.mjs +13 -13
  220. package/esm2020/localize/lib/functions/uppercase.function.mjs +13 -13
  221. package/esm2020/localize/lib/handlers/missing.handler.mjs +15 -17
  222. package/esm2020/localize/lib/interfaces/config.interfaces.mjs +7 -10
  223. package/esm2020/localize/lib/interfaces/functions.interfaces.mjs +8 -8
  224. package/esm2020/localize/lib/interfaces/handlers.interfaces.mjs +2 -2
  225. package/esm2020/localize/lib/interfaces/options.interfaces.mjs +6 -6
  226. package/esm2020/localize/lib/localizations/dutch.localization.mjs +45 -53
  227. package/esm2020/localize/lib/localizations/english.localization.mjs +45 -53
  228. package/esm2020/localize/lib/localize.dictionary.mjs +26 -135
  229. package/esm2020/localize/lib/localize.module.mjs +71 -72
  230. package/esm2020/localize/lib/localize.pipe.mjs +49 -49
  231. package/esm2020/localize/lib/localize.service.mjs +205 -280
  232. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -88
  233. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +28 -28
  234. package/esm2020/localize/lib/views/localize-template.directive.mjs +21 -21
  235. package/esm2020/localize/public_api.mjs +17 -18
  236. package/esm2020/notifications/bravobit-bb-foundation-notifications.mjs +4 -4
  237. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -100
  238. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -47
  239. package/esm2020/notifications/lib/notifications.animations.mjs +28 -28
  240. package/esm2020/notifications/lib/notifications.injector.mjs +18 -18
  241. package/esm2020/notifications/lib/notifications.interfaces.mjs +20 -20
  242. package/esm2020/notifications/lib/notifications.module.mjs +30 -30
  243. package/esm2020/notifications/lib/notifications.service.mjs +145 -145
  244. package/esm2020/notifications/public_api.mjs +4 -4
  245. package/esm2020/public_api.mjs +29 -29
  246. package/esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs +4 -4
  247. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -185
  248. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -90
  249. package/esm2020/recaptcha/lib/recaptcha.interface.mjs +3 -3
  250. package/esm2020/recaptcha/lib/recaptcha.module.mjs +27 -27
  251. package/esm2020/recaptcha/public_api.mjs +5 -5
  252. package/esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs +4 -4
  253. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -10
  254. package/esm2020/rxjs/lib/operators/filter-nil.operator.mjs +5 -5
  255. package/esm2020/rxjs/public_api.mjs +3 -3
  256. package/esm2020/storage/bravobit-bb-foundation-storage.mjs +4 -4
  257. package/esm2020/storage/lib/interfaces/attributes.interface.mjs +2 -2
  258. package/esm2020/storage/lib/interfaces/memory.interface.mjs +2 -2
  259. package/esm2020/storage/lib/interfaces/strategy.interface.mjs +2 -2
  260. package/esm2020/storage/lib/storage.service.mjs +109 -109
  261. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -142
  262. package/esm2020/storage/lib/strategies/memory-storage.strategy.mjs +56 -56
  263. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -102
  264. package/esm2020/storage/public_api.mjs +8 -8
  265. package/esm2020/table/bravobit-bb-foundation-table.mjs +4 -4
  266. package/esm2020/table/lib/components/table/table.component.mjs +191 -191
  267. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -11
  268. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -131
  269. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -136
  270. package/esm2020/table/lib/data/datasource.data.mjs +32 -32
  271. package/esm2020/table/lib/data/generic.data.mjs +72 -72
  272. package/esm2020/table/lib/interfaces/datasource.interface.mjs +2 -2
  273. package/esm2020/table/lib/interfaces/table.interfaces.mjs +2 -2
  274. package/esm2020/table/lib/table.module.mjs +42 -42
  275. package/esm2020/table/public_api.mjs +10 -10
  276. package/fesm2015/bravobit-bb-foundation-auth.mjs +930 -926
  277. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  278. package/fesm2015/bravobit-bb-foundation-collections.mjs +423 -423
  279. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  280. package/fesm2015/bravobit-bb-foundation-controls.mjs +216 -216
  281. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  282. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +382 -382
  283. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  284. package/fesm2015/bravobit-bb-foundation-dialog.mjs +542 -542
  285. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  286. package/fesm2015/bravobit-bb-foundation-elements.mjs +1971 -1971
  287. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  288. package/fesm2015/bravobit-bb-foundation-http.mjs +156 -156
  289. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  290. package/fesm2015/bravobit-bb-foundation-localize.mjs +611 -812
  291. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  292. package/fesm2015/bravobit-bb-foundation-notifications.mjs +348 -348
  293. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  294. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +290 -290
  295. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  296. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +7 -7
  297. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  298. package/fesm2015/bravobit-bb-foundation-storage.mjs +401 -401
  299. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  300. package/fesm2015/bravobit-bb-foundation-table.mjs +571 -571
  301. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  302. package/fesm2015/bravobit-bb-foundation.mjs +860 -860
  303. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  304. package/fesm2020/bravobit-bb-foundation-auth.mjs +882 -878
  305. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  306. package/fesm2020/bravobit-bb-foundation-collections.mjs +413 -413
  307. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  308. package/fesm2020/bravobit-bb-foundation-controls.mjs +214 -214
  309. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  310. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +370 -370
  311. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  312. package/fesm2020/bravobit-bb-foundation-dialog.mjs +541 -541
  313. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  314. package/fesm2020/bravobit-bb-foundation-elements.mjs +1928 -1928
  315. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  316. package/fesm2020/bravobit-bb-foundation-http.mjs +148 -148
  317. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  318. package/fesm2020/bravobit-bb-foundation-localize.mjs +590 -798
  319. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  320. package/fesm2020/bravobit-bb-foundation-notifications.mjs +346 -346
  321. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  322. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +280 -280
  323. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  324. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +10 -10
  325. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  326. package/fesm2020/bravobit-bb-foundation-storage.mjs +396 -396
  327. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  328. package/fesm2020/bravobit-bb-foundation-table.mjs +560 -560
  329. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  330. package/fesm2020/bravobit-bb-foundation.mjs +832 -832
  331. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  332. package/http/bravobit-bb-foundation-http.d.ts +5 -5
  333. package/http/lib/classes/http.config.d.ts +9 -9
  334. package/http/lib/classes/http.error.d.ts +7 -7
  335. package/http/lib/http.interfaces.d.ts +12 -12
  336. package/http/lib/http.module.d.ts +15 -15
  337. package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
  338. package/http/lib/interceptors/error.interceptor.d.ts +11 -11
  339. package/http/public_api.d.ts +6 -6
  340. package/lib/core/miscellaneous/regex.d.ts +4 -4
  341. package/lib/core/miscellaneous/validator.d.ts +13 -13
  342. package/lib/core/mixins/can-disable.d.ts +6 -6
  343. package/lib/core/mixins/can-hide-errors.d.ts +6 -6
  344. package/lib/core/mixins/can-load.d.ts +6 -6
  345. package/lib/core/mixins/constructor.d.ts +1 -1
  346. package/lib/core/mixins/has-error.d.ts +6 -6
  347. package/lib/core/mixins/is-focused.d.ts +6 -6
  348. package/lib/core/mixins/is-grouped.d.ts +6 -6
  349. package/lib/core/mixins/is-readonly.d.ts +6 -6
  350. package/lib/core/mixins/is-required.d.ts +6 -6
  351. package/lib/core/services/clipboard.service.d.ts +18 -18
  352. package/lib/core/services/exif.service.d.ts +15 -15
  353. package/lib/core/services/file-loader.service.d.ts +13 -13
  354. package/lib/core/services/image-converter.service.d.ts +21 -21
  355. package/lib/core/services/languages.service.d.ts +16 -16
  356. package/lib/core/services/network.service.d.ts +14 -14
  357. package/lib/core/services/patch.service.d.ts +16 -16
  358. package/lib/core/services/platform.service.d.ts +18 -18
  359. package/lib/core/tokens/accept-language.token.d.ts +2 -2
  360. package/lib/core/tokens/base-url.token.d.ts +2 -2
  361. package/lib/core/tokens/cookie.token.d.ts +2 -2
  362. package/lib/core/tokens/location.token.d.ts +2 -2
  363. package/lib/core/tokens/navigator.token.d.ts +2 -2
  364. package/lib/core/tokens/window.token.d.ts +2 -2
  365. package/localize/bravobit-bb-foundation-localize.d.ts +5 -5
  366. package/localize/lib/functions/date.function.d.ts +5 -5
  367. package/localize/lib/functions/lowercase.function.d.ts +5 -5
  368. package/localize/lib/functions/uppercase.function.d.ts +5 -5
  369. package/localize/lib/handlers/missing.handler.d.ts +6 -6
  370. package/localize/lib/interfaces/config.interfaces.d.ts +18 -9
  371. package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
  372. package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
  373. package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
  374. package/localize/lib/localizations/dutch.localization.d.ts +44 -51
  375. package/localize/lib/localizations/english.localization.d.ts +44 -51
  376. package/localize/lib/localize.dictionary.d.ts +7 -24
  377. package/localize/lib/localize.module.d.ts +17 -18
  378. package/localize/lib/localize.pipe.d.ts +12 -12
  379. package/localize/lib/localize.service.d.ts +40 -52
  380. package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
  381. package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
  382. package/localize/lib/views/localize-template.directive.d.ts +9 -9
  383. package/localize/public_api.d.ts +16 -17
  384. package/notifications/bravobit-bb-foundation-notifications.d.ts +5 -5
  385. package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
  386. package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
  387. package/notifications/lib/notifications.animations.d.ts +1 -1
  388. package/notifications/lib/notifications.injector.d.ts +8 -8
  389. package/notifications/lib/notifications.interfaces.d.ts +49 -49
  390. package/notifications/lib/notifications.module.d.ts +13 -13
  391. package/notifications/lib/notifications.service.d.ts +34 -34
  392. package/notifications/public_api.d.ts +3 -3
  393. package/package.json +6 -6
  394. package/public_api.d.ts +25 -25
  395. package/recaptcha/bravobit-bb-foundation-recaptcha.d.ts +5 -5
  396. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
  397. package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
  398. package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
  399. package/recaptcha/lib/recaptcha.module.d.ts +10 -10
  400. package/recaptcha/public_api.d.ts +4 -4
  401. package/rxjs/bravobit-bb-foundation-rxjs.d.ts +5 -5
  402. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
  403. package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
  404. package/rxjs/public_api.d.ts +2 -2
  405. package/storage/bravobit-bb-foundation-storage.d.ts +5 -5
  406. package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
  407. package/storage/lib/interfaces/memory.interface.d.ts +7 -7
  408. package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
  409. package/storage/lib/storage.service.d.ts +26 -26
  410. package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
  411. package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
  412. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
  413. package/storage/public_api.d.ts +7 -7
  414. package/table/bravobit-bb-foundation-table.d.ts +5 -5
  415. package/table/lib/components/table/table.component.d.ts +56 -56
  416. package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
  417. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
  418. package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
  419. package/table/lib/data/datasource.data.d.ts +14 -14
  420. package/table/lib/data/generic.data.d.ts +23 -23
  421. package/table/lib/interfaces/datasource.interface.d.ts +17 -17
  422. package/table/lib/interfaces/table.interfaces.d.ts +1 -1
  423. package/table/lib/table.module.d.ts +14 -14
  424. package/table/public_api.d.ts +9 -9
  425. package/esm2020/localize/lib/interfaces/dictionary.interfaces.mjs +0 -8
  426. package/localize/lib/interfaces/dictionary.interfaces.d.ts +0 -12
@@ -3,410 +3,410 @@ import { isDevMode, Injectable, Optional, Inject } from '@angular/core';
3
3
  import * as i1 from '@bravobit/bb-foundation';
4
4
  import { COOKIE } from '@bravobit/bb-foundation';
5
5
 
6
- class PolyfillStorage {
7
- constructor(_storage) {
8
- this._storage = _storage;
9
- // State.
10
- this._isSupported = false;
11
- this.encode = (value, attributes) => {
12
- // Make sure the expires attribute is a date and not a number.
13
- const data = { value };
14
- if (typeof attributes.expires === 'number') {
15
- attributes.expires = new Date(attributes.expires);
16
- }
17
- if (attributes.expires) {
18
- data['expires'] = attributes.expires;
19
- }
20
- return JSON.stringify(data);
21
- };
22
- this.testIfSupported = () => {
23
- if (typeof this._storage === 'undefined') {
24
- return false;
25
- }
26
- try {
27
- const x = '__storage_test__';
28
- this._storage.setItem(x, x);
29
- this._storage.removeItem(x);
30
- return true;
31
- }
32
- catch (error) {
33
- return error instanceof DOMException
34
- && (error.code === 22 ||
35
- error.code === 1014 ||
36
- error.name === 'QuotaExceededError' ||
37
- error.name === 'NS_ERROR_DOM_QUOTA_REACHED')
38
- && (this._storage && this._storage.length !== 0);
39
- }
40
- };
41
- // Check if the storage is supported.
42
- this._isSupported = this.testIfSupported();
43
- }
44
- get(token) {
45
- // Validate that the storage is supported.
46
- if (!this._isSupported) {
47
- return undefined;
48
- }
49
- return this.decode(token);
50
- }
51
- set(token, value, attributes) {
52
- // Validate that the storage is supported.
53
- if (!this._isSupported) {
54
- return;
55
- }
56
- // Stringify the data.
57
- const rawData = this.encode(value, { ...attributes });
58
- // Set the raw data in the storage.
59
- this._storage.setItem(token, rawData);
60
- }
61
- remove(token) {
62
- // Validate that the storage is supported.
63
- if (!this._isSupported) {
64
- return;
65
- }
66
- // Remove the item in the storage.
67
- this._storage.removeItem(token);
68
- }
69
- clear() {
70
- // Validate that the storage is supported.
71
- if (!this._isSupported) {
72
- return;
73
- }
74
- // Clear the storage.
75
- this._storage.clear();
76
- }
77
- isSupported() {
78
- return this._isSupported;
79
- }
80
- decode(token) {
81
- // Retrieve the raw data from the storage.
82
- const rawData = this._storage.getItem(token);
83
- // Try to parse the data.
84
- let parsedData = undefined;
85
- // Only parse the data when it is not null.
86
- if (rawData !== null) {
87
- try {
88
- const { value, expires } = JSON.parse(rawData);
89
- if (expires !== undefined) {
90
- const now = Date.now();
91
- const expireDate = new Date(expires).getTime();
92
- if (expireDate <= now) {
93
- this.remove(token);
94
- return undefined;
95
- }
96
- }
97
- parsedData = value;
98
- }
99
- catch {
100
- // We dont do anything with failed parsing.
101
- }
102
- }
103
- // Return the parsed data.
104
- return parsedData;
105
- }
6
+ class PolyfillStorage {
7
+ constructor(_storage) {
8
+ this._storage = _storage;
9
+ // State.
10
+ this._isSupported = false;
11
+ this.encode = (value, attributes) => {
12
+ // Make sure the expires attribute is a date and not a number.
13
+ const data = { value };
14
+ if (typeof attributes.expires === 'number') {
15
+ attributes.expires = new Date(attributes.expires);
16
+ }
17
+ if (attributes.expires) {
18
+ data['expires'] = attributes.expires;
19
+ }
20
+ return JSON.stringify(data);
21
+ };
22
+ this.testIfSupported = () => {
23
+ if (typeof this._storage === 'undefined') {
24
+ return false;
25
+ }
26
+ try {
27
+ const x = '__storage_test__';
28
+ this._storage.setItem(x, x);
29
+ this._storage.removeItem(x);
30
+ return true;
31
+ }
32
+ catch (error) {
33
+ return error instanceof DOMException
34
+ && (error.code === 22 ||
35
+ error.code === 1014 ||
36
+ error.name === 'QuotaExceededError' ||
37
+ error.name === 'NS_ERROR_DOM_QUOTA_REACHED')
38
+ && (this._storage && this._storage.length !== 0);
39
+ }
40
+ };
41
+ // Check if the storage is supported.
42
+ this._isSupported = this.testIfSupported();
43
+ }
44
+ get(token) {
45
+ // Validate that the storage is supported.
46
+ if (!this._isSupported) {
47
+ return undefined;
48
+ }
49
+ return this.decode(token);
50
+ }
51
+ set(token, value, attributes) {
52
+ // Validate that the storage is supported.
53
+ if (!this._isSupported) {
54
+ return;
55
+ }
56
+ // Stringify the data.
57
+ const rawData = this.encode(value, { ...attributes });
58
+ // Set the raw data in the storage.
59
+ this._storage.setItem(token, rawData);
60
+ }
61
+ remove(token) {
62
+ // Validate that the storage is supported.
63
+ if (!this._isSupported) {
64
+ return;
65
+ }
66
+ // Remove the item in the storage.
67
+ this._storage.removeItem(token);
68
+ }
69
+ clear() {
70
+ // Validate that the storage is supported.
71
+ if (!this._isSupported) {
72
+ return;
73
+ }
74
+ // Clear the storage.
75
+ this._storage.clear();
76
+ }
77
+ isSupported() {
78
+ return this._isSupported;
79
+ }
80
+ decode(token) {
81
+ // Retrieve the raw data from the storage.
82
+ const rawData = this._storage.getItem(token);
83
+ // Try to parse the data.
84
+ let parsedData = undefined;
85
+ // Only parse the data when it is not null.
86
+ if (rawData !== null) {
87
+ try {
88
+ const { value, expires } = JSON.parse(rawData);
89
+ if (expires !== undefined) {
90
+ const now = Date.now();
91
+ const expireDate = new Date(expires).getTime();
92
+ if (expireDate <= now) {
93
+ this.remove(token);
94
+ return undefined;
95
+ }
96
+ }
97
+ parsedData = value;
98
+ }
99
+ catch {
100
+ // We dont do anything with failed parsing.
101
+ }
102
+ }
103
+ // Return the parsed data.
104
+ return parsedData;
105
+ }
106
106
  }
107
107
 
108
- class CookieStorage {
109
- constructor(_isBrowser, _cookieString) {
110
- this._isBrowser = _isBrowser;
111
- this._cookieString = _cookieString;
112
- // State.
113
- this._isSupported = false;
114
- this.decode = (cookieString) => {
115
- const result = {};
116
- const cookies = cookieString ? cookieString.split('; ') : [];
117
- const rdecode = /(%[0-9A-Z]{2})+/g;
118
- for (let index = 0; index < cookies.length; index++) {
119
- const parts = cookies[index].split('=');
120
- let cookie = parts.slice(1).join('=');
121
- if (cookie.charAt(0) === '"') {
122
- cookie = cookie.slice(1, -1);
123
- }
124
- try {
125
- const name = parts[0].replace(rdecode, decodeURIComponent);
126
- const value = cookie.replace(rdecode, decodeURIComponent);
127
- result[name] = this.jsonParse(value);
128
- }
129
- catch {
130
- // Ignore cookies with an invalid name/value encoding.
131
- }
132
- }
133
- return result;
134
- };
135
- this.jsonParse = (rawValue) => {
136
- // Try to parse the data.
137
- let parsedValue = undefined;
138
- // Only parse the value when it is not null.
139
- if (rawValue !== undefined) {
140
- try {
141
- parsedValue = JSON.parse(rawValue);
142
- }
143
- catch {
144
- // The string could not be parsed to JSON.
145
- }
146
- }
147
- // Return the parsed value.
148
- return parsedValue;
149
- };
150
- this.stringifyAttribute = (token, value) => {
151
- if (!value) {
152
- return '';
153
- }
154
- const stringified = `; ${token}`;
155
- // Boolean attributes should not have a value.
156
- if (value === true) {
157
- return stringified;
158
- }
159
- return stringified + `= ${value}`;
160
- };
161
- this.testIfSupported = () => {
162
- // We are using an aggressive test here, because we cannot rely on navigator.cookieEnabled
163
- // it does not return the correct value at all times.
164
- const testCookieString = `bbcookietest`;
165
- try {
166
- document.cookie = `${testCookieString}=1`;
167
- const result = document.cookie.indexOf(`${testCookieString}=`) !== -1;
168
- document.cookie = `${testCookieString}=1; expires=Thu, 01-Jan-1970 00:00:01 GMT`;
169
- return result;
170
- }
171
- catch {
172
- return false;
173
- }
174
- };
175
- // Check if the storage is supported.
176
- this._isSupported = this.testIfSupported();
177
- }
178
- get(token) {
179
- // Get all values and pick one out.
180
- const values = this.all();
181
- return values?.[token];
182
- }
183
- set(token, value, attributes) {
184
- // Validate that the storage is supported.
185
- if (!this._isSupported) {
186
- return;
187
- }
188
- // Write a new cookie.
189
- document.cookie = this.encode(token, value, { path: '/', sameSite: 'Lax', ...attributes });
190
- }
191
- remove(token, attributes) {
192
- // Validate that the storage is supported.
193
- if (!this._isSupported) {
194
- return;
195
- }
196
- this.set(token, '', { ...attributes, expires: -1 });
197
- }
198
- clear(attributes) {
199
- // Validate that the storage is supported.
200
- if (!this._isSupported) {
201
- return;
202
- }
203
- const items = this.all();
204
- for (const token in items) {
205
- this.remove(token, attributes);
206
- }
207
- }
208
- isSupported() {
209
- return this._isSupported;
210
- }
211
- all() {
212
- const cookieString = this._isBrowser
213
- ? document?.cookie
214
- : this._cookieString;
215
- return this.decode(cookieString);
216
- }
217
- encode(token, value, attributes) {
218
- // Encode the token.
219
- const encodedToken = encodeURIComponent(token)
220
- .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
221
- .replace(/\(/g, '%28').replace(/\)/g, '%29');
222
- const rawValue = JSON.stringify(value);
223
- // Encode the value.
224
- const encodedValue = encodeURIComponent(rawValue)
225
- .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
226
- // Return the completed encoded string.
227
- return [encodedToken, '=', encodedValue, this.stringifyCookie(attributes)].join('');
228
- }
229
- stringifyCookie(attributes) {
230
- // Make sure the expires attribute is a date and not a number.
231
- if (typeof attributes.expires === 'number') {
232
- const expires = new Date();
233
- expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
234
- attributes.expires = expires;
235
- }
236
- // Force secure when sameSite=None.
237
- if (attributes.sameSite === 'None') {
238
- attributes.secure = true;
239
- console?.warn?.('Cooke was forced with secure flag because sameSite=None');
240
- }
241
- // Stringify all attributes.
242
- return this.stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '')
243
- + this.stringifyAttribute('Domain', attributes.domain)
244
- + this.stringifyAttribute('Path', attributes.path)
245
- + this.stringifyAttribute('Secure', attributes.secure)
246
- + this.stringifyAttribute('SameSite', attributes.sameSite);
247
- }
108
+ class CookieStorage {
109
+ constructor(_isBrowser, _cookieString) {
110
+ this._isBrowser = _isBrowser;
111
+ this._cookieString = _cookieString;
112
+ // State.
113
+ this._isSupported = false;
114
+ this.decode = (cookieString) => {
115
+ const result = {};
116
+ const cookies = cookieString ? cookieString.split('; ') : [];
117
+ const rdecode = /(%[0-9A-Z]{2})+/g;
118
+ for (let index = 0; index < cookies.length; index++) {
119
+ const parts = cookies[index].split('=');
120
+ let cookie = parts.slice(1).join('=');
121
+ if (cookie.charAt(0) === '"') {
122
+ cookie = cookie.slice(1, -1);
123
+ }
124
+ try {
125
+ const name = parts[0].replace(rdecode, decodeURIComponent);
126
+ const value = cookie.replace(rdecode, decodeURIComponent);
127
+ result[name] = this.jsonParse(value);
128
+ }
129
+ catch {
130
+ // Ignore cookies with an invalid name/value encoding.
131
+ }
132
+ }
133
+ return result;
134
+ };
135
+ this.jsonParse = (rawValue) => {
136
+ // Try to parse the data.
137
+ let parsedValue = undefined;
138
+ // Only parse the value when it is not null.
139
+ if (rawValue !== undefined) {
140
+ try {
141
+ parsedValue = JSON.parse(rawValue);
142
+ }
143
+ catch {
144
+ // The string could not be parsed to JSON.
145
+ }
146
+ }
147
+ // Return the parsed value.
148
+ return parsedValue;
149
+ };
150
+ this.stringifyAttribute = (token, value) => {
151
+ if (!value) {
152
+ return '';
153
+ }
154
+ const stringified = `; ${token}`;
155
+ // Boolean attributes should not have a value.
156
+ if (value === true) {
157
+ return stringified;
158
+ }
159
+ return stringified + `= ${value}`;
160
+ };
161
+ this.testIfSupported = () => {
162
+ // We are using an aggressive test here, because we cannot rely on navigator.cookieEnabled
163
+ // it does not return the correct value at all times.
164
+ const testCookieString = `bbcookietest`;
165
+ try {
166
+ document.cookie = `${testCookieString}=1`;
167
+ const result = document.cookie.indexOf(`${testCookieString}=`) !== -1;
168
+ document.cookie = `${testCookieString}=1; expires=Thu, 01-Jan-1970 00:00:01 GMT`;
169
+ return result;
170
+ }
171
+ catch {
172
+ return false;
173
+ }
174
+ };
175
+ // Check if the storage is supported.
176
+ this._isSupported = this.testIfSupported();
177
+ }
178
+ get(token) {
179
+ // Get all values and pick one out.
180
+ const values = this.all();
181
+ return values?.[token];
182
+ }
183
+ set(token, value, attributes) {
184
+ // Validate that the storage is supported.
185
+ if (!this._isSupported) {
186
+ return;
187
+ }
188
+ // Write a new cookie.
189
+ document.cookie = this.encode(token, value, { path: '/', sameSite: 'Lax', ...attributes });
190
+ }
191
+ remove(token, attributes) {
192
+ // Validate that the storage is supported.
193
+ if (!this._isSupported) {
194
+ return;
195
+ }
196
+ this.set(token, '', { ...attributes, expires: -1 });
197
+ }
198
+ clear(attributes) {
199
+ // Validate that the storage is supported.
200
+ if (!this._isSupported) {
201
+ return;
202
+ }
203
+ const items = this.all();
204
+ for (const token in items) {
205
+ this.remove(token, attributes);
206
+ }
207
+ }
208
+ isSupported() {
209
+ return this._isSupported;
210
+ }
211
+ all() {
212
+ const cookieString = this._isBrowser
213
+ ? document?.cookie
214
+ : this._cookieString;
215
+ return this.decode(cookieString);
216
+ }
217
+ encode(token, value, attributes) {
218
+ // Encode the token.
219
+ const encodedToken = encodeURIComponent(token)
220
+ .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
221
+ .replace(/\(/g, '%28').replace(/\)/g, '%29');
222
+ const rawValue = JSON.stringify(value);
223
+ // Encode the value.
224
+ const encodedValue = encodeURIComponent(rawValue)
225
+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
226
+ // Return the completed encoded string.
227
+ return [encodedToken, '=', encodedValue, this.stringifyCookie(attributes)].join('');
228
+ }
229
+ stringifyCookie(attributes) {
230
+ // Make sure the expires attribute is a date and not a number.
231
+ if (typeof attributes.expires === 'number') {
232
+ const expires = new Date();
233
+ expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
234
+ attributes.expires = expires;
235
+ }
236
+ // Force secure when sameSite=None.
237
+ if (attributes.sameSite === 'None') {
238
+ attributes.secure = true;
239
+ console?.warn?.('Cooke was forced with secure flag because sameSite=None');
240
+ }
241
+ // Stringify all attributes.
242
+ return this.stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '')
243
+ + this.stringifyAttribute('Domain', attributes.domain)
244
+ + this.stringifyAttribute('Path', attributes.path)
245
+ + this.stringifyAttribute('Secure', attributes.secure)
246
+ + this.stringifyAttribute('SameSite', attributes.sameSite);
247
+ }
248
248
  }
249
249
 
250
- class MemoryStorage {
251
- constructor() {
252
- // State.
253
- this._storage = {};
254
- this.encode = (value, attributes) => {
255
- const data = { value };
256
- // Make sure the expires is a date object.
257
- if (typeof attributes.expires === 'number') {
258
- attributes.expires = new Date(attributes.expires);
259
- }
260
- // Add the expire date if it was set.
261
- if (attributes.expires) {
262
- data['expires'] = attributes.expires;
263
- }
264
- // Return the encoded data.
265
- return data;
266
- };
267
- }
268
- get(token) {
269
- // Grab the data from the memory storage.
270
- const result = this._storage[token];
271
- // Validate the data exists.
272
- if (result === undefined) {
273
- return undefined;
274
- }
275
- // Extract the value and expire date.
276
- const { value, expires } = result;
277
- // Validate the value is still valid.
278
- if (expires !== undefined) {
279
- const now = Date.now();
280
- const expireDate = new Date(expires).getTime();
281
- // Remove the value if it is expired.
282
- if (expireDate <= now) {
283
- this.remove(token);
284
- return undefined;
285
- }
286
- }
287
- // Return the value.
288
- return value;
289
- }
290
- set(token, value, attributes) {
291
- // Save the encoded value with the attributes.
292
- this._storage[token] = this.encode(value, { ...attributes });
293
- }
294
- remove(token) {
295
- delete this._storage[token];
296
- }
297
- clear() {
298
- this._storage = {};
299
- }
300
- isSupported() {
301
- // The memory storage is always supported.
302
- return true;
303
- }
250
+ class MemoryStorage {
251
+ constructor() {
252
+ // State.
253
+ this._storage = {};
254
+ this.encode = (value, attributes) => {
255
+ const data = { value };
256
+ // Make sure the expires is a date object.
257
+ if (typeof attributes.expires === 'number') {
258
+ attributes.expires = new Date(attributes.expires);
259
+ }
260
+ // Add the expire date if it was set.
261
+ if (attributes.expires) {
262
+ data['expires'] = attributes.expires;
263
+ }
264
+ // Return the encoded data.
265
+ return data;
266
+ };
267
+ }
268
+ get(token) {
269
+ // Grab the data from the memory storage.
270
+ const result = this._storage[token];
271
+ // Validate the data exists.
272
+ if (result === undefined) {
273
+ return undefined;
274
+ }
275
+ // Extract the value and expire date.
276
+ const { value, expires } = result;
277
+ // Validate the value is still valid.
278
+ if (expires !== undefined) {
279
+ const now = Date.now();
280
+ const expireDate = new Date(expires).getTime();
281
+ // Remove the value if it is expired.
282
+ if (expireDate <= now) {
283
+ this.remove(token);
284
+ return undefined;
285
+ }
286
+ }
287
+ // Return the value.
288
+ return value;
289
+ }
290
+ set(token, value, attributes) {
291
+ // Save the encoded value with the attributes.
292
+ this._storage[token] = this.encode(value, { ...attributes });
293
+ }
294
+ remove(token) {
295
+ delete this._storage[token];
296
+ }
297
+ clear() {
298
+ this._storage = {};
299
+ }
300
+ isSupported() {
301
+ // The memory storage is always supported.
302
+ return true;
303
+ }
304
304
  }
305
305
 
306
- class Storage {
307
- constructor(_platform, _cookieString) {
308
- this._platform = _platform;
309
- this._cookieString = _cookieString;
310
- // Current selected storage strategy.
311
- this._current = null;
312
- this.getLocalStorage = () => {
313
- try {
314
- return (typeof window !== 'undefined') ? window?.localStorage : null;
315
- }
316
- catch {
317
- return null;
318
- }
319
- };
320
- this.getSessionStorage = () => {
321
- try {
322
- return (typeof window !== 'undefined') ? window?.sessionStorage : null;
323
- }
324
- catch {
325
- return null;
326
- }
327
- };
328
- this._strategies = {
329
- ["local" /* Local */]: new PolyfillStorage(this.getLocalStorage()),
330
- ["cookie" /* Cookie */]: new CookieStorage(this._platform.isBrowser, this._cookieString),
331
- ["session" /* Session */]: new PolyfillStorage(this.getSessionStorage()),
332
- ["memory" /* Memory */]: new MemoryStorage()
333
- };
334
- this._current = this.findBestStorageStrategy();
335
- }
336
- select(option) {
337
- const items = Array.isArray(option) ? option : [option];
338
- for (const item of items) {
339
- const strategy = this._strategies?.[item] ?? null;
340
- if (strategy && strategy.isSupported()) {
341
- return strategy;
342
- }
343
- }
344
- if (isDevMode()) {
345
- console?.warn?.('[Storage]: Could not select proper storage option, using memory fallback.');
346
- }
347
- // Always return as a fallback the memory storage since it should be always available.
348
- return this._strategies.memory;
349
- }
350
- get local() {
351
- return this._strategies.local;
352
- }
353
- get cookie() {
354
- return this._strategies.cookie;
355
- }
356
- get session() {
357
- return this._strategies.session;
358
- }
359
- get memory() {
360
- return this._strategies.memory;
361
- }
362
- get(token) {
363
- return this._current.get(token);
364
- }
365
- set(token, value, attributes) {
366
- this._current.set(token, value, attributes);
367
- }
368
- remove(token, attributes) {
369
- this._current.remove(token, attributes);
370
- }
371
- clear(attributes) {
372
- this._current.clear(attributes);
373
- }
374
- isSupported() {
375
- return !!this._current;
376
- }
377
- findBestStorageStrategy() {
378
- // Loop through all available strategies to find the best.
379
- for (const type in this._strategies) {
380
- const strategy = this._strategies?.[type];
381
- // The first supported strategy is the best.
382
- if (strategy?.isSupported()) {
383
- return strategy;
384
- }
385
- }
386
- // If no strategy was returned we fallback to memory
387
- // storage since it should be available always.
388
- if (isDevMode()) {
389
- console?.warn?.('[Storage]: Could not select proper storage option, using memory fallback.');
390
- }
391
- return this._strategies.memory;
392
- }
393
- }
394
- Storage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Storage, deps: [{ token: i1.Platform }, { token: COOKIE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
395
- Storage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Storage, providedIn: 'root' });
396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Storage, decorators: [{
397
- type: Injectable,
398
- args: [{
399
- providedIn: 'root'
400
- }]
401
- }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{
402
- type: Optional
403
- }, {
404
- type: Inject,
405
- args: [COOKIE]
306
+ class Storage {
307
+ constructor(_platform, _cookieString) {
308
+ this._platform = _platform;
309
+ this._cookieString = _cookieString;
310
+ // Current selected storage strategy.
311
+ this._current = null;
312
+ this.getLocalStorage = () => {
313
+ try {
314
+ return (typeof window !== 'undefined') ? window?.localStorage : null;
315
+ }
316
+ catch {
317
+ return null;
318
+ }
319
+ };
320
+ this.getSessionStorage = () => {
321
+ try {
322
+ return (typeof window !== 'undefined') ? window?.sessionStorage : null;
323
+ }
324
+ catch {
325
+ return null;
326
+ }
327
+ };
328
+ this._strategies = {
329
+ ["local" /* Local */]: new PolyfillStorage(this.getLocalStorage()),
330
+ ["cookie" /* Cookie */]: new CookieStorage(this._platform.isBrowser, this._cookieString),
331
+ ["session" /* Session */]: new PolyfillStorage(this.getSessionStorage()),
332
+ ["memory" /* Memory */]: new MemoryStorage()
333
+ };
334
+ this._current = this.findBestStorageStrategy();
335
+ }
336
+ select(option) {
337
+ const items = Array.isArray(option) ? option : [option];
338
+ for (const item of items) {
339
+ const strategy = this._strategies?.[item] ?? null;
340
+ if (strategy && strategy.isSupported()) {
341
+ return strategy;
342
+ }
343
+ }
344
+ if (this._platform.isBrowser && isDevMode()) {
345
+ console?.warn?.('[Storage]: Could not select proper storage option, using memory fallback.');
346
+ }
347
+ // Always return as a fallback the memory storage since it should be always available.
348
+ return this._strategies.memory;
349
+ }
350
+ get local() {
351
+ return this._strategies.local;
352
+ }
353
+ get cookie() {
354
+ return this._strategies.cookie;
355
+ }
356
+ get session() {
357
+ return this._strategies.session;
358
+ }
359
+ get memory() {
360
+ return this._strategies.memory;
361
+ }
362
+ get(token) {
363
+ return this._current.get(token);
364
+ }
365
+ set(token, value, attributes) {
366
+ this._current.set(token, value, attributes);
367
+ }
368
+ remove(token, attributes) {
369
+ this._current.remove(token, attributes);
370
+ }
371
+ clear(attributes) {
372
+ this._current.clear(attributes);
373
+ }
374
+ isSupported() {
375
+ return !!this._current;
376
+ }
377
+ findBestStorageStrategy() {
378
+ // Loop through all available strategies to find the best.
379
+ for (const type in this._strategies) {
380
+ const strategy = this._strategies?.[type];
381
+ // The first supported strategy is the best.
382
+ if (strategy?.isSupported()) {
383
+ return strategy;
384
+ }
385
+ }
386
+ // If no strategy was returned we fallback to memory
387
+ // storage since it should be available always.
388
+ if (this._platform.isBrowser && isDevMode()) {
389
+ console?.warn?.('[Storage]: Could not select proper storage option, using memory fallback.');
390
+ }
391
+ return this._strategies.memory;
392
+ }
393
+ }
394
+ Storage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: Storage, deps: [{ token: i1.Platform }, { token: COOKIE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
395
+ Storage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: Storage, providedIn: 'root' });
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: Storage, decorators: [{
397
+ type: Injectable,
398
+ args: [{
399
+ providedIn: 'root'
400
+ }]
401
+ }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{
402
+ type: Optional
403
+ }, {
404
+ type: Inject,
405
+ args: [COOKIE]
406
406
  }] }]; } });
407
407
 
408
- /**
409
- * Generated bundle index. Do not edit.
408
+ /**
409
+ * Generated bundle index. Do not edit.
410
410
  */
411
411
 
412
412
  export { CookieStorage, MemoryStorage, PolyfillStorage, Storage };