@bravobit/bb-foundation 0.21.0 → 0.21.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 (462) hide show
  1. package/README.md +47 -47
  2. package/auth/index.d.ts +5 -5
  3. package/auth/lib/auth.interceptor.d.ts +21 -21
  4. package/auth/lib/auth.module.d.ts +15 -15
  5. package/auth/lib/auth.service.d.ts +59 -59
  6. package/auth/lib/auth.session.d.ts +34 -34
  7. package/auth/lib/directives/authenticated.directive.d.ts +14 -14
  8. package/auth/lib/directives/permission.directive.d.ts +24 -24
  9. package/auth/lib/directives/role.directive.d.ts +16 -16
  10. package/auth/lib/guards/anonymous.guard.d.ts +11 -11
  11. package/auth/lib/guards/authenticated.guard.d.ts +11 -11
  12. package/auth/lib/helpers/jwt.helper.d.ts +8 -8
  13. package/auth/lib/helpers/mapper.helper.d.ts +23 -23
  14. package/auth/lib/interfaces/config.interface.d.ts +12 -12
  15. package/auth/lib/interfaces/mapper.interface.d.ts +19 -19
  16. package/auth/lib/interfaces/provider.interface.d.ts +16 -16
  17. package/auth/lib/interfaces/token.interface.d.ts +11 -11
  18. package/auth/lib/permissions.service.d.ts +14 -14
  19. package/auth/lib/providers/email.provider.d.ts +15 -15
  20. package/auth/lib/providers/verify.provider.d.ts +13 -13
  21. package/auth/lib/tokens/use-authorization.token.d.ts +2 -2
  22. package/auth/public_api.d.ts +18 -18
  23. package/collections/index.d.ts +5 -5
  24. package/collections/lib/collection.d.ts +42 -43
  25. package/collections/lib/collections.module.d.ts +10 -10
  26. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +34 -34
  27. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +12 -12
  28. package/collections/lib/components/collections.directive.d.ts +17 -17
  29. package/collections/lib/interfaces/collection.interface.d.ts +27 -26
  30. package/collections/lib/providers/api-collection.provider.d.ts +18 -19
  31. package/collections/lib/providers/collection.provider.d.ts +6 -6
  32. package/collections/lib/providers/local-collection.provider.d.ts +8 -8
  33. package/collections/public_api.d.ts +9 -9
  34. package/controls/index.d.ts +5 -5
  35. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +47 -47
  36. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +22 -22
  37. package/controls/lib/checkbox/checkbox.module.d.ts +9 -9
  38. package/controls/lib/controls.module.d.ts +7 -7
  39. package/controls/public_api.d.ts +4 -4
  40. package/dashboard/index.d.ts +5 -5
  41. package/dashboard/lib/dashboard/dashboard.component.d.ts +19 -19
  42. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +11 -11
  43. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +9 -9
  44. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +11 -11
  45. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +21 -21
  46. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +27 -27
  47. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +16 -16
  48. package/dashboard/lib/dashboard.module.d.ts +16 -16
  49. package/dashboard/public_api.d.ts +8 -8
  50. package/dialog/index.d.ts +5 -5
  51. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +5 -5
  52. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +16 -16
  53. package/dialog/lib/dialog-container/dialog-container.component.d.ts +24 -24
  54. package/dialog/lib/dialog-header/dialog-header.component.d.ts +9 -9
  55. package/dialog/lib/dialog-link/dialog-link.component.d.ts +5 -5
  56. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +12 -12
  57. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +22 -22
  58. package/dialog/lib/dialog.injector.d.ts +8 -8
  59. package/dialog/lib/dialog.insertion.d.ts +8 -8
  60. package/dialog/lib/dialog.interfaces.d.ts +3 -3
  61. package/dialog/lib/dialog.module.d.ts +19 -19
  62. package/dialog/lib/dialog.ref.d.ts +8 -8
  63. package/dialog/lib/dialog.service.d.ts +19 -19
  64. package/dialog/public_api.d.ts +9 -9
  65. package/elements/index.d.ts +5 -5
  66. package/elements/lib/avatar/avatar.component.d.ts +25 -25
  67. package/elements/lib/button/button.component.d.ts +23 -23
  68. package/elements/lib/checkbox/checkbox.component.d.ts +27 -27
  69. package/elements/lib/date-picker/date-picker.component.d.ts +69 -69
  70. package/elements/lib/directives/addon.directive.d.ts +9 -9
  71. package/elements/lib/directives/autosize.directive.d.ts +18 -18
  72. package/elements/lib/directives/focus-trap.directive.d.ts +17 -17
  73. package/elements/lib/directives/focus.directive.d.ts +14 -14
  74. package/elements/lib/directives/form-submit.directive.d.ts +17 -17
  75. package/elements/lib/directives/input.directive.d.ts +38 -38
  76. package/elements/lib/directives/template.directive.d.ts +10 -10
  77. package/elements/lib/dropdown/dropdown.component.d.ts +21 -21
  78. package/elements/lib/elements.interfaces.d.ts +25 -25
  79. package/elements/lib/elements.module.d.ts +116 -116
  80. package/elements/lib/file-picker/file-picker.component.d.ts +49 -49
  81. package/elements/lib/form-control/form-control.component.d.ts +21 -21
  82. package/elements/lib/form-error/form-error.component.d.ts +29 -29
  83. package/elements/lib/form-group/form-group.component.d.ts +10 -10
  84. package/elements/lib/icon/icon.component.d.ts +22 -22
  85. package/elements/lib/image-picker/image-picker.component.d.ts +38 -38
  86. package/elements/lib/pipes/file-image.pipe.d.ts +13 -13
  87. package/elements/lib/pipes/file-size.pipe.d.ts +8 -8
  88. package/elements/lib/pipes/relative-time.pipe.d.ts +19 -19
  89. package/elements/lib/spinner/spinner.component.d.ts +12 -12
  90. package/elements/lib/tag/tag.component.d.ts +7 -7
  91. package/elements/public_api.d.ts +25 -25
  92. package/esm2020/auth/bravobit-bb-foundation-auth.mjs +4 -4
  93. package/esm2020/auth/lib/auth.interceptor.mjs +93 -93
  94. package/esm2020/auth/lib/auth.module.mjs +54 -54
  95. package/esm2020/auth/lib/auth.service.mjs +281 -281
  96. package/esm2020/auth/lib/auth.session.mjs +131 -131
  97. package/esm2020/auth/lib/directives/authenticated.directive.mjs +31 -31
  98. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -80
  99. package/esm2020/auth/lib/directives/role.directive.mjs +37 -37
  100. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -34
  101. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -35
  102. package/esm2020/auth/lib/helpers/jwt.helper.mjs +69 -69
  103. package/esm2020/auth/lib/helpers/mapper.helper.mjs +35 -35
  104. package/esm2020/auth/lib/interfaces/config.interface.mjs +3 -3
  105. package/esm2020/auth/lib/interfaces/mapper.interface.mjs +2 -2
  106. package/esm2020/auth/lib/interfaces/provider.interface.mjs +2 -2
  107. package/esm2020/auth/lib/interfaces/token.interface.mjs +2 -2
  108. package/esm2020/auth/lib/permissions.service.mjs +56 -56
  109. package/esm2020/auth/lib/providers/email.provider.mjs +25 -25
  110. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -19
  111. package/esm2020/auth/lib/tokens/use-authorization.token.mjs +3 -3
  112. package/esm2020/auth/public_api.mjs +19 -19
  113. package/esm2020/bravobit-bb-foundation.mjs +4 -4
  114. package/esm2020/collections/bravobit-bb-foundation-collections.mjs +4 -4
  115. package/esm2020/collections/lib/collection.mjs +100 -102
  116. package/esm2020/collections/lib/collections.module.mjs +54 -54
  117. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -123
  118. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -31
  119. package/esm2020/collections/lib/components/collections.directive.mjs +43 -43
  120. package/esm2020/collections/lib/interfaces/collection.interface.mjs +2 -2
  121. package/esm2020/collections/lib/providers/api-collection.provider.mjs +91 -71
  122. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -13
  123. package/esm2020/collections/lib/providers/local-collection.provider.mjs +16 -16
  124. package/esm2020/collections/public_api.mjs +10 -10
  125. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +4 -4
  126. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +153 -153
  127. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +61 -61
  128. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -19
  129. package/esm2020/controls/lib/controls.module.mjs +16 -16
  130. package/esm2020/controls/public_api.mjs +5 -5
  131. package/esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs +4 -4
  132. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -56
  133. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -30
  134. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -31
  135. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -29
  136. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -75
  137. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -99
  138. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -62
  139. package/esm2020/dashboard/lib/dashboard.module.mjs +47 -47
  140. package/esm2020/dashboard/public_api.mjs +9 -9
  141. package/esm2020/dialog/bravobit-bb-foundation-dialog.mjs +4 -4
  142. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -12
  143. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -37
  144. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +153 -153
  145. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -25
  146. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -11
  147. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -46
  148. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -134
  149. package/esm2020/dialog/lib/dialog.injector.mjs +18 -18
  150. package/esm2020/dialog/lib/dialog.insertion.mjs +16 -16
  151. package/esm2020/dialog/lib/dialog.interfaces.mjs +3 -3
  152. package/esm2020/dialog/lib/dialog.module.mjs +68 -68
  153. package/esm2020/dialog/lib/dialog.ref.mjs +22 -22
  154. package/esm2020/dialog/lib/dialog.service.mjs +77 -77
  155. package/esm2020/dialog/public_api.mjs +10 -10
  156. package/esm2020/elements/bravobit-bb-foundation-elements.mjs +4 -4
  157. package/esm2020/elements/lib/avatar/avatar.component.mjs +145 -145
  158. package/esm2020/elements/lib/button/button.component.mjs +61 -61
  159. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -73
  160. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -304
  161. package/esm2020/elements/lib/directives/addon.directive.mjs +29 -29
  162. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -72
  163. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +77 -77
  164. package/esm2020/elements/lib/directives/focus.directive.mjs +39 -39
  165. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -50
  166. package/esm2020/elements/lib/directives/input.directive.mjs +136 -136
  167. package/esm2020/elements/lib/directives/template.directive.mjs +28 -28
  168. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -100
  169. package/esm2020/elements/lib/elements.interfaces.mjs +4 -4
  170. package/esm2020/elements/lib/elements.module.mjs +177 -177
  171. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -236
  172. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -49
  173. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -108
  174. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -18
  175. package/esm2020/elements/lib/icon/icon.component.mjs +102 -102
  176. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -106
  177. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -42
  178. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +28 -28
  179. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -94
  180. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -25
  181. package/esm2020/elements/lib/tag/tag.component.mjs +18 -18
  182. package/esm2020/elements/public_api.mjs +26 -26
  183. package/esm2020/http/bravobit-bb-foundation-http.mjs +4 -4
  184. package/esm2020/http/lib/classes/http.config.mjs +29 -29
  185. package/esm2020/http/lib/classes/http.error.mjs +20 -20
  186. package/esm2020/http/lib/http.interfaces.mjs +2 -2
  187. package/esm2020/http/lib/http.module.mjs +43 -43
  188. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -50
  189. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -32
  190. package/esm2020/http/public_api.mjs +7 -7
  191. package/esm2020/lib/core/miscellaneous/regex.mjs +5 -5
  192. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -85
  193. package/esm2020/lib/core/mixins/can-disable.mjs +16 -16
  194. package/esm2020/lib/core/mixins/can-hide-errors.mjs +16 -16
  195. package/esm2020/lib/core/mixins/can-load.mjs +16 -16
  196. package/esm2020/lib/core/mixins/constructor.mjs +2 -2
  197. package/esm2020/lib/core/mixins/has-error.mjs +16 -16
  198. package/esm2020/lib/core/mixins/is-focused.mjs +16 -16
  199. package/esm2020/lib/core/mixins/is-grouped.mjs +16 -16
  200. package/esm2020/lib/core/mixins/is-readonly.mjs +16 -16
  201. package/esm2020/lib/core/mixins/is-required.mjs +16 -16
  202. package/esm2020/lib/core/services/clipboard.service.mjs +70 -70
  203. package/esm2020/lib/core/services/exif.service.mjs +163 -163
  204. package/esm2020/lib/core/services/file-loader.service.mjs +87 -87
  205. package/esm2020/lib/core/services/image-converter.service.mjs +123 -123
  206. package/esm2020/lib/core/services/languages.service.mjs +74 -74
  207. package/esm2020/lib/core/services/network.service.mjs +55 -55
  208. package/esm2020/lib/core/services/patch.service.mjs +63 -63
  209. package/esm2020/lib/core/services/platform.service.mjs +42 -42
  210. package/esm2020/lib/core/tokens/accept-language.token.mjs +3 -3
  211. package/esm2020/lib/core/tokens/base-url.token.mjs +3 -3
  212. package/esm2020/lib/core/tokens/cookie.token.mjs +3 -3
  213. package/esm2020/lib/core/tokens/location.token.mjs +6 -6
  214. package/esm2020/lib/core/tokens/navigator.token.mjs +6 -6
  215. package/esm2020/lib/core/tokens/window.token.mjs +12 -12
  216. package/esm2020/localize/bravobit-bb-foundation-localize.mjs +4 -4
  217. package/esm2020/localize/lib/functions/date.function.mjs +18 -18
  218. package/esm2020/localize/lib/functions/lowercase.function.mjs +13 -13
  219. package/esm2020/localize/lib/functions/uppercase.function.mjs +13 -13
  220. package/esm2020/localize/lib/handlers/missing.handler.mjs +15 -15
  221. package/esm2020/localize/lib/interfaces/config.interfaces.mjs +7 -7
  222. package/esm2020/localize/lib/interfaces/functions.interfaces.mjs +8 -8
  223. package/esm2020/localize/lib/interfaces/handlers.interfaces.mjs +2 -2
  224. package/esm2020/localize/lib/interfaces/options.interfaces.mjs +6 -6
  225. package/esm2020/localize/lib/localizations/dutch.localization.mjs +45 -45
  226. package/esm2020/localize/lib/localizations/english.localization.mjs +45 -45
  227. package/esm2020/localize/lib/localize.dictionary.mjs +26 -26
  228. package/esm2020/localize/lib/localize.module.mjs +71 -71
  229. package/esm2020/localize/lib/localize.pipe.mjs +49 -49
  230. package/esm2020/localize/lib/localize.service.mjs +207 -207
  231. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -88
  232. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +28 -28
  233. package/esm2020/localize/lib/views/localize-template.directive.mjs +21 -21
  234. package/esm2020/localize/public_api.mjs +17 -17
  235. package/esm2020/masking/bravobit-bb-foundation-masking.mjs +4 -4
  236. package/esm2020/masking/lib/input-mask.directive.mjs +117 -110
  237. package/esm2020/masking/lib/input-mask.interface.mjs +2 -2
  238. package/esm2020/masking/lib/masking.module.mjs +16 -16
  239. package/esm2020/masking/lib/masking.service.mjs +103 -94
  240. package/esm2020/masking/public_api.mjs +5 -5
  241. package/esm2020/notifications/bravobit-bb-foundation-notifications.mjs +4 -4
  242. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -100
  243. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -47
  244. package/esm2020/notifications/lib/notifications.animations.mjs +28 -28
  245. package/esm2020/notifications/lib/notifications.injector.mjs +18 -18
  246. package/esm2020/notifications/lib/notifications.interfaces.mjs +20 -20
  247. package/esm2020/notifications/lib/notifications.module.mjs +30 -30
  248. package/esm2020/notifications/lib/notifications.service.mjs +145 -145
  249. package/esm2020/notifications/public_api.mjs +4 -4
  250. package/esm2020/public_api.mjs +29 -29
  251. package/esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs +4 -4
  252. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -185
  253. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -90
  254. package/esm2020/recaptcha/lib/recaptcha.interface.mjs +3 -3
  255. package/esm2020/recaptcha/lib/recaptcha.module.mjs +27 -27
  256. package/esm2020/recaptcha/public_api.mjs +5 -5
  257. package/esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs +4 -4
  258. package/esm2020/rxjs/lib/observables/get-control-value.observable.mjs +6 -0
  259. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -10
  260. package/esm2020/rxjs/lib/operators/filter-nil.operator.mjs +5 -5
  261. package/esm2020/rxjs/public_api.mjs +4 -3
  262. package/esm2020/storage/bravobit-bb-foundation-storage.mjs +4 -4
  263. package/esm2020/storage/lib/interfaces/attributes.interface.mjs +2 -2
  264. package/esm2020/storage/lib/interfaces/memory.interface.mjs +2 -2
  265. package/esm2020/storage/lib/interfaces/strategy.interface.mjs +2 -2
  266. package/esm2020/storage/lib/storage.service.mjs +109 -109
  267. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -142
  268. package/esm2020/storage/lib/strategies/memory-storage.strategy.mjs +56 -56
  269. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -102
  270. package/esm2020/storage/public_api.mjs +8 -8
  271. package/esm2020/table/bravobit-bb-foundation-table.mjs +4 -4
  272. package/esm2020/table/lib/components/table/table.component.mjs +191 -191
  273. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -11
  274. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -131
  275. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -136
  276. package/esm2020/table/lib/data/datasource.data.mjs +32 -32
  277. package/esm2020/table/lib/data/generic.data.mjs +72 -72
  278. package/esm2020/table/lib/interfaces/datasource.interface.mjs +2 -2
  279. package/esm2020/table/lib/interfaces/table.interfaces.mjs +2 -2
  280. package/esm2020/table/lib/table.module.mjs +42 -42
  281. package/esm2020/table/public_api.mjs +10 -10
  282. package/esm2020/theming/bravobit-bb-foundation-theming.mjs +4 -4
  283. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +2 -2
  284. package/esm2020/theming/lib/themes/checkbox.theme.mjs +2 -2
  285. package/esm2020/theming/lib/themes/theme.mjs +34 -0
  286. package/esm2020/theming/lib/theming.interface.mjs +3 -3
  287. package/esm2020/theming/lib/theming.module.mjs +38 -38
  288. package/esm2020/theming/lib/theming.service.mjs +77 -100
  289. package/esm2020/theming/public_api.mjs +7 -4
  290. package/fesm2015/bravobit-bb-foundation-auth.mjs +930 -930
  291. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  292. package/fesm2015/bravobit-bb-foundation-collections.mjs +443 -424
  293. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  294. package/fesm2015/bravobit-bb-foundation-controls.mjs +229 -229
  295. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  296. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +382 -382
  297. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  298. package/fesm2015/bravobit-bb-foundation-dialog.mjs +540 -540
  299. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  300. package/fesm2015/bravobit-bb-foundation-elements.mjs +1970 -1970
  301. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  302. package/fesm2015/bravobit-bb-foundation-http.mjs +156 -156
  303. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  304. package/fesm2015/bravobit-bb-foundation-localize.mjs +608 -608
  305. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  306. package/fesm2015/bravobit-bb-foundation-masking.mjs +231 -214
  307. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  308. package/fesm2015/bravobit-bb-foundation-notifications.mjs +348 -348
  309. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  310. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +290 -290
  311. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  312. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +14 -10
  313. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  314. package/fesm2015/bravobit-bb-foundation-storage.mjs +401 -401
  315. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  316. package/fesm2015/bravobit-bb-foundation-table.mjs +571 -571
  317. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  318. package/fesm2015/bravobit-bb-foundation-theming.mjs +151 -140
  319. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -1
  320. package/fesm2015/bravobit-bb-foundation.mjs +859 -859
  321. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  322. package/fesm2020/bravobit-bb-foundation-auth.mjs +882 -882
  323. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  324. package/fesm2020/bravobit-bb-foundation-collections.mjs +432 -414
  325. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  326. package/fesm2020/bravobit-bb-foundation-controls.mjs +227 -227
  327. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  328. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +370 -370
  329. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  330. package/fesm2020/bravobit-bb-foundation-dialog.mjs +539 -539
  331. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  332. package/fesm2020/bravobit-bb-foundation-elements.mjs +1927 -1927
  333. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  334. package/fesm2020/bravobit-bb-foundation-http.mjs +148 -148
  335. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  336. package/fesm2020/bravobit-bb-foundation-localize.mjs +587 -587
  337. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  338. package/fesm2020/bravobit-bb-foundation-masking.mjs +219 -203
  339. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  340. package/fesm2020/bravobit-bb-foundation-notifications.mjs +346 -346
  341. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  342. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +280 -280
  343. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  344. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +17 -13
  345. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  346. package/fesm2020/bravobit-bb-foundation-storage.mjs +396 -396
  347. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  348. package/fesm2020/bravobit-bb-foundation-table.mjs +560 -560
  349. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  350. package/fesm2020/bravobit-bb-foundation-theming.mjs +141 -130
  351. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -1
  352. package/fesm2020/bravobit-bb-foundation.mjs +831 -831
  353. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  354. package/http/index.d.ts +5 -5
  355. package/http/lib/classes/http.config.d.ts +9 -9
  356. package/http/lib/classes/http.error.d.ts +7 -7
  357. package/http/lib/http.interfaces.d.ts +12 -12
  358. package/http/lib/http.module.d.ts +15 -15
  359. package/http/lib/interceptors/base-url.interceptor.d.ts +15 -15
  360. package/http/lib/interceptors/error.interceptor.d.ts +11 -11
  361. package/http/public_api.d.ts +6 -6
  362. package/index.d.ts +5 -5
  363. package/lib/core/miscellaneous/regex.d.ts +4 -4
  364. package/lib/core/miscellaneous/validator.d.ts +13 -13
  365. package/lib/core/mixins/can-disable.d.ts +6 -6
  366. package/lib/core/mixins/can-hide-errors.d.ts +6 -6
  367. package/lib/core/mixins/can-load.d.ts +6 -6
  368. package/lib/core/mixins/constructor.d.ts +1 -1
  369. package/lib/core/mixins/has-error.d.ts +6 -6
  370. package/lib/core/mixins/is-focused.d.ts +6 -6
  371. package/lib/core/mixins/is-grouped.d.ts +6 -6
  372. package/lib/core/mixins/is-readonly.d.ts +6 -6
  373. package/lib/core/mixins/is-required.d.ts +6 -6
  374. package/lib/core/services/clipboard.service.d.ts +18 -18
  375. package/lib/core/services/exif.service.d.ts +15 -15
  376. package/lib/core/services/file-loader.service.d.ts +13 -13
  377. package/lib/core/services/image-converter.service.d.ts +21 -21
  378. package/lib/core/services/languages.service.d.ts +16 -16
  379. package/lib/core/services/network.service.d.ts +14 -14
  380. package/lib/core/services/patch.service.d.ts +16 -16
  381. package/lib/core/services/platform.service.d.ts +18 -18
  382. package/lib/core/tokens/accept-language.token.d.ts +2 -2
  383. package/lib/core/tokens/base-url.token.d.ts +2 -2
  384. package/lib/core/tokens/cookie.token.d.ts +2 -2
  385. package/lib/core/tokens/location.token.d.ts +2 -2
  386. package/lib/core/tokens/navigator.token.d.ts +2 -2
  387. package/lib/core/tokens/window.token.d.ts +2 -2
  388. package/localize/index.d.ts +5 -5
  389. package/localize/lib/functions/date.function.d.ts +5 -5
  390. package/localize/lib/functions/lowercase.function.d.ts +5 -5
  391. package/localize/lib/functions/uppercase.function.d.ts +5 -5
  392. package/localize/lib/handlers/missing.handler.d.ts +6 -6
  393. package/localize/lib/interfaces/config.interfaces.d.ts +18 -18
  394. package/localize/lib/interfaces/functions.interfaces.d.ts +9 -9
  395. package/localize/lib/interfaces/handlers.interfaces.d.ts +6 -6
  396. package/localize/lib/interfaces/options.interfaces.d.ts +10 -10
  397. package/localize/lib/localizations/dutch.localization.d.ts +44 -44
  398. package/localize/lib/localizations/english.localization.d.ts +44 -44
  399. package/localize/lib/localize.dictionary.d.ts +7 -7
  400. package/localize/lib/localize.module.d.ts +17 -17
  401. package/localize/lib/localize.pipe.d.ts +12 -12
  402. package/localize/lib/localize.service.d.ts +40 -40
  403. package/localize/lib/views/localize-string/localize-string.component.d.ts +23 -23
  404. package/localize/lib/views/localize-template-or-string.directive.d.ts +10 -10
  405. package/localize/lib/views/localize-template.directive.d.ts +9 -9
  406. package/localize/public_api.d.ts +16 -16
  407. package/masking/index.d.ts +5 -5
  408. package/masking/lib/input-mask.directive.d.ts +38 -36
  409. package/masking/lib/input-mask.interface.d.ts +24 -20
  410. package/masking/lib/masking.module.d.ts +7 -7
  411. package/masking/lib/masking.service.d.ts +12 -12
  412. package/masking/public_api.d.ts +4 -4
  413. package/notifications/index.d.ts +5 -5
  414. package/notifications/lib/notifications-item/notifications-item.component.d.ts +34 -34
  415. package/notifications/lib/notifications-list/notifications-list.component.d.ts +16 -16
  416. package/notifications/lib/notifications.animations.d.ts +1 -1
  417. package/notifications/lib/notifications.injector.d.ts +8 -8
  418. package/notifications/lib/notifications.interfaces.d.ts +49 -49
  419. package/notifications/lib/notifications.module.d.ts +13 -13
  420. package/notifications/lib/notifications.service.d.ts +34 -34
  421. package/notifications/public_api.d.ts +3 -3
  422. package/package.json +1 -1
  423. package/public_api.d.ts +25 -25
  424. package/recaptcha/index.d.ts +5 -5
  425. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +47 -47
  426. package/recaptcha/lib/recaptcha-loader.service.d.ts +22 -22
  427. package/recaptcha/lib/recaptcha.interface.d.ts +14 -14
  428. package/recaptcha/lib/recaptcha.module.d.ts +10 -10
  429. package/recaptcha/public_api.d.ts +4 -4
  430. package/rxjs/index.d.ts +5 -5
  431. package/rxjs/lib/observables/get-control-value.observable.d.ts +3 -0
  432. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +8 -8
  433. package/rxjs/lib/operators/filter-nil.operator.d.ts +1 -1
  434. package/rxjs/public_api.d.ts +3 -2
  435. package/storage/index.d.ts +5 -5
  436. package/storage/lib/interfaces/attributes.interface.d.ts +13 -13
  437. package/storage/lib/interfaces/memory.interface.d.ts +7 -7
  438. package/storage/lib/interfaces/strategy.interface.d.ts +17 -17
  439. package/storage/lib/storage.service.d.ts +26 -26
  440. package/storage/lib/strategies/cookie-storage.strategy.d.ts +20 -20
  441. package/storage/lib/strategies/memory-storage.strategy.d.ts +11 -11
  442. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +15 -15
  443. package/storage/public_api.d.ts +7 -7
  444. package/table/index.d.ts +5 -5
  445. package/table/lib/components/table/table.component.d.ts +56 -56
  446. package/table/lib/components/table-cell/table-cell.component.d.ts +5 -5
  447. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +29 -29
  448. package/table/lib/components/table-pager/table-pager.component.d.ts +41 -41
  449. package/table/lib/data/datasource.data.d.ts +14 -14
  450. package/table/lib/data/generic.data.d.ts +23 -23
  451. package/table/lib/interfaces/datasource.interface.d.ts +17 -17
  452. package/table/lib/interfaces/table.interfaces.d.ts +1 -1
  453. package/table/lib/table.module.d.ts +14 -14
  454. package/table/public_api.d.ts +9 -9
  455. package/theming/index.d.ts +5 -5
  456. package/theming/lib/themes/checkbox-group.theme.d.ts +5 -5
  457. package/theming/lib/themes/checkbox.theme.d.ts +19 -19
  458. package/theming/lib/themes/theme.d.ts +12 -0
  459. package/theming/lib/theming.interface.d.ts +15 -14
  460. package/theming/lib/theming.module.d.ts +13 -13
  461. package/theming/lib/theming.service.d.ts +22 -24
  462. package/theming/public_api.d.ts +6 -3
