@bravobit/bb-foundation 0.20.2 → 0.21.1

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 (259) hide show
  1. package/auth/{bravobit-bb-foundation-auth.d.ts → index.d.ts} +0 -0
  2. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  3. package/auth/lib/directives/permission.directive.d.ts +1 -1
  4. package/auth/lib/directives/role.directive.d.ts +1 -1
  5. package/collections/{bravobit-bb-foundation-collections.d.ts → index.d.ts} +0 -0
  6. package/collections/lib/collection.d.ts +6 -6
  7. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  8. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  9. package/collections/lib/components/collections.directive.d.ts +4 -4
  10. package/controls/{bravobit-bb-foundation-controls.d.ts → index.d.ts} +0 -0
  11. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +10 -10
  12. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +9 -5
  13. package/dashboard/{bravobit-bb-foundation-dashboard.d.ts → index.d.ts} +0 -0
  14. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +1 -1
  19. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  20. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  21. package/dialog/{bravobit-bb-foundation-dialog.d.ts → index.d.ts} +0 -0
  22. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +1 -1
  23. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +1 -1
  24. package/dialog/lib/dialog-container/dialog-container.component.d.ts +1 -1
  25. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -1
  26. package/dialog/lib/dialog-link/dialog-link.component.d.ts +1 -1
  27. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  28. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +1 -1
  29. package/dialog/lib/dialog.insertion.d.ts +1 -1
  30. package/elements/{bravobit-bb-foundation-elements.d.ts → index.d.ts} +0 -0
  31. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  32. package/elements/lib/button/button.component.d.ts +2 -2
  33. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  34. package/elements/lib/date-picker/date-picker.component.d.ts +2 -2
  35. package/elements/lib/directives/addon.directive.d.ts +2 -2
  36. package/elements/lib/directives/autosize.directive.d.ts +1 -1
  37. package/elements/lib/directives/focus-trap.directive.d.ts +1 -1
  38. package/elements/lib/directives/focus.directive.d.ts +1 -1
  39. package/elements/lib/directives/form-submit.directive.d.ts +1 -1
  40. package/elements/lib/directives/input.directive.d.ts +2 -2
  41. package/elements/lib/directives/template.directive.d.ts +1 -1
  42. package/elements/lib/dropdown/dropdown.component.d.ts +2 -2
  43. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  44. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  45. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  46. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  47. package/elements/lib/icon/icon.component.d.ts +1 -1
  48. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  49. package/elements/lib/pipes/file-image.pipe.d.ts +1 -1
  50. package/elements/lib/pipes/file-size.pipe.d.ts +1 -1
  51. package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
  52. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  53. package/elements/lib/tag/tag.component.d.ts +1 -1
  54. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  55. package/esm2020/auth/lib/auth.module.mjs +6 -6
  56. package/esm2020/auth/lib/auth.service.mjs +5 -5
  57. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  58. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  59. package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
  60. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  61. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  62. package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
  63. package/esm2020/auth/lib/permissions.service.mjs +3 -3
  64. package/esm2020/collections/lib/collection.mjs +5 -5
  65. package/esm2020/collections/lib/collections.module.mjs +5 -5
  66. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  67. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  68. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  69. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +6 -6
  70. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +19 -6
  71. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +5 -5
  72. package/esm2020/controls/lib/controls.module.mjs +5 -5
  73. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  74. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  75. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  76. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  77. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  78. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +5 -5
  79. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  80. package/esm2020/dashboard/lib/dashboard.module.mjs +5 -5
  81. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  82. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +8 -8
  83. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +4 -4
  84. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  85. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  86. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  87. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  88. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  89. package/esm2020/dialog/lib/dialog.module.mjs +7 -9
  90. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  91. package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
  92. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  93. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +5 -5
  94. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +12 -12
  95. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  96. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  97. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
  98. package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
  99. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  100. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  101. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  102. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +7 -7
  103. package/esm2020/elements/lib/elements.module.mjs +5 -5
  104. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +10 -10
  105. package/esm2020/elements/lib/form-control/form-control.component.mjs +6 -6
  106. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  107. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  108. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  109. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +5 -5
  110. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  111. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  112. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  113. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  114. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  115. package/esm2020/http/lib/http.module.mjs +5 -5
  116. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  117. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  118. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  119. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  120. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  121. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  122. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  123. package/esm2020/lib/core/services/network.service.mjs +3 -3
  124. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  125. package/esm2020/lib/core/services/platform.service.mjs +3 -3
  126. package/esm2020/localize/lib/localize.module.mjs +5 -5
  127. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  128. package/esm2020/localize/lib/localize.service.mjs +9 -7
  129. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  130. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  131. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  132. package/esm2020/masking/bravobit-bb-foundation-masking.mjs +5 -0
  133. package/esm2020/masking/lib/input-mask.directive.mjs +110 -0
  134. package/esm2020/masking/lib/input-mask.interface.mjs +2 -0
  135. package/esm2020/masking/lib/masking.module.mjs +16 -0
  136. package/esm2020/masking/lib/masking.service.mjs +94 -0
  137. package/esm2020/masking/public_api.mjs +5 -0
  138. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  139. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +6 -6
  140. package/esm2020/notifications/lib/notifications.module.mjs +5 -5
  141. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  142. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  143. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  144. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  145. package/esm2020/storage/lib/storage.service.mjs +8 -8
  146. package/esm2020/table/lib/components/table/table.component.mjs +14 -14
  147. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  148. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +4 -4
  149. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +6 -6
  150. package/esm2020/table/lib/table.module.mjs +5 -5
  151. package/esm2020/theming/bravobit-bb-foundation-theming.mjs +5 -0
  152. package/esm2020/theming/lib/themes/checkbox-group.theme.mjs +2 -0
  153. package/esm2020/theming/lib/themes/checkbox.theme.mjs +2 -0
  154. package/esm2020/theming/lib/theming.interface.mjs +3 -0
  155. package/esm2020/theming/lib/theming.module.mjs +38 -0
  156. package/esm2020/theming/lib/theming.service.mjs +100 -0
  157. package/esm2020/theming/public_api.mjs +4 -0
  158. package/fesm2015/bravobit-bb-foundation-auth.mjs +33 -33
  159. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  160. package/fesm2015/bravobit-bb-foundation-collections.mjs +26 -26
  161. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  162. package/fesm2015/bravobit-bb-foundation-controls.mjs +31 -18
  163. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  164. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +26 -26
  165. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  166. package/fesm2015/bravobit-bb-foundation-dialog.mjs +34 -36
  167. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  168. package/fesm2015/bravobit-bb-foundation-elements.mjs +143 -143
  169. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  170. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  171. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  172. package/fesm2015/bravobit-bb-foundation-localize.mjs +26 -24
  173. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  174. package/fesm2015/bravobit-bb-foundation-masking.mjs +235 -0
  175. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -0
  176. package/fesm2015/bravobit-bb-foundation-notifications.mjs +14 -14
  177. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  178. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  179. package/fesm2015/bravobit-bb-foundation-storage.mjs +7 -7
  180. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  181. package/fesm2015/bravobit-bb-foundation-table.mjs +27 -27
  182. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  183. package/fesm2015/bravobit-bb-foundation-theming.mjs +153 -0
  184. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +1 -0
  185. package/fesm2015/bravobit-bb-foundation.mjs +24 -24
  186. package/fesm2020/bravobit-bb-foundation-auth.mjs +33 -33
  187. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  188. package/fesm2020/bravobit-bb-foundation-collections.mjs +26 -26
  189. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  190. package/fesm2020/bravobit-bb-foundation-controls.mjs +31 -18
  191. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  192. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +26 -26
  193. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  194. package/fesm2020/bravobit-bb-foundation-dialog.mjs +34 -36
  195. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  196. package/fesm2020/bravobit-bb-foundation-elements.mjs +143 -143
  197. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  198. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  199. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  200. package/fesm2020/bravobit-bb-foundation-localize.mjs +24 -22
  201. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  202. package/fesm2020/bravobit-bb-foundation-masking.mjs +223 -0
  203. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -0
  204. package/fesm2020/bravobit-bb-foundation-notifications.mjs +14 -14
  205. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  206. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  207. package/fesm2020/bravobit-bb-foundation-storage.mjs +7 -7
  208. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  209. package/fesm2020/bravobit-bb-foundation-table.mjs +27 -27
  210. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  211. package/fesm2020/bravobit-bb-foundation-theming.mjs +143 -0
  212. package/fesm2020/bravobit-bb-foundation-theming.mjs.map +1 -0
  213. package/fesm2020/bravobit-bb-foundation.mjs +24 -24
  214. package/http/{bravobit-bb-foundation-http.d.ts → index.d.ts} +0 -0
  215. package/{bravobit-bb-foundation.d.ts → index.d.ts} +0 -0
  216. package/localize/{bravobit-bb-foundation-localize.d.ts → index.d.ts} +0 -0
  217. package/localize/lib/localize.pipe.d.ts +1 -1
  218. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  219. package/localize/lib/views/localize-template-or-string.directive.d.ts +1 -1
  220. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  221. package/masking/index.d.ts +5 -0
  222. package/masking/lib/input-mask.directive.d.ts +36 -0
  223. package/masking/lib/input-mask.interface.d.ts +20 -0
  224. package/masking/lib/masking.module.d.ts +7 -0
  225. package/masking/lib/masking.service.d.ts +12 -0
  226. package/masking/public_api.d.ts +4 -0
  227. package/notifications/{bravobit-bb-foundation-notifications.d.ts → index.d.ts} +0 -0
  228. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  229. package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -1
  230. package/package.json +36 -19
  231. package/recaptcha/{bravobit-bb-foundation-recaptcha.d.ts → index.d.ts} +0 -0
  232. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  233. package/rxjs/{bravobit-bb-foundation-rxjs.d.ts → index.d.ts} +0 -0
  234. package/storage/{bravobit-bb-foundation-storage.d.ts → index.d.ts} +0 -0
  235. package/table/{bravobit-bb-foundation-table.d.ts → index.d.ts} +0 -0
  236. package/table/lib/components/table/table.component.d.ts +7 -7
  237. package/table/lib/components/table-cell/table-cell.component.d.ts +1 -1
  238. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  239. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  240. package/theming/index.d.ts +5 -0
  241. package/theming/lib/themes/checkbox-group.theme.d.ts +5 -0
  242. package/theming/lib/themes/checkbox.theme.d.ts +19 -0
  243. package/theming/lib/theming.interface.d.ts +14 -0
  244. package/theming/lib/theming.module.d.ts +13 -0
  245. package/theming/lib/theming.service.d.ts +24 -0
  246. package/theming/public_api.d.ts +3 -0
  247. package/auth/package.json +0 -10
  248. package/collections/package.json +0 -10
  249. package/controls/package.json +0 -10
  250. package/dashboard/package.json +0 -10
  251. package/dialog/package.json +0 -10
  252. package/elements/package.json +0 -10
  253. package/http/package.json +0 -10
  254. package/localize/package.json +0 -10
  255. package/notifications/package.json +0 -10
  256. package/recaptcha/package.json +0 -10
  257. package/rxjs/package.json +0 -10
  258. package/storage/package.json +0 -10
  259. package/table/package.json +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-controls.mjs","sources":["../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox.module.ts","../../../projects/bb-foundation/controls/src/lib/controls.module.ts","../../../projects/bb-foundation/controls/src/bravobit-bb-foundation-controls.ts"],"sourcesContent":["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\n\r\n@Component({\r\n selector: 'bbi-checkbox-group',\r\n templateUrl: './checkbox-group.component.html',\r\n styleUrls: ['./checkbox-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'class': 'bbi-checkbox-group',\r\n '[class.grouped]': 'grouped',\r\n '[class.required]': 'required'\r\n },\r\n preserveWhitespaces: false\r\n})\r\nexport class BbiCheckboxGroup {\r\n\r\n // Inputs.\r\n @Input() label: string | null = null; // TODO(Stan): Add template possibilities here.\r\n\r\n // Grouped.\r\n @Input()\r\n get grouped() { return this._grouped; }\r\n\r\n set grouped(value: unknown) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.grouped) {\r\n this._grouped = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _grouped = false;\r\n\r\n // Required.\r\n @Input()\r\n get required() { return this._required; }\r\n\r\n set required(value: unknown) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.required) {\r\n this._required = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _required = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n // Required so that the template type checker can infer the type of the coerced inputs.\r\n static ngAcceptInputType_grouped: BooleanInput;\r\n static ngAcceptInputType_required: BooleanInput;\r\n\r\n}\r\n","<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input, Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\nlet nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'bbi-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true}\r\n ],\r\n host: {\r\n 'class': 'bbi-checkbox',\r\n '[class.grouped]': 'grouped',\r\n '[class.indeterminate]': 'indeterminate',\r\n '[class.required]': 'required'\r\n },\r\n preserveWhitespaces: false\r\n})\r\nexport class BbiCheckbox implements ControlValueAccessor, AfterViewInit {\r\n\r\n // Readonly data.\r\n readonly labelId = `bbi-checkbox-${nextUniqueId++}`;\r\n\r\n // Views.\r\n @ViewChild('input', {static: true}) inputElementRef: ElementRef<HTMLInputElement>;\r\n\r\n // Outputs.\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n @Output() indeterminateChange = new EventEmitter<boolean>();\r\n\r\n // Checked.\r\n @Input()\r\n get checked() { return this._checked;}\r\n\r\n set checked(value: boolean) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.checked) {\r\n this._checked = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _checked: boolean = false;\r\n\r\n // Disabled.\r\n @Input()\r\n get disabled() { return this._disabled; }\r\n\r\n set disabled(value: unknown) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.disabled) {\r\n this._disabled = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n // Grouped.\r\n @Input()\r\n get grouped() { return this._grouped; }\r\n\r\n set grouped(value: unknown) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.grouped) {\r\n this._grouped = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _grouped = false;\r\n\r\n // Indeterminate.\r\n @Input()\r\n get indeterminate() { return this._indeterminate; }\r\n\r\n set indeterminate(value: unknown) {\r\n this._indeterminate = coerceBooleanProperty(value);\r\n this.syncField('indeterminate', this._indeterminate);\r\n }\r\n\r\n private _indeterminate = false;\r\n\r\n // Required.\r\n @Input()\r\n get required() { return this._required; }\r\n\r\n set required(value: unknown) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.required) {\r\n this._required = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _required = false;\r\n\r\n // Methods.\r\n onChange: (newValue: boolean) => void = () => ({});\r\n onTouched: () => void = () => ({});\r\n\r\n constructor(private _renderer: Renderer2,\r\n private _changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.syncField('indeterminate', this._indeterminate);\r\n }\r\n\r\n registerOnChange(fn: (newValue: boolean) => void) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(newValue: boolean) {\r\n this.checked = !!newValue;\r\n }\r\n\r\n toggle() {\r\n this.checked = !this.checked;\r\n }\r\n\r\n onClickEvent(event: Event) {\r\n event.stopPropagation();\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n // When user manually click on the checkbox, `indeterminate` is set to false.\r\n if (this.indeterminate) {\r\n Promise.resolve().then(() => {\r\n this._indeterminate = false;\r\n this.indeterminateChange.emit(this._indeterminate);\r\n });\r\n }\r\n\r\n this.toggle();\r\n\r\n // Emit our custom change event if the native input emitted one.\r\n // It is important to only emit it, if the native input triggered one, because\r\n // we don't want to trigger a change event, when the `checked` variable changes for example.\r\n this.emitChangeEvent();\r\n }\r\n\r\n onChangeEvent(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n }\r\n\r\n private emitChangeEvent() {\r\n this.onChange?.(this.checked);\r\n this.checkedChange.emit(this.checked);\r\n this.syncField('checked', this.checked);\r\n }\r\n\r\n private syncField(field: string, value: boolean) {\r\n const element = this.inputElementRef?.nativeElement;\r\n if (!element) {\r\n return;\r\n }\r\n this._renderer.setProperty(element, field, value);\r\n }\r\n\r\n // Required so that the template type checker can infer the type of the coerced inputs.\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_required: BooleanInput;\r\n static ngAcceptInputType_grouped: BooleanInput;\r\n static ngAcceptInputType_indeterminate: BooleanInput;\r\n\r\n}\r\n","<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n","import {BbiCheckboxGroup} from './checkbox-group/checkbox-group.component';\r\nimport {BbiCheckbox} from './checkbox/checkbox.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [BbiCheckbox, BbiCheckboxGroup],\r\n exports: [BbiCheckbox, BbiCheckboxGroup]\r\n})\r\nexport class CheckboxModule {\r\n}\r\n","import {CheckboxModule} from './checkbox/checkbox.module';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CheckboxModule],\r\n exports: [CheckboxModule]\r\n})\r\nexport class ControlsModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravobit-bb-foundation-controls.mjs","sources":["../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox-group/checkbox-group.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.ts","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox/checkbox.component.html","../../../projects/bb-foundation/controls/src/lib/checkbox/checkbox.module.ts","../../../projects/bb-foundation/controls/src/lib/controls.module.ts","../../../projects/bb-foundation/controls/src/bravobit-bb-foundation-controls.ts"],"sourcesContent":["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\n\r\n@Component({\r\n selector: 'bbi-checkbox-group',\r\n templateUrl: './checkbox-group.component.html',\r\n styleUrls: ['./checkbox-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'class': 'bbi-checkbox-group',\r\n '[class.grouped]': 'grouped',\r\n '[class.required]': 'required',\r\n '[class.inline]': 'inline'\r\n },\r\n preserveWhitespaces: false\r\n})\r\nexport class BbiCheckboxGroup {\r\n\r\n // Inputs.\r\n @Input() label: string | null = null; // TODO(Stan): Add template possibilities here.\r\n\r\n // Grouped.\r\n @Input()\r\n get grouped(): boolean { return this._grouped; }\r\n\r\n set grouped(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.grouped) {\r\n this._grouped = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _grouped: boolean = false;\r\n\r\n // Required.\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n\r\n set required(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.required) {\r\n this._required = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _required: boolean = false;\r\n\r\n // Inline.\r\n @Input()\r\n get inline(): boolean { return this._inline; }\r\n\r\n set inline(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.inline) {\r\n this._inline = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _inline: boolean = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n // Required so that the template type checker can infer the type of the coerced inputs.\r\n static ngAcceptInputType_grouped: BooleanInput;\r\n static ngAcceptInputType_required: BooleanInput;\r\n static ngAcceptInputType_inline: BooleanInput;\r\n\r\n}\r\n","<label *ngIf=\"label as label\"\r\n class=\"bbi-checkbox-group-label\">\r\n {{ label }}\r\n</label>\r\n\r\n<div class=\"bbi-checkbox-group-items\">\r\n <ng-content select=\"bbi-checkbox\"></ng-content>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input, Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\nlet nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'bbi-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbiCheckbox), multi: true}\r\n ],\r\n host: {\r\n 'class': 'bbi-checkbox',\r\n '[class.grouped]': 'grouped',\r\n '[class.indeterminate]': 'indeterminate',\r\n '[class.required]': 'required'\r\n },\r\n preserveWhitespaces: false\r\n})\r\nexport class BbiCheckbox implements ControlValueAccessor, AfterViewInit {\r\n\r\n // Readonly data.\r\n readonly labelId = `bbi-checkbox-${nextUniqueId++}`;\r\n\r\n // Views.\r\n @ViewChild('input', {static: true}) inputElementRef: ElementRef<HTMLInputElement>;\r\n\r\n // Outputs.\r\n @Output() checkedChange = new EventEmitter<boolean>();\r\n @Output() indeterminateChange = new EventEmitter<boolean>();\r\n\r\n // Checked.\r\n @Input()\r\n get checked(): boolean { return this._checked;}\r\n\r\n set checked(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.checked) {\r\n this._checked = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _checked: boolean = false;\r\n\r\n // Disabled.\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n\r\n set disabled(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.disabled) {\r\n this._disabled = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n // Grouped.\r\n @Input()\r\n get grouped(): boolean { return this._grouped; }\r\n\r\n set grouped(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.grouped) {\r\n this._grouped = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _grouped = false;\r\n\r\n // Indeterminate.\r\n @Input()\r\n get indeterminate(): boolean { return this._indeterminate; }\r\n\r\n set indeterminate(value: BooleanInput) {\r\n this._indeterminate = coerceBooleanProperty(value);\r\n this.syncField('indeterminate', this._indeterminate);\r\n }\r\n\r\n private _indeterminate = false;\r\n\r\n // Required.\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n\r\n set required(value: BooleanInput) {\r\n const newValue = coerceBooleanProperty(value);\r\n if (newValue !== this.required) {\r\n this._required = newValue;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _required = false;\r\n\r\n // Methods.\r\n onChange: (newValue: boolean) => void = () => ({});\r\n onTouched: () => void = () => ({});\r\n\r\n constructor(private _renderer: Renderer2,\r\n private _changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.syncField('indeterminate', this._indeterminate);\r\n }\r\n\r\n registerOnChange(fn: (newValue: boolean) => void) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n writeValue(newValue: boolean) {\r\n this.checked = !!newValue;\r\n }\r\n\r\n toggle() {\r\n this.checked = !this.checked;\r\n }\r\n\r\n onClickEvent(event: Event) {\r\n event.stopPropagation();\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n // When user manually click on the checkbox, `indeterminate` is set to false.\r\n if (this.indeterminate) {\r\n Promise.resolve().then(() => {\r\n this._indeterminate = false;\r\n this.indeterminateChange.emit(this._indeterminate);\r\n });\r\n }\r\n\r\n this.toggle();\r\n\r\n // Emit our custom change event if the native input emitted one.\r\n // It is important to only emit it, if the native input triggered one, because\r\n // we don't want to trigger a change event, when the `checked` variable changes for example.\r\n this.emitChangeEvent();\r\n }\r\n\r\n onChangeEvent(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n }\r\n\r\n private emitChangeEvent() {\r\n this.onChange?.(this.checked);\r\n this.checkedChange.emit(this.checked);\r\n this.syncField('checked', this.checked);\r\n }\r\n\r\n private syncField(field: string, value: boolean) {\r\n const element = this.inputElementRef?.nativeElement;\r\n if (!element) {\r\n return;\r\n }\r\n this._renderer.setProperty(element, field, value);\r\n }\r\n\r\n // Required so that the template type checker can infer the type of the coerced inputs.\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_required: BooleanInput;\r\n static ngAcceptInputType_grouped: BooleanInput;\r\n static ngAcceptInputType_indeterminate: BooleanInput;\r\n\r\n}\r\n","<input #input\r\n [id]=\"labelId\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"checked\"\r\n (change)=\"onChangeEvent($event)\"\r\n (click)=\"onClickEvent($event)\"\r\n (blur)=\"onTouched()\"\r\n class=\"bbi-checkbox-input\"\r\n type=\"checkbox\">\r\n<label [attr.for]=\"labelId\"\r\n class=\"bbi-checkbox-label\">\r\n <span class=\"bbi-checkbox-text\"><ng-content></ng-content></span>\r\n</label>\r\n","import {BbiCheckboxGroup} from './checkbox-group/checkbox-group.component';\r\nimport {BbiCheckbox} from './checkbox/checkbox.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [BbiCheckbox, BbiCheckboxGroup],\r\n exports: [BbiCheckbox, BbiCheckboxGroup]\r\n})\r\nexport class CheckboxModule {\r\n}\r\n","import {CheckboxModule} from './checkbox/checkbox.module';\r\nimport {NgModule} from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [CheckboxModule],\r\n exports: [CheckboxModule]\r\n})\r\nexport class ControlsModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import * as i2 from '@angular/common';
9
9
  import { CommonModule } from '@angular/common';
10
10
  import * as i2$1 from '@angular/router';
11
11
  import { RouterModule } from '@angular/router';
12
- import * as i2$2 from '@bravobit/bb-foundation/elements';
12
+ import * as i3 from '@bravobit/bb-foundation/elements';
13
13
  import { ElementsModule } from '@bravobit/bb-foundation/elements';
14
14
 
15
15
  class BbDashboardSidebar {
@@ -71,9 +71,9 @@ class BbDashboardSidebar {
71
71
  this.visibilityChanges.next(false);
72
72
  }
73
73
  }
74
- BbDashboardSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardSidebar, deps: [{ token: i1.Storage }], target: i0.ɵɵFactoryTarget.Component });
75
- BbDashboardSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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: "13.3.6", ngImport: i0, type: BbDashboardSidebar, decorators: [{
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
77
  type: Component,
78
78
  args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
79
79
  'class': 'bb-dashboard-sidebar',
@@ -115,9 +115,9 @@ class BbDashboard {
115
115
  : this._renderer.addClass(document.documentElement, className);
116
116
  }
117
117
  }
118
- BbDashboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", 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: "12.0.0", version: "13.3.6", 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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboard, decorators: [{
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
121
  type: Component,
122
122
  args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
123
123
  'class': 'bb-dashboard'
@@ -147,9 +147,9 @@ class BbDashboardHeader {
147
147
  this._parent?.sidebar?.toggle();
148
148
  }
149
149
  }
