@bravobit/bb-foundation 0.26.3 → 0.28.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 (384) hide show
  1. package/auth/lib/auth.service.d.ts +2 -2
  2. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  3. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  4. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  5. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
  6. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  7. package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
  8. package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
  9. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
  10. package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
  11. package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
  12. package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
  13. package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
  14. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  19. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  20. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  21. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  22. package/elements/lib/button/button.component.d.ts +2 -2
  23. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  24. package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
  25. package/elements/lib/directives/input.directive.d.ts +2 -2
  26. package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
  27. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  28. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  29. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  30. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  31. package/elements/lib/icon/icon.component.d.ts +1 -1
  32. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  33. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  34. package/{esm2020 → esm2022}/auth/lib/auth.interceptor.mjs +4 -4
  35. package/{esm2020 → esm2022}/auth/lib/auth.module.mjs +5 -5
  36. package/esm2022/auth/lib/auth.service.mjs +269 -0
  37. package/{esm2020 → esm2022}/auth/lib/directives/authenticated.directive.mjs +4 -4
  38. package/{esm2020 → esm2022}/auth/lib/guards/anonymous.guard.mjs +4 -4
  39. package/{esm2020 → esm2022}/auth/lib/guards/authenticated.guard.mjs +4 -4
  40. package/{esm2020 → esm2022}/collections/lib/collections.module.mjs +21 -21
  41. package/{esm2020 → esm2022}/collections/lib/components/collections-pager/collections-pager.component.mjs +4 -4
  42. package/{esm2020 → esm2022}/collections/lib/components/collections-viewer/collections-viewer.component.mjs +4 -4
  43. package/{esm2020 → esm2022}/collections/lib/components/collections.directive.mjs +13 -13
  44. package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox/checkbox.component.mjs +6 -6
  45. package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/controls/lib/checkbox/checkbox.module.mjs +5 -5
  47. package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.component.mjs +4 -4
  48. package/{esm2020 → esm2022}/controls/lib/control-error/control-error-submit.directive.mjs +4 -4
  49. package/{esm2020 → esm2022}/controls/lib/control-error/control-error.module.mjs +5 -5
  50. package/{esm2020 → esm2022}/controls/lib/controls.module.mjs +21 -21
  51. package/{esm2020 → esm2022}/controls/lib/form-control/form-control/form-control.component.mjs +4 -4
  52. package/{esm2020 → esm2022}/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/controls/lib/form-control/form-control-input.directive.mjs +4 -4
  54. package/{esm2020 → esm2022}/controls/lib/form-control/form-control.module.mjs +9 -9
  55. package/{esm2020 → esm2022}/controls/lib/radio/radio-button/radio-button.component.mjs +4 -4
  56. package/{esm2020 → esm2022}/controls/lib/radio/radio-group/radio-group.component.mjs +6 -6
  57. package/{esm2020 → esm2022}/controls/lib/radio/radio.module.mjs +5 -5
  58. package/{esm2020 → esm2022}/controls/lib/toggle/toggle/toggle.component.mjs +6 -6
  59. package/{esm2020 → esm2022}/controls/lib/toggle/toggle-group/toggle-group.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/controls/lib/toggle/toggle.module.mjs +5 -5
  61. package/{esm2020 → esm2022}/dashboard/lib/dashboard/dashboard.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +4 -4
  65. package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +4 -4
  66. package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +4 -4
  67. package/{esm2020 → esm2022}/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +4 -4
  68. package/{esm2020 → esm2022}/dashboard/lib/dashboard.module.mjs +17 -17
  69. package/{esm2020 → esm2022}/dialog/lib/dialog-actions/dialog-actions.component.mjs +4 -4
  70. package/{esm2020 → esm2022}/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +4 -4
  71. package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
  72. package/{esm2020 → esm2022}/dialog/lib/dialog-header/dialog-header.component.mjs +4 -4
  73. package/{esm2020 → esm2022}/dialog/lib/dialog-link/dialog-link.component.mjs +4 -4
  74. package/{esm2020 → esm2022}/dialog/lib/dialog-modal/dialog-modal.component.mjs +4 -4
  75. package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +4 -4
  76. package/{esm2020 → esm2022}/dialog/lib/dialog.insertion.mjs +4 -4
  77. package/{esm2020 → esm2022}/dialog/lib/dialog.module.mjs +20 -20
  78. package/{esm2020 → esm2022}/dialog/lib/dialog.service.mjs +4 -4
  79. package/{esm2020 → esm2022}/elements/lib/avatar/avatar.component.mjs +4 -4
  80. package/{esm2020 → esm2022}/elements/lib/button/button.component.mjs +7 -7
  81. package/{esm2020 → esm2022}/elements/lib/checkbox/checkbox.component.mjs +6 -6
  82. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +307 -0
  83. package/{esm2020 → esm2022}/elements/lib/directives/addon.directive.mjs +7 -7
  84. package/{esm2020 → esm2022}/elements/lib/directives/form-submit.directive.mjs +4 -4
  85. package/{esm2020 → esm2022}/elements/lib/directives/form-submitter.directive.mjs +4 -4
  86. package/{esm2020 → esm2022}/elements/lib/directives/input.directive.mjs +7 -7
  87. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +100 -0
  88. package/{esm2020 → esm2022}/elements/lib/elements.module.mjs +65 -65
  89. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +236 -0
  90. package/{esm2020 → esm2022}/elements/lib/form-control/form-control.component.mjs +4 -4
  91. package/{esm2020 → esm2022}/elements/lib/form-error/form-error.component.mjs +4 -4
  92. package/{esm2020 → esm2022}/elements/lib/form-group/form-group.component.mjs +4 -4
  93. package/{esm2020 → esm2022}/elements/lib/icon/icon.component.mjs +4 -4
  94. package/{esm2020 → esm2022}/elements/lib/image-picker/image-picker.component.mjs +4 -4
  95. package/{esm2020 → esm2022}/elements/lib/pipes/file-image.pipe.mjs +4 -4
  96. package/{esm2020 → esm2022}/elements/lib/pipes/file-size.pipe.mjs +4 -4
  97. package/{esm2020 → esm2022}/elements/lib/pipes/relative-time.pipe.mjs +4 -4
  98. package/{esm2020 → esm2022}/elements/lib/spinner/spinner.component.mjs +4 -4
  99. package/{esm2020 → esm2022}/elements/lib/tag/tag.component.mjs +4 -4
  100. package/esm2022/http/lib/classes/http.config.mjs +28 -0
  101. package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +1 -1
  102. package/{esm2020 → esm2022}/http/lib/http.module.mjs +5 -5
  103. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +64 -0
  104. package/{esm2020 → esm2022}/http/lib/interceptors/error.interceptor.mjs +4 -4
  105. package/{esm2020 → esm2022}/lib/core/services/clipboard.service.mjs +4 -4
  106. package/{esm2020 → esm2022}/lib/core/services/exif.service.mjs +4 -4
  107. package/{esm2020 → esm2022}/lib/core/services/file-loader.service.mjs +4 -4
  108. package/{esm2020 → esm2022}/lib/core/services/image-converter.service.mjs +4 -4
  109. package/{esm2020 → esm2022}/lib/core/services/languages.service.mjs +4 -4
  110. package/{esm2020 → esm2022}/lib/core/services/network.service.mjs +4 -4
  111. package/{esm2020 → esm2022}/lib/core/services/patch.service.mjs +4 -4
  112. package/{esm2020 → esm2022}/localize/lib/localize.module.mjs +9 -9
  113. package/{esm2020 → esm2022}/localize/lib/localize.pipe.mjs +4 -4
  114. package/{esm2020 → esm2022}/localize/lib/localize.service.mjs +4 -4
  115. package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +2 -3
  116. package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +2 -3
  117. package/{esm2020 → esm2022}/localize/lib/views/localize-string/localize-string.component.mjs +4 -4
  118. package/{esm2020 → esm2022}/localize/lib/views/localize-template.directive.mjs +4 -4
  119. package/{esm2020 → esm2022}/masking/lib/directives/currency-mask.directive.mjs +4 -4
  120. package/{esm2020 → esm2022}/masking/lib/directives/date-mask.directive.mjs +4 -4
  121. package/{esm2020 → esm2022}/masking/lib/directives/input-mask.directive.mjs +4 -4
  122. package/{esm2020 → esm2022}/masking/lib/masking.module.mjs +9 -9
  123. package/{esm2020 → esm2022}/masking/lib/masking.service.mjs +4 -4
  124. package/{esm2020 → esm2022}/notifications/lib/notifications-item/notifications-item.component.mjs +4 -4
  125. package/{esm2020 → esm2022}/notifications/lib/notifications-list/notifications-list.component.mjs +4 -4
  126. package/{esm2020 → esm2022}/notifications/lib/notifications.module.mjs +5 -5
  127. package/{esm2020 → esm2022}/notifications/lib/notifications.service.mjs +4 -4
  128. package/{esm2020 → esm2022}/permissions/lib/directives/permission.directive.mjs +4 -4
  129. package/{esm2020 → esm2022}/permissions/lib/guards/permission.guard.mjs +4 -4
  130. package/{esm2020 → esm2022}/permissions/lib/permissions.module.mjs +5 -5
  131. package/{esm2020 → esm2022}/permissions/lib/permissions.service.mjs +4 -4
  132. package/{esm2020 → esm2022}/recaptcha/lib/recaptcha/recaptcha.component.mjs +10 -10
  133. package/{esm2020 → esm2022}/recaptcha/lib/recaptcha-loader.service.mjs +4 -4
  134. package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.module.mjs +5 -5
  135. package/{esm2020 → esm2022}/storage/lib/storage.service.mjs +4 -4
  136. package/{esm2020 → esm2022}/table/lib/components/table/table.component.mjs +10 -10
  137. package/{esm2020 → esm2022}/table/lib/components/table-cell/table-cell.component.mjs +4 -4
  138. package/{esm2020 → esm2022}/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
  139. package/{esm2020 → esm2022}/table/lib/components/table-pager/table-pager.component.mjs +6 -6
  140. package/{esm2020 → esm2022}/table/lib/table.module.mjs +15 -15
  141. package/{esm2020 → esm2022}/theming/lib/theming.directive.mjs +4 -4
  142. package/{esm2020 → esm2022}/theming/lib/theming.module.mjs +5 -5
  143. package/{esm2020 → esm2022}/tooltip/lib/tooltip-container/tooltip-container.component.mjs +4 -4
  144. package/{esm2020 → esm2022}/tooltip/lib/tooltip.directive.mjs +4 -4
  145. package/{esm2020 → esm2022}/tooltip/lib/tooltip.module.mjs +8 -8
  146. package/{esm2020 → esm2022}/utils/lib/directives/autosize.directive.mjs +4 -4
  147. package/{esm2020 → esm2022}/utils/lib/directives/focus-trap.directive.mjs +4 -4
  148. package/{esm2020 → esm2022}/utils/lib/directives/focus.directive.mjs +4 -4
  149. package/{esm2020 → esm2022}/utils/lib/directives/template.directive.mjs +4 -4
  150. package/{esm2020 → esm2022}/utils/lib/utils.module.mjs +11 -11
  151. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +21 -22
  152. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
  153. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
  154. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
  155. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
  156. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
  157. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
  158. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  159. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
  160. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
  161. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
  162. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
  163. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +37 -23
  164. package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -0
  165. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
  166. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
  167. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
  168. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
  169. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
  170. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
  171. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
  172. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
  173. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
  174. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  175. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
  176. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
  177. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +34 -34
  178. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs.map +1 -1
  179. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
  180. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
  181. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
  182. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  183. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +22 -22
  184. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs.map +1 -1
  185. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
  186. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
  187. package/http/lib/classes/http.config.d.ts +2 -2
  188. package/http/lib/http.interfaces.d.ts +9 -4
  189. package/http/lib/interceptors/base-url.interceptor.d.ts +3 -1
  190. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  191. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  192. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  193. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  194. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  195. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  196. package/package.json +64 -106
  197. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  198. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  199. package/table/lib/components/table/table.component.d.ts +1 -1
  200. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  201. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  202. package/theming/lib/theming.directive.d.ts +1 -1
  203. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  204. package/utils/lib/directives/autosize.directive.d.ts +1 -1
  205. package/utils/lib/directives/template.directive.d.ts +1 -1
  206. package/esm2020/auth/lib/auth.service.mjs +0 -270
  207. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
  208. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
  209. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
  210. package/esm2020/http/lib/classes/http.config.mjs +0 -28
  211. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
  212. package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
  213. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
  214. package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
  215. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
  216. package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
  217. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
  218. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
  219. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
  220. package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
  221. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
  222. package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
  223. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
  224. package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
  225. package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
  226. package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
  227. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
  228. package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
  229. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
  230. package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
  231. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
  232. package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
  233. package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
  234. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
  235. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
  236. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
  237. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
  238. package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
  239. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
  240. package/fesm2015/bravobit-bb-foundation-table.mjs +0 -613
  241. package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
  242. package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
  243. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
  244. package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
  245. package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
  246. package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
  247. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
  248. package/fesm2015/bravobit-bb-foundation.mjs +0 -929
  249. package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
  250. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
  251. package/fesm2020/bravobit-bb-foundation-http.mjs.map +0 -1
  252. /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
  253. /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
  254. /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
  255. /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
  256. /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
  257. /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
  258. /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
  259. /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
  260. /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
  261. /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
  262. /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
  264. /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
  265. /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
  266. /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
  267. /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
  268. /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
  269. /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
  270. /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
  271. /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
  272. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
  273. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
  274. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
  275. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
  276. /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
  277. /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
  278. /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
  279. /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
  280. /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
  281. /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
  282. /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
  283. /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
  284. /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
  285. /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
  286. /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
  287. /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
  288. /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
  289. /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
  290. /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
  291. /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
  311. /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
  312. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
  313. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
  314. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
  315. /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
  316. /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
  317. /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
  318. /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
  319. /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
  320. /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
  321. /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
  322. /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
  323. /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
  324. /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
  325. /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
  326. /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
  327. /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
  328. /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
  329. /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
  330. /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
  331. /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
  332. /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
  333. /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
  334. /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
  335. /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
  336. /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
  337. /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
  338. /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
  339. /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
  340. /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
  341. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  342. /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
  343. /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
  344. /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
  345. /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
  346. /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
  347. /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
  348. /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
  349. /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
  350. /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
  351. /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
  352. /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
  353. /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
  354. /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
  355. /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
  356. /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
  357. /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
  358. /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
  359. /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
  360. /package/{esm2020 → esm2022}/table/lib/data/generic.data.mjs +0 -0
  361. /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
  363. /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
  364. /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
  365. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
  366. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
  367. /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
  368. /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
  369. /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
  370. /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
  371. /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
  372. /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
  373. /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
  374. /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
  375. /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
  377. /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
  378. /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
  379. /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
  380. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
  381. /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
  382. /package/{esm2020 → esm2022}/utils/public_api.mjs +0 -0
  383. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
  384. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