@@ -12,404 +12,404 @@ import { RouterModule } from '@angular/router';
12
12
  import * as i3 from '@bravobit/bb-foundation/elements';
13
13
  import { ElementsModule } from '@bravobit/bb-foundation/elements';
14
14
 
15
- class BbDashboardSidebar {
16
- constructor(_storage) {
17
- this._storage = _storage;
18
- // Bindings.
19
- this.visibilityChanges = new BehaviorSubject(true);
20
- // State.
21
- this._state$ = new BehaviorSubject({});
22
- // Token.
23
- this._localStorageToken = 'bb-dashboard-sidebar-state';
24
- }
25
- ngOnInit() {
26
- // Retrieve the cache.
27
- this._cache = this._storage.get(this._localStorageToken) || {};
28
- }
29
- registerGroup(id) {
30
- // Get the old state.
31
- const oldState = this._state$.getValue();
32
- // Get the cache value so when it is undefined
33
- // we will default to true.
34
- const cacheValue = this._cache[id] === undefined ? true : this._cache[id];
35
- // Push the new state.
36
- this._state$.next(Object.assign(Object.assign({}, oldState), { [id]: cacheValue }));
37
- // Return the slice of the state that the group needs.
38
- return this._state$.pipe(map(state => state[id]));
39
- }
40
- unregisterGroup(id) {
41
- // Get the old groups.
42
- const oldState = this._state$.getValue();
43
- // Generate the new state without the id.
44
- const newState = Object.keys(oldState).reduce((object, key) => {
45
- if (key !== id) {
46
- object[key] = oldState[key];
47
- }
48
- return object;
49
- }, {});
50
- // Push the new state.
51
- this._state$.next(newState);
52
- }
53
- toggleGroup(id, newValue) {
54
- // Get the old state.
55
- const oldState = this._state$.getValue();
56
- // Create the new state.
57
- const newState = Object.assign(Object.assign({}, oldState), { [id]: newValue });
58
- // Push the new state.
59
- this._state$.next(newState);
60
- // Save in the cache.
61
- this._storage.set(this._localStorageToken, newState);
62
- }
63
- toggle() {
64
- const current = this.visibilityChanges.getValue();
65
- this.visibilityChanges.next(!current);
66
- }
67
- open() {
68
- this.visibilityChanges.next(true);
69
- }
70
- close() {
71
- this.visibilityChanges.next(false);
72
- }
73
- }
74
- BbDashboardSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebar, deps: [{ token: i1.Storage }], target: i0.ɵɵFactoryTarget.Component });
75
- BbDashboardSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardSidebar, selector: "bb-dashboard-sidebar", host: { attributes: { "role": "navigation" }, properties: { "class.visible": "visibilityChanges.getValue()" }, classAttribute: "bb-dashboard-sidebar" }, ngImport: i0, template: "<!--\r\n The optional header element.\r\n-->\r\n<ng-content select=\"header\"></ng-content>\r\n\r\n<!--\r\n The scroll area that contains the\r\n groups in the navigation.\r\n-->\r\n<div class=\"bb-dashboard-sidebar-scroll\">\r\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\r\n</div>\r\n\r\n<!--\r\n The optional footer element.\r\n-->\r\n<ng-content select=\"footer\"></ng-content>\r\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebar, decorators: [{
77
- type: Component,
78
- args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
79
- 'class': 'bb-dashboard-sidebar',
80
- '[class.visible]': 'visibilityChanges.getValue()',
81
- 'role': 'navigation'
82
- }, template: "<!--\r\n The optional header element.\r\n-->\r\n<ng-content select=\"header\"></ng-content>\r\n\r\n<!--\r\n The scroll area that contains the\r\n groups in the navigation.\r\n-->\r\n<div class=\"bb-dashboard-sidebar-scroll\">\r\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\r\n</div>\r\n\r\n<!--\r\n The optional footer element.\r\n-->\r\n<ng-content select=\"footer\"></ng-content>\r\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"] }]
15
+ class BbDashboardSidebar {
16
+ constructor(_storage) {
17
+ this._storage = _storage;
18
+ // Bindings.
19
+ this.visibilityChanges = new BehaviorSubject(true);
20
+ // State.
21
+ this._state$ = new BehaviorSubject({});
22
+ // Token.
23
+ this._localStorageToken = 'bb-dashboard-sidebar-state';
24
+ }
25
+ ngOnInit() {
26
+ // Retrieve the cache.
27
+ this._cache = this._storage.get(this._localStorageToken) || {};
28
+ }
29
+ registerGroup(id) {
30
+ // Get the old state.
31
+ const oldState = this._state$.getValue();
32
+ // Get the cache value so when it is undefined
33
+ // we will default to true.
34
+ const cacheValue = this._cache[id] === undefined ? true : this._cache[id];
35
+ // Push the new state.
36
+ this._state$.next(Object.assign(Object.assign({}, oldState), { [id]: cacheValue }));
37
+ // Return the slice of the state that the group needs.
38
+ return this._state$.pipe(map(state => state[id]));
39
+ }
40
+ unregisterGroup(id) {
41
+ // Get the old groups.
42
+ const oldState = this._state$.getValue();
43
+ // Generate the new state without the id.
44
+ const newState = Object.keys(oldState).reduce((object, key) => {
45
+ if (key !== id) {
46
+ object[key] = oldState[key];
47
+ }
48
+ return object;
49
+ }, {});
50
+ // Push the new state.
51
+ this._state$.next(newState);
52
+ }
53
+ toggleGroup(id, newValue) {
54
+ // Get the old state.
55
+ const oldState = this._state$.getValue();
56
+ // Create the new state.
57
+ const newState = Object.assign(Object.assign({}, oldState), { [id]: newValue });
58
+ // Push the new state.
59
+ this._state$.next(newState);
60
+ // Save in the cache.
61
+ this._storage.set(this._localStorageToken, newState);
62
+ }
63
+ toggle() {
64
+ const current = this.visibilityChanges.getValue();
65
+ this.visibilityChanges.next(!current);
66
+ }
67
+ open() {
68
+ this.visibilityChanges.next(true);
69
+ }
70
+ close() {
71
+ this.visibilityChanges.next(false);
72
+ }
73
+ }
74
+ BbDashboardSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebar, deps: [{ token: i1.Storage }], target: i0.ɵɵFactoryTarget.Component });
75
+ BbDashboardSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardSidebar, selector: "bb-dashboard-sidebar", host: { attributes: { "role": "navigation" }, properties: { "class.visible": "visibilityChanges.getValue()" }, classAttribute: "bb-dashboard-sidebar" }, ngImport: i0, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebar, decorators: [{
77
+ type: Component,
78
+ args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
79
+ 'class': 'bb-dashboard-sidebar',
80
+ '[class.visible]': 'visibilityChanges.getValue()',
81
+ 'role': 'navigation'
82
+ }, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i1.Storage }]; } });
84
84
 
