@bravobit/bb-foundation 0.22.1 → 0.22.4

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 (192) hide show
  1. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -2
  2. package/controls/lib/checkbox/checkbox.module.d.ts +2 -1
  3. package/controls/lib/form-control/form-control/form-control.component.d.ts +5 -5
  4. package/controls/lib/form-control/form-control.module.d.ts +2 -1
  5. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +4 -2
  6. package/dialog/lib/dialog.interfaces.d.ts +7 -0
  7. package/dialog/lib/dialog.service.d.ts +5 -9
  8. package/elements/lib/date-picker/date-picker.component.d.ts +4 -2
  9. package/elements/lib/elements.module.d.ts +25 -28
  10. package/elements/lib/pipes/relative-time.pipe.d.ts +4 -4
  11. package/elements/public_api.d.ts +0 -4
  12. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  13. package/esm2020/auth/lib/auth.module.mjs +4 -4
  14. package/esm2020/auth/lib/auth.service.mjs +3 -3
  15. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  16. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  17. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  18. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  19. package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
  20. package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
  21. package/esm2020/collections/lib/collections.module.mjs +4 -4
  22. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  23. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +5 -5
  24. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  25. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
  26. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +7 -6
  27. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +7 -6
  28. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
  29. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
  30. package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
  31. package/esm2020/controls/lib/controls.module.mjs +4 -4
  32. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +6 -5
  33. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
  34. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
  35. package/esm2020/controls/lib/form-control/form-control.module.mjs +8 -7
  36. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  37. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  38. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  39. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  40. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  41. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  42. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  43. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  44. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  45. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +15 -12
  46. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +5 -5
  47. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  48. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  49. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +6 -6
  50. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  51. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  52. package/esm2020/dialog/lib/dialog.interfaces.mjs +1 -1
  53. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  54. package/esm2020/dialog/lib/dialog.service.mjs +15 -27
  55. package/esm2020/elements/lib/avatar/avatar.component.mjs +7 -7
  56. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  57. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  58. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +20 -15
  59. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  60. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  61. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
  62. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  63. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  64. package/esm2020/elements/lib/elements.module.mjs +21 -25
  65. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +4 -4
  66. package/esm2020/elements/lib/form-control/form-control.component.mjs +4 -4
  67. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  68. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  69. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  70. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  71. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  72. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  73. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +15 -13
  74. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  75. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  76. package/esm2020/elements/public_api.mjs +1 -5
  77. package/esm2020/http/lib/classes/http.config.mjs +2 -3
  78. package/esm2020/http/lib/http.module.mjs +4 -4
  79. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +6 -6
  80. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  81. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  82. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  83. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  84. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  85. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  86. package/esm2020/lib/core/services/network.service.mjs +3 -3
  87. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  88. package/esm2020/localize/lib/localize.dictionary.mjs +2 -4
  89. package/esm2020/localize/lib/localize.module.mjs +9 -11
  90. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  91. package/esm2020/localize/lib/localize.service.mjs +3 -3
  92. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +6 -6
  93. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  94. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  95. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  96. package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
  97. package/esm2020/masking/lib/masking.module.mjs +4 -4
  98. package/esm2020/masking/lib/masking.service.mjs +3 -3
  99. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  100. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  101. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  102. package/esm2020/notifications/lib/notifications.service.mjs +22 -26
  103. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  104. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  105. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  106. package/esm2020/storage/lib/storage.service.mjs +7 -7
  107. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  108. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  109. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  110. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  111. package/esm2020/table/lib/table.module.mjs +4 -4
  112. package/esm2020/theming/lib/theming.directive.mjs +3 -3
  113. package/esm2020/theming/lib/theming.module.mjs +4 -4
  114. package/esm2020/utils/bravobit-bb-foundation-utils.mjs +5 -0
  115. package/esm2020/utils/lib/directives/autosize.directive.mjs +72 -0
  116. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +77 -0
  117. package/esm2020/utils/lib/directives/focus.directive.mjs +37 -0
  118. package/esm2020/utils/lib/directives/template.directive.mjs +28 -0
  119. package/esm2020/utils/lib/utils.module.mjs +35 -0
  120. package/esm2020/utils/public_api.mjs +6 -0
  121. package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
  122. package/fesm2015/bravobit-bb-foundation-collections.mjs +23 -23
  123. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  124. package/fesm2015/bravobit-bb-foundation-controls.mjs +47 -45
  125. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  126. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  127. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  128. package/fesm2015/bravobit-bb-foundation-dialog.mjs +56 -83
  129. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  130. package/fesm2015/bravobit-bb-foundation-elements.mjs +126 -324
  131. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  132. package/fesm2015/bravobit-bb-foundation-http.mjs +14 -14
  133. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  134. package/fesm2015/bravobit-bb-foundation-localize.mjs +26 -53
  135. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  136. package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
  137. package/fesm2015/bravobit-bb-foundation-notifications.mjs +31 -52
  138. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  139. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  140. package/fesm2015/bravobit-bb-foundation-storage.mjs +6 -6
  141. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  142. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  143. package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
  144. package/fesm2015/bravobit-bb-foundation-utils.mjs +246 -0
  145. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +1 -0
  146. package/fesm2015/bravobit-bb-foundation.mjs +21 -21
  147. package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
  148. package/fesm2020/bravobit-bb-foundation-collections.mjs +23 -23
  149. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  150. package/fesm2020/bravobit-bb-foundation-controls.mjs +47 -45
  151. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  152. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  153. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  154. package/fesm2020/bravobit-bb-foundation-dialog.mjs +55 -81
  155. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  156. package/fesm2020/bravobit-bb-foundation-elements.mjs +124 -322
  157. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  158. package/fesm2020/bravobit-bb-foundation-http.mjs +14 -14
  159. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  160. package/fesm2020/bravobit-bb-foundation-localize.mjs +26 -53
  161. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  162. package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
  163. package/fesm2020/bravobit-bb-foundation-notifications.mjs +31 -52
  164. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  165. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  166. package/fesm2020/bravobit-bb-foundation-storage.mjs +6 -6
  167. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  168. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  169. package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
  170. package/fesm2020/bravobit-bb-foundation-utils.mjs +244 -0
  171. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +1 -0
  172. package/fesm2020/bravobit-bb-foundation.mjs +21 -21
  173. package/localize/lib/localize.module.d.ts +3 -3
  174. package/notifications/lib/notifications.service.d.ts +6 -7
  175. package/package.json +12 -4
  176. package/utils/index.d.ts +5 -0
  177. package/{elements → utils}/lib/directives/autosize.directive.d.ts +0 -0
  178. package/{elements → utils}/lib/directives/focus-trap.directive.d.ts +0 -0
  179. package/{elements → utils}/lib/directives/focus.directive.d.ts +0 -0
  180. package/{elements → utils}/lib/directives/template.directive.d.ts +1 -0
  181. package/utils/lib/utils.module.d.ts +10 -0
  182. package/utils/public_api.d.ts +5 -0
  183. package/dialog/lib/dialog.injector.d.ts +0 -8
  184. package/esm2020/dialog/lib/dialog.injector.mjs +0 -18
  185. package/esm2020/elements/lib/directives/autosize.directive.mjs +0 -72
  186. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +0 -77
  187. package/esm2020/elements/lib/directives/focus.directive.mjs +0 -37
  188. package/esm2020/elements/lib/directives/template.directive.mjs +0 -28
  189. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +0 -28
  190. package/esm2020/notifications/lib/notifications.injector.mjs +0 -18
  191. package/localize/lib/views/localize-template-or-string.directive.d.ts +0 -10
  192. package/notifications/lib/notifications.injector.d.ts +0 -8