@@ -1,310 +0,0 @@
1
- import { map, distinctUntilChanged, switchMap } from 'rxjs/operators';
2
- import * as i0 from '@angular/core';
3
- import { Injectable, Directive, Input, Optional, NgModule } from '@angular/core';
4
- import { BehaviorSubject, Subscription, of, isObservable, combineLatest } from 'rxjs';
5
- import * as i1 from '@angular/router';
6
- import { Auth } from '@bravobit/bb-foundation/auth';
7
-
8
- class PermissionsHandler {
9
- }
10
-
11
- class LocalPermissionsHandler extends PermissionsHandler {
12
- constructor(auth, localPermissions) {
13
- super();
14
- this.auth = auth;
15
- this.localPermissions = localPermissions;
16
- }
17
- get() {
18
- return this.auth.user.pipe(map(user => { var _a; return (_a = user === null || user === void 0 ? void 0 : user.role) !== null && _a !== void 0 ? _a : null; }), map(role => {
19
- if (role === null || role === undefined) {
20
- return [];
21
- }
22
- return this.getPermissionsForRole(role);
23
- }));
24
- }
25
- getPermissionsForRole(role) {
26
- var _a;
27
- return Object.keys((_a = this.localPermissions) !== null && _a !== void 0 ? _a : {}).reduce((previous, current) => {
28
- var _a, _b;
29
- const roles = (_b = (_a = this.localPermissions) === null || _a === void 0 ? void 0 : _a[current]) !== null && _b !== void 0 ? _b : [];
30
- if (roles === '*' || (roles === null || roles === void 0 ? void 0 : roles.includes(role))) {
31
- return [...previous, current];
32
- }
33
- return previous;
34
- }, []);
35
- }
36
- }
37
-
38
- class Permissions {
39
- constructor(_handler) {
40
- this._handler = _handler;
41
- // State.
42
- this._activePermissions$ = new BehaviorSubject([]);
43
- // Subscriptions.
44
- this._subscription = new Subscription();
45
- this.trackPermissions();
46
- }
47
- ngOnDestroy() {
48
- var _a;
49
- (_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
50
- }
51
- all() {
52
- return this._activePermissions$.asObservable();
53
- }
54
- allSync() {
55
- return this._activePermissions$.getValue();
56
- }
57
- has(value, options) {
58
- const requiredPermissions = this.getRequiredPermissions(value);
59
- if ((requiredPermissions === null || requiredPermissions === void 0 ? void 0 : requiredPermissions.length) <= 0) {
60
- return of(false);
61
- }
62
- return this._activePermissions$.pipe(map(activePermissions => this.hasPermission(requiredPermissions, activePermissions, options)), distinctUntilChanged());
63
- }
64
- hasSync(value, options) {
65
- const requiredPermissions = this.getRequiredPermissions(value);
66
- if ((requiredPermissions === null || requiredPermissions === void 0 ? void 0 : requiredPermissions.length) <= 0) {
67
- return false;
68
- }
69
- const activePermissions = this._activePermissions$.getValue();
70
- return this.hasPermission(requiredPermissions, activePermissions, options);
71
- }
72
- hasPermission(requiredPermissions, activePermissions, options) {
73
- var _a;
74
- const mode = (_a = options === null || options === void 0 ? void 0 : options.mode) !== null && _a !== void 0 ? _a : 'and';
75
- switch (mode) {
76
- case 'or':
77
- return this.verifyModeOr(requiredPermissions, activePermissions);
78
- case 'not':
79
- return this.verifyModeNot(requiredPermissions, activePermissions);
80
- case 'and':
81
- default:
82
- return this.verifyModeAnd(requiredPermissions, activePermissions);
83
- }
84
- }
85
- verifyModeAnd(permissions, activePermissions) {
86
- for (const permission of permissions) {
87
- const verified = activePermissions === null || activePermissions === void 0 ? void 0 : activePermissions.includes(permission);
88
- if (!verified) {
89
- return false;
90
- }
91
- }
92
- return true;
93
- }
94
- verifyModeNot(permissions, activePermissions) {
95
- for (const permission of permissions) {
96
- if (activePermissions.includes(permission)) {
97
- return false;
98
- }
99
- }
100
- return true;
101
- }
102
- verifyModeOr(permissions, activePermissions) {
103
- for (const permission of permissions) {
104
- const verified = activePermissions === null || activePermissions === void 0 ? void 0 : activePermissions.includes(permission);
105
- if (verified) {
106
- return true;
107
- }
108
- }
109
- return false;
110
- }
111
- getRequiredPermissions(value) {
112
- return Array.isArray(value)
113
- ? value
114
- : [value];
115
- }
116
- trackPermissions() {
117
- const data = this._handler.get();
118
- const permissions$ = isObservable(data) ? data : of(data);
119
- const subscription = permissions$.subscribe(permissions => {
120
- this._activePermissions$.next(permissions !== null && permissions !== void 0 ? permissions : []);
121
- });
122
- this._subscription.add(subscription);
123
- }
124
- }
125
- Permissions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Permissions, deps: [{ token: PermissionsHandler }], target: i0.ɵɵFactoryTarget.Injectable });
126
- Permissions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Permissions });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Permissions, decorators: [{
128
- type: Injectable
129
- }], ctorParameters: function () { return [{ type: PermissionsHandler }]; } });
130
-
131
- class BbPermission {
132
- set bbPermission(value) {
133
- const permissions = Array.isArray(value) ? value : [value];
134
- this._permission$.next(permissions);
135
- this.updateView();
136
- }
137
- set bbPermissionElse(templateRef) {
138
- this.assertTemplate('bbPermissionElse', templateRef);
139
- this._elseTemplateRef = templateRef;
140
- this.updateView();
141
- }
142
- set bbPermissionMode(mode) {
143
- this._mode$.next(mode);
144
- }
145
- constructor(_permissions, _templateRef, _viewContainerRef) {
146
- this._permissions = _permissions;
147
- this._templateRef = _templateRef;
148
- this._viewContainerRef = _viewContainerRef;
149
- // Templates.
150
- this._elseTemplateRef = null;
151
- // View refs.
152
- this._thenViewRef = null;
153
- this._elseViewRef = null;
154
- // Data.
155
- this._valid = false;
156
- this._permission$ = new BehaviorSubject([]);
157
- this._mode$ = new BehaviorSubject('and');
158
- // Subscriptions.
159
- this._subscription = new Subscription();
160
- }
161
- ngOnInit() {
162
- const check$ = combineLatest([this._permission$, this._mode$]).pipe(switchMap(([permissions, mode]) => this._permissions.has(permissions, { mode })), distinctUntilChanged());
163
- const subscription = check$.subscribe(valid => {
164
- this._valid = valid;
165
- this.updateView();
166
- });
167
- this._subscription.add(subscription);
168
- }
169
- ngOnDestroy() {
170
- var _a;
171
- (_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
172
- }
173
- updateView() {
174
- if (this._valid) {
175
- if (!this._thenViewRef) {
176
- this._viewContainerRef.clear();
177
- this._elseViewRef = null;
178
- if (this._templateRef) {
179
- this._thenViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);
180
- }
181
- }
182
- }
183
- else {
184
- if (!this._elseViewRef) {
185
- this._viewContainerRef.clear();
186
- this._thenViewRef = null;
187
- if (this._elseTemplateRef) {
188
- this._elseViewRef = this._viewContainerRef.createEmbeddedView(this._elseTemplateRef);
189
- }
190
- }
191
- }
192
- }
193
- assertTemplate(property, templateRef) {
194
- const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);
195
- if (!isTemplateRefOrNull) {
196
- throw new Error(`${property} must be a TemplateRef.`);
197
- }
198
- }
199
- }
200
- BbPermission.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbPermission, deps: [{ token: Permissions }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
201
- BbPermission.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BbPermission, selector: "[bbPermission]", inputs: { bbPermission: "bbPermission", bbPermissionElse: "bbPermissionElse", bbPermissionMode: "bbPermissionMode" }, ngImport: i0 });
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbPermission, decorators: [{
203
- type: Directive,
204
- args: [{
205
- selector: '[bbPermission]'
206
- }]
207
- }], ctorParameters: function () { return [{ type: Permissions }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbPermission: [{
208
- type: Input
209
- }], bbPermissionElse: [{
210
- type: Input
211
- }], bbPermissionMode: [{
212
- type: Input
213
- }] } });
214
-
215
- class PermissionsConfig {
216
- }
217
-
218
- class BbPermissionGuard {
219
- constructor(_router, _permissions, _config) {
220
- this._router = _router;
221
- this._permissions = _permissions;
222
- this._config = _config;
223
- }
224
- canActivate(snapshot, state) {
225
- var _a, _b;
226
- const permission = (_b = (_a = snapshot === null || snapshot === void 0 ? void 0 : snapshot.data) === null || _a === void 0 ? void 0 : _a['permission']) !== null && _b !== void 0 ? _b : null;
227
- const permission$ = this.parsePermission(permission);
228
- return permission$.pipe(map(valid => {
229
- var _a, _b;
230
- if (valid) {
231
- return true;
232
- }
233
- const onPermissionDeniedFn = (_b = (_a = this._config) === null || _a === void 0 ? void 0 : _a.onPermissionDenied) !== null && _b !== void 0 ? _b : null;
234
- if (!onPermissionDeniedFn) {
235
- return false;
236
- }
237
- const urlTree = onPermissionDeniedFn(this._router, snapshot, state);
238
- if (!urlTree) {
239
- return false;
240
- }
241
- return valid ? true : urlTree;
242
- }));
243
- }
244
- canActivateChild(childRoute, state) {
245
- return this.canActivate(childRoute, state);
246
- }
247
- parsePermission(data) {
248
- var _a;
249
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && (data === undefined || data === null)) {
250
- (_a = console === null || console === void 0 ? void 0 : console.warn) === null || _a === void 0 ? void 0 : _a.call(console, `No "data.permission" property was passed.`);
251
- return of(false);
252
- }
253
- if (Array.isArray(data) || typeof data === 'string') {
254
- return this._permissions.has(data);
255
- }
256
- return this._permissions.has(data === null || data === void 0 ? void 0 : data.value, data === null || data === void 0 ? void 0 : data.options);
257
- }
258
- }
259
- BbPermissionGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbPermissionGuard, deps: [{ token: i1.Router }, { token: Permissions }, { token: PermissionsConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
260
- BbPermissionGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbPermissionGuard, providedIn: 'root' });
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbPermissionGuard, decorators: [{
262
- type: Injectable,
263
- args: [{
264
- providedIn: 'root'
265
- }]
266
- }], ctorParameters: function () {
267
- return [{ type: i1.Router }, { type: Permissions }, { type: PermissionsConfig, decorators: [{
268
- type: Optional
269
- }] }];
270
- } });
271
-
272
- class PermissionsModule {
273
- static forRoot(config) {
274
- var _a;
275
- const defaultProvider = {
276
- provide: PermissionsHandler,
277
- deps: [Auth],
278
- useFactory: (auth) => {
279
- var _a;
280
- return new LocalPermissionsHandler(auth, (_a = config === null || config === void 0 ? void 0 : config.localPermissions) !== null && _a !== void 0 ? _a : {});
281
- }
282
- };
283
- const permissionHandlerProvider = (_a = config === null || config === void 0 ? void 0 : config.provider) !== null && _a !== void 0 ? _a : defaultProvider;
284
- return {
285
- ngModule: PermissionsModule,
286
- providers: [
287
- { provide: PermissionsConfig, useValue: config },
288
- permissionHandlerProvider,
289
- Permissions
290
- ]
291
- };
292
- }
293
- }
294
- PermissionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PermissionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
295
- PermissionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: PermissionsModule, declarations: [BbPermission], exports: [BbPermission] });
296
- PermissionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PermissionsModule });
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PermissionsModule, decorators: [{
298
- type: NgModule,
299
- args: [{
300
- declarations: [BbPermission],
301
- exports: [BbPermission]
302
- }]
303
- }] });
304
-
305
- /**
306
- * Generated bundle index. Do not edit.
307
- */
308
-
309
- export { BbPermission, BbPermissionGuard, LocalPermissionsHandler, Permissions, PermissionsConfig, PermissionsHandler, PermissionsModule };
310
- //# sourceMappingURL=bravobit-bb-foundation-permissions.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bravobit-bb-foundation-permissions.mjs","sources":["../../../projects/bb-foundation/permissions/src/lib/handlers/abstract.handler.ts","../../../projects/bb-foundation/permissions/src/lib/handlers/local.handler.ts","../../../projects/bb-foundation/permissions/src/lib/permissions.service.ts","../../../projects/bb-foundation/permissions/src/lib/directives/permission.directive.ts","../../../projects/bb-foundation/permissions/src/lib/permissions.interface.ts","../../../projects/bb-foundation/permissions/src/lib/guards/permission.guard.ts","../../../projects/bb-foundation/permissions/src/lib/permissions.module.ts","../../../projects/bb-foundation/permissions/src/bravobit-bb-foundation-permissions.ts"],"sourcesContent":["import {Observable} from 'rxjs';\n\nexport abstract class PermissionsHandler {\n\n abstract get(): Observable<string[]> | string[];\n\n}\n","import {LocalPermissionsData} from '../permissions.interface';\nimport {PermissionsHandler} from './abstract.handler';\nimport {Auth} from '@bravobit/bb-foundation/auth';\nimport {map} from 'rxjs/operators';\n\nexport class LocalPermissionsHandler extends PermissionsHandler {\n\n constructor(protected auth: Auth,\n protected localPermissions: LocalPermissionsData) {\n super();\n }\n\n override get() {\n return this.auth.user.pipe(\n map(user => user?.role ?? null),\n map(role => {\n if (role === null || role === undefined) {\n return [];\n }\n\n return this.getPermissionsForRole(role);\n })\n );\n }\n\n protected getPermissionsForRole(role: string) {\n return Object.keys(this.localPermissions ?? {}).reduce((previous, current) => {\n const roles = this.localPermissions?.[current] ?? [];\n if (roles === '*' || roles?.includes(role)) {\n return [...previous, current];\n }\n\n return previous;\n }, []);\n }\n\n}\n","import {BehaviorSubject, isObservable, of, Subscription} from 'rxjs';\nimport {PermissionsHandler} from './handlers/abstract.handler';\nimport {PermissionsOptions} from './permissions.interface';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {Injectable, OnDestroy} from '@angular/core';\n\n@Injectable()\nexport class Permissions implements OnDestroy {\n\n // State.\n private _activePermissions$ = new BehaviorSubject<string[]>([]);\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _handler: PermissionsHandler) {\n this.trackPermissions();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n all() {\n return this._activePermissions$.asObservable();\n }\n\n allSync() {\n return this._activePermissions$.getValue();\n }\n\n has(value: string | string[], options?: PermissionsOptions) {\n const requiredPermissions = this.getRequiredPermissions(value);\n if (requiredPermissions?.length <= 0) {\n return of(false);\n }\n\n return this._activePermissions$.pipe(\n map(activePermissions => this.hasPermission(requiredPermissions, activePermissions, options)),\n distinctUntilChanged()\n );\n }\n\n hasSync(value: string | string[], options?: PermissionsOptions) {\n const requiredPermissions = this.getRequiredPermissions(value);\n if (requiredPermissions?.length <= 0) {\n return false;\n }\n\n const activePermissions = this._activePermissions$.getValue();\n return this.hasPermission(requiredPermissions, activePermissions, options);\n }\n\n private hasPermission(requiredPermissions: string[], activePermissions: string[], options?: PermissionsOptions) {\n const mode = options?.mode ?? 'and';\n switch (mode) {\n case 'or':\n return this.verifyModeOr(requiredPermissions, activePermissions);\n case 'not':\n return this.verifyModeNot(requiredPermissions, activePermissions);\n case 'and':\n default:\n return this.verifyModeAnd(requiredPermissions, activePermissions);\n }\n }\n\n private verifyModeAnd(permissions: string[], activePermissions: string[]) {\n for (const permission of permissions) {\n const verified = activePermissions?.includes(permission);\n if (!verified) {\n return false;\n }\n }\n\n return true;\n }\n\n private verifyModeNot(permissions: string[], activePermissions: string[]) {\n for (const permission of permissions) {\n if (activePermissions.includes(permission)) {\n return false;\n }\n }\n\n return true;\n }\n\n private verifyModeOr(permissions: string[], activePermissions: string[]) {\n for (const permission of permissions) {\n const verified = activePermissions?.includes(permission);\n if (verified) {\n return true;\n }\n }\n\n return false;\n }\n\n private getRequiredPermissions(value: string | string[]) {\n return Array.isArray(value)\n ? value\n : [value];\n }\n\n private trackPermissions() {\n const data = this._handler.get();\n const permissions$ = isObservable(data) ? data : of(data);\n\n const subscription = permissions$.subscribe(permissions => {\n this._activePermissions$.next(permissions ?? []);\n });\n this._subscription.add(subscription);\n }\n\n}\n","import {Directive, EmbeddedViewRef, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {distinctUntilChanged, switchMap} from 'rxjs/operators';\nimport {PermissionsMode} from '../permissions.interface';\nimport {Permissions} from '../permissions.service';\n\n@Directive({\n selector: '[bbPermission]'\n})\nexport class BbPermission implements OnInit, OnDestroy {\n\n // Templates.\n private _elseTemplateRef: TemplateRef<any> | null = null;\n\n // View refs.\n private _thenViewRef: EmbeddedViewRef<any> | null = null;\n private _elseViewRef: EmbeddedViewRef<any> | null = null;\n\n // Data.\n private _valid: boolean = false;\n private _permission$ = new BehaviorSubject<string[]>([]);\n private _mode$ = new BehaviorSubject<PermissionsMode>('and');\n\n @Input()\n set bbPermission(value: string | string[]) {\n const permissions = Array.isArray(value) ? value : [value];\n this._permission$.next(permissions);\n this.updateView();\n }\n\n @Input()\n set bbPermissionElse(templateRef: TemplateRef<any>) {\n this.assertTemplate('bbPermissionElse', templateRef);\n this._elseTemplateRef = templateRef;\n this.updateView();\n }\n\n @Input()\n set bbPermissionMode(mode: PermissionsMode) {\n this._mode$.next(mode);\n }\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(private _permissions: Permissions,\n private _templateRef: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef) {\n }\n\n ngOnInit() {\n const check$ = combineLatest([this._permission$, this._mode$]).pipe(\n switchMap(([permissions, mode]) => this._permissions.has(permissions, {mode})),\n distinctUntilChanged()\n );\n\n const subscription = check$.subscribe(valid => {\n this._valid = valid;\n this.updateView();\n });\n this._subscription.add(subscription);\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 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 static ngAcceptInputType_bbPermission: string | string[];\n static ngAcceptInputType_bbPermissionElse: TemplateRef<any>;\n static ngAcceptInputType_bbPermissionMode: PermissionsMode;\n\n}\n","import {ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Provider} from '@angular/core';\n\nexport class PermissionsConfig {\n provider?: Provider;\n localPermissions?: LocalPermissionsData;\n onPermissionDenied?: (router: Router, snapshot: ActivatedRouteSnapshot, state: RouterStateSnapshot) => UrlTree;\n}\n\nexport interface PermissionsOptions {\n mode?: PermissionsMode;\n}\n\nexport type PermissionsMode = 'and' | 'or' | 'not';\nexport type LocalPermissionsData<T extends string = any> = Record<string, T[] | '*'>;\n","import {ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot} from '@angular/router';\nimport {PermissionsOptions, PermissionsConfig} from '../permissions.interface';\nimport {Injectable, Optional} from '@angular/core';\nimport {Permissions} from '../permissions.service';\nimport {map} from 'rxjs/operators';\nimport {of} from 'rxjs';\n\ndeclare let ngDevMode;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BbPermissionGuard implements CanActivate, CanActivateChild {\n\n constructor(private _router: Router,\n private _permissions: Permissions,\n @Optional() private _config?: PermissionsConfig) {\n }\n\n canActivate(snapshot: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const permission = snapshot?.data?.['permission'] ?? null;\n const permission$ = this.parsePermission(permission);\n return permission$.pipe(\n map(valid => {\n if (valid) {\n return true;\n }\n\n const onPermissionDeniedFn = this._config?.onPermissionDenied ?? null;\n if (!onPermissionDeniedFn) {\n return false;\n }\n\n const urlTree = onPermissionDeniedFn(this._router, snapshot, state);\n if (!urlTree) {\n return false;\n }\n\n return valid ? true : urlTree;\n })\n );\n }\n\n canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n return this.canActivate(childRoute, state);\n }\n\n private parsePermission(data: string | string[] | { value: string | string[], options?: PermissionsOptions }) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && (data === undefined || data === null)) {\n console?.warn?.(`No \"data.permission\" property was passed.`);\n return of(false);\n }\n\n if (Array.isArray(data) || typeof data === 'string') {\n return this._permissions.has(data);\n }\n\n return this._permissions.has(data?.value, data?.options);\n }\n\n}\n","import {ModuleWithProviders, NgModule, Provider} from '@angular/core';\nimport {LocalPermissionsHandler} from './handlers/local.handler';\nimport {PermissionsHandler} from './handlers/abstract.handler';\nimport {BbPermission} from './directives/permission.directive';\nimport {PermissionsConfig} from './permissions.interface';\nimport {Permissions} from './permissions.service';\nimport {Auth} from '@bravobit/bb-foundation/auth';\n\n@NgModule({\n declarations: [BbPermission],\n exports: [BbPermission]\n})\nexport class PermissionsModule {\n\n static forRoot(config?: PermissionsConfig): ModuleWithProviders<PermissionsModule> {\n const defaultProvider: Provider = {\n provide: PermissionsHandler,\n deps: [Auth],\n useFactory: (auth: Auth) => {\n return new LocalPermissionsHandler(auth, config?.localPermissions ?? {});\n }\n };\n const permissionHandlerProvider = config?.provider ?? defaultProvider;\n\n return {\n ngModule: PermissionsModule,\n providers: [\n {provide: PermissionsConfig, useValue: config},\n permissionHandlerProvider,\n Permissions\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.PermissionsHandler","i1.Permissions","i2.Permissions","i3.PermissionsConfig"],"mappings":"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"}