85
- class BbDashboard {
86
- constructor(_patch, _platform, _renderer) {
87
- this._patch = _patch;
88
- this._platform = _platform;
89
- this._renderer = _renderer;
90
- // Inputs.
91
- this.backgroundColor = '#e7eaed';
92
- this.maxWidth = '1200px';
93
- this.padding = '20px';
94
- }
95
- ngOnInit() {
96
- // Set the vertical height for mobile devices.
97
- this._patch.mobileVerticalHeight();
98
- // Set the HTML class to prevent scrolling.
99
- return this.setHtmlClass();
100
- }
101
- ngOnDestroy() {
102
- // Remove the HTML class.
103
- this.setHtmlClass(true);
104
- }
105
- setHtmlClass(shouldRemove = false) {
106
- // Check if we are on a browser.
107
- if (!this._platform.isBrowser) {
108
- return;
109
- }
110
- // Define the class name.
111
- const className = 'bb-dashboard-html';
112
- // Add or remove the class.
113
- return shouldRemove
114
- ? this._renderer.removeClass(document.documentElement, className)
115
- : this._renderer.addClass(document.documentElement, className);
116
- }
117
- }
118
- BbDashboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboard, deps: [{ token: i1$1.Patch }, { token: i1$1.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
119
- BbDashboard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboard, selector: "bb-dashboard", inputs: { backgroundColor: "backgroundColor", maxWidth: "maxWidth", padding: "padding" }, host: { classAttribute: "bb-dashboard" }, queries: [{ propertyName: "sidebar", first: true, predicate: BbDashboardSidebar, descendants: true }], ngImport: i0, template: "<!--\r\n The outlet for where the sidebar\r\n will be placed (if provided).\r\n-->\r\n<ng-content select=\"bb-dashboard-sidebar\">\r\n</ng-content>\r\n\r\n<!--\r\n The section containing the header\r\n and the main content.\r\n-->\r\n<section [style.background-color]=\"backgroundColor\"\r\n class=\"bb-dashboard-section\">\r\n <!--\r\n The outlet for where the header\r\n will be placed (if provided).\r\n -->\r\n <ng-content select=\"bb-dashboard-header\">\r\n </ng-content>\r\n\r\n <!--\r\n The outlet of the content that\r\n will be provided by the router.\r\n -->\r\n <main [style.padding]=\"padding\"\r\n class=\"bb-dashboard-scroll\">\r\n <div [style.max-width]=\"maxWidth\"\r\n class=\"bb-dashboard-container\">\r\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <!--\r\n The outlet for where the footer\r\n will be placed (if provided).\r\n -->\r\n <ng-content select=\"bb-dashboard-footer\">\r\n </ng-content>\r\n </main>\r\n</section>\r\n\r\n<!--\r\n The backdrop that will be visible when\r\n the sidebar is opened (only on mobile).\r\n-->\r\n<div *ngIf=\"!!sidebar\"\r\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\r\n (click)=\"sidebar?.toggle()\"\r\n class=\"bb-dashboard-backdrop\">\r\n</div>\r\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboard, decorators: [{
121
- type: Component,
122
- args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
123
- 'class': 'bb-dashboard'
124
- }, template: "<!--\r\n The outlet for where the sidebar\r\n will be placed (if provided).\r\n-->\r\n<ng-content select=\"bb-dashboard-sidebar\">\r\n</ng-content>\r\n\r\n<!--\r\n The section containing the header\r\n and the main content.\r\n-->\r\n<section [style.background-color]=\"backgroundColor\"\r\n class=\"bb-dashboard-section\">\r\n <!--\r\n The outlet for where the header\r\n will be placed (if provided).\r\n -->\r\n <ng-content select=\"bb-dashboard-header\">\r\n </ng-content>\r\n\r\n <!--\r\n The outlet of the content that\r\n will be provided by the router.\r\n -->\r\n <main [style.padding]=\"padding\"\r\n class=\"bb-dashboard-scroll\">\r\n <div [style.max-width]=\"maxWidth\"\r\n class=\"bb-dashboard-container\">\r\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\r\n\r\n <ng-content></ng-content>\r\n </div>\r\n <!--\r\n The outlet for where the footer\r\n will be placed (if provided).\r\n -->\r\n <ng-content select=\"bb-dashboard-footer\">\r\n </ng-content>\r\n </main>\r\n</section>\r\n\r\n<!--\r\n The backdrop that will be visible when\r\n the sidebar is opened (only on mobile).\r\n-->\r\n<div *ngIf=\"!!sidebar\"\r\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\r\n (click)=\"sidebar?.toggle()\"\r\n class=\"bb-dashboard-backdrop\">\r\n</div>\r\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"] }]
125
- }], ctorParameters: function () { return [{ type: i1$1.Patch }, { type: i1$1.Platform }, { type: i0.Renderer2 }]; }, propDecorators: { sidebar: [{
126
- type: ContentChild,
127
- args: [BbDashboardSidebar]
128
- }], backgroundColor: [{
129
- type: Input
130
- }], maxWidth: [{
131
- type: Input
132
- }], padding: [{
133
- type: Input
85
+ class BbDashboard {
86
+ constructor(_patch, _platform, _renderer) {
87
+ this._patch = _patch;
88
+ this._platform = _platform;
89
+ this._renderer = _renderer;
90
+ // Inputs.
91
+ this.backgroundColor = '#e7eaed';
92
+ this.maxWidth = '1200px';
93
+ this.padding = '20px';
94
+ }
95
+ ngOnInit() {
96
+ // Set the vertical height for mobile devices.
97
+ this._patch.mobileVerticalHeight();
98
+ // Set the HTML class to prevent scrolling.
99
+ return this.setHtmlClass();
100
+ }
101
+ ngOnDestroy() {
102
+ // Remove the HTML class.
103
+ this.setHtmlClass(true);
104
+ }
105
+ setHtmlClass(shouldRemove = false) {
106
+ // Check if we are on a browser.
107
+ if (!this._platform.isBrowser) {
108
+ return;
109
+ }
110
+ // Define the class name.
111
+ const className = 'bb-dashboard-html';
112
+ // Add or remove the class.
113
+ return shouldRemove
114
+ ? this._renderer.removeClass(document.documentElement, className)
115
+ : this._renderer.addClass(document.documentElement, className);
116
+ }
117
+ }
118
+ BbDashboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboard, deps: [{ token: i1$1.Patch }, { token: i1$1.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
119
+ BbDashboard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboard, selector: "bb-dashboard", inputs: { backgroundColor: "backgroundColor", maxWidth: "maxWidth", padding: "padding" }, host: { classAttribute: "bb-dashboard" }, queries: [{ propertyName: "sidebar", first: true, predicate: BbDashboardSidebar, descendants: true }], ngImport: i0, template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboard, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
123
+ 'class': 'bb-dashboard'
124
+ }, template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"] }]
125
+ }], ctorParameters: function () { return [{ type: i1$1.Patch }, { type: i1$1.Platform }, { type: i0.Renderer2 }]; }, propDecorators: { sidebar: [{
126
+ type: ContentChild,
127
+ args: [BbDashboardSidebar]
128
+ }], backgroundColor: [{
129
+ type: Input
130
+ }], maxWidth: [{
131
+ type: Input
132
+ }], padding: [{
133
+ type: Input
134
134
  }] } });
