cmat 0.0.79 → 0.0.81
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/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +55 -30
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +14 -14
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +3 -3
- package/fesm2022/cmat-components-code-editor.mjs +3 -3
- package/fesm2022/cmat-components-custom-formly.mjs +119 -116
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +12 -12
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-date-time-display.mjs +3 -3
- package/fesm2022/cmat-components-drawer.mjs +59 -24
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-empty-state.mjs +3 -3
- package/fesm2022/cmat-components-file-preview.mjs +3 -3
- package/fesm2022/cmat-components-filter-toolbar.mjs +3 -3
- package/fesm2022/cmat-components-form-actions.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-highlight.mjs +6 -7
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +12 -15
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-inline-loading.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs +4 -6
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +11 -11
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +8 -11
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +13 -14
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +122 -108
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +182 -210
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +75 -65
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-page-header.mjs +3 -3
- package/fesm2022/cmat-components-pagination.mjs +34 -32
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +13 -15
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +35 -26
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +11 -14
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-qrcode.mjs +3 -3
- package/fesm2022/cmat-components-rating.mjs +14 -14
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
- package/fesm2022/cmat-components-select-search.mjs +25 -37
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +19 -20
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +31 -32
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-skeleton.mjs +3 -3
- package/fesm2022/cmat-components-speed-dial.mjs +57 -20
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-status-tag.mjs +3 -3
- package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs +77 -28
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +103 -90
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +17 -19
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +24 -31
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-components-x6-angular-shape.mjs +0 -3
- package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-arrow-cursor.mjs +69 -46
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat.mjs +1395 -1246
- package/fesm2022/cmat.mjs.map +1 -1
- package/package.json +1 -1
- package/types/cmat-components-carousel.d.ts +18 -11
- package/types/cmat-components-cascade.d.ts +3 -3
- package/types/cmat-components-custom-formly.d.ts +8 -9
- package/types/cmat-components-date-range.d.ts +1 -1
- package/types/cmat-components-drawer.d.ts +8 -2
- package/types/cmat-components-image-viewer.d.ts +5 -6
- package/types/cmat-components-json-editor.d.ts +0 -1
- package/types/cmat-components-knob-input.d.ts +2 -2
- package/types/cmat-components-masonry.d.ts +1 -2
- package/types/cmat-components-material-color-picker.d.ts +1 -2
- package/types/cmat-components-material-datetimepicker.d.ts +16 -16
- package/types/cmat-components-navigation.d.ts +16 -8
- package/types/cmat-components-opt-input.d.ts +11 -8
- package/types/cmat-components-pagination.d.ts +5 -4
- package/types/cmat-components-password-strength.d.ts +1 -2
- package/types/cmat-components-popover.d.ts +3 -4
- package/types/cmat-components-progress-bar.d.ts +6 -7
- package/types/cmat-components-rating.d.ts +6 -7
- package/types/cmat-components-select-search.d.ts +2 -2
- package/types/cmat-components-select-table.d.ts +7 -8
- package/types/cmat-components-select-tree.d.ts +10 -11
- package/types/cmat-components-speed-dial.d.ts +6 -3
- package/types/cmat-components-toast.d.ts +13 -4
- package/types/cmat-components-transfer-picker.d.ts +21 -11
- package/types/cmat-components-treetable.d.ts +3 -4
- package/types/cmat-components-upload.d.ts +5 -7
- package/types/cmat-directives-arrow-cursor.d.ts +9 -4
- package/types/cmat.d.ts +160 -122
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-navigation.mjs","sources":["../../../projects/cmat/components/navigation/navigation.service.ts","../../../projects/cmat/components/navigation/horizontal/components/basic/basic.component.ts","../../../projects/cmat/components/navigation/horizontal/components/basic/basic.component.html","../../../projects/cmat/components/navigation/horizontal/components/divider/divider.component.ts","../../../projects/cmat/components/navigation/horizontal/components/divider/divider.component.html","../../../projects/cmat/components/navigation/horizontal/components/branch/branch.component.ts","../../../projects/cmat/components/navigation/horizontal/components/branch/branch.component.html","../../../projects/cmat/components/navigation/horizontal/components/spacer/spacer.component.ts","../../../projects/cmat/components/navigation/horizontal/components/spacer/spacer.component.html","../../../projects/cmat/components/navigation/horizontal/horizontal.component.ts","../../../projects/cmat/components/navigation/horizontal/horizontal.component.html","../../../projects/cmat/components/navigation/vertical/components/basic/basic.component.ts","../../../projects/cmat/components/navigation/vertical/components/basic/basic.component.html","../../../projects/cmat/components/navigation/vertical/components/divider/divider.component.ts","../../../projects/cmat/components/navigation/vertical/components/divider/divider.component.html","../../../projects/cmat/components/navigation/vertical/components/spacer/spacer.component.ts","../../../projects/cmat/components/navigation/vertical/components/spacer/spacer.component.html","../../../projects/cmat/components/navigation/vertical/components/group/group.component.ts","../../../projects/cmat/components/navigation/vertical/components/group/group.component.html","../../../projects/cmat/components/navigation/vertical/components/collapsable/collapsable.component.ts","../../../projects/cmat/components/navigation/vertical/components/collapsable/collapsable.component.html","../../../projects/cmat/components/navigation/vertical/components/aside/aside.component.ts","../../../projects/cmat/components/navigation/vertical/components/aside/aside.component.html","../../../projects/cmat/components/navigation/vertical/vertical.component.ts","../../../projects/cmat/components/navigation/vertical/vertical.component.html","../../../projects/cmat/components/navigation/navigation.types.ts","../../../projects/cmat/components/navigation/cmat-components-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { CmatNavigationItem } from './navigation.types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatNavigationService {\r\n private readonly _componentRegistry = new Map<string, unknown>();\r\n private readonly _navigationStore = new Map<string, CmatNavigationItem[]>();\r\n\r\n registerComponent(name: string, component: unknown): void {\r\n this._componentRegistry.set(name, component);\r\n }\r\n deregisterComponent(name: string): void {\r\n this._componentRegistry.delete(name);\r\n }\r\n getComponent<T = unknown>(name: string): T {\r\n return this._componentRegistry.get(name) as T;\r\n }\r\n storeNavigation(key: string, navigation: CmatNavigationItem[]): void {\r\n this._navigationStore.set(key, navigation);\r\n }\r\n getNavigation(key: string): CmatNavigationItem[] {\r\n return this._navigationStore.get(key) ?? [];\r\n }\r\n deleteNavigation(key: string): void {\r\n if (!this._navigationStore.has(key)) {\r\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\r\n }\r\n\r\n this._navigationStore.delete(key);\r\n }\r\n getFlatNavigation(navigation: CmatNavigationItem[], flatNavigation: CmatNavigationItem[] = []): CmatNavigationItem[] {\r\n for (const item of navigation) {\r\n if (item.type === 'basic') {\r\n flatNavigation.push(item);\r\n continue;\r\n }\r\n\r\n if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n if (item.children) {\r\n this.getFlatNavigation(item.children, flatNavigation);\r\n }\r\n }\r\n }\r\n\r\n return flatNavigation;\r\n }\r\n getItem(id: string, navigation: CmatNavigationItem[]): CmatNavigationItem | null {\r\n for (const item of navigation) {\r\n if (item.id === id) {\r\n return item;\r\n }\r\n\r\n if (item.children) {\r\n const childItem = this.getItem(id, item.children);\r\n\r\n if (childItem) {\r\n return childItem;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n getItemParent(\r\n id: string,\r\n navigation: CmatNavigationItem[],\r\n parent: CmatNavigationItem[] | CmatNavigationItem\r\n ): CmatNavigationItem[] | CmatNavigationItem | null {\r\n for (const item of navigation) {\r\n if (item.id === id) {\r\n return parent;\r\n }\r\n\r\n if (item.children) {\r\n const childItem = this.getItemParent(id, item.children, item);\r\n\r\n if (childItem) {\r\n return childItem;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, IsActiveMatchOptions, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatHorizontalNavigationComponent } from '../../../horizontal/horizontal.component';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-basic-item',\r\n templateUrl: './basic.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatMenuModule, MatIconModule]\r\n})\r\nexport class CmatHorizontalNavigationBasicItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() hasRouteReuseStrategy: boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n isActiveMatchOptions: IsActiveMatchOptions;\r\n\r\n private _router = inject(Router);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private _cmatUtilsService = inject(CmatUtilsService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatHorizontalNavigationComponent: CmatHorizontalNavigationComponent;\r\n\r\n constructor() {\r\n this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;\r\n }\r\n ngOnInit(): void {\r\n this.isActiveMatchOptions =\r\n this.item.isActiveMatchOptions ?? this.item.exactMatch\r\n ? this._cmatUtilsService.exactMatchOptions\r\n : this._cmatUtilsService.subsetMatchOptions;\r\n\r\n this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._cmatHorizontalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._router.events.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n isRouteActive(link: string): boolean {\r\n return isActive(link, this._router, this.isActiveMatchOptions)();\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n if (this.hasRouteReuseStrategy) {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n } else {\r\n void this._router.navigate([link]);\r\n }\r\n }\r\n}\r\n","\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n \r\n @if (item.link && !item.externalLink && !item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active,'cmat-horizontal-navigation-item-active':isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && !item.externalLink && item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active,'cmat-horizontal-navigation-item-active':isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item);goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-horizontal-navigation-item\" mat-menu-item [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && !item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item cmat-horizontal-navigation-item-disabled\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n</div>\r\n\r\n\r\n<ng-template #itemTemplate>\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n</ng-template>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CmatHorizontalNavigationComponent } from '../../../horizontal/horizontal.component';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-divider-item',\r\n templateUrl: './divider.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHorizontalNavigationDividerItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatHorizontalNavigationComponent: CmatHorizontalNavigationComponent;\r\n\r\n ngOnInit(): void {\r\n this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatHorizontalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n}\r\n","\r\n<div class=\"cmat-horizontal-navigation-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CmatHorizontalNavigationComponent } from '../../../horizontal/horizontal.component';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatHorizontalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatHorizontalNavigationDividerItemComponent } from '../divider/divider.component';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-branch-item',\r\n templateUrl: './branch.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatMenuModule, NgTemplateOutlet, CmatHorizontalNavigationBasicItemComponent,\r\n forwardRef(() => CmatHorizontalNavigationBranchItemComponent), CmatHorizontalNavigationDividerItemComponent, MatTooltipModule, MatIconModule]\r\n})\r\nexport class CmatHorizontalNavigationBranchItemComponent implements OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_child: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() child: boolean = false;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() hasRouteReuseStrategy: boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @ViewChild('matMenu', { static: true }) matMenu: MatMenu;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatHorizontalNavigationComponent: CmatHorizontalNavigationComponent;\r\n\r\n ngOnInit(): void {\r\n this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatHorizontalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n triggerChangeDetection(): void {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n}\r\n","@if (!child) {\r\n<div #trigger=\"matMenuTrigger\" [ngClass]=\"{'cmat-horizontal-navigation-menu-active': trigger.menuOpen,\r\n 'cmat-horizontal-navigation-menu-active-forced': item.active}\" [matMenuTriggerFor]=\"matMenu\"\r\n (menuOpened)=\"triggerChangeDetection()\" (onMenuClose)=\"triggerChangeDetection()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n</div>\r\n}\r\n\r\n<mat-menu #matMenu=\"matMenu\" class=\"cmat-horizontal-navigation-menu-panel\" [overlapTrigger]=\"false\">\r\n\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item [disabled]=\"item.disabled\">\r\n <cmat-horizontal-navigation-basic-item [item]=\"item\" [name]=\"name\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-horizontal-navigation-basic-item>\r\n </div>\r\n }\r\n \r\n @if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item [disabled]=\"item.disabled\"\r\n [matMenuTriggerFor]=\"branch.matMenu\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n <cmat-horizontal-navigation-branch-item #branch [child]=\"true\" [item]=\"item\" [name]=\"name\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-horizontal-navigation-branch-item>\r\n </div>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item>\r\n <cmat-horizontal-navigation-divider-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-divider-item>\r\n </div>\r\n }\r\n }\r\n }\r\n\r\n</mat-menu>\r\n\r\n\r\n<ng-template #itemTemplate let-item>\r\n\r\n <div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-horizontal-navigation-item\" [ngClass]=\"{'cmat-horizontal-navigation-item-disabled': item.disabled,\r\n 'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\"\r\n [svgIcon]=\"item.icon\"></mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Input, OnInit, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CmatHorizontalNavigationComponent } from '../../../horizontal/horizontal.component';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-spacer-item',\r\n templateUrl: './spacer.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHorizontalNavigationSpacerItemComponent implements OnInit {\r\n\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatHorizontalNavigationComponent: CmatHorizontalNavigationComponent;\r\n\r\n ngOnInit(): void {\r\n this._cmatHorizontalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatHorizontalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n}\r\n","\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\" [ngClass]=\"item.classes?.wrapper\"></div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation, inject } from '@angular/core';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { CmatNavigationService } from '../navigation.service';\r\nimport { CmatNavigationItem } from '../navigation.types';\r\nimport { CmatHorizontalNavigationBasicItemComponent } from './components/basic/basic.component';\r\nimport { CmatHorizontalNavigationBranchItemComponent } from './components/branch/branch.component';\r\nimport { CmatHorizontalNavigationSpacerItemComponent } from './components/spacer/spacer.component';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation',\r\n templateUrl: './horizontal.component.html',\r\n styleUrls: ['./horizontal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatHorizontalNavigation',\r\n imports: [CmatHorizontalNavigationBasicItemComponent, CmatHorizontalNavigationBranchItemComponent, CmatHorizontalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatHorizontalNavigationComponent implements OnChanges, OnInit, OnDestroy {\r\n @Input() name: string = inject(CmatUtilsService).randomId();\r\n @Input() navigation: CmatNavigationItem[];\r\n @Input() hasRouteReuseStrategy:boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n onRefreshed: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('navigation' in changes) {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.name === '') {\r\n this.name = inject(CmatUtilsService).randomId();\r\n }\r\n this._cmatNavigationService.registerComponent(this.name, this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._cmatNavigationService.deregisterComponent(this.name);\r\n }\r\n\r\n\r\n refresh(): void {\r\n this._changeDetectorRef.markForCheck();\r\n this.onRefreshed.next(true);\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link:string):void{\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n}\r\n","<div class=\"cmat-horizontal-navigation-wrapper\">\r\n\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-horizontal-navigation-basic-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" [name]=\"name\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-horizontal-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n <cmat-horizontal-navigation-branch-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\" [name]=\"name\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-horizontal-navigation-branch-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-horizontal-navigation-spacer-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n</div>","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, IsActiveMatchOptions, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-basic-item',\r\n templateUrl: './basic.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatIconModule]\r\n})\r\nexport class CmatVerticalNavigationBasicItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n isActiveMatchOptions: IsActiveMatchOptions;\r\n\r\n private _router = inject(Router);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private _cmatUtilsService = inject(CmatUtilsService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n constructor() {\r\n\r\n this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isActiveMatchOptions =\r\n this.item.isActiveMatchOptions ?? this.item.exactMatch\r\n ? this._cmatUtilsService.exactMatchOptions\r\n : this._cmatUtilsService.subsetMatchOptions;\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n this._changeDetectorRef.markForCheck();\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._router.events.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n selectItem(): void {\r\n this.editSelectedItemChanged.emit(this.item);\r\n }\r\n\r\n isRouteActive(link: string): boolean {\r\n return isActive(link, this._router, this.isActiveMatchOptions)();\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n if (this.hasRouteReuseStrategy) {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n } else {\r\n void this._router.navigate([link]);\r\n }\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n @if(editState){\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"selectItem()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }@else{\r\n \r\n @if (item.link && !item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active,'cmat-vertical-navigation-item-active': isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && item.function && !item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && !item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active,'cmat-vertical-navigation-item-active': isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item);goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && !item.function && !item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item cmat-vertical-navigation-item-disabled\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n }\r\n</div>\r\n\r\n\r\n<ng-template #itemTemplate>\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n</ng-template>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-divider-item',\r\n templateUrl: './divider.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatVerticalNavigationDividerItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n\r\n ngOnInit(): void {\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper divider\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-spacer-item',\r\n templateUrl: './spacer.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatVerticalNavigationSpacerItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n ngOnInit(): void {\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnInit, Output, forwardRef, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from '../collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-group-item',\r\n templateUrl: './group.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationDividerItemComponent, forwardRef(() => CmatVerticalNavigationGroupItemComponent),\r\n forwardRef(() => CmatVerticalNavigationCollapsableItemComponent), CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationGroupItemComponent implements OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n\r\n ngOnInit(): void {\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\"\r\n [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\"\r\n (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@for (item of item.children; track trackByFn($index, item)) {\r\n\r\n@if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n\r\n@if (item.type === 'basic') {\r\n<cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n</cmat-vertical-navigation-basic-item>\r\n}\r\n\r\n@if (item.type === 'collapsable') {\r\n<cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n</cmat-vertical-navigation-collapsable-item>\r\n}\r\n\r\n@if (item.type === 'divider') {\r\n<cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-divider-item>\r\n}\r\n\r\n@if (item.type === 'group') {\r\n<cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-group-item>\r\n}\r\n\r\n@if (item.type === 'spacer') {\r\n<cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-spacer-item>\r\n}\r\n}\r\n}","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n forwardRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from '../group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-collapsable-item',\r\n templateUrl: './collapsable.component.html',\r\n styleUrls: ['../../../../../animations/expand-collapse.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatTooltipModule, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n forwardRef(() => CmatVerticalNavigationCollapsableItemComponent),\r\n forwardRef(() => CmatVerticalNavigationGroupItemComponent), CmatVerticalNavigationDividerItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationCollapsableItemComponent implements OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n isCollapsed: boolean = true;\r\n isExpanded: boolean = false;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _router = inject(Router);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n\r\n @HostBinding('class.cmat-vertical-navigation-item-collapsed') get isCollapsedClass(): boolean {\r\n return this.isCollapsed;\r\n }\r\n\r\n @HostBinding('class.cmat-vertical-navigation-item-expanded') get isExpandedClass(): boolean {\r\n return this.isExpanded;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n if (this._hasActiveChild(this.item, this._router.url)) {\r\n this.expand();\r\n }\r\n else {\r\n if (this.autoCollapse) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((collapsedItem) => {\r\n if (collapsedItem === null) {\r\n return;\r\n }\r\n\r\n if (this._isChildrenOf(collapsedItem, this.item)) {\r\n this.collapse();\r\n }\r\n });\r\n\r\n if (this.autoCollapse) {\r\n this._cmatVerticalNavigationComponent.onCollapsableItemExpanded\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((expandedItem) => {\r\n if (expandedItem === null) {\r\n return;\r\n }\r\n\r\n if (this._isChildrenOf(this.item, expandedItem)) {\r\n return;\r\n }\r\n\r\n if (this._hasActiveChild(this.item, this._router.url)) {\r\n return;\r\n }\r\n\r\n if (this.item === expandedItem) {\r\n return;\r\n }\r\n\r\n this.collapse();\r\n });\r\n }\r\n\r\n this._router.events\r\n .pipe(\r\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((event: NavigationEnd) => {\r\n if (this._hasActiveChild(this.item, event.urlAfterRedirects)) {\r\n this.expand();\r\n }\r\n else {\r\n if (this.autoCollapse) {\r\n this.collapse();\r\n }\r\n }\r\n });\r\n\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n collapse(): void {\r\n if (this.item.disabled) {\r\n return;\r\n }\r\n\r\n if (this.isCollapsed) {\r\n return;\r\n }\r\n\r\n this.isCollapsed = true;\r\n this.isExpanded = !this.isCollapsed;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed.next(this.item);\r\n }\r\n expand(): void {\r\n if (this.item.disabled) {\r\n return;\r\n }\r\n\r\n if (!this.isCollapsed) {\r\n return;\r\n }\r\n\r\n this.isCollapsed = false;\r\n this.isExpanded = !this.isCollapsed;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemExpanded.next(this.item);\r\n }\r\n toggleCollapsable(): void {\r\n if (this.isCollapsed) {\r\n this.expand();\r\n }\r\n else {\r\n this.collapse();\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n private _hasActiveChild(item: CmatNavigationItem, currentUrl: string): boolean {\r\n const children = item.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._hasActiveChild(child, currentUrl)) {\r\n return true;\r\n }\r\n }\r\n if (child.link && isActive(child.link,this._router, {\r\n paths: child.exactMatch || false ? 'exact' : 'subset',\r\n queryParams: child.exactMatch || false ? 'exact' : 'subset', matrixParams: 'ignored', fragment: 'ignored'\r\n })()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _isChildrenOf(parent: CmatNavigationItem, item: CmatNavigationItem): boolean {\r\n const children = parent.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n if (children.includes(item)) {\r\n return true;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._isChildrenOf(child, item)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-disabled': item.disabled}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"toggleCollapsable();selectItem(item);\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n \r\n <mat-icon class=\"cmat-vertical-navigation-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_outline:chevron-right'\">\r\n </mat-icon>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@if (!isCollapsed) {\r\n<div animate.leave=\"expand-collapse-animation-leaving\"\r\n class=\"cmat-vertical-navigation-item-children expand-collapse-animation\">\r\n <div>\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n \r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-group-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n </div>\r\n</div>\r\n}","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from '../collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from '../group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-aside-item',\r\n templateUrl: './aside.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatTooltipModule, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,\r\n CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationAsideItemComponent implements OnChanges, OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n static ngAcceptInputType_skipChildren: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() activeItemId: string | null;\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() skipChildren: boolean;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n active: boolean = false;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _router = inject(Router);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('activeItemId' in changes) {\r\n this._markIfActive(this._router.url);\r\n }\r\n }\r\n ngOnInit(): void {\r\n this._markIfActive(this._router.url);\r\n\r\n this._router.events\r\n .pipe(\r\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((event: NavigationEnd) => {\r\n this._markIfActive(event.urlAfterRedirects);\r\n });\r\n\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n this._cmatVerticalNavigationComponent.onRefreshed.pipe(\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe(() => {\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n private _hasActiveChild(item: CmatNavigationItem, currentUrl: string): boolean {\r\n const children = item.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._hasActiveChild(child, currentUrl)) {\r\n return true;\r\n }\r\n }\r\n if (child.type !== 'basic') {\r\n continue;\r\n }\r\n if (child.link && isActive(child.link,this._router, {\r\n paths: child.exactMatch || false ? 'exact' : 'subset',\r\n queryParams: child.exactMatch || false ? 'exact' : 'subset', fragment: 'ignored', matrixParams: 'ignored'\r\n })()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _markIfActive(currentUrl: string): void {\r\n this.active = this.activeItemId === this.item.id;\r\n\r\n if (this._hasActiveChild(this.item, currentUrl)) {\r\n this.active = true;\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\"\r\n [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active': active,\r\n 'cmat-vertical-navigation-item-disabled': item.disabled,\r\n 'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@if (!skipChildren) {\r\n <div class=\"cmat-vertical-navigation-item-children\">\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [autoCollapse]=\"autoCollapse\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n \r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationService } from '../navigation.service';\r\nimport { CmatNavigationItem, CmatVerticalNavigationAppearance, CmatVerticalNavigationMode, CmatVerticalNavigationPosition } from '../navigation.types';\r\nimport { CmatVerticalNavigationAsideItemComponent } from './components/aside/aside.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from './components/basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from './components/collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from './components/divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from './components/group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from './components/spacer/spacer.component';\r\n\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation',\r\n templateUrl: './vertical.component.html',\r\n styleUrls: ['./vertical.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatVerticalNavigation',\r\n imports: [CmatVerticalNavigationAsideItemComponent, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,\r\n CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_inner: BooleanInput;\r\n static ngAcceptInputType_opened: BooleanInput;\r\n static ngAcceptInputType_transparentOverlay: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @HostBinding('class') classList = '';\r\n\r\n @HostBinding('style') styleList = 'visibility: visible;';\r\n\r\n @ViewChild('navigationContent') private _navigationContentEl: ElementRef<HTMLDivElement>;\r\n\r\n @Input() appearance: CmatVerticalNavigationAppearance = 'default';\r\n @Input() autoCollapse: boolean = true;\r\n @Input() editState: boolean = false;\r\n @Input() inner: boolean = false;\r\n @Input() mode: CmatVerticalNavigationMode = 'side';\r\n @Input() name: string = '';\r\n @Input() navigation: CmatNavigationItem[];\r\n @Input() opened: boolean = true;\r\n @Input() position: CmatVerticalNavigationPosition = 'left';\r\n @Input() transparentOverlay: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly appearanceChanged: EventEmitter<CmatVerticalNavigationAppearance> = new EventEmitter<CmatVerticalNavigationAppearance>();\r\n @Output() readonly modeChanged: EventEmitter<CmatVerticalNavigationMode> = new EventEmitter<CmatVerticalNavigationMode>();\r\n @Output() readonly openedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() readonly positionChanged: EventEmitter<CmatVerticalNavigationPosition> = new EventEmitter<CmatVerticalNavigationPosition>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n activeAsideItemId: string | null = null;\r\n onCollapsableItemCollapsed: ReplaySubject<CmatNavigationItem> = new ReplaySubject<CmatNavigationItem>(1);\r\n onCollapsableItemExpanded: ReplaySubject<CmatNavigationItem> = new ReplaySubject<CmatNavigationItem>(1);\r\n onRefreshed: ReplaySubject<boolean> = new ReplaySubject<boolean>(1);\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _elementRef = inject(ElementRef);\r\n private _renderer2 = inject(Renderer2);\r\n private _router = inject(Router);\r\n private _scrollStrategyOptions = inject(ScrollStrategyOptions);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _cmatUtilsService = inject(CmatUtilsService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _animationsEnabled: boolean = false;\r\n private _asideOverlay: HTMLElement | null;\r\n private readonly _handleAsideOverlayClick: () => void;\r\n private readonly _handleOverlayClick: () => void;\r\n private _hovered: boolean = false;\r\n private _overlay: HTMLElement | null;\r\n private _scrollStrategy: ScrollStrategy = this._scrollStrategyOptions.block();\r\n\r\n\r\n\r\n constructor() {\r\n this._handleAsideOverlayClick = (): void => {\r\n this.closeAside();\r\n };\r\n this._handleOverlayClick = (): void => {\r\n this.close();\r\n };\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseenter(): void {\r\n this._enableAnimations();\r\n this._hovered = true;\r\n this._syncHostBindings();\r\n }\r\n @HostListener('mouseleave')\r\n onMouseleave(): void {\r\n this._enableAnimations();\r\n this._hovered = false;\r\n this._syncHostBindings();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('appearance' in changes) {\r\n this.appearanceChanged.emit(changes['appearance'].currentValue);\r\n }\r\n\r\n if ('inner' in changes) {\r\n this.inner = coerceBooleanProperty(changes['inner'].currentValue);\r\n }\r\n\r\n if ('mode' in changes) {\r\n const currentMode = changes['mode'].currentValue;\r\n const previousMode = changes['mode'].previousValue;\r\n\r\n this._disableAnimations();\r\n\r\n if (previousMode === 'over' && currentMode === 'side') {\r\n this._hideOverlay();\r\n }\r\n\r\n if (previousMode === 'side' && currentMode === 'over') {\r\n this.closeAside();\r\n\r\n if (this.opened) {\r\n this._showOverlay();\r\n }\r\n }\r\n\r\n this.modeChanged.emit(currentMode);\r\n\r\n setTimeout(() => {\r\n this._enableAnimations();\r\n }, 500);\r\n }\r\n\r\n if ('navigation' in changes) {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n if ('opened' in changes) {\r\n this.opened = coerceBooleanProperty(changes['opened'].currentValue);\r\n\r\n this._toggleOpened(this.opened);\r\n }\r\n\r\n if ('position' in changes) {\r\n this.positionChanged.emit(changes['position'].currentValue);\r\n }\r\n\r\n if ('transparentOverlay' in changes) {\r\n this.transparentOverlay = coerceBooleanProperty(changes['transparentOverlay'].currentValue);\r\n }\r\n\r\n this._syncHostBindings();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.name === '') {\r\n this.name = this._cmatUtilsService.randomId();\r\n }\r\n\r\n this._cmatNavigationService.registerComponent(this.name, this);\r\n\r\n this._router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe(() => {\r\n if (this.mode === 'over' && this.opened) {\r\n this.close();\r\n }\r\n\r\n if (this.mode === 'side' && this.activeAsideItemId) {\r\n this.closeAside();\r\n }\r\n });\r\n\r\n this._syncHostBindings();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (!this._navigationContentEl) {\r\n return;\r\n }\r\n\r\n const activeItem = this._navigationContentEl.nativeElement.querySelector('.cmat-vertical-navigation-item-active')!;\r\n if (activeItem) {\r\n if (activeItem.getBoundingClientRect().bottom\r\n <= (this._navigationContentEl.nativeElement.getBoundingClientRect().bottom - Math.abs(-120))) {\r\n return;\r\n }\r\n\r\n this._navigationContentEl.nativeElement.scrollTo({\r\n top: activeItem.getBoundingClientRect().top -\r\n this._navigationContentEl.nativeElement.getBoundingClientRect().top - 120, behavior: 'smooth'\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.close();\r\n this.closeAside();\r\n\r\n this._cmatNavigationService.deregisterComponent(this.name);\r\n }\r\n refresh(): void {\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this.onRefreshed.next(true);\r\n }\r\n open(): void {\r\n this._setNavigationOpened(true);\r\n }\r\n close(): void {\r\n this._setNavigationOpened(false);\r\n }\r\n toggle(): void {\r\n if (this.opened) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n\r\n openAside(item: CmatNavigationItem): void {\r\n if (item.disabled || !item.id) {\r\n return;\r\n }\r\n\r\n this._setAsideActive(item);\r\n }\r\n\r\n closeAside(): void {\r\n this._setAsideActive(null);\r\n }\r\n toggleAside(item: CmatNavigationItem): void {\r\n if (this.activeAsideItemId === item.id) {\r\n this.closeAside();\r\n }\r\n else {\r\n this.openAside(item);\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: CmatNavigationItem): string | number {\r\n return item.id ?? index;\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n isItemVisible(item: CmatNavigationItem): boolean {\r\n return !item.hidden?.(item);\r\n }\r\n private _enableAnimations(): void {\r\n if (this._animationsEnabled) {\r\n return;\r\n }\r\n\r\n this._animationsEnabled = true;\r\n this._syncHostBindings();\r\n }\r\n private _disableAnimations(): void {\r\n if (!this._animationsEnabled) {\r\n return;\r\n }\r\n\r\n this._animationsEnabled = false;\r\n this._syncHostBindings();\r\n }\r\n private _showOverlay(): void {\r\n if (this._overlay) {\r\n return;\r\n }\r\n\r\n this._overlay = this._renderer2.createElement('div');\r\n\r\n if (this._overlay) {\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay');\r\n\r\n if (this.transparentOverlay) {\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay-transparent');\r\n }\r\n\r\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._overlay);\r\n\r\n this._scrollStrategy.enable();\r\n\r\n setTimeout(() => {\r\n this._overlay?.classList.add('cmat-vertical-navigation-overlay-enter');\r\n }, 10);\r\n\r\n this._overlay.addEventListener('click', this._handleOverlayClick);\r\n }\r\n }\r\n private _hideOverlay(): void {\r\n if (!this._overlay) {\r\n return;\r\n }\r\n\r\n this._overlay.classList.remove('cmat-vertical-navigation-overlay-enter');\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay-leave');\r\n\r\n const handleAnimationEnd = (event: AnimationEvent): void => {\r\n if (event.animationName === 'vertical-navigation-overlay-leave') {\r\n this._overlay?.removeEventListener('animationend', handleAnimationEnd);\r\n\r\n if (this._overlay) {\r\n this._overlay = this._removeOverlayElement(this._overlay, this._handleOverlayClick);\r\n }\r\n\r\n this._scrollStrategy.disable();\r\n }\r\n };\r\n\r\n this._overlay.addEventListener('animationend', handleAnimationEnd);\r\n }\r\n\r\n private _showAsideOverlay(): void {\r\n if (this._asideOverlay) {\r\n return;\r\n }\r\n\r\n this._asideOverlay = this._renderer2.createElement('div');\r\n\r\n if (this._asideOverlay) {\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay');\r\n\r\n this._renderer2.appendChild(this._elementRef.nativeElement.parentElement, this._asideOverlay);\r\n\r\n setTimeout(() => {\r\n this._asideOverlay?.classList.add('cmat-vertical-navigation-aside-overlay-enter');\r\n }, 10);\r\n\r\n this._asideOverlay.addEventListener('click', this._handleAsideOverlayClick);\r\n }\r\n }\r\n private _hideAsideOverlay(): void {\r\n if (!this._asideOverlay) {\r\n return;\r\n }\r\n\r\n this._asideOverlay.classList.remove('cmat-vertical-navigation-aside-overlay-enter');\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay-leave');\r\n\r\n const handleAnimationEnd = (event: AnimationEvent): void => {\r\n if (event.animationName === 'vertical-navigation-aside-overlay-leave') {\r\n this._asideOverlay?.removeEventListener('animationend', handleAnimationEnd);\r\n\r\n if (this._asideOverlay) {\r\n this._asideOverlay = this._removeOverlayElement(this._asideOverlay, this._handleAsideOverlayClick);\r\n }\r\n }\r\n };\r\n\r\n this._asideOverlay.addEventListener('animationend', handleAnimationEnd); \r\n }\r\n\r\n private _toggleOpened(open: boolean): void {\r\n this._setNavigationOpened(open);\r\n }\r\n\r\n private _setNavigationOpened(open: boolean): void {\r\n if (this.opened === open) {\r\n return;\r\n }\r\n\r\n if (!open) {\r\n this.closeAside();\r\n }\r\n\r\n this._applyOpenedState(open);\r\n }\r\n\r\n private _applyOpenedState(open: boolean): void {\r\n this.opened = open;\r\n\r\n this._enableAnimations();\r\n\r\n if (this.mode === 'over') {\r\n if (this.opened) {\r\n this._showOverlay();\r\n }\r\n else {\r\n this._hideOverlay();\r\n }\r\n }\r\n\r\n this.openedChanged.emit(open);\r\n this._syncHostBindings();\r\n }\r\n\r\n private _setAsideActive(item: CmatNavigationItem | null): void {\r\n if (this.activeAsideItemId === (item?.id ?? null)) {\r\n return;\r\n }\r\n\r\n this.activeAsideItemId = item?.id ?? null;\r\n\r\n if (this.activeAsideItemId) {\r\n this._showAsideOverlay();\r\n } else {\r\n this._hideAsideOverlay();\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n private _removeOverlayElement(overlay: HTMLElement | null, clickHandler: () => void): HTMLElement | null {\r\n if (!overlay) {\r\n return null;\r\n }\r\n\r\n overlay.removeEventListener('click', clickHandler);\r\n overlay.parentNode?.removeChild(overlay);\r\n\r\n return null;\r\n }\r\n\r\n private _syncHostBindings(): void {\r\n this.classList = [\r\n this._animationsEnabled ? 'cmat-vertical-navigation-animations-enabled' : '',\r\n `cmat-vertical-navigation-appearance-${this.appearance}`,\r\n this._hovered ? 'cmat-vertical-navigation-hover' : '',\r\n this.inner ? 'cmat-vertical-navigation-inner' : '',\r\n this.mode === 'over' ? 'cmat-vertical-navigation-mode-over' : '',\r\n this.mode === 'side' ? 'cmat-vertical-navigation-mode-side' : '',\r\n this.opened ? 'cmat-vertical-navigation-opened' : '',\r\n this.position === 'left' ? 'cmat-vertical-navigation-position-left' : '',\r\n this.position === 'right' ? 'cmat-vertical-navigation-position-right' : ''\r\n ].filter(Boolean).join(' ');\r\n\r\n this.styleList = `visibility: ${this.opened ? 'visible' : 'hidden'};`;\r\n }\r\n}\r\n","<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n \r\n <div #navigationContent class=\"cmat-vertical-navigation-content py-2 overflow-y-auto scrollbar-custom\">\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n \r\n @for (item of navigation; track trackByFn($index, item)) {\r\n @let isVisible = isItemVisible(item);\r\n @if (isVisible) {\r\n @switch (item.type) {\r\n @case ('aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (click)=\"toggleAside(item)\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n @case ('basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n @case ('collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [autoCollapse]=\"autoCollapse\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n @case ('divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n @case ('group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n @case ('spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n \r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n@if (activeAsideItemId) {\r\n<div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto scrollbar-custom\"\r\n [animate.enter]=\"position === 'left'?'fade-in-left-animation':'fade-in-right-animation'\"\r\n [animate.leave]=\"position === 'left'?'fade-out-left-animation':'fade-out-right-animation'\">\r\n \r\n @for (item of navigation; track trackByFn($index, item)) {\r\n @let isVisible = isItemVisible(item);\r\n @if (isVisible) {\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n</div>\r\n}\r\n","import { IsActiveMatchOptions } from '@angular/router';\r\n\r\nexport class CmatNavigationItem {\r\n id?: string;\r\n title?: string;\r\n subTitle?: string;\r\n type:\r\n | 'aside'\r\n | 'basic'\r\n | 'collapsable'\r\n | 'divider'\r\n | 'group'\r\n | 'spacer';\r\n hidden?: (item: CmatNavigationItem) => boolean;\r\n active?: boolean;\r\n disabled?: boolean;\r\n tooltip?: string;\r\n link?: string;\r\n externalLink?: boolean;\r\n target?:\r\n | '_blank'\r\n | '_self'\r\n | '_parent'\r\n | '_top';\r\n exactMatch?: boolean;\r\n isActiveMatchOptions?: IsActiveMatchOptions;\r\n function?: (item: CmatNavigationItem) => void;\r\n classes?: {\r\n title?: string;\r\n subtitle?: string;\r\n icon?: string;\r\n wrapper?: string;\r\n };\r\n icon?: string;\r\n badge?: {\r\n title?: string;\r\n classes?: string;\r\n };\r\n children?: CmatNavigationItem[];\r\n meta?: unknown;\r\n permission?: unknown;\r\n}\r\n\r\nexport interface CmatNavigationComponent {\r\n close(): void;\r\n open(): void;\r\n toggle(): void;\r\n}\r\n\r\nexport type CmatVerticalNavigationAppearance =\r\n | 'default'\r\n | 'compact'\r\n | 'dense'\r\n | 'thin';\r\n\r\nexport type CmatVerticalNavigationMode =\r\n | 'over'\r\n | 'side';\r\n\r\nexport type CmatVerticalNavigationPosition =\r\n | 'left'\r\n | 'right';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-navigation.mjs","sources":["../../../projects/cmat/components/navigation/navigation.service.ts","../../../projects/cmat/components/navigation/horizontal/components/basic/basic.component.ts","../../../projects/cmat/components/navigation/horizontal/components/basic/basic.component.html","../../../projects/cmat/components/navigation/horizontal/components/divider/divider.component.ts","../../../projects/cmat/components/navigation/horizontal/components/divider/divider.component.html","../../../projects/cmat/components/navigation/horizontal/components/branch/branch.component.ts","../../../projects/cmat/components/navigation/horizontal/components/branch/branch.component.html","../../../projects/cmat/components/navigation/horizontal/components/spacer/spacer.component.ts","../../../projects/cmat/components/navigation/horizontal/components/spacer/spacer.component.html","../../../projects/cmat/components/navigation/horizontal/horizontal.component.ts","../../../projects/cmat/components/navigation/horizontal/horizontal.component.html","../../../projects/cmat/components/navigation/vertical/components/basic/basic.component.ts","../../../projects/cmat/components/navigation/vertical/components/basic/basic.component.html","../../../projects/cmat/components/navigation/vertical/components/divider/divider.component.ts","../../../projects/cmat/components/navigation/vertical/components/divider/divider.component.html","../../../projects/cmat/components/navigation/vertical/components/spacer/spacer.component.ts","../../../projects/cmat/components/navigation/vertical/components/spacer/spacer.component.html","../../../projects/cmat/components/navigation/vertical/components/group/group.component.ts","../../../projects/cmat/components/navigation/vertical/components/group/group.component.html","../../../projects/cmat/components/navigation/vertical/components/collapsable/collapsable.component.ts","../../../projects/cmat/components/navigation/vertical/components/collapsable/collapsable.component.html","../../../projects/cmat/components/navigation/vertical/components/aside/aside.component.ts","../../../projects/cmat/components/navigation/vertical/components/aside/aside.component.html","../../../projects/cmat/components/navigation/vertical/vertical.component.ts","../../../projects/cmat/components/navigation/vertical/vertical.component.html","../../../projects/cmat/components/navigation/navigation.types.ts","../../../projects/cmat/components/navigation/cmat-components-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { CmatNavigationItem } from './navigation.types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatNavigationService {\r\n private readonly _componentRegistry = new Map<string, unknown>();\r\n private readonly _navigationStore = new Map<string, CmatNavigationItem[]>();\r\n\r\n registerComponent(name: string, component: unknown): void {\r\n this._componentRegistry.set(name, component);\r\n }\r\n deregisterComponent(name: string): void {\r\n this._componentRegistry.delete(name);\r\n }\r\n getComponent<T = unknown>(name: string): T {\r\n return this._componentRegistry.get(name) as T;\r\n }\r\n\r\n storeNavigation(key: string, navigation: CmatNavigationItem[]): void {\r\n this._navigationStore.set(key, navigation);\r\n }\r\n getNavigation(key: string): CmatNavigationItem[] {\r\n return this._navigationStore.get(key) ?? [];\r\n }\r\n deleteNavigation(key: string): void {\r\n if (!this._navigationStore.has(key)) {\r\n console.warn(`Navigation with the key '${key}' does not exist in the store.`);\r\n }\r\n\r\n this._navigationStore.delete(key);\r\n }\r\n getFlatNavigation(navigation: CmatNavigationItem[], flatNavigation: CmatNavigationItem[] = []): CmatNavigationItem[] {\r\n for (const item of navigation) {\r\n if (item.type === 'basic') {\r\n flatNavigation.push(item);\r\n continue;\r\n }\r\n\r\n if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n if (item.children) {\r\n this.getFlatNavigation(item.children, flatNavigation);\r\n }\r\n }\r\n }\r\n\r\n return flatNavigation;\r\n }\r\n getItem(id: string, navigation: CmatNavigationItem[]): CmatNavigationItem | null {\r\n for (const item of navigation) {\r\n if (item.id === id) {\r\n return item;\r\n }\r\n\r\n if (item.children) {\r\n const childItem = this.getItem(id, item.children);\r\n\r\n if (childItem) {\r\n return childItem;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n getItemParent(\r\n id: string,\r\n navigation: CmatNavigationItem[],\r\n parent: CmatNavigationItem[] | CmatNavigationItem\r\n ): CmatNavigationItem[] | CmatNavigationItem | null {\r\n for (const item of navigation) {\r\n if (item.id === id) {\r\n return parent;\r\n }\r\n\r\n if (item.children) {\r\n const childItem = this.getItemParent(id, item.children, item);\r\n\r\n if (childItem) {\r\n return childItem;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, IsActiveMatchOptions, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-basic-item',\r\n templateUrl: './basic.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatMenuModule, MatIconModule]\r\n})\r\nexport class CmatHorizontalNavigationBasicItemComponent {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() hasRouteReuseStrategy: boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n isActiveMatchOptions: IsActiveMatchOptions;\r\n\r\n private _router = inject(Router);\r\n private _cmatUtilsService = inject(CmatUtilsService);\r\n\r\n constructor() {\r\n this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;\r\n this.isActiveMatchOptions =\r\n this.item?.isActiveMatchOptions ?? this.item?.exactMatch\r\n ? this._cmatUtilsService.exactMatchOptions\r\n : this._cmatUtilsService.subsetMatchOptions;\r\n }\r\n\r\n isRouteActive(link: string): boolean {\r\n return isActive(link, this._router, this.isActiveMatchOptions)();\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n if (this.hasRouteReuseStrategy) {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n } else {\r\n void this._router.navigate([link]);\r\n }\r\n }\r\n}\r\n","<div class=\"cmat-horizontal-navigation-item-wrapper\" [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n \r\n @if (item.link && !item.externalLink && !item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active,'cmat-horizontal-navigation-item-active':isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-horizontal-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && !item.externalLink && item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active,'cmat-horizontal-navigation-item-active':isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item);goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-horizontal-navigation-item\" mat-menu-item [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && !item.function && !item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item\"\r\n [ngClass]=\"{'cmat-horizontal-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.disabled) {\r\n <div class=\"cmat-horizontal-navigation-item cmat-horizontal-navigation-item-disabled\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n</div>\r\n\r\n\r\n<ng-template #itemTemplate>\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n</ng-template>\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-divider-item',\r\n templateUrl: './divider.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHorizontalNavigationDividerItemComponent {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n}\r\n","\r\n<div class=\"cmat-horizontal-navigation-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>\r\n","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatHorizontalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatHorizontalNavigationDividerItemComponent } from '../divider/divider.component';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-branch-item',\r\n templateUrl: './branch.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatMenuModule, NgTemplateOutlet, CmatHorizontalNavigationBasicItemComponent,\r\n forwardRef(() => CmatHorizontalNavigationBranchItemComponent), CmatHorizontalNavigationDividerItemComponent, MatTooltipModule, MatIconModule]\r\n})\r\nexport class CmatHorizontalNavigationBranchItemComponent {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_child: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() child: boolean = false;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() hasRouteReuseStrategy: boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @ViewChild('matMenu', { static: true }) matMenu: MatMenu;\r\n\r\n triggerChangeDetection(): void {\r\n // no-op: keep menu state changes local to Material menu interactions\r\n }\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n}\r\n","@if (!child) {\r\n<div #trigger=\"matMenuTrigger\" [ngClass]=\"{'cmat-horizontal-navigation-menu-active': trigger.menuOpen,\r\n 'cmat-horizontal-navigation-menu-active-forced': item.active}\" [matMenuTriggerFor]=\"matMenu\"\r\n (menuOpened)=\"triggerChangeDetection()\" (onMenuClose)=\"triggerChangeDetection()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n</div>\r\n}\r\n\r\n<mat-menu #matMenu=\"matMenu\" class=\"cmat-horizontal-navigation-menu-panel\" [overlapTrigger]=\"false\">\r\n\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item [disabled]=\"item.disabled\">\r\n <cmat-horizontal-navigation-basic-item [item]=\"item\" [name]=\"name\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-horizontal-navigation-basic-item>\r\n </div>\r\n }\r\n \r\n @if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item [disabled]=\"item.disabled\"\r\n [matMenuTriggerFor]=\"branch.matMenu\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\r\n <cmat-horizontal-navigation-branch-item #branch [child]=\"true\" [item]=\"item\" [name]=\"name\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-horizontal-navigation-branch-item>\r\n </div>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <div class=\"cmat-horizontal-navigation-menu-item\" mat-menu-item>\r\n <cmat-horizontal-navigation-divider-item [item]=\"item\" [name]=\"name\">\r\n </cmat-horizontal-navigation-divider-item>\r\n </div>\r\n }\r\n }\r\n }\r\n\r\n</mat-menu>\r\n\r\n\r\n<ng-template #itemTemplate let-item>\r\n\r\n <div class=\"cmat-horizontal-navigation-item-wrapper\"\r\n [class.cmat-horizontal-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-horizontal-navigation-item\" [ngClass]=\"{'cmat-horizontal-navigation-item-disabled': item.disabled,\r\n 'cmat-horizontal-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-horizontal-navigation-item-icon\" [ngClass]=\"item.classes?.icon\"\r\n [svgIcon]=\"item.icon\"></mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-horizontal-navigation-item-title-wrapper\">\r\n <div class=\"cmat-horizontal-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-horizontal-navigation-item-badge\">\r\n <div class=\"cmat-horizontal-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation-spacer-item',\r\n templateUrl: './spacer.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHorizontalNavigationSpacerItemComponent {\r\n\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n\r\n}\r\n","\r\n<div class=\"cmat-horizontal-navigation-item-wrapper\" [ngClass]=\"item.classes?.wrapper\"></div>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatNavigationService } from '../navigation.service';\r\nimport { CmatNavigationItem } from '../navigation.types';\r\nimport { CmatHorizontalNavigationBasicItemComponent } from './components/basic/basic.component';\r\nimport { CmatHorizontalNavigationBranchItemComponent } from './components/branch/branch.component';\r\nimport { CmatHorizontalNavigationSpacerItemComponent } from './components/spacer/spacer.component';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-horizontal-navigation',\r\n templateUrl: './horizontal.component.html',\r\n styleUrls: ['./horizontal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatHorizontalNavigation',\r\n imports: [CmatHorizontalNavigationBasicItemComponent, CmatHorizontalNavigationBranchItemComponent, CmatHorizontalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatHorizontalNavigationComponent implements OnChanges, OnInit, OnDestroy {\r\n @Input() name: string = inject(CmatUtilsService).randomId();\r\n @Input() navigation: CmatNavigationItem[];\r\n @Input() hasRouteReuseStrategy:boolean;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n readonly refreshToken = signal(0);\r\n\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('navigation' in changes) {\r\n this.refreshToken.update(value => value + 1);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.name === '') {\r\n this.name = inject(CmatUtilsService).randomId();\r\n }\r\n this._cmatNavigationService.registerComponent(this.name, this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._cmatNavigationService.deregisterComponent(this.name);\r\n }\r\n\r\n\r\n refresh(): void {\r\n this.refreshToken.update(value => value + 1);\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link:string):void{\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n}\r\n","<div class=\"cmat-horizontal-navigation-wrapper\" [attr.data-refresh]=\"refreshToken()\">\r\n\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-horizontal-navigation-basic-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" [name]=\"name\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-horizontal-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'aside' || item.type === 'collapsable' || item.type === 'group') {\r\n <cmat-horizontal-navigation-branch-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\" [name]=\"name\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-horizontal-navigation-branch-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-horizontal-navigation-spacer-item class=\"cmat-horizontal-navigation-menu-item\" [item]=\"item\"\r\n [name]=\"name\"></cmat-horizontal-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n</div>\r\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n inject,\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, IsActiveMatchOptions, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-basic-item',\r\n templateUrl: './basic.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, RouterLink, RouterLinkActive, MatTooltipModule, NgTemplateOutlet, MatIconModule]\r\n})\r\nexport class CmatVerticalNavigationBasicItemComponent implements OnInit {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n isActiveMatchOptions: IsActiveMatchOptions;\r\n\r\n private _router = inject(Router);\r\n private _cmatUtilsService = inject(CmatUtilsService);\r\n constructor() {\r\n\r\n this.isActiveMatchOptions = this._cmatUtilsService.subsetMatchOptions;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isActiveMatchOptions =\r\n this.item.isActiveMatchOptions ?? this.item.exactMatch\r\n ? this._cmatUtilsService.exactMatchOptions\r\n : this._cmatUtilsService.subsetMatchOptions;\r\n }\r\n\r\n selectItem(): void {\r\n this.editSelectedItemChanged.emit(this.item);\r\n }\r\n\r\n isRouteActive(link: string): boolean {\r\n return isActive(link, this._router, this.isActiveMatchOptions)();\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n if (this.hasRouteReuseStrategy) {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n } else {\r\n void this._router.navigate([link]);\r\n }\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n @if(editState){\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"selectItem()\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }@else{\r\n \r\n @if (item.link && !item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active,'cmat-vertical-navigation-item-active': isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && !item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && item.function && !item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.link && !item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active,'cmat-vertical-navigation-item-active': isRouteActive(item.link)}\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item);goToRouterLink(item.link)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (item.link && item.externalLink && item.function && !item.disabled) {\r\n <a class=\"cmat-vertical-navigation-item\" [href]=\"item.link\" [target]=\"item.target || '_blank'\"\r\n [matTooltip]=\"item.tooltip || ''\" (click)=\"item.function(item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </a>\r\n }\r\n\r\n \r\n @if (!item.link && !item.function && !item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active-forced': item.active}\"\r\n [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n \r\n @if (item.disabled) {\r\n <div class=\"cmat-vertical-navigation-item cmat-vertical-navigation-item-disabled\" [matTooltip]=\"item.tooltip || ''\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\r\n </div>\r\n }\r\n }\r\n</div>\r\n\r\n\r\n<ng-template #itemTemplate>\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n</ng-template>\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-divider-item',\r\n templateUrl: './divider.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatVerticalNavigationDividerItemComponent {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper divider\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-spacer-item',\r\n templateUrl: './spacer.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass]\r\n})\r\nexport class CmatVerticalNavigationSpacerItemComponent {\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\"></div>\r\n","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from '../collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-group-item',\r\n templateUrl: './group.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationDividerItemComponent, forwardRef(() => CmatVerticalNavigationGroupItemComponent),\r\n forwardRef(() => CmatVerticalNavigationCollapsableItemComponent), CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationGroupItemComponent {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n}\r\n","\r\n<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\"\r\n [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\"\r\n (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@for (item of item.children; track trackByFn($index, item)) {\r\n\r\n@if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n\r\n@if (item.type === 'basic') {\r\n<cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n</cmat-vertical-navigation-basic-item>\r\n}\r\n\r\n@if (item.type === 'collapsable') {\r\n<cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n</cmat-vertical-navigation-collapsable-item>\r\n}\r\n\r\n@if (item.type === 'divider') {\r\n<cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-divider-item>\r\n}\r\n\r\n@if (item.type === 'group') {\r\n<cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-group-item>\r\n}\r\n\r\n@if (item.type === 'spacer') {\r\n<cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-spacer-item>\r\n}\r\n}\r\n}\r\n","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n forwardRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationService } from '../../../navigation.service';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationComponent } from '../../../vertical/vertical.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from '../group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-collapsable-item',\r\n templateUrl: './collapsable.component.html',\r\n styleUrls: ['../../../../../animations/expand-collapse.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatTooltipModule, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n forwardRef(() => CmatVerticalNavigationCollapsableItemComponent),\r\n forwardRef(() => CmatVerticalNavigationGroupItemComponent), CmatVerticalNavigationDividerItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationCollapsableItemComponent implements OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n isCollapsed: boolean = true;\r\n isExpanded: boolean = false;\r\n\r\n private _router = inject(Router);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _cmatVerticalNavigationComponent: CmatVerticalNavigationComponent;\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n \r\n @HostBinding('class.cmat-vertical-navigation-item-collapsed') get isCollapsedClass(): boolean {\r\n return this.isCollapsed;\r\n }\r\n\r\n @HostBinding('class.cmat-vertical-navigation-item-expanded') get isExpandedClass(): boolean {\r\n return this.isExpanded;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatVerticalNavigationComponent = this._cmatNavigationService.getComponent(this.name);\r\n\r\n if (!this._cmatVerticalNavigationComponent) {\r\n return;\r\n }\r\n\r\n if (this._hasActiveChild(this.item, this._router.url)) {\r\n this.expand();\r\n }\r\n else {\r\n if (this.autoCollapse) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((collapsedItem) => {\r\n if (collapsedItem === null) {\r\n return;\r\n }\r\n\r\n if (this._isChildrenOf(collapsedItem, this.item)) {\r\n this.collapse();\r\n }\r\n });\r\n\r\n if (this.autoCollapse) {\r\n this._cmatVerticalNavigationComponent.onCollapsableItemExpanded\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((expandedItem) => {\r\n if (expandedItem === null) {\r\n return;\r\n }\r\n\r\n if (this._isChildrenOf(this.item, expandedItem)) {\r\n return;\r\n }\r\n\r\n if (this._hasActiveChild(this.item, this._router.url)) {\r\n return;\r\n }\r\n\r\n if (this.item === expandedItem) {\r\n return;\r\n }\r\n\r\n this.collapse();\r\n });\r\n }\r\n\r\n this._router.events\r\n .pipe(\r\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((event: NavigationEnd) => {\r\n if (this._hasActiveChild(this.item, event.urlAfterRedirects)) {\r\n this.expand();\r\n }\r\n else {\r\n if (this.autoCollapse) {\r\n this.collapse();\r\n }\r\n }\r\n });\r\n\r\n }\r\n collapse(): void {\r\n if (this.item.disabled || !this._cmatVerticalNavigationComponent) {\r\n return;\r\n }\r\n\r\n if (this.isCollapsed) {\r\n return;\r\n }\r\n\r\n this.isCollapsed = true;\r\n this.isExpanded = !this.isCollapsed;\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemCollapsed.next(this.item);\r\n }\r\n expand(): void {\r\n if (this.item.disabled || !this._cmatVerticalNavigationComponent) {\r\n return;\r\n }\r\n\r\n if (!this.isCollapsed) {\r\n return;\r\n }\r\n\r\n this.isCollapsed = false;\r\n this.isExpanded = !this.isCollapsed;\r\n\r\n this._cmatVerticalNavigationComponent.onCollapsableItemExpanded.next(this.item);\r\n }\r\n toggleCollapsable(): void {\r\n if (this.isCollapsed) {\r\n this.expand();\r\n }\r\n else {\r\n this.collapse();\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n private _hasActiveChild(item: CmatNavigationItem, currentUrl: string): boolean {\r\n const children = item.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._hasActiveChild(child, currentUrl)) {\r\n return true;\r\n }\r\n }\r\n if (child.link && isActive(child.link,this._router, {\r\n paths: child.exactMatch || false ? 'exact' : 'subset',\r\n queryParams: child.exactMatch || false ? 'exact' : 'subset', matrixParams: 'ignored', fragment: 'ignored'\r\n })()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _isChildrenOf(parent: CmatNavigationItem, item: CmatNavigationItem): boolean {\r\n const children = parent.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n if (children.includes(item)) {\r\n return true;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._isChildrenOf(child, item)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}","<div class=\"cmat-vertical-navigation-item-wrapper\" [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\"\r\n [ngClass]=\"item.classes?.wrapper\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" role=\"presentation\"\r\n [ngClass]=\"{'cmat-vertical-navigation-item-disabled': item.disabled}\" [matTooltip]=\"item.tooltip || ''\"\r\n (click)=\"toggleCollapsable();selectItem(item);\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n \r\n <mat-icon class=\"cmat-vertical-navigation-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_outline:chevron-right'\">\r\n </mat-icon>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@if (!isCollapsed) {\r\n<div animate.leave=\"expand-collapse-animation-leaving\"\r\n class=\"cmat-vertical-navigation-item-children expand-collapse-animation\">\r\n <div>\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-collapsable-item>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n \r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-group-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n </div>\r\n</div>\r\n}\r\n","import { BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { isActive, NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationItem } from '../../../navigation.types';\r\nimport { CmatVerticalNavigationBasicItemComponent } from '../basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from '../collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from '../divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from '../group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from '../spacer/spacer.component';\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation-aside-item',\r\n templateUrl: './aside.component.html',\r\n styles: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [NgClass, MatTooltipModule, MatIconModule, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,\r\n CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationAsideItemComponent implements OnChanges, OnInit {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_autoCollapse: BooleanInput;\r\n static ngAcceptInputType_skipChildren: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @Input() activeItemId: string | null;\r\n @Input() autoCollapse: boolean;\r\n @Input() item: CmatNavigationItem;\r\n @Input() name: string;\r\n @Input() skipChildren: boolean;\r\n @Input() editState: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n active: boolean = false;\r\n\r\n private _router = inject(Router);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('activeItemId' in changes) {\r\n this._markIfActive(this._router.url);\r\n }\r\n }\r\n ngOnInit(): void {\r\n this._markIfActive(this._router.url);\r\n\r\n this._router.events\r\n .pipe(\r\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe((event: NavigationEnd) => {\r\n this._markIfActive(event.urlAfterRedirects);\r\n });\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n private _hasActiveChild(item: CmatNavigationItem, currentUrl: string): boolean {\r\n const children = item.children;\r\n\r\n if (!children) {\r\n return false;\r\n }\r\n\r\n for (const child of children) {\r\n if (child.children) {\r\n if (this._hasActiveChild(child, currentUrl)) {\r\n return true;\r\n }\r\n }\r\n if (child.type !== 'basic') {\r\n continue;\r\n }\r\n if (child.link && isActive(child.link,this._router, {\r\n paths: child.exactMatch || false ? 'exact' : 'subset',\r\n queryParams: child.exactMatch || false ? 'exact' : 'subset', fragment: 'ignored', matrixParams: 'ignored'\r\n })()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _markIfActive(currentUrl: string): void {\r\n this.active = this.activeItemId === this.item.id;\r\n\r\n if (this._hasActiveChild(this.item, currentUrl)) {\r\n this.active = true;\r\n }\r\n\r\n }\r\n}\r\n","<div class=\"cmat-vertical-navigation-item-wrapper\" role=\"presentation\"\r\n [class.cmat-vertical-navigation-item-has-subtitle]=\"!!item.subTitle\" [ngClass]=\"item.classes?.wrapper\" (click)=\"selectItem(item);\">\r\n\r\n <div class=\"cmat-vertical-navigation-item\" [ngClass]=\"{'cmat-vertical-navigation-item-active': active,\r\n 'cmat-vertical-navigation-item-disabled': item.disabled,\r\n 'cmat-vertical-navigation-item-active-forced': item.active}\" [matTooltip]=\"item.tooltip || ''\">\r\n\r\n \r\n @if (item.icon) {\r\n <mat-icon class=\"cmat-vertical-navigation-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\">\r\n </mat-icon>\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-item-title-wrapper\">\r\n <div class=\"cmat-vertical-navigation-item-title\">\r\n <span [ngClass]=\"item.classes?.title\">\r\n {{item.title}}\r\n </span>\r\n </div>\r\n @if (item.subTitle) {\r\n <div class=\"cmat-vertical-navigation-item-subtitle\">\r\n <span [ngClass]=\"item.classes?.subtitle\">\r\n {{item.subTitle}}\r\n </span>\r\n </div>\r\n }\r\n </div>\r\n\r\n \r\n @if (item.badge) {\r\n <div class=\"cmat-vertical-navigation-item-badge\">\r\n <div class=\"cmat-vertical-navigation-item-badge-content\" [ngClass]=\"item.badge.classes\">\r\n {{item.badge.title}}\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n@if (!skipChildren) {\r\n <div class=\"cmat-vertical-navigation-item-children\">\r\n @for (item of item.children; track trackByFn($index, item)) {\r\n \r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n \r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n \r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [autoCollapse]=\"autoCollapse\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n \r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n \r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n \r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}\r\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewChild, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CmatNavigationService } from '../navigation.service';\r\nimport { CmatNavigationItem, CmatVerticalNavigationAppearance, CmatVerticalNavigationMode, CmatVerticalNavigationPosition } from '../navigation.types';\r\nimport { CmatVerticalNavigationAsideItemComponent } from './components/aside/aside.component';\r\nimport { CmatVerticalNavigationBasicItemComponent } from './components/basic/basic.component';\r\nimport { CmatVerticalNavigationCollapsableItemComponent } from './components/collapsable/collapsable.component';\r\nimport { CmatVerticalNavigationDividerItemComponent } from './components/divider/divider.component';\r\nimport { CmatVerticalNavigationGroupItemComponent } from './components/group/group.component';\r\nimport { CmatVerticalNavigationSpacerItemComponent } from './components/spacer/spacer.component';\r\n\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\n\r\n\r\n@Component({\r\n selector: 'cmat-vertical-navigation',\r\n templateUrl: './vertical.component.html',\r\n styleUrls: ['./vertical.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatVerticalNavigation',\r\n imports: [CmatVerticalNavigationAsideItemComponent, CmatVerticalNavigationBasicItemComponent,\r\n CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,\r\n CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent]\r\n})\r\nexport class CmatVerticalNavigationComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {\r\n /* eslint-disable @typescript-eslint/naming-convention */\r\n static ngAcceptInputType_inner: BooleanInput;\r\n static ngAcceptInputType_opened: BooleanInput;\r\n static ngAcceptInputType_transparentOverlay: BooleanInput;\r\n /* eslint-enable @typescript-eslint/naming-convention */\r\n\r\n @HostBinding('class') classList = '';\r\n\r\n @HostBinding('style') styleList = 'visibility: visible;';\r\n\r\n @ViewChild('navigationContent') private _navigationContentEl: ElementRef<HTMLDivElement>;\r\n\r\n @Input() appearance: CmatVerticalNavigationAppearance = 'default';\r\n @Input() autoCollapse: boolean = true;\r\n @Input() editState: boolean = false;\r\n @Input() inner: boolean = false;\r\n @Input() mode: CmatVerticalNavigationMode = 'side';\r\n @Input() name: string = '';\r\n @Input() navigation: CmatNavigationItem[];\r\n @Input() opened: boolean = true;\r\n @Input() position: CmatVerticalNavigationPosition = 'left';\r\n @Input() transparentOverlay: boolean = false;\r\n @Input() hasRouteReuseStrategy: boolean = false;\r\n @Output() readonly routeReuseStrategyEmitUrl: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() readonly appearanceChanged: EventEmitter<CmatVerticalNavigationAppearance> = new EventEmitter<CmatVerticalNavigationAppearance>();\r\n @Output() readonly modeChanged: EventEmitter<CmatVerticalNavigationMode> = new EventEmitter<CmatVerticalNavigationMode>();\r\n @Output() readonly openedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() readonly positionChanged: EventEmitter<CmatVerticalNavigationPosition> = new EventEmitter<CmatVerticalNavigationPosition>();\r\n @Output() readonly editSelectedItemChanged: EventEmitter<CmatNavigationItem> = new EventEmitter<CmatNavigationItem>();\r\n\r\n readonly activeAsideItemId = signal<string | null>(null);\r\n readonly asideOverlayVisible = signal(false);\r\n onCollapsableItemCollapsed: ReplaySubject<CmatNavigationItem> = new ReplaySubject<CmatNavigationItem>(1);\r\n onCollapsableItemExpanded: ReplaySubject<CmatNavigationItem> = new ReplaySubject<CmatNavigationItem>(1);\r\n\r\n readonly refreshToken = signal(0);\r\n\r\n private _elementRef = inject(ElementRef);\r\n private _renderer2 = inject(Renderer2);\r\n private _router = inject(Router);\r\n private _scrollStrategyOptions = inject(ScrollStrategyOptions);\r\n private _cmatNavigationService = inject(CmatNavigationService);\r\n private readonly _cmatUtilsService = inject(CmatUtilsService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _animationsEnabled: boolean = false;\r\n private _asideOverlay: HTMLElement | null = null;\r\n private _asideOverlayClickDestroyFn: (() => void) | null = null;\r\n private _asideOverlayLeaveTimeoutId: number | null = null;\r\n private readonly _handleOverlayClick: () => void;\r\n private _hovered: boolean = false;\r\n private _overlay: HTMLElement | null = null;\r\n private _overlayClickDestroyFn: (() => void) | null = null;\r\n private _overlayLeaveTimeoutId: number | null = null;\r\n private _modeChangeTimeoutId: number | null = null;\r\n private _scrollStrategy: ScrollStrategy = this._scrollStrategyOptions.block();\r\n\r\n\r\n\r\n constructor() {\r\n this._handleOverlayClick = (): void => {\r\n this.close();\r\n };\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseenter(): void {\r\n this._enableAnimations();\r\n this._hovered = true;\r\n this._syncHostBindings();\r\n }\r\n @HostListener('mouseleave')\r\n onMouseleave(): void {\r\n this._enableAnimations();\r\n this._hovered = false;\r\n this._syncHostBindings();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('appearance' in changes) {\r\n this.appearanceChanged.emit(changes['appearance'].currentValue);\r\n }\r\n\r\n if ('inner' in changes) {\r\n this.inner = coerceBooleanProperty(changes['inner'].currentValue);\r\n }\r\n\r\n if ('mode' in changes) {\r\n const currentMode = changes['mode'].currentValue;\r\n const previousMode = changes['mode'].previousValue;\r\n\r\n this._disableAnimations();\r\n\r\n if (previousMode === 'over' && currentMode === 'side') {\r\n this._hideOverlay();\r\n }\r\n\r\n if (previousMode === 'side' && currentMode === 'over') {\r\n this.closeAside();\r\n\r\n if (this.opened) {\r\n this._showOverlay();\r\n }\r\n }\r\n\r\n this.modeChanged.emit(currentMode);\r\n\r\n this._modeChangeTimeoutId = window.setTimeout(() => {\r\n this._modeChangeTimeoutId = null;\r\n this._enableAnimations();\r\n }, 500);\r\n }\r\n\r\n if ('opened' in changes) {\r\n this.opened = coerceBooleanProperty(changes['opened'].currentValue);\r\n\r\n this._toggleOpened(this.opened);\r\n }\r\n\r\n if ('position' in changes) {\r\n this.positionChanged.emit(changes['position'].currentValue);\r\n }\r\n\r\n if ('transparentOverlay' in changes) {\r\n this.transparentOverlay = coerceBooleanProperty(changes['transparentOverlay'].currentValue);\r\n }\r\n\r\n this._syncHostBindings();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.name === '') {\r\n this.name = this._cmatUtilsService.randomId();\r\n }\r\n\r\n this._cmatNavigationService.registerComponent(this.name, this);\r\n\r\n this._router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n takeUntilDestroyed(this._destroyRef)\r\n )\r\n .subscribe(() => {\r\n if (this.mode === 'over' && this.opened) {\r\n this.close();\r\n }\r\n\r\n if (this.mode === 'side' && this.activeAsideItemId()) {\r\n this.closeAside();\r\n }\r\n });\r\n\r\n this._syncHostBindings();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (!this._navigationContentEl) {\r\n return;\r\n }\r\n\r\n const activeItem = this._navigationContentEl.nativeElement.querySelector('.cmat-vertical-navigation-item-active');\r\n if (activeItem) {\r\n if (activeItem.getBoundingClientRect().bottom\r\n <= (this._navigationContentEl.nativeElement.getBoundingClientRect().bottom - Math.abs(-120))) {\r\n return;\r\n }\r\n\r\n this._navigationContentEl.nativeElement.scrollTo({\r\n top: activeItem.getBoundingClientRect().top -\r\n this._navigationContentEl.nativeElement.getBoundingClientRect().top - 120, behavior: 'smooth'\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._forceCleanupOverlay();\r\n this._forceCleanupAsideOverlay();\r\n\r\n this.onCollapsableItemCollapsed.complete();\r\n this.onCollapsableItemExpanded.complete();\r\n\r\n if (this._modeChangeTimeoutId !== null) {\r\n clearTimeout(this._modeChangeTimeoutId);\r\n this._modeChangeTimeoutId = null;\r\n }\r\n\r\n this._cmatNavigationService.deregisterComponent(this.name);\r\n }\r\n refresh(): void {\r\n this.refreshToken.update(value => value + 1);\r\n }\r\n open(): void {\r\n this._setNavigationOpened(true);\r\n }\r\n close(): void {\r\n this._setNavigationOpened(false);\r\n }\r\n toggle(): void {\r\n if (this.opened) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n\r\n openAside(item: CmatNavigationItem): void {\r\n if (item.disabled || !item.id) {\r\n return;\r\n }\r\n\r\n this._setAsideActive(item);\r\n }\r\n\r\n closeAside(): void {\r\n this._setAsideActive(null);\r\n }\r\n toggleAside(item: CmatNavigationItem): void {\r\n if (this.activeAsideItemId() === item.id) {\r\n this.closeAside();\r\n }\r\n else {\r\n this.openAside(item);\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: CmatNavigationItem): string | number {\r\n return item.id ?? index;\r\n }\r\n\r\n selectItem(item: CmatNavigationItem): void {\r\n this.editSelectedItemChanged.emit(item);\r\n }\r\n\r\n goToRouterLink(link: string): void {\r\n this.routeReuseStrategyEmitUrl.emit(link);\r\n }\r\n\r\n isItemVisible(item: CmatNavigationItem): boolean {\r\n return !item.hidden?.(item);\r\n }\r\n private _removeOverlayElement(overlay: HTMLElement): void {\r\n if (this._overlayClickDestroyFn) {\r\n this._overlayClickDestroyFn();\r\n this._overlayClickDestroyFn = null;\r\n }\r\n overlay.parentNode?.removeChild(overlay);\r\n if (this._overlay === overlay) {\r\n this._overlay = null;\r\n }\r\n }\r\n\r\n private _removeAsideOverlayElement(asideOverlay: HTMLElement): void {\r\n if (this._asideOverlayClickDestroyFn) {\r\n this._asideOverlayClickDestroyFn();\r\n this._asideOverlayClickDestroyFn = null;\r\n }\r\n asideOverlay.parentNode?.removeChild(asideOverlay);\r\n if (this._asideOverlay === asideOverlay) {\r\n this._asideOverlay = null;\r\n }\r\n }\r\n\r\n private _forceCleanupOverlay(): void {\r\n this._clearOverlayLeaveTimeout();\r\n if (this._overlay) {\r\n this._removeOverlayElement(this._overlay);\r\n }\r\n this._scrollStrategy.disable();\r\n }\r\n\r\n private _forceCleanupAsideOverlay(): void {\r\n this._clearAsideOverlayLeaveTimeout();\r\n if (this._asideOverlay) {\r\n this._removeAsideOverlayElement(this._asideOverlay);\r\n }\r\n this.asideOverlayVisible.set(false);\r\n }\r\n\r\n private _clearOverlayLeaveTimeout(): void {\r\n if (this._overlayLeaveTimeoutId !== null) {\r\n clearTimeout(this._overlayLeaveTimeoutId);\r\n this._overlayLeaveTimeoutId = null;\r\n }\r\n }\r\n\r\n private _clearAsideOverlayLeaveTimeout(): void {\r\n if (this._asideOverlayLeaveTimeoutId !== null) {\r\n clearTimeout(this._asideOverlayLeaveTimeoutId);\r\n this._asideOverlayLeaveTimeoutId = null;\r\n }\r\n }\r\n\r\n private _enableAnimations(): void {\r\n if (this._animationsEnabled) {\r\n return;\r\n }\r\n\r\n this._animationsEnabled = true;\r\n this._syncHostBindings();\r\n }\r\n private _disableAnimations(): void {\r\n if (!this._animationsEnabled) {\r\n return;\r\n }\r\n\r\n this._animationsEnabled = false;\r\n this._syncHostBindings();\r\n }\r\n private _showOverlay(): void {\r\n if (this._overlay) {\r\n return;\r\n }\r\n\r\n this._overlay = this._renderer2.createElement('div');\r\n\r\n if (this._overlay) {\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay');\r\n\r\n if (this.transparentOverlay) {\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay-transparent');\r\n }\r\n\r\n const parentEl = this._elementRef.nativeElement.parentElement;\r\n if (parentEl) {\r\n this._renderer2.appendChild(parentEl, this._overlay);\r\n }\r\n\r\n this._scrollStrategy.enable();\r\n\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay-enter');\r\n\r\n this._overlayClickDestroyFn = this._renderer2.listen(this._overlay, 'click', this._handleOverlayClick);\r\n }\r\n }\r\n private _hideOverlay(): void {\r\n if (!this._overlay) {\r\n return;\r\n }\r\n\r\n this._overlay.classList.remove('cmat-vertical-navigation-overlay-enter');\r\n\r\n const overlay = this._overlay;\r\n const handleAnimationEnd = (event: AnimationEvent): void => {\r\n if (event.animationName === 'vertical-navigation-overlay-leave') {\r\n overlay.removeEventListener('animationend', handleAnimationEnd);\r\n this._clearOverlayLeaveTimeout();\r\n this._removeOverlayElement(overlay);\r\n this._scrollStrategy.disable();\r\n }\r\n };\r\n\r\n overlay.addEventListener('animationend', handleAnimationEnd);\r\n this._overlay.classList.add('cmat-vertical-navigation-overlay-leave');\r\n\r\n this._overlayLeaveTimeoutId = window.setTimeout(() => {\r\n this._overlayLeaveTimeoutId = null;\r\n overlay.removeEventListener('animationend', handleAnimationEnd);\r\n this._removeOverlayElement(overlay);\r\n this._scrollStrategy.disable();\r\n }, 400);\r\n }\r\n\r\n private _showAsideOverlay(): void {\r\n if (this._asideOverlay) {\r\n this._asideOverlay.classList.remove('cmat-vertical-navigation-aside-overlay-leave');\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay-enter');\r\n this.asideOverlayVisible.set(true);\r\n return;\r\n }\r\n\r\n this._asideOverlay = this._renderer2.createElement('div');\r\n\r\n if (this._asideOverlay) {\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay');\r\n\r\n const parentEl = this._elementRef.nativeElement.parentElement;\r\n if (parentEl) {\r\n this._renderer2.appendChild(parentEl, this._asideOverlay);\r\n }\r\n\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay-enter');\r\n\r\n this._asideOverlayClickDestroyFn = this._renderer2.listen(this._asideOverlay, 'click', () => {\r\n this.closeAside();\r\n });\r\n\r\n this.asideOverlayVisible.set(true);\r\n }\r\n }\r\n private _hideAsideOverlay(): void {\r\n if (!this._asideOverlay) {\r\n return;\r\n }\r\n\r\n this._asideOverlay.classList.remove('cmat-vertical-navigation-aside-overlay-enter');\r\n\r\n const asideOverlay = this._asideOverlay;\r\n const handleAnimationEnd = (event: AnimationEvent): void => {\r\n if (event.animationName === 'vertical-navigation-overlay-leave') {\r\n asideOverlay.removeEventListener('animationend', handleAnimationEnd);\r\n this._clearAsideOverlayLeaveTimeout();\r\n this._removeAsideOverlayElement(asideOverlay);\r\n this.asideOverlayVisible.set(false);\r\n }\r\n };\r\n\r\n asideOverlay.addEventListener('animationend', handleAnimationEnd);\r\n this._asideOverlay.classList.add('cmat-vertical-navigation-aside-overlay-leave');\r\n\r\n this._asideOverlayLeaveTimeoutId = window.setTimeout(() => {\r\n this._asideOverlayLeaveTimeoutId = null;\r\n asideOverlay.removeEventListener('animationend', handleAnimationEnd);\r\n this._removeAsideOverlayElement(asideOverlay);\r\n this.asideOverlayVisible.set(false);\r\n }, 400);\r\n }\r\n\r\n private _toggleOpened(open: boolean): void {\r\n this._setNavigationOpened(open);\r\n }\r\n\r\n private _setNavigationOpened(open: boolean): void {\r\n if (this.opened === open) {\r\n return;\r\n }\r\n\r\n if (!open) {\r\n this.closeAside();\r\n }\r\n\r\n this._applyOpenedState(open);\r\n }\r\n\r\n private _applyOpenedState(open: boolean): void {\r\n this.opened = open;\r\n\r\n this._enableAnimations();\r\n\r\n if (this.mode === 'over') {\r\n if (this.opened) {\r\n this._showOverlay();\r\n }\r\n else {\r\n this._hideOverlay();\r\n }\r\n }\r\n\r\n this.openedChanged.emit(open);\r\n this._syncHostBindings();\r\n }\r\n\r\n private _setAsideActive(item: CmatNavigationItem | null): void {\r\n if (this.activeAsideItemId() === (item?.id ?? null)) {\r\n return;\r\n }\r\n\r\n if (item?.id ?? null) {\r\n this.activeAsideItemId.set(item?.id ?? null);\r\n this._showAsideOverlay();\r\n } else {\r\n this._hideAsideOverlay();\r\n this.activeAsideItemId.set(null);\r\n }\r\n\r\n }\r\n\r\n private _syncHostBindings(): void {\r\n this.classList = [\r\n this._animationsEnabled ? 'cmat-vertical-navigation-animations-enabled' : '',\r\n `cmat-vertical-navigation-appearance-${this.appearance}`,\r\n this._hovered ? 'cmat-vertical-navigation-hover' : '',\r\n this.inner ? 'cmat-vertical-navigation-inner' : '',\r\n this.mode === 'over' ? 'cmat-vertical-navigation-mode-over' : '',\r\n this.mode === 'side' ? 'cmat-vertical-navigation-mode-side' : '',\r\n this.opened ? 'cmat-vertical-navigation-opened' : '',\r\n this.position === 'left' ? 'cmat-vertical-navigation-position-left' : '',\r\n this.position === 'right' ? 'cmat-vertical-navigation-position-right' : ''\r\n ].filter(Boolean).join(' ');\r\n\r\n this.styleList = `visibility: ${this.opened ? 'visible' : 'hidden'};`;\r\n }\r\n}","<div class=\"cmat-vertical-navigation-wrapper\" [attr.data-refresh]=\"refreshToken()\">\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n \r\n <div #navigationContent class=\"cmat-vertical-navigation-content py-2 overflow-y-auto scrollbar-custom\">\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n \r\n @for (item of navigation; track trackByFn($index, item)) {\r\n @let isVisible = isItemVisible(item);\r\n @if (isVisible) {\r\n @switch (item.type) {\r\n @case ('aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId()\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (click)=\"toggleAside(item)\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n @case ('basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n @case ('collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n [autoCollapse]=\"autoCollapse\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"\r\n (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n @case ('divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n @case ('group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [editState]=\"editState\" [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\"\r\n (editSelectedItemChanged)=\"selectItem($event)\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n @case ('spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\"\r\n (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n \r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n@if (activeAsideItemId()) {\r\n<div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto scrollbar-custom\"\r\n [animate.enter]=\"position === 'left'?'fade-in-left-animation':'fade-in-right-animation'\"\r\n [animate.leave]=\"position === 'left'?'fade-out-left-animation':'fade-out-right-animation'\">\r\n \r\n @for (item of navigation; track trackByFn($index, item)) {\r\n @let isVisible = isItemVisible(item);\r\n @if (isVisible) {\r\n @if (item.type === 'aside' && item.id === activeAsideItemId()) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\"\r\n [hasRouteReuseStrategy]=\"hasRouteReuseStrategy\" (routeReuseStrategyEmitUrl)=\"goToRouterLink($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n</div>\r\n}","import { IsActiveMatchOptions } from '@angular/router';\r\n\r\nexport class CmatNavigationItem {\r\n id?: string;\r\n title?: string;\r\n subTitle?: string;\r\n type:\r\n | 'aside'\r\n | 'basic'\r\n | 'collapsable'\r\n | 'divider'\r\n | 'group'\r\n | 'spacer';\r\n hidden?: (item: CmatNavigationItem) => boolean;\r\n active?: boolean;\r\n disabled?: boolean;\r\n tooltip?: string;\r\n link?: string;\r\n externalLink?: boolean;\r\n target?:\r\n | '_blank'\r\n | '_self'\r\n | '_parent'\r\n | '_top';\r\n exactMatch?: boolean;\r\n isActiveMatchOptions?: IsActiveMatchOptions;\r\n function?: (item: CmatNavigationItem) => void;\r\n classes?: {\r\n title?: string;\r\n subtitle?: string;\r\n icon?: string;\r\n wrapper?: string;\r\n };\r\n icon?: string;\r\n badge?: {\r\n title?: string;\r\n classes?: string;\r\n };\r\n children?: CmatNavigationItem[];\r\n meta?: unknown;\r\n permission?: unknown;\r\n}\r\n\r\nexport interface CmatNavigationComponent {\r\n close(): void;\r\n open(): void;\r\n toggle(): void;\r\n}\r\n\r\nexport type CmatVerticalNavigationAppearance =\r\n | 'default'\r\n | 'compact'\r\n | 'dense'\r\n | 'thin';\r\n\r\nexport type CmatVerticalNavigationMode =\r\n | 'over'\r\n | 'side';\r\n\r\nexport type CmatVerticalNavigationPosition =\r\n | 'left'\r\n | 'right';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1"],"mappings":"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"}
|