New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@ppwcode/ng-wireframe

Package Overview
Dependencies
Maintainers
4
Versions
129
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ppwcode/ng-wireframe - npm Package Compare versions

Comparing version
21.1.0
to
21.1.1
+8
-8
fesm2022/ppwcode-ng-wireframe.mjs

@@ -45,7 +45,7 @@ import * as i0 from '@angular/core';

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PaginationBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.9", type: PaginationBarComponent, isStandalone: true, selector: "ppw-pagination-bar", inputs: { pagedAsyncResult: { classPropertyName: "pagedAsyncResult", publicName: "pagedAsyncResult", isSignal: true, isRequired: true, transformFunction: null }, hidePageSize: { classPropertyName: "hidePageSize", publicName: "hidePageSize", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButtons: { classPropertyName: "showFirstLastButtons", publicName: "showFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "page" }, ngImport: i0, template: "<mat-paginator\r\n (page)=\"handlePageEvent($event)\"\r\n [length]=\"entity().totalCount\"\r\n [pageSize]=\"entity().pageSize\"\r\n [pageIndex]=\"entity().page - 1\"\r\n [pageSizeOptions]=\"pageSizeOptions()\"\r\n [showFirstLastButtons]=\"showFirstLastButtons()\"\r\n [hidePageSize]=\"hidePageSize()\"\r\n>\r\n</mat-paginator>\r\n", dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.9", type: PaginationBarComponent, isStandalone: true, selector: "ppw-pagination-bar", inputs: { pagedAsyncResult: { classPropertyName: "pagedAsyncResult", publicName: "pagedAsyncResult", isSignal: true, isRequired: true, transformFunction: null }, hidePageSize: { classPropertyName: "hidePageSize", publicName: "hidePageSize", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButtons: { classPropertyName: "showFirstLastButtons", publicName: "showFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "page" }, ngImport: i0, template: "<mat-paginator\n (page)=\"handlePageEvent($event)\"\n [length]=\"entity().totalCount\"\n [pageSize]=\"entity().pageSize\"\n [pageIndex]=\"entity().page - 1\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [hidePageSize]=\"hidePageSize()\"\n>\n</mat-paginator>\n", dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: PaginationBarComponent, decorators: [{
type: Component,
args: [{ selector: 'ppw-pagination-bar', imports: [MatPaginatorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-paginator\r\n (page)=\"handlePageEvent($event)\"\r\n [length]=\"entity().totalCount\"\r\n [pageSize]=\"entity().pageSize\"\r\n [pageIndex]=\"entity().page - 1\"\r\n [pageSizeOptions]=\"pageSizeOptions()\"\r\n [showFirstLastButtons]=\"showFirstLastButtons()\"\r\n [hidePageSize]=\"hidePageSize()\"\r\n>\r\n</mat-paginator>\r\n" }]
args: [{ selector: 'ppw-pagination-bar', imports: [MatPaginatorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-paginator\n (page)=\"handlePageEvent($event)\"\n [length]=\"entity().totalCount\"\n [pageSize]=\"entity().pageSize\"\n [pageIndex]=\"entity().page - 1\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [hidePageSize]=\"hidePageSize()\"\n>\n</mat-paginator>\n" }]
}], propDecorators: { pagedAsyncResult: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagedAsyncResult", required: true }] }], hidePageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidePageSize", required: false }] }], showFirstLastButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastButtons", required: false }] }], pageSizeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeOptions", required: false }] }], page: [{ type: i0.Output, args: ["page"] }] } });