135
135
 
136
- class BbDashboardHeader {
137
- constructor(_parent) {
138
- this._parent = _parent;
139
- }
140
- get showSidebarButton() {
141
- var _a;
142
- return !!((_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar);
143
- }
144
- get isSidebarVisible() {
145
- var _a, _b, _c;
146
- return (_c = (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar) === null || _b === void 0 ? void 0 : _b.visibilityChanges) !== null && _c !== void 0 ? _c : of(false);
147
- }
148
- onToggleSidebarClicked() {
149
- var _a, _b;
150
- (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar) === null || _b === void 0 ? void 0 : _b.toggle();
151
- }
152
- }
153
- BbDashboardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardHeader, deps: [{ token: BbDashboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
154
- BbDashboardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardHeader, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\r\n The button that toggles the sidebar.\r\n-->\r\n<button *ngIf=\"showSidebarButton\"\r\n (click)=\"onToggleSidebarClicked()\"\r\n [class.reversed]=\"isSidebarVisible | async\"\r\n class=\"bb-dashboard-header-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n role=\"switch\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 157 109\"\r\n width=\"17\"\r\n height=\"12\"\r\n role=\"img\">\r\n <title>\r\n Toggle\r\n </title>\r\n <path fill=\"#fff\"\r\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\r\n </path>\r\n </svg>\r\n</button>\r\n\r\n<!--\r\n The extra items of the header.\r\n-->\r\n<div class=\"bb-dashboard-header-items\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardHeader, decorators: [{
156
- type: Component,
157
- args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
158
- 'class': 'bb-dashboard-header'
159
- }, template: "<!--\r\n The button that toggles the sidebar.\r\n-->\r\n<button *ngIf=\"showSidebarButton\"\r\n (click)=\"onToggleSidebarClicked()\"\r\n [class.reversed]=\"isSidebarVisible | async\"\r\n class=\"bb-dashboard-header-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n role=\"switch\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 157 109\"\r\n width=\"17\"\r\n height=\"12\"\r\n role=\"img\">\r\n <title>\r\n Toggle\r\n </title>\r\n <path fill=\"#fff\"\r\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\r\n </path>\r\n </svg>\r\n</button>\r\n\r\n<!--\r\n The extra items of the header.\r\n-->\r\n<div class=\"bb-dashboard-header-items\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"] }]
160
- }], ctorParameters: function () {
161
- return [{ type: BbDashboard, decorators: [{
162
- type: Optional
163
- }] }];
136
+ class BbDashboardHeader {
137
+ constructor(_parent) {
138
+ this._parent = _parent;
139
+ }
140
+ get showSidebarButton() {
141
+ var _a;
142
+ return !!((_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar);
143
+ }
144
+ get isSidebarVisible() {
145
+ var _a, _b, _c;
146
+ return (_c = (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar) === null || _b === void 0 ? void 0 : _b.visibilityChanges) !== null && _c !== void 0 ? _c : of(false);
147
+ }
148
+ onToggleSidebarClicked() {
149
+ var _a, _b;
150
+ (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar) === null || _b === void 0 ? void 0 : _b.toggle();
151
+ }
152
+ }
153
+ BbDashboardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardHeader, deps: [{ token: BbDashboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
154
+ BbDashboardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardHeader, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardHeader, decorators: [{
156
+ type: Component,
157
+ args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
158
+ 'class': 'bb-dashboard-header'
159
+ }, template: "<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"] }]
160
+ }], ctorParameters: function () {
161
+ return [{ type: BbDashboard, decorators: [{
162
+ type: Optional
163
+ }] }];
164
164
  } });
