UNPKG

@tapsellorg/angular-material-library

Version:

Angular library for Tapsell

1 lines 12.3 kB
{"version":3,"file":"tapsellorg-angular-material-library-src-lib-layout.mjs","sources":["../../projects/pegah-library/src/lib/layout/layout.config.ts","../../projects/pegah-library/src/lib/layout/layout.component.ts","../../projects/pegah-library/src/lib/layout/layout.component.html","../../projects/pegah-library/src/lib/layout/sidebar-item/sidebar-item.component.ts","../../projects/pegah-library/src/lib/layout/sidebar-item/sidebar-item.component.html","../../projects/pegah-library/src/lib/layout/layout.module.ts","../../projects/pegah-library/src/lib/layout/tapsellorg-angular-material-library-src-lib-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const PghSidebarItemsLength = new InjectionToken<number>('SIDEBAR_ITEMS_LENGTH');\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostListener,\n Inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BehaviorSubject, takeUntil } from 'rxjs';\nimport { withDestroy } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { Router } from '@angular/router';\nimport { PghSidebarItemsLength } from './layout.config';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { PghBreakpoints } from '@tapsellorg/angular-material-library/media';\nimport { PghSidebarStyle } from './layout.models';\n\n@Component({\n selector: 'pgh-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: PghSidebarItemsLength, useValue: new BehaviorSubject(0) }],\n standalone: false,\n})\nexport class PghLayoutComponent extends withDestroy() {\n private readonly SIDEBAR_ITEM_MIN_HEIGHT = 120;\n sidebarStyle = input<PghSidebarStyle>('normal');\n hideSideBar = input<boolean>(false);\n\n isExpanded = signal<boolean>(true);\n isScrolled = signal<boolean>(false);\n isSmallMenu = signal<boolean>(false);\n isMobile = signal<boolean>(false);\n private numberOfSidebarItems = 0;\n constructor(\n @Inject(PghSidebarItemsLength) private sidebarItemsLength$: BehaviorSubject<number>,\n private router: Router,\n private cdr: ChangeDetectorRef,\n private breakpointObserver: BreakpointObserver,\n ) {\n super();\n this.onObserveBreakpoints();\n this.onChangeMenuStyle();\n this.onCloseMenuAfterItemClicked();\n }\n\n private onObserveBreakpoints() {\n this.breakpointObserver\n .observe(PghBreakpoints.md)\n .pipe(takeUntil(this._destroyed$))\n .subscribe(result => {\n this.isMobile.set(!result.matches);\n this.isExpanded.set(result.matches);\n });\n }\n\n private onChangeMenuStyle() {\n this.sidebarItemsLength$.pipe(takeUntil(this._destroyed$)).subscribe(val => {\n this.numberOfSidebarItems += val;\n if (this.sidebarStyle() === 'small') {\n this.isSmallMenu.set(\n this.numberOfSidebarItems * this.SIDEBAR_ITEM_MIN_HEIGHT <= window.innerHeight,\n );\n } else {\n this.isSmallMenu.set(false);\n }\n });\n }\n\n private onCloseMenuAfterItemClicked() {\n this.router.events.pipe(takeUntil(this._destroyed$)).subscribe(() => {\n if (this.isMobile()) {\n this.isExpanded.set(false);\n this.cdr.detectChanges();\n }\n });\n }\n\n @HostListener('window:scroll', ['$event'])\n onScroll(_event: Event) {\n this.isScrolled.set(window.pageYOffset > 0);\n }\n}\n","<div class=\"pgh-layout\">\n <mat-toolbar class=\"pgh-mat-toolbar\" [class.pgh-toolbar-shadow]=\"isScrolled()\">\n <div\n class=\"pgh-toggle-sidebar\"\n [class.active]=\"isExpanded()\"\n (click)=\"isExpanded.set(!isExpanded())\"\n matRipple\n [matRippleCentered]=\"true\"\n [matRippleUnbounded]=\"true\"\n [matRippleRadius]=\"25\"\n >\n @if (!hideSideBar()) {\n <div>\n <span class=\"pgh-toggle-sidebar-btn-bar\"></span>\n <span class=\"pgh-toggle-sidebar-btn-bar\"></span>\n <span class=\"pgh-toggle-sidebar-btn-bar\"></span>\n </div>\n }\n </div>\n <ng-content select=\"[pgh-header-content]\"></ng-content>\n </mat-toolbar>\n\n <mat-sidenav-container class=\"pgh-sidenav-container\" (backdropClick)=\"isExpanded.set(false)\">\n @if (!hideSideBar()) {\n <mat-sidenav\n [fixedInViewport]=\"true\"\n [fixedTopGap]=\"64\"\n class=\"pgh-mat-sidenav\"\n [mode]=\"isMobile() ? 'over' : 'side'\"\n [opened]=\"isExpanded() || !(isSmallMenu() || isMobile())\"\n [class.pgh-icon-menu]=\"!(isExpanded() || isSmallMenu() || isMobile())\"\n [class.pgh-small-menu]=\"isSmallMenu() && !isMobile()\"\n >\n <div class=\"pgh-sidenav\">\n <ng-content select=\"[pgh-sidebar-content]\"></ng-content>\n </div>\n </mat-sidenav>\n }\n\n <mat-sidenav-content\n [class.pgh-icon-menu]=\"!(isSmallMenu() || isMobile()) && !hideSideBar()\"\n [class.pgh-not-expanded-menu]=\"\n !(isExpanded() || isSmallMenu() || isMobile()) && !hideSideBar()\n \"\n >\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n</div>\n","import { Component, HostBinding, Inject, ViewEncapsulation } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { PghSidebarItemsLength } from '../layout.config';\n\n@Component({\n selector: 'a[pghSidebarItem]',\n templateUrl: './sidebar-item.component.html',\n styleUrls: ['./sidebar-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class PghSidebarItemComponent {\n @HostBinding('class.pgh-sidebar-item') _pghSidebarItem = true;\n constructor(@Inject(PghSidebarItemsLength) sidebarItemsLength$: BehaviorSubject<number>) {\n sidebarItemsLength$.next(1);\n }\n}\n","<div class=\"pgh-item-icon\">\n <ng-content select=\"[pgh-icon]\"></ng-content>\n</div>\n<div class=\"pgh-item-title\">\n <ng-content select=\"[pgh-middle]\"></ng-content>\n</div>\n<div class=\"ms-auto\">\n <ng-content select=\"[pgh-left]\"></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatRippleModule } from '@angular/material/core';\nimport { PghLayoutComponent } from './layout.component';\nimport { PghSidebarItemComponent } from './sidebar-item/sidebar-item.component';\n\n@NgModule({\n declarations: [PghLayoutComponent, PghSidebarItemComponent],\n imports: [CommonModule, MatSidenavModule, MatToolbarModule, MatRippleModule],\n exports: [PghLayoutComponent, PghSidebarItemComponent],\n})\nexport class PghLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}