@@ -122,7 +122,7 @@

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: LeftSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: LeftSidenavComponent, isStandalone: true, selector: "ppw-left-sidenav", inputs: { navigationItems: { classPropertyName: "navigationItems", publicName: "navigationItems", isSignal: true, isRequired: true, transformFunction: null }, showMenuCloseButton: { classPropertyName: "showMenuCloseButton", publicName: "showMenuCloseButton", isSignal: true, isRequired: false, transformFunction: null }, logoUrl: { classPropertyName: "logoUrl", publicName: "logoUrl", isSignal: true, isRequired: false, transformFunction: null }, logoHeight: { classPropertyName: "logoHeight", publicName: "logoHeight", isSignal: true, isRequired: false, transformFunction: null }, logoWidth: { classPropertyName: "logoWidth", publicName: "logoWidth", isSignal: true, isRequired: false, transformFunction: null }, centerLogo: { classPropertyName: "centerLogo", publicName: "centerLogo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeSidebar: "closeSidebar", navigated: "navigated" }, usesOnChanges: true, ngImport: i0, template: "@if (showMenuCloseButton()) {\r\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n}\r\n\r\n<div class=\"ppw-sidenav-content-wrapper\">\r\n <div class=\"ppw-sidenav-top-content-wrapper\">\r\n @if (logoUrl()) {\r\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\r\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\r\n </div>\r\n }\r\n <div class=\"ppw-sidenav-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\r\n </div>\r\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\r\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\r\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\r\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\r\n <button\r\n type=\"button\"\r\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\r\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\r\n (click)=\"onClickNavigationItem(navigationItem)\"\r\n >\r\n <span class=\"ppw-sidenav-navigation-item-link\">\r\n @if (navigationItem.icon) {\r\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\r\n }\r\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\r\n @if (navigationItem.isExternalLink) {\r\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\r\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\r\n </span>\r\n }\r\n </span>\r\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\r\n <i\r\n class=\"fa-solid\"\r\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\r\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\r\n ></i>\r\n }\r\n </button>\r\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\r\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\r\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n navigationItemTemplate;\r\n context: { navigationItem: child, level: (level ?? 1) + 1 }\r\n \"\r\n ></ng-container>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host .ppw-sidenav-content-wrapper{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;align-content:space-between;height:100%;gap:8px}:host .ppw-sidenav-content-wrapper .ppw-sidenav-top-content-wrapper{display:flex;flex-direction:column;flex-grow:1}:host .ppw-sidenav-content-wrapper .ppw-sidenav-bottom-content-wrapper{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-end;padding:16px}.flex-column{display:flex;flex-direction:column}.ppw-sidenav-close-button{border:none;padding:1rem;background-color:transparent;display:block;position:absolute;right:0;color:var(--ppw-sidenav-close-button-color)}.ppw-sidenav-close-button:hover{cursor:pointer;background-color:#0000000a}.ppw-sidenav-close-button:focus-visible{outline:unset}.ppw-sidenav-navigation-item{background:transparent;color:var(--ppw-sidenav-navigation-item-text-color, white);display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:var(--ppw-sidenav-navigation-item-margin, 4px);border:none;border-radius:var(--ppw-sidenav-navigation-item-radius, 8px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-text{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-external-icon{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px);color:var(--ppw-sidenav-navigation-item-external-icon-color, var(--ppw-sidenav-navigation-item-text-color, white))}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-link{display:flex;flex-direction:row;align-items:center;padding:8px}.ppw-sidenav-navigation-item i{width:32px}.ppw-sidenav-navigation-item i.ppw-sidenav-navigation-item-icon{color:var(--ppw-sidenav-navigation-item-icon-color);font-size:var(--ppw-sidenav-navigation-item-icon-font-size, 16px)}.ppw-sidenav-navigation-item:hover{background:var(--ppw-sidenav-navigation-item-hover-background-color, rgba(255, 255, 255, .15));cursor:pointer}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-1{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 0)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-2{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 1)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-3{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 2)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-4{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 3)}.ppw-sidenav-navigation-item-children-wrapper{margin:var(--ppw-sidenav-navigation-item-children-wrapper-margin, 0);padding:var(--ppw-sidenav-navigation-item-children-wrapper-padding, 0);border:var(--ppw-sidenav-navigation-item-children-wrapper-border, none);border-radius:var(--ppw-sidenav-navigation-item-children-wrapper-border-radius, 0);background:var(--ppw-sidenav-navigation-item-children-wrapper-background, none)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatListModule }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: LeftSidenavComponent, isStandalone: true, selector: "ppw-left-sidenav", inputs: { navigationItems: { classPropertyName: "navigationItems", publicName: "navigationItems", isSignal: true, isRequired: true, transformFunction: null }, showMenuCloseButton: { classPropertyName: "showMenuCloseButton", publicName: "showMenuCloseButton", isSignal: true, isRequired: false, transformFunction: null }, logoUrl: { classPropertyName: "logoUrl", publicName: "logoUrl", isSignal: true, isRequired: false, transformFunction: null }, logoHeight: { classPropertyName: "logoHeight", publicName: "logoHeight", isSignal: true, isRequired: false, transformFunction: null }, logoWidth: { classPropertyName: "logoWidth", publicName: "logoWidth", isSignal: true, isRequired: false, transformFunction: null }, centerLogo: { classPropertyName: "centerLogo", publicName: "centerLogo", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeSidebar: "closeSidebar", navigated: "navigated" }, usesOnChanges: true, ngImport: i0, template: "@if (showMenuCloseButton()) {\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\n <mat-icon>close</mat-icon>\n </button>\n}\n\n<div class=\"ppw-sidenav-content-wrapper\">\n <div class=\"ppw-sidenav-top-content-wrapper\">\n @if (logoUrl()) {\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\n </div>\n }\n <div class=\"ppw-sidenav-top-content\">\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\n </div>\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\n }\n </div>\n </div>\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\n </div>\n</div>\n\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\n <button\n type=\"button\"\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\n (click)=\"onClickNavigationItem(navigationItem)\"\n >\n <span class=\"ppw-sidenav-navigation-item-link\">\n @if (navigationItem.icon) {\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\n }\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\n @if (navigationItem.isExternalLink) {\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </span>\n }\n </span>\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\n <i\n class=\"fa-solid\"\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\n ></i>\n }\n </button>\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\n <ng-container\n *ngTemplateOutlet=\"\n navigationItemTemplate;\n context: { navigationItem: child, level: (level ?? 1) + 1 }\n \"\n ></ng-container>\n }\n </div>\n }\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host .ppw-sidenav-content-wrapper{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;align-content:space-between;height:100%;gap:8px}:host .ppw-sidenav-content-wrapper .ppw-sidenav-top-content-wrapper{display:flex;flex-direction:column;flex-grow:1}:host .ppw-sidenav-content-wrapper .ppw-sidenav-bottom-content-wrapper{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-end;padding:16px}.flex-column{display:flex;flex-direction:column}.ppw-sidenav-close-button{border:none;padding:1rem;background-color:transparent;display:block;position:absolute;right:0;color:var(--ppw-sidenav-close-button-color)}.ppw-sidenav-close-button:hover{cursor:pointer;background-color:#0000000a}.ppw-sidenav-close-button:focus-visible{outline:unset}.ppw-sidenav-navigation-item{background:transparent;color:var(--ppw-sidenav-navigation-item-text-color, white);display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:var(--ppw-sidenav-navigation-item-margin, 4px);border:none;border-radius:var(--ppw-sidenav-navigation-item-radius, 8px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-text{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-external-icon{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px);color:var(--ppw-sidenav-navigation-item-external-icon-color, var(--ppw-sidenav-navigation-item-text-color, white))}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-link{display:flex;flex-direction:row;align-items:center;padding:8px}.ppw-sidenav-navigation-item i{width:32px}.ppw-sidenav-navigation-item i.ppw-sidenav-navigation-item-icon{color:var(--ppw-sidenav-navigation-item-icon-color);font-size:var(--ppw-sidenav-navigation-item-icon-font-size, 16px)}.ppw-sidenav-navigation-item:hover{background:var(--ppw-sidenav-navigation-item-hover-background-color, rgba(255, 255, 255, .15));cursor:pointer}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-1{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 0)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-2{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 1)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-3{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 2)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-4{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 3)}.ppw-sidenav-navigation-item-children-wrapper{margin:var(--ppw-sidenav-navigation-item-children-wrapper-margin, 0);padding:var(--ppw-sidenav-navigation-item-children-wrapper-padding, 0);border:var(--ppw-sidenav-navigation-item-children-wrapper-border, none);border-radius:var(--ppw-sidenav-navigation-item-children-wrapper-border-radius, 0);background:var(--ppw-sidenav-navigation-item-children-wrapper-background, none)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatListModule }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: LeftSidenavComponent, decorators: [{
type: Component,
args: [{ selector: 'ppw-left-sidenav', imports: [CommonModule, MatIconModule, MatListModule, TranslatePipe, NgOptimizedImage], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (showMenuCloseButton()) {\r\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n}\r\n\r\n<div class=\"ppw-sidenav-content-wrapper\">\r\n <div class=\"ppw-sidenav-top-content-wrapper\">\r\n @if (logoUrl()) {\r\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\r\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\r\n </div>\r\n }\r\n <div class=\"ppw-sidenav-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\r\n </div>\r\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\r\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\r\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\r\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\r\n <button\r\n type=\"button\"\r\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\r\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\r\n (click)=\"onClickNavigationItem(navigationItem)\"\r\n >\r\n <span class=\"ppw-sidenav-navigation-item-link\">\r\n @if (navigationItem.icon) {\r\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\r\n }\r\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\r\n @if (navigationItem.isExternalLink) {\r\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\r\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\r\n </span>\r\n }\r\n </span>\r\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\r\n <i\r\n class=\"fa-solid\"\r\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\r\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\r\n ></i>\r\n }\r\n </button>\r\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\r\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\r\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n navigationItemTemplate;\r\n context: { navigationItem: child, level: (level ?? 1) + 1 }\r\n \"\r\n ></ng-container>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host .ppw-sidenav-content-wrapper{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;align-content:space-between;height:100%;gap:8px}:host .ppw-sidenav-content-wrapper .ppw-sidenav-top-content-wrapper{display:flex;flex-direction:column;flex-grow:1}:host .ppw-sidenav-content-wrapper .ppw-sidenav-bottom-content-wrapper{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-end;padding:16px}.flex-column{display:flex;flex-direction:column}.ppw-sidenav-close-button{border:none;padding:1rem;background-color:transparent;display:block;position:absolute;right:0;color:var(--ppw-sidenav-close-button-color)}.ppw-sidenav-close-button:hover{cursor:pointer;background-color:#0000000a}.ppw-sidenav-close-button:focus-visible{outline:unset}.ppw-sidenav-navigation-item{background:transparent;color:var(--ppw-sidenav-navigation-item-text-color, white);display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:var(--ppw-sidenav-navigation-item-margin, 4px);border:none;border-radius:var(--ppw-sidenav-navigation-item-radius, 8px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-text{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-external-icon{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px);color:var(--ppw-sidenav-navigation-item-external-icon-color, var(--ppw-sidenav-navigation-item-text-color, white))}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-link{display:flex;flex-direction:row;align-items:center;padding:8px}.ppw-sidenav-navigation-item i{width:32px}.ppw-sidenav-navigation-item i.ppw-sidenav-navigation-item-icon{color:var(--ppw-sidenav-navigation-item-icon-color);font-size:var(--ppw-sidenav-navigation-item-icon-font-size, 16px)}.ppw-sidenav-navigation-item:hover{background:var(--ppw-sidenav-navigation-item-hover-background-color, rgba(255, 255, 255, .15));cursor:pointer}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-1{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 0)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-2{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 1)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-3{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 2)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-4{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 3)}.ppw-sidenav-navigation-item-children-wrapper{margin:var(--ppw-sidenav-navigation-item-children-wrapper-margin, 0);padding:var(--ppw-sidenav-navigation-item-children-wrapper-padding, 0);border:var(--ppw-sidenav-navigation-item-children-wrapper-border, none);border-radius:var(--ppw-sidenav-navigation-item-children-wrapper-border-radius, 0);background:var(--ppw-sidenav-navigation-item-children-wrapper-background, none)}\n"] }]
args: [{ selector: 'ppw-left-sidenav', imports: [CommonModule, MatIconModule, MatListModule, TranslatePipe, NgOptimizedImage], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (showMenuCloseButton()) {\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\n <mat-icon>close</mat-icon>\n </button>\n}\n\n<div class=\"ppw-sidenav-content-wrapper\">\n <div class=\"ppw-sidenav-top-content-wrapper\">\n @if (logoUrl()) {\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\n </div>\n }\n <div class=\"ppw-sidenav-top-content\">\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\n </div>\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\n }\n </div>\n </div>\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\n </div>\n</div>\n\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\n <button\n type=\"button\"\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\n (click)=\"onClickNavigationItem(navigationItem)\"\n >\n <span class=\"ppw-sidenav-navigation-item-link\">\n @if (navigationItem.icon) {\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\n }\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\n @if (navigationItem.isExternalLink) {\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </span>\n }\n </span>\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\n <i\n class=\"fa-solid\"\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\n ></i>\n }\n </button>\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\n <ng-container\n *ngTemplateOutlet=\"\n navigationItemTemplate;\n context: { navigationItem: child, level: (level ?? 1) + 1 }\n \"\n ></ng-container>\n }\n </div>\n }\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;height:100%}:host .ppw-sidenav-content-wrapper{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;align-content:space-between;height:100%;gap:8px}:host .ppw-sidenav-content-wrapper .ppw-sidenav-top-content-wrapper{display:flex;flex-direction:column;flex-grow:1}:host .ppw-sidenav-content-wrapper .ppw-sidenav-bottom-content-wrapper{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-end;padding:16px}.flex-column{display:flex;flex-direction:column}.ppw-sidenav-close-button{border:none;padding:1rem;background-color:transparent;display:block;position:absolute;right:0;color:var(--ppw-sidenav-close-button-color)}.ppw-sidenav-close-button:hover{cursor:pointer;background-color:#0000000a}.ppw-sidenav-close-button:focus-visible{outline:unset}.ppw-sidenav-navigation-item{background:transparent;color:var(--ppw-sidenav-navigation-item-text-color, white);display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:var(--ppw-sidenav-navigation-item-margin, 4px);border:none;border-radius:var(--ppw-sidenav-navigation-item-radius, 8px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-text{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px)}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-external-icon{font-size:var(--ppw-sidenav-navigation-item-text-font-size, 16px);color:var(--ppw-sidenav-navigation-item-external-icon-color, var(--ppw-sidenav-navigation-item-text-color, white))}.ppw-sidenav-navigation-item .ppw-sidenav-navigation-item-link{display:flex;flex-direction:row;align-items:center;padding:8px}.ppw-sidenav-navigation-item i{width:32px}.ppw-sidenav-navigation-item i.ppw-sidenav-navigation-item-icon{color:var(--ppw-sidenav-navigation-item-icon-color);font-size:var(--ppw-sidenav-navigation-item-icon-font-size, 16px)}.ppw-sidenav-navigation-item:hover{background:var(--ppw-sidenav-navigation-item-hover-background-color, rgba(255, 255, 255, .15));cursor:pointer}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-1{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 0)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-2{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 1)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-3{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 2)}.ppw-sidenav-navigation-item.ppw-sidenav-navigation-item-level-4{margin-left:calc(var(--ppw-sidenav-navigation-item-child-margin-left, 12px) * 3)}.ppw-sidenav-navigation-item-children-wrapper{margin:var(--ppw-sidenav-navigation-item-children-wrapper-margin, 0);padding:var(--ppw-sidenav-navigation-item-children-wrapper-padding, 0);border:var(--ppw-sidenav-navigation-item-children-wrapper-border, none);border-radius:var(--ppw-sidenav-navigation-item-children-wrapper-border-radius, 0);background:var(--ppw-sidenav-navigation-item-children-wrapper-background, none)}\n"] }]
}], propDecorators: { navigationItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "navigationItems", required: true }] }], showMenuCloseButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMenuCloseButton", required: false }] }], logoUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoUrl", required: false }] }], logoHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoHeight", required: false }] }], logoWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoWidth", required: false }] }], centerLogo: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerLogo", required: false }] }], closeSidebar: [{ type: i0.Output, args: ["closeSidebar"] }], navigated: [{ type: i0.Output, args: ["navigated"] }] } });