165
165
 
166
- class BbDashboardMenu {
167
- constructor() {
168
- // Inputs.
169
- this.title = null;
170
- this.imageUrl = null;
171
- this.backUrlLink = null;
172
- this.backUrlTitle = null;
173
- }
174
- }
175
- BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- BbDashboardMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardMenu, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\r\n [routerLink]=\"backUrlLink\"\r\n class=\"bb-dashboard-menu-link\">\r\n {{ backUrlTitle }}\r\n</a>\r\n\r\n<div class=\"bb-dashboard-menu-row\">\r\n <img *ngIf=\"imageUrl\"\r\n [src]=\"imageUrl\"\r\n class=\"bb-dashboard-menu-image\"\r\n alt=\"Menu image\">\r\n <h1 *ngIf=\"title as titleLabel\"\r\n class=\"bb-dashboard-menu-title\">\r\n {{ titleLabel }}\r\n </h1>\r\n</div>\r\n\r\n<nav class=\"bb-dashboard-menu-navigation\">\r\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\r\n</nav>\r\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenu, decorators: [{
178
- type: Component,
179
- args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
180
- 'class': 'bb-dashboard-menu',
181
- 'role': 'navigation'
182
- }, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\r\n [routerLink]=\"backUrlLink\"\r\n class=\"bb-dashboard-menu-link\">\r\n {{ backUrlTitle }}\r\n</a>\r\n\r\n<div class=\"bb-dashboard-menu-row\">\r\n <img *ngIf=\"imageUrl\"\r\n [src]=\"imageUrl\"\r\n class=\"bb-dashboard-menu-image\"\r\n alt=\"Menu image\">\r\n <h1 *ngIf=\"title as titleLabel\"\r\n class=\"bb-dashboard-menu-title\">\r\n {{ titleLabel }}\r\n </h1>\r\n</div>\r\n\r\n<nav class=\"bb-dashboard-menu-navigation\">\r\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\r\n</nav>\r\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"] }]
183
- }], propDecorators: { title: [{
184
- type: Input
185
- }], imageUrl: [{
186
- type: Input
187
- }], backUrlLink: [{
188
- type: Input
189
- }], backUrlTitle: [{
190
- type: Input
166
+ class BbDashboardMenu {
167
+ constructor() {
168
+ // Inputs.
169
+ this.title = null;
170
+ this.imageUrl = null;
171
+ this.backUrlLink = null;
172
+ this.backUrlTitle = null;
173
+ }
174
+ }
175
+ BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
+ BbDashboardMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardMenu, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardMenu, decorators: [{
178
+ type: Component,
179
+ args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
180
+ 'class': 'bb-dashboard-menu',
181
+ 'role': 'navigation'
182
+ }, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"] }]
183
+ }], propDecorators: { title: [{
184
+ type: Input
185
+ }], imageUrl: [{
186
+ type: Input
187
+ }], backUrlLink: [{
188
+ type: Input
189
+ }], backUrlTitle: [{
190
+ type: Input
191
191
  }] } });