150
- BbDashboardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardHeader, deps: [{ token: BbDashboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
151
- BbDashboardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardHeader, decorators: [{
150
+ 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 });
151
+ 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 });
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardHeader, decorators: [{
153
153
  type: Component,
154
154
  args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
155
155
  'class': 'bb-dashboard-header'
@@ -167,9 +167,9 @@ class BbDashboardMenu {
167
167
  this.backUrlTitle = null;
168
168
  }
169
169
  }
170
- BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
171
- BbDashboardMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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 });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardMenu, decorators: [{
170
+ BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
171
+ 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 });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenu, decorators: [{
173
173
  type: Component,
174
174
  args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
175
175
  'class': 'bb-dashboard-menu',
@@ -200,9 +200,9 @@ class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase {
200
200
  event.stopImmediatePropagation();
201
201
  }
202
202
  }
203
- BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
204
- BbDashboardMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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 });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
203
+ BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
204
+ 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 });
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
208
208
  'class': 'bb-dashboard-menu-item',
@@ -276,9 +276,9 @@ class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase {
276
276
  event.stopPropagation();
277
277
  }
278
278
  }
279
- BbDashboardSidebarGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
280
- BbDashboardSidebarGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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"], components: [{ type: i2$2.BbIcon, selector: "bb-icon", inputs: ["alt", "size", "src", "ariaHidden"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
279
+ 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 });
280
+ 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 });
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
282
282
  type: Component,
