@bravobit/bb-foundation 0.57.7 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/bravobit-bb-foundation-auth.mjs +22 -22
- package/fesm2022/bravobit-bb-foundation-collections.mjs +45 -45
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +28 -28
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +35 -35
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +104 -104
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-localize.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation-masking.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +13 -13
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-select.mjs +23 -23
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +3 -3
- package/fesm2022/bravobit-bb-foundation-table.mjs +23 -23
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +10 -10
- package/fesm2022/bravobit-bb-foundation-utils.mjs +16 -16
- package/fesm2022/bravobit-bb-foundation.mjs +22 -23
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/package.json +30 -30
- package/{index.d.ts → types/bravobit-bb-foundation.d.ts} +1 -3
- /package/{auth/index.d.ts → types/bravobit-bb-foundation-auth.d.ts} +0 -0
- /package/{collections/index.d.ts → types/bravobit-bb-foundation-collections.d.ts} +0 -0
- /package/{dashboard/index.d.ts → types/bravobit-bb-foundation-dashboard.d.ts} +0 -0
- /package/{dialog/index.d.ts → types/bravobit-bb-foundation-dialog.d.ts} +0 -0
- /package/{elements/index.d.ts → types/bravobit-bb-foundation-elements.d.ts} +0 -0
- /package/{http/index.d.ts → types/bravobit-bb-foundation-http.d.ts} +0 -0
- /package/{localize/index.d.ts → types/bravobit-bb-foundation-localize.d.ts} +0 -0
- /package/{masking/index.d.ts → types/bravobit-bb-foundation-masking.d.ts} +0 -0
- /package/{notifications/index.d.ts → types/bravobit-bb-foundation-notifications.d.ts} +0 -0
- /package/{permissions/index.d.ts → types/bravobit-bb-foundation-permissions.d.ts} +0 -0
- /package/{recaptcha/index.d.ts → types/bravobit-bb-foundation-recaptcha.d.ts} +0 -0
- /package/{rxjs/index.d.ts → types/bravobit-bb-foundation-rxjs.d.ts} +0 -0
- /package/{select/index.d.ts → types/bravobit-bb-foundation-select.d.ts} +0 -0
- /package/{storage/index.d.ts → types/bravobit-bb-foundation-storage.d.ts} +0 -0
- /package/{table/index.d.ts → types/bravobit-bb-foundation-table.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/bravobit-bb-foundation-tooltip.d.ts} +0 -0
- /package/{utils/index.d.ts → types/bravobit-bb-foundation-utils.d.ts} +0 -0
|
@@ -67,16 +67,16 @@ class BbDashboardSidebar {
|
|
|
67
67
|
close() {
|
|
68
68
|
this.visibilityChanges.next(false);
|
|
69
69
|
}
|
|
70
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
71
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
70
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: BbDashboardSidebar, isStandalone: true, 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:-16rem;width:16rem;height:100vh;display:flex;position:fixed;min-width:16rem;will-change:transform;flex-direction:column;transform:translate(16rem);height:calc(var(--vh, 1vh) * 100);border-right:1px solid hsla(0,0%,0%,.4);transition:transform .2s cubic-bezier(0,0,.2,1);background:#fff linear-gradient(to bottom,#fff,#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:-16rem;transition:margin-left .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebar, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ selector: 'bb-dashboard-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
76
76
|
'class': 'bb-dashboard-sidebar',
|
|
77
77
|
'[class.visible]': 'visibilityChanges.getValue()',
|
|
78
78
|
'role': 'navigation'
|
|
79
|
-
}, 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:-16rem;width:16rem;height:100vh;display:flex;position:fixed;min-width:16rem;will-change:transform;flex-direction:column;transform:translate(16rem);height:calc(var(--vh, 1vh) * 100);border-right:1px solid hsla(0,0%,0%,.4);transition:transform .2s cubic-bezier(0,0,.2,1);background:#fff linear-gradient(to bottom,#fff,#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:
|
|
79
|
+
}, 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:-16rem;width:16rem;height:100vh;display:flex;position:fixed;min-width:16rem;will-change:transform;flex-direction:column;transform:translate(16rem);height:calc(var(--vh, 1vh) * 100);border-right:1px solid hsla(0,0%,0%,.4);transition:transform .2s cubic-bezier(0,0,.2,1);background:#fff linear-gradient(to bottom,#fff,#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:-16rem;transition:margin-left .2s cubic-bezier(0,0,.2,1)}.bb-dashboard-sidebar.visible{margin-left:0}}\n"] }]
|
|
80
80
|
}] });
|
|
81
81
|
|
|
82
82
|
class BbDashboard {
|
|
@@ -106,12 +106,12 @@ class BbDashboard {
|
|
|
106
106
|
? this._renderer.removeClass(document.documentElement, className)
|
|
107
107
|
: this._renderer.addClass(document.documentElement, className);
|
|
108
108
|
}
|
|
109
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
110
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: BbDashboard, isStandalone: true, 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\"></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\"></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@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\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{inset: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: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboard, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
|
-
args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard' }, imports: [AsyncPipe], template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\"></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\"></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@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\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{inset: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:
|
|
114
|
+
args: [{ selector: 'bb-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard' }, imports: [AsyncPipe], template: "<!--\n The outlet for where the sidebar\n will be placed (if provided).\n-->\n<ng-content select=\"bb-dashboard-sidebar\"></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\"></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@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\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{inset: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"] }]
|
|
115
115
|
}], propDecorators: { sidebar: [{
|
|
116
116
|
type: ContentChild,
|
|
117
117
|
args: [BbDashboardSidebar]
|
|
@@ -135,12 +135,12 @@ class BbDashboardHeader {
|
|
|
135
135
|
onToggleSidebarClicked() {
|
|
136
136
|
this._parent?.sidebar?.toggle();
|
|
137
137
|
}
|
|
138
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
139
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
138
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
139
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: BbDashboardHeader, isStandalone: true, selector: "bb-dashboard-header", host: { classAttribute: "bb-dashboard-header" }, ngImport: i0, template: "<!--\n The button that toggles the sidebar.\n-->\n@if (showSidebarButton) {\n <button (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=\"1.0625rem\"\n height=\"0.75rem\"\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<!--\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:3rem;display:flex;font-size:1rem;min-height:3rem;padding:0 .5rem;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:4.25rem;height:2.125rem;align-items:center;display:inline-flex;border-radius:.25rem;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:.5rem}@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: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardHeader, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
|
-
args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard-header' }, imports: [AsyncPipe], template: "<!--\n The button that toggles the sidebar.\n-->\n@if (showSidebarButton) {\n <button (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=\"1.0625rem\"\n height=\"0.75rem\"\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<!--\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:3rem;display:flex;font-size:1rem;min-height:3rem;padding:0 .5rem;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:4.25rem;height:2.125rem;align-items:center;display:inline-flex;border-radius:.25rem;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:.5rem}@media only screen and (min-width:
|
|
143
|
+
args: [{ selector: 'bb-dashboard-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dashboard-header' }, imports: [AsyncPipe], template: "<!--\n The button that toggles the sidebar.\n-->\n@if (showSidebarButton) {\n <button (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=\"1.0625rem\"\n height=\"0.75rem\"\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<!--\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:3rem;display:flex;font-size:1rem;min-height:3rem;padding:0 .5rem;align-items:center;background-color:#5b53ff;border-bottom:1px solid #4d46d6}.bb-dashboard-header-button{width:4.25rem;height:2.125rem;align-items:center;display:inline-flex;border-radius:.25rem;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:.5rem}@media only screen and (min-width:768px){.bb-dashboard-header-button>svg{transform:rotateY(180deg)}.bb-dashboard-header-button.reversed>svg{transform:none}}\n"] }]
|
|
144
144
|
}] });
|
|
145
145
|
|
|
146
146
|
class BbDashboardMenu {
|
|
@@ -149,10 +149,10 @@ class BbDashboardMenu {
|
|
|
149
149
|
imageUrl = null;
|
|
150
150
|
backUrlLink = null;
|
|
151
151
|
backUrlTitle = null;
|
|
152
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
153
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: BbDashboardMenu, isStandalone: true, selector: "bb-dashboard-menu", inputs: { title: "title", imageUrl: "imageUrl", backUrlLink: "backUrlLink", backUrlTitle: "backUrlTitle" }, host: { attributes: { "role": "navigation" }, classAttribute: "bb-dashboard-menu" }, ngImport: i0, template: "@if (backUrlLink && backUrlTitle) {\n <a [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">{{ backUrlTitle }}</a>\n}\n\n<div class=\"bb-dashboard-menu-row\">\n @if (imageUrl) {\n <img [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n }\n @if (title; as titleLabel) {\n <h1 class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n }\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:1.5rem}.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:1rem;text-decoration:none}.bb-dashboard-menu-link,.bb-dashboard-menu-link:visited{color:#a7a9c4!important}.bb-dashboard-menu-link:before{content:\"\";width:.875rem;height:.8125rem;margin-right:.25rem;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:.75rem}.bb-dashboard-menu-image{width:2rem;height:2rem;display:block;border-radius:50%;margin-right:.75rem}.bb-dashboard-menu-title{color:#272838;display:block;line-height:1;font-size:2rem;font-weight:500}.bb-dashboard-menu-navigation{display:flex;overflow-x:auto;border-bottom:1px solid #d8d8d8}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
154
154
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardMenu, decorators: [{
|
|
156
156
|
type: Component,
|
|
157
157
|
args: [{ selector: 'bb-dashboard-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
158
158
|
'class': 'bb-dashboard-menu',
|
|
@@ -181,10 +181,10 @@ class BbDashboardMenuItem {
|
|
|
181
181
|
event.preventDefault();
|
|
182
182
|
event.stopImmediatePropagation();
|
|
183
183
|
}
|
|
184
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
185
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "
|
|
184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0", type: BbDashboardMenuItem, isStandalone: true, selector: "[bb-dashboard-menu-item]", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "class.disabled": "disabled" }, classAttribute: "bb-dashboard-menu-item" }, 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:1rem;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:.75rem}.bb-dashboard-menu-item:not(:last-child){margin-right:.75rem}.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>[bbPrefix]{margin-right:.25rem}.bb-dashboard-menu-item>[bbSuffix]{margin-left:.25rem}.bb-dashboard-menu-item-content{height:2.5rem;display:block;font-weight:500;line-height:2.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
186
186
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardMenuItem, decorators: [{
|
|
188
188
|
type: Component,
|
|
189
189
|
args: [{ selector: '[bb-dashboard-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
190
190
|
'class': 'bb-dashboard-menu-item',
|
|
@@ -257,10 +257,10 @@ class BbDashboardSidebarGroup {
|
|
|
257
257
|
event.preventDefault();
|
|
258
258
|
event.stopPropagation();
|
|
259
259
|
}
|
|
260
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
261
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
260
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebarGroup, deps: [{ token: BbDashboardSidebar, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: BbDashboardSidebarGroup, isStandalone: true, selector: "bb-dashboard-sidebar-group", inputs: { id: "id", icon: "icon", title: "title", disabled: ["disabled", "disabled", booleanAttribute] }, 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" }, ngImport: i0, template: "<!--\n The wrapper that contains the title and icon.\n-->\n@if (hasToggle) {\n <button (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n @if (icon; as iconName) {\n <bb-icon [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n }\n @if (title; as titleText) {\n <span role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">{{ titleText }}</span>\n }\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=\"0.75rem\"\n height=\"0.75rem\"\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<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\"></ng-content>\n", styles: [".bb-dashboard-sidebar-group{color:#000;display:block;overflow:hidden;border-bottom:1px solid hsla(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:2rem;line-height:2rem;padding:.375rem 1rem}.bb-dashboard-sidebar-group.expanded .bb-dashboard-sidebar-group-toggle{opacity:0;transform:translate(.75rem)}.bb-dashboard-sidebar-group.with-toggle.expanded{padding-bottom:1.5rem}.bb-dashboard-sidebar-group.has-icon .bb-dashboard-sidebar-item{padding-left:3.5rem}.bb-dashboard-sidebar-group.disabled{opacity:.5}.bb-dashboard-sidebar-group-title{margin:0;width:100%;border:none;padding:1rem;display:flex;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;align-items:center;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:1rem;color:#00000040}.bb-dashboard-sidebar-group-text{width:100%;display:block;max-width:100%;overflow:hidden;font-weight:500;line-height:1rem;font-size:.875rem;white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase}.bb-dashboard-sidebar-group-toggle{width:1.5rem;display:flex;height:1.5rem;min-width:1.5rem;margin-left:auto;min-height:1.5rem;align-items:center;border-radius:.25rem;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:.75rem;height:.75rem;fill:#00000040}\n"], dependencies: [{ kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "unit", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
262
262
|
}
|
|
263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebarGroup, decorators: [{
|
|
264
264
|
type: Component,
|
|
265
265
|
args: [{ selector: 'bb-dashboard-sidebar-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
266
266
|
'class': 'bb-dashboard-sidebar-group',
|
|
@@ -323,10 +323,10 @@ class BbDashboardSidebarItem {
|
|
|
323
323
|
? this._group.disabled
|
|
324
324
|
: false;
|
|
325
325
|
}
|
|
326
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
327
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
326
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebarItem, deps: [{ token: BbDashboardSidebar, optional: true }, { token: BbDashboardSidebarGroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
327
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: BbDashboardSidebarItem, isStandalone: true, 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-weight:500;font-size:.875rem;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 });
|
|
328
328
|
}
|
|
329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: BbDashboardSidebarItem, decorators: [{
|
|
330
330
|
type: Component,
|
|
331
331
|
args: [{ selector: '[bb-dashboard-sidebar-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
332
332
|
'class': 'bb-dashboard-sidebar-item',
|
|
@@ -343,8 +343,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
343
343
|
}] } });
|
|
344
344
|
|
|
345
345
|
class DashboardModule {
|
|
346
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
347
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
346
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
347
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: DashboardModule, imports: [BbDashboard,
|
|
348
348
|
BbDashboardHeader,
|
|
349
349
|
BbDashboardMenu,
|
|
350
350
|
BbDashboardMenuItem,
|
|
@@ -357,9 +357,9 @@ class DashboardModule {
|
|
|
357
357
|
BbDashboardSidebar,
|
|
358
358
|
BbDashboardSidebarGroup,
|
|
359
359
|
BbDashboardSidebarItem] });
|
|
360
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
360
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DashboardModule, imports: [BbDashboardSidebarGroup] });
|
|
361
361
|
}
|
|
362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: DashboardModule, decorators: [{
|
|
363
363
|
type: NgModule,
|
|
364
364
|
args: [{
|
|
365
365
|
imports: [
|
|
@@ -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, inject, 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 host: {\n 'class': 'bb-dashboard-sidebar',\n '[class.visible]': 'visibilityChanges.getValue()',\n 'role': 'navigation'\n },\n})\nexport class BbDashboardSidebar implements OnInit {\n\n // Readonly data.\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\n\n // Dependencies.\n private readonly _storage = inject(Storage);\n\n // Bindings.\n visibilityChanges = new BehaviorSubject<boolean>(true);\n\n // State.\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\n private _cache: BbDashboardSidebarState;\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 {ChangeDetectionStrategy, Component, ContentChild, inject, Input, OnDestroy, OnInit, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {Platform} from '@angular/cdk/platform';\nimport {Patch} from '@bravobit/bb-foundation';\nimport {AsyncPipe} from '@angular/common';\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 host: {'class': 'bb-dashboard'},\n imports: [AsyncPipe]\n})\nexport class BbDashboard implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _patch = inject(Patch);\n private readonly _platform = inject(Platform);\n private readonly _renderer = inject(Renderer2);\n\n // Views.\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\n\n // Inputs.\n @Input() backgroundColor: string = '#e7eaed';\n @Input() maxWidth: string = '75rem';\n @Input() padding: string = '1.5rem';\n\n ngOnInit() {\n this._patch.mobileVerticalHeight();\n return this.setHtmlClass();\n }\n\n ngOnDestroy() {\n this.setHtmlClass(true);\n }\n\n private setHtmlClass(shouldRemove: boolean = false) {\n if (!this._platform.isBrowser) {\n return;\n }\n\n const className = 'bb-dashboard-html';\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\"></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\"></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@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\n","import {ChangeDetectionStrategy, Component, inject, ViewEncapsulation} from '@angular/core';\nimport {BbDashboard} from '../dashboard/dashboard.component';\nimport {AsyncPipe} from '@angular/common';\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 host: {'class': 'bb-dashboard-header'},\n imports: [AsyncPipe]\n})\nexport class BbDashboardHeader {\n\n // Dependencies.\n private readonly _parent = inject(BbDashboard, {optional: true});\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@if (showSidebarButton) {\n <button (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=\"1.0625rem\"\n height=\"0.75rem\"\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<!--\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';\nimport {RouterLink} from '@angular/router';\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 host: {\n 'class': 'bb-dashboard-menu',\n 'role': 'navigation'\n },\n imports: [RouterLink]\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","@if (backUrlLink && backUrlTitle) {\n <a [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">{{ backUrlTitle }}</a>\n}\n\n<div class=\"bb-dashboard-menu-row\">\n @if (imageUrl) {\n <img [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n }\n @if (title; as titleLabel) {\n <h1 class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n }\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation} from '@angular/core';\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 host: {\n 'class': 'bb-dashboard-menu-item',\n '[class.disabled]': 'disabled'\n }\n})\nexport class BbDashboardMenuItem {\n\n // Inputs.\n @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n @HostListener('click', ['$event'])\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 {booleanAttribute, ChangeDetectionStrategy, Component, HostListener, Input, OnDestroy, OnInit, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {BbIcon} from '@bravobit/bb-foundation/elements';\nimport {of, Subscription} from 'rxjs';\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 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 imports: [BbIcon]\n})\nexport class BbDashboardSidebarGroup 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 @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n // State.\n private _isExpanded: boolean = false;\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(@Optional() private _parent: BbDashboardSidebar) {\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 const subscription = observable$.subscribe(isExpanded => this._isExpanded = isExpanded);\n this._subscription.add(subscription);\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n 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@if (hasToggle) {\n <button (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n @if (icon; as iconName) {\n <bb-icon [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n }\n @if (title; as titleText) {\n <span role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">{{ titleText }}</span>\n }\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=\"0.75rem\"\n height=\"0.75rem\"\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<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\"></ng-content>\n","import {ChangeDetectionStrategy, Component, 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 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() private _sidebar: BbDashboardSidebar,\n @Optional() 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 {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\nimport {BbDashboard} from './dashboard/dashboard.component';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n ],\n exports: [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n ]\n})\nexport class DashboardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["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, inject, 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 host: {\n 'class': 'bb-dashboard-sidebar',\n '[class.visible]': 'visibilityChanges.getValue()',\n 'role': 'navigation'\n },\n})\nexport class BbDashboardSidebar implements OnInit {\n\n // Readonly data.\n private readonly _localStorageToken: string = 'bb-dashboard-sidebar-state';\n\n // Dependencies.\n private readonly _storage = inject(Storage);\n\n // Bindings.\n visibilityChanges = new BehaviorSubject<boolean>(true);\n\n // State.\n private _state$ = new BehaviorSubject<BbDashboardSidebarState>({});\n private _cache: BbDashboardSidebarState;\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 {ChangeDetectionStrategy, Component, ContentChild, inject, Input, OnDestroy, OnInit, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {Platform} from '@angular/cdk/platform';\nimport {Patch} from '@bravobit/bb-foundation';\nimport {AsyncPipe} from '@angular/common';\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 host: {'class': 'bb-dashboard'},\n imports: [AsyncPipe]\n})\nexport class BbDashboard implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _patch = inject(Patch);\n private readonly _platform = inject(Platform);\n private readonly _renderer = inject(Renderer2);\n\n // Views.\n @ContentChild(BbDashboardSidebar) sidebar?: BbDashboardSidebar;\n\n // Inputs.\n @Input() backgroundColor: string = '#e7eaed';\n @Input() maxWidth: string = '75rem';\n @Input() padding: string = '1.5rem';\n\n ngOnInit() {\n this._patch.mobileVerticalHeight();\n return this.setHtmlClass();\n }\n\n ngOnDestroy() {\n this.setHtmlClass(true);\n }\n\n private setHtmlClass(shouldRemove: boolean = false) {\n if (!this._platform.isBrowser) {\n return;\n }\n\n const className = 'bb-dashboard-html';\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\"></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\"></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@if (!!sidebar) {\n <div [class.visible]=\"!(sidebar?.visibilityChanges | async)\"\n (click)=\"sidebar?.toggle()\"\n class=\"bb-dashboard-backdrop\">\n </div>\n}\n","import {ChangeDetectionStrategy, Component, inject, ViewEncapsulation} from '@angular/core';\nimport {BbDashboard} from '../dashboard/dashboard.component';\nimport {AsyncPipe} from '@angular/common';\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 host: {'class': 'bb-dashboard-header'},\n imports: [AsyncPipe]\n})\nexport class BbDashboardHeader {\n\n // Dependencies.\n private readonly _parent = inject(BbDashboard, {optional: true});\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@if (showSidebarButton) {\n <button (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=\"1.0625rem\"\n height=\"0.75rem\"\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<!--\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';\nimport {RouterLink} from '@angular/router';\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 host: {\n 'class': 'bb-dashboard-menu',\n 'role': 'navigation'\n },\n imports: [RouterLink]\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","@if (backUrlLink && backUrlTitle) {\n <a [routerLink]=\"backUrlLink\"\n class=\"bb-dashboard-menu-link\">{{ backUrlTitle }}</a>\n}\n\n<div class=\"bb-dashboard-menu-row\">\n @if (imageUrl) {\n <img [src]=\"imageUrl\"\n class=\"bb-dashboard-menu-image\"\n alt=\"Menu image\">\n }\n @if (title; as titleLabel) {\n <h1 class=\"bb-dashboard-menu-title\">\n {{ titleLabel }}\n </h1>\n }\n</div>\n\n<nav class=\"bb-dashboard-menu-navigation\">\n <ng-content select=\"[bb-dashboard-menu-item]\"></ng-content>\n</nav>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation} from '@angular/core';\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 host: {\n 'class': 'bb-dashboard-menu-item',\n '[class.disabled]': 'disabled'\n }\n})\nexport class BbDashboardMenuItem {\n\n // Inputs.\n @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n @HostListener('click', ['$event'])\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 {booleanAttribute, ChangeDetectionStrategy, Component, HostListener, Input, OnDestroy, OnInit, Optional, ViewEncapsulation} from '@angular/core';\nimport {BbDashboardSidebar} from '../dashboard-sidebar/dashboard-sidebar.component';\nimport {BbIcon} from '@bravobit/bb-foundation/elements';\nimport {of, Subscription} from 'rxjs';\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 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 imports: [BbIcon]\n})\nexport class BbDashboardSidebarGroup 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 @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n // State.\n private _isExpanded: boolean = false;\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n constructor(@Optional() private _parent: BbDashboardSidebar) {\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 const subscription = observable$.subscribe(isExpanded => this._isExpanded = isExpanded);\n this._subscription.add(subscription);\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n 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@if (hasToggle) {\n <button (click)=\"onClick()\"\n class=\"bb-dashboard-sidebar-group-title\"\n type=\"button\"\n role=\"switch\">\n @if (icon; as iconName) {\n <bb-icon [src]=\"iconName\"\n class=\"bb-dashboard-sidebar-group-icon\">\n </bb-icon>\n }\n @if (title; as titleText) {\n <span role=\"heading\"\n class=\"bb-dashboard-sidebar-group-text\">{{ titleText }}</span>\n }\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=\"0.75rem\"\n height=\"0.75rem\"\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<!--\n The sidebar items that contain the\n links to navigate to other pages.\n-->\n<ng-content select=\"[bb-dashboard-sidebar-item]\"></ng-content>\n","import {ChangeDetectionStrategy, Component, 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 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() private _sidebar: BbDashboardSidebar,\n @Optional() 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 {BbDashboardSidebarGroup} from './dashboard-sidebar-group/dashboard-sidebar-group.component';\nimport {BbDashboardSidebarItem} from './dashboard-sidebar-item/dashboard-sidebar-item.component';\nimport {BbDashboardMenuItem} from './dashboard-menu-item/dashboard-menu-item.component';\nimport {BbDashboardSidebar} from './dashboard-sidebar/dashboard-sidebar.component';\nimport {BbDashboardHeader} from './dashboard-header/dashboard-header.component';\nimport {BbDashboardMenu} from './dashboard-menu/dashboard-menu.component';\nimport {BbDashboard} from './dashboard/dashboard.component';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n imports: [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n ],\n exports: [\n BbDashboard,\n BbDashboardHeader,\n BbDashboardMenu,\n BbDashboardMenuItem,\n BbDashboardSidebar,\n BbDashboardSidebarGroup,\n BbDashboardSidebarItem\n ]\n})\nexport class DashboardModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BbDashboardSidebar","i2.BbDashboardSidebarGroup"],"mappings":"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"}
|