@brggroup/share-lib 0.1.62 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1417,6 +1417,55 @@ class BaseComponent {
|
|
|
1417
1417
|
goto(url, isNewTab = false) {
|
|
1418
1418
|
if (!url)
|
|
1419
1419
|
return;
|
|
1420
|
+
if (url.startsWith('/')) {
|
|
1421
|
+
let currentRoute = this.router.routerState.root.snapshot;
|
|
1422
|
+
let currentProjectId = null;
|
|
1423
|
+
let currentHeaderMenuId = null;
|
|
1424
|
+
// 1. Lấy ID từ URL hiện tại đang đứng (State hiện tại)
|
|
1425
|
+
while (currentRoute) {
|
|
1426
|
+
if (currentRoute.params) {
|
|
1427
|
+
if (currentRoute.params['projectId'] && !currentProjectId) {
|
|
1428
|
+
currentProjectId = currentRoute.params['projectId'];
|
|
1429
|
+
}
|
|
1430
|
+
if (currentRoute.params['headerMenuId'] && !currentHeaderMenuId) {
|
|
1431
|
+
currentHeaderMenuId = currentRoute.params['headerMenuId'];
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1434
|
+
currentRoute = currentRoute.firstChild;
|
|
1435
|
+
}
|
|
1436
|
+
if (!currentProjectId)
|
|
1437
|
+
currentProjectId = this.getUrlParam('projectId');
|
|
1438
|
+
if (!currentHeaderMenuId)
|
|
1439
|
+
currentHeaderMenuId = this.getUrlParam('headerMenuId');
|
|
1440
|
+
// 2. Ưu tiên ID từ URL truyền vào (nếu người dùng click menu khác)
|
|
1441
|
+
let targetHeaderMenuId = currentHeaderMenuId;
|
|
1442
|
+
let targetProjectId = currentProjectId;
|
|
1443
|
+
// Regex bóc tách ID, dừng lại trước dấu "/" hoặc "?" (query param)
|
|
1444
|
+
const headerMenuRegex = /\/headermenuid\/([^\/\?]+)/i;
|
|
1445
|
+
const headerMatch = url.match(headerMenuRegex);
|
|
1446
|
+
if (headerMatch) {
|
|
1447
|
+
targetHeaderMenuId = headerMatch[1]; // Ghi đè bằng ID của menu mới click
|
|
1448
|
+
url = url.replace(headerMatch[0], ''); // Xóa phần /headermenuid/... ra khỏi url
|
|
1449
|
+
}
|
|
1450
|
+
const projectRegex = /\/projectid\/([^\/\?]+)/i;
|
|
1451
|
+
const projectMatch = url.match(projectRegex);
|
|
1452
|
+
if (projectMatch) {
|
|
1453
|
+
targetProjectId = projectMatch[1]; // Ghi đè bằng Project ID mới (nếu có)
|
|
1454
|
+
url = url.replace(projectMatch[0], ''); // Xóa phần /projectid/... ra khỏi url
|
|
1455
|
+
}
|
|
1456
|
+
if (!url.startsWith('/'))
|
|
1457
|
+
url = '/' + url;
|
|
1458
|
+
if (url === '/')
|
|
1459
|
+
url = '';
|
|
1460
|
+
if (targetProjectId) {
|
|
1461
|
+
url = `/projectid/${targetProjectId}${url}`;
|
|
1462
|
+
}
|
|
1463
|
+
if (targetHeaderMenuId) {
|
|
1464
|
+
url = `/headermenuid/${targetHeaderMenuId}${url}`;
|
|
1465
|
+
}
|
|
1466
|
+
if (url === '')
|
|
1467
|
+
url = '/';
|
|
1468
|
+
}
|
|
1420
1469
|
console.log('goto: ', url, isNewTab);
|
|
1421
1470
|
if (isNewTab) {
|
|
1422
1471
|
window.open(url, '_blank');
|
|
@@ -6681,7 +6730,7 @@ class RoleListComponent extends BaseComponent {
|
|
|
6681
6730
|
this.getData();
|
|
6682
6731
|
}
|
|
6683
6732
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RoleListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
6684
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: RoleListComponent, isStandalone: true, selector: "app-role-list", usesInheritance: true, ngImport: i0, template: "<div nz-row [nzGutter]=\"[0, 8]\">\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzGap=\"small\" nzJustify=\"end\">\r\n <button-add (click)=\"edit(null)\"></button-add>\r\n <button-search (click)=\"getData()\"></button-search>\r\n </div>\r\n </div>\r\n\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table\r\n #table\r\n [nzData]=\"this.data.LstItem || []\"\r\n [nzBordered]=\"true\"\r\n [nzSize]=\"'small'\"\r\n [nzFrontPagination]=\"false\"\r\n >\r\n <thead>\r\n <tr>\r\n <th nzWidth=\"50px\">#</th>\r\n <th>Code</th>\r\n <th>Name</th>\r\n <th>Description</th>\r\n <th>Active</th>\r\n <th nzWidth=\"75px\">Thao t\u00E1c</th>\r\n </tr>\r\n <tr class=\"tr-search\" (keyup.enter)=\"search()\">\r\n <th></th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Code\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Name\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of table.data; track $index; let i = $index) {\r\n <tr>\r\n <td>{{ i + 1 + filter.PageIndex * filter.PageSize }}</td>\r\n <td>{{ row.Code }}</td>\r\n <td>{{ row.Name }}</td>\r\n <td>{{ row.Description }}</td>\r\n <td class=\"center\">\r\n @if (row.IsActive) {\r\n <icon-check></icon-check>\r\n }\r\n </td>\r\n <td
|
|
6733
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: RoleListComponent, isStandalone: true, selector: "app-role-list", usesInheritance: true, ngImport: i0, template: "<div nz-row [nzGutter]=\"[0, 8]\">\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzGap=\"small\" nzJustify=\"end\">\r\n <button-add (click)=\"edit(null)\"></button-add>\r\n <button-search (click)=\"getData()\"></button-search>\r\n </div>\r\n </div>\r\n\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table\r\n #table\r\n [nzData]=\"this.data.LstItem || []\"\r\n [nzBordered]=\"true\"\r\n [nzSize]=\"'small'\"\r\n [nzFrontPagination]=\"false\"\r\n >\r\n <thead>\r\n <tr>\r\n <th nzWidth=\"50px\">#</th>\r\n <th>Code</th>\r\n <th>Name</th>\r\n <th>Description</th>\r\n <th>Active</th>\r\n <th nzWidth=\"75px\">Thao t\u00E1c</th>\r\n </tr>\r\n <tr class=\"tr-search\" (keyup.enter)=\"search()\">\r\n <th></th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Code\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Name\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of table.data; track $index; let i = $index) {\r\n <tr>\r\n <td>{{ i + 1 + filter.PageIndex * filter.PageSize }}</td>\r\n <td>{{ row.Code }}</td>\r\n <td>{{ row.Name }}</td>\r\n <td>{{ row.Description }}</td>\r\n <td class=\"center\">\r\n @if (row.IsActive) {\r\n <icon-check></icon-check>\r\n }\r\n </td>\r\n <td class=\"center\">\r\n <icon-edit (click)=\"edit(row)\"></icon-edit>\r\n <icon-delete (click)=\"delete(row)\"></icon-delete>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n </div>\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzJustify=\"end\">\r\n <nz-pagination\r\n [nzSize]=\"'small'\"\r\n [nzPageIndex]=\"filter.PageIndex + 1\"\r\n [nzPageSize]=\"filter.PageSize\"\r\n [nzTotal]=\"data.TotalCount || 0\"\r\n [nzShowSizeChanger]=\"true\"\r\n [nzShowTotal]=\"showTotalTpl\"\r\n [nzPageSizeOptions]=\"AppGlobals.pageSizeOptions\"\r\n (nzPageIndexChange)=\"onQueryParamsChange($event - 1, filter.PageSize)\"\r\n (nzPageSizeChange)=\"onQueryParamsChange(filter.PageIndex, $event)\"\r\n >\r\n </nz-pagination>\r\n\r\n <ng-template #showTotalTpl let-total let-range=\"range\">\r\n {{ range[0] | number }} - {{ range[1] | number }} / {{ total | number }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$3.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "component", type: ButtonAdd, selector: "button-add" }, { kind: "component", type: ButtonSearch, selector: "button-search" }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i6$1.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i6$1.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i6$1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i6$1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i6$1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i6$1.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "ngmodule", type: NzPaginationModule }, { kind: "component", type: i5$3.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }, { kind: "component", type: IconCheck, selector: "icon-check", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: IconEdit, selector: "icon-edit", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: IconDelete, selector: "icon-delete", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: ExtendInput, selector: "extend-input", inputs: ["label", "floatingLabel", "placeHolder", "labelAlign", "inputClass", "labelSpan", "labelFlex", "inputFlex", "showClear", "disabled", "readOnly", "required", "noBottom", "selectModeType", "autocomplete", "autofocus", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "size", "displayField", "valueField", "formData", "controlName", "_ngModel", "isSubmited"], outputs: ["_ngModelChange", "onclickClearIcon", "onenter"] }] });
|
|
6685
6734
|
}
|
|
6686
6735
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RoleListComponent, decorators: [{
|
|
6687
6736
|
type: Component,
|
|
@@ -6697,7 +6746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
6697
6746
|
IconEdit,
|
|
6698
6747
|
IconDelete,
|
|
6699
6748
|
ExtendInput,
|
|
6700
|
-
], template: "<div nz-row [nzGutter]=\"[0, 8]\">\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzGap=\"small\" nzJustify=\"end\">\r\n <button-add (click)=\"edit(null)\"></button-add>\r\n <button-search (click)=\"getData()\"></button-search>\r\n </div>\r\n </div>\r\n\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table\r\n #table\r\n [nzData]=\"this.data.LstItem || []\"\r\n [nzBordered]=\"true\"\r\n [nzSize]=\"'small'\"\r\n [nzFrontPagination]=\"false\"\r\n >\r\n <thead>\r\n <tr>\r\n <th nzWidth=\"50px\">#</th>\r\n <th>Code</th>\r\n <th>Name</th>\r\n <th>Description</th>\r\n <th>Active</th>\r\n <th nzWidth=\"75px\">Thao t\u00E1c</th>\r\n </tr>\r\n <tr class=\"tr-search\" (keyup.enter)=\"search()\">\r\n <th></th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Code\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Name\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of table.data; track $index; let i = $index) {\r\n <tr>\r\n <td>{{ i + 1 + filter.PageIndex * filter.PageSize }}</td>\r\n <td>{{ row.Code }}</td>\r\n <td>{{ row.Name }}</td>\r\n <td>{{ row.Description }}</td>\r\n <td class=\"center\">\r\n @if (row.IsActive) {\r\n <icon-check></icon-check>\r\n }\r\n </td>\r\n <td
|
|
6749
|
+
], template: "<div nz-row [nzGutter]=\"[0, 8]\">\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzGap=\"small\" nzJustify=\"end\">\r\n <button-add (click)=\"edit(null)\"></button-add>\r\n <button-search (click)=\"getData()\"></button-search>\r\n </div>\r\n </div>\r\n\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table\r\n #table\r\n [nzData]=\"this.data.LstItem || []\"\r\n [nzBordered]=\"true\"\r\n [nzSize]=\"'small'\"\r\n [nzFrontPagination]=\"false\"\r\n >\r\n <thead>\r\n <tr>\r\n <th nzWidth=\"50px\">#</th>\r\n <th>Code</th>\r\n <th>Name</th>\r\n <th>Description</th>\r\n <th>Active</th>\r\n <th nzWidth=\"75px\">Thao t\u00E1c</th>\r\n </tr>\r\n <tr class=\"tr-search\" (keyup.enter)=\"search()\">\r\n <th></th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Code\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th>\r\n <extend-input [size]=\"'small'\" [(_ngModel)]=\"filter.Name\" (onclickClearIcon)=\"search()\"></extend-input>\r\n </th>\r\n <th></th>\r\n <th></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of table.data; track $index; let i = $index) {\r\n <tr>\r\n <td>{{ i + 1 + filter.PageIndex * filter.PageSize }}</td>\r\n <td>{{ row.Code }}</td>\r\n <td>{{ row.Name }}</td>\r\n <td>{{ row.Description }}</td>\r\n <td class=\"center\">\r\n @if (row.IsActive) {\r\n <icon-check></icon-check>\r\n }\r\n </td>\r\n <td class=\"center\">\r\n <icon-edit (click)=\"edit(row)\"></icon-edit>\r\n <icon-delete (click)=\"delete(row)\"></icon-delete>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n </div>\r\n <div nz-col nzSpan=\"24\">\r\n <div nz-flex nzJustify=\"end\">\r\n <nz-pagination\r\n [nzSize]=\"'small'\"\r\n [nzPageIndex]=\"filter.PageIndex + 1\"\r\n [nzPageSize]=\"filter.PageSize\"\r\n [nzTotal]=\"data.TotalCount || 0\"\r\n [nzShowSizeChanger]=\"true\"\r\n [nzShowTotal]=\"showTotalTpl\"\r\n [nzPageSizeOptions]=\"AppGlobals.pageSizeOptions\"\r\n (nzPageIndexChange)=\"onQueryParamsChange($event - 1, filter.PageSize)\"\r\n (nzPageSizeChange)=\"onQueryParamsChange(filter.PageIndex, $event)\"\r\n >\r\n </nz-pagination>\r\n\r\n <ng-template #showTotalTpl let-total let-range=\"range\">\r\n {{ range[0] | number }} - {{ range[1] | number }} / {{ total | number }}\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
6701
6750
|
}] });
|
|
6702
6751
|
|
|
6703
6752
|
class RoleDetailComponent extends BaseComponent {
|
|
@@ -12472,7 +12521,7 @@ class RouteMonitorService {
|
|
|
12472
12521
|
}
|
|
12473
12522
|
let urlToCheck = url;
|
|
12474
12523
|
if (headerMenuId) {
|
|
12475
|
-
urlToCheck = urlToCheck.replace(
|
|
12524
|
+
urlToCheck = urlToCheck.replace(`/headermenuid/${headerMenuId}`, '');
|
|
12476
12525
|
if (urlToCheck === '') {
|
|
12477
12526
|
urlToCheck = '/';
|
|
12478
12527
|
}
|
|
@@ -13193,10 +13242,10 @@ class LayoutComponent extends BaseComponent {
|
|
|
13193
13242
|
}
|
|
13194
13243
|
this._handleHeaderMenu(menu.App_Menu_Id);
|
|
13195
13244
|
if (menu.Url) {
|
|
13196
|
-
this.goto(
|
|
13245
|
+
this.goto(`/headermenuid/${menu.App_Menu_Id}${menu.Url}`);
|
|
13197
13246
|
}
|
|
13198
13247
|
else {
|
|
13199
|
-
this.goto('/' + menu.App_Menu_Id);
|
|
13248
|
+
this.goto('/headermenuid/' + menu.App_Menu_Id);
|
|
13200
13249
|
}
|
|
13201
13250
|
}
|
|
13202
13251
|
_menuContainer;
|
|
@@ -13262,7 +13311,7 @@ class LayoutComponent extends BaseComponent {
|
|
|
13262
13311
|
this.cdr.detectChanges();
|
|
13263
13312
|
}
|
|
13264
13313
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13265
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutComponent, isStandalone: true, selector: "layout", viewQueries: [{ propertyName: "menuContainer", first: true, predicate: ["menuContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nz-layout class=\"app-layout\">\r\n <nz-header class=\"app-header\">\r\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\r\n @if (isCollapsed) {\r\n <div @fadeInOut>\r\n \r\n <button nz-button nzType=\"text\" style=\"color: var(--theme-text-color)\" (click)=\"visibleMenuDrawer = true\">\r\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\r\n </button>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"header-logo\"\r\n [style.width]=\"!isCollapsed ? siderWidthStorage : 'auto'\"\r\n [style.padding-right]=\"!isCollapsed ? '0' : '16px'\"\r\n >\r\n <div nz-flex nzJustify=\"center\" nzGap=\"small\" style=\"line-height: var(--app-header-height)\">\r\n <img\r\n *ngIf=\"logoUrl$ | async as url\"\r\n [src]=\"url\"\r\n style=\"padding: 4px; height: var(--app-header-height)\"\r\n hideIfError\r\n />\r\n @if (SYSTEM_NAME) {\r\n <h2 style=\"color: whitesmoke; margin-bottom: 0\">{{ SYSTEM_NAME }}</h2>\r\n } @else {\r\n -- o0o --\r\n }\r\n </div>\r\n </div>\r\n @if (!HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <box [width]=\"8\"></box>\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\r\n }\r\n\r\n @if (HEADER_MENU_IN_USE) {\r\n <div nz-col nzFlex=\"auto\" class=\"header-menu\" style=\"min-width: 0\" #menuContainer>\r\n <ul\r\n nz-menu\r\n nzTheme=\"light\"\r\n nzMode=\"horizontal\"\r\n style=\"display: flex; flex-wrap: nowrap; border-bottom: none; line-height: var(--app-header-height)\"\r\n >\r\n @for (item of visibleMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n\r\n @if (hiddenMenus.length > 0) {\r\n <li nz-submenu nzTitle=\". . .\" style=\"padding: 0 16px\">\r\n <ul>\r\n @for (item of hiddenMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <div style=\"display: flex; align-items: center; flex-shrink: 0; gap: 8px; padding-right: 16px\">\r\n <header-search></header-search>\r\n <app-notification-center></app-notification-center>\r\n <header-user></header-user>\r\n </div>\r\n </div>\r\n </nz-header>\r\n <nz-layout class=\"body-layout\">\r\n <nz-sider\r\n *ngIf=\"!LayoutComponent.noShowSideMenu\"\r\n class=\"menu-sidebar\"\r\n nzCollapsible\r\n [nzWidth]=\"siderWidth\"\r\n [nzCollapsedWidth]=\"0\"\r\n [(nzCollapsed)]=\"isCollapsed\"\r\n [nzTrigger]=\"null\"\r\n [nzTheme]=\"'dark'\"\r\n >\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv4.Url\"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n </div>\r\n <div class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\r\n\r\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\r\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" nz-tooltip=\"\u1EA8n menu\" />\r\n </span>\r\n </div>\r\n </div>\r\n </nz-sider>\r\n <nz-layout class=\"main-layout\">\r\n <nz-content class=\"content\">\r\n <div class=\"inner-content\">\r\n @if (HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\r\n <box [height]=\"8\"></box>\r\n }\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div nz-row class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\r\n </div>\r\n </div>\r\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\r\n </nz-content>\r\n </nz-layout>\r\n </nz-layout>\r\n</nz-layout>\r\n\r\n<nz-drawer\r\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\r\n [nzWidth]=\"350\"\r\n [nzClosable]=\"false\"\r\n [(nzVisible)]=\"visibleMenuDrawer\"\r\n [nzMaskClosable]=\"true\"\r\n nzPlacement=\"left\"\r\n nzTitle=\"\"\r\n (nzOnClose)=\"visibleMenuDrawer = false\"\r\n>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv4.Url\"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n <ng-template #afterTemplate>\r\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\r\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\r\n </button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,app-root{height:100%;margin:0}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{position:fixed;top:0;left:0;width:100%;height:var(--app-header-height);background:var(--theme-color);color:var(--theme-text-color);box-shadow:0 1px 4px #00152914;z-index:1000;display:flex;align-items:center;padding:0}.header-content{width:100%;flex-wrap:nowrap!important}.header-logo{height:var(--app-header-height);text-align:center;color:var(--theme-text-color);transition:width .3s;flex-shrink:0;overflow:hidden}.body-layout{display:flex;flex:1;margin-top:var(--app-header-height);height:calc(100vh - var(--app-header-height));overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - var(--app-header-height))}.menu-wapper{min-height:calc(100% - var(--app-footer-height))}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#fff;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#fff;min-height:calc(100% - var(--app-footer-height));padding:8px}.content-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:center}.sider-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:right}.trigger{margin-right:8px}.menu-sidebar .ant-menu-inline .ant-menu-item{margin-top:0;margin-bottom:0}::ng-deep .menu-wapper .anticon-file{display:none}:host ::ng-deep .ant-back-top{right:30px;bottom:40px}::ng-deep .same-theme-color .ant-drawer-content{background:var(--theme-menu-color)}.nz-tree-wapper{height:calc(100vh - var(--app-header-height) - var(--app-footer-height) - 32px);overflow-y:auto}.nz-tree-wapper.in-drawer{height:calc(100vh - 32px);overflow-y:auto}::ng-deep .menu-drawer .ant-drawer-body{padding:0}::ng-deep .ant-breadcrumb-link{cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-link{color:var(--theme-text-color);cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-separator{color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item:not(.ant-segmented-item-selected){color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item{border-left:1px solid}::ng-deep .header-menu .ant-segmented-item:last-child{border-right:1px solid}.suffix-wrap{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .18s cubic-bezier(.4,0,.2,1);transform:scale(.6) translate(4px)}.suffix-icon.show{opacity:1;pointer-events:auto;transform:scale(1) translate(0)}.search{color:#00000073}.delete{color:#bfbfbf}.delete.show{animation:popIn .18s ease}::ng-deep .header-menu .ant-menu-horizontal{background-color:transparent!important;border-bottom:none!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu{color:var(--theme-text-color)!important;opacity:.85;font-weight:600}::ng-deep .header-menu .ant-menu-submenu-title .anticon{color:var(--theme-text-color)!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected{color:var(--theme-text-color)!important;opacity:1;background-color:#ffffff1a!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected:after{border-bottom-color:#40a9ff!important}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: NzLayoutModule }, { kind: "component", type: i2$4.NzLayoutComponent, selector: "nz-layout", exportAs: ["nzLayout"] }, { kind: "component", type: i2$4.NzHeaderComponent, selector: "nz-header", exportAs: ["nzHeader"] }, { kind: "component", type: i2$4.NzContentComponent, selector: "nz-content", exportAs: ["nzContent"] }, { kind: "component", type: i2$4.NzSiderComponent, selector: "nz-sider", inputs: ["nzWidth", "nzTheme", "nzCollapsedWidth", "nzBreakpoint", "nzZeroTrigger", "nzTrigger", "nzReverseArrow", "nzCollapsible", "nzCollapsed"], outputs: ["nzCollapsedChange"], exportAs: ["nzSider"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i4$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i4$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4$2.NzSubMenuComponent, selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzTriggerSubMenuAction", "nzOpen", "nzDisabled", "nzPlacement"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$3.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i2$2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3$2.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i4$1.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "component", type: Breadcrumb, selector: "app-breadcrumb" }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i6$2.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "ngmodule", type: NzBackTopModule }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i4$3.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i4$3.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i5$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i5$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i5$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: Box, selector: "box", inputs: ["display", "width", "height"] }, { kind: "ngmodule", type: NzSegmentedModule }, { kind: "component", type: LayoutUser, selector: "header-user" }, { kind: "component", type: IconDelete, selector: "icon-delete", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: IconSearch, selector: "icon-search", inputs: ["size"], outputs: ["click"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "directive", type: HideIfErrorDirective, selector: "img[hideIfError]" }, { kind: "component", type: NotificationCenterComponent, selector: "app-notification-center" }, { kind: "component", type: HeaderSearchComponent, selector: "header-search", inputs: ["searchValue"], outputs: ["searchValueChange", "onSearch"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i8.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzMenuModule }], animations: [fadeInOut] });
|
|
13314
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutComponent, isStandalone: true, selector: "layout", viewQueries: [{ propertyName: "menuContainer", first: true, predicate: ["menuContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<nz-layout class=\"app-layout\">\r\n <nz-header class=\"app-header\">\r\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\r\n @if (isCollapsed) {\r\n <div @fadeInOut>\r\n \r\n <button nz-button nzType=\"text\" style=\"color: var(--theme-text-color)\" (click)=\"visibleMenuDrawer = true\">\r\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\r\n </button>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"header-logo\"\r\n [style.width]=\"!isCollapsed ? siderWidthStorage : 'auto'\"\r\n [style.padding-right]=\"!isCollapsed ? '0' : '16px'\"\r\n >\r\n <div nz-flex nzJustify=\"center\" nzGap=\"small\" style=\"line-height: var(--app-header-height)\">\r\n <img\r\n *ngIf=\"logoUrl$ | async as url\"\r\n [src]=\"url\"\r\n style=\"padding: 4px; height: var(--app-header-height)\"\r\n hideIfError\r\n />\r\n @if (SYSTEM_NAME) {\r\n <h2 style=\"color: whitesmoke; margin-bottom: 0\">{{ SYSTEM_NAME }}</h2>\r\n } @else {\r\n -- o0o --\r\n }\r\n </div>\r\n </div>\r\n @if (!HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <box [width]=\"8\"></box>\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\r\n }\r\n\r\n @if (HEADER_MENU_IN_USE) {\r\n <div nz-col nzFlex=\"auto\" class=\"header-menu\" style=\"min-width: 0\" #menuContainer>\r\n <ul\r\n nz-menu\r\n nzTheme=\"light\"\r\n nzMode=\"horizontal\"\r\n style=\"display: flex; flex-wrap: nowrap; border-bottom: none; line-height: var(--app-header-height)\"\r\n >\r\n @for (item of visibleMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n\r\n @if (hiddenMenus.length > 0) {\r\n <li nz-submenu nzTitle=\". . .\" style=\"padding: 0 16px\">\r\n <ul>\r\n @for (item of hiddenMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <div style=\"display: flex; align-items: center; flex-shrink: 0; gap: 8px; padding-right: 16px\">\r\n <header-search></header-search>\r\n <app-notification-center></app-notification-center>\r\n <header-user></header-user>\r\n </div>\r\n </div>\r\n </nz-header>\r\n <nz-layout class=\"body-layout\">\r\n <nz-sider\r\n *ngIf=\"!LayoutComponent.noShowSideMenu\"\r\n class=\"menu-sidebar\"\r\n nzCollapsible\r\n [nzWidth]=\"siderWidth\"\r\n [nzCollapsedWidth]=\"0\"\r\n [(nzCollapsed)]=\"isCollapsed\"\r\n [nzTrigger]=\"null\"\r\n [nzTheme]=\"'dark'\"\r\n >\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv4.Url\r\n \"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv3.Url\r\n \"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n </div>\r\n <div class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\r\n\r\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\r\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" nz-tooltip=\"\u1EA8n menu\" />\r\n </span>\r\n </div>\r\n </div>\r\n </nz-sider>\r\n <nz-layout class=\"main-layout\">\r\n <nz-content class=\"content\">\r\n <div class=\"inner-content\">\r\n @if (HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\r\n <box [height]=\"8\"></box>\r\n }\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div nz-row class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\r\n </div>\r\n </div>\r\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\r\n </nz-content>\r\n </nz-layout>\r\n </nz-layout>\r\n</nz-layout>\r\n\r\n<nz-drawer\r\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\r\n [nzWidth]=\"350\"\r\n [nzClosable]=\"false\"\r\n [(nzVisible)]=\"visibleMenuDrawer\"\r\n [nzMaskClosable]=\"true\"\r\n nzPlacement=\"left\"\r\n nzTitle=\"\"\r\n (nzOnClose)=\"visibleMenuDrawer = false\"\r\n>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv4.Url\r\n \"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n <ng-template #afterTemplate>\r\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\r\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\r\n </button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,app-root{height:100%;margin:0}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{position:fixed;top:0;left:0;width:100%;height:var(--app-header-height);background:var(--theme-color);color:var(--theme-text-color);box-shadow:0 1px 4px #00152914;z-index:1000;display:flex;align-items:center;padding:0}.header-content{width:100%;flex-wrap:nowrap!important}.header-logo{height:var(--app-header-height);text-align:center;color:var(--theme-text-color);transition:width .3s;flex-shrink:0;overflow:hidden}.body-layout{display:flex;flex:1;margin-top:var(--app-header-height);height:calc(100vh - var(--app-header-height));overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - var(--app-header-height))}.menu-wapper{min-height:calc(100% - var(--app-footer-height))}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#fff;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#fff;min-height:calc(100% - var(--app-footer-height));padding:8px}.content-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:center}.sider-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:right}.trigger{margin-right:8px}.menu-sidebar .ant-menu-inline .ant-menu-item{margin-top:0;margin-bottom:0}::ng-deep .menu-wapper .anticon-file{display:none}:host ::ng-deep .ant-back-top{right:30px;bottom:40px}::ng-deep .same-theme-color .ant-drawer-content{background:var(--theme-menu-color)}.nz-tree-wapper{height:calc(100vh - var(--app-header-height) - var(--app-footer-height) - 32px);overflow-y:auto}.nz-tree-wapper.in-drawer{height:calc(100vh - 32px);overflow-y:auto}::ng-deep .menu-drawer .ant-drawer-body{padding:0}::ng-deep .ant-breadcrumb-link{cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-link{color:var(--theme-text-color);cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-separator{color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item:not(.ant-segmented-item-selected){color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item{border-left:1px solid}::ng-deep .header-menu .ant-segmented-item:last-child{border-right:1px solid}.suffix-wrap{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .18s cubic-bezier(.4,0,.2,1);transform:scale(.6) translate(4px)}.suffix-icon.show{opacity:1;pointer-events:auto;transform:scale(1) translate(0)}.search{color:#00000073}.delete{color:#bfbfbf}.delete.show{animation:popIn .18s ease}::ng-deep .header-menu .ant-menu-horizontal{background-color:transparent!important;border-bottom:none!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu{color:var(--theme-text-color)!important;opacity:.85;font-weight:600}::ng-deep .header-menu .ant-menu-submenu-title .anticon{color:var(--theme-text-color)!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected{color:var(--theme-text-color)!important;opacity:1;background-color:#ffffff1a!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected:after{border-bottom-color:#40a9ff!important}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: NzLayoutModule }, { kind: "component", type: i2$4.NzLayoutComponent, selector: "nz-layout", exportAs: ["nzLayout"] }, { kind: "component", type: i2$4.NzHeaderComponent, selector: "nz-header", exportAs: ["nzHeader"] }, { kind: "component", type: i2$4.NzContentComponent, selector: "nz-content", exportAs: ["nzContent"] }, { kind: "component", type: i2$4.NzSiderComponent, selector: "nz-sider", inputs: ["nzWidth", "nzTheme", "nzCollapsedWidth", "nzBreakpoint", "nzZeroTrigger", "nzTrigger", "nzReverseArrow", "nzCollapsible", "nzCollapsed"], outputs: ["nzCollapsedChange"], exportAs: ["nzSider"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i4$2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i4$2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4$2.NzSubMenuComponent, selector: "[nz-submenu]", inputs: ["nzMenuClassName", "nzPaddingLeft", "nzTitle", "nzIcon", "nzTriggerSubMenuAction", "nzOpen", "nzDisabled", "nzPlacement"], outputs: ["nzOpenChange"], exportAs: ["nzSubmenu"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$3.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i2$2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3$2.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i4$1.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "component", type: Breadcrumb, selector: "app-breadcrumb" }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i6$2.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "ngmodule", type: NzBackTopModule }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i4$3.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i4$3.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i5$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i5$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i5$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: Box, selector: "box", inputs: ["display", "width", "height"] }, { kind: "ngmodule", type: NzSegmentedModule }, { kind: "component", type: LayoutUser, selector: "header-user" }, { kind: "component", type: IconDelete, selector: "icon-delete", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: IconSearch, selector: "icon-search", inputs: ["size"], outputs: ["click"] }, { kind: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "directive", type: HideIfErrorDirective, selector: "img[hideIfError]" }, { kind: "component", type: NotificationCenterComponent, selector: "app-notification-center" }, { kind: "component", type: HeaderSearchComponent, selector: "header-search", inputs: ["searchValue"], outputs: ["searchValueChange", "onSearch"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i8.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzMenuModule }], animations: [fadeInOut] });
|
|
13266
13315
|
}
|
|
13267
13316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
13268
13317
|
type: Component,
|
|
@@ -13295,7 +13344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
13295
13344
|
HeaderSearchComponent,
|
|
13296
13345
|
NzToolTipModule,
|
|
13297
13346
|
NzMenuModule,
|
|
13298
|
-
], animations: [fadeInOut], template: "<nz-layout class=\"app-layout\">\r\n <nz-header class=\"app-header\">\r\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\r\n @if (isCollapsed) {\r\n <div @fadeInOut>\r\n \r\n <button nz-button nzType=\"text\" style=\"color: var(--theme-text-color)\" (click)=\"visibleMenuDrawer = true\">\r\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\r\n </button>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"header-logo\"\r\n [style.width]=\"!isCollapsed ? siderWidthStorage : 'auto'\"\r\n [style.padding-right]=\"!isCollapsed ? '0' : '16px'\"\r\n >\r\n <div nz-flex nzJustify=\"center\" nzGap=\"small\" style=\"line-height: var(--app-header-height)\">\r\n <img\r\n *ngIf=\"logoUrl$ | async as url\"\r\n [src]=\"url\"\r\n style=\"padding: 4px; height: var(--app-header-height)\"\r\n hideIfError\r\n />\r\n @if (SYSTEM_NAME) {\r\n <h2 style=\"color: whitesmoke; margin-bottom: 0\">{{ SYSTEM_NAME }}</h2>\r\n } @else {\r\n -- o0o --\r\n }\r\n </div>\r\n </div>\r\n @if (!HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <box [width]=\"8\"></box>\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\r\n }\r\n\r\n @if (HEADER_MENU_IN_USE) {\r\n <div nz-col nzFlex=\"auto\" class=\"header-menu\" style=\"min-width: 0\" #menuContainer>\r\n <ul\r\n nz-menu\r\n nzTheme=\"light\"\r\n nzMode=\"horizontal\"\r\n style=\"display: flex; flex-wrap: nowrap; border-bottom: none; line-height: var(--app-header-height)\"\r\n >\r\n @for (item of visibleMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n\r\n @if (hiddenMenus.length > 0) {\r\n <li nz-submenu nzTitle=\". . .\" style=\"padding: 0 16px\">\r\n <ul>\r\n @for (item of hiddenMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <div style=\"display: flex; align-items: center; flex-shrink: 0; gap: 8px; padding-right: 16px\">\r\n <header-search></header-search>\r\n <app-notification-center></app-notification-center>\r\n <header-user></header-user>\r\n </div>\r\n </div>\r\n </nz-header>\r\n <nz-layout class=\"body-layout\">\r\n <nz-sider\r\n *ngIf=\"!LayoutComponent.noShowSideMenu\"\r\n class=\"menu-sidebar\"\r\n nzCollapsible\r\n [nzWidth]=\"siderWidth\"\r\n [nzCollapsedWidth]=\"0\"\r\n [(nzCollapsed)]=\"isCollapsed\"\r\n [nzTrigger]=\"null\"\r\n [nzTheme]=\"'dark'\"\r\n >\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv4.Url\"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n </div>\r\n <div class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\r\n\r\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\r\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" nz-tooltip=\"\u1EA8n menu\" />\r\n </span>\r\n </div>\r\n </div>\r\n </nz-sider>\r\n <nz-layout class=\"main-layout\">\r\n <nz-content class=\"content\">\r\n <div class=\"inner-content\">\r\n @if (HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\r\n <box [height]=\"8\"></box>\r\n }\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div nz-row class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\r\n </div>\r\n </div>\r\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\r\n </nz-content>\r\n </nz-layout>\r\n </nz-layout>\r\n</nz-layout>\r\n\r\n<nz-drawer\r\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\r\n [nzWidth]=\"350\"\r\n [nzClosable]=\"false\"\r\n [(nzVisible)]=\"visibleMenuDrawer\"\r\n [nzMaskClosable]=\"true\"\r\n nzPlacement=\"left\"\r\n nzTitle=\"\"\r\n (nzOnClose)=\"visibleMenuDrawer = false\"\r\n>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv4.Url\"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n <ng-template #afterTemplate>\r\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\r\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\r\n </button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,app-root{height:100%;margin:0}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{position:fixed;top:0;left:0;width:100%;height:var(--app-header-height);background:var(--theme-color);color:var(--theme-text-color);box-shadow:0 1px 4px #00152914;z-index:1000;display:flex;align-items:center;padding:0}.header-content{width:100%;flex-wrap:nowrap!important}.header-logo{height:var(--app-header-height);text-align:center;color:var(--theme-text-color);transition:width .3s;flex-shrink:0;overflow:hidden}.body-layout{display:flex;flex:1;margin-top:var(--app-header-height);height:calc(100vh - var(--app-header-height));overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - var(--app-header-height))}.menu-wapper{min-height:calc(100% - var(--app-footer-height))}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#fff;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#fff;min-height:calc(100% - var(--app-footer-height));padding:8px}.content-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:center}.sider-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:right}.trigger{margin-right:8px}.menu-sidebar .ant-menu-inline .ant-menu-item{margin-top:0;margin-bottom:0}::ng-deep .menu-wapper .anticon-file{display:none}:host ::ng-deep .ant-back-top{right:30px;bottom:40px}::ng-deep .same-theme-color .ant-drawer-content{background:var(--theme-menu-color)}.nz-tree-wapper{height:calc(100vh - var(--app-header-height) - var(--app-footer-height) - 32px);overflow-y:auto}.nz-tree-wapper.in-drawer{height:calc(100vh - 32px);overflow-y:auto}::ng-deep .menu-drawer .ant-drawer-body{padding:0}::ng-deep .ant-breadcrumb-link{cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-link{color:var(--theme-text-color);cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-separator{color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item:not(.ant-segmented-item-selected){color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item{border-left:1px solid}::ng-deep .header-menu .ant-segmented-item:last-child{border-right:1px solid}.suffix-wrap{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .18s cubic-bezier(.4,0,.2,1);transform:scale(.6) translate(4px)}.suffix-icon.show{opacity:1;pointer-events:auto;transform:scale(1) translate(0)}.search{color:#00000073}.delete{color:#bfbfbf}.delete.show{animation:popIn .18s ease}::ng-deep .header-menu .ant-menu-horizontal{background-color:transparent!important;border-bottom:none!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu{color:var(--theme-text-color)!important;opacity:.85;font-weight:600}::ng-deep .header-menu .ant-menu-submenu-title .anticon{color:var(--theme-text-color)!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected{color:var(--theme-text-color)!important;opacity:1;background-color:#ffffff1a!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected:after{border-bottom-color:#40a9ff!important}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"] }]
|
|
13347
|
+
], animations: [fadeInOut], template: "<nz-layout class=\"app-layout\">\r\n <nz-header class=\"app-header\">\r\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\r\n @if (isCollapsed) {\r\n <div @fadeInOut>\r\n \r\n <button nz-button nzType=\"text\" style=\"color: var(--theme-text-color)\" (click)=\"visibleMenuDrawer = true\">\r\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\r\n </button>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"header-logo\"\r\n [style.width]=\"!isCollapsed ? siderWidthStorage : 'auto'\"\r\n [style.padding-right]=\"!isCollapsed ? '0' : '16px'\"\r\n >\r\n <div nz-flex nzJustify=\"center\" nzGap=\"small\" style=\"line-height: var(--app-header-height)\">\r\n <img\r\n *ngIf=\"logoUrl$ | async as url\"\r\n [src]=\"url\"\r\n style=\"padding: 4px; height: var(--app-header-height)\"\r\n hideIfError\r\n />\r\n @if (SYSTEM_NAME) {\r\n <h2 style=\"color: whitesmoke; margin-bottom: 0\">{{ SYSTEM_NAME }}</h2>\r\n } @else {\r\n -- o0o --\r\n }\r\n </div>\r\n </div>\r\n @if (!HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <box [width]=\"8\"></box>\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\r\n }\r\n\r\n @if (HEADER_MENU_IN_USE) {\r\n <div nz-col nzFlex=\"auto\" class=\"header-menu\" style=\"min-width: 0\" #menuContainer>\r\n <ul\r\n nz-menu\r\n nzTheme=\"light\"\r\n nzMode=\"horizontal\"\r\n style=\"display: flex; flex-wrap: nowrap; border-bottom: none; line-height: var(--app-header-height)\"\r\n >\r\n @for (item of visibleMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n\r\n @if (hiddenMenus.length > 0) {\r\n <li nz-submenu nzTitle=\". . .\" style=\"padding: 0 16px\">\r\n <ul>\r\n @for (item of hiddenMenus; track item) {\r\n <li\r\n nz-menu-item\r\n [nzSelected]=\"this.currentHeaderId === item.App_Menu_Id\"\r\n (click)=\"handleValueChangeHeaderMenu(item)\"\r\n >\r\n {{ item.Name }}\r\n </li>\r\n }\r\n </ul>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <div style=\"display: flex; align-items: center; flex-shrink: 0; gap: 8px; padding-right: 16px\">\r\n <header-search></header-search>\r\n <app-notification-center></app-notification-center>\r\n <header-user></header-user>\r\n </div>\r\n </div>\r\n </nz-header>\r\n <nz-layout class=\"body-layout\">\r\n <nz-sider\r\n *ngIf=\"!LayoutComponent.noShowSideMenu\"\r\n class=\"menu-sidebar\"\r\n nzCollapsible\r\n [nzWidth]=\"siderWidth\"\r\n [nzCollapsedWidth]=\"0\"\r\n [(nzCollapsed)]=\"isCollapsed\"\r\n [nzTrigger]=\"null\"\r\n [nzTheme]=\"'dark'\"\r\n >\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv4.Url\r\n \"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv3.Url\r\n \"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n </div>\r\n <div class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\r\n\r\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\r\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" nz-tooltip=\"\u1EA8n menu\" />\r\n </span>\r\n </div>\r\n </div>\r\n </nz-sider>\r\n <nz-layout class=\"main-layout\">\r\n <nz-content class=\"content\">\r\n <div class=\"inner-content\">\r\n @if (HEADER_MENU_IN_USE && !LayoutComponent.noShowBreadcrumb) {\r\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\r\n <box [height]=\"8\"></box>\r\n }\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div nz-row class=\"sider-footer\" style=\"height: var(--app-footer-height)\">\r\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 10px; color: lightgray\">\r\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\r\n </div>\r\n </div>\r\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\r\n </nz-content>\r\n </nz-layout>\r\n </nz-layout>\r\n</nz-layout>\r\n\r\n<nz-drawer\r\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\r\n [nzWidth]=\"350\"\r\n [nzClosable]=\"false\"\r\n [(nzVisible)]=\"visibleMenuDrawer\"\r\n [nzMaskClosable]=\"true\"\r\n nzPlacement=\"left\"\r\n nzTitle=\"\"\r\n (nzOnClose)=\"visibleMenuDrawer = false\"\r\n>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"menu-wapper\">\r\n @if (MENU_TYPE == 1) {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <nz-tree\r\n [nzData]=\"nodes\"\r\n [nzSearchValue]=\"searchValue\"\r\n [nzShowLine]=\"true\"\r\n [nzSelectedKeys]=\"selectedKeys\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n (nzClick)=\"nzEvent($event)\"\r\n ></nz-tree>\r\n </div>\r\n } @else {\r\n <div class=\"nz-tree-wapper in-drawer\">\r\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\r\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\r\n @if (menuLv1.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\r\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\r\n @if (menuLv2.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\r\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\r\n @if (menuLv3.SubMenu?.length) {\r\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\r\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\r\n @if (menuLv4.SubMenu?.length) {\r\n <ul\r\n nz-submenu\r\n [nzOpen]=\"menuLv4.Open\"\r\n [nzTitle]=\"menuLv4.Name\"\r\n [nzIcon]=\"menuLv4.Icon\"\r\n >\r\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"\r\n (currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv4.Url\r\n \"\r\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv3.Url\"\r\n [innerHTML]=\"menuLv3.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv2.Url\"\r\n [innerHTML]=\"menuLv2.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n } @else {\r\n <li nz-menu-item nzMatchRouter>\r\n <a\r\n [routerLink]=\"(currentHeaderId ? '/headermenuid/' + currentHeaderId : '') + menuLv1.Url\"\r\n [innerHTML]=\"menuLv1.Name | highlight: searchValue\"\r\n ></a>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\r\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\r\n </nz-input-group>\r\n <ng-template #suffixTemplate>\r\n <span class=\"suffix-wrap\">\r\n <icon-delete\r\n class=\"suffix-icon delete\"\r\n [class.show]=\"searchValue\"\r\n [size]=\"14\"\r\n (click)=\"searchValue = ''\"\r\n ></icon-delete>\r\n\r\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\r\n </span>\r\n </ng-template>\r\n <ng-template #afterTemplate>\r\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\r\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\r\n </button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,app-root{height:100%;margin:0}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{position:fixed;top:0;left:0;width:100%;height:var(--app-header-height);background:var(--theme-color);color:var(--theme-text-color);box-shadow:0 1px 4px #00152914;z-index:1000;display:flex;align-items:center;padding:0}.header-content{width:100%;flex-wrap:nowrap!important}.header-logo{height:var(--app-header-height);text-align:center;color:var(--theme-text-color);transition:width .3s;flex-shrink:0;overflow:hidden}.body-layout{display:flex;flex:1;margin-top:var(--app-header-height);height:calc(100vh - var(--app-header-height));overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - var(--app-header-height))}.menu-wapper{min-height:calc(100% - var(--app-footer-height))}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#fff;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#fff;min-height:calc(100% - var(--app-footer-height));padding:8px}.content-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:center}.sider-footer{background:var(--theme-color);color:var(--theme-text-color);align-items:center;text-align:right}.trigger{margin-right:8px}.menu-sidebar .ant-menu-inline .ant-menu-item{margin-top:0;margin-bottom:0}::ng-deep .menu-wapper .anticon-file{display:none}:host ::ng-deep .ant-back-top{right:30px;bottom:40px}::ng-deep .same-theme-color .ant-drawer-content{background:var(--theme-menu-color)}.nz-tree-wapper{height:calc(100vh - var(--app-header-height) - var(--app-footer-height) - 32px);overflow-y:auto}.nz-tree-wapper.in-drawer{height:calc(100vh - 32px);overflow-y:auto}::ng-deep .menu-drawer .ant-drawer-body{padding:0}::ng-deep .ant-breadcrumb-link{cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-link{color:var(--theme-text-color);cursor:pointer}::ng-deep .breadcrumb-header .ant-breadcrumb-separator{color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item:not(.ant-segmented-item-selected){color:var(--theme-text-color)}::ng-deep .header-menu .ant-segmented-item{border-left:1px solid}::ng-deep .header-menu .ant-segmented-item:last-child{border-right:1px solid}.suffix-wrap{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .18s cubic-bezier(.4,0,.2,1);transform:scale(.6) translate(4px)}.suffix-icon.show{opacity:1;pointer-events:auto;transform:scale(1) translate(0)}.search{color:#00000073}.delete{color:#bfbfbf}.delete.show{animation:popIn .18s ease}::ng-deep .header-menu .ant-menu-horizontal{background-color:transparent!important;border-bottom:none!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu{color:var(--theme-text-color)!important;opacity:.85;font-weight:600}::ng-deep .header-menu .ant-menu-submenu-title .anticon{color:var(--theme-text-color)!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected{color:var(--theme-text-color)!important;opacity:1;background-color:#ffffff1a!important}::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu:hover:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-item-selected:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-open:after,::ng-deep .header-menu .ant-menu-horizontal>.ant-menu-submenu-selected:after{border-bottom-color:#40a9ff!important}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"] }]
|
|
13299
13348
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { menuContainer: [{
|
|
13300
13349
|
type: ViewChild,
|
|
13301
13350
|
args: ['menuContainer']
|