@@ -160,7 +160,7 @@

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ToolbarComponent, isStandalone: true, selector: "ppw-toolbar", inputs: { showMenuToggle: { classPropertyName: "showMenuToggle", publicName: "showMenuToggle", isSignal: true, isRequired: false, transformFunction: null }, isSidenavOpen: { classPropertyName: "isSidenavOpen", publicName: "isSidenavOpen", isSignal: true, isRequired: false, transformFunction: null }, showPageTitle: { classPropertyName: "showPageTitle", publicName: "showPageTitle", isSignal: true, isRequired: false, transformFunction: null }, toolbarHeightPx: { classPropertyName: "toolbarHeightPx", publicName: "toolbarHeightPx", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleSidebar: "toggleSidebar" }, ngImport: i0, template: "<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\r\n <div class=\"ppw-toolbar-left-section align-items-center\">\r\n @if (showMenuToggle()) {\r\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\r\n @if (!isSidenavOpen()) {\r\n <mat-icon>menu</mat-icon>\r\n } @else {\r\n <mat-icon>close</mat-icon>\r\n }\r\n </button>\r\n }\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n @if (showPageTitle() && title()) {\r\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\r\n }\r\n </div>\r\n <div class=\"ppw-toolbar-right-section padding-8\">\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ppw-toolbar{display:flex;justify-content:space-between;background:var(--ppw-toolbar-background);border-bottom:var(--ppw-toolbar-border-bottom, 1px solid rgba(0, 0, 0, .12));box-shadow:var(--ppw-toolbar-box-shadow, rgba(100, 100, 111, .2) 0 7px 29px 0)}.ppw-toolbar .ppw-toolbar-button{border:none;display:inline-flex;align-items:center;justify-content:center;padding:var(--ppw-toolbar-button-padding, 1rem);background:var(--ppw-toolbar-button-background, transparent);color:var(--ppw-toolbar-button-text-color);gap:5px}.ppw-toolbar .ppw-toolbar-button:hover{cursor:pointer;background-color:var(--ppw-toolbar-button-hover-background, rgba(0, 0, 0, .04));color:var(--ppw-toolbar-button-hover-text-color)}.ppw-toolbar .ppw-toolbar-button:focus-visible{outline:unset}.ppw-toolbar .ppw-toolbar-left-section,.ppw-toolbar .ppw-toolbar-right-section{display:flex;flex-direction:row;align-items:center;gap:8px}.ppw-toolbar .ppw-toolbar-left-section .ppw-toolbar-page-title,.ppw-toolbar .ppw-toolbar-right-section .ppw-toolbar-page-title{padding:var(--ppw-toolbar-page-title-padding, 16px 8px);font-size:var(--ppw-toolbar-page-title-font-size, 1.15em);color:var(--ppw-toolbar-page-title-text-color)}.ppw-toolbar .ppw-toolbar-right-section{margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ToolbarComponent, isStandalone: true, selector: "ppw-toolbar", inputs: { showMenuToggle: { classPropertyName: "showMenuToggle", publicName: "showMenuToggle", isSignal: true, isRequired: false, transformFunction: null }, isSidenavOpen: { classPropertyName: "isSidenavOpen", publicName: "isSidenavOpen", isSignal: true, isRequired: false, transformFunction: null }, showPageTitle: { classPropertyName: "showPageTitle", publicName: "showPageTitle", isSignal: true, isRequired: false, transformFunction: null }, toolbarHeightPx: { classPropertyName: "toolbarHeightPx", publicName: "toolbarHeightPx", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleSidebar: "toggleSidebar" }, ngImport: i0, template: "<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\n <div class=\"ppw-toolbar-left-section align-items-center\">\n @if (showMenuToggle()) {\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\n @if (!isSidenavOpen()) {\n <mat-icon>menu</mat-icon>\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n @if (showPageTitle() && title()) {\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\n }\n </div>\n <div class=\"ppw-toolbar-right-section padding-8\">\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </div>\n</div>\n", styles: [".ppw-toolbar{display:flex;justify-content:space-between;background:var(--ppw-toolbar-background);border-bottom:var(--ppw-toolbar-border-bottom, 1px solid rgba(0, 0, 0, .12));box-shadow:var(--ppw-toolbar-box-shadow, rgba(100, 100, 111, .2) 0 7px 29px 0)}.ppw-toolbar .ppw-toolbar-button{border:none;display:inline-flex;align-items:center;justify-content:center;padding:var(--ppw-toolbar-button-padding, 1rem);background:var(--ppw-toolbar-button-background, transparent);color:var(--ppw-toolbar-button-text-color);gap:5px}.ppw-toolbar .ppw-toolbar-button:hover{cursor:pointer;background-color:var(--ppw-toolbar-button-hover-background, rgba(0, 0, 0, .04));color:var(--ppw-toolbar-button-hover-text-color)}.ppw-toolbar .ppw-toolbar-button:focus-visible{outline:unset}.ppw-toolbar .ppw-toolbar-left-section,.ppw-toolbar .ppw-toolbar-right-section{display:flex;flex-direction:row;align-items:center;gap:8px}.ppw-toolbar .ppw-toolbar-left-section .ppw-toolbar-page-title,.ppw-toolbar .ppw-toolbar-right-section .ppw-toolbar-page-title{padding:var(--ppw-toolbar-page-title-padding, 16px 8px);font-size:var(--ppw-toolbar-page-title-font-size, 1.15em);color:var(--ppw-toolbar-page-title-text-color)}.ppw-toolbar .ppw-toolbar-right-section{margin-right:8px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ToolbarComponent, decorators: [{
type: Component,
args: [{ selector: 'ppw-toolbar', imports: [MatIconModule, MatMenuModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\r\n <div class=\"ppw-toolbar-left-section align-items-center\">\r\n @if (showMenuToggle()) {\r\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\r\n @if (!isSidenavOpen()) {\r\n <mat-icon>menu</mat-icon>\r\n } @else {\r\n <mat-icon>close</mat-icon>\r\n }\r\n </button>\r\n }\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n @if (showPageTitle() && title()) {\r\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\r\n }\r\n </div>\r\n <div class=\"ppw-toolbar-right-section padding-8\">\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".ppw-toolbar{display:flex;justify-content:space-between;background:var(--ppw-toolbar-background);border-bottom:var(--ppw-toolbar-border-bottom, 1px solid rgba(0, 0, 0, .12));box-shadow:var(--ppw-toolbar-box-shadow, rgba(100, 100, 111, .2) 0 7px 29px 0)}.ppw-toolbar .ppw-toolbar-button{border:none;display:inline-flex;align-items:center;justify-content:center;padding:var(--ppw-toolbar-button-padding, 1rem);background:var(--ppw-toolbar-button-background, transparent);color:var(--ppw-toolbar-button-text-color);gap:5px}.ppw-toolbar .ppw-toolbar-button:hover{cursor:pointer;background-color:var(--ppw-toolbar-button-hover-background, rgba(0, 0, 0, .04));color:var(--ppw-toolbar-button-hover-text-color)}.ppw-toolbar .ppw-toolbar-button:focus-visible{outline:unset}.ppw-toolbar .ppw-toolbar-left-section,.ppw-toolbar .ppw-toolbar-right-section{display:flex;flex-direction:row;align-items:center;gap:8px}.ppw-toolbar .ppw-toolbar-left-section .ppw-toolbar-page-title,.ppw-toolbar .ppw-toolbar-right-section .ppw-toolbar-page-title{padding:var(--ppw-toolbar-page-title-padding, 16px 8px);font-size:var(--ppw-toolbar-page-title-font-size, 1.15em);color:var(--ppw-toolbar-page-title-text-color)}.ppw-toolbar .ppw-toolbar-right-section{margin-right:8px}\n"] }]
args: [{ selector: 'ppw-toolbar', imports: [MatIconModule, MatMenuModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\n <div class=\"ppw-toolbar-left-section align-items-center\">\n @if (showMenuToggle()) {\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\n @if (!isSidenavOpen()) {\n <mat-icon>menu</mat-icon>\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n @if (showPageTitle() && title()) {\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\n }\n </div>\n <div class=\"ppw-toolbar-right-section padding-8\">\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </div>\n</div>\n", styles: [".ppw-toolbar{display:flex;justify-content:space-between;background:var(--ppw-toolbar-background);border-bottom:var(--ppw-toolbar-border-bottom, 1px solid rgba(0, 0, 0, .12));box-shadow:var(--ppw-toolbar-box-shadow, rgba(100, 100, 111, .2) 0 7px 29px 0)}.ppw-toolbar .ppw-toolbar-button{border:none;display:inline-flex;align-items:center;justify-content:center;padding:var(--ppw-toolbar-button-padding, 1rem);background:var(--ppw-toolbar-button-background, transparent);color:var(--ppw-toolbar-button-text-color);gap:5px}.ppw-toolbar .ppw-toolbar-button:hover{cursor:pointer;background-color:var(--ppw-toolbar-button-hover-background, rgba(0, 0, 0, .04));color:var(--ppw-toolbar-button-hover-text-color)}.ppw-toolbar .ppw-toolbar-button:focus-visible{outline:unset}.ppw-toolbar .ppw-toolbar-left-section,.ppw-toolbar .ppw-toolbar-right-section{display:flex;flex-direction:row;align-items:center;gap:8px}.ppw-toolbar .ppw-toolbar-left-section .ppw-toolbar-page-title,.ppw-toolbar .ppw-toolbar-right-section .ppw-toolbar-page-title{padding:var(--ppw-toolbar-page-title-padding, 16px 8px);font-size:var(--ppw-toolbar-page-title-font-size, 1.15em);color:var(--ppw-toolbar-page-title-text-color)}.ppw-toolbar .ppw-toolbar-right-section{margin-right:8px}\n"] }]
}], propDecorators: { showMenuToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMenuToggle", required: false }] }], isSidenavOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSidenavOpen", required: false }] }], showPageTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPageTitle", required: false }] }], toolbarHeightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbarHeightPx", required: false }] }], toggleSidebar: [{ type: i0.Output, args: ["toggleSidebar"] }] } });

