{"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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"}