192
192
 
193
- class BbDashboardMenuItemBase {
194
- }
195
- const BbDashboardMenuItemMixinBase = mixinDisabled(BbDashboardMenuItemBase);
196
- class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase {
197
- stopDisabledEvents(event) {
198
- // If the menu item is not disabled let all events pass.
199
- if (!this.disabled) {
200
- return;
201
- }
202
- // If the menu item is disabled stop the event from
203
- // bubbling up.
204
- event.preventDefault();
205
- event.stopImmediatePropagation();
206
- }
207
- }
208
- BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
209
- BbDashboardMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardMenuItem, selector: "[bb-dashboard-menu-item]", inputs: { disabled: "disabled" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\r\n<span class=\"bb-dashboard-menu-item-content\">\r\n <ng-content></ng-content>\r\n</span>\r\n<ng-content select=\"[bbSuffix]\"></ng-content>\r\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
211
- type: Component,
212
- args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
213
- 'class': 'bb-dashboard-menu-item',
214
- '[class.disabled]': 'disabled',
215
- '(click)': 'stopDisabledEvents($event)'
216
- }, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\r\n<span class=\"bb-dashboard-menu-item-content\">\r\n <ng-content></ng-content>\r\n</span>\r\n<ng-content select=\"[bbSuffix]\"></ng-content>\r\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"] }]
193
+ class BbDashboardMenuItemBase {
194
+ }
195
+ const BbDashboardMenuItemMixinBase = mixinDisabled(BbDashboardMenuItemBase);
196
+ class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase {
197
+ stopDisabledEvents(event) {
198
+ // If the menu item is not disabled let all events pass.
199
+ if (!this.disabled) {
200
+ return;
201
+ }
202
+ // If the menu item is disabled stop the event from
203
+ // bubbling up.
204
+ event.preventDefault();
205
+ event.stopImmediatePropagation();
206
+ }
207
+ }
208
+ BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
209
+ BbDashboardMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardMenuItem, selector: "[bb-dashboard-menu-item]", inputs: { disabled: "disabled" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
211
+ type: Component,
212
+ args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
213
+ 'class': 'bb-dashboard-menu-item',
214
+ '[class.disabled]': 'disabled',
215
+ '(click)': 'stopDisabledEvents($event)'
216
+ }, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"] }]
217
217
  }] });
218
218
 