@@ -253,3 +253,3 @@

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: WireframeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: WireframeComponent, isStandalone: true, selector: "ppw-wireframe", inputs: { navigationItems: { classPropertyName: "navigationItems", publicName: "navigationItems", isSignal: true, isRequired: false, transformFunction: null }, sidebarOptions: { classPropertyName: "sidebarOptions", publicName: "sidebarOptions", isSignal: true, isRequired: false, transformFunction: null }, toolbarHeightPx: { classPropertyName: "toolbarHeightPx", publicName: "toolbarHeightPx", isSignal: true, isRequired: false, transformFunction: null }, hideSidenavWhenNoNavigationItems: { classPropertyName: "hideSidenavWhenNoNavigationItems", publicName: "hideSidenavWhenNoNavigationItems", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumb: { classPropertyName: "showBreadcrumb", publicName: "showBreadcrumb", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "matDrawer", first: true, predicate: MatDrawer, descendants: true, isSignal: true }], ngImport: i0, template: "<mat-drawer-container class=\"ppw-app-wireframe-container\">\r\n @if (showWireframe() && !forceHiddenSidenav()) {\r\n <mat-drawer\r\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n [mode]=\"sidenavMode()\"\r\n [ngClass]=\"\r\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\r\n \"\r\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n class=\"ppw-app-wireframe-drawer\"\r\n >\r\n <ppw-left-sidenav\r\n (closeSidebar)=\"closeSidebar()\"\r\n (navigated)=\"onNavigate()\"\r\n [navigationItems]=\"navigationItems()\"\r\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\r\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\r\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\r\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\r\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n >\r\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\r\n </div>\r\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\r\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\r\n </div>\r\n </ppw-left-sidenav>\r\n </mat-drawer>\r\n }\r\n <mat-drawer-content\r\n class=\"ppw-app-drawer-content\"\r\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\r\n >\r\n <div class=\"ppw-page-container\">\r\n @if (showWireframe()) {\r\n <ppw-toolbar\r\n (toggleSidebar)=\"toggleSidebar()\"\r\n [isSidenavOpen]=\"sidebarIsOpen\"\r\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\r\n [toolbarHeightPx]=\"toolbarHeightPx()\"\r\n [showMenuToggle]=\"\r\n !forceHiddenSidenav() &&\r\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\r\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\r\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\r\n \"\r\n >\r\n <ng-container ppw-toolbar-left-content>\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container ppw-toolbar-right-content>\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </ng-container>\r\n </ppw-toolbar>\r\n }\r\n @if (showBreadcrumb()) {\r\n <ppw-breadcrumb>\r\n <ng-container ppw-breadcrumb-home>\r\n <ng-content select=\"[ppw-breadcrumb-home]\">\r\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\r\n </ng-content></ng-container\r\n >\r\n </ppw-breadcrumb>\r\n }\r\n <div class=\"ppw-page-content\">\r\n <ng-content select=\"[ppw-page-content]\">\r\n <router-outlet></router-outlet>\r\n </ng-content>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".ppw-app-wireframe-container{height:100%}.ppw-app-wireframe-container .ppw-app-wireframe-drawer{width:var(--ppw-app-wireframe-drawer-width, 300px);background-color:var(--ppw-sidenav-background-color);border:var(--ppw-app-wireframe-drawer-border)}.ppw-app-wireframe-container .ppw-page-container{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--ppw-page-container-background)}.ppw-app-wireframe-container .ppw-page-container ppw-toolbar{flex-grow:0}.ppw-app-wireframe-container .ppw-page-container .ppw-page-content{flex-grow:1;overflow:auto}@media only screen and (min-width:960px){.ppw-app-wireframe-container mat-drawer-content.ppw-app-drawer-content:not(.drawer-content-no-margin){margin-left:var(--ppw-app-wireframe-drawer-width, 300px)!important}}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--ppw-breadcrumb-text-color, var(--mat-sys-on-background))}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb:hover{color:var(--ppw-breadcrumb-text-hover-color, var(--mat-sys-primary, var(--mat-primary-color)))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i2$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i2$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: LeftSidenavComponent, selector: "ppw-left-sidenav", inputs: ["navigationItems", "showMenuCloseButton", "logoUrl", "logoHeight", "logoWidth", "centerLogo"], outputs: ["closeSidebar", "navigated"] }, { kind: "component", type: ToolbarComponent, selector: "ppw-toolbar", inputs: ["showMenuToggle", "isSidenavOpen", "showPageTitle", "toolbarHeightPx"], outputs: ["toggleSidebar"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BreadcrumbComponent, selector: "ppw-breadcrumb" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: WireframeComponent, isStandalone: true, selector: "ppw-wireframe", inputs: { navigationItems: { classPropertyName: "navigationItems", publicName: "navigationItems", isSignal: true, isRequired: false, transformFunction: null }, sidebarOptions: { classPropertyName: "sidebarOptions", publicName: "sidebarOptions", isSignal: true, isRequired: false, transformFunction: null }, toolbarHeightPx: { classPropertyName: "toolbarHeightPx", publicName: "toolbarHeightPx", isSignal: true, isRequired: false, transformFunction: null }, hideSidenavWhenNoNavigationItems: { classPropertyName: "hideSidenavWhenNoNavigationItems", publicName: "hideSidenavWhenNoNavigationItems", isSignal: true, isRequired: false, transformFunction: null }, showBreadcrumb: { classPropertyName: "showBreadcrumb", publicName: "showBreadcrumb", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "matDrawer", first: true, predicate: MatDrawer, descendants: true, isSignal: true }], ngImport: i0, template: "<mat-drawer-container class=\"ppw-app-wireframe-container\">\n @if (showWireframe() && !forceHiddenSidenav()) {\n <mat-drawer\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\n \"\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\n class=\"ppw-app-wireframe-drawer\"\n >\n <ppw-left-sidenav\n (closeSidebar)=\"closeSidebar()\"\n (navigated)=\"onNavigate()\"\n [navigationItems]=\"navigationItems()\"\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n >\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\n </div>\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\n </div>\n </ppw-left-sidenav>\n </mat-drawer>\n }\n <mat-drawer-content\n class=\"ppw-app-drawer-content\"\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\n >\n <div class=\"ppw-page-container\">\n @if (showWireframe()) {\n <ppw-toolbar\n (toggleSidebar)=\"toggleSidebar()\"\n [isSidenavOpen]=\"sidebarIsOpen\"\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\n [toolbarHeightPx]=\"toolbarHeightPx()\"\n [showMenuToggle]=\"\n !forceHiddenSidenav() &&\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\n \"\n >\n <ng-container ppw-toolbar-left-content>\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n </ng-container>\n <ng-container ppw-toolbar-right-content>\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </ng-container>\n </ppw-toolbar>\n }\n @if (showBreadcrumb()) {\n <ppw-breadcrumb>\n <ng-container ppw-breadcrumb-home>\n <ng-content select=\"[ppw-breadcrumb-home]\">\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\n </ng-content></ng-container\n >\n </ppw-breadcrumb>\n }\n <div class=\"ppw-page-content\">\n <ng-content select=\"[ppw-page-content]\">\n <router-outlet></router-outlet>\n </ng-content>\n </div>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".ppw-app-wireframe-container{height:100%}.ppw-app-wireframe-container .ppw-app-wireframe-drawer{width:var(--ppw-app-wireframe-drawer-width, 300px);background-color:var(--ppw-sidenav-background-color);border:var(--ppw-app-wireframe-drawer-border)}.ppw-app-wireframe-container .ppw-page-container{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--ppw-page-container-background)}.ppw-app-wireframe-container .ppw-page-container ppw-toolbar{flex-grow:0}.ppw-app-wireframe-container .ppw-page-container .ppw-page-content{flex-grow:1;overflow:auto}@media only screen and (min-width:960px){.ppw-app-wireframe-container mat-drawer-content.ppw-app-drawer-content:not(.drawer-content-no-margin){margin-left:var(--ppw-app-wireframe-drawer-width, 300px)!important}}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--ppw-breadcrumb-text-color, var(--mat-sys-on-background))}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb:hover{color:var(--ppw-breadcrumb-text-hover-color, var(--mat-sys-primary, var(--mat-primary-color)))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i2$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i2$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i2$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: LeftSidenavComponent, selector: "ppw-left-sidenav", inputs: ["navigationItems", "showMenuCloseButton", "logoUrl", "logoHeight", "logoWidth", "centerLogo"], outputs: ["closeSidebar", "navigated"] }, { kind: "component", type: ToolbarComponent, selector: "ppw-toolbar", inputs: ["showMenuToggle", "isSidenavOpen", "showPageTitle", "toolbarHeightPx"], outputs: ["toggleSidebar"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BreadcrumbComponent, selector: "ppw-breadcrumb" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}

@@ -267,3 +267,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: WireframeComponent, decorators: [{

RouterLink
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container class=\"ppw-app-wireframe-container\">\r\n @if (showWireframe() && !forceHiddenSidenav()) {\r\n <mat-drawer\r\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n [mode]=\"sidenavMode()\"\r\n [ngClass]=\"\r\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\r\n \"\r\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n class=\"ppw-app-wireframe-drawer\"\r\n >\r\n <ppw-left-sidenav\r\n (closeSidebar)=\"closeSidebar()\"\r\n (navigated)=\"onNavigate()\"\r\n [navigationItems]=\"navigationItems()\"\r\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\r\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\r\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\r\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\r\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n >\r\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\r\n </div>\r\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\r\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\r\n </div>\r\n </ppw-left-sidenav>\r\n </mat-drawer>\r\n }\r\n <mat-drawer-content\r\n class=\"ppw-app-drawer-content\"\r\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\r\n >\r\n <div class=\"ppw-page-container\">\r\n @if (showWireframe()) {\r\n <ppw-toolbar\r\n (toggleSidebar)=\"toggleSidebar()\"\r\n [isSidenavOpen]=\"sidebarIsOpen\"\r\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\r\n [toolbarHeightPx]=\"toolbarHeightPx()\"\r\n [showMenuToggle]=\"\r\n !forceHiddenSidenav() &&\r\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\r\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\r\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\r\n \"\r\n >\r\n <ng-container ppw-toolbar-left-content>\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container ppw-toolbar-right-content>\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </ng-container>\r\n </ppw-toolbar>\r\n }\r\n @if (showBreadcrumb()) {\r\n <ppw-breadcrumb>\r\n <ng-container ppw-breadcrumb-home>\r\n <ng-content select=\"[ppw-breadcrumb-home]\">\r\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\r\n </ng-content></ng-container\r\n >\r\n </ppw-breadcrumb>\r\n }\r\n <div class=\"ppw-page-content\">\r\n <ng-content select=\"[ppw-page-content]\">\r\n <router-outlet></router-outlet>\r\n </ng-content>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n", styles: [".ppw-app-wireframe-container{height:100%}.ppw-app-wireframe-container .ppw-app-wireframe-drawer{width:var(--ppw-app-wireframe-drawer-width, 300px);background-color:var(--ppw-sidenav-background-color);border:var(--ppw-app-wireframe-drawer-border)}.ppw-app-wireframe-container .ppw-page-container{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--ppw-page-container-background)}.ppw-app-wireframe-container .ppw-page-container ppw-toolbar{flex-grow:0}.ppw-app-wireframe-container .ppw-page-container .ppw-page-content{flex-grow:1;overflow:auto}@media only screen and (min-width:960px){.ppw-app-wireframe-container mat-drawer-content.ppw-app-drawer-content:not(.drawer-content-no-margin){margin-left:var(--ppw-app-wireframe-drawer-width, 300px)!important}}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--ppw-breadcrumb-text-color, var(--mat-sys-on-background))}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb:hover{color:var(--ppw-breadcrumb-text-hover-color, var(--mat-sys-primary, var(--mat-primary-color)))}\n"] }]
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container class=\"ppw-app-wireframe-container\">\n @if (showWireframe() && !forceHiddenSidenav()) {\n <mat-drawer\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\n \"\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\n class=\"ppw-app-wireframe-drawer\"\n >\n <ppw-left-sidenav\n (closeSidebar)=\"closeSidebar()\"\n (navigated)=\"onNavigate()\"\n [navigationItems]=\"navigationItems()\"\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n >\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\n </div>\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\n </div>\n </ppw-left-sidenav>\n </mat-drawer>\n }\n <mat-drawer-content\n class=\"ppw-app-drawer-content\"\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\n >\n <div class=\"ppw-page-container\">\n @if (showWireframe()) {\n <ppw-toolbar\n (toggleSidebar)=\"toggleSidebar()\"\n [isSidenavOpen]=\"sidebarIsOpen\"\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\n [toolbarHeightPx]=\"toolbarHeightPx()\"\n [showMenuToggle]=\"\n !forceHiddenSidenav() &&\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\n \"\n >\n <ng-container ppw-toolbar-left-content>\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n </ng-container>\n <ng-container ppw-toolbar-right-content>\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </ng-container>\n </ppw-toolbar>\n }\n @if (showBreadcrumb()) {\n <ppw-breadcrumb>\n <ng-container ppw-breadcrumb-home>\n <ng-content select=\"[ppw-breadcrumb-home]\">\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\n </ng-content></ng-container\n >\n </ppw-breadcrumb>\n }\n <div class=\"ppw-page-content\">\n <ng-content select=\"[ppw-page-content]\">\n <router-outlet></router-outlet>\n </ng-content>\n </div>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".ppw-app-wireframe-container{height:100%}.ppw-app-wireframe-container .ppw-app-wireframe-drawer{width:var(--ppw-app-wireframe-drawer-width, 300px);background-color:var(--ppw-sidenav-background-color);border:var(--ppw-app-wireframe-drawer-border)}.ppw-app-wireframe-container .ppw-page-container{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--ppw-page-container-background)}.ppw-app-wireframe-container .ppw-page-container ppw-toolbar{flex-grow:0}.ppw-app-wireframe-container .ppw-page-container .ppw-page-content{flex-grow:1;overflow:auto}@media only screen and (min-width:960px){.ppw-app-wireframe-container mat-drawer-content.ppw-app-drawer-content:not(.drawer-content-no-margin){margin-left:var(--ppw-app-wireframe-drawer-width, 300px)!important}}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--ppw-breadcrumb-text-color, var(--mat-sys-on-background))}.ppw-app-wireframe-container a.ppw-home-page-breadcrumb:hover{color:var(--ppw-breadcrumb-text-hover-color, var(--mat-sys-primary, var(--mat-primary-color)))}\n"] }]
}], propDecorators: { navigationItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "navigationItems", required: false }] }], sidebarOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "sidebarOptions", required: false }] }], toolbarHeightPx: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbarHeightPx", required: false }] }], hideSidenavWhenNoNavigationItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideSidenavWhenNoNavigationItems", required: false }] }], showBreadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBreadcrumb", required: false }] }], matDrawer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatDrawer), { isSignal: true }] }] } });