@@ -72,9 +72,9 @@ class BbDashboardSidebar {
72
72
  this.visibilityChanges.next(false);
73
73
  }
74
74
  }
75
- BbDashboardSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebar, deps: [{ token: i1.Storage }], target: i0.ɵɵFactoryTarget.Component });
76
- BbDashboardSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardSidebar, selector: "bb-dashboard-sidebar", host: { attributes: { "role": "navigation" }, properties: { "class.visible": "visibilityChanges.getValue()" }, classAttribute: "bb-dashboard-sidebar" }, ngImport: i0, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebar, decorators: [{
75
+ BbDashboardSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebar, deps: [{ token: i1.Storage }], target: i0.ɵɵFactoryTarget.Component });
76
+ BbDashboardSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardSidebar, selector: "bb-dashboard-sidebar", host: { attributes: { "role": "navigation" }, properties: { "class.visible": "visibilityChanges.getValue()" }, classAttribute: "bb-dashboard-sidebar" }, ngImport: i0, template: "<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n", styles: [".bb-dashboard-sidebar{top:0;bottom:0;z-index:10;left:-256px;width:256px;height:100vh;display:flex;position:fixed;min-width:256px;will-change:transform;flex-direction:column;transform:translate(256px);height:calc(var(--vh, 1vh) * 100);border-right:1px solid rgba(0,0,0,.4);transition:transform .25s cubic-bezier(0,0,.2,1);background:white linear-gradient(to bottom,white,#f2f2f2)}.bb-dashboard-sidebar.visible{transform:none}.bb-dashboard-sidebar-scroll{flex:1;overflow:auto}.bb-dashboard-sidebar>header{border-bottom:1px solid #d8d8d8;background-color:#ffffff80}.bb-dashboard-sidebar>footer{border-top:1px solid #d8d8d8;background-color:#ffffff80}@media only screen and (min-width: 768px){.bb-dashboard-sidebar{left:0;z-index:auto;transform:none;position:relative;margin-left:-256px;transition:margin-left .25s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebar, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
80
80
  'class': 'bb-dashboard-sidebar',
@@ -116,9 +116,9 @@ class BbDashboard {
116
116
  : this._renderer.addClass(document.documentElement, className);
117
117
  }
118
118
  }