219
- class BbDashboardSidebarGroupBase {
220
- constructor(_parent) {
221
- this._parent = _parent;
222
- }
223
- }
224
- const BbDashboardSidebarGroupMixinBase = mixinDisabled(BbDashboardSidebarGroupBase);
225
- class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase {
226
- constructor(_parent) {
227
- super(_parent);
228
- this._parent = _parent;
229
- // Inputs.
230
- this.id = null;
231
- this.icon = null;
232
- this.title = null;
233
- // State.
234
- this._isExpanded = false;
235
- }
236
- get hasToggle() {
237
- // Check if the user provided a icon and/or title.
238
- return !!this.icon || !!this.title;
239
- }
240
- get isExpanded() {
241
- // If there is an icon or title the group can be
242
- // expanded by clicking, else not.
243
- return this.hasToggle
244
- ? this._isExpanded
245
- : true;
246
- }
247
- ngOnInit() {
248
- var _a, _b;
249
- // Check if the id has been supplied.
250
- if (!this.id) {
251
- throw new Error('Id is required.');
252
- }
253
- // Register the group at the parent and
254
- // retrieve the slice of the state.
255
- const observable$ = (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.registerGroup(this.id)) !== null && _b !== void 0 ? _b : of(false);
256
- // Subscribe to the state.
257
- this._subscription = observable$
258
- .subscribe(isExpanded => this._isExpanded = isExpanded);
259
- }
260
- ngOnDestroy() {
261
- // Unsubscribe to prevent memory leaks.
262
- this._subscription && this._subscription.unsubscribe();
263
- // Unregister the group at the parent.
264
- this._parent && this._parent.unregisterGroup(this.id);
265
- }
266
- onClick() {
267
- var _a;
268
- // Verify the group is not disabled.
269
- if (this.disabled) {
270
- return;
271
- }
272
- // Change the state.
273
- const newValue = !this._isExpanded;
274
- // Set the state of the sidebar group.
275
- (_a = this._parent) === null || _a === void 0 ? void 0 : _a.toggleGroup(this.id, newValue);
276
- }
277
- onGroupClicked(event) {
278
- // If the group is not disabled don't do anything.
279
- if (!this.disabled) {
280
- return;
281
- }
282
- event.preventDefault();
283
- event.stopPropagation();
284
- }
285
- }
286
- BbDashboardSidebarGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
287
- BbDashboardSidebarGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardSidebarGroup, selector: "bb-dashboard-sidebar-group", inputs: { disabled: "disabled", id: "id", icon: "icon", title: "title" }, host: { attributes: { "role": "group" }, listeners: { "click": "onGroupClicked($event)" }, properties: { "class.expanded": "isExpanded", "class.with-toggle": "hasToggle", "class.has-icon": "!!icon", "class.disabled": "disabled" }, classAttribute: "bb-dashboard-sidebar-group" }, usesInheritance: true, ngImport: i0, template: "<!--\r\n The wrapper that contains the title and icon.\r\n-->\r\n<button *ngIf=\"hasToggle\"\r\n (click)=\"onClick()\"\r\n class=\"bb-dashboard-sidebar-group-title\"\r\n type=\"button\"\r\n role=\"switch\">\r\n <bb-icon *ngIf=\"icon as iconName\"\r\n [src]=\"iconName\"\r\n class=\"bb-dashboard-sidebar-group-icon\">\r\n </bb-icon>\r\n <span *ngIf=\"title as titleText\"\r\n role=\"heading\"\r\n class=\"bb-dashboard-sidebar-group-text\">\r\n {{ titleText }}\r\n </span>\r\n <span class=\"bb-dashboard-sidebar-group-toggle\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 21.7 30.9\"\r\n width=\"10\"\r\n height=\"10\"\r\n role=\"img\">\r\n <path\r\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\r\n </path>\r\n </svg>\r\n </span>\r\n</button>\r\n\r\n<!--\r\n The sidebar items that contain the\r\n links to navigate to other pages.\r\n-->\r\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\r\n</ng-content>\r\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
289
- type: Component,
290
- args: [{ selector: 'bb-dashboard-sidebar-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
291
- 'class': 'bb-dashboard-sidebar-group',
292
- '[class.expanded]': 'isExpanded',
293
- '[class.with-toggle]': 'hasToggle',
294
- '[class.has-icon]': '!!icon',
295
- '[class.disabled]': 'disabled',
296
- 'role': 'group'
297
- }, template: "<!--\r\n The wrapper that contains the title and icon.\r\n-->\r\n<button *ngIf=\"hasToggle\"\r\n (click)=\"onClick()\"\r\n class=\"bb-dashboard-sidebar-group-title\"\r\n type=\"button\"\r\n role=\"switch\">\r\n <bb-icon *ngIf=\"icon as iconName\"\r\n [src]=\"iconName\"\r\n class=\"bb-dashboard-sidebar-group-icon\">\r\n </bb-icon>\r\n <span *ngIf=\"title as titleText\"\r\n role=\"heading\"\r\n class=\"bb-dashboard-sidebar-group-text\">\r\n {{ titleText }}\r\n </span>\r\n <span class=\"bb-dashboard-sidebar-group-toggle\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 21.7 30.9\"\r\n width=\"10\"\r\n height=\"10\"\r\n role=\"img\">\r\n <path\r\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\r\n </path>\r\n </svg>\r\n </span>\r\n</button>\r\n\r\n<!--\r\n The sidebar items that contain the\r\n links to navigate to other pages.\r\n-->\r\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\r\n</ng-content>\r\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"] }]
298
- }], ctorParameters: function () {
299
- return [{ type: BbDashboardSidebar, decorators: [{
300
- type: Optional
301
- }, {
302
- type: Host
303
- }] }];
304
- }, propDecorators: { id: [{
305
- type: Input
306
- }], icon: [{
307
- type: Input
308
- }], title: [{
309
- type: Input
310
- }], onGroupClicked: [{
311
- type: HostListener,
312
- args: ['click', ['$event']]
219
+ class BbDashboardSidebarGroupBase {
220
+ constructor(_parent) {
221
+ this._parent = _parent;
222
+ }
223
+ }
224
+ const BbDashboardSidebarGroupMixinBase = mixinDisabled(BbDashboardSidebarGroupBase);
225
+ class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase {
226
+ constructor(_parent) {
227
+ super(_parent);
228
+ this._parent = _parent;
229
+ // Inputs.
230
+ this.id = null;
231
+ this.icon = null;
232
+ this.title = null;
233
+ // State.
234
+ this._isExpanded = false;
235
+ }
236
+ get hasToggle() {
237
+ // Check if the user provided a icon and/or title.
238
+ return !!this.icon || !!this.title;
239
+ }
240
+ get isExpanded() {
241
+ // If there is an icon or title the group can be
242
+ // expanded by clicking, else not.
243
+ return this.hasToggle
244
+ ? this._isExpanded
245
+ : true;
246
+ }
247
+ ngOnInit() {
248
+ var _a, _b;
249
+ // Check if the id has been supplied.
250
+ if (!this.id) {
251
+ throw new Error('Id is required.');
252
+ }
253
+ // Register the group at the parent and
254
+ // retrieve the slice of the state.
255
+ const observable$ = (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.registerGroup(this.id)) !== null && _b !== void 0 ? _b : of(false);
256
+ // Subscribe to the state.
257
+ this._subscription = observable$
258
+ .subscribe(isExpanded => this._isExpanded = isExpanded);
259
+ }
260
+ ngOnDestroy() {
261
+ // Unsubscribe to prevent memory leaks.
262
+ this._subscription && this._subscription.unsubscribe();
263
+ // Unregister the group at the parent.
264
+ this._parent && this._parent.unregisterGroup(this.id);
265
+ }
266
+ onClick() {
267
+ var _a;
268
+ // Verify the group is not disabled.
269
+ if (this.disabled) {
270
+ return;
271
+ }
272
+ // Change the state.
273
+ const newValue = !this._isExpanded;
274
+ // Set the state of the sidebar group.
275
+ (_a = this._parent) === null || _a === void 0 ? void 0 : _a.toggleGroup(this.id, newValue);
276
+ }
277
+ onGroupClicked(event) {
278
+ // If the group is not disabled don't do anything.
279
+ if (!this.disabled) {
280
+ return;
281
+ }
282
+ event.preventDefault();
283
+ event.stopPropagation();
284
+ }
285
+ }
286
+ BbDashboardSidebarGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
287
+ BbDashboardSidebarGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardSidebarGroup, selector: "bb-dashboard-sidebar-group", inputs: { disabled: "disabled", id: "id", icon: "icon", title: "title" }, host: { attributes: { "role": "group" }, listeners: { "click": "onGroupClicked($event)" }, properties: { "class.expanded": "isExpanded", "class.with-toggle": "hasToggle", "class.has-icon": "!!icon", "class.disabled": "disabled" }, classAttribute: "bb-dashboard-sidebar-group" }, usesInheritance: true, ngImport: i0, template: "<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
289
+ type: Component,
290
+ args: [{ selector: 'bb-dashboard-sidebar-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
291
+ 'class': 'bb-dashboard-sidebar-group',
292
+ '[class.expanded]': 'isExpanded',
293
+ '[class.with-toggle]': 'hasToggle',
294
+ '[class.has-icon]': '!!icon',
295
+ '[class.disabled]': 'disabled',
296
+ 'role': 'group'
297
+ }, template: "<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"] }]
298
+ }], ctorParameters: function () {
299
+ return [{ type: BbDashboardSidebar, decorators: [{
300
+ type: Optional
301
+ }, {
302
+ type: Host
303
+ }] }];
304
+ }, propDecorators: { id: [{
305
+ type: Input
306
+ }], icon: [{
307
+ type: Input
308
+ }], title: [{
309
+ type: Input
310
+ }], onGroupClicked: [{
311
+ type: HostListener,
312
+ args: ['click', ['$event']]
313
313
  }] } });
