@bravobit/bb-foundation 0.15.6 → 0.16.3

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 (388) hide show
  1. package/auth/lib/auth.interceptor.d.ts +1 -1
  2. package/auth/lib/auth.service.d.ts +1 -1
  3. package/auth/package.json +5 -5
  4. package/collections/lib/collection.d.ts +1 -1
  5. package/collections/package.json +5 -5
  6. package/controls/bravobit-bb-foundation-controls.d.ts +5 -0
  7. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -0
  8. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +18 -0
  9. package/controls/lib/checkbox/checkbox.module.d.ts +9 -0
  10. package/controls/lib/controls.module.d.ts +7 -0
  11. package/controls/package.json +10 -0
  12. package/controls/public_api.d.ts +4 -0
  13. package/dashboard/package.json +5 -5
  14. package/dialog/package.json +5 -5
  15. package/elements/package.json +5 -5
  16. package/{esm2015/auth/bravobit-bb-foundation-auth.js → esm2020/auth/bravobit-bb-foundation-auth.mjs} +0 -0
  17. package/esm2020/auth/lib/auth.interceptor.mjs +94 -0
  18. package/{esm2015/auth/lib/auth.module.js → esm2020/auth/lib/auth.module.mjs} +5 -5
  19. package/esm2020/auth/lib/auth.service.mjs +276 -0
  20. package/esm2020/auth/lib/auth.session.mjs +131 -0
  21. package/{esm2015/auth/lib/directives/authenticated.directive.js → esm2020/auth/lib/directives/authenticated.directive.mjs} +5 -6
  22. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -0
  23. package/esm2020/auth/lib/directives/role.directive.mjs +37 -0
  24. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -0
  25. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -0
  26. package/{esm2015/auth/lib/helpers/jwt.helper.js → esm2020/auth/lib/helpers/jwt.helper.mjs} +3 -3
  27. package/{esm2015/auth/lib/helpers/mapper.helper.js → esm2020/auth/lib/helpers/mapper.helper.mjs} +4 -4
  28. package/{esm2015/auth/lib/interfaces/config.interface.js → esm2020/auth/lib/interfaces/config.interface.mjs} +0 -0
  29. package/{esm2015/auth/lib/interfaces/mapper.interface.js → esm2020/auth/lib/interfaces/mapper.interface.mjs} +0 -0
  30. package/{esm2015/auth/lib/interfaces/provider.interface.js → esm2020/auth/lib/interfaces/provider.interface.mjs} +0 -0
  31. package/{esm2015/auth/lib/interfaces/token.interface.js → esm2020/auth/lib/interfaces/token.interface.mjs} +0 -0
  32. package/esm2020/auth/lib/permissions.service.mjs +56 -0
  33. package/esm2020/auth/lib/providers/email.provider.mjs +25 -0
  34. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -0
  35. package/{esm2015/auth/lib/tokens/use-authorization.token.js → esm2020/auth/lib/tokens/use-authorization.token.mjs} +0 -0
  36. package/{esm2015/auth/public_api.js → esm2020/auth/public_api.mjs} +0 -0
  37. package/{esm2015/bravobit-bb-foundation.js → esm2020/bravobit-bb-foundation.mjs} +0 -0
  38. package/{esm2015/collections/bravobit-bb-foundation-collections.js → esm2020/collections/bravobit-bb-foundation-collections.mjs} +0 -0
  39. package/esm2020/collections/lib/collection.mjs +102 -0
  40. package/{esm2015/collections/lib/collections.module.js → esm2020/collections/lib/collections.module.mjs} +5 -5
  41. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -0
  42. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -0
  43. package/{esm2015/collections/lib/components/collections.directive.js → esm2020/collections/lib/components/collections.directive.mjs} +13 -13
  44. package/{esm2015/collections/lib/interfaces/collection.interface.js → esm2020/collections/lib/interfaces/collection.interface.mjs} +0 -0
  45. package/esm2020/collections/lib/providers/api-collection.provider.mjs +71 -0
  46. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -0
  47. package/{esm2015/collections/lib/providers/local-collection.provider.js → esm2020/collections/lib/providers/local-collection.provider.mjs} +0 -0
  48. package/{esm2015/collections/public_api.js → esm2020/collections/public_api.mjs} +0 -0
  49. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +5 -0
  50. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -0
  51. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +48 -0
  52. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -0
  53. package/esm2020/controls/lib/controls.module.mjs +16 -0
  54. package/esm2020/controls/public_api.mjs +5 -0
  55. package/{esm2015/dashboard/bravobit-bb-foundation-dashboard.js → esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs} +0 -0
  56. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -0
  57. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -0
  58. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -0
  59. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -0
  60. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -0
  61. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -0
  62. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -0
  63. package/{esm2015/dashboard/lib/dashboard.module.js → esm2020/dashboard/lib/dashboard.module.mjs} +5 -5
  64. package/{esm2015/dashboard/public_api.js → esm2020/dashboard/public_api.mjs} +0 -0
  65. package/{esm2015/dialog/bravobit-bb-foundation-dialog.js → esm2020/dialog/bravobit-bb-foundation-dialog.mjs} +0 -0
  66. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -0
  67. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -0
  68. package/{esm2015/dialog/lib/dialog-container/dialog-container.component.js → esm2020/dialog/lib/dialog-container/dialog-container.component.mjs} +6 -15
  69. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -0
  70. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -0
  71. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -0
  72. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -0
  73. package/{esm2015/dialog/lib/dialog.injector.js → esm2020/dialog/lib/dialog.injector.mjs} +0 -0
  74. package/{esm2015/dialog/lib/dialog.insertion.js → esm2020/dialog/lib/dialog.insertion.mjs} +4 -4
  75. package/{esm2015/dialog/lib/dialog.interfaces.js → esm2020/dialog/lib/dialog.interfaces.mjs} +0 -0
  76. package/{esm2015/dialog/lib/dialog.module.js → esm2020/dialog/lib/dialog.module.mjs} +5 -9
  77. package/{esm2015/dialog/lib/dialog.ref.js → esm2020/dialog/lib/dialog.ref.mjs} +0 -0
  78. package/{esm2015/dialog/lib/dialog.service.js → esm2020/dialog/lib/dialog.service.mjs} +5 -5
  79. package/{esm2015/dialog/public_api.js → esm2020/dialog/public_api.mjs} +0 -0
  80. package/{esm2015/elements/bravobit-bb-foundation-elements.js → esm2020/elements/bravobit-bb-foundation-elements.mjs} +0 -0
  81. package/esm2020/elements/lib/avatar/avatar.component.mjs +142 -0
  82. package/esm2020/elements/lib/button/button.component.mjs +61 -0
  83. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -0
  84. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -0
  85. package/{esm2015/elements/lib/directives/addon.directive.js → esm2020/elements/lib/directives/addon.directive.mjs} +7 -7
  86. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -0
  87. package/{esm2015/elements/lib/directives/focus-trap.directive.js → esm2020/elements/lib/directives/focus-trap.directive.mjs} +4 -4
  88. package/{esm2015/elements/lib/directives/focus.directive.js → esm2020/elements/lib/directives/focus.directive.mjs} +4 -4
  89. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -0
  90. package/esm2020/elements/lib/directives/input.directive.mjs +136 -0
  91. package/{esm2015/elements/lib/directives/template.directive.js → esm2020/elements/lib/directives/template.directive.mjs} +4 -4
  92. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -0
  93. package/{esm2015/elements/lib/elements.interfaces.js → esm2020/elements/lib/elements.interfaces.mjs} +0 -0
  94. package/{esm2015/elements/lib/elements.module.js → esm2020/elements/lib/elements.module.mjs} +5 -5
  95. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -0
  96. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -0
  97. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -0
  98. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -0
  99. package/esm2020/elements/lib/icon/icon.component.mjs +102 -0
  100. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -0
  101. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -0
  102. package/{esm2015/elements/lib/pipes/file-size.pipe.js → esm2020/elements/lib/pipes/file-size.pipe.mjs} +4 -4
  103. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -0
  104. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -0
  105. package/esm2020/elements/lib/tag/tag.component.mjs +18 -0
  106. package/{esm2015/elements/public_api.js → esm2020/elements/public_api.mjs} +0 -0
  107. package/{esm2015/http/bravobit-bb-foundation-http.js → esm2020/http/bravobit-bb-foundation-http.mjs} +0 -0
  108. package/esm2020/http/lib/classes/http.config.mjs +29 -0
  109. package/esm2020/http/lib/classes/http.error.mjs +20 -0
  110. package/{esm2015/http/lib/http.interfaces.js → esm2020/http/lib/http.interfaces.mjs} +0 -0
  111. package/{esm2015/http/lib/http.module.js → esm2020/http/lib/http.module.mjs} +5 -5
  112. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -0
  113. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -0
  114. package/{esm2015/http/public_api.js → esm2020/http/public_api.mjs} +0 -0
  115. package/{esm2015/lib/core/miscellaneous/regex.js → esm2020/lib/core/miscellaneous/regex.mjs} +0 -0
  116. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -0
  117. package/esm2020/lib/core/mixins/can-disable.mjs +16 -0
  118. package/{esm2015/lib/core/mixins/can-hide-errors.js → esm2020/lib/core/mixins/can-hide-errors.mjs} +2 -2
  119. package/esm2020/lib/core/mixins/can-load.mjs +16 -0
  120. package/{esm2015/lib/core/mixins/constructor.js → esm2020/lib/core/mixins/constructor.mjs} +0 -0
  121. package/esm2020/lib/core/mixins/has-error.mjs +16 -0
  122. package/esm2020/lib/core/mixins/is-focused.mjs +16 -0
  123. package/esm2020/lib/core/mixins/is-grouped.mjs +16 -0
  124. package/esm2020/lib/core/mixins/is-readonly.mjs +16 -0
  125. package/esm2020/lib/core/mixins/is-required.mjs +16 -0
  126. package/esm2020/lib/core/services/clipboard.service.mjs +70 -0
  127. package/esm2020/lib/core/services/exif.service.mjs +163 -0
  128. package/esm2020/lib/core/services/file-loader.service.mjs +87 -0
  129. package/esm2020/lib/core/services/image-converter.service.mjs +123 -0
  130. package/{esm2015/lib/core/services/languages.service.js → esm2020/lib/core/services/languages.service.mjs} +4 -4
  131. package/{esm2015/lib/core/services/network.service.js → esm2020/lib/core/services/network.service.mjs} +5 -6
  132. package/esm2020/lib/core/services/patch.service.mjs +63 -0
  133. package/{esm2015/lib/core/services/platform.service.js → esm2020/lib/core/services/platform.service.mjs} +5 -5
  134. package/{esm2015/lib/core/tokens/accept-language.token.js → esm2020/lib/core/tokens/accept-language.token.mjs} +0 -0
  135. package/{esm2015/lib/core/tokens/base-url.token.js → esm2020/lib/core/tokens/base-url.token.mjs} +0 -0
  136. package/{esm2015/lib/core/tokens/cookie.token.js → esm2020/lib/core/tokens/cookie.token.mjs} +0 -0
  137. package/{esm2015/lib/core/tokens/location.token.js → esm2020/lib/core/tokens/location.token.mjs} +0 -0
  138. package/{esm2015/lib/core/tokens/navigator.token.js → esm2020/lib/core/tokens/navigator.token.mjs} +0 -0
  139. package/{esm2015/lib/core/tokens/window.token.js → esm2020/lib/core/tokens/window.token.mjs} +0 -0
  140. package/{esm2015/localize/bravobit-bb-foundation-localize.js → esm2020/localize/bravobit-bb-foundation-localize.mjs} +0 -0
  141. package/{esm2015/localize/lib/functions/date.function.js → esm2020/localize/lib/functions/date.function.mjs} +0 -0
  142. package/{esm2015/localize/lib/functions/lowercase.function.js → esm2020/localize/lib/functions/lowercase.function.mjs} +0 -0
  143. package/{esm2015/localize/lib/functions/uppercase.function.js → esm2020/localize/lib/functions/uppercase.function.mjs} +0 -0
  144. package/{esm2015/localize/lib/handlers/missing.handler.js → esm2020/localize/lib/handlers/missing.handler.mjs} +0 -0
  145. package/{esm2015/localize/lib/interfaces/config.interfaces.js → esm2020/localize/lib/interfaces/config.interfaces.mjs} +0 -0
  146. package/{esm2015/localize/lib/interfaces/dictionary.interfaces.js → esm2020/localize/lib/interfaces/dictionary.interfaces.mjs} +0 -0
  147. package/{esm2015/localize/lib/interfaces/functions.interfaces.js → esm2020/localize/lib/interfaces/functions.interfaces.mjs} +0 -0
  148. package/{esm2015/localize/lib/interfaces/handlers.interfaces.js → esm2020/localize/lib/interfaces/handlers.interfaces.mjs} +0 -0
  149. package/{esm2015/localize/lib/interfaces/options.interfaces.js → esm2020/localize/lib/interfaces/options.interfaces.mjs} +0 -0
  150. package/{esm2015/localize/lib/localizations/dutch.localization.js → esm2020/localize/lib/localizations/dutch.localization.mjs} +0 -0
  151. package/{esm2015/localize/lib/localizations/english.localization.js → esm2020/localize/lib/localizations/english.localization.mjs} +0 -0
  152. package/esm2020/localize/lib/localize.dictionary.mjs +135 -0
  153. package/{esm2015/localize/lib/localize.module.js → esm2020/localize/lib/localize.module.mjs} +5 -5
  154. package/{esm2015/localize/lib/localize.pipe.js → esm2020/localize/lib/localize.pipe.mjs} +5 -5
  155. package/esm2020/localize/lib/localize.service.mjs +277 -0
  156. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -0
  157. package/{esm2015/localize/lib/views/localize-template-or-string.directive.js → esm2020/localize/lib/views/localize-template-or-string.directive.mjs} +4 -4
  158. package/{esm2015/localize/lib/views/localize-template.directive.js → esm2020/localize/lib/views/localize-template.directive.mjs} +4 -4
  159. package/{esm2015/localize/public_api.js → esm2020/localize/public_api.mjs} +0 -0
  160. package/{esm2015/notifications/bravobit-bb-foundation-notifications.js → esm2020/notifications/bravobit-bb-foundation-notifications.mjs} +0 -0
  161. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -0
  162. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -0
  163. package/{esm2015/notifications/lib/notifications.animations.js → esm2020/notifications/lib/notifications.animations.mjs} +0 -0
  164. package/{esm2015/notifications/lib/notifications.injector.js → esm2020/notifications/lib/notifications.injector.mjs} +0 -0
  165. package/{esm2015/notifications/lib/notifications.interfaces.js → esm2020/notifications/lib/notifications.interfaces.mjs} +0 -0
  166. package/{esm2015/notifications/lib/notifications.module.js → esm2020/notifications/lib/notifications.module.mjs} +6 -7
  167. package/{esm2015/notifications/lib/notifications.service.js → esm2020/notifications/lib/notifications.service.mjs} +5 -5
  168. package/{esm2015/notifications/public_api.js → esm2020/notifications/public_api.mjs} +0 -0
  169. package/{esm2015/public_api.js → esm2020/public_api.mjs} +1 -2
  170. package/{esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js → esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs} +0 -0
  171. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -0
  172. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -0
  173. package/{esm2015/recaptcha/lib/recaptcha.interface.js → esm2020/recaptcha/lib/recaptcha.interface.mjs} +0 -0
  174. package/{esm2015/recaptcha/lib/recaptcha.module.js → esm2020/recaptcha/lib/recaptcha.module.mjs} +5 -5
  175. package/{esm2015/recaptcha/public_api.js → esm2020/recaptcha/public_api.mjs} +0 -0
  176. package/{esm2015/rxjs/bravobit-bb-foundation-rxjs.js → esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs} +0 -0
  177. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -0
  178. package/{esm2015/rxjs/lib/operators/filter-nil.operator.js → esm2020/rxjs/lib/operators/filter-nil.operator.mjs} +0 -0
  179. package/{esm2015/rxjs/public_api.js → esm2020/rxjs/public_api.mjs} +0 -0
  180. package/{esm2015/storage/bravobit-bb-foundation-storage.js → esm2020/storage/bravobit-bb-foundation-storage.mjs} +0 -0
  181. package/{esm2015/storage/lib/interfaces/attributes.interface.js → esm2020/storage/lib/interfaces/attributes.interface.mjs} +0 -0
  182. package/{esm2015/storage/lib/interfaces/memory.interface.js → esm2020/storage/lib/interfaces/memory.interface.mjs} +0 -0
  183. package/{esm2015/storage/lib/interfaces/strategy.interface.js → esm2020/storage/lib/interfaces/strategy.interface.mjs} +0 -0
  184. package/esm2020/storage/lib/storage.service.mjs +109 -0
  185. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -0
  186. package/{esm2015/storage/lib/strategies/memory-storage.strategy.js → esm2020/storage/lib/strategies/memory-storage.strategy.mjs} +2 -2
  187. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -0
  188. package/{esm2015/storage/public_api.js → esm2020/storage/public_api.mjs} +0 -0
  189. package/{esm2015/table/bravobit-bb-foundation-table.js → esm2020/table/bravobit-bb-foundation-table.mjs} +0 -0
  190. package/esm2020/table/lib/components/table/table.component.mjs +191 -0
  191. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -0
  192. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -0
  193. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -0
  194. package/esm2020/table/lib/data/datasource.data.mjs +32 -0
  195. package/esm2020/table/lib/data/generic.data.mjs +72 -0
  196. package/{esm2015/table/lib/interfaces/datasource.interface.js → esm2020/table/lib/interfaces/datasource.interface.mjs} +0 -0
  197. package/{esm2015/table/lib/interfaces/table.interfaces.js → esm2020/table/lib/interfaces/table.interfaces.mjs} +0 -0
  198. package/{esm2015/table/lib/table.module.js → esm2020/table/lib/table.module.mjs} +5 -5
  199. package/{esm2015/table/public_api.js → esm2020/table/public_api.mjs} +0 -0
  200. package/fesm2015/{bravobit-bb-foundation-auth.js → bravobit-bb-foundation-auth.mjs} +79 -68
  201. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -0
  202. package/fesm2015/{bravobit-bb-foundation-collections.js → bravobit-bb-foundation-collections.mjs} +45 -57
  203. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -0
  204. package/fesm2015/bravobit-bb-foundation-controls.mjs +235 -0
  205. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -0
  206. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +416 -0
  207. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  208. package/fesm2015/{bravobit-bb-foundation-dialog.js → bravobit-bb-foundation-dialog.mjs} +45 -106
  209. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -0
  210. package/fesm2015/{bravobit-bb-foundation-elements.js → bravobit-bb-foundation-elements.mjs} +195 -303
  211. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -0
  212. package/fesm2015/{bravobit-bb-foundation-http.js → bravobit-bb-foundation-http.mjs} +18 -16
  213. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -0
  214. package/fesm2015/{bravobit-bb-foundation-localize.js → bravobit-bb-foundation-localize.mjs} +63 -69
  215. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -0
  216. package/fesm2015/bravobit-bb-foundation-notifications.mjs +377 -0
  217. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -0
  218. package/fesm2015/{bravobit-bb-foundation-recaptcha.js → bravobit-bb-foundation-recaptcha.mjs} +40 -47
  219. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  220. package/fesm2015/{bravobit-bb-foundation-rxjs.js → bravobit-bb-foundation-rxjs.mjs} +1 -1
  221. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  222. package/fesm2015/{bravobit-bb-foundation-storage.js → bravobit-bb-foundation-storage.mjs} +12 -10
  223. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -0
  224. package/fesm2015/bravobit-bb-foundation-table.mjs +603 -0
  225. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -0
  226. package/fesm2015/{bravobit-bb-foundation.js → bravobit-bb-foundation.mjs} +76 -69
  227. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -0
  228. package/fesm2020/bravobit-bb-foundation-auth.mjs +928 -0
  229. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -0
  230. package/fesm2020/bravobit-bb-foundation-collections.mjs +441 -0
  231. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -0
  232. package/fesm2020/bravobit-bb-foundation-controls.mjs +233 -0
  233. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -0
  234. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +404 -0
  235. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  236. package/fesm2020/bravobit-bb-foundation-dialog.mjs +584 -0
  237. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -0
  238. package/fesm2020/bravobit-bb-foundation-elements.mjs +1994 -0
  239. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -0
  240. package/fesm2020/bravobit-bb-foundation-http.mjs +168 -0
  241. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -0
  242. package/fesm2020/bravobit-bb-foundation-localize.mjs +832 -0
  243. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -0
  244. package/fesm2020/bravobit-bb-foundation-notifications.mjs +375 -0
  245. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -0
  246. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +300 -0
  247. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  248. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +21 -0
  249. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  250. package/fesm2020/bravobit-bb-foundation-storage.mjs +413 -0
  251. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -0
  252. package/fesm2020/bravobit-bb-foundation-table.mjs +592 -0
  253. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -0
  254. package/fesm2020/bravobit-bb-foundation.mjs +892 -0
  255. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -0
  256. package/http/package.json +5 -5
  257. package/localize/package.json +5 -5
  258. package/notifications/package.json +5 -5
  259. package/package.json +126 -8
  260. package/public_api.d.ts +0 -1
  261. package/recaptcha/package.json +5 -5
  262. package/rxjs/package.json +5 -5
  263. package/storage/package.json +5 -5
  264. package/table/package.json +5 -5
  265. package/bundles/bravobit-bb-foundation-auth.umd.js +0 -1483
  266. package/bundles/bravobit-bb-foundation-auth.umd.js.map +0 -1
  267. package/bundles/bravobit-bb-foundation-collections.umd.js +0 -868
  268. package/bundles/bravobit-bb-foundation-collections.umd.js.map +0 -1
  269. package/bundles/bravobit-bb-foundation-dashboard.umd.js +0 -876
  270. package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +0 -1
  271. package/bundles/bravobit-bb-foundation-dialog.umd.js +0 -716
  272. package/bundles/bravobit-bb-foundation-dialog.umd.js.map +0 -1
  273. package/bundles/bravobit-bb-foundation-elements.umd.js +0 -2768
  274. package/bundles/bravobit-bb-foundation-elements.umd.js.map +0 -1
  275. package/bundles/bravobit-bb-foundation-http.umd.js +0 -535
  276. package/bundles/bravobit-bb-foundation-http.umd.js.map +0 -1
  277. package/bundles/bravobit-bb-foundation-localize.umd.js +0 -1292
  278. package/bundles/bravobit-bb-foundation-localize.umd.js.map +0 -1
  279. package/bundles/bravobit-bb-foundation-notifications.umd.js +0 -794
  280. package/bundles/bravobit-bb-foundation-notifications.umd.js.map +0 -1
  281. package/bundles/bravobit-bb-foundation-recaptcha.umd.js +0 -683
  282. package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +0 -1
  283. package/bundles/bravobit-bb-foundation-rxjs.umd.js +0 -29
  284. package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +0 -1
  285. package/bundles/bravobit-bb-foundation-storage.umd.js +0 -799
  286. package/bundles/bravobit-bb-foundation-storage.umd.js.map +0 -1
  287. package/bundles/bravobit-bb-foundation-table.umd.js +0 -1084
  288. package/bundles/bravobit-bb-foundation-table.umd.js.map +0 -1
  289. package/bundles/bravobit-bb-foundation.umd.js +0 -1440
  290. package/bundles/bravobit-bb-foundation.umd.js.map +0 -1
  291. package/esm2015/auth/lib/auth.interceptor.js +0 -95
  292. package/esm2015/auth/lib/auth.service.js +0 -299
  293. package/esm2015/auth/lib/auth.session.js +0 -136
  294. package/esm2015/auth/lib/directives/permission.directive.js +0 -81
  295. package/esm2015/auth/lib/directives/role.directive.js +0 -38
  296. package/esm2015/auth/lib/guards/anonymous.guard.js +0 -35
  297. package/esm2015/auth/lib/guards/authenticated.guard.js +0 -36
  298. package/esm2015/auth/lib/permissions.service.js +0 -58
  299. package/esm2015/auth/lib/providers/email.provider.js +0 -26
  300. package/esm2015/auth/lib/providers/verify.provider.js +0 -20
  301. package/esm2015/collections/lib/collection.js +0 -104
  302. package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +0 -136
  303. package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +0 -39
  304. package/esm2015/collections/lib/providers/api-collection.provider.js +0 -69
  305. package/esm2015/collections/lib/providers/collection.provider.js +0 -14
  306. package/esm2015/dashboard/lib/dashboard/dashboard.component.js +0 -64
  307. package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +0 -41
  308. package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +0 -39
  309. package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +0 -38
  310. package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +0 -83
  311. package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +0 -110
  312. package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +0 -71
  313. package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +0 -20
  314. package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +0 -45
  315. package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +0 -33
  316. package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +0 -19
  317. package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +0 -54
  318. package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +0 -143
  319. package/esm2015/elements/lib/avatar/avatar.component.js +0 -151
  320. package/esm2015/elements/lib/button/button.component.js +0 -79
  321. package/esm2015/elements/lib/checkbox/checkbox.component.js +0 -83
  322. package/esm2015/elements/lib/date-picker/date-picker.component.js +0 -322
  323. package/esm2015/elements/lib/directives/autosize.directive.js +0 -74
  324. package/esm2015/elements/lib/directives/form-submit.directive.js +0 -53
  325. package/esm2015/elements/lib/directives/input.directive.js +0 -139
  326. package/esm2015/elements/lib/dropdown/dropdown.component.js +0 -111
  327. package/esm2015/elements/lib/file-picker/file-picker.component.js +0 -247
  328. package/esm2015/elements/lib/form-control/form-control.component.js +0 -58
  329. package/esm2015/elements/lib/form-error/form-error.component.js +0 -116
  330. package/esm2015/elements/lib/form-group/form-group.component.js +0 -27
  331. package/esm2015/elements/lib/icon/icon.component.js +0 -110
  332. package/esm2015/elements/lib/image-picker/image-picker.component.js +0 -119
  333. package/esm2015/elements/lib/pipes/file-image.pipe.js +0 -45
  334. package/esm2015/elements/lib/pipes/relative-time.pipe.js +0 -96
  335. package/esm2015/elements/lib/spinner/spinner.component.js +0 -34
  336. package/esm2015/elements/lib/tag/tag.component.js +0 -26
  337. package/esm2015/http/lib/classes/http.config.js +0 -31
  338. package/esm2015/http/lib/classes/http.error.js +0 -21
  339. package/esm2015/http/lib/interceptors/base-url.interceptor.js +0 -52
  340. package/esm2015/http/lib/interceptors/error.interceptor.js +0 -33
  341. package/esm2015/lib/core/coercions/boolean-coercion.js +0 -4
  342. package/esm2015/lib/core/miscellaneous/validator.js +0 -86
  343. package/esm2015/lib/core/mixins/can-disable.js +0 -16
  344. package/esm2015/lib/core/mixins/can-load.js +0 -16
  345. package/esm2015/lib/core/mixins/has-error.js +0 -16
  346. package/esm2015/lib/core/mixins/is-focused.js +0 -16
  347. package/esm2015/lib/core/mixins/is-grouped.js +0 -16
  348. package/esm2015/lib/core/mixins/is-readonly.js +0 -16
  349. package/esm2015/lib/core/mixins/is-required.js +0 -16
  350. package/esm2015/lib/core/services/clipboard.service.js +0 -72
  351. package/esm2015/lib/core/services/exif.service.js +0 -168
  352. package/esm2015/lib/core/services/file-loader.service.js +0 -90
  353. package/esm2015/lib/core/services/image-converter.service.js +0 -130
  354. package/esm2015/lib/core/services/patch.service.js +0 -65
  355. package/esm2015/localize/lib/localize.dictionary.js +0 -137
  356. package/esm2015/localize/lib/localize.service.js +0 -282
  357. package/esm2015/localize/lib/views/localize-string/localize-string.component.js +0 -99
  358. package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +0 -108
  359. package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +0 -56
  360. package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +0 -199
  361. package/esm2015/recaptcha/lib/recaptcha-loader.service.js +0 -93
  362. package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +0 -7
  363. package/esm2015/storage/lib/storage.service.js +0 -111
  364. package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +0 -143
  365. package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +0 -102
  366. package/esm2015/table/lib/components/table/table.component.js +0 -204
  367. package/esm2015/table/lib/components/table-cell/table-cell.component.js +0 -19
  368. package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +0 -143
  369. package/esm2015/table/lib/components/table-pager/table-pager.component.js +0 -146
  370. package/esm2015/table/lib/data/datasource.data.js +0 -32
  371. package/esm2015/table/lib/data/generic.data.js +0 -73
  372. package/fesm2015/bravobit-bb-foundation-auth.js.map +0 -1
  373. package/fesm2015/bravobit-bb-foundation-collections.js.map +0 -1
  374. package/fesm2015/bravobit-bb-foundation-dashboard.js +0 -468
  375. package/fesm2015/bravobit-bb-foundation-dashboard.js.map +0 -1
  376. package/fesm2015/bravobit-bb-foundation-dialog.js.map +0 -1
  377. package/fesm2015/bravobit-bb-foundation-elements.js.map +0 -1
  378. package/fesm2015/bravobit-bb-foundation-http.js.map +0 -1
  379. package/fesm2015/bravobit-bb-foundation-localize.js.map +0 -1
  380. package/fesm2015/bravobit-bb-foundation-notifications.js +0 -393
  381. package/fesm2015/bravobit-bb-foundation-notifications.js.map +0 -1
  382. package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +0 -1
  383. package/fesm2015/bravobit-bb-foundation-rxjs.js.map +0 -1
  384. package/fesm2015/bravobit-bb-foundation-storage.js.map +0 -1
  385. package/fesm2015/bravobit-bb-foundation-table.js +0 -636
  386. package/fesm2015/bravobit-bb-foundation-table.js.map +0 -1
  387. package/fesm2015/bravobit-bb-foundation.js.map +0 -1
  388. package/lib/core/coercions/boolean-coercion.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"bravobit-bb-foundation-auth.umd.js","sources":["../../../projects/bb-foundation/auth/src/lib/interfaces/config.interface.ts","../../../projects/bb-foundation/auth/src/lib/tokens/use-authorization.token.ts","../../../projects/bb-foundation/auth/src/lib/helpers/jwt.helper.ts","../../../projects/bb-foundation/auth/src/lib/helpers/mapper.helper.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/bb-foundation/auth/src/lib/providers/verify.provider.ts","../../../projects/bb-foundation/auth/src/lib/providers/email.provider.ts","../../../projects/bb-foundation/auth/src/lib/auth.session.ts","../../../projects/bb-foundation/auth/src/lib/auth.service.ts","../../../projects/bb-foundation/auth/src/lib/directives/authenticated.directive.ts","../../../projects/bb-foundation/auth/src/lib/directives/role.directive.ts","../../../projects/bb-foundation/auth/src/lib/permissions.service.ts","../../../projects/bb-foundation/auth/src/lib/directives/permission.directive.ts","../../../projects/bb-foundation/auth/src/lib/guards/anonymous.guard.ts","../../../projects/bb-foundation/auth/src/lib/guards/authenticated.guard.ts","../../../projects/bb-foundation/auth/src/lib/auth.interceptor.ts","../../../projects/bb-foundation/auth/src/lib/auth.module.ts","../../../projects/bb-foundation/auth/src/bravobit-bb-foundation-auth.ts"],"sourcesContent":["export class AuthConfig {\n scheme?: string;\n redirectUrl?: string;\n loggedInUrl?: string;\n applicationId?: string;\n bootstrap?: boolean;\n autoRefresh?: boolean;\n setRedirectOnFailedAuth?: boolean;\n permissions?: {\n [permission: string]: string[];\n };\n}\n","import {HttpContextToken} from '@angular/common/http';\n\nexport const USE_AUTHORIZATION = new HttpContextToken(() => true);","import {AuthToken} from '../interfaces/token.interface';\n\nexport class JwtHelper {\n\n decode(token: string) {\n try {\n if (token === null || token === undefined) {\n return null;\n }\n\n const json = JSON.parse(\n this.urlDecode(token.split('.')[1])\n );\n\n return this.parse(json);\n } catch {\n return null;\n }\n }\n\n private urlDecode(token: string | null) {\n const value = token || '';\n let output = value\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw 'Illegal base64url string!';\n }\n\n try {\n return this.baseDecodeUnicode(output);\n } catch {\n return atob(output);\n }\n }\n\n private baseDecodeUnicode = (value: string) => {\n return decodeURIComponent(atob(value).replace(/(.)/g, (_, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = '0' + code;\n }\n return '%' + code;\n }));\n };\n\n private parse = (data: object) => {\n return {\n id: data['iss'] || null,\n type: data['typ'] || null,\n audience: data['aud'] || null,\n issuer: data['iss'] || null,\n subject: data['sub'] || null,\n role: data['role'] || null,\n notValidBefore: this.parseDate(data['nbf']),\n expiresAt: this.parseDate(data['exp']),\n issuedAt: this.parseDate(data['iat'])\n } as AuthToken;\n };\n\n private parseDate = (epochInSeconds: number) => {\n if (!epochInSeconds || epochInSeconds <= 0) {\n return null;\n }\n\n return new Date(epochInSeconds * 1000);\n };\n\n}\n","import {AuthMapperProtocol} from '../interfaces/mapper.interface';\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class AuthMapper implements AuthMapperProtocol {\n\n // Routes.\n me: string = 'auth/me';\n register: string = 'auth/register';\n resendCode: string = 'auth/resend';\n logout: string = 'auth/logout';\n refresh: string = 'auth/refresh';\n requestPassword: string = 'auth/reset';\n resetPassword: string = 'auth/reset-password';\n\n role(data: any) {\n return (data && data.role) || null;\n }\n\n toRegister(data: any) {\n // Retrieve the params.\n const {token, refresh_token, user} = data;\n\n // Map the data to the correct format.\n return {accessToken: token, refreshToken: refresh_token, user: user};\n }\n\n toRefresh(data: any) {\n // Retrieve the params.\n const {token, refresh_token} = data;\n\n // Map the data to the correct format.\n return {accessToken: token, refreshToken: refresh_token};\n }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {AuthProvider} from '../interfaces/provider.interface';\nimport {HttpClient} from '@angular/common/http';\n\nexport class AuthVerifyProvider implements AuthProvider {\n\n constructor(private _code: string,\n private _verifyToken: string,\n private _endpoint: string) {\n }\n\n async authenticate(httpClient: HttpClient) {\n // Execute API call.\n const {token, refresh_token, user} = await httpClient.post<any>(this._endpoint, {\n token: this._code,\n verify_token: this._verifyToken\n }).toPromise();\n\n // Map the data to the correct format.\n return {accessToken: token, refreshToken: refresh_token, user: user};\n }\n\n}\n","import {AuthProvider} from '../interfaces/provider.interface';\nimport {HttpClient} from '@angular/common/http';\n\nexport class AuthEmailProvider implements AuthProvider {\n\n constructor(private _email: string,\n private _password: string,\n private _endpoint: string) {\n }\n\n async authenticate(httpClient: HttpClient) {\n // Execute API call.\n const {token, refresh_token, user, provider, verify_token} = await httpClient.post<any>(this._endpoint, {\n email: this._email,\n password: this._password\n }).toPromise();\n\n // Map the data to the correct format.\n return {\n accessToken: token,\n refreshToken: refresh_token,\n user: user,\n provider: provider,\n verifyToken: verify_token\n };\n }\n\n}\n","import {StorageStrategy} from '@bravobit/bb-foundation/storage';\nimport {AuthToken} from './interfaces/token.interface';\nimport {JwtHelper} from './helpers/jwt.helper';\nimport {shareReplay} from 'rxjs/operators';\nimport {BehaviorSubject} from 'rxjs';\n\nexport class AuthSession {\n\n // Readonly data.\n private readonly _jwt = new JwtHelper();\n private readonly _storage: StorageStrategy | null;\n private readonly _accessTokenStorageKey: string;\n private readonly _refreshTokenStorageKey: string;\n private readonly _userStorageKey: string;\n\n // Token strings.\n private _accessTokenString: string | null = null;\n private _refreshTokenString: string | null = null;\n\n // Token payloads.\n private _accessTokenPayload: AuthToken | null = null;\n private _refreshTokenPayload: AuthToken | null = null;\n\n // Private user data.\n private _user$ = new BehaviorSubject<any | null>(null);\n\n // Public user data.\n user = this._user$.pipe(\n shareReplay(1)\n );\n\n constructor(options?: { id?: string, storage?: StorageStrategy }) {\n const applicationId = options?.id ?? 'ng';\n\n // Setting up the readonly storage keys.\n this._accessTokenStorageKey = this.generateKey(applicationId, 'au_act');\n this._refreshTokenStorageKey = this.generateKey(applicationId, 'au_rft');\n this._userStorageKey = this.generateKey(applicationId, 'au_usr');\n\n // Setting up the storage.\n this._storage = options?.storage ?? null;\n\n // Init methods.\n this.restoreFromStorage();\n }\n\n get accessToken() {\n return this.isTokenValid(this._accessTokenPayload)\n ? this._accessTokenString\n : null;\n }\n\n get refreshToken() {\n return this.isTokenValid(this.refreshTokenPayload)\n ? this._refreshTokenString\n : null;\n }\n\n get accessTokenPayload() {\n return this._accessTokenPayload ?? null;\n }\n\n get refreshTokenPayload() {\n return this._refreshTokenPayload ?? null;\n }\n\n authenticated() {\n return this.isTokenValid(this._accessTokenPayload) || this.isTokenValid(this._refreshTokenPayload);\n }\n\n setTokens(accessToken: string | null, refreshToken: string | null) {\n this.setAccessToken(accessToken);\n this.setRefreshToken(refreshToken);\n this.syncTokensInStorage();\n }\n\n setUser(user: unknown) {\n this._user$.next(user ?? null);\n this.syncUserInStorage();\n }\n\n clear() {\n this.setTokens(null, null);\n this.setUser(null);\n }\n\n private restoreFromStorage() {\n if (!this._storage) {\n return;\n }\n\n // Set the access token.\n const accessToken = this._storage.get<string>(this._accessTokenStorageKey);\n this.setAccessToken(accessToken);\n\n // Set the refresh token.\n const refreshToken = this._storage.get<string>(this._refreshTokenStorageKey);\n this.setRefreshToken(refreshToken);\n\n // Set the user if we have any correct token payloads.\n if (this._accessTokenPayload || this._refreshTokenPayload) {\n const user = this._storage.get<unknown>(this._userStorageKey);\n this._user$.next(user ?? null); // Note: just settings here instead of setUser() because of syncing to the storage.\n }\n }\n\n private syncTokensInStorage() {\n if (!this._storage) {\n return;\n }\n\n // Set the access token if completely valid.\n if (!!this.accessToken) {\n this._storage.set<string>(this._accessTokenStorageKey, this._accessTokenString, {\n expires: this._accessTokenPayload?.expiresAt\n });\n } else {\n this._storage.remove(this._accessTokenStorageKey);\n }\n\n // Set the refresh token if completely valid.\n if (!!this.refreshToken) {\n this._storage.set<string>(this._refreshTokenStorageKey, this._refreshTokenString, {\n expires: this._refreshTokenPayload?.expiresAt\n });\n } else {\n this._storage.remove(this._refreshTokenStorageKey);\n }\n }\n\n private syncUserInStorage() {\n if (!this._storage) {\n return;\n }\n\n const user = this._user$.getValue();\n if (!user) {\n return this._storage.remove(this._userStorageKey);\n }\n\n const date = new Date();\n date.setFullYear(date.getFullYear() + 1);\n this._storage.set<unknown>(this._userStorageKey, user, {\n expires: new Date(date.getTime())\n });\n }\n\n private setAccessToken(value: string | null) {\n this._accessTokenString = value ?? null;\n this._accessTokenPayload = this._jwt.decode(this._accessTokenString);\n }\n\n private setRefreshToken(value: string | null) {\n this._refreshTokenString = value ?? null;\n this._refreshTokenPayload = this._jwt.decode(this._refreshTokenString);\n }\n\n private generateKey = (applicationId: string, key: string) => {\n return [applicationId, key].join('_');\n };\n\n private isTokenValid = (token: AuthToken) => {\n if (!token) {\n return false;\n }\n\n return token?.expiresAt?.getTime() > Date.now();\n };\n\n}\n","import {HttpClient, HttpContext, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {AuthProvider, AuthSignInResponse} from './interfaces/provider.interface';\nimport {makeStateKey, StateKey, TransferState} from '@angular/platform-browser';\nimport {Storage, StorageOption} from '@bravobit/bb-foundation/storage';\nimport {USE_AUTHORIZATION} from './tokens/use-authorization.token';\nimport {AuthVerifyProvider} from './providers/verify.provider';\nimport {Injectable, Injector, Optional} from '@angular/core';\nimport {AuthEmailProvider} from './providers/email.provider';\nimport {AuthConfig} from './interfaces/config.interface';\nimport {HttpConfig} from '@bravobit/bb-foundation/http';\nimport {AuthMapper} from './helpers/mapper.helper';\nimport {Platform} from '@bravobit/bb-foundation';\nimport {map, take, tap} from 'rxjs/operators';\nimport {AuthSession} from './auth.session';\nimport {Router} from '@angular/router';\nimport {Observable, of} from 'rxjs';\n\n@Injectable()\nexport class Auth {\n\n // Readonly data.\n private readonly _authStateKey: StateKey<any | null> = makeStateKey(`bbAuthStateKey`);\n private readonly _httpAlias: string | null = this._httpConfig?.defaultAlias ?? null;\n\n readonly session: AuthSession;\n readonly user: Observable<any | null>;\n\n private _refreshHandler: number | null = null;\n\n constructor(private _storage: Storage,\n private _mapper: AuthMapper,\n private _injector: Injector,\n private _platform: Platform,\n private _httpClient: HttpClient,\n @Optional() private _config?: AuthConfig,\n @Optional() private _state?: TransferState,\n @Optional() private _httpConfig?: HttpConfig) {\n // Starting the new session.\n this.session = new AuthSession({\n id: this._config?.applicationId,\n storage: this._storage.select([StorageOption.Cookie, StorageOption.Local])\n });\n this.user = this.session.user;\n }\n\n initialize() {\n return async () => {\n // Check if the app should bootstrap the authentication.\n const shouldBootstrap = this._config?.bootstrap ?? true;\n if (!shouldBootstrap) {\n return this.handleAutoRefreshing();\n }\n\n // Only retrieve from the server when we are actually authenticated.\n if (!this.session.authenticated()) {\n return;\n }\n\n // Get the key from the server state.\n if (this._state && this._state?.hasKey(this._authStateKey)) {\n const user = this._state?.get(this._authStateKey, null) ?? null;\n return this.session.setUser(user);\n }\n\n // Try to fetch the user from the server.\n const user = await this.me().pipe(\n take(1)\n ).toPromise();\n\n // Set the state if exists.\n if (this._state) {\n this._state?.set<any>(this._authStateKey, user ?? null);\n }\n\n // Save the user in the storage and handle auto refreshing.\n this.session.setUser(user);\n this.handleAutoRefreshing();\n };\n }\n\n me<T = any>() {\n const url = this.getUrl('auth/me');\n return this._httpClient.get<T>(url);\n }\n\n async signIn(provider: AuthProvider, as?: string[]) {\n const {accessToken, refreshToken, user, ...result} = await provider.authenticate(this._httpClient);\n\n // Check if the role matches.\n if (as && !as.includes(this._mapper.role(user))) {\n throw new Error('Invalid role.');\n }\n\n // Validate if the provider is one of the available\n // providers then return the user object and the provider.\n const apiProvider = result?.provider ?? null;\n const apiVerifyToken = result?.verifyToken ?? null;\n const availableProviders = ['email', 'sms', 'totp'];\n if (availableProviders.includes(apiProvider)) {\n return <AuthSignInResponse>{user, provider: apiProvider, verifyToken: apiVerifyToken};\n }\n\n // Set the tokens in storage.\n this.setTokens(accessToken, refreshToken);\n\n // Set the user in storage.\n this.session.setUser(user);\n\n // Return the user.\n return <AuthSignInResponse>{user};\n }\n\n async signInWithEmail(email: string, password: string, as?: string[]) {\n const url = this.getUrl('auth/login');\n return this.signIn(new AuthEmailProvider(email, password, url), as);\n }\n\n async signInWithVerifyCode(code: string, verifyToken: string) {\n const url = this.getUrl('auth/verify');\n return this.signIn(new AuthVerifyProvider(code, verifyToken, url));\n }\n\n async resendVerifyCode(verifyToken: string) {\n const url = this.getUrl('auth/resend');\n return await this._httpClient.post(url, {\n verify_token: verifyToken\n }).toPromise();\n }\n\n async register<T = any>(data: any, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n }) {\n // Execute API call.\n const url = this.getUrl('auth/register');\n const result = await this._httpClient\n .post(url, data, options)\n .toPromise();\n\n // Map to the correct response.\n const {accessToken, refreshToken, user} = this._mapper.toRegister(result);\n\n // Set the tokens in storage.\n this.setTokens(accessToken, refreshToken);\n\n // Set the user in storage.\n this.session.setUser(user);\n\n // Return the user.\n return <T>user;\n }\n\n logout() {\n // If we don't have a refresh token just clear the session.\n // Note: We do this because else we try to invalidate\n // an \"undefined\" refresh token.\n const refreshToken = this.session.refreshToken;\n if (!refreshToken) {\n return this.session.clear();\n }\n\n // We do have a refresh token, so try to\n // invalidate it in the backend.\n try {\n const url = this.getUrl('auth/logout');\n this._httpClient.get(url, {\n headers: {Authorization: refreshToken}\n }).toPromise().then(_ => _);\n } catch {\n // Do nothing because the tokens will be deleted anyways from the session.\n }\n\n // Delete the tokens from the session.\n return this.session.clear();\n }\n\n refresh() {\n // If the refresh token does\n // not exist just return an observable of null.\n const refreshToken = this.session.refreshToken;\n if (!refreshToken) {\n return of<string>(null);\n }\n\n // Perform the refresh call.\n const scheme = this._config?.scheme ?? 'Bearer';\n\n const url = this.getUrl('auth/refresh');\n const context = new HttpContext()\n .set(USE_AUTHORIZATION, false);\n\n return this._httpClient.get(url, {\n headers: {Authorization: `${scheme} ${refreshToken}`},\n context: context\n }).pipe(\n map(data => this._mapper.toRefresh(data)),\n tap(({accessToken, refreshToken}) => this.setTokens(accessToken, refreshToken)),\n map(({accessToken}) => accessToken)\n );\n }\n\n async requestPassword(email: string, extraParams: { [key: string]: any } = {}) {\n const url = this.getUrl('auth/reset');\n return await this._httpClient\n .post(url, {...extraParams, email})\n .toPromise();\n }\n\n async resetPassword(token: string, newPassword: string, extraParams: { [key: string]: any } = {}) {\n const url = this.getUrl('auth/reset-password');\n return await this._httpClient\n .post(url, {...extraParams, token, password: newPassword})\n .toPromise();\n }\n\n guard(type: string, redirectUrl?: string) {\n let newUrl: string = null;\n\n // Get the correct new url.\n switch (type) {\n case 'authenticated':\n newUrl = this._config?.loggedInUrl ?? null;\n break;\n case 'unauthenticated':\n newUrl = this._config?.redirectUrl ?? null;\n break;\n }\n\n // Append a redirect url if the user is deemed\n // unauthenticated.\n if (type === 'unauthenticated') {\n const setRedirectOnFailedAuth = this._config?.setRedirectOnFailedAuth ?? true;\n if (setRedirectOnFailedAuth && redirectUrl && newUrl) {\n newUrl += `?redirectUrl=${redirectUrl}`;\n }\n }\n\n // Parse the url if it exists.\n if (this.router && newUrl) {\n return this.router.parseUrl(newUrl);\n }\n\n // Return false if the user is not allowed.\n return false;\n }\n\n clearAndRedirect() {\n // 1. Delete the tokens from the session.\n this.session.clear();\n\n // 2. Compose the route url.\n const redirectUrl = this._config?.redirectUrl ?? null;\n\n // 3. Route back if the user provided a redirect url.\n if (this.router && redirectUrl) {\n this.router.navigate([redirectUrl]).then(_ => _);\n }\n }\n\n private setTokens(accessToken: string, refreshToken: string) {\n // Set the tokens in our session.\n this.session.setTokens(accessToken, refreshToken);\n\n // We need to update the auto refresh of the refresh token.\n this.handleAutoRefreshing();\n }\n\n private handleAutoRefreshing() {\n const shouldAutoRefresh = this._config?.autoRefresh ?? false;\n if (!shouldAutoRefresh) {\n return;\n }\n\n const expiresAt = this.session.refreshTokenPayload?.expiresAt ?? null;\n if (expiresAt === null || !this._platform.isBrowser) {\n return;\n }\n\n const differenceInMilliseconds = expiresAt.getTime() - Date.now();\n const offsetInMilliseconds = 10_000; // 10 seconds.\n\n // We want to start the refresh 10 seconds before it expires.\n const actualTiming = differenceInMilliseconds - offsetInMilliseconds;\n if (actualTiming <= 0) {\n return;\n }\n\n // We need to cap the timings because if\n // we get large numbers it might cause unwanted results.\n const maxTiming = 1000 * 60 * 60 * 24; // 24 hours.\n const cappedTiming = Math.max(1, Math.min(actualTiming, maxTiming));\n try {\n if (this._refreshHandler !== null) {\n clearTimeout?.(this._refreshHandler);\n this._refreshHandler = null;\n }\n this._refreshHandler = setTimeout?.(() => this.autoRefresh(), cappedTiming);\n } catch {\n // Just ignore it.\n }\n }\n\n private async autoRefresh() {\n try {\n // We just need to wait for it to refresh.\n await this.refresh().toPromise();\n } catch {\n // Something went wrong refreshing, we need to clear.\n this.clearAndRedirect();\n }\n }\n\n private get router() {\n return this._injector.get(Router);\n }\n\n private getUrl(endpoint: string) {\n return [this._httpAlias, endpoint]\n .filter(item => !!item)\n .join('/');\n }\n\n}\n","import {Directive, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {Auth} from '../auth.service';\nimport {Subscription} from 'rxjs';\n\n@Directive({\n selector: '[bbAuthenticated]'\n})\nexport class BbAuthenticated implements OnInit, OnDestroy {\n\n // Subscriptions.\n private _subscription: Subscription;\n\n constructor(private _auth: Auth,\n private _template: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit() {\n this._subscription = this._auth.user.pipe(\n map(user => !!user),\n distinctUntilChanged()\n ).subscribe(isAuthenticated => {\n if (!isAuthenticated) {\n return this._viewContainerRef.clear();\n }\n\n this._viewContainerRef.createEmbeddedView(this._template);\n });\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n}\n","import {Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {Auth} from '../auth.service';\nimport {Subscription} from 'rxjs';\n\n@Directive({\n selector: '[bbRole]'\n})\nexport class BbRole implements OnInit, OnDestroy {\n\n // Inputs.\n @Input() bbRole: string | string[];\n\n // Subscriptions.\n private _subscription: Subscription;\n\n constructor(private _auth: Auth,\n private _template: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit() {\n this._subscription = this._auth.user.pipe(\n map(user => user?.role ?? null),\n distinctUntilChanged()\n ).subscribe(role => {\n const allowedRoles = this.getAllowedRoles(this.bbRole);\n\n if (!allowedRoles.includes(role)) {\n return this._viewContainerRef.clear();\n }\n\n this._viewContainerRef.createEmbeddedView(this._template);\n });\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n private getAllowedRoles = (value: string | string[]) => {\n return Array.isArray(value) ? value : [value];\n };\n\n}\n","import {distinctUntilChanged, map} from 'rxjs/operators';\nimport {AuthConfig} from './interfaces/config.interface';\nimport {Injectable, Optional} from '@angular/core';\nimport {Auth} from './auth.service';\n\n@Injectable()\nexport class Permissions {\n\n // Data.\n private readonly _permissions: { [permission: string]: string[] } = this._config?.permissions ?? {};\n private readonly _role$ = this._auth.user.pipe(\n map(user => user?.role as string ?? null),\n distinctUntilChanged()\n );\n\n constructor(private _auth: Auth,\n @Optional() private _config?: AuthConfig) {\n }\n\n has(value: string | string[]) {\n const requiredPermissions = Array.isArray(value)\n ? value\n : [value];\n\n return this._role$.pipe(\n map(role => {\n if (role === null || role === undefined) {\n return false;\n }\n\n for (const requiredPermission of requiredPermissions) {\n const result = this.validatePermission(requiredPermission, role);\n if (!result) {\n return false;\n }\n }\n\n return true;\n })\n );\n }\n\n private validatePermission(type: string, role: string) {\n const permission = this._permissions?.[type] ?? null;\n if (!permission) {\n console?.warn?.(`Permissions: Invalid permission requested \"${type}\".`);\n return false;\n }\n if (permission?.length <= 0) {\n console?.warn?.(`Permissions: No roles were set, please add some roles to this permission.`);\n return false;\n }\n\n // If the permission includes a \"*\" we allow everyone.\n if (permission.includes('*')) {\n return true;\n }\n\n // Validate the role against the permissions.\n return permission?.includes(role) ?? false;\n }\n\n}\n","import {Directive, EmbeddedViewRef, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {Permissions} from '../permissions.service';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\n\n@Directive({\n selector: '[bbPermission]'\n})\nexport class BbPermission implements OnInit, OnDestroy {\n\n // Data.\n private _permission$ = new BehaviorSubject<string[]>([]);\n private _valid: boolean = false;\n\n private _elseTemplateRef: TemplateRef<any> | null = null;\n\n private _thenViewRef: EmbeddedViewRef<any> | null = null;\n private _elseViewRef: EmbeddedViewRef<any> | null = null;\n\n @Input()\n set bbPermission(value: string | string[]) {\n const permissions = this.getAllowedPermissions(value);\n this._permission$.next(permissions);\n this.updateView();\n }\n\n @Input()\n set bbPermissionElse(templateRef: TemplateRef<any> | null) {\n this.assertTemplate('bbPermissionElse', templateRef);\n this._elseTemplateRef = templateRef;\n this.updateView();\n }\n\n // Subscriptions.\n private _subscription: Subscription;\n\n constructor(private _permissions: Permissions,\n private _templateRef: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit() {\n const check$ = this._permission$.pipe(\n switchMap(permissions => this._permissions.has(permissions))\n );\n\n this._subscription = check$.subscribe(valid => {\n this._valid = valid;\n this.updateView();\n });\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n private updateView() {\n if (this._valid) {\n if (!this._thenViewRef) {\n this._viewContainerRef.clear();\n this._elseViewRef = null;\n if (this._templateRef) {\n this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n }\n } else {\n if (!this._elseViewRef) {\n this._viewContainerRef.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef);\n }\n }\n }\n }\n\n private getAllowedPermissions = (value: string | string[]) => {\n return Array.isArray(value) ? value : [value];\n };\n\n private assertTemplate = (property: string, templateRef: TemplateRef<any> | null) => {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef.`);\n }\n };\n\n}\n","import {ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot} from '@angular/router';\nimport {first, map} from 'rxjs/operators';\nimport {Injectable} from '@angular/core';\nimport {Auth} from '../auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BbAnonymousGuard implements CanActivate, CanActivateChild {\n\n constructor(private _auth: Auth) {\n }\n\n async canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n // Check if the user is authenticated.\n const isAuthenticated = await this._auth.user.pipe(\n map(user => !!user),\n first()\n ).toPromise();\n\n // If the user is not authenticated it can\n // access the anonymous page.\n if (!isAuthenticated) {\n return true;\n }\n\n // Return the user back to the authenticated page.\n return this._auth.guard('authenticated', state.url);\n }\n\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.canActivate(childRoute, state);\n }\n\n}\n","import {ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot} from '@angular/router';\nimport {first, map} from 'rxjs/operators';\nimport {Injectable} from '@angular/core';\nimport {Auth} from '../auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BbAuthenticatedGuard implements CanActivate, CanActivateChild {\n\n constructor(private _auth: Auth) {\n }\n\n async canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n // Check if the user is authenticated.\n const isAuthenticated = await this._auth.user.pipe(\n map(user => !!user),\n first()\n ).toPromise();\n\n // If the user is authenticated it can\n // access the authenticated page.\n if (isAuthenticated) {\n return true;\n }\n\n // The user is not authorized to see that\n // page so un-authorize him.\n return this._auth.guard('unauthenticated', state.url);\n }\n\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.canActivate(childRoute, state);\n }\n\n}\n","import {HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';\nimport {catchError, filter, finalize, switchMap, take} from 'rxjs/operators';\nimport {USE_AUTHORIZATION} from './tokens/use-authorization.token';\nimport {AuthConfig} from './interfaces/config.interface';\nimport {HttpError} from '@bravobit/bb-foundation/http';\nimport {BehaviorSubject, of, throwError} from 'rxjs';\nimport {Injectable, Optional} from '@angular/core';\nimport {Auth} from './auth.service';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n // Readonly data.\n private readonly _authHeaderString: string = 'Authorization';\n\n // Data.\n isRefreshing: boolean = false;\n refreshingAccessToken$ = new BehaviorSubject<string | null>(null);\n\n constructor(private _auth: Auth,\n @Optional() private _config: AuthConfig) {\n }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler) {\n // 1. Check if the user wants to use the authorization for this request.\n if (!request.context.get(USE_AUTHORIZATION)) {\n return next.handle(request);\n }\n\n // 2. Compose the new request.\n const accessToken = this.getAccessToken(request);\n const newRequest = this.addAuthorizationHeader(request, accessToken);\n\n // 3. Handle all errors.\n return next.handle(newRequest).pipe(\n catchError(error => {\n // Handle the HTTP401 error.\n if ((error instanceof HttpErrorResponse || error instanceof HttpError) && error?.status === 401) {\n return this.handle401Error(request, next);\n }\n\n // Just re-throw the parsed error.\n return throwError(error);\n })\n );\n }\n\n private handle401Error(request: HttpRequest<unknown>, next: HttpHandler) {\n // If already refreshing wait for the refresh token to complete.\n if (this.isRefreshing) {\n return this.refreshingAccessToken$.pipe(\n filter(accessToken => accessToken !== null),\n take(1),\n switchMap(accessToken => next.handle(this.addAuthorizationHeader(request, accessToken)))\n );\n }\n\n // Set the refreshing to true.\n this.isRefreshing = true;\n this.refreshingAccessToken$.next(null);\n\n return this._auth.refresh().pipe(\n switchMap(newAccessToken => {\n if (!newAccessToken) {\n const error = new Error('No refresh token was available.');\n return throwError(error);\n }\n\n this.refreshingAccessToken$.next(newAccessToken);\n return next.handle(this.addAuthorizationHeader(request, newAccessToken));\n }),\n catchError(() => this.logoutUser()),\n finalize(() => this.isRefreshing = false)\n );\n }\n\n private logoutUser() {\n // Handle the refresh error.\n this._auth.clearAndRedirect();\n\n // Return null as data.\n return of(null);\n }\n\n private getAccessToken = (request: HttpRequest<unknown>) => {\n // Get the token based on header.\n if (request.headers.has('Authorization')) {\n return request.headers.get('Authorization');\n }\n\n // Return the default access token.\n return this._auth.session.accessToken;\n };\n\n private addAuthorizationHeader = (request: HttpRequest<unknown>, accessToken: string | null = null) => {\n // Remove auth header when we do not have\n // an access token.\n if (!accessToken) {\n return request.clone({\n headers: request.headers.delete(this._authHeaderString)\n });\n }\n\n // Add the auth header to the request.\n return request.clone({\n setHeaders: {[this._authHeaderString]: this.getFullAuthorizationHeader(accessToken)}\n });\n };\n\n private getFullAuthorizationHeader = (token: string) => {\n const authScheme = this._config?.scheme ?? 'Bearer';\n return [authScheme, token].join(' ');\n };\n\n}\n","import {APP_INITIALIZER, ModuleWithProviders, NgModule} from '@angular/core';\nimport {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http';\nimport {BbAuthenticated} from './directives/authenticated.directive';\nimport {BbPermission} from './directives/permission.directive';\nimport {AuthConfig} from './interfaces/config.interface';\nimport {AuthInterceptor} from './auth.interceptor';\nimport {AuthMapper} from './helpers/mapper.helper';\nimport {BbRole} from './directives/role.directive';\nimport {Permissions} from './permissions.service';\nimport {Auth} from './auth.service';\n\nconst DECLARATIONS_EXPORTS = [\n BbAuthenticated,\n BbRole,\n BbPermission\n];\n\n@NgModule({\n imports: [HttpClientModule],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS],\n providers: [\n {provide: AuthMapper, useClass: AuthMapper}\n ]\n})\nexport class AuthModule {\n\n static forRoot(config?: AuthConfig): ModuleWithProviders<AuthModule> {\n return {\n ngModule: AuthModule,\n providers: [\n Auth,\n Permissions,\n {provide: AuthConfig, useValue: config},\n {provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true},\n {useFactory: initializeAuth, provide: APP_INITIALIZER, deps: [Auth], multi: true}\n ]\n };\n }\n\n}\n\nexport function initializeAuth(auth: Auth) {\n return auth.initialize();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["HttpContextToken","Injectable","BehaviorSubject","shareReplay","makeStateKey","take","of","HttpContext","map","tap","Router","Optional","distinctUntilChanged","Directive","Input","switchMap","first","catchError","HttpErrorResponse","HttpError","throwError","filter","finalize","HTTP_INTERCEPTORS","APP_INITIALIZER","HttpClientModule","NgModule"],"mappings":"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"}