119
- BbDashboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboard, deps: [{ token: i1$1.Patch }, { token: i2.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
120
- BbDashboard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboard, selector: "bb-dashboard", inputs: { backgroundColor: "backgroundColor", maxWidth: "maxWidth", padding: "padding" }, host: { classAttribute: "bb-dashboard" }, queries: [{ propertyName: "sidebar", first: true, predicate: BbDashboardSidebar, descendants: true }], ngImport: i0, template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboard, decorators: [{
119
+ BbDashboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboard, deps: [{ token: i1$1.Patch }, { token: i2.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
120
+ BbDashboard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboard, selector: "bb-dashboard", inputs: { backgroundColor: "backgroundColor", maxWidth: "maxWidth", padding: "padding" }, host: { classAttribute: "bb-dashboard" }, queries: [{ propertyName: "sidebar", first: true, predicate: BbDashboardSidebar, descendants: true }], ngImport: i0, template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n", styles: [".bb-dashboard{height:100vh;display:flex;overflow:hidden;position:relative;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-section{flex:1;height:100vh;display:flex;overflow-x:hidden;flex-direction:column;height:calc(var(--vh, 1vh) * 100)}.bb-dashboard-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:scroll;flex-direction:column;-webkit-overflow-scrolling:touch}.bb-dashboard-container{width:100%;display:flex;margin:0 auto;flex-direction:column}.bb-dashboard-backdrop{top:0;left:0;right:0;bottom:0;opacity:0;z-index:5;position:absolute;will-change:opacity;pointer-events:none;background-color:#00000080;transition:opacity .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-backdrop.visible{opacity:1;cursor:pointer;pointer-events:all}@media only screen and (min-width: 768px){.bb-dashboard-backdrop{display:none}}.bb-dashboard-html{height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboard, decorators: [{
122
122
  type: Component,
123
123
  args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
124
124
  'class': 'bb-dashboard'
@@ -151,9 +151,9 @@ class BbDashboardHeader {
151
151
  (_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a.sidebar) === null || _b === void 0 ? void 0 : _b.toggle();
152
152
  }
153
153
  }
154
- BbDashboardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardHeader, deps: [{ token: BbDashboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
155
- BbDashboardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardHeader, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardHeader, decorators: [{
154
+ BbDashboardHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardHeader, deps: [{ token: BbDashboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
155
+ BbDashboardHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardHeader, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n", styles: [".bb-dashboard-header{z-index:1;width:100%;color:#fff;height:50px;display:flex;padding:0 8px;min-height:50px;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:68px;height:34px;border-radius:4px;align-items:center;display:inline-flex;justify-content:center;border:1px solid #4d46d6;background-color:transparent}.bb-dashboard-header-button>svg{height:100%;transform:none;transition:transform .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-header-button.reversed>svg{transform:rotateY(180deg)}.bb-dashboard-header-button:hover{background-color:#0000000a}.bb-dashboard-header-button:active{background-color:#00000014}.bb-dashboard-header-items{display:flex;margin-left:auto;align-items:center}.bb-dashboard-header-items>*:not(:first-child){margin-left:8px}@media only screen and (min-width: 768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardHeader, decorators: [{
157
157
  type: Component,
158
158
  args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
159
159
  'class': 'bb-dashboard-header'
@@ -173,9 +173,9 @@ class BbDashboardMenu {
173
173
  this.backUrlTitle = null;
174
174
  }
175
175
  }
176
- BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
177
- BbDashboardMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardMenu, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.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 });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardMenu, decorators: [{
176
+ BbDashboardMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
177
+ BbDashboardMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardMenu, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n", styles: [".bb-dashboard-menu{display:block;margin-bottom:20px}.bb-dashboard-menu-link,.bb-dashboard-menu-title{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bb-dashboard-menu-link{display:block;font-weight:500;margin-bottom:16px;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{width:14px;content:\"\";height:13px;margin-right:3px;display:inline-block;background-size:cover;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 492 492'%3E%3Cpath fill='%23a7a9c4' d='M464.344 207.418l.768.168H135.888l103.496-103.724c5.068-5.064 7.848-11.924 7.848-19.124 0-7.2-2.78-14.012-7.848-19.088L223.28 49.538c-5.064-5.064-11.812-7.864-19.008-7.864-7.2 0-13.952 2.78-19.016 7.844L7.844 226.914C2.76 231.998-.02 238.77 0 245.974c-.02 7.244 2.76 14.02 7.844 19.096l177.412 177.412c5.064 5.06 11.812 7.844 19.016 7.844 7.196 0 13.944-2.788 19.008-7.844l16.104-16.112c5.068-5.056 7.848-11.808 7.848-19.008 0-7.196-2.78-13.592-7.848-18.652L134.72 284.406h329.992c14.828 0 27.288-12.78 27.288-27.6v-22.788c0-14.82-12.828-26.6-27.656-26.6z'/%3E%3C/svg%3E\")}.bb-dashboard-menu-row{display:flex;align-items:center;margin-bottom:10px}.bb-dashboard-menu-image{display:block;margin-right:10px;width:30px;height:30px;border-radius:50%}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:34px;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardMenu, decorators: [{
179
179
  type: Component,
180
180
  args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
181
181
  'class': 'bb-dashboard-menu',
@@ -206,9 +206,9 @@ class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase {
206
206
  event.stopImmediatePropagation();
207
207
  }
208
208
  }
209
- BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
210
- BbDashboardMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardMenuItem, selector: "[bb-dashboard-menu-item]", inputs: { disabled: "disabled" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
209
+ BbDashboardMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardMenuItem, deps: null, target: i0.ɵɵFactoryTarget.Component });
210
+ BbDashboardMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardMenuItem, selector: "[bb-dashboard-menu-item]", inputs: { disabled: "disabled" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n", styles: [".bb-dashboard-menu-item{margin:0;padding:0;border:none;display:flex;max-width:100%;font-size:16px;-webkit-appearance:none;appearance:none;align-items:center;white-space:nowrap;background-color:transparent;text-decoration:none!important;border-bottom:2px solid transparent}.bb-dashboard-menu-item,.bb-dashboard-menu-item:visited{color:#6b5c5c}.bb-dashboard-menu-item:not(:first-child){margin-left:10px}.bb-dashboard-menu-item:not(:last-child){margin-right:10px}.bb-dashboard-menu-item:hover:not(.disabled):not(.active){border-color:#75779433}.bb-dashboard-menu-item.active,.bb-dashboard-menu-item.active:visited .bb-dashboard-menu-item.active:hover{color:#5b53ff;border-color:#5b53ff}.bb-dashboard-menu-item.disabled,.bb-dashboard-menu-item.disabled:focus,.bb-dashboard-menu-item.disabled:hover,.bb-dashboard-menu-item.disabled:active{opacity:.4;cursor:default;box-shadow:none}.bb-dashboard-menu-item>.bb-prefix{margin-right:5px}.bb-dashboard-menu-item>.bb-suffix{margin-left:5px}.bb-dashboard-menu-item-content{height:38px;display:block;font-weight:500;line-height:38px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
212
212
  type: Component,
213
213
  args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
214
214
  'class': 'bb-dashboard-menu-item',
@@ -284,9 +284,9 @@ class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase {
284
284
  event.stopPropagation();
285
285
  }
286
286
  }
287
- BbDashboardSidebarGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
288
- BbDashboardSidebarGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardSidebarGroup, selector: "bb-dashboard-sidebar-group", inputs: { disabled: "disabled", id: "id", icon: "icon", title: "title" }, host: { attributes: { "role": "group" }, listeners: { "click": "onGroupClicked($event)" }, properties: { "class.expanded": "isExpanded", "class.with-toggle": "hasToggle", "class.has-icon": "!!icon", "class.disabled": "disabled" }, classAttribute: "bb-dashboard-sidebar-group" }, usesInheritance: true, ngImport: i0, template: "<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"], dependencies: [{ kind: "directive", type: i2$1.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 });
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
287
+ BbDashboardSidebarGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
288
+ BbDashboardSidebarGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardSidebarGroup, selector: "bb-dashboard-sidebar-group", inputs: { disabled: "disabled", id: "id", icon: "icon", title: "title" }, host: { attributes: { "role": "group" }, listeners: { "click": "onGroupClicked($event)" }, properties: { "class.expanded": "isExpanded", "class.with-toggle": "hasToggle", "class.has-icon": "!!icon", "class.disabled": "disabled" }, classAttribute: "bb-dashboard-sidebar-group" }, usesInheritance: true, ngImport: i0, template: "<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1);transition:background-color .2s cubic-bezier(0,0,.2,1),padding-bottom .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group.expanded{background-color:#0000000a}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-title{color:#000}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-item{opacity:1;height:32px;line-height:32px;padding:6px 16px}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(10px)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:20px}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:54px}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;padding:17px 15px;color:#000c;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-title:active>.bb-dashboard-sidebar-group-toggle{background-color:#00000014}.bb-dashboard-sidebar-group-icon{margin-right:15px;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;font-size:14px;max-width:100%;overflow:hidden;font-weight:500;line-height:15px;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:22px;height:22px;display:flex;min-width:22px;min-height:22px;margin-left:auto;border-radius:3px;align-items:center;justify-content:center;transition:opacity .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-group-toggle>svg{width:10px;height:10px;fill:#00000040}\n"], dependencies: [{ kind: "directive", type: i2$1.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 });
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
290
290
  type: Component,
291
291
  args: [{ selector: 'bb-dashboard-sidebar-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, inputs: ['disabled'], host: {
292
292
  'class': 'bb-dashboard-sidebar-group',
@@ -350,9 +350,9 @@ class BbDashboardSidebarItem {
350
350
  : false;
351
351
  }
352
352
  }
353
- BbDashboardSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, host: true, optional: true }, { token: BbDashboardSidebarGroup, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
354
- BbDashboardSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDashboardSidebarItem, selector: "[bb-dashboard-sidebar-item]", inputs: { tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.tabindex": "attributeTabIndex", "attr.aria-hidden": "isHidden" }, classAttribute: "bb-dashboard-sidebar-item" }, ngImport: i0, template: "<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
353
+ BbDashboardSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, host: true, optional: true }, { token: BbDashboardSidebarGroup, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
354
+ BbDashboardSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: BbDashboardSidebarItem, selector: "[bb-dashboard-sidebar-item]", inputs: { tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick()" }, properties: { "attr.tabindex": "attributeTabIndex", "attr.aria-hidden": "isHidden" }, classAttribute: "bb-dashboard-sidebar-item" }, ngImport: i0, template: "<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-dashboard-sidebar-item{height:0;opacity:0;padding:0;display:flex;line-height:0;cursor:pointer;font-size:14px;font-weight:500;align-items:center;text-decoration:none;will-change:opacity,height;color:#000000d9!important;transition:height .2s cubic-bezier(0,0,.2,1),opacity .2s 50ms cubic-bezier(0,0,.2,1),color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar-item:focus,.bb-dashboard-sidebar-item:hover{background-color:#00000005}.bb-dashboard-sidebar-item:active{background-color:#0000000a}.bb-dashboard-sidebar-item.active,.bb-dashboard-sidebar-item.active:hover,.bb-dashboard-sidebar-item.active:focus,.bb-dashboard-sidebar-item.active:active{color:#000!important;background-color:#0000000f}.bb-dashboard-sidebar-item-content{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
356
356
  type: Component,
357
357
  args: [{ selector: '[bb-dashboard-sidebar-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
358
358
  'class': 'bb-dashboard-sidebar-item',
@@ -385,8 +385,8 @@ const DECLARATIONS_EXPORTS = [
385
385
  ];
386
386
  class DashboardModule {
387
387
  }
388
- DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
389
- DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
388
+ DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
389
+ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: DashboardModule, declarations: [BbDashboard,
390
390
  BbDashboardHeader,
391
391
  BbDashboardMenu,
392
392
  BbDashboardMenuItem,
@@ -399,8 +399,8 @@ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
399
399
  BbDashboardSidebar,
400
400
  BbDashboardSidebarGroup,
401
401
  BbDashboardSidebarItem] });
402
- DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: DashboardModule, imports: [CommonModule, RouterModule, ElementsModule] });
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: DashboardModule, decorators: [{
402
+ DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DashboardModule, imports: [CommonModule, RouterModule, ElementsModule] });
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DashboardModule, decorators: [{
404
404
  type: NgModule,
405
405
  args: [{
406
406
  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';\nimport {Storage} from '@bravobit/bb-foundation/storage';\nimport {BehaviorSubject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\ntype BbDashboardSidebarState = { [id: string]: boolean };\n\n@Component({\n selector: 'bb-dashboard-sidebar',\n templateUrl: './dashboard-sidebar.component.html',\n styleUrls: ['./dashboard-sidebar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-sidebar',\n '[class.visible]': 'visibilityChanges.getValue()',\n 'role': 'navigation'\n }\n})\nexport class BbDashboardSidebar implements OnInit {\n\n // Bindings.\n visibilityChanges = new BehaviorSubject<boolean>(true);\n\n // State.\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\n private _cache: BbDashboardSidebarState;\n\n // Token.\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\n\n constructor(private _storage: Storage) {\n }\n\n ngOnInit() {\n // Retrieve the cache.\n this._cache = this._storage.get<BbDashboardSidebarState>(this._localStorageToken) || {};\n }\n\n registerGroup(id: string) {\n // Get the old state.\n const oldState = this._state$.getValue();\n\n // Get the cache value so when it is undefined\n // we will default to true.\n const cacheValue = this._cache[id] === undefined ? true : this._cache[id];\n\n // Push the new state.\n this._state$.next({...oldState, [id]: cacheValue});\n\n // Return the slice of the state that the group needs.\n return this._state$.pipe(\n map(state => state[id])\n );\n }\n\n unregisterGroup(id: string) {\n // Get the old groups.\n const oldState = this._state$.getValue();\n\n // Generate the new state without the id.\n const newState = Object.keys(oldState).reduce((object, key) => {\n if (key !== id) {\n object[key] = oldState[key];\n }\n return object;\n }, {});\n\n // Push the new state.\n this._state$.next(newState);\n }\n\n toggleGroup(id: string, newValue: boolean) {\n // Get the old state.\n const oldState = this._state$.getValue();\n\n // Create the new state.\n const newState = {...oldState, [id]: newValue};\n\n // Push the new state.\n this._state$.next(newState);\n\n // Save in the cache.\n this._storage.set(this._localStorageToken, newState);\n }\n\n toggle() {\n const current = this.visibilityChanges.getValue();\n this.visibilityChanges.next(!current);\n }\n\n open() {\n this.visibilityChanges.next(true);\n }\n\n close() {\n this.visibilityChanges.next(false);\n }\n\n}\n","<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {Platform} from '@angular/cdk/platform';\nimport {Patch} from '@bravobit/bb-foundation';\n\n@Component({\n selector: 'bb-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard'\n }\n})\nexport class BbDashboard implements OnInit, OnDestroy {\n\n // Views.\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\n\n // Inputs.\n @Input() backgroundColor: string = '#e7eaed';\n @Input() maxWidth: string = '1200px';\n @Input() padding: string = '20px';\n\n constructor(private _patch: Patch,\n private _platform: Platform,\n private _renderer: Renderer2) {\n }\n\n ngOnInit() {\n // Set the vertical height for mobile devices.\n this._patch.mobileVerticalHeight();\n\n // Set the HTML class to prevent scrolling.\n return this.setHtmlClass();\n }\n\n ngOnDestroy() {\n // Remove the HTML class.\n this.setHtmlClass(true);\n }\n\n private setHtmlClass(shouldRemove: boolean = false) {\n // Check if we are on a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Define the class name.\n const className = 'bb-dashboard-html';\n\n // Add or remove the class.\n return shouldRemove\n ? this._renderer.removeClass(document.documentElement, className)\n : this._renderer.addClass(document.documentElement, className);\n }\n\n}\n","<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n","import {ChangeDetectionStrategy, Component, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboard} from '../dashboard/dashboard.component';\nimport {of} from 'rxjs';\n\n@Component({\n selector: 'bb-dashboard-header',\n templateUrl: './dashboard-header.component.html',\n styleUrls: ['./dashboard-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-header'\n }\n})\nexport class BbDashboardHeader {\n\n constructor(@Optional() private _parent: BbDashboard) {\n }\n\n get showSidebarButton() {\n return !!this._parent?.sidebar;\n }\n\n get isSidebarVisible() {\n return this._parent?.sidebar?.visibilityChanges ?? of<boolean>(false);\n }\n\n onToggleSidebarClicked() {\n this._parent?.sidebar?.toggle();\n }\n\n}\n","<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'bb-dashboard-menu',\n templateUrl: './dashboard-menu.component.html',\n styleUrls: ['./dashboard-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-menu',\n 'role': 'navigation'\n }\n})\nexport class BbDashboardMenu {\n\n // Inputs.\n @Input() title: string | null = null;\n @Input() imageUrl: string | null = null;\n @Input() backUrlLink: string | null = null;\n @Input() backUrlTitle: string | null = null;\n\n}\n","<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n","import {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\nclass BbDashboardMenuItemBase {\n}\n\nconst BbDashboardMenuItemMixinBase: CanDisableConstructor\n & typeof BbDashboardMenuItemBase\n = mixinDisabled(BbDashboardMenuItemBase);\n\n@Component({\n selector: '[bb-dashboard-menu-item]',\n templateUrl: './dashboard-menu-item.component.html',\n styleUrls: ['./dashboard-menu-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n inputs: ['disabled'],\n host: {\n 'class': 'bb-dashboard-menu-item',\n '[class.disabled]': 'disabled',\n '(click)': 'stopDisabledEvents($event)'\n }\n})\nexport class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase implements CanDisable {\n\n stopDisabledEvents(event: Event) {\n // If the menu item is not disabled let all events pass.\n if (!this.disabled) {\n return;\n }\n\n // If the menu item is disabled stop the event from\n // bubbling up.\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n}\n","<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\nimport {of, Subscription} from 'rxjs';\n\nclass BbDashboardSidebarGroupBase {\n constructor(protected _parent: BbDashboardSidebar) {\n }\n}\n\nconst BbDashboardSidebarGroupMixinBase: CanDisableConstructor\n & typeof BbDashboardSidebarGroupBase\n = mixinDisabled(BbDashboardSidebarGroupBase);\n\n@Component({\n selector: 'bb-dashboard-sidebar-group',\n templateUrl: './dashboard-sidebar-group.component.html',\n styleUrls: ['./dashboard-sidebar-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n inputs: ['disabled'],\n host: {\n 'class': 'bb-dashboard-sidebar-group',\n '[class.expanded]': 'isExpanded',\n '[class.with-toggle]': 'hasToggle',\n '[class.has-icon]': '!!icon',\n '[class.disabled]': 'disabled',\n 'role': 'group'\n }\n})\nexport class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase implements OnInit, OnDestroy {\n\n // Inputs.\n @Input() id: string | null = null;\n @Input() icon: string | null = null;\n @Input() title: string | null = null;\n\n // State.\n private _isExpanded: boolean = false;\n\n // Subscriptions.\n private _subscription: Subscription;\n\n constructor(@Optional() @Host() protected override _parent: BbDashboardSidebar) {\n super(_parent);\n }\n\n get hasToggle() {\n // Check if the user provided a icon and/or title.\n return !!this.icon || !!this.title;\n }\n\n get isExpanded() {\n // If there is an icon or title the group can be\n // expanded by clicking, else not.\n return this.hasToggle\n ? this._isExpanded\n : true;\n }\n\n ngOnInit() {\n // Check if the id has been supplied.\n if (!this.id) {\n throw new Error('Id is required.');\n }\n\n // Register the group at the parent and\n // retrieve the slice of the state.\n const observable$ = this._parent?.registerGroup(this.id) ?? of(false);\n\n // Subscribe to the state.\n this._subscription = observable$\n .subscribe(isExpanded => this._isExpanded = isExpanded);\n }\n\n ngOnDestroy() {\n // Unsubscribe to prevent memory leaks.\n this._subscription && this._subscription.unsubscribe();\n\n // Unregister the group at the parent.\n this._parent && this._parent.unregisterGroup(this.id);\n }\n\n onClick() {\n // Verify the group is not disabled.\n if (this.disabled) {\n return;\n }\n\n // Change the state.\n const newValue = !this._isExpanded;\n\n // Set the state of the sidebar group.\n this._parent?.toggleGroup(this.id, newValue);\n }\n\n @HostListener('click', ['$event'])\n onGroupClicked(event: MouseEvent) {\n // If the group is not disabled don't do anything.\n if (!this.disabled) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n}\n","<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n","import {ChangeDetectionStrategy, Component, Host, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebarGroup} from '../dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\n\n@Component({\n selector: '[bb-dashboard-sidebar-item]',\n templateUrl: './dashboard-sidebar-item.component.html',\n styleUrls: ['./dashboard-sidebar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-sidebar-item',\n '[attr.tabindex]': 'attributeTabIndex',\n '[attr.aria-hidden]': 'isHidden',\n '(click)': 'onClick()'\n }\n})\nexport class BbDashboardSidebarItem {\n\n // Inputs.\n @Input() tabIndex: number = 0;\n\n constructor(@Optional() @Host() private _sidebar: BbDashboardSidebar,\n @Optional() @Host() private _group: BbDashboardSidebarGroup) {\n }\n\n onClick() {\n // Try to \"open\" the sidebar if it exists.\n // This will close it on mobile.\n this._sidebar?.open();\n }\n\n get attributeTabIndex() {\n // Make the items tabindex -1 so it can't\n // be tabbed to when the parent is not visible\n // or the parent is disabled.\n if (this.isHidden) {\n return -1;\n }\n\n // Else return the specified tabindex.\n return this.tabIndex;\n }\n\n get isHidden() {\n return !this.isVisible || this.isDisabled;\n }\n\n private get isVisible() {\n return this._group\n ? this._group.isExpanded\n : true;\n }\n\n private get isDisabled() {\n return this._group\n ? this._group.disabled\n : false;\n }\n\n}\n","<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n","import {ElementsModule} from '@bravobit/bb-foundation/elements';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {NgModule} from '@angular/core';\n\nimport {BbDashboard} from './dashboard/dashboard.component';\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\nimport {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\n\nconst DECLARATIONS_EXPORTS = [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ElementsModule],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS]\n})\nexport class DashboardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i1.BbDashboard","i2","i1.BbDashboardSidebar","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';\nimport {Storage} from '@bravobit/bb-foundation/storage';\nimport {BehaviorSubject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\ntype BbDashboardSidebarState = { [id: string]: boolean };\n\n@Component({\n selector: 'bb-dashboard-sidebar',\n templateUrl: './dashboard-sidebar.component.html',\n styleUrls: ['./dashboard-sidebar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-sidebar',\n '[class.visible]': 'visibilityChanges.getValue()',\n 'role': 'navigation'\n }\n})\nexport class BbDashboardSidebar implements OnInit {\n\n // Bindings.\n visibilityChanges = new BehaviorSubject<boolean>(true);\n\n // State.\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\n private _cache: BbDashboardSidebarState;\n\n // Token.\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\n\n constructor(private _storage: Storage) {\n }\n\n ngOnInit() {\n // Retrieve the cache.\n this._cache = this._storage.get<BbDashboardSidebarState>(this._localStorageToken) || {};\n }\n\n registerGroup(id: string) {\n // Get the old state.\n const oldState = this._state$.getValue();\n\n // Get the cache value so when it is undefined\n // we will default to true.\n const cacheValue = this._cache[id] === undefined ? true : this._cache[id];\n\n // Push the new state.\n this._state$.next({...oldState, [id]: cacheValue});\n\n // Return the slice of the state that the group needs.\n return this._state$.pipe(\n map(state => state[id])\n );\n }\n\n unregisterGroup(id: string) {\n // Get the old groups.\n const oldState = this._state$.getValue();\n\n // Generate the new state without the id.\n const newState = Object.keys(oldState).reduce((object, key) => {\n if (key !== id) {\n object[key] = oldState[key];\n }\n return object;\n }, {});\n\n // Push the new state.\n this._state$.next(newState);\n }\n\n toggleGroup(id: string, newValue: boolean) {\n // Get the old state.\n const oldState = this._state$.getValue();\n\n // Create the new state.\n const newState = {...oldState, [id]: newValue};\n\n // Push the new state.\n this._state$.next(newState);\n\n // Save in the cache.\n this._storage.set(this._localStorageToken, newState);\n }\n\n toggle() {\n const current = this.visibilityChanges.getValue();\n this.visibilityChanges.next(!current);\n }\n\n open() {\n this.visibilityChanges.next(true);\n }\n\n close() {\n this.visibilityChanges.next(false);\n }\n\n}\n","<!--\n The optional header element.\n-->\n<ng-content select=\"header\"></ng-content>\n\n<!--\n The scroll area that contains the\n groups in the navigation.\n-->\n<div class=\"bb-dashboard-sidebar-scroll\">\n <ng-content select=\"bb-dashboard-sidebar-group\"></ng-content>\n</div>\n\n<!--\n The optional footer element.\n-->\n<ng-content select=\"footer\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {Platform} from '@angular/cdk/platform';\nimport {Patch} from '@bravobit/bb-foundation';\n\n@Component({\n selector: 'bb-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard'\n }\n})\nexport class BbDashboard implements OnInit, OnDestroy {\n\n // Views.\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\n\n // Inputs.\n @Input() backgroundColor: string = '#e7eaed';\n @Input() maxWidth: string = '1200px';\n @Input() padding: string = '20px';\n\n constructor(private _patch: Patch,\n private _platform: Platform,\n private _renderer: Renderer2) {\n }\n\n ngOnInit() {\n // Set the vertical height for mobile devices.\n this._patch.mobileVerticalHeight();\n\n // Set the HTML class to prevent scrolling.\n return this.setHtmlClass();\n }\n\n ngOnDestroy() {\n // Remove the HTML class.\n this.setHtmlClass(true);\n }\n\n private setHtmlClass(shouldRemove: boolean = false) {\n // Check if we are on a browser.\n if (!this._platform.isBrowser) {\n return;\n }\n\n // Define the class name.\n const className = 'bb-dashboard-html';\n\n // Add or remove the class.\n return shouldRemove\n ? this._renderer.removeClass(document.documentElement, className)\n : this._renderer.addClass(document.documentElement, className);\n }\n\n}\n","<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\">\n</ng-content>\n\n<!--\n The section containing the header\n and the main content.\n-->\n<section [style.background-color]=\"backgroundColor\"\n class=\"bb-dashboard-section\">\n <!--\n The outlet for where the header\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-header\">\n </ng-content>\n\n <!--\n The outlet of the content that\n will be provided by the router.\n -->\n <main [style.padding]=\"padding\"\n class=\"bb-dashboard-scroll\">\n <div [style.max-width]=\"maxWidth\"\n class=\"bb-dashboard-container\">\n <ng-content select=\"bb-dashboard-menu\"></ng-content>\n\n <ng-content></ng-content>\n </div>\n <!--\n The outlet for where the footer\n will be placed (if provided).\n -->\n <ng-content select=\"bb-dashboard-footer\">\n </ng-content>\n </main>\n</section>\n\n<!--\n The backdrop that will be visible when\n the sidebar is opened (only on mobile).\n-->\n<div *ngIf=\"!!sidebar\"\n [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n</div>\n","import {ChangeDetectionStrategy, Component, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboard} from '../dashboard/dashboard.component';\nimport {of} from 'rxjs';\n\n@Component({\n selector: 'bb-dashboard-header',\n templateUrl: './dashboard-header.component.html',\n styleUrls: ['./dashboard-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-header'\n }\n})\nexport class BbDashboardHeader {\n\n constructor(@Optional() private _parent: BbDashboard) {\n }\n\n get showSidebarButton() {\n return !!this._parent?.sidebar;\n }\n\n get isSidebarVisible() {\n return this._parent?.sidebar?.visibilityChanges ?? of<boolean>(false);\n }\n\n onToggleSidebarClicked() {\n this._parent?.sidebar?.toggle();\n }\n\n}\n","<!--\n The button that toggles the sidebar.\n-->\n<button *ngIf=\"showSidebarButton\"\n (click)=\"onToggleSidebarClicked()\"\n [class.reversed]=\"isSidebarVisible | async\"\n class=\"bb-dashboard-header-button\"\n type=\"button\"\n tabindex=\"0\"\n role=\"switch\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 157 109\"\n width=\"17\"\n height=\"12\"\n role=\"img\">\n <title>\n Toggle\n </title>\n <path fill=\"#fff\"\n d=\"M82 42V11.2L30 54.5l52 43.3V67h75V42zM9.5 109h-2c-4.1 0-7.5-3.4-7.5-7.5v-94C0 3.4 3.4 0 7.5 0h2C13.6 0 17 3.4 17 7.5v94c0 4.1-3.4 7.5-7.5 7.5z\">\n </path>\n </svg>\n</button>\n\n<!--\n The extra items of the header.\n-->\n<div class=\"bb-dashboard-header-items\">\n <ng-content></ng-content>\n</div>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n selector: 'bb-dashboard-menu',\n templateUrl: './dashboard-menu.component.html',\n styleUrls: ['./dashboard-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-menu',\n 'role': 'navigation'\n }\n})\nexport class BbDashboardMenu {\n\n // Inputs.\n @Input() title: string | null = null;\n @Input() imageUrl: string | null = null;\n @Input() backUrlLink: string | null = null;\n @Input() backUrlTitle: string | null = null;\n\n}\n","<a *ngIf=\"backUrlLink && backUrlTitle\"\n [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">\n {{ backUrlTitle }}\n</a>\n\n<div class=\"bb-dashboard-menu-row\">\n <img *ngIf=\"imageUrl\"\n [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n <h1 *ngIf=\"title as titleLabel\"\n class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n","import {CanDisable, CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\nclass BbDashboardMenuItemBase {\n}\n\nconst BbDashboardMenuItemMixinBase: CanDisableConstructor\n & typeof BbDashboardMenuItemBase\n = mixinDisabled(BbDashboardMenuItemBase);\n\n@Component({\n selector: '[bb-dashboard-menu-item]',\n templateUrl: './dashboard-menu-item.component.html',\n styleUrls: ['./dashboard-menu-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n inputs: ['disabled'],\n host: {\n 'class': 'bb-dashboard-menu-item',\n '[class.disabled]': 'disabled',\n '(click)': 'stopDisabledEvents($event)'\n }\n})\nexport class BbDashboardMenuItem extends BbDashboardMenuItemMixinBase implements CanDisable {\n\n stopDisabledEvents(event: Event) {\n // If the menu item is not disabled let all events pass.\n if (!this.disabled) {\n return;\n }\n\n // If the menu item is disabled stop the event from\n // bubbling up.\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n}\n","<ng-content select=\"[bbPrefix]\"></ng-content>\n<span class=\"bb-dashboard-menu-item-content\">\n <ng-content></ng-content>\n</span>\n<ng-content select=\"[bbSuffix]\"></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {CanDisableConstructor, mixinDisabled} from '@bravobit/bb-foundation';\nimport {of, Subscription} from 'rxjs';\n\nclass BbDashboardSidebarGroupBase {\n constructor(protected _parent: BbDashboardSidebar) {\n }\n}\n\nconst BbDashboardSidebarGroupMixinBase: CanDisableConstructor\n & typeof BbDashboardSidebarGroupBase\n = mixinDisabled(BbDashboardSidebarGroupBase);\n\n@Component({\n selector: 'bb-dashboard-sidebar-group',\n templateUrl: './dashboard-sidebar-group.component.html',\n styleUrls: ['./dashboard-sidebar-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n inputs: ['disabled'],\n host: {\n 'class': 'bb-dashboard-sidebar-group',\n '[class.expanded]': 'isExpanded',\n '[class.with-toggle]': 'hasToggle',\n '[class.has-icon]': '!!icon',\n '[class.disabled]': 'disabled',\n 'role': 'group'\n }\n})\nexport class BbDashboardSidebarGroup extends BbDashboardSidebarGroupMixinBase implements OnInit, OnDestroy {\n\n // Inputs.\n @Input() id: string | null = null;\n @Input() icon: string | null = null;\n @Input() title: string | null = null;\n\n // State.\n private _isExpanded: boolean = false;\n\n // Subscriptions.\n private _subscription: Subscription;\n\n constructor(@Optional() @Host() protected override _parent: BbDashboardSidebar) {\n super(_parent);\n }\n\n get hasToggle() {\n // Check if the user provided a icon and/or title.\n return !!this.icon || !!this.title;\n }\n\n get isExpanded() {\n // If there is an icon or title the group can be\n // expanded by clicking, else not.\n return this.hasToggle\n ? this._isExpanded\n : true;\n }\n\n ngOnInit() {\n // Check if the id has been supplied.\n if (!this.id) {\n throw new Error('Id is required.');\n }\n\n // Register the group at the parent and\n // retrieve the slice of the state.\n const observable$ = this._parent?.registerGroup(this.id) ?? of(false);\n\n // Subscribe to the state.\n this._subscription = observable$\n .subscribe(isExpanded => this._isExpanded = isExpanded);\n }\n\n ngOnDestroy() {\n // Unsubscribe to prevent memory leaks.\n this._subscription && this._subscription.unsubscribe();\n\n // Unregister the group at the parent.\n this._parent && this._parent.unregisterGroup(this.id);\n }\n\n onClick() {\n // Verify the group is not disabled.\n if (this.disabled) {\n return;\n }\n\n // Change the state.\n const newValue = !this._isExpanded;\n\n // Set the state of the sidebar group.\n this._parent?.toggleGroup(this.id, newValue);\n }\n\n @HostListener('click', ['$event'])\n onGroupClicked(event: MouseEvent) {\n // If the group is not disabled don't do anything.\n if (!this.disabled) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n}\n","<!--\n The wrapper that contains the title and icon.\n-->\n<button *ngIf=\"hasToggle\"\n (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n <bb-icon *ngIf=\"icon as iconName\"\n [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n <span *ngIf=\"title as titleText\"\n role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">\n {{ titleText }}\n </span>\n <span class=\"bb-dashboard-sidebar-group-toggle\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 21.7 30.9\"\n width=\"10\"\n height=\"10\"\n role=\"img\">\n <path\n d=\"M10.1.3L.2 11.8c-.6.6-.1 1.7.8 1.7h19.7c.9 0 1.3-1 .8-1.7L11.6.3c-.4-.4-1.1-.4-1.5 0zM10.1 30.6L.2 19.1c-.6-.6-.1-1.7.8-1.7h19.7c.9 0 1.3 1 .8 1.7l-9.8 11.5c-.5.4-1.2.4-1.6 0z\">\n </path>\n </svg>\n </span>\n</button>\n\n<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\">\n</ng-content>\n","import {ChangeDetectionStrategy, Component, Host, Input, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebarGroup} from '../dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\n\n@Component({\n selector: '[bb-dashboard-sidebar-item]',\n templateUrl: './dashboard-sidebar-item.component.html',\n styleUrls: ['./dashboard-sidebar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n 'class': 'bb-dashboard-sidebar-item',\n '[attr.tabindex]': 'attributeTabIndex',\n '[attr.aria-hidden]': 'isHidden',\n '(click)': 'onClick()'\n }\n})\nexport class BbDashboardSidebarItem {\n\n // Inputs.\n @Input() tabIndex: number = 0;\n\n constructor(@Optional() @Host() private _sidebar: BbDashboardSidebar,\n @Optional() @Host() private _group: BbDashboardSidebarGroup) {\n }\n\n onClick() {\n // Try to \"open\" the sidebar if it exists.\n // This will close it on mobile.\n this._sidebar?.open();\n }\n\n get attributeTabIndex() {\n // Make the items tabindex -1 so it can't\n // be tabbed to when the parent is not visible\n // or the parent is disabled.\n if (this.isHidden) {\n return -1;\n }\n\n // Else return the specified tabindex.\n return this.tabIndex;\n }\n\n get isHidden() {\n return !this.isVisible || this.isDisabled;\n }\n\n private get isVisible() {\n return this._group\n ? this._group.isExpanded\n : true;\n }\n\n private get isDisabled() {\n return this._group\n ? this._group.disabled\n : false;\n }\n\n}\n","<!--\n The content between the tags will\n be reflected here.\n-->\n<span class=\"bb-dashboard-sidebar-item-content\">\n <ng-content></ng-content>\n</span>\n","import {ElementsModule} from '@bravobit/bb-foundation/elements';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {NgModule} from '@angular/core';\n\nimport {BbDashboard} from './dashboard/dashboard.component';\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\nimport {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\n\nconst DECLARATIONS_EXPORTS = [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule, ElementsModule],\n declarations: [...DECLARATIONS_EXPORTS],\n exports: [...DECLARATIONS_EXPORTS]\n})\nexport class DashboardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i1.BbDashboard","i2","i1.BbDashboardSidebar","i2.BbDashboardSidebarGroup"],"mappings":"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"}