314
314
 
315
- class BbDashboardSidebarItem {
316
- constructor(_sidebar, _group) {
317
- this._sidebar = _sidebar;
318
- this._group = _group;
319
- // Inputs.
320
- this.tabIndex = 0;
321
- }
322
- onClick() {
323
- var _a;
324
- // Try to "open" the sidebar if it exists.
325
- // This will close it on mobile.
326
- (_a = this._sidebar) === null || _a === void 0 ? void 0 : _a.open();
327
- }
328
- get attributeTabIndex() {
329
- // Make the items tabindex -1 so it can't
330
- // be tabbed to when the parent is not visible
331
- // or the parent is disabled.
332
- if (this.isHidden) {
333
- return -1;
334
- }
335
- // Else return the specified tabindex.
336
- return this.tabIndex;
337
- }
338
- get isHidden() {
339
- return !this.isVisible || this.isDisabled;
340
- }
341
- get isVisible() {
342
- return this._group
343
- ? this._group.isExpanded
344
- : true;
345
- }
346
- get isDisabled() {
347
- return this._group
348
- ? this._group.disabled
349
- : false;
350
- }
351
- }
352
- BbDashboardSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, host: true, optional: true }, { token: BbDashboardSidebarGroup, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
353
- BbDashboardSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: BbDashboardSidebarItem, selector: "[bb-dashboard-sidebar-item]", inputs: { tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.tabindex": "attributeTabIndex", "attr.aria-hidden": "isHidden" }, classAttribute: "bb-dashboard-sidebar-item" }, ngImport: i0, template: "<!--\r\n The content between the tags will\r\n be reflected here.\r\n-->\r\n<span class=\"bb-dashboard-sidebar-item-content\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
355
- type: Component,
356
- args: [{ selector: '[bb-dashboard-sidebar-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
357
- 'class': 'bb-dashboard-sidebar-item',
358
- '[attr.tabindex]': 'attributeTabIndex',
359
- '[attr.aria-hidden]': 'isHidden',
360
- '(click)': 'onClick()'
361
- }, template: "<!--\r\n The content between the tags will\r\n be reflected here.\r\n-->\r\n<span class=\"bb-dashboard-sidebar-item-content\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"] }]
362
- }], ctorParameters: function () {
363
- return [{ type: BbDashboardSidebar, decorators: [{
364
- type: Optional
365
- }, {
366
- type: Host
367
- }] }, { type: BbDashboardSidebarGroup, decorators: [{
368
- type: Optional
369
- }, {
370
- type: Host
371
- }] }];
372
- }, propDecorators: { tabIndex: [{
373
- type: Input
315
+ class BbDashboardSidebarItem {
316
+ constructor(_sidebar, _group) {
317
+ this._sidebar = _sidebar;
318
+ this._group = _group;
319
+ // Inputs.
320
+ this.tabIndex = 0;
321
+ }
322
+ onClick() {
323
+ var _a;
324
+ // Try to "open" the sidebar if it exists.
325
+ // This will close it on mobile.
326
+ (_a = this._sidebar) === null || _a === void 0 ? void 0 : _a.open();
327
+ }
328
+ get attributeTabIndex() {
329
+ // Make the items tabindex -1 so it can't
330
+ // be tabbed to when the parent is not visible
331
+ // or the parent is disabled.
332
+ if (this.isHidden) {
333
+ return -1;
334
+ }
335
+ // Else return the specified tabindex.
336
+ return this.tabIndex;
337
+ }
338
+ get isHidden() {
339
+ return !this.isVisible || this.isDisabled;
340
+ }
341
+ get isVisible() {
342
+ return this._group
343
+ ? this._group.isExpanded
344
+ : true;
345
+ }
346
+ get isDisabled() {
347
+ return this._group
348
+ ? this._group.disabled
349
+ : false;
350
+ }
351
+ }
352
+ BbDashboardSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, host: true, optional: true }, { token: BbDashboardSidebarGroup, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
353
+ BbDashboardSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbDashboardSidebarItem, selector: "[bb-dashboard-sidebar-item]", inputs: { tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.tabindex": "attributeTabIndex", "attr.aria-hidden": "isHidden" }, classAttribute: "bb-dashboard-sidebar-item" }, ngImport: i0, template: "<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
355
+ type: Component,
356
+ args: [{ selector: '[bb-dashboard-sidebar-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
357
+ 'class': 'bb-dashboard-sidebar-item',
358
+ '[attr.tabindex]': 'attributeTabIndex',
359
+ '[attr.aria-hidden]': 'isHidden',
360
+ '(click)': 'onClick()'
361
+ }, template: "<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"] }]
362
+ }], ctorParameters: function () {
363
+ return [{ type: BbDashboardSidebar, decorators: [{
364
+ type: Optional
365
+ }, {
366
+ type: Host
367
+ }] }, { type: BbDashboardSidebarGroup, decorators: [{
368
+ type: Optional
369
+ }, {
370
+ type: Host
371
+ }] }];
372
+ }, propDecorators: { tabIndex: [{
373
+ type: Input
374
374
  }] } });
375
375
 
376
- const DECLARATIONS_EXPORTS = [
377
- BbDashboard,
378
- BbDashboardHeader,
379
- BbDashboardMenu,
380
- BbDashboardMenuItem,
381
- BbDashboardSidebar,
382
- BbDashboardSidebarGroup,
383
- BbDashboardSidebarItem
384
- ];
385
- class DashboardModule {
386
- }
387
- DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
388
- DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
389
- BbDashboardHeader,
390
- BbDashboardMenu,
391
- BbDashboardMenuItem,
392
- BbDashboardSidebar,
393
- BbDashboardSidebarGroup,
394
- BbDashboardSidebarItem], imports: [CommonModule, RouterModule, ElementsModule], exports: [BbDashboard,
395
- BbDashboardHeader,
396
- BbDashboardMenu,
397
- BbDashboardMenuItem,
398
- BbDashboardSidebar,
399
- BbDashboardSidebarGroup,
400
- BbDashboardSidebarItem] });
401
- DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, imports: [CommonModule, RouterModule, ElementsModule] });
402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, decorators: [{
403
- type: NgModule,
404
- args: [{
405
- imports: [CommonModule, RouterModule, ElementsModule],
406
- declarations: [...DECLARATIONS_EXPORTS],
407
- exports: [...DECLARATIONS_EXPORTS]
408
- }]
376
+ const DECLARATIONS_EXPORTS = [
377
+ BbDashboard,
378
+ BbDashboardHeader,
379
+ BbDashboardMenu,
380
+ BbDashboardMenuItem,
381
+ BbDashboardSidebar,
382
+ BbDashboardSidebarGroup,
383
+ BbDashboardSidebarItem
384
+ ];
385
+ class DashboardModule {
386
+ }
387
+ DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
388
+ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
389
+ BbDashboardHeader,
390
+ BbDashboardMenu,
391
+ BbDashboardMenuItem,
392
+ BbDashboardSidebar,
393
+ BbDashboardSidebarGroup,
394
+ BbDashboardSidebarItem], imports: [CommonModule, RouterModule, ElementsModule], exports: [BbDashboard,
395
+ BbDashboardHeader,
396
+ BbDashboardMenu,
397
+ BbDashboardMenuItem,
398
+ BbDashboardSidebar,
399
+ BbDashboardSidebarGroup,
400
+ BbDashboardSidebarItem] });
401
+ DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DashboardModule, imports: [CommonModule, RouterModule, ElementsModule] });
402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DashboardModule, decorators: [{
403
+ type: NgModule,
404
+ args: [{
405
+ imports: [CommonModule, RouterModule, ElementsModule],
406
+ declarations: [...DECLARATIONS_EXPORTS],
407
+ exports: [...DECLARATIONS_EXPORTS]
408
+ }]
409
409
  }] });
410
410
 
411
- /**
412
- * Generated bundle index. Do not edit.
411
+ /**
412
+ * Generated bundle index. Do not edit.
413
413
  */
414
414
 
415
415
  export { BbDashboard, BbDashboardHeader, BbDashboardMenu, BbDashboardMenuItem, BbDashboardSidebar, BbDashboardSidebarGroup, BbDashboardSidebarItem, DashboardModule };