@@ -270,0 +270,0 @@

@@ -1,1 +0,1 @@

{"version":3,"file":"ppwcode-ng-wireframe.mjs","sources":["../../../../projects/ppwcode/ng-wireframe/src/lib/pagination-bar/pagination-bar.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/pagination-bar/pagination-bar.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/left-sidenav/left-sidenav.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/left-sidenav/left-sidenav.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/toolbar/toolbar.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/toolbar/toolbar.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/wireframe/wireframe.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/wireframe/wireframe.component.html","../../../../projects/ppwcode/ng-wireframe/src/public-api.ts","../../../../projects/ppwcode/ng-wireframe/src/ppwcode-ng-wireframe.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n input,\r\n InputSignal,\r\n output,\r\n OutputEmitterRef,\r\n Signal\r\n} from '@angular/core'\r\n\r\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator'\r\nimport { isAsyncResult, PagedAsyncResult, PagedEntities } from '@ppwcode/ng-async'\r\n\r\n@Component({\r\n selector: 'ppw-pagination-bar',\r\n imports: [MatPaginatorModule],\r\n templateUrl: './pagination-bar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PaginationBarComponent {\r\n // Inputs\r\n public pagedAsyncResult: InputSignal<PagedAsyncResult<unknown, unknown> | PagedEntities<unknown>> = input.required()\r\n public hidePageSize: InputSignal<boolean> = input(true)\r\n public showFirstLastButtons: InputSignal<boolean> = input(false)\r\n public pageSizeOptions: InputSignal<Array<number>> = input<Array<number>>([])\r\n\r\n // Outputs\r\n public page: OutputEmitterRef<PageEvent> = output()\r\n\r\n public entity: Signal<PagedEntities<unknown>> = computed(() => {\r\n const asyncResultInput = this.pagedAsyncResult()\r\n if (isAsyncResult<unknown, unknown>(asyncResultInput)) {\r\n return asyncResultInput.entity\r\n } else {\r\n return asyncResultInput\r\n }\r\n })\r\n\r\n public handlePageEvent(e: PageEvent): void {\r\n this.page.emit(e)\r\n }\r\n}\r\n","<mat-paginator\r\n (page)=\"handlePageEvent($event)\"\r\n [length]=\"entity().totalCount\"\r\n [pageSize]=\"entity().pageSize\"\r\n [pageIndex]=\"entity().page - 1\"\r\n [pageSizeOptions]=\"pageSizeOptions()\"\r\n [showFirstLastButtons]=\"showFirstLastButtons()\"\r\n [hidePageSize]=\"hidePageSize()\"\r\n>\r\n</mat-paginator>\r\n","import { CommonModule, NgOptimizedImage } from '@angular/common'\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n input,\r\n InputSignal,\r\n OnChanges,\r\n output,\r\n OutputEmitterRef,\r\n SimpleChanges\r\n} from '@angular/core'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatListModule } from '@angular/material/list'\r\nimport { Router } from '@angular/router'\r\nimport { TranslatePipe } from '@ngx-translate/core'\r\nimport { NavigationItem } from '../navigation-item/navigation-item.model'\r\n\r\n@Component({\r\n selector: 'ppw-left-sidenav',\r\n imports: [CommonModule, MatIconModule, MatListModule, TranslatePipe, NgOptimizedImage],\r\n templateUrl: './left-sidenav.component.html',\r\n styleUrls: ['./left-sidenav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LeftSidenavComponent implements OnChanges {\r\n // Inputs\r\n public navigationItems: InputSignal<Array<NavigationItem> | null> = input.required()\r\n public showMenuCloseButton: InputSignal<boolean> = input(true)\r\n public logoUrl: InputSignal<string | undefined> = input()\r\n public logoHeight: InputSignal<number> = input(100)\r\n public logoWidth: InputSignal<number> = input(100)\r\n public centerLogo: InputSignal<boolean> = input(true)\r\n\r\n // Outputs\r\n public closeSidebar: OutputEmitterRef<void> = output()\r\n public navigated: OutputEmitterRef<NavigationItem> = output()\r\n\r\n private _router: Router = inject(Router)\r\n private _openedNavigationItems: Array<string> = []\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['navigationItems']) {\r\n this.validateNavigationItems(this.navigationItems())\r\n }\r\n }\r\n\r\n public navigationItemIsOpened(navigationItem: NavigationItem): boolean {\r\n return this._openedNavigationItems.includes(JSON.stringify(navigationItem))\r\n }\r\n\r\n public onClickNavigationItem(navigationItem: NavigationItem): void {\r\n if (navigationItem.isEnabled === false) {\r\n return\r\n }\r\n\r\n if (navigationItem.isExternalLink) {\r\n window.open(navigationItem.fullRouterPath, '_blank')\r\n this.navigated.emit(navigationItem)\r\n } else if ((navigationItem.children?.length ?? 0) > 0) {\r\n this.toggleNavigationItemOpened(navigationItem)\r\n } else if (navigationItem.fullRouterPath) {\r\n this._router.navigateByUrl(navigationItem.fullRouterPath)\r\n this.navigated.emit(navigationItem)\r\n } else {\r\n throw new Error('Could not handle navigation item with no children or router path.')\r\n }\r\n }\r\n\r\n protected trackNavigationItem(navigationItem: NavigationItem): string {\r\n return JSON.stringify(navigationItem)\r\n }\r\n\r\n private toggleNavigationItemOpened(navigationItem: NavigationItem): void {\r\n if (this.navigationItemIsOpened(navigationItem)) {\r\n this.closeNavigationItem(navigationItem)\r\n } else {\r\n this.openNavigationItem(navigationItem)\r\n }\r\n }\r\n\r\n private closeNavigationItem(navigationItem: NavigationItem): void {\r\n this._openedNavigationItems = this._openedNavigationItems.filter((ni) => ni !== JSON.stringify(navigationItem))\r\n }\r\n\r\n private openNavigationItem(navigationItem: NavigationItem): void {\r\n this._openedNavigationItems.push(JSON.stringify(navigationItem))\r\n }\r\n\r\n private validateNavigationItems(navigationItems: Array<NavigationItem> | null): void {\r\n navigationItems ??= []\r\n navigationItems.forEach((item: NavigationItem) => {\r\n if (item.isExternalLink && (item.children?.length ?? 0) > 0) {\r\n throw new Error('External link navigation items cannot have children.')\r\n }\r\n\r\n this.validateNavigationItems(item.children ?? [])\r\n })\r\n }\r\n}\r\n","@if (showMenuCloseButton()) {\r\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n}\r\n\r\n<div class=\"ppw-sidenav-content-wrapper\">\r\n <div class=\"ppw-sidenav-top-content-wrapper\">\r\n @if (logoUrl()) {\r\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\r\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\r\n </div>\r\n }\r\n <div class=\"ppw-sidenav-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\r\n </div>\r\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\r\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\r\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\r\n }\r\n </div>\r\n </div>\r\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\r\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\r\n </div>\r\n</div>\r\n\r\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\r\n <button\r\n type=\"button\"\r\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\r\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\r\n (click)=\"onClickNavigationItem(navigationItem)\"\r\n >\r\n <span class=\"ppw-sidenav-navigation-item-link\">\r\n @if (navigationItem.icon) {\r\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\r\n }\r\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\r\n @if (navigationItem.isExternalLink) {\r\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\r\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\r\n </span>\r\n }\r\n </span>\r\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\r\n <i\r\n class=\"fa-solid\"\r\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\r\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\r\n ></i>\r\n }\r\n </button>\r\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\r\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\r\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n navigationItemTemplate;\r\n context: { navigationItem: child, level: (level ?? 1) + 1 }\r\n \"\r\n ></ng-container>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n InputSignal,\r\n output,\r\n OutputEmitterRef,\r\n Signal\r\n} from '@angular/core'\r\nimport { toSignal } from '@angular/core/rxjs-interop'\r\nimport { MatButtonModule } from '@angular/material/button'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router'\r\nimport { TranslateService } from '@ngx-translate/core'\r\nimport { filter, startWith } from 'rxjs'\r\n\r\n@Component({\r\n selector: 'ppw-toolbar',\r\n imports: [MatIconModule, MatMenuModule, MatButtonModule],\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ToolbarComponent {\r\n #translateService: TranslateService = inject(TranslateService)\r\n #router: Router = inject(Router)\r\n\r\n #languageChange = toSignal(this.#translateService.onLangChange.pipe(startWith(null)))\r\n #navigationEnd = toSignal(this.#router.events.pipe(filter((event) => event instanceof NavigationEnd)))\r\n\r\n // Inputs\r\n public showMenuToggle: InputSignal<boolean> = input(true)\r\n public isSidenavOpen: InputSignal<boolean> = input(true)\r\n public showPageTitle: InputSignal<boolean> = input(true)\r\n public toolbarHeightPx: InputSignal<number | undefined> = input()\r\n\r\n // Outputs\r\n public toggleSidebar: OutputEmitterRef<void> = output()\r\n\r\n public title: Signal<string | null> = computed(() => {\r\n // These act as triggers for the computed property.\r\n this.#languageChange()\r\n this.#navigationEnd()\r\n\r\n // Navigate to the last child route definition to get its title.\r\n let child: ActivatedRouteSnapshot = this.#router.routerState.snapshot.root\r\n while (child.firstChild) {\r\n child = child.firstChild\r\n }\r\n\r\n return child.title ? this.#translateService.instant(child.title) : null\r\n })\r\n}\r\n","<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\r\n <div class=\"ppw-toolbar-left-section align-items-center\">\r\n @if (showMenuToggle()) {\r\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\r\n @if (!isSidenavOpen()) {\r\n <mat-icon>menu</mat-icon>\r\n } @else {\r\n <mat-icon>close</mat-icon>\r\n }\r\n </button>\r\n }\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n @if (showPageTitle() && title()) {\r\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\r\n }\r\n </div>\r\n <div class=\"ppw-toolbar-right-section padding-8\">\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'\r\nimport { CommonModule } from '@angular/common'\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n InputSignal,\r\n Signal,\r\n viewChild\r\n} from '@angular/core'\r\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'\r\nimport { MatIcon } from '@angular/material/icon'\r\nimport { MatDrawer, MatSidenavModule } from '@angular/material/sidenav'\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterLink, RouterOutlet } from '@angular/router'\r\nimport { BreadcrumbComponent } from '@ppwcode/ng-router'\r\nimport { filter } from 'rxjs'\r\nimport { LeftSidenavComponent } from '../left-sidenav/left-sidenav.component'\r\nimport { SidebarOptions } from '../model/sidebar-options'\r\nimport { NavigationItem } from '../navigation-item/navigation-item.model'\r\nimport { ToolbarComponent } from '../toolbar/toolbar.component'\r\n\r\n@Component({\r\n selector: 'ppw-wireframe',\r\n imports: [\r\n CommonModule,\r\n MatSidenavModule,\r\n LeftSidenavComponent,\r\n ToolbarComponent,\r\n RouterOutlet,\r\n BreadcrumbComponent,\r\n MatIcon,\r\n RouterLink\r\n ],\r\n templateUrl: './wireframe.component.html',\r\n styleUrls: ['./wireframe.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WireframeComponent {\r\n #observer: BreakpointObserver = inject(BreakpointObserver)\r\n #router: Router = inject(Router)\r\n\r\n #breakpointChange = toSignal(\r\n this.#observer.observe([Breakpoints.XSmall, Breakpoints.Small]).pipe(takeUntilDestroyed())\r\n )\r\n #navigationEnd = toSignal(this.#router.events.pipe(filter((event) => event instanceof NavigationEnd)))\r\n\r\n // Inputs\r\n public navigationItems: InputSignal<Array<NavigationItem> | null> = input<Array<NavigationItem> | null>([])\r\n public sidebarOptions: InputSignal<SidebarOptions | undefined> = input()\r\n public toolbarHeightPx: InputSignal<number | undefined> = input()\r\n public hideSidenavWhenNoNavigationItems: InputSignal<boolean> = input(false)\r\n public showBreadcrumb: InputSignal<boolean> = input(false)\r\n\r\n // View children\r\n public matDrawer: Signal<MatDrawer | undefined> = viewChild(MatDrawer)\r\n\r\n public get sidebarIsOpen(): boolean {\r\n const drawer = this.matDrawer()\r\n if (drawer) {\r\n if (!drawer.opened) {\r\n return (\r\n !this.isSmallDevice() &&\r\n !this.isXSmallDevice() &&\r\n !this.sidebarOptions()?.closedByDefaultOnLargerDevice\r\n )\r\n }\r\n return drawer.opened\r\n }\r\n\r\n // When the drawer is not available it could mean two things:\r\n // 1. The drawer is forced to be not available.\r\n // 2. The drawer is not yet initialized.\r\n\r\n // In the first case the drawer is closed.\r\n if (this.forceHiddenSidenav()) {\r\n return false\r\n }\r\n\r\n // In the second case the drawer is open or closed depending on the device size.\r\n return !this.isSmallDevice() && !this.isXSmallDevice()\r\n }\r\n\r\n // Computed properties\r\n public showWireframe: Signal<boolean> = computed(() => {\r\n // This acts as a trigger for the computed property.\r\n this.#navigationEnd()\r\n\r\n let child: ActivatedRouteSnapshot = this.#router.routerState.snapshot.root\r\n while (child.firstChild) {\r\n child = child.firstChild\r\n }\r\n\r\n return child.data['showWireframe'] ?? true\r\n })\r\n\r\n public sidenavMode: Signal<'over' | 'side'> = computed(() => {\r\n const options = this.sidebarOptions()\r\n return this.isXSmallDevice() || !!options?.closedByDefaultOnLargerDevice ? 'over' : 'side'\r\n })\r\n\r\n public forceHiddenSidenav: Signal<boolean> = computed(() => {\r\n const navigationItems = this.navigationItems()\r\n return this.hideSidenavWhenNoNavigationItems() && (!navigationItems || navigationItems.length === 0)\r\n })\r\n\r\n public isSmallDevice: Signal<boolean> = this.#getComputedBreakpoint([Breakpoints.Small])\r\n public isXSmallDevice: Signal<boolean> = this.#getComputedBreakpoint([Breakpoints.XSmall])\r\n public isLargerDevice: Signal<boolean> = this.#getComputedBreakpoint([\r\n Breakpoints.Medium,\r\n Breakpoints.Large,\r\n Breakpoints.XLarge\r\n ])\r\n\r\n // Methods\r\n public async onNavigate(): Promise<void> {\r\n // Automatically close the sidebar when the navigation is started on a small device where the sidebar is opened\r\n // as an overlay.\r\n if (this.sidenavMode() === 'over') {\r\n await this.closeSidebar()\r\n }\r\n }\r\n\r\n public async toggleSidebar(): Promise<void> {\r\n await this.matDrawer()?.toggle()\r\n }\r\n\r\n public async closeSidebar(): Promise<void> {\r\n await this.matDrawer()?.close()\r\n }\r\n\r\n #getComputedBreakpoint(breakpoints: Array<string>): Signal<boolean> {\r\n return computed(() => {\r\n this.#breakpointChange()\r\n return this.#observer.isMatched(breakpoints)\r\n })\r\n }\r\n}\r\n","<mat-drawer-container class=\"ppw-app-wireframe-container\">\r\n @if (showWireframe() && !forceHiddenSidenav()) {\r\n <mat-drawer\r\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n [mode]=\"sidenavMode()\"\r\n [ngClass]=\"\r\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\r\n \"\r\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n class=\"ppw-app-wireframe-drawer\"\r\n >\r\n <ppw-left-sidenav\r\n (closeSidebar)=\"closeSidebar()\"\r\n (navigated)=\"onNavigate()\"\r\n [navigationItems]=\"navigationItems()\"\r\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\r\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\r\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\r\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\r\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\r\n >\r\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\r\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\r\n </div>\r\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\r\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\r\n </div>\r\n </ppw-left-sidenav>\r\n </mat-drawer>\r\n }\r\n <mat-drawer-content\r\n class=\"ppw-app-drawer-content\"\r\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\r\n >\r\n <div class=\"ppw-page-container\">\r\n @if (showWireframe()) {\r\n <ppw-toolbar\r\n (toggleSidebar)=\"toggleSidebar()\"\r\n [isSidenavOpen]=\"sidebarIsOpen\"\r\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\r\n [toolbarHeightPx]=\"toolbarHeightPx()\"\r\n [showMenuToggle]=\"\r\n !forceHiddenSidenav() &&\r\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\r\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\r\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\r\n \"\r\n >\r\n <ng-container ppw-toolbar-left-content>\r\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\r\n </ng-container>\r\n <ng-container ppw-toolbar-right-content>\r\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\r\n </ng-container>\r\n </ppw-toolbar>\r\n }\r\n @if (showBreadcrumb()) {\r\n <ppw-breadcrumb>\r\n <ng-container ppw-breadcrumb-home>\r\n <ng-content select=\"[ppw-breadcrumb-home]\">\r\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\r\n </ng-content></ng-container\r\n >\r\n </ppw-breadcrumb>\r\n }\r\n <div class=\"ppw-page-content\">\r\n <ng-content select=\"[ppw-page-content]\">\r\n <router-outlet></router-outlet>\r\n </ng-content>\r\n </div>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n","/*\r\n * Public API Surface of ng-wireframe\r\n */\r\nexport * from './lib/pagination-bar/pagination-bar.component'\r\nexport * from './lib/navigation-item/navigation-item.model'\r\nexport * from './lib/left-sidenav/left-sidenav.component'\r\nexport * from './lib/toolbar/toolbar.component'\r\nexport * from './lib/wireframe/wireframe.component'\r\nexport * from './lib/model/sidebar-options'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
{"version":3,"file":"ppwcode-ng-wireframe.mjs","sources":["../../../../projects/ppwcode/ng-wireframe/src/lib/pagination-bar/pagination-bar.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/pagination-bar/pagination-bar.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/left-sidenav/left-sidenav.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/left-sidenav/left-sidenav.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/toolbar/toolbar.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/toolbar/toolbar.component.html","../../../../projects/ppwcode/ng-wireframe/src/lib/wireframe/wireframe.component.ts","../../../../projects/ppwcode/ng-wireframe/src/lib/wireframe/wireframe.component.html","../../../../projects/ppwcode/ng-wireframe/src/public-api.ts","../../../../projects/ppwcode/ng-wireframe/src/ppwcode-ng-wireframe.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal\n} from '@angular/core'\n\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator'\nimport { isAsyncResult, PagedAsyncResult, PagedEntities } from '@ppwcode/ng-async'\n\n@Component({\n selector: 'ppw-pagination-bar',\n imports: [MatPaginatorModule],\n templateUrl: './pagination-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaginationBarComponent {\n // Inputs\n public pagedAsyncResult: InputSignal<PagedAsyncResult<unknown, unknown> | PagedEntities<unknown>> = input.required()\n public hidePageSize: InputSignal<boolean> = input(true)\n public showFirstLastButtons: InputSignal<boolean> = input(false)\n public pageSizeOptions: InputSignal<Array<number>> = input<Array<number>>([])\n\n // Outputs\n public page: OutputEmitterRef<PageEvent> = output()\n\n public entity: Signal<PagedEntities<unknown>> = computed(() => {\n const asyncResultInput = this.pagedAsyncResult()\n if (isAsyncResult<unknown, unknown>(asyncResultInput)) {\n return asyncResultInput.entity\n } else {\n return asyncResultInput\n }\n })\n\n public handlePageEvent(e: PageEvent): void {\n this.page.emit(e)\n }\n}\n","<mat-paginator\n (page)=\"handlePageEvent($event)\"\n [length]=\"entity().totalCount\"\n [pageSize]=\"entity().pageSize\"\n [pageIndex]=\"entity().page - 1\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [hidePageSize]=\"hidePageSize()\"\n>\n</mat-paginator>\n","import { CommonModule, NgOptimizedImage } from '@angular/common'\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n InputSignal,\n OnChanges,\n output,\n OutputEmitterRef,\n SimpleChanges\n} from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatListModule } from '@angular/material/list'\nimport { Router } from '@angular/router'\nimport { TranslatePipe } from '@ngx-translate/core'\nimport { NavigationItem } from '../navigation-item/navigation-item.model'\n\n@Component({\n selector: 'ppw-left-sidenav',\n imports: [CommonModule, MatIconModule, MatListModule, TranslatePipe, NgOptimizedImage],\n templateUrl: './left-sidenav.component.html',\n styleUrls: ['./left-sidenav.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LeftSidenavComponent implements OnChanges {\n // Inputs\n public navigationItems: InputSignal<Array<NavigationItem> | null> = input.required()\n public showMenuCloseButton: InputSignal<boolean> = input(true)\n public logoUrl: InputSignal<string | undefined> = input()\n public logoHeight: InputSignal<number> = input(100)\n public logoWidth: InputSignal<number> = input(100)\n public centerLogo: InputSignal<boolean> = input(true)\n\n // Outputs\n public closeSidebar: OutputEmitterRef<void> = output()\n public navigated: OutputEmitterRef<NavigationItem> = output()\n\n private _router: Router = inject(Router)\n private _openedNavigationItems: Array<string> = []\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['navigationItems']) {\n this.validateNavigationItems(this.navigationItems())\n }\n }\n\n public navigationItemIsOpened(navigationItem: NavigationItem): boolean {\n return this._openedNavigationItems.includes(JSON.stringify(navigationItem))\n }\n\n public onClickNavigationItem(navigationItem: NavigationItem): void {\n if (navigationItem.isEnabled === false) {\n return\n }\n\n if (navigationItem.isExternalLink) {\n window.open(navigationItem.fullRouterPath, '_blank')\n this.navigated.emit(navigationItem)\n } else if ((navigationItem.children?.length ?? 0) > 0) {\n this.toggleNavigationItemOpened(navigationItem)\n } else if (navigationItem.fullRouterPath) {\n this._router.navigateByUrl(navigationItem.fullRouterPath)\n this.navigated.emit(navigationItem)\n } else {\n throw new Error('Could not handle navigation item with no children or router path.')\n }\n }\n\n protected trackNavigationItem(navigationItem: NavigationItem): string {\n return JSON.stringify(navigationItem)\n }\n\n private toggleNavigationItemOpened(navigationItem: NavigationItem): void {\n if (this.navigationItemIsOpened(navigationItem)) {\n this.closeNavigationItem(navigationItem)\n } else {\n this.openNavigationItem(navigationItem)\n }\n }\n\n private closeNavigationItem(navigationItem: NavigationItem): void {\n this._openedNavigationItems = this._openedNavigationItems.filter((ni) => ni !== JSON.stringify(navigationItem))\n }\n\n private openNavigationItem(navigationItem: NavigationItem): void {\n this._openedNavigationItems.push(JSON.stringify(navigationItem))\n }\n\n private validateNavigationItems(navigationItems: Array<NavigationItem> | null): void {\n navigationItems ??= []\n navigationItems.forEach((item: NavigationItem) => {\n if (item.isExternalLink && (item.children?.length ?? 0) > 0) {\n throw new Error('External link navigation items cannot have children.')\n }\n\n this.validateNavigationItems(item.children ?? [])\n })\n }\n}\n","@if (showMenuCloseButton()) {\n <button class=\"ppw-sidenav-close-button\" (click)=\"closeSidebar.emit()\">\n <mat-icon>close</mat-icon>\n </button>\n}\n\n<div class=\"ppw-sidenav-content-wrapper\">\n <div class=\"ppw-sidenav-top-content-wrapper\">\n @if (logoUrl()) {\n <div class=\"flex-column logo-wrapper\" [ngClass]=\"{ 'align-items-center': centerLogo() }\">\n <img [ngSrc]=\"logoUrl()!\" alt=\"Logo\" [height]=\"logoHeight()\" [width]=\"logoWidth()\" priority=\"eager\" />\n </div>\n }\n <div class=\"ppw-sidenav-top-content\">\n <ng-content select=\"[ppw-sidebar-top]\"></ng-content>\n </div>\n <div class=\"ppw-sidenav-navigation-wrapper flex-column\">\n @for (navigationItem of navigationItems(); track trackNavigationItem(navigationItem)) {\n <ng-container *ngTemplateOutlet=\"navigationItemTemplate; context: { navigationItem }\"></ng-container>\n }\n </div>\n </div>\n <div class=\"ppw-sidenav-bottom-content-wrapper\">\n <ng-content select=\"[ppw-sidebar-bottom]\"></ng-content>\n </div>\n</div>\n\n<ng-template #navigationItemTemplate let-navigationItem=\"navigationItem\" let-level=\"level\">\n <button\n type=\"button\"\n class=\"ppw-sidenav-navigation-item ppw-sidenav-navigation-item-level-{{ level ?? 1 }}\"\n [class.navigation-item-disabled]=\"navigationItem.isEnabled === false\"\n (click)=\"onClickNavigationItem(navigationItem)\"\n >\n <span class=\"ppw-sidenav-navigation-item-link\">\n @if (navigationItem.icon) {\n <i [class]=\"navigationItem.icon\" class=\"ppw-sidenav-navigation-item-icon\"></i>\n }\n <span class=\"ppw-sidenav-navigation-item-text\">{{ navigationItem.label | translate }}</span>\n @if (navigationItem.isExternalLink) {\n <span class=\"ppw-sidenav-navigation-item-external-icon\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i>\n </span>\n }\n </span>\n @if ((navigationItem.children?.length ?? 0) > 0 && !navigationItem.isExternalLink) {\n <i\n class=\"fa-solid\"\n [class.fa-angle-down]=\"!navigationItemIsOpened(navigationItem)\"\n [class.fa-angle-up]=\"navigationItemIsOpened(navigationItem)\"\n ></i>\n }\n </button>\n @if (navigationItemIsOpened(navigationItem) && navigationItem.children && !navigationItem.isExternalLink) {\n <div class=\"ppw-sidenav-navigation-item-children-wrapper flex-column\">\n @for (child of navigationItem.children; track trackNavigationItem(child)) {\n <ng-container\n *ngTemplateOutlet=\"\n navigationItemTemplate;\n context: { navigationItem: child, level: (level ?? 1) + 1 }\n \"\n ></ng-container>\n }\n </div>\n }\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n Signal\n} from '@angular/core'\nimport { toSignal } from '@angular/core/rxjs-interop'\nimport { MatButtonModule } from '@angular/material/button'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatMenuModule } from '@angular/material/menu'\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router'\nimport { TranslateService } from '@ngx-translate/core'\nimport { filter, startWith } from 'rxjs'\n\n@Component({\n selector: 'ppw-toolbar',\n imports: [MatIconModule, MatMenuModule, MatButtonModule],\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolbarComponent {\n #translateService: TranslateService = inject(TranslateService)\n #router: Router = inject(Router)\n\n #languageChange = toSignal(this.#translateService.onLangChange.pipe(startWith(null)))\n #navigationEnd = toSignal(this.#router.events.pipe(filter((event) => event instanceof NavigationEnd)))\n\n // Inputs\n public showMenuToggle: InputSignal<boolean> = input(true)\n public isSidenavOpen: InputSignal<boolean> = input(true)\n public showPageTitle: InputSignal<boolean> = input(true)\n public toolbarHeightPx: InputSignal<number | undefined> = input()\n\n // Outputs\n public toggleSidebar: OutputEmitterRef<void> = output()\n\n public title: Signal<string | null> = computed(() => {\n // These act as triggers for the computed property.\n this.#languageChange()\n this.#navigationEnd()\n\n // Navigate to the last child route definition to get its title.\n let child: ActivatedRouteSnapshot = this.#router.routerState.snapshot.root\n while (child.firstChild) {\n child = child.firstChild\n }\n\n return child.title ? this.#translateService.instant(child.title) : null\n })\n}\n","<div class=\"ppw-toolbar\" [style.height.px]=\"toolbarHeightPx()\">\n <div class=\"ppw-toolbar-left-section align-items-center\">\n @if (showMenuToggle()) {\n <button class=\"ppw-toolbar-button\" (click)=\"toggleSidebar.emit()\">\n @if (!isSidenavOpen()) {\n <mat-icon>menu</mat-icon>\n } @else {\n <mat-icon>close</mat-icon>\n }\n </button>\n }\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n @if (showPageTitle() && title()) {\n <span class=\"ppw-toolbar-page-title\">{{ title() }}</span>\n }\n </div>\n <div class=\"ppw-toolbar-right-section padding-8\">\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </div>\n</div>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'\nimport { CommonModule } from '@angular/common'\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n InputSignal,\n Signal,\n viewChild\n} from '@angular/core'\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'\nimport { MatIcon } from '@angular/material/icon'\nimport { MatDrawer, MatSidenavModule } from '@angular/material/sidenav'\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterLink, RouterOutlet } from '@angular/router'\nimport { BreadcrumbComponent } from '@ppwcode/ng-router'\nimport { filter } from 'rxjs'\nimport { LeftSidenavComponent } from '../left-sidenav/left-sidenav.component'\nimport { SidebarOptions } from '../model/sidebar-options'\nimport { NavigationItem } from '../navigation-item/navigation-item.model'\nimport { ToolbarComponent } from '../toolbar/toolbar.component'\n\n@Component({\n selector: 'ppw-wireframe',\n imports: [\n CommonModule,\n MatSidenavModule,\n LeftSidenavComponent,\n ToolbarComponent,\n RouterOutlet,\n BreadcrumbComponent,\n MatIcon,\n RouterLink\n ],\n templateUrl: './wireframe.component.html',\n styleUrls: ['./wireframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WireframeComponent {\n #observer: BreakpointObserver = inject(BreakpointObserver)\n #router: Router = inject(Router)\n\n #breakpointChange = toSignal(\n this.#observer.observe([Breakpoints.XSmall, Breakpoints.Small]).pipe(takeUntilDestroyed())\n )\n #navigationEnd = toSignal(this.#router.events.pipe(filter((event) => event instanceof NavigationEnd)))\n\n // Inputs\n public navigationItems: InputSignal<Array<NavigationItem> | null> = input<Array<NavigationItem> | null>([])\n public sidebarOptions: InputSignal<SidebarOptions | undefined> = input()\n public toolbarHeightPx: InputSignal<number | undefined> = input()\n public hideSidenavWhenNoNavigationItems: InputSignal<boolean> = input(false)\n public showBreadcrumb: InputSignal<boolean> = input(false)\n\n // View children\n public matDrawer: Signal<MatDrawer | undefined> = viewChild(MatDrawer)\n\n public get sidebarIsOpen(): boolean {\n const drawer = this.matDrawer()\n if (drawer) {\n if (!drawer.opened) {\n return (\n !this.isSmallDevice() &&\n !this.isXSmallDevice() &&\n !this.sidebarOptions()?.closedByDefaultOnLargerDevice\n )\n }\n return drawer.opened\n }\n\n // When the drawer is not available it could mean two things:\n // 1. The drawer is forced to be not available.\n // 2. The drawer is not yet initialized.\n\n // In the first case the drawer is closed.\n if (this.forceHiddenSidenav()) {\n return false\n }\n\n // In the second case the drawer is open or closed depending on the device size.\n return !this.isSmallDevice() && !this.isXSmallDevice()\n }\n\n // Computed properties\n public showWireframe: Signal<boolean> = computed(() => {\n // This acts as a trigger for the computed property.\n this.#navigationEnd()\n\n let child: ActivatedRouteSnapshot = this.#router.routerState.snapshot.root\n while (child.firstChild) {\n child = child.firstChild\n }\n\n return child.data['showWireframe'] ?? true\n })\n\n public sidenavMode: Signal<'over' | 'side'> = computed(() => {\n const options = this.sidebarOptions()\n return this.isXSmallDevice() || !!options?.closedByDefaultOnLargerDevice ? 'over' : 'side'\n })\n\n public forceHiddenSidenav: Signal<boolean> = computed(() => {\n const navigationItems = this.navigationItems()\n return this.hideSidenavWhenNoNavigationItems() && (!navigationItems || navigationItems.length === 0)\n })\n\n public isSmallDevice: Signal<boolean> = this.#getComputedBreakpoint([Breakpoints.Small])\n public isXSmallDevice: Signal<boolean> = this.#getComputedBreakpoint([Breakpoints.XSmall])\n public isLargerDevice: Signal<boolean> = this.#getComputedBreakpoint([\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge\n ])\n\n // Methods\n public async onNavigate(): Promise<void> {\n // Automatically close the sidebar when the navigation is started on a small device where the sidebar is opened\n // as an overlay.\n if (this.sidenavMode() === 'over') {\n await this.closeSidebar()\n }\n }\n\n public async toggleSidebar(): Promise<void> {\n await this.matDrawer()?.toggle()\n }\n\n public async closeSidebar(): Promise<void> {\n await this.matDrawer()?.close()\n }\n\n #getComputedBreakpoint(breakpoints: Array<string>): Signal<boolean> {\n return computed(() => {\n this.#breakpointChange()\n return this.#observer.isMatched(breakpoints)\n })\n }\n}\n","<mat-drawer-container class=\"ppw-app-wireframe-container\">\n @if (showWireframe() && !forceHiddenSidenav()) {\n <mat-drawer\n [disableClose]=\"!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n [mode]=\"sidenavMode()\"\n [ngClass]=\"\n isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice ? 'drawer-full-width' : 'drawer'\n \"\n [opened]=\"!isSmallDevice() && !isXSmallDevice() && !sidebarOptions()?.closedByDefaultOnLargerDevice\"\n class=\"ppw-app-wireframe-drawer\"\n >\n <ppw-left-sidenav\n (closeSidebar)=\"closeSidebar()\"\n (navigated)=\"onNavigate()\"\n [navigationItems]=\"navigationItems()\"\n [centerLogo]=\"!!sidebarOptions()?.centerLogo\"\n [logoUrl]=\"sidebarOptions()?.logoUrl\"\n [logoHeight]=\"sidebarOptions()?.logoHeight ?? 100\"\n [logoWidth]=\"sidebarOptions()?.logoWidth ?? 100\"\n [showMenuCloseButton]=\"isXSmallDevice() || !!sidebarOptions()?.closedByDefaultOnLargerDevice\"\n >\n <div ppw-sidebar-top class=\"ppw-sidebar-top-content\">\n <ng-content select=\"[ppw-sidebar-top-content]\"></ng-content>\n </div>\n <div ppw-sidebar-bottom class=\"ppw-sidebar-bottom-content\">\n <ng-content select=\"[ppw-sidebar-bottom-content]\"></ng-content>\n </div>\n </ppw-left-sidenav>\n </mat-drawer>\n }\n <mat-drawer-content\n class=\"ppw-app-drawer-content\"\n [class.drawer-content-no-margin]=\"!!sidebarOptions()?.closedByDefaultOnLargerDevice || forceHiddenSidenav()\"\n >\n <div class=\"ppw-page-container\">\n @if (showWireframe()) {\n <ppw-toolbar\n (toggleSidebar)=\"toggleSidebar()\"\n [isSidenavOpen]=\"sidebarIsOpen\"\n [showPageTitle]=\"!!sidebarOptions()?.showPageTitle\"\n [toolbarHeightPx]=\"toolbarHeightPx()\"\n [showMenuToggle]=\"\n !forceHiddenSidenav() &&\n (!!sidebarOptions()?.closedByDefaultOnLargerDevice ||\n (!sidebarOptions()?.closedByDefaultOnLargerDevice &&\n (isSmallDevice() || (!sidebarIsOpen && !isLargerDevice()))))\n \"\n >\n <ng-container ppw-toolbar-left-content>\n <ng-content select=\"[ppw-toolbar-left-content]\"></ng-content>\n </ng-container>\n <ng-container ppw-toolbar-right-content>\n <ng-content select=\"[ppw-toolbar-right-content]\"></ng-content>\n </ng-container>\n </ppw-toolbar>\n }\n @if (showBreadcrumb()) {\n <ppw-breadcrumb>\n <ng-container ppw-breadcrumb-home>\n <ng-content select=\"[ppw-breadcrumb-home]\">\n <a routerLink=\"/\" class=\"ppw-home-page-breadcrumb\"><mat-icon>home</mat-icon></a>\n </ng-content></ng-container\n >\n </ppw-breadcrumb>\n }\n <div class=\"ppw-page-content\">\n <ng-content select=\"[ppw-page-content]\">\n <router-outlet></router-outlet>\n </ng-content>\n </div>\n </div>\n </mat-drawer-content>\n</mat-drawer-container>\n","/*\n * Public API Surface of ng-wireframe\n */\nexport * from './lib/pagination-bar/pagination-bar.component'\nexport * from './lib/navigation-item/navigation-item.model'\nexport * from './lib/left-sidenav/left-sidenav.component'\nexport * from './lib/toolbar/toolbar.component'\nexport * from './lib/wireframe/wireframe.component'\nexport * from './lib/model/sidebar-options'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
{
"name": "@ppwcode/ng-wireframe",
"version": "21.1.0",
"version": "21.1.1",
"repository": {

@@ -10,3 +10,3 @@ "url": "https://github.com/peopleware/angular-sdk"

"@angular/core": "^21.0.2",
"@ppwcode/ng-async": "^21.1.0"
"@ppwcode/ng-async": "^21.1.1"
},

@@ -13,0 +13,0 @@ "dependencies": {

@@ -0,0 +0,0 @@ # NgWireframe