283
283
  args: [{ selector: 'bb-dashboard-sidebar-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
284
284
  'class': 'bb-dashboard-sidebar-group',
@@ -339,9 +339,9 @@ class BbDashboardSidebarItem {
339
339
  : false;
340
340
  }
341
341
  }
342
- BbDashboardSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, host: true, optional: true }, { token: BbDashboardSidebarGroup, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
343
- BbDashboardSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", 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 });
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
342
+ 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 });
343
+ 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 });
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
345
345
  type: Component,
346
346
  args: [{ selector: '[bb-dashboard-sidebar-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
347
347
  'class': 'bb-dashboard-sidebar-item',
@@ -372,8 +372,8 @@ const DECLARATIONS_EXPORTS = [
372
372
  ];
373
373
  class DashboardModule {
374
374
  }
375
- DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
376
- DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
375
+ DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
376
+ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
377
377
  BbDashboardHeader,
378
378
  BbDashboardMenu,
379
379
  BbDashboardMenuItem,
@@ -386,8 +386,8 @@ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
386
386
  BbDashboardSidebar,
387
387
  BbDashboardSidebarGroup,
388
388
  BbDashboardSidebarItem] });
389
- DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: DashboardModule, imports: [[CommonModule, RouterModule, ElementsModule]] });
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: DashboardModule, decorators: [{
389
+ DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, imports: [CommonModule, RouterModule, ElementsModule] });
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: DashboardModule, decorators: [{
391
391
  type: NgModule,
392
392
  args: [{
393
393
  imports: [CommonModule, RouterModule, ElementsModule],
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-dashboard.mjs","sources":["../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar/dashboard-sidebar.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar/dashboard-sidebar.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard/dashboard.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard/dashboard.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-header/dashboard-header.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-header/dashboard-header.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu/dashboard-menu.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu/dashboard-menu.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu-item/dashboard-menu-item.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu-item/dashboard-menu-item.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard.module.ts","../../../projects/bb-foundation/dashboard/src/bravobit-bb-foundation-dashboard.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {Storage} from '@bravobit/bb-foundation/storage';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\ntype BbDashboardSidebarState = { [id: string]: boolean };\r\n\r\n@Component({\r\n selector: 'bb-dashboard-sidebar',\r\n templateUrl: './dashboard-sidebar.component.html',\r\n styleUrls: ['./dashboard-sidebar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-sidebar',\r\n '[class.visible]': 'visibilityChanges.getValue()',\r\n 'role': 'navigation'\r\n }\r\n})\r\nexport class BbDashboardSidebar implements OnInit {\r\n\r\n // Bindings.\r\n visibilityChanges = new BehaviorSubject<boolean>(true);\r\n\r\n // State.\r\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\r\n private _cache: BbDashboardSidebarState;\r\n\r\n // Token.\r\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\r\n\r\n constructor(private _storage: Storage) {\r\n }\r\n\r\n ngOnInit() {\r\n // Retrieve the cache.\r\n this._cache = this._storage.get<BbDashboardSidebarState>(this._localStorageToken) || {};\r\n }\r\n\r\n registerGroup(id: string) {\r\n // Get the old state.\r\n const oldState = this._state$.getValue();\r\n\r\n // Get the cache value so when it is undefined\r\n // we will default to true.\r\n const cacheValue = this._cache[id] === undefined ? true : this._cache[id];\r\n\r\n // Push the new state.\r\n this._state$.next({...oldState, [id]: cacheValue});\r\n\r\n // Return the slice of the state that the group needs.\r\n return this._state$.pipe(\r\n map(state => state[id])\r\n );\r\n }\r\n\r\n unregisterGroup(id: string) {\r\n // Get the old groups.\r\n const oldState = this._state$.getValue();\r\n\r\n // Generate the new state without the id.\r\n const newState = Object.keys(oldState).reduce((object, key) => {\r\n if (key !== id) {\r\n object[key] = oldState[key];\r\n }\r\n return object;\r\n }, {});\r\n\r\n // Push the new state.\r\n this._state$.next(newState);\r\n }\r\n\r\n toggleGroup(id: string, newValue: boolean) {\r\n // Get the old state.\r\n const oldState = this._state$.getValue();\r\n\r\n // Create the new state.\r\n const newState = {...oldState, [id]: newValue};\r\n\r\n // Push the new state.\r\n this._state$.next(newState);\r\n\r\n // Save in the cache.\r\n this._storage.set(this._localStorageToken, newState);\r\n }\r\n\r\n toggle() {\r\n const current = this.visibilityChanges.getValue();\r\n this.visibilityChanges.next(!current);\r\n }\r\n\r\n open() {\r\n this.visibilityChanges.next(true);\r\n }\r\n\r\n close() {\r\n this.visibilityChanges.next(false);\r\n }\r\n\r\n}\r\n","<!--\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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\nimport {Patch, Platform} from '@bravobit/bb-foundation';\r\n\r\n@Component({\r\n selector: 'bb-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard'\r\n }\r\n})\r\nexport class BbDashboard implements OnInit, OnDestroy {\r\n\r\n // Views.\r\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\r\n\r\n // Inputs.\r\n @Input() backgroundColor: string = '#e7eaed';\r\n @Input() maxWidth: string = '1200px';\r\n @Input() padding: string = '20px';\r\n\r\n constructor(private _patch: Patch,\r\n private _platform: Platform,\r\n private _renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit() {\r\n // Set the vertical height for mobile devices.\r\n this._patch.mobileVerticalHeight();\r\n\r\n // Set the HTML class to prevent scrolling.\r\n return this.setHtmlClass();\r\n }\r\n\r\n ngOnDestroy() {\r\n // Remove the HTML class.\r\n this.setHtmlClass(true);\r\n }\r\n\r\n private setHtmlClass(shouldRemove: boolean = false) {\r\n // Check if we are on a browser.\r\n if (!this._platform.isBrowser) {\r\n return;\r\n }\r\n\r\n // Define the class name.\r\n const className = 'bb-dashboard-html';\r\n\r\n // Add or remove the class.\r\n return shouldRemove\r\n ? this._renderer.removeClass(document.documentElement, className)\r\n : this._renderer.addClass(document.documentElement, className);\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Optional, ViewEncapsulation} from '@angular/core';\r\nimport {BbDashboard} from '../dashboard/dashboard.component';\r\nimport {of} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'bb-dashboard-header',\r\n templateUrl: './dashboard-header.component.html',\r\n styleUrls: ['./dashboard-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-header'\r\n }\r\n})\r\nexport class BbDashboardHeader {\r\n\r\n constructor(@Optional() private _parent: BbDashboard) {\r\n }\r\n\r\n get showSidebarButton() {\r\n return !!this._parent?.sidebar;\r\n }\r\n\r\n get isSidebarVisible() {\r\n return this._parent?.sidebar?.visibilityChanges ?? of<boolean>(false);\r\n }\r\n\r\n onToggleSidebarClicked() {\r\n this._parent?.sidebar?.toggle();\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'bb-dashboard-menu',\r\n templateUrl: './dashboard-menu.component.html',\r\n styleUrls: ['./dashboard-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-menu',\r\n 'role': 'navigation'\r\n }\r\n})\r\nexport class BbDashboardMenu {\r\n\r\n // Inputs.\r\n @Input() title: string | null = null;\r\n @Input() imageUrl: string | null = null;\r\n @Input() backUrlLink: string | null = null;\r\n @Input() backUrlTitle: string | null = null;\r\n\r\n}\r\n","<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","import {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\n\r\nclass BbDashboardMenuItemBase {\r\n}\r\n\r\nconst BbDashboardMenuItemMixinBase: CanDisableConstructor\r\n & typeof BbDashboardMenuItemBase\r\n = mixinDisabled(BbDashboardMenuItemBase);\r\n\r\n@Component({\r\n selector: '[bb-dashboard-menu-item]',\r\n templateUrl: './dashboard-menu-item.component.html',\r\n styleUrls: ['./dashboard-menu-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n inputs: ['disabled'],\r\n host: {\r\n 'class': 'bb-dashboard-menu-item',\r\n '[class.disabled]': 'disabled',\r\n '(click)': 'stopDisabledEvents($event)'\r\n }\r\n})\r\nexport class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase implements CanDisable {\r\n\r\n stopDisabledEvents(event: Event) {\r\n // If the menu item is not disabled let all events pass.\r\n if (!this.disabled) {\r\n return;\r\n }\r\n\r\n // If the menu item is disabled stop the event from\r\n // bubbling up.\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n}\r\n","<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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Host,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\nimport {CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\r\nimport {of, Subscription} from 'rxjs';\r\n\r\nclass BbDashboardSidebarGroupBase {\r\n constructor(protected _parent: BbDashboardSidebar) {\r\n }\r\n}\r\n\r\nconst BbDashboardSidebarGroupMixinBase: CanDisableConstructor\r\n & typeof BbDashboardSidebarGroupBase\r\n = mixinDisabled(BbDashboardSidebarGroupBase);\r\n\r\n@Component({\r\n selector: 'bb-dashboard-sidebar-group',\r\n templateUrl: './dashboard-sidebar-group.component.html',\r\n styleUrls: ['./dashboard-sidebar-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n inputs: ['disabled'],\r\n host: {\r\n 'class': 'bb-dashboard-sidebar-group',\r\n '[class.expanded]': 'isExpanded',\r\n '[class.with-toggle]': 'hasToggle',\r\n '[class.has-icon]': '!!icon',\r\n '[class.disabled]': 'disabled',\r\n 'role': 'group'\r\n }\r\n})\r\nexport class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase implements OnInit, OnDestroy {\r\n\r\n // Inputs.\r\n @Input() id: string | null = null;\r\n @Input() icon: string | null = null;\r\n @Input() title: string | null = null;\r\n\r\n // State.\r\n private _isExpanded: boolean = false;\r\n\r\n // Subscriptions.\r\n private _subscription: Subscription;\r\n\r\n constructor(@Optional() @Host() protected override _parent: BbDashboardSidebar) {\r\n super(_parent);\r\n }\r\n\r\n get hasToggle() {\r\n // Check if the user provided a icon and/or title.\r\n return !!this.icon || !!this.title;\r\n }\r\n\r\n get isExpanded() {\r\n // If there is an icon or title the group can be\r\n // expanded by clicking, else not.\r\n return this.hasToggle\r\n ? this._isExpanded\r\n : true;\r\n }\r\n\r\n ngOnInit() {\r\n // Check if the id has been supplied.\r\n if (!this.id) {\r\n throw new Error('Id is required.');\r\n }\r\n\r\n // Register the group at the parent and\r\n // retrieve the slice of the state.\r\n const observable$ = this._parent?.registerGroup(this.id) ?? of(false);\r\n\r\n // Subscribe to the state.\r\n this._subscription = observable$\r\n .subscribe(isExpanded => this._isExpanded = isExpanded);\r\n }\r\n\r\n ngOnDestroy() {\r\n // Unsubscribe to prevent memory leaks.\r\n this._subscription && this._subscription.unsubscribe();\r\n\r\n // Unregister the group at the parent.\r\n this._parent && this._parent.unregisterGroup(this.id);\r\n }\r\n\r\n onClick() {\r\n // Verify the group is not disabled.\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n // Change the state.\r\n const newValue = !this._isExpanded;\r\n\r\n // Set the state of the sidebar group.\r\n this._parent?.toggleGroup(this.id, newValue);\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onGroupClicked(event: MouseEvent) {\r\n // If the group is not disabled don't do anything.\r\n if (!this.disabled) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Host, Input, Optional, ViewEncapsulation} from '@angular/core';\r\nimport {BbDashboardSidebarGroup} from '../dashboard-sidebar-group/dashboard-sidebar-group.component';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\n\r\n@Component({\r\n selector: '[bb-dashboard-sidebar-item]',\r\n templateUrl: './dashboard-sidebar-item.component.html',\r\n styleUrls: ['./dashboard-sidebar-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-sidebar-item',\r\n '[attr.tabindex]': 'attributeTabIndex',\r\n '[attr.aria-hidden]': 'isHidden',\r\n '(click)': 'onClick()'\r\n }\r\n})\r\nexport class BbDashboardSidebarItem {\r\n\r\n // Inputs.\r\n @Input() tabIndex: number = 0;\r\n\r\n constructor(@Optional() @Host() private _sidebar: BbDashboardSidebar,\r\n @Optional() @Host() private _group: BbDashboardSidebarGroup) {\r\n }\r\n\r\n onClick() {\r\n // Try to \"open\" the sidebar if it exists.\r\n // This will close it on mobile.\r\n this._sidebar?.open();\r\n }\r\n\r\n get attributeTabIndex() {\r\n // Make the items tabindex -1 so it can't\r\n // be tabbed to when the parent is not visible\r\n // or the parent is disabled.\r\n if (this.isHidden) {\r\n return -1;\r\n }\r\n\r\n // Else return the specified tabindex.\r\n return this.tabIndex;\r\n }\r\n\r\n get isHidden() {\r\n return !this.isVisible || this.isDisabled;\r\n }\r\n\r\n private get isVisible() {\r\n return this._group\r\n ? this._group.isExpanded\r\n : true;\r\n }\r\n\r\n private get isDisabled() {\r\n return this._group\r\n ? this._group.disabled\r\n : false;\r\n }\r\n\r\n}\r\n","<!--\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","import {ElementsModule} from '@bravobit/bb-foundation/elements';\r\nimport {CommonModule} from '@angular/common';\r\nimport {RouterModule} from '@angular/router';\r\nimport {NgModule} from '@angular/core';\r\n\r\nimport {BbDashboard} from './dashboard/dashboard.component';\r\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\r\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\r\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\r\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\r\nimport {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\r\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\r\n\r\nconst DECLARATIONS_EXPORTS = [\r\n BbDashboard,\r\n BbDashboardHeader,\r\n BbDashboardMenu,\r\n BbDashboardMenuItem,\r\n BbDashboardSidebar,\r\n BbDashboardSidebarGroup,\r\n BbDashboardSidebarItem\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, ElementsModule],\r\n declarations: [...DECLARATIONS_EXPORTS],\r\n exports: [...DECLARATIONS_EXPORTS]\r\n})\r\nexport class DashboardModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.BbDashboard","i2","i1.BbDashboardSidebar","i3","i2.BbDashboardSidebarGroup"],"mappings":"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"}
1
+ {"version":3,"file":"bravobit-bb-foundation-dashboard.mjs","sources":["../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar/dashboard-sidebar.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar/dashboard-sidebar.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard/dashboard.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard/dashboard.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-header/dashboard-header.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-header/dashboard-header.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu/dashboard-menu.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu/dashboard-menu.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu-item/dashboard-menu-item.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-menu-item/dashboard-menu-item.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.ts","../../../projects/bb-foundation/dashboard/src/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.html","../../../projects/bb-foundation/dashboard/src/lib/dashboard.module.ts","../../../projects/bb-foundation/dashboard/src/bravobit-bb-foundation-dashboard.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation} from '@angular/core';\r\nimport {Storage} from '@bravobit/bb-foundation/storage';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\ntype BbDashboardSidebarState = { [id: string]: boolean };\r\n\r\n@Component({\r\n selector: 'bb-dashboard-sidebar',\r\n templateUrl: './dashboard-sidebar.component.html',\r\n styleUrls: ['./dashboard-sidebar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-sidebar',\r\n '[class.visible]': 'visibilityChanges.getValue()',\r\n 'role': 'navigation'\r\n }\r\n})\r\nexport class BbDashboardSidebar implements OnInit {\r\n\r\n // Bindings.\r\n visibilityChanges = new BehaviorSubject<boolean>(true);\r\n\r\n // State.\r\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\r\n private _cache: BbDashboardSidebarState;\r\n\r\n // Token.\r\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\r\n\r\n constructor(private _storage: Storage) {\r\n }\r\n\r\n ngOnInit() {\r\n // Retrieve the cache.\r\n this._cache = this._storage.get<BbDashboardSidebarState>(this._localStorageToken) || {};\r\n }\r\n\r\n registerGroup(id: string) {\r\n // Get the old state.\r\n const oldState = this._state$.getValue();\r\n\r\n // Get the cache value so when it is undefined\r\n // we will default to true.\r\n const cacheValue = this._cache[id] === undefined ? true : this._cache[id];\r\n\r\n // Push the new state.\r\n this._state$.next({...oldState, [id]: cacheValue});\r\n\r\n // Return the slice of the state that the group needs.\r\n return this._state$.pipe(\r\n map(state => state[id])\r\n );\r\n }\r\n\r\n unregisterGroup(id: string) {\r\n // Get the old groups.\r\n const oldState = this._state$.getValue();\r\n\r\n // Generate the new state without the id.\r\n const newState = Object.keys(oldState).reduce((object, key) => {\r\n if (key !== id) {\r\n object[key] = oldState[key];\r\n }\r\n return object;\r\n }, {});\r\n\r\n // Push the new state.\r\n this._state$.next(newState);\r\n }\r\n\r\n toggleGroup(id: string, newValue: boolean) {\r\n // Get the old state.\r\n const oldState = this._state$.getValue();\r\n\r\n // Create the new state.\r\n const newState = {...oldState, [id]: newValue};\r\n\r\n // Push the new state.\r\n this._state$.next(newState);\r\n\r\n // Save in the cache.\r\n this._storage.set(this._localStorageToken, newState);\r\n }\r\n\r\n toggle() {\r\n const current = this.visibilityChanges.getValue();\r\n this.visibilityChanges.next(!current);\r\n }\r\n\r\n open() {\r\n this.visibilityChanges.next(true);\r\n }\r\n\r\n close() {\r\n this.visibilityChanges.next(false);\r\n }\r\n\r\n}\r\n","<!--\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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\nimport {Patch, Platform} from '@bravobit/bb-foundation';\r\n\r\n@Component({\r\n selector: 'bb-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard'\r\n }\r\n})\r\nexport class BbDashboard implements OnInit, OnDestroy {\r\n\r\n // Views.\r\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\r\n\r\n // Inputs.\r\n @Input() backgroundColor: string = '#e7eaed';\r\n @Input() maxWidth: string = '1200px';\r\n @Input() padding: string = '20px';\r\n\r\n constructor(private _patch: Patch,\r\n private _platform: Platform,\r\n private _renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit() {\r\n // Set the vertical height for mobile devices.\r\n this._patch.mobileVerticalHeight();\r\n\r\n // Set the HTML class to prevent scrolling.\r\n return this.setHtmlClass();\r\n }\r\n\r\n ngOnDestroy() {\r\n // Remove the HTML class.\r\n this.setHtmlClass(true);\r\n }\r\n\r\n private setHtmlClass(shouldRemove: boolean = false) {\r\n // Check if we are on a browser.\r\n if (!this._platform.isBrowser) {\r\n return;\r\n }\r\n\r\n // Define the class name.\r\n const className = 'bb-dashboard-html';\r\n\r\n // Add or remove the class.\r\n return shouldRemove\r\n ? this._renderer.removeClass(document.documentElement, className)\r\n : this._renderer.addClass(document.documentElement, className);\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Optional, ViewEncapsulation} from '@angular/core';\r\nimport {BbDashboard} from '../dashboard/dashboard.component';\r\nimport {of} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'bb-dashboard-header',\r\n templateUrl: './dashboard-header.component.html',\r\n styleUrls: ['./dashboard-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-header'\r\n }\r\n})\r\nexport class BbDashboardHeader {\r\n\r\n constructor(@Optional() private _parent: BbDashboard) {\r\n }\r\n\r\n get showSidebarButton() {\r\n return !!this._parent?.sidebar;\r\n }\r\n\r\n get isSidebarVisible() {\r\n return this._parent?.sidebar?.visibilityChanges ?? of<boolean>(false);\r\n }\r\n\r\n onToggleSidebarClicked() {\r\n this._parent?.sidebar?.toggle();\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'bb-dashboard-menu',\r\n templateUrl: './dashboard-menu.component.html',\r\n styleUrls: ['./dashboard-menu.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-menu',\r\n 'role': 'navigation'\r\n }\r\n})\r\nexport class BbDashboardMenu {\r\n\r\n // Inputs.\r\n @Input() title: string | null = null;\r\n @Input() imageUrl: string | null = null;\r\n @Input() backUrlLink: string | null = null;\r\n @Input() backUrlTitle: string | null = null;\r\n\r\n}\r\n","<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","import {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\n\r\nclass BbDashboardMenuItemBase {\r\n}\r\n\r\nconst BbDashboardMenuItemMixinBase: CanDisableConstructor\r\n & typeof BbDashboardMenuItemBase\r\n = mixinDisabled(BbDashboardMenuItemBase);\r\n\r\n@Component({\r\n selector: '[bb-dashboard-menu-item]',\r\n templateUrl: './dashboard-menu-item.component.html',\r\n styleUrls: ['./dashboard-menu-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n inputs: ['disabled'],\r\n host: {\r\n 'class': 'bb-dashboard-menu-item',\r\n '[class.disabled]': 'disabled',\r\n '(click)': 'stopDisabledEvents($event)'\r\n }\r\n})\r\nexport class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase implements CanDisable {\r\n\r\n stopDisabledEvents(event: Event) {\r\n // If the menu item is not disabled let all events pass.\r\n if (!this.disabled) {\r\n return;\r\n }\r\n\r\n // If the menu item is disabled stop the event from\r\n // bubbling up.\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n}\r\n","<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","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Host,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\nimport {CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\r\nimport {of, Subscription} from 'rxjs';\r\n\r\nclass BbDashboardSidebarGroupBase {\r\n constructor(protected _parent: BbDashboardSidebar) {\r\n }\r\n}\r\n\r\nconst BbDashboardSidebarGroupMixinBase: CanDisableConstructor\r\n & typeof BbDashboardSidebarGroupBase\r\n = mixinDisabled(BbDashboardSidebarGroupBase);\r\n\r\n@Component({\r\n selector: 'bb-dashboard-sidebar-group',\r\n templateUrl: './dashboard-sidebar-group.component.html',\r\n styleUrls: ['./dashboard-sidebar-group.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n inputs: ['disabled'],\r\n host: {\r\n 'class': 'bb-dashboard-sidebar-group',\r\n '[class.expanded]': 'isExpanded',\r\n '[class.with-toggle]': 'hasToggle',\r\n '[class.has-icon]': '!!icon',\r\n '[class.disabled]': 'disabled',\r\n 'role': 'group'\r\n }\r\n})\r\nexport class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase implements OnInit, OnDestroy {\r\n\r\n // Inputs.\r\n @Input() id: string | null = null;\r\n @Input() icon: string | null = null;\r\n @Input() title: string | null = null;\r\n\r\n // State.\r\n private _isExpanded: boolean = false;\r\n\r\n // Subscriptions.\r\n private _subscription: Subscription;\r\n\r\n constructor(@Optional() @Host() protected override _parent: BbDashboardSidebar) {\r\n super(_parent);\r\n }\r\n\r\n get hasToggle() {\r\n // Check if the user provided a icon and/or title.\r\n return !!this.icon || !!this.title;\r\n }\r\n\r\n get isExpanded() {\r\n // If there is an icon or title the group can be\r\n // expanded by clicking, else not.\r\n return this.hasToggle\r\n ? this._isExpanded\r\n : true;\r\n }\r\n\r\n ngOnInit() {\r\n // Check if the id has been supplied.\r\n if (!this.id) {\r\n throw new Error('Id is required.');\r\n }\r\n\r\n // Register the group at the parent and\r\n // retrieve the slice of the state.\r\n const observable$ = this._parent?.registerGroup(this.id) ?? of(false);\r\n\r\n // Subscribe to the state.\r\n this._subscription = observable$\r\n .subscribe(isExpanded => this._isExpanded = isExpanded);\r\n }\r\n\r\n ngOnDestroy() {\r\n // Unsubscribe to prevent memory leaks.\r\n this._subscription && this._subscription.unsubscribe();\r\n\r\n // Unregister the group at the parent.\r\n this._parent && this._parent.unregisterGroup(this.id);\r\n }\r\n\r\n onClick() {\r\n // Verify the group is not disabled.\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n // Change the state.\r\n const newValue = !this._isExpanded;\r\n\r\n // Set the state of the sidebar group.\r\n this._parent?.toggleGroup(this.id, newValue);\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onGroupClicked(event: MouseEvent) {\r\n // If the group is not disabled don't do anything.\r\n if (!this.disabled) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n}\r\n","<!--\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","import {ChangeDetectionStrategy, Component, Host, Input, Optional, ViewEncapsulation} from '@angular/core';\r\nimport {BbDashboardSidebarGroup} from '../dashboard-sidebar-group/dashboard-sidebar-group.component';\r\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\r\n\r\n@Component({\r\n selector: '[bb-dashboard-sidebar-item]',\r\n templateUrl: './dashboard-sidebar-item.component.html',\r\n styleUrls: ['./dashboard-sidebar-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n host: {\r\n 'class': 'bb-dashboard-sidebar-item',\r\n '[attr.tabindex]': 'attributeTabIndex',\r\n '[attr.aria-hidden]': 'isHidden',\r\n '(click)': 'onClick()'\r\n }\r\n})\r\nexport class BbDashboardSidebarItem {\r\n\r\n // Inputs.\r\n @Input() tabIndex: number = 0;\r\n\r\n constructor(@Optional() @Host() private _sidebar: BbDashboardSidebar,\r\n @Optional() @Host() private _group: BbDashboardSidebarGroup) {\r\n }\r\n\r\n onClick() {\r\n // Try to \"open\" the sidebar if it exists.\r\n // This will close it on mobile.\r\n this._sidebar?.open();\r\n }\r\n\r\n get attributeTabIndex() {\r\n // Make the items tabindex -1 so it can't\r\n // be tabbed to when the parent is not visible\r\n // or the parent is disabled.\r\n if (this.isHidden) {\r\n return -1;\r\n }\r\n\r\n // Else return the specified tabindex.\r\n return this.tabIndex;\r\n }\r\n\r\n get isHidden() {\r\n return !this.isVisible || this.isDisabled;\r\n }\r\n\r\n private get isVisible() {\r\n return this._group\r\n ? this._group.isExpanded\r\n : true;\r\n }\r\n\r\n private get isDisabled() {\r\n return this._group\r\n ? this._group.disabled\r\n : false;\r\n }\r\n\r\n}\r\n","<!--\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","import {ElementsModule} from '@bravobit/bb-foundation/elements';\r\nimport {CommonModule} from '@angular/common';\r\nimport {RouterModule} from '@angular/router';\r\nimport {NgModule} from '@angular/core';\r\n\r\nimport {BbDashboard} from './dashboard/dashboard.component';\r\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\r\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\r\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\r\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\r\nimport {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\r\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\r\n\r\nconst DECLARATIONS_EXPORTS = [\r\n BbDashboard,\r\n BbDashboardHeader,\r\n BbDashboardMenu,\r\n BbDashboardMenuItem,\r\n BbDashboardSidebar,\r\n BbDashboardSidebarGroup,\r\n BbDashboardSidebarItem\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, ElementsModule],\r\n declarations: [...DECLARATIONS_EXPORTS],\r\n exports: [...DECLARATIONS_EXPORTS]\r\n})\r\nexport class DashboardModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.BbDashboard","i2","i1.BbDashboardSidebar","i2.BbDashboardSidebarGroup"],"mappings":"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"}