@brggroup/share-lib 0.1.44 → 0.1.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/brggroup-share-lib.mjs +201 -73
- package/fesm2022/brggroup-share-lib.mjs.map +1 -1
- package/lib/components/custom-noti/custom-noti.component.d.ts +11 -0
- package/lib/components/custom-noti/custom-noti.component.d.ts.map +1 -0
- package/lib/components/extend-table/extend-table.component.d.ts +5 -1
- package/lib/components/extend-table/extend-table.component.d.ts.map +1 -1
- package/lib/components/layout/layout.component.d.ts.map +1 -1
- package/lib/services/noti.service.d.ts +2 -2
- package/lib/services/noti.service.d.ts.map +1 -1
- package/lib/services/notification.service.d.ts +25 -0
- package/lib/services/notification.service.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/public-api.d.ts.map +1 -1
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, NgZone, Component, HostListener, ViewContainerRef, Input, ViewChild, EventEmitter, Output, Directive, Optional, Self, HostBinding, Pipe, forwardRef } from '@angular/core';
|
|
3
|
-
import * as i1$
|
|
3
|
+
import * as i1$6 from '@angular/router';
|
|
4
4
|
import { Router, ActivatedRoute, NavigationEnd, RouterLink, RouterOutlet } from '@angular/router';
|
|
5
5
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
|
6
6
|
import * as i3 from '@ngx-translate/core';
|
|
7
7
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
8
8
|
import { firstValueFrom, fromEvent, startWith, map, BehaviorSubject, of, catchError, throwError, finalize, from, switchMap as switchMap$1, take, filter, Subject, takeUntil as takeUntil$1 } from 'rxjs';
|
|
9
|
-
import
|
|
10
|
-
import * as i1 from 'ng-zorro-antd/modal';
|
|
9
|
+
import * as i1$1 from 'ng-zorro-antd/modal';
|
|
11
10
|
import { NzModalService, NzModalComponent, NzModalContentDirective, NzModalTitleDirective, NzModalFooterDirective } from 'ng-zorro-antd/modal';
|
|
11
|
+
import * as i1 from 'ng-zorro-antd/notification';
|
|
12
12
|
import { jwtDecode } from 'jwt-decode';
|
|
13
13
|
import { switchMap, distinctUntilChanged, filter as filter$1, takeUntil } from 'rxjs/operators';
|
|
14
14
|
import * as i2$1 from '@angular/forms';
|
|
15
15
|
import { FormGroup, FormsModule, ReactiveFormsModule, Validators, NG_VALUE_ACCESSOR, FormBuilder } from '@angular/forms';
|
|
16
|
-
import * as i1$
|
|
16
|
+
import * as i1$4 from '@angular/common';
|
|
17
17
|
import { Location, CommonModule, NgTemplateOutlet, DecimalPipe } from '@angular/common';
|
|
18
18
|
import { Overlay } from '@angular/cdk/overlay';
|
|
19
19
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
20
|
-
import * as i1$
|
|
20
|
+
import * as i1$2 from 'ng-zorro-antd/breadcrumb';
|
|
21
21
|
import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
|
|
22
|
-
import * as i1$
|
|
22
|
+
import * as i1$3 from 'ng-zorro-antd/icon';
|
|
23
23
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
24
24
|
import { Chart, registerables } from 'chart.js';
|
|
25
25
|
import * as i4 from 'ng-zorro-antd/grid';
|
|
@@ -42,9 +42,9 @@ import { NzTableModule } from 'ng-zorro-antd/table';
|
|
|
42
42
|
import * as i8 from 'ng-zorro-antd/button';
|
|
43
43
|
import { NzButtonModule } from 'ng-zorro-antd/button';
|
|
44
44
|
import * as i4$1 from 'ng-zorro-antd/core/transition-patch';
|
|
45
|
-
import * as i1$
|
|
45
|
+
import * as i1$5 from 'ng-zorro-antd/pagination';
|
|
46
46
|
import { NzPaginationModule } from 'ng-zorro-antd/pagination';
|
|
47
|
-
import * as i1$
|
|
47
|
+
import * as i1$7 from 'ngx-extended-pdf-viewer';
|
|
48
48
|
import { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';
|
|
49
49
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
50
50
|
import * as i2$3 from 'ng-zorro-antd/spin';
|
|
@@ -272,12 +272,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
272
272
|
args: [{ providedIn: 'root' }]
|
|
273
273
|
}] });
|
|
274
274
|
|
|
275
|
+
class CustomNotiService {
|
|
276
|
+
notification;
|
|
277
|
+
static defaultDuration = 2000;
|
|
278
|
+
static defaultPlacement = 'topRight';
|
|
279
|
+
globalTemplate;
|
|
280
|
+
constructor(notification) {
|
|
281
|
+
this.notification = notification;
|
|
282
|
+
}
|
|
283
|
+
registerTemplate(tpl) {
|
|
284
|
+
this.globalTemplate = tpl;
|
|
285
|
+
}
|
|
286
|
+
success(title, content, options) {
|
|
287
|
+
this.show('success', title, content, options);
|
|
288
|
+
}
|
|
289
|
+
warning(title, content, options) {
|
|
290
|
+
this.show('warning', title, content, options);
|
|
291
|
+
}
|
|
292
|
+
error(title, content, options) {
|
|
293
|
+
this.show('error', title, content, options);
|
|
294
|
+
}
|
|
295
|
+
show(type, title, content, options) {
|
|
296
|
+
if (!this.globalTemplate) {
|
|
297
|
+
console.error('AppNotificationService: Template chưa được đăng ký!');
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
const config = this.getConfigByType(type);
|
|
301
|
+
const finalDuration = options?.duration ?? CustomNotiService.defaultDuration;
|
|
302
|
+
const finalPlacement = options?.placement ?? CustomNotiService.defaultPlacement;
|
|
303
|
+
const notiRef = this.notification.template(this.globalTemplate, {
|
|
304
|
+
nzDuration: finalDuration,
|
|
305
|
+
nzPlacement: finalPlacement,
|
|
306
|
+
nzClass: 'notification-with-progress',
|
|
307
|
+
nzData: {
|
|
308
|
+
title,
|
|
309
|
+
description: content,
|
|
310
|
+
duration: finalDuration,
|
|
311
|
+
icon: config.icon,
|
|
312
|
+
color: config.color,
|
|
313
|
+
showDetail: options?.showDetail || false,
|
|
314
|
+
onDetailClick: () => {
|
|
315
|
+
if (options?.onDetail) {
|
|
316
|
+
options.onDetail();
|
|
317
|
+
}
|
|
318
|
+
// đóng popup sau khi bấm "Chi tiết"
|
|
319
|
+
this.notification.remove(notiRef.messageId);
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
getConfigByType(type) {
|
|
325
|
+
switch (type) {
|
|
326
|
+
case 'success':
|
|
327
|
+
return { icon: 'check-circle', color: '#52c41a' };
|
|
328
|
+
case 'warning':
|
|
329
|
+
return { icon: 'exclamation-circle', color: '#faad14' };
|
|
330
|
+
case 'error':
|
|
331
|
+
return { icon: 'close-circle', color: '#ff4d4f' };
|
|
332
|
+
default:
|
|
333
|
+
return { icon: 'info-circle', color: '#1890ff' };
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomNotiService, deps: [{ token: i1.NzNotificationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
337
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomNotiService, providedIn: 'root' });
|
|
338
|
+
}
|
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomNotiService, decorators: [{
|
|
340
|
+
type: Injectable,
|
|
341
|
+
args: [{
|
|
342
|
+
providedIn: 'root',
|
|
343
|
+
}]
|
|
344
|
+
}], ctorParameters: () => [{ type: i1.NzNotificationService }] });
|
|
345
|
+
|
|
275
346
|
function escapeHtml(str) {
|
|
276
347
|
return str.replace(/</g, '<').replace(/>/g, '>');
|
|
277
348
|
}
|
|
278
349
|
class NotiService {
|
|
279
350
|
modal = inject(NzModalService);
|
|
280
|
-
notification = inject(NzNotificationService);
|
|
351
|
+
// notification = inject(NzNotificationService);
|
|
352
|
+
notification = inject(CustomNotiService);
|
|
281
353
|
translate = inject(TranslateService);
|
|
282
354
|
device = inject(DeviceService);
|
|
283
355
|
async success(title, content = '', showPopup = false) {
|
|
@@ -292,9 +364,6 @@ class NotiService {
|
|
|
292
364
|
}
|
|
293
365
|
else {
|
|
294
366
|
const notiRef = this.notification.success(title ?? this.translate.instant(TranslateKey.SUCCESS), content);
|
|
295
|
-
if (notiRef?.onClose) {
|
|
296
|
-
await firstValueFrom(notiRef.onClose);
|
|
297
|
-
}
|
|
298
367
|
}
|
|
299
368
|
}
|
|
300
369
|
async warning(title, content = '', showPopup = false) {
|
|
@@ -309,9 +378,6 @@ class NotiService {
|
|
|
309
378
|
}
|
|
310
379
|
else {
|
|
311
380
|
const notiRef = this.notification.warning(title, content);
|
|
312
|
-
if (notiRef?.onClose) {
|
|
313
|
-
await firstValueFrom(notiRef.onClose);
|
|
314
|
-
}
|
|
315
381
|
}
|
|
316
382
|
}
|
|
317
383
|
async error(title, content = '', showPopup = false) {
|
|
@@ -326,9 +392,6 @@ class NotiService {
|
|
|
326
392
|
}
|
|
327
393
|
else {
|
|
328
394
|
const notiRef = this.notification.error(title, content);
|
|
329
|
-
if (notiRef?.onClose) {
|
|
330
|
-
await firstValueFrom(notiRef.onClose);
|
|
331
|
-
}
|
|
332
395
|
}
|
|
333
396
|
}
|
|
334
397
|
handleError(err) {
|
|
@@ -410,15 +473,9 @@ class NotiService {
|
|
|
410
473
|
errorMsg = _data.ErrorMessage;
|
|
411
474
|
}
|
|
412
475
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
nzWidth: this.modalWidth,
|
|
417
|
-
nzClosable: false,
|
|
418
|
-
nzCancelText: 'Đóng',
|
|
419
|
-
nzOkText: 'Chi tiết',
|
|
420
|
-
nzOnOk: () => {
|
|
421
|
-
modalRef.destroy();
|
|
476
|
+
this.notification.error('Lỗi phát sinh', errorMsg, {
|
|
477
|
+
showDetail: true,
|
|
478
|
+
onDetail: () => {
|
|
422
479
|
this.modal.error({
|
|
423
480
|
nzTitle: 'Chi tiết lỗi',
|
|
424
481
|
nzContent: escapeHtml(JSON.stringify(_data, null, 2)),
|
|
@@ -1186,13 +1243,13 @@ class CustomModalService {
|
|
|
1186
1243
|
error(options) {
|
|
1187
1244
|
return this.modal.error(options);
|
|
1188
1245
|
}
|
|
1189
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomModalService, deps: [{ token: i1.NzModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1246
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomModalService, deps: [{ token: i1$1.NzModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1190
1247
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomModalService, providedIn: 'root' });
|
|
1191
1248
|
}
|
|
1192
1249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomModalService, decorators: [{
|
|
1193
1250
|
type: Injectable,
|
|
1194
1251
|
args: [{ providedIn: 'root' }]
|
|
1195
|
-
}], ctorParameters: () => [{ type: i1.NzModalService }] });
|
|
1252
|
+
}], ctorParameters: () => [{ type: i1$1.NzModalService }] });
|
|
1196
1253
|
|
|
1197
1254
|
class BaseComponent {
|
|
1198
1255
|
AppGlobals = AppGlobals;
|
|
@@ -1503,7 +1560,7 @@ class Breadcrumb extends BaseComponent {
|
|
|
1503
1560
|
}
|
|
1504
1561
|
}
|
|
1505
1562
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Breadcrumb, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1506
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: Breadcrumb, isStandalone: true, selector: "app-breadcrumb", usesInheritance: true, ngImport: i0, template: "<nz-breadcrumb>\n <nz-breadcrumb-item (click)=\"gohome()\">\n <nz-icon nzType=\"home\" nzTheme=\"outline\" />\n </nz-breadcrumb-item>\n @for (item of Breadcrumb.lstBreadcrumb; track $index) {\n <nz-breadcrumb-item (click)=\"onclick(item)\">{{ item.Name }}</nz-breadcrumb-item>\n }\n</nz-breadcrumb>\n", dependencies: [{ kind: "ngmodule", type: NzBreadCrumbModule }, { kind: "component", type: i1$
|
|
1563
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: Breadcrumb, isStandalone: true, selector: "app-breadcrumb", usesInheritance: true, ngImport: i0, template: "<nz-breadcrumb>\n <nz-breadcrumb-item (click)=\"gohome()\">\n <nz-icon nzType=\"home\" nzTheme=\"outline\" />\n </nz-breadcrumb-item>\n @for (item of Breadcrumb.lstBreadcrumb; track $index) {\n <nz-breadcrumb-item (click)=\"onclick(item)\">{{ item.Name }}</nz-breadcrumb-item>\n }\n</nz-breadcrumb>\n", dependencies: [{ kind: "ngmodule", type: NzBreadCrumbModule }, { kind: "component", type: i1$2.NzBreadCrumbComponent, selector: "nz-breadcrumb", inputs: ["nzAutoGenerate", "nzSeparator", "nzRouteLabel", "nzRouteLabelFn", "nzRouteFn"], exportAs: ["nzBreadcrumb"] }, { kind: "component", type: i1$2.NzBreadCrumbItemComponent, selector: "nz-breadcrumb-item", inputs: ["nzOverlay"], exportAs: ["nzBreadcrumbItem"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
1507
1564
|
}
|
|
1508
1565
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Breadcrumb, decorators: [{
|
|
1509
1566
|
type: Component,
|
|
@@ -1641,7 +1698,7 @@ class BarGraphComponent {
|
|
|
1641
1698
|
});
|
|
1642
1699
|
}
|
|
1643
1700
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BarGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1644
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: BarGraphComponent, isStandalone: true, selector: "cdk-bar-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"dash-bar-graph-holder mat-elevation-z4\" [ngStyle]=\"{ height: height + 'px' }\">\n <canvas [id]=\"id\"></canvas>\n</div>\n", styles: [".dash-bar-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
1701
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: BarGraphComponent, isStandalone: true, selector: "cdk-bar-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"dash-bar-graph-holder mat-elevation-z4\" [ngStyle]=\"{ height: height + 'px' }\">\n <canvas [id]=\"id\"></canvas>\n</div>\n", styles: [".dash-bar-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1645
1702
|
}
|
|
1646
1703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: BarGraphComponent, decorators: [{
|
|
1647
1704
|
type: Component,
|
|
@@ -1657,7 +1714,7 @@ class DashcardComponent {
|
|
|
1657
1714
|
constructor() { }
|
|
1658
1715
|
ngOnInit() { }
|
|
1659
1716
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DashcardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1660
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DashcardComponent, isStandalone: true, selector: "cdk-dashcard", inputs: { dashData: "dashData" }, ngImport: i0, template: "<div nz-row class=\"dashcard mat-elevation-z2\" style=\"height: 100%\">\n <div nz-col [nzSpan]=\"8\" class=\"text-center\" [style.background]=\"dashData?.colorLight\">\n <nz-icon class=\"mat-icon\" style=\"padding-top: 50px\" [nzType]=\"dashData?.icon\" nzTheme=\"outline\" />\n </div>\n <div nz-col [nzSpan]=\"16\" [style.background]=\"dashData?.colorDark\">\n <div class=\"text-center animated-digit\">\n <animated-digit [digit]=\"dashData?.number\"></animated-digit>\n </div>\n <p\n class=\"text-center mat-body-1 border-top text-bold\"\n style=\"font-size: 16px; margin-bottom: 8px; padding-top: 3px\"\n >\n {{ dashData?.title }}\n </p>\n </div>\n</div>\n", styles: [".dashcard .dashcard{margin:10px 5px;height:100px;background-color:#fff}.dashcard .mat-icon{font-size:40px;height:40px;width:40px;color:#fff}.dashcard .border-top{border-top:1px solid white}.dashcard .mat-headline,.dashcard .mat-body-1{margin:0;color:#fff}.dashcard .animated-digit{color:#fff;font-size:40px;font-weight:700}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ 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: NzIconModule }, { kind: "directive", type: i1$
|
|
1717
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DashcardComponent, isStandalone: true, selector: "cdk-dashcard", inputs: { dashData: "dashData" }, ngImport: i0, template: "<div nz-row class=\"dashcard mat-elevation-z2\" style=\"height: 100%\">\n <div nz-col [nzSpan]=\"8\" class=\"text-center\" [style.background]=\"dashData?.colorLight\">\n <nz-icon class=\"mat-icon\" style=\"padding-top: 50px\" [nzType]=\"dashData?.icon\" nzTheme=\"outline\" />\n </div>\n <div nz-col [nzSpan]=\"16\" [style.background]=\"dashData?.colorDark\">\n <div class=\"text-center animated-digit\">\n <animated-digit [digit]=\"dashData?.number\"></animated-digit>\n </div>\n <p\n class=\"text-center mat-body-1 border-top text-bold\"\n style=\"font-size: 16px; margin-bottom: 8px; padding-top: 3px\"\n >\n {{ dashData?.title }}\n </p>\n </div>\n</div>\n", styles: [".dashcard .dashcard{margin:10px 5px;height:100px;background-color:#fff}.dashcard .mat-icon{font-size:40px;height:40px;width:40px;color:#fff}.dashcard .border-top{border-top:1px solid white}.dashcard .mat-headline,.dashcard .mat-body-1{margin:0;color:#fff}.dashcard .animated-digit{color:#fff;font-size:40px;font-weight:700}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ 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: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: AnimatedDigitComponent, selector: "animated-digit", inputs: ["duration", "digit", "steps"] }] });
|
|
1661
1718
|
}
|
|
1662
1719
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DashcardComponent, decorators: [{
|
|
1663
1720
|
type: Component,
|
|
@@ -1727,7 +1784,7 @@ class DoughnutGraphComponent {
|
|
|
1727
1784
|
});
|
|
1728
1785
|
}
|
|
1729
1786
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DoughnutGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1730
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DoughnutGraphComponent, isStandalone: true, selector: "cdk-doughnut-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"doughnut-graph-graph-holder mat-elevation-z4 \" [ngStyle]=\"{'height': height + 'px'}\">\n <canvas [id]=\"id\"></canvas>\n</div>", styles: [".doughnut-graph-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
1787
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: DoughnutGraphComponent, isStandalone: true, selector: "cdk-doughnut-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"doughnut-graph-graph-holder mat-elevation-z4 \" [ngStyle]=\"{'height': height + 'px'}\">\n <canvas [id]=\"id\"></canvas>\n</div>", styles: [".doughnut-graph-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1731
1788
|
}
|
|
1732
1789
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: DoughnutGraphComponent, decorators: [{
|
|
1733
1790
|
type: Component,
|
|
@@ -1789,7 +1846,7 @@ class LineGraphComponent {
|
|
|
1789
1846
|
});
|
|
1790
1847
|
}
|
|
1791
1848
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LineGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1792
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: LineGraphComponent, isStandalone: true, selector: "cdk-line-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"line-graph-holder mat-elevation-z4 \" [ngStyle]=\"{'height': height + 'px'}\">\n <canvas [id]=\"id\"></canvas>\n</div>", styles: [".line-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
1849
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: LineGraphComponent, isStandalone: true, selector: "cdk-line-graph", inputs: { height: "height", id: "id" }, ngImport: i0, template: "<div class=\"line-graph-holder mat-elevation-z4 \" [ngStyle]=\"{'height': height + 'px'}\">\n <canvas [id]=\"id\"></canvas>\n</div>", styles: [".line-graph-holder{margin:10px 5px;background-color:#fff}.nav-item{transition:all .6s cubic-bezier(.165,.84,.44,1);cursor:default}.nav-item:hover{transform:translateY(-8px);box-shadow:0 20px 20px #00000029}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1793
1850
|
}
|
|
1794
1851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LineGraphComponent, decorators: [{
|
|
1795
1852
|
type: Component,
|
|
@@ -2377,7 +2434,7 @@ class ExtendDatePicker {
|
|
|
2377
2434
|
return '';
|
|
2378
2435
|
}
|
|
2379
2436
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2380
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendDatePicker, isStandalone: true, selector: "extend-date-picker", inputs: { dateFormat: "dateFormat", label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", showTime: "showTime", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", isSubmited: "isSubmited", noBottom: "noBottom", selectModeType: "selectModeType", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", minDate: "minDate", maxDate: "maxDate", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isTouched: "isTouched", inputErrorMessage: "inputErrorMessage", errorMessages: "errorMessages" }, outputs: { _ngModelChange: "_ngModelChange" }, ngImport: i0, template: "<div\n class=\"extend-date-picker-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [disabled]=\"disabled\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onNgModelChange($event)\"\n (blur)=\"onBlur()\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n\n<ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["::ng-deep .extend-date-picker-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-date-picker-wrapper .full-width{width:100%}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
2437
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendDatePicker, isStandalone: true, selector: "extend-date-picker", inputs: { dateFormat: "dateFormat", label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", showTime: "showTime", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", isSubmited: "isSubmited", noBottom: "noBottom", selectModeType: "selectModeType", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", minDate: "minDate", maxDate: "maxDate", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isTouched: "isTouched", inputErrorMessage: "inputErrorMessage", errorMessages: "errorMessages" }, outputs: { _ngModelChange: "_ngModelChange" }, ngImport: i0, template: "<div\n class=\"extend-date-picker-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [disabled]=\"disabled\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onNgModelChange($event)\"\n (blur)=\"onBlur()\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n\n<ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["::ng-deep .extend-date-picker-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-date-picker-wrapper .full-width{width:100%}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$4.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i5$1.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: DateInputParserDirective, selector: "nz-date-picker", inputs: ["nzFormat"] }] });
|
|
2381
2438
|
}
|
|
2382
2439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendDatePicker, decorators: [{
|
|
2383
2440
|
type: Component,
|
|
@@ -2389,7 +2446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
2389
2446
|
NzDatePickerModule,
|
|
2390
2447
|
TranslateModule,
|
|
2391
2448
|
DateInputParserDirective,
|
|
2392
|
-
], template: "<div\n class=\"extend-date-picker-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [disabled]=\"disabled\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onNgModelChange($event)\"\n (blur)=\"onBlur()\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n\n<ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["::ng-deep .extend-date-picker-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-date-picker-wrapper .full-width{width:100%}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
2449
|
+
], template: "<div\n class=\"extend-date-picker-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [disabled]=\"disabled\"\n [nzDisabledDate]=\"disabledDate\"\n [nzShowTime]=\"showTime\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onNgModelChange($event)\"\n (blur)=\"onBlur()\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n\n<ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["::ng-deep .extend-date-picker-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-date-picker-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-date-picker-wrapper .full-width{width:100%}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-date-picker-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-date-picker-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
2393
2450
|
}], propDecorators: { dateFormat: [{
|
|
2394
2451
|
type: Input
|
|
2395
2452
|
}], label: [{
|
|
@@ -2511,7 +2568,7 @@ class ExtendDateRangePicker {
|
|
|
2511
2568
|
this.date2Change.emit(this.date2);
|
|
2512
2569
|
}
|
|
2513
2570
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendDateRangePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2514
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendDateRangePicker, isStandalone: true, selector: "extend-date-range-picker", inputs: { dateFormat: "dateFormat", layOutType: "layOutType", label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", labelSpan: "labelSpan", labelFlex: "labelFlex", disabled: "disabled", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", date1: "date1", date2: "date2" }, outputs: { date1Change: "date1Change", date2Change: "date2Change" }, ngImport: i0, template: "<div class=\"extend-wrapper\" [ngStyle]=\"{ display: displayInline ? 'inline' : null }\">\n @if (controlName) {\n <!-- <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"layOutType == 'horizontal' ? labelSpan : null\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"layOutType == 'horizontal' ? inputSpan : null\"\n [ngClass]=\"{ 'full-width': layOutType == 'vertical' }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div> -->\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"layOutType == 'horizontal' && !labelFlex ? labelSpan : null\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-range-picker\n [nzSize]=\"size\"\n [nzFormat]=\"dateFormat\"\n [nzPlaceHolder]=\"['T\u1EEB ng\u00E0y', '\u0111\u1EBFn ng\u00E0y']\"\n [nzRanges]=\"ranges\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"ngModelChange($event)\"\n ></nz-range-picker>\n </nz-form-item>\n } @else {\n <nz-range-picker\n [nzSize]=\"size\"\n [nzFormat]=\"dateFormat\"\n [nzPlaceHolder]=\"['T\u1EEB ng\u00E0y', '\u0111\u1EBFn ng\u00E0y']\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"ngModelChange($event)\"\n ></nz-range-picker>\n }\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
2571
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendDateRangePicker, isStandalone: true, selector: "extend-date-range-picker", inputs: { dateFormat: "dateFormat", layOutType: "layOutType", label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", labelSpan: "labelSpan", labelFlex: "labelFlex", disabled: "disabled", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", date1: "date1", date2: "date2" }, outputs: { date1Change: "date1Change", date2Change: "date2Change" }, ngImport: i0, template: "<div class=\"extend-wrapper\" [ngStyle]=\"{ display: displayInline ? 'inline' : null }\">\n @if (controlName) {\n <!-- <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"layOutType == 'horizontal' ? labelSpan : null\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"layOutType == 'horizontal' ? inputSpan : null\"\n [ngClass]=\"{ 'full-width': layOutType == 'vertical' }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-date-picker\n class=\"full-width\"\n [nzPlaceHolder]=\"placeHolder || ' '\"\n [nzFormat]=\"dateFormat\"\n [nzSize]=\"size\"\n [formControlName]=\"controlName\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n }\"\n ></nz-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div> -->\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"layOutType == 'horizontal' && !labelFlex ? labelSpan : null\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-range-picker\n [nzSize]=\"size\"\n [nzFormat]=\"dateFormat\"\n [nzPlaceHolder]=\"['T\u1EEB ng\u00E0y', '\u0111\u1EBFn ng\u00E0y']\"\n [nzRanges]=\"ranges\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"ngModelChange($event)\"\n ></nz-range-picker>\n </nz-form-item>\n } @else {\n <nz-range-picker\n [nzSize]=\"size\"\n [nzFormat]=\"dateFormat\"\n [nzPlaceHolder]=\"['T\u1EEB ng\u00E0y', '\u0111\u1EBFn ng\u00E0y']\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"ngModelChange($event)\"\n ></nz-range-picker>\n }\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i5$1.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "directive", type: i5$1.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { kind: "ngmodule", type: TranslateModule }] });
|
|
2515
2572
|
}
|
|
2516
2573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendDateRangePicker, decorators: [{
|
|
2517
2574
|
type: Component,
|
|
@@ -2672,11 +2729,11 @@ class ExtendInputNumber {
|
|
|
2672
2729
|
return '';
|
|
2673
2730
|
}
|
|
2674
2731
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2675
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendInputNumber, isStandalone: true, selector: "extend-input-number", inputs: { label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", hiddenUpDown: "hiddenUpDown", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", noBottom: "noBottom", size: "size", min: "min", max: "max", precision: "precision", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", isSubmited: "isSubmited", separatorType: "separatorType", formData: "formData", controlName: "controlName", _ngModel: "_ngModel" }, outputs: { _ngModelChange: "_ngModelChange" }, viewQueries: [{ propertyName: "inputnumber", first: true, predicate: ["inputnumber"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"extend-input-number-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '', hiddenUpDown ? 'hidden-up-down' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [formControlName]=\"controlName\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n }\n </nz-form-control>\n </nz-form-item>\n } @else {\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n border: borderBottomOnly ? 'none' : '',\n 'border-bottom': borderBottomOnly ? '1px dashed' : '',\n }\"\n />\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-input-number-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-number-wrapper.hidden-up-down .ant-input-number-handler-wrap{display:none}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-number-wrapper .full-width{width:100%}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 75%,#f5f5f5 50%)}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzInputNumberModule }, { kind: "component", type: i6.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzOnStep"], exportAs: ["nzInputNumber"] }] });
|
|
2732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendInputNumber, isStandalone: true, selector: "extend-input-number", inputs: { label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", hiddenUpDown: "hiddenUpDown", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", noBottom: "noBottom", size: "size", min: "min", max: "max", precision: "precision", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", isSubmited: "isSubmited", separatorType: "separatorType", formData: "formData", controlName: "controlName", _ngModel: "_ngModel" }, outputs: { _ngModelChange: "_ngModelChange" }, viewQueries: [{ propertyName: "inputnumber", first: true, predicate: ["inputnumber"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\n class=\"extend-input-number-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '', hiddenUpDown ? 'hidden-up-down' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [formControlName]=\"controlName\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n }\n </nz-form-control>\n </nz-form-item>\n } @else {\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n border: borderBottomOnly ? 'none' : '',\n 'border-bottom': borderBottomOnly ? '1px dashed' : '',\n }\"\n />\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-input-number-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-number-wrapper.hidden-up-down .ant-input-number-handler-wrap{display:none}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-number-wrapper .full-width{width:100%}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzInputNumberModule }, { kind: "component", type: i6.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzOnStep"], exportAs: ["nzInputNumber"] }] });
|
|
2676
2733
|
}
|
|
2677
2734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendInputNumber, decorators: [{
|
|
2678
2735
|
type: Component,
|
|
2679
|
-
args: [{ selector: 'extend-input-number', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzInputNumberModule], template: "<div\n class=\"extend-input-number-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '', hiddenUpDown ? 'hidden-up-down' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [formControlName]=\"controlName\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n }\n </nz-form-control>\n </nz-form-item>\n } @else {\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n border: borderBottomOnly ? 'none' : '',\n 'border-bottom': borderBottomOnly ? '1px dashed' : '',\n }\"\n />\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-input-number-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-number-wrapper.hidden-up-down .ant-input-number-handler-wrap{display:none}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-number-wrapper .full-width{width:100%}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
2736
|
+
args: [{ selector: 'extend-input-number', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzInputNumberModule], template: "<div\n class=\"extend-input-number-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '', hiddenUpDown ? 'hidden-up-down' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [formControlName]=\"controlName\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n }\n </nz-form-control>\n </nz-form-item>\n } @else {\n @if (min != null && max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (min != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMin]=\"min\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else if (max != null) {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzMax]=\"max\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n />\n } @else {\n <nz-input-number\n #inputnumber\n class=\"full-width\"\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzFormatter]=\"formatterNumber\"\n [nzParser]=\"parserNumber\"\n [nzPrecision]=\"precision\"\n [nzDisabled]=\"disabled\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n border: borderBottomOnly ? 'none' : '',\n 'border-bottom': borderBottomOnly ? '1px dashed' : '',\n }\"\n />\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-input-number-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-number-wrapper.hidden-up-down .ant-input-number-handler-wrap{display:none}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-number-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-number-wrapper .full-width{width:100%}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-input-number-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
2680
2737
|
}], propDecorators: { label: [{
|
|
2681
2738
|
type: Input
|
|
2682
2739
|
}], placeHolder: [{
|
|
@@ -2812,11 +2869,11 @@ class ExtendInput {
|
|
|
2812
2869
|
return '';
|
|
2813
2870
|
}
|
|
2814
2871
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2815
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendInput, isStandalone: true, selector: "extend-input", inputs: { label: "label", floatingLabel: "floatingLabel", placeHolder: "placeHolder", labelAlign: "labelAlign", inputClass: "inputClass", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", allowClear: "allowClear", disabled: "disabled", readOnly: "readOnly", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", autocomplete: "autocomplete", autofocus: "autofocus", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isSubmited: "isSubmited" }, outputs: { _ngModelChange: "_ngModelChange", onclickClearIcon: "onclickClearIcon", onenter: "onenter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"extend-input-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [formControlName]=\"controlName\"\n [autocomplete]=\"autocomplete\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-group [nzSize]=\"size\" [nzSuffix]=\"allowClear ? clearIcon : undefined\">\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n [autocomplete]=\"autocomplete\"\n (ngModelChange)=\"_onNgModelChange()\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass + ' ' + (borderBottomOnly ? 'border-bottom-only' : '')\"\n (keyup.enter)=\"onenter.emit()\"\n />\n }\n }\n</div>\n\n<ng-template #clearIcon>\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"twotone\"\n nzTwotoneColor=\"#999\"\n *ngIf=\"_ngModel\"\n (click)=\"_ngModel = null; _onNgModelChange(); onclickClearIcon.emit()\"\n style=\"cursor: pointer\"\n ></i>\n</ng-template>\n", styles: ["::ng-deep .extend-input-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:2;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-wrapper .full-width{width:100%}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
2872
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendInput, isStandalone: true, selector: "extend-input", inputs: { label: "label", floatingLabel: "floatingLabel", placeHolder: "placeHolder", labelAlign: "labelAlign", inputClass: "inputClass", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", allowClear: "allowClear", disabled: "disabled", readOnly: "readOnly", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", autocomplete: "autocomplete", autofocus: "autofocus", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isSubmited: "isSubmited" }, outputs: { _ngModelChange: "_ngModelChange", onclickClearIcon: "onclickClearIcon", onenter: "onenter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"extend-input-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [formControlName]=\"controlName\"\n [autocomplete]=\"autocomplete\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-group [nzSize]=\"size\" [nzSuffix]=\"allowClear ? clearIcon : undefined\">\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n [autocomplete]=\"autocomplete\"\n (ngModelChange)=\"_onNgModelChange()\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass + ' ' + (borderBottomOnly ? 'border-bottom-only' : '')\"\n (keyup.enter)=\"onenter.emit()\"\n />\n }\n }\n</div>\n\n<ng-template #clearIcon>\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"twotone\"\n nzTwotoneColor=\"#999\"\n *ngIf=\"_ngModel\"\n (click)=\"_ngModel = null; _onNgModelChange(); onclickClearIcon.emit()\"\n style=\"cursor: pointer\"\n ></i>\n</ng-template>\n", styles: ["::ng-deep .extend-input-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:2;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-wrapper .full-width{width:100%}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
2816
2873
|
}
|
|
2817
2874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendInput, decorators: [{
|
|
2818
2875
|
type: Component,
|
|
2819
|
-
args: [{ selector: 'extend-input', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzInputModule, NzIconModule], template: "<div\n class=\"extend-input-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [formControlName]=\"controlName\"\n [autocomplete]=\"autocomplete\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-group [nzSize]=\"size\" [nzSuffix]=\"allowClear ? clearIcon : undefined\">\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n [autocomplete]=\"autocomplete\"\n (ngModelChange)=\"_onNgModelChange()\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass + ' ' + (borderBottomOnly ? 'border-bottom-only' : '')\"\n (keyup.enter)=\"onenter.emit()\"\n />\n }\n }\n</div>\n\n<ng-template #clearIcon>\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"twotone\"\n nzTwotoneColor=\"#999\"\n *ngIf=\"_ngModel\"\n (click)=\"_ngModel = null; _onNgModelChange(); onclickClearIcon.emit()\"\n style=\"cursor: pointer\"\n ></i>\n</ng-template>\n", styles: ["::ng-deep .extend-input-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:2;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-wrapper .full-width{width:100%}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
2876
|
+
args: [{ selector: 'extend-input', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzInputModule, NzIconModule], template: "<div\n class=\"extend-input-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [formControlName]=\"controlName\"\n [autocomplete]=\"autocomplete\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-input-group [nzSize]=\"size\" [nzSuffix]=\"allowClear ? clearIcon : undefined\">\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n [autocomplete]=\"autocomplete\"\n (ngModelChange)=\"_onNgModelChange()\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass\"\n (keyup.enter)=\"onenter.emit()\"\n />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <input\n #inputElement\n nz-input\n [nzSize]=\"size\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [id]=\"controlName\"\n [name]=\"controlName\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"_onNgModelChange()\"\n [autocomplete]=\"autocomplete\"\n [disabled]=\"disabled\"\n [readOnly]=\"readOnly\"\n [placeholder]=\"placeHolder\"\n [ngClass]=\"inputClass + ' ' + (borderBottomOnly ? 'border-bottom-only' : '')\"\n (keyup.enter)=\"onenter.emit()\"\n />\n }\n }\n</div>\n\n<ng-template #clearIcon>\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"twotone\"\n nzTwotoneColor=\"#999\"\n *ngIf=\"_ngModel\"\n (click)=\"_ngModel = null; _onNgModelChange(); onclickClearIcon.emit()\"\n style=\"cursor: pointer\"\n ></i>\n</ng-template>\n", styles: ["::ng-deep .extend-input-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:2;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-input-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-input-wrapper .full-width{width:100%}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-input-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-input-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-input-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
2820
2877
|
}], propDecorators: { label: [{
|
|
2821
2878
|
type: Input
|
|
2822
2879
|
}], floatingLabel: [{
|
|
@@ -2997,11 +3054,11 @@ class ExtendSelectComponent {
|
|
|
2997
3054
|
return '';
|
|
2998
3055
|
}
|
|
2999
3056
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3000
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendSelectComponent, isStandalone: true, selector: "extend-select", inputs: { label: "label", floatingLabel: "floatingLabel", placeHolder: "placeHolder", labelAlign: "labelAlign", dropdownMatchSelectWidth: "dropdownMatchSelectWidth", labelSpan: "labelSpan", labelFlex: "labelFlex", disabled: "disabled", required: "required", noBottom: "noBottom", multiple: "multiple", showSelectAll: "showSelectAll", maxTagCount: "maxTagCount", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", displayFields: "displayFields", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isSubmited: "isSubmited" }, outputs: { _ngModelChange: "_ngModelChange", itemChange: "itemChange", onFocus: "onFocus" }, host: { properties: { "style.--custom-select-height": "this.cssHeight" } }, ngImport: i0, template: "<div\n class=\"extend-select-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (!multiple) {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n 'custom-height-select': inputHeight ? true : false,\n }\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n } @else {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-select-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-select-wrapper .full-width{width:100%}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 75%,#f5f5f5 50%)}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i6$2.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i6$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }] });
|
|
3057
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendSelectComponent, isStandalone: true, selector: "extend-select", inputs: { label: "label", floatingLabel: "floatingLabel", placeHolder: "placeHolder", labelAlign: "labelAlign", dropdownMatchSelectWidth: "dropdownMatchSelectWidth", labelSpan: "labelSpan", labelFlex: "labelFlex", disabled: "disabled", required: "required", noBottom: "noBottom", multiple: "multiple", showSelectAll: "showSelectAll", maxTagCount: "maxTagCount", inputWidth: "inputWidth", inputHeight: "inputHeight", borderBottomOnly: "borderBottomOnly", displayInline: "displayInline", size: "size", lstItem: "lstItem", displayField: "displayField", displayFields: "displayFields", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isSubmited: "isSubmited" }, outputs: { _ngModelChange: "_ngModelChange", itemChange: "itemChange", onFocus: "onFocus" }, host: { properties: { "style.--custom-select-height": "this.cssHeight" } }, ngImport: i0, template: "<div\n class=\"extend-select-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (!multiple) {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n 'custom-height-select': inputHeight ? true : false,\n }\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n } @else {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-select-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-select-wrapper .full-width{width:100%}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i6$2.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i6$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }] });
|
|
3001
3058
|
}
|
|
3002
3059
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendSelectComponent, decorators: [{
|
|
3003
3060
|
type: Component,
|
|
3004
|
-
args: [{ selector: 'extend-select', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzSelectModule], template: "<div\n class=\"extend-select-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (!multiple) {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n 'custom-height-select': inputHeight ? true : false,\n }\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n } @else {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-select-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-select-wrapper .full-width{width:100%}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 75%,#f5f5f5 50%)}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
3061
|
+
args: [{ selector: 'extend-select', imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule, NzFormModule, NzSelectModule], template: "<div\n class=\"extend-select-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (!multiple) {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: inputWidth,\n height: inputHeight,\n }\"\n [ngClass]=\"{\n 'border-bottom-only': borderBottomOnly,\n 'custom-height-select': inputHeight ? true : false,\n }\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n } @else {\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [formControlName]=\"controlName\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n </div>\n } @else {\n @if (label) {\n <nz-form-item>\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n [nzLabelWrap]=\"floatingLabel ? false : true\"\n >\n {{ label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"floatingLabel || labelFlex ? null : 24 - labelSpan\"\n [ngClass]=\"{ 'full-width': floatingLabel }\"\n [nzValidateStatus]=\"customValidateStatus\"\n [nzErrorTip]=\"'REQUIRED_FIELD' | translate\"\n >\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzAllowClear]=\"true\"\n [nzShowSearch]=\"true\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n } @else {\n <nz-select\n class=\"full-width\"\n nzShowSearch\n nzAllowClear\n [nzSize]=\"size\"\n [nzPlaceHolder]=\"placeHolder\"\n [nzMode]=\"'multiple'\"\n [nzMaxMultipleCount]=\"lstItem.length\"\n [nzMaxTagCount]=\"maxTagCount\"\n [nzDropdownMatchSelectWidth]=\"dropdownMatchSelectWidth\"\n [ngModel]=\"_ngModel\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectChange($event)\"\n (nzFocus)=\"onFocus.emit()\"\n >\n @if (showSelectAll) {\n <nz-option [nzLabel]=\"'-- Ch\u1ECDn t\u1EA5t c\u1EA3 --'\" [nzValue]=\"'__all__'\"></nz-option>\n }\n @for (item of lstItem; track $index) {\n <nz-option [nzLabel]=\"getDisplay(item)\" [nzValue]=\"valueField ? item[valueField] : item\"></nz-option>\n }\n </nz-select>\n }\n }\n }\n</div>\n", styles: ["::ng-deep .extend-select-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-select-wrapper.floating-label nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-select-wrapper .full-width{width:100%}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-select-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-select-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
3005
3062
|
}], propDecorators: { label: [{
|
|
3006
3063
|
type: Input
|
|
3007
3064
|
}], floatingLabel: [{
|
|
@@ -3130,7 +3187,7 @@ class ExtendTextArea {
|
|
|
3130
3187
|
return '';
|
|
3131
3188
|
}
|
|
3132
3189
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendTextArea, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3133
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendTextArea, isStandalone: true, selector: "extend-textarea", inputs: { label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", displayInline: "displayInline", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", inputClass: "inputClass", size: "size", isSubmited: "isSubmited", minRows: "minRows", maxRows: "maxRows", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isTouched: "isTouched", inputErrorMessage: "inputErrorMessage", errorMessages: "errorMessages" }, outputs: { _ngModelChange: "_ngModelChange" }, ngImport: i0, template: "<div\n class=\"extend-textarea-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"dynamicErrorTemplate\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [formControlName]=\"controlName\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n\n <ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onChange()\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n", styles: ["::ng-deep .extend-textarea-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-textarea-wrapper .full-width{width:100%}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
3190
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendTextArea, isStandalone: true, selector: "extend-textarea", inputs: { label: "label", placeHolder: "placeHolder", labelAlign: "labelAlign", floatingLabel: "floatingLabel", displayInline: "displayInline", labelSpan: "labelSpan", labelFlex: "labelFlex", inputFlex: "inputFlex", disabled: "disabled", required: "required", noBottom: "noBottom", selectModeType: "selectModeType", inputClass: "inputClass", size: "size", isSubmited: "isSubmited", minRows: "minRows", maxRows: "maxRows", lstItem: "lstItem", displayField: "displayField", valueField: "valueField", formData: "formData", controlName: "controlName", _ngModel: "_ngModel", isTouched: "isTouched", inputErrorMessage: "inputErrorMessage", errorMessages: "errorMessages" }, outputs: { _ngModelChange: "_ngModelChange" }, ngImport: i0, template: "<div\n class=\"extend-textarea-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"dynamicErrorTemplate\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [formControlName]=\"controlName\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n\n <ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onChange()\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n", styles: ["::ng-deep .extend-textarea-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-textarea-wrapper .full-width{width:100%}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$4.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NzFormModule }, { 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: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i6$1.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }] });
|
|
3134
3191
|
}
|
|
3135
3192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendTextArea, decorators: [{
|
|
3136
3193
|
type: Component,
|
|
@@ -3142,7 +3199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3142
3199
|
NzDatePickerModule,
|
|
3143
3200
|
TranslateModule,
|
|
3144
3201
|
NzInputModule,
|
|
3145
|
-
], template: "<div\n class=\"extend-textarea-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"dynamicErrorTemplate\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [formControlName]=\"controlName\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n\n <ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onChange()\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n", styles: ["::ng-deep .extend-textarea-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-textarea-wrapper .full-width{width:100%}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff)
|
|
3202
|
+
], template: "<div\n class=\"extend-textarea-wrapper\"\n [ngClass]=\"[floatingLabel && label ? 'floating-label' : '']\"\n [ngStyle]=\"{ display: displayInline ? 'inline' : null }\"\n>\n @if (controlName) {\n <div [formGroup]=\"formData\">\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n [nzFor]=\"controlName\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"dynamicErrorTemplate\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [formControlName]=\"controlName\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n\n <ng-template #dynamicErrorTemplate let-control>\n <ng-container *ngFor=\"let error of errorMessages | keyvalue\">\n <ng-container *ngIf=\"control.hasError(error.key)\">\n {{ error.value }}\n </ng-container>\n </ng-container>\n </ng-template>\n </div>\n } @else {\n <nz-form-item>\n @if (label) {\n <nz-form-label\n [nzSpan]=\"floatingLabel || labelFlex ? null : labelSpan\"\n [nzFlex]=\"labelFlex\"\n [nzLabelAlign]=\"labelAlign\"\n [nzRequired]=\"required\"\n nzNoColon\n nzLabelWrap\n >\n {{ label }}\n </nz-form-label>\n }\n <nz-form-control\n [nzSpan]=\"label ? (floatingLabel || labelFlex ? null : 24 - labelSpan) : null\"\n [nzFlex]=\"inputFlex\"\n [ngClass]=\"{ 'full-width': floatingLabel || !label }\"\n [nzErrorTip]=\"customValidateStatus\"\n [nzValidateStatus]=\"customValidateStatus ? 'error' : ''\"\n >\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: minRows || 3, maxRows: maxRows || 5 }\"\n [(ngModel)]=\"_ngModel\"\n (ngModelChange)=\"onChange()\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [ngClass]=\"inputClass\"\n [nzSize]=\"size\"\n ></textarea>\n </nz-form-control>\n </nz-form-item>\n }\n</div>\n", styles: ["::ng-deep .extend-textarea-wrapper.floating-label{position:relative;padding-top:14px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label{position:absolute;top:12px;left:10px;transform:translateY(-50%);background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 80%,#ffffff 80%);z-index:1;height:auto;line-height:normal;padding:0 4px}::ng-deep .extend-textarea-wrapper nz-form-item nz-form-label label{font-size:12px;color:#969696;font-weight:700;height:auto;line-height:normal;padding:0;display:flex;align-items:center}::ng-deep .extend-textarea-wrapper .full-width{width:100%}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label{background:linear-gradient(to bottom,var(--form-bg-color, #ffffff) 60%,#f5f5f5 50%)}.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-select-disabled) nz-form-label label,.extend-textarea-wrapper.floating-label nz-form-item:has(input[disabled]) nz-form-label label,.extend-textarea-wrapper.floating-label nz-form-item:has(.ant-input-disabled) nz-form-label label{color:#bfbfbf}\n"] }]
|
|
3146
3203
|
}], propDecorators: { label: [{
|
|
3147
3204
|
type: Input
|
|
3148
3205
|
}], placeHolder: [{
|
|
@@ -3435,7 +3492,7 @@ class ReadMoreProComponent {
|
|
|
3435
3492
|
this.maxHeight = this.expanded ? fullHeight + 'px' : collapsedHeight + 'px';
|
|
3436
3493
|
}
|
|
3437
3494
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ReadMoreProComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3438
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ReadMoreProComponent, isStandalone: true, selector: "read-more", inputs: { text: "text", lines: "lines" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div class=\"wrapper\">\n <div\n #content\n class=\"content\"\n [class.clamp]=\"!expanded && overflow\"\n [style.-webkit-line-clamp]=\"!expanded && overflow ? lines : 'none'\"\n [style.maxHeight]=\"maxHeight\"\n [innerHTML]=\"text\"\n ></div>\n\n @if (overflow) {\n <div class=\"toggle-container\" [class.expanded]=\"expanded\">\n <span class=\"toggle text-italic\" (click)=\"toggle()\">\n {{ expanded ? \"Thu g\u1ECDn\" : \"Xem th\u00EAm\" }}\n <nz-icon [nzType]=\"expanded ? 'up' : 'down'\" nzTheme=\"outline\" />\n </span>\n </div>\n }\n</div>\n", styles: [".wrapper{position:relative;width:100%}.content{overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);white-space:pre-line}.clamp{display:-webkit-box;-webkit-box-orient:vertical}.toggle-container{text-align:right}.toggle{color:#1677ffa9;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:4px;font-size:.85em}.toggle:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$
|
|
3495
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ReadMoreProComponent, isStandalone: true, selector: "read-more", inputs: { text: "text", lines: "lines" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div class=\"wrapper\">\n <div\n #content\n class=\"content\"\n [class.clamp]=\"!expanded && overflow\"\n [style.-webkit-line-clamp]=\"!expanded && overflow ? lines : 'none'\"\n [style.maxHeight]=\"maxHeight\"\n [innerHTML]=\"text\"\n ></div>\n\n @if (overflow) {\n <div class=\"toggle-container\" [class.expanded]=\"expanded\">\n <span class=\"toggle text-italic\" (click)=\"toggle()\">\n {{ expanded ? \"Thu g\u1ECDn\" : \"Xem th\u00EAm\" }}\n <nz-icon [nzType]=\"expanded ? 'up' : 'down'\" nzTheme=\"outline\" />\n </span>\n </div>\n }\n</div>\n", styles: [".wrapper{position:relative;width:100%}.content{overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);white-space:pre-line}.clamp{display:-webkit-box;-webkit-box-orient:vertical}.toggle-container{text-align:right}.toggle{color:#1677ffa9;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:4px;font-size:.85em}.toggle:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
3439
3496
|
}
|
|
3440
3497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ReadMoreProComponent, decorators: [{
|
|
3441
3498
|
type: Component,
|
|
@@ -3456,6 +3513,7 @@ class ExtendTableComponent extends BaseComponent {
|
|
|
3456
3513
|
idKey = '';
|
|
3457
3514
|
detailKey = '';
|
|
3458
3515
|
selectedIdKey;
|
|
3516
|
+
scroll;
|
|
3459
3517
|
actionTemplate;
|
|
3460
3518
|
filterChange = new EventEmitter();
|
|
3461
3519
|
ondblclickrow = new EventEmitter();
|
|
@@ -3474,7 +3532,7 @@ class ExtendTableComponent extends BaseComponent {
|
|
|
3474
3532
|
this.filterChange.emit(this.filter);
|
|
3475
3533
|
}
|
|
3476
3534
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3477
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendTableComponent, isStandalone: true, selector: "extend-table", inputs: { data: "data", filter: "filter", isLoading: "isLoading", idKey: "idKey", detailKey: "detailKey", selectedIdKey: "selectedIdKey", actionTemplate: "actionTemplate" }, outputs: { filterChange: "filterChange", ondblclickrow: "ondblclickrow" }, usesInheritance: true, ngImport: i0, template: "<nz-table\n class=\"extend-table\"\n [nzData]=\"data.LstItem || []\"\n [nzBordered]=\"true\"\n [nzSize]=\"'small'\"\n [nzLoading]=\"isLoading\"\n [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\"\n [nzTotal]=\"data.TotalCount || 0\"\n [(nzPageIndex)]=\"filter.PageIndex\"\n [(nzPageSize)]=\"filter.PageSize\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n>\n <thead>\n <tr>\n @for (item of data.LstHeader; track $index) {\n <th\n [nzWidth]=\"item.Width\"\n [nzShowSort]=\"item.ShowSort\"\n [nzSortOrder]=\"item.SortOrder\"\n (nzSortOrderChange)=\"onSortChange(item.Code, $event)\"\n >\n {{ item.Name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data.LstItem; track $index; let i = $index) {\n <tr\n tabindex=\"0\"\n class=\"selectable-row\"\n [ngClass]=\"selectedIdKey && row[idKey] == selectedIdKey ? 'selected-row' : ''\"\n (dblclick)=\"ondblclickrow.emit(row)\"\n >\n @for (col of data.LstHeader; track $index) {\n @if (col.Code === \"NO\") {\n <td [class]=\"col.Class\">\n {{ i + 1 + filter.PageIndex * filter.PageSize }}\n </td>\n } @else if (col.Code === \"ACTION\") {\n <td [class]=\"col.Class\">\n @if (actionTemplate) {\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { $implicit: row, index: i }\"> </ng-container>\n }\n </td>\n } @else if (col.Type === \"CHECKBOX\") {\n <td [class]=\"col.Class\">\n @if (row[col.Code]) {\n <nz-icon nzType=\"check-circle\" nzTheme=\"outline\" class=\"color-primary\" />\n }\n <!-- @else {\n <nz-icon nzType=\"close\" nzTheme=\"outline\" class=\"color-warn\" />\n } -->\n </td>\n } @else if (col.Code == detailKey) {\n <td [class]=\"col.Class\">\n <span\n class=\"link-detail\"\n (click)=\"goto(row[idKey])\"\n [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"\n ></span>\n </td>\n } @else {\n @if (col.DomainCode) {\n <td\n [class]=\"col.Class\"\n [innerHTML]=\"row[col.Code] | dicDomain: col.DomainCode | async | highlight: filter.Keyword || ''\"\n ></td>\n } @else if (col.MaxLines) {\n <td>\n <read-more [text]=\"row[col.Code]\" [lines]=\"col.MaxLines\"></read-more>\n </td>\n } @else {\n <td [class]=\"col.Class\" [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"></td>\n }\n }\n }\n </tr>\n }\n </tbody>\n</nz-table>\n", styles: ["@charset \"UTF-8\";.extend-table .ant-table-tbody>tr:nth-child(odd)>td{background-color:#fff}.extend-table .ant-table-tbody>tr:nth-child(2n)>td{background-color:#f6f6f6}.extend-table .selectable-row:hover td{background-color:#bae8fd!important}.extend-table .selectable-row:focus td{background-color:#bae8fd!important}.extend-table .selected-rowtd{background-color:#bae8fd!important;font-weight:700}.extend-table .link-detail{color:var(--primary-color);cursor:pointer}.extend-table .link-detail:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3535
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: ExtendTableComponent, isStandalone: true, selector: "extend-table", inputs: { data: "data", filter: "filter", isLoading: "isLoading", idKey: "idKey", detailKey: "detailKey", selectedIdKey: "selectedIdKey", scroll: "scroll", actionTemplate: "actionTemplate" }, outputs: { filterChange: "filterChange", ondblclickrow: "ondblclickrow" }, usesInheritance: true, ngImport: i0, template: "<nz-table\n class=\"extend-table\"\n [nzData]=\"data.LstItem || []\"\n [nzBordered]=\"true\"\n [nzSize]=\"'small'\"\n [nzLoading]=\"isLoading\"\n [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\"\n [nzTotal]=\"data.TotalCount || 0\"\n [(nzPageIndex)]=\"filter.PageIndex\"\n [(nzPageSize)]=\"filter.PageSize\"\n [nzScroll]=\"scroll || {}\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n>\n <thead>\n <tr>\n @for (item of data.LstHeader; track $index) {\n <th\n [nzWidth]=\"item.Width\"\n [nzShowSort]=\"item.ShowSort\"\n [nzSortOrder]=\"item.SortOrder\"\n (nzSortOrderChange)=\"onSortChange(item.Code, $event)\"\n >\n {{ item.Name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data.LstItem; track $index; let i = $index) {\n <tr\n tabindex=\"0\"\n class=\"selectable-row\"\n [ngClass]=\"selectedIdKey && row[idKey] == selectedIdKey ? 'selected-row' : ''\"\n (dblclick)=\"ondblclickrow.emit(row)\"\n >\n @for (col of data.LstHeader; track $index) {\n @if (col.Code === \"NO\") {\n <td [class]=\"col.Class\">\n {{ i + 1 + filter.PageIndex * filter.PageSize }}\n </td>\n } @else if (col.Code === \"ACTION\") {\n <td [class]=\"col.Class\">\n @if (actionTemplate) {\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { $implicit: row, index: i }\"> </ng-container>\n }\n </td>\n } @else if (col.Type === \"CHECKBOX\") {\n <td [class]=\"col.Class\">\n @if (row[col.Code]) {\n <nz-icon nzType=\"check-circle\" nzTheme=\"outline\" class=\"color-primary\" />\n }\n <!-- @else {\n <nz-icon nzType=\"close\" nzTheme=\"outline\" class=\"color-warn\" />\n } -->\n </td>\n } @else if (col.Code == detailKey) {\n <td [class]=\"col.Class\">\n <span\n class=\"link-detail\"\n (click)=\"goto(row[idKey])\"\n [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"\n ></span>\n </td>\n } @else {\n @if (col.DomainCode) {\n <td\n [class]=\"col.Class\"\n [innerHTML]=\"row[col.Code] | dicDomain: col.DomainCode | async | highlight: filter.Keyword || ''\"\n ></td>\n } @else if (col.MaxLines) {\n <td>\n <read-more [text]=\"row[col.Code]\" [lines]=\"col.MaxLines\"></read-more>\n </td>\n } @else {\n <td [class]=\"col.Class\" [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"></td>\n }\n }\n }\n </tr>\n }\n </tbody>\n</nz-table>\n", styles: ["@charset \"UTF-8\";.extend-table .ant-table-tbody>tr:nth-child(odd)>td{background-color:#fff}.extend-table .ant-table-tbody>tr:nth-child(2n)>td{background-color:#f6f6f6}.extend-table .selectable-row:hover td{background-color:#bae8fd!important}.extend-table .selectable-row:focus td{background-color:#bae8fd!important}.extend-table .selected-rowtd{background-color:#bae8fd!important;font-weight:700}.extend-table .link-detail{color:var(--primary-color);cursor:pointer}.extend-table .link-detail:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$2.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: "component", type: i2$2.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i2$2.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i2$2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$2.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: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "directive", type: i4$1.ɵ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: "pipe", type: HighlightPipe, name: "highlight" }, { kind: "pipe", type: DicDomainPipe, name: "dicDomain" }, { kind: "component", type: ReadMoreProComponent, selector: "read-more", inputs: ["text", "lines"] }] });
|
|
3478
3536
|
}
|
|
3479
3537
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendTableComponent, decorators: [{
|
|
3480
3538
|
type: Component,
|
|
@@ -3487,7 +3545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3487
3545
|
HighlightPipe,
|
|
3488
3546
|
DicDomainPipe,
|
|
3489
3547
|
ReadMoreProComponent,
|
|
3490
|
-
], template: "<nz-table\n class=\"extend-table\"\n [nzData]=\"data.LstItem || []\"\n [nzBordered]=\"true\"\n [nzSize]=\"'small'\"\n [nzLoading]=\"isLoading\"\n [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\"\n [nzTotal]=\"data.TotalCount || 0\"\n [(nzPageIndex)]=\"filter.PageIndex\"\n [(nzPageSize)]=\"filter.PageSize\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n>\n <thead>\n <tr>\n @for (item of data.LstHeader; track $index) {\n <th\n [nzWidth]=\"item.Width\"\n [nzShowSort]=\"item.ShowSort\"\n [nzSortOrder]=\"item.SortOrder\"\n (nzSortOrderChange)=\"onSortChange(item.Code, $event)\"\n >\n {{ item.Name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data.LstItem; track $index; let i = $index) {\n <tr\n tabindex=\"0\"\n class=\"selectable-row\"\n [ngClass]=\"selectedIdKey && row[idKey] == selectedIdKey ? 'selected-row' : ''\"\n (dblclick)=\"ondblclickrow.emit(row)\"\n >\n @for (col of data.LstHeader; track $index) {\n @if (col.Code === \"NO\") {\n <td [class]=\"col.Class\">\n {{ i + 1 + filter.PageIndex * filter.PageSize }}\n </td>\n } @else if (col.Code === \"ACTION\") {\n <td [class]=\"col.Class\">\n @if (actionTemplate) {\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { $implicit: row, index: i }\"> </ng-container>\n }\n </td>\n } @else if (col.Type === \"CHECKBOX\") {\n <td [class]=\"col.Class\">\n @if (row[col.Code]) {\n <nz-icon nzType=\"check-circle\" nzTheme=\"outline\" class=\"color-primary\" />\n }\n <!-- @else {\n <nz-icon nzType=\"close\" nzTheme=\"outline\" class=\"color-warn\" />\n } -->\n </td>\n } @else if (col.Code == detailKey) {\n <td [class]=\"col.Class\">\n <span\n class=\"link-detail\"\n (click)=\"goto(row[idKey])\"\n [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"\n ></span>\n </td>\n } @else {\n @if (col.DomainCode) {\n <td\n [class]=\"col.Class\"\n [innerHTML]=\"row[col.Code] | dicDomain: col.DomainCode | async | highlight: filter.Keyword || ''\"\n ></td>\n } @else if (col.MaxLines) {\n <td>\n <read-more [text]=\"row[col.Code]\" [lines]=\"col.MaxLines\"></read-more>\n </td>\n } @else {\n <td [class]=\"col.Class\" [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"></td>\n }\n }\n }\n </tr>\n }\n </tbody>\n</nz-table>\n", styles: ["@charset \"UTF-8\";.extend-table .ant-table-tbody>tr:nth-child(odd)>td{background-color:#fff}.extend-table .ant-table-tbody>tr:nth-child(2n)>td{background-color:#f6f6f6}.extend-table .selectable-row:hover td{background-color:#bae8fd!important}.extend-table .selectable-row:focus td{background-color:#bae8fd!important}.extend-table .selected-rowtd{background-color:#bae8fd!important;font-weight:700}.extend-table .link-detail{color:var(--primary-color);cursor:pointer}.extend-table .link-detail:hover{text-decoration:underline}\n"] }]
|
|
3548
|
+
], template: "<nz-table\n class=\"extend-table\"\n [nzData]=\"data.LstItem || []\"\n [nzBordered]=\"true\"\n [nzSize]=\"'small'\"\n [nzLoading]=\"isLoading\"\n [nzFrontPagination]=\"false\"\n [nzShowPagination]=\"false\"\n [nzTotal]=\"data.TotalCount || 0\"\n [(nzPageIndex)]=\"filter.PageIndex\"\n [(nzPageSize)]=\"filter.PageSize\"\n [nzScroll]=\"scroll || {}\"\n (nzPageIndexChange)=\"onPageIndexChange($event)\"\n (nzPageSizeChange)=\"onPageSizeChange($event)\"\n>\n <thead>\n <tr>\n @for (item of data.LstHeader; track $index) {\n <th\n [nzWidth]=\"item.Width\"\n [nzShowSort]=\"item.ShowSort\"\n [nzSortOrder]=\"item.SortOrder\"\n (nzSortOrderChange)=\"onSortChange(item.Code, $event)\"\n >\n {{ item.Name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of data.LstItem; track $index; let i = $index) {\n <tr\n tabindex=\"0\"\n class=\"selectable-row\"\n [ngClass]=\"selectedIdKey && row[idKey] == selectedIdKey ? 'selected-row' : ''\"\n (dblclick)=\"ondblclickrow.emit(row)\"\n >\n @for (col of data.LstHeader; track $index) {\n @if (col.Code === \"NO\") {\n <td [class]=\"col.Class\">\n {{ i + 1 + filter.PageIndex * filter.PageSize }}\n </td>\n } @else if (col.Code === \"ACTION\") {\n <td [class]=\"col.Class\">\n @if (actionTemplate) {\n <ng-container *ngTemplateOutlet=\"actionTemplate; context: { $implicit: row, index: i }\"> </ng-container>\n }\n </td>\n } @else if (col.Type === \"CHECKBOX\") {\n <td [class]=\"col.Class\">\n @if (row[col.Code]) {\n <nz-icon nzType=\"check-circle\" nzTheme=\"outline\" class=\"color-primary\" />\n }\n <!-- @else {\n <nz-icon nzType=\"close\" nzTheme=\"outline\" class=\"color-warn\" />\n } -->\n </td>\n } @else if (col.Code == detailKey) {\n <td [class]=\"col.Class\">\n <span\n class=\"link-detail\"\n (click)=\"goto(row[idKey])\"\n [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"\n ></span>\n </td>\n } @else {\n @if (col.DomainCode) {\n <td\n [class]=\"col.Class\"\n [innerHTML]=\"row[col.Code] | dicDomain: col.DomainCode | async | highlight: filter.Keyword || ''\"\n ></td>\n } @else if (col.MaxLines) {\n <td>\n <read-more [text]=\"row[col.Code]\" [lines]=\"col.MaxLines\"></read-more>\n </td>\n } @else {\n <td [class]=\"col.Class\" [innerHTML]=\"row[col.Code] | highlight: filter.Keyword || ''\"></td>\n }\n }\n }\n </tr>\n }\n </tbody>\n</nz-table>\n", styles: ["@charset \"UTF-8\";.extend-table .ant-table-tbody>tr:nth-child(odd)>td{background-color:#fff}.extend-table .ant-table-tbody>tr:nth-child(2n)>td{background-color:#f6f6f6}.extend-table .selectable-row:hover td{background-color:#bae8fd!important}.extend-table .selectable-row:focus td{background-color:#bae8fd!important}.extend-table .selected-rowtd{background-color:#bae8fd!important;font-weight:700}.extend-table .link-detail{color:var(--primary-color);cursor:pointer}.extend-table .link-detail:hover{text-decoration:underline}\n"] }]
|
|
3491
3549
|
}], propDecorators: { data: [{
|
|
3492
3550
|
type: Input
|
|
3493
3551
|
}], filter: [{
|
|
@@ -3500,6 +3558,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3500
3558
|
type: Input
|
|
3501
3559
|
}], selectedIdKey: [{
|
|
3502
3560
|
type: Input
|
|
3561
|
+
}], scroll: [{
|
|
3562
|
+
type: Input
|
|
3503
3563
|
}], actionTemplate: [{
|
|
3504
3564
|
type: Input
|
|
3505
3565
|
}], filterChange: [{
|
|
@@ -3514,7 +3574,7 @@ class ExtendPaginationComponent {
|
|
|
3514
3574
|
onQueryParamsChange = new EventEmitter();
|
|
3515
3575
|
AppGlobals = AppGlobals;
|
|
3516
3576
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3517
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: ExtendPaginationComponent, isStandalone: true, selector: "extend-pagination", inputs: { totalCount: "totalCount", filter: "filter" }, outputs: { onQueryParamsChange: "onQueryParamsChange" }, ngImport: i0, template: "<nz-pagination\n [nzSize]=\"'small'\"\n [nzPageIndex]=\"filter.PageIndex + 1\"\n [nzPageSize]=\"filter.PageSize\"\n [nzTotal]=\"totalCount || 0\"\n [nzShowSizeChanger]=\"true\"\n [nzShowTotal]=\"showTotalTpl\"\n [nzPageSizeOptions]=\"AppGlobals.pageSizeOptions\"\n (nzPageIndexChange)=\"onQueryParamsChange.emit({ PageIndex: $event - 1, PageSize: filter.PageSize })\"\n (nzPageSizeChange)=\"onQueryParamsChange.emit({ PageIndex: filter.PageIndex, PageSize: $event })\"\n>\n</nz-pagination>\n\n<ng-template #showTotalTpl let-total let-range=\"range\">\n {{ range[0] | number }} - {{ range[1] | number }} / {{ total | number }}\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: NzPaginationModule }, { kind: "component", type: i1$
|
|
3577
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: ExtendPaginationComponent, isStandalone: true, selector: "extend-pagination", inputs: { totalCount: "totalCount", filter: "filter" }, outputs: { onQueryParamsChange: "onQueryParamsChange" }, ngImport: i0, template: "<nz-pagination\n [nzSize]=\"'small'\"\n [nzPageIndex]=\"filter.PageIndex + 1\"\n [nzPageSize]=\"filter.PageSize\"\n [nzTotal]=\"totalCount || 0\"\n [nzShowSizeChanger]=\"true\"\n [nzShowTotal]=\"showTotalTpl\"\n [nzPageSizeOptions]=\"AppGlobals.pageSizeOptions\"\n (nzPageIndexChange)=\"onQueryParamsChange.emit({ PageIndex: $event - 1, PageSize: filter.PageSize })\"\n (nzPageSizeChange)=\"onQueryParamsChange.emit({ PageIndex: filter.PageIndex, PageSize: $event })\"\n>\n</nz-pagination>\n\n<ng-template #showTotalTpl let-total let-range=\"range\">\n {{ range[0] | number }} - {{ range[1] | number }} / {{ total | number }}\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: NzPaginationModule }, { kind: "component", type: i1$5.NzPaginationComponent, selector: "nz-pagination", inputs: ["nzShowTotal", "nzItemRender", "nzSize", "nzPageSizeOptions", "nzShowSizeChanger", "nzShowQuickJumper", "nzSimple", "nzDisabled", "nzResponsive", "nzHideOnSinglePage", "nzTotal", "nzPageIndex", "nzPageSize"], outputs: ["nzPageSizeChange", "nzPageIndexChange"], exportAs: ["nzPagination"] }, { kind: "pipe", type: DecimalPipe, name: "number" }] });
|
|
3518
3578
|
}
|
|
3519
3579
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExtendPaginationComponent, decorators: [{
|
|
3520
3580
|
type: Component,
|
|
@@ -3540,14 +3600,14 @@ class NoPermission {
|
|
|
3540
3600
|
this.message = state?.message || null;
|
|
3541
3601
|
console.log('Lấy từ history.state:', state);
|
|
3542
3602
|
}
|
|
3543
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NoPermission, deps: [{ token: i1$
|
|
3603
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NoPermission, deps: [{ token: i1$6.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
3544
3604
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: NoPermission, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
3545
3605
|
<h2>Không có quyền truy cập</h2>
|
|
3546
3606
|
<p *ngIf="message">{{ message }}</p>
|
|
3547
3607
|
<p *ngIf="deniedUrl">
|
|
3548
3608
|
Bạn đã cố gắng truy cập: <strong>{{ deniedUrl }}</strong>
|
|
3549
3609
|
</p>
|
|
3550
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3610
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3551
3611
|
}
|
|
3552
3612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: NoPermission, decorators: [{
|
|
3553
3613
|
type: Component,
|
|
@@ -3561,7 +3621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3561
3621
|
`,
|
|
3562
3622
|
imports: [CommonModule],
|
|
3563
3623
|
}]
|
|
3564
|
-
}], ctorParameters: () => [{ type: i1$
|
|
3624
|
+
}], ctorParameters: () => [{ type: i1$6.Router }] });
|
|
3565
3625
|
|
|
3566
3626
|
class PdfViewerComponent {
|
|
3567
3627
|
// data = inject(NZ_MODAL_DATA);
|
|
@@ -3596,7 +3656,7 @@ class PdfViewerComponent {
|
|
|
3596
3656
|
}
|
|
3597
3657
|
}
|
|
3598
3658
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: PdfViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: PdfViewerComponent, isStandalone: true, selector: "pdf-viewer", inputs: { dataType: "dataType", pdfData: "pdfData" }, ngImport: i0, template: "@if (dataType == \"base64\") {\n <ngx-extended-pdf-viewer\n [zoom]=\"100\"\n [base64Src]=\"this.pdfData\"\n [showPrintButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [showDownloadButton]=\"false\"\n ></ngx-extended-pdf-viewer>\n}\n\n@if (dataType == \"bytes\") {\n <ngx-extended-pdf-viewer\n [zoom]=\"100\"\n [src]=\"this.pdfData\"\n [showPrintButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [showDownloadButton]=\"false\"\n ></ngx-extended-pdf-viewer>\n}\n", dependencies: [{ kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i1$
|
|
3659
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: PdfViewerComponent, isStandalone: true, selector: "pdf-viewer", inputs: { dataType: "dataType", pdfData: "pdfData" }, ngImport: i0, template: "@if (dataType == \"base64\") {\n <ngx-extended-pdf-viewer\n [zoom]=\"100\"\n [base64Src]=\"this.pdfData\"\n [showPrintButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [showDownloadButton]=\"false\"\n ></ngx-extended-pdf-viewer>\n}\n\n@if (dataType == \"bytes\") {\n <ngx-extended-pdf-viewer\n [zoom]=\"100\"\n [src]=\"this.pdfData\"\n [showPrintButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [showDownloadButton]=\"false\"\n ></ngx-extended-pdf-viewer>\n}\n", dependencies: [{ kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i1$7.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "forceFullReloadOfJavaScriptCode", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] });
|
|
3600
3660
|
}
|
|
3601
3661
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: PdfViewerComponent, decorators: [{
|
|
3602
3662
|
type: Component,
|
|
@@ -3658,7 +3718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3658
3718
|
class Height {
|
|
3659
3719
|
height = 0;
|
|
3660
3720
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Height, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3661
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: Height, isStandalone: true, selector: "height", inputs: { height: "height" }, ngImport: i0, template: `<div [ngStyle]="{ height: height + 'px' }"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3721
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: Height, isStandalone: true, selector: "height", inputs: { height: "height" }, ngImport: i0, template: `<div [ngStyle]="{ height: height + 'px' }"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3662
3722
|
}
|
|
3663
3723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Height, decorators: [{
|
|
3664
3724
|
type: Component,
|
|
@@ -3674,7 +3734,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3674
3734
|
class Width {
|
|
3675
3735
|
width = 0;
|
|
3676
3736
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Width, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3677
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: Width, isStandalone: true, selector: "width", inputs: { width: "width" }, ngImport: i0, template: `<div style="display: inline" [ngStyle]="{ 'padding-left': width + 'px' }"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3737
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: Width, isStandalone: true, selector: "width", inputs: { width: "width" }, ngImport: i0, template: `<div style="display: inline" [ngStyle]="{ 'padding-left': width + 'px' }"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3678
3738
|
}
|
|
3679
3739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Width, decorators: [{
|
|
3680
3740
|
type: Component,
|
|
@@ -3698,7 +3758,7 @@ class Box {
|
|
|
3698
3758
|
'padding-left': width + 'px',
|
|
3699
3759
|
display: display ? display : width && height ? 'block' : height ? 'block' : width ? 'inline' : display,
|
|
3700
3760
|
}"
|
|
3701
|
-
></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3761
|
+
></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
3702
3762
|
}
|
|
3703
3763
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: Box, decorators: [{
|
|
3704
3764
|
type: Component,
|
|
@@ -3894,7 +3954,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
3894
3954
|
|
|
3895
3955
|
class H3Icon {
|
|
3896
3956
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: H3Icon, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3897
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: H3Icon, isStandalone: true, selector: "h3-icon", ngImport: i0, template: ` <h3 nz-col><nz-icon nzType="send" nzTheme="outline" /> <ng-content></ng-content></h3> `, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$
|
|
3957
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: H3Icon, isStandalone: true, selector: "h3-icon", ngImport: i0, template: ` <h3 nz-col><nz-icon nzType="send" nzTheme="outline" /> <ng-content></ng-content></h3> `, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
3898
3958
|
}
|
|
3899
3959
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: H3Icon, decorators: [{
|
|
3900
3960
|
type: Component,
|
|
@@ -3919,7 +3979,7 @@ class IconAdd {
|
|
|
3919
3979
|
[ngStyle]="{ 'font-size.px': size }"
|
|
3920
3980
|
(click)="$event.stopPropagation(); click.emit()"
|
|
3921
3981
|
></nz-icon>
|
|
3922
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
3982
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
3923
3983
|
}
|
|
3924
3984
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconAdd, decorators: [{
|
|
3925
3985
|
type: Component,
|
|
@@ -3956,7 +4016,7 @@ class IconEdit {
|
|
|
3956
4016
|
[ngStyle]="{ 'font-size.px': size }"
|
|
3957
4017
|
(click)="$event.stopPropagation(); click.emit()"
|
|
3958
4018
|
></nz-icon>
|
|
3959
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
4019
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
3960
4020
|
}
|
|
3961
4021
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconEdit, decorators: [{
|
|
3962
4022
|
type: Component,
|
|
@@ -3993,7 +4053,7 @@ class IconSave {
|
|
|
3993
4053
|
[ngStyle]="{ 'font-size.px': size }"
|
|
3994
4054
|
(click)="$event.stopPropagation(); click.emit()"
|
|
3995
4055
|
></nz-icon>
|
|
3996
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
4056
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
3997
4057
|
}
|
|
3998
4058
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconSave, decorators: [{
|
|
3999
4059
|
type: Component,
|
|
@@ -4030,7 +4090,7 @@ class IconDelete {
|
|
|
4030
4090
|
[ngStyle]="{ 'font-size.px': size }"
|
|
4031
4091
|
(click)="$event.stopPropagation(); click.emit()"
|
|
4032
4092
|
></nz-icon>
|
|
4033
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
4093
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
4034
4094
|
}
|
|
4035
4095
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconDelete, decorators: [{
|
|
4036
4096
|
type: Component,
|
|
@@ -4067,7 +4127,7 @@ class IconView {
|
|
|
4067
4127
|
[ngStyle]="{ 'font-size.px': size }"
|
|
4068
4128
|
(click)="$event.stopPropagation(); click.emit()"
|
|
4069
4129
|
></nz-icon>
|
|
4070
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
4130
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
4071
4131
|
}
|
|
4072
4132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconView, decorators: [{
|
|
4073
4133
|
type: Component,
|
|
@@ -4104,7 +4164,7 @@ class IconSearch {
|
|
|
4104
4164
|
[ngStyle]="{ 'font-size.px': size }"
|
|
4105
4165
|
(click)="$event.stopPropagation(); click.emit()"
|
|
4106
4166
|
></nz-icon>
|
|
4107
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
4167
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
4108
4168
|
}
|
|
4109
4169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: IconSearch, decorators: [{
|
|
4110
4170
|
type: Component,
|
|
@@ -6103,7 +6163,7 @@ class WorkflowEditorComponent extends BaseComponent {
|
|
|
6103
6163
|
}
|
|
6104
6164
|
}
|
|
6105
6165
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: WorkflowEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
6106
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: WorkflowEditorComponent, isStandalone: true, selector: "app-workflow-editor", inputs: { lstOrg: "lstOrg", lstRole: "lstRole", lstEmailTemplate: "lstEmailTemplate" }, outputs: { onSave: "onSave", onDeleteStage: "onDeleteStage", onDeleteAction: "onDeleteAction", onDeleteRule: "onDeleteRule", onDeleteRuleLine: "onDeleteRuleLine" }, host: { listeners: { "window:keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, static: true }, { propertyName: "svgRef", first: true, predicate: ["svg"], descendants: true, static: true }, { propertyName: "inputStageStatusElement", first: true, predicate: ["inputStageStatusElement"], descendants: true }, { propertyName: "inputActionTypeElement", first: true, predicate: ["inputActionTypeElement"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #canvasRef\r\n class=\"workflow-canvas\"\r\n [class.connecting]=\"!!connectingFrom\"\r\n [class.dragging-point]=\"!!draggingPoint\"\r\n [style.width.px]=\"getCanvasWidth()\"\r\n [style.height.px]=\"getCanvasHeight()\"\r\n (mousedown)=\"onMouseDownCanvas($event)\"\r\n (mousemove)=\"onMouseMoveCanvas($event)\"\r\n (mouseup)=\"onMouseUpCanvas($event)\"\r\n (click)=\"onClickCanvas($event)\"\r\n>\r\n <!-- \r\n\r\n [style.width.px]=\"getCanvasWidth()\"\r\n [style.height.px]=\"getCanvasHeight()\" \r\n\r\n [style.width.px]=\"CANVAS_WIDTH\"\r\n [style.height.px]=\"CANVAS_HEIGHT\"\r\n\r\n style=\"width: 100%; height: calc(100vh - 120px)\"\r\n \r\n -->\r\n\r\n <div class=\"toolbar\" (mousedown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Editor setting\" (click)=\"settingVisible = true\">\r\n <nz-icon nzType=\"setting\"></nz-icon>\r\n </button>\r\n\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Infomation\" (click)=\"infoVisible = true\">\r\n <nz-icon nzType=\"info-circle\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Template setting\" (click)=\"drawTemplateVisibel = true\">\r\n <nz-icon nzType=\"setting\"></nz-icon> T\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button nz-button nzSize=\"small\" nzDanger [nzLoading]=\"!ready\" nz-tooltip=\"Save (Ctrl + S)\" (click)=\"save()\">\r\n <nz-icon nzType=\"save\"></nz-icon>\r\n </button>\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Add stage\" (click)=\"addStage()\">\r\n <nz-icon nzType=\"plus\" class=\"color-primary\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n [nzType]=\"isMoveMode ? 'primary' : 'default'\"\r\n nz-tooltip=\"Move mode\"\r\n (click)=\"isMoveMode = true\"\r\n >\r\n <nz-icon><img src=\"/assets/icon/hand-palm.png\" width=\"19\" height=\"19\" /></nz-icon>\r\n </button>\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n [nzType]=\"!isMoveMode ? 'primary' : 'default'\"\r\n nz-tooltip=\"Select mode\"\r\n (click)=\"isMoveMode = false\"\r\n >\r\n <nz-icon><img src=\"/assets/icon/cursor.png\" width=\"19\" height=\"19\" /></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <!-- UNDO / REDO -->\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nzType=\"default\"\r\n [disabled]=\"undoStack.length === 0\"\r\n nz-tooltip=\"Undo\"\r\n (click)=\"undo()\"\r\n >\r\n <nz-icon nzType=\"undo\"></nz-icon>\r\n </button>\r\n\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nzType=\"default\"\r\n [disabled]=\"redoStack.length === 0\"\r\n nz-tooltip=\"Redo\"\r\n (click)=\"redo()\"\r\n >\r\n <nz-icon nzType=\"redo\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <!-- ALIGN -->\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignLeft()\">\u27F8</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignCenter()\">\u2261</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignRight()\">\u27F9</button>\r\n\r\n <span class=\"divider\"></span>\r\n\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignTop()\">\u21D1</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignMiddle()\">\u2550</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignBottom()\">\u21D3</button>\r\n\r\n <span class=\"divider\"></span>\r\n\r\n <!-- DISTRIBUTE -->\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 3\" (click)=\"distributeHorizontal()\">\r\n \u21C4\r\n </button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 3\" (click)=\"distributeVertical()\">\u21C5</button>\r\n </div>\r\n\r\n <div\r\n class=\"canvas-content\"\r\n [class.panning]=\"isMoveMode\"\r\n [style.transform]=\"'translate(' + template.editorOption.panX + 'px,' + template.editorOption.panY + 'px)'\"\r\n >\r\n <!-- GRID -->\r\n <div *ngIf=\"wfcSetting.ShowGrid\" class=\"grid-layer\"></div>\r\n\r\n <!-- <div class=\"zoom-toolbar\">\r\n <button nz-button nzSize=\"small\" (click)=\"zoomOut()\">\u2212</button>\r\n <span>{{ zoom * 100 | number: \"1.0-0\" }}%</span>\r\n <button nz-button nzSize=\"small\" (click)=\"zoomIn()\">+</button>\r\n </div> -->\r\n\r\n <!-- SVG EDGES -->\r\n <svg #svg class=\"edges-layer\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"none\">\r\n <g [attr.transform]=\"svgTransform\">\r\n <!-- DEFS -->\r\n <defs>\r\n <!-- glow effect -->\r\n <filter id=\"edge-glow\" x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\">\r\n <feGaussianBlur stdDeviation=\"2\" result=\"blur\" />\r\n <feMerge>\r\n <feMergeNode in=\"blur\" />\r\n <feMergeNode in=\"SourceGraphic\" />\r\n </feMerge>\r\n </filter>\r\n\r\n <!-- arrow markers -->\r\n <marker\r\n id=\"arrow-blue\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"blue\" d=\"M0,0 L10,5 L0,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-red\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"red\" d=\"M0,0 L10,5 L0,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-blue-start\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n viewBox=\"0 0 10 10\"\r\n refX=\"0\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"blue\" d=\"M10,0 L0,5 L10,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-red-start\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n viewBox=\"0 0 10 10\"\r\n refX=\"0\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"red\" d=\"M10,0 L0,5 L10,10\"></path>\r\n </marker>\r\n </defs>\r\n\r\n <!-- EDGES B\u00CCNH TH\u01AF\u1EDCNG -->\r\n <ng-container *ngFor=\"let e of normalEdges; let i = index\">\r\n <path\r\n class=\"edge\"\r\n [attr.id]=\"'edge-path-' + i\"\r\n [attr.d]=\"buildPath(e)\"\r\n marker-end=\"url(#arrow-blue)\"\r\n [attr.marker-start]=\"e.allowBack ? 'url(#arrow-blue-start)' : ''\"\r\n ></path>\r\n\r\n <path\r\n class=\"edge-hit\"\r\n [attr.d]=\"buildPath(e)\"\r\n (mouseenter)=\"onMouseEnterEdge(e)\"\r\n (mouseleave)=\"onMouseLeaveEdge(e)\"\r\n (click)=\"onClickEdge(e, $event)\"\r\n ></path>\r\n\r\n <!-- LABEL -->\r\n <!-- text b\u00E1m theo line -->\r\n <!-- \r\n <text *ngIf=\"e.ActionText\" class=\"edge-label\" dy=\"-6\">\r\n <textPath [attr.href]=\"'#edge-path-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.ActionText }}\r\n </textPath>\r\n </text> \r\n \r\n <text *ngIf=\"e.allowBack && e.labelBack\" class=\"edge-label\" dy=\"14\">\r\n <textPath [attr.href]=\"'#edge-path-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.labelBack }}\r\n </textPath>\r\n </text>\r\n -->\r\n\r\n <!-- text th\u1EB3ng n\u1EB1m ngang -->\r\n <text\r\n *ngIf=\"e.ActionText\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y - 8\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.ActionText }}\r\n </text>\r\n\r\n <text\r\n *ngIf=\"e.allowBack && e.labelBack\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y + 14\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.labelBack }}\r\n </text>\r\n </ng-container>\r\n\r\n <!-- EDGE \u0110ANG HOVER (LU\u00D4N TR\u00CAN C\u00D9NG) -->\r\n <ng-container *ngFor=\"let e of hoverEdges; let i = index\">\r\n <path\r\n class=\"edge red\"\r\n [attr.id]=\"'edge-path-hover-' + i\"\r\n [attr.d]=\"buildPath(e)\"\r\n marker-end=\"url(#arrow-red)\"\r\n [attr.marker-start]=\"e.allowBack ? 'url(#arrow-red-start)' : ''\"\r\n ></path>\r\n\r\n <path\r\n class=\"edge-hit\"\r\n [attr.d]=\"buildPath(e)\"\r\n (mouseleave)=\"onMouseLeaveEdge(e)\"\r\n (click)=\"onClickEdge(e, $event)\"\r\n ></path>\r\n\r\n <!-- LABEL -->\r\n <!-- <text *ngIf=\"e.ActionText\" class=\"edge-label\" dy=\"-6\">\r\n <textPath [attr.href]=\"'#edge-path-hover-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.ActionText }}\r\n </textPath>\r\n </text>\r\n\r\n <text *ngIf=\"e.allowBack && e.labelBack\" class=\"edge-label\" dy=\"14\">\r\n <textPath [attr.href]=\"'#edge-path-hover-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.labelBack }}\r\n </textPath>\r\n </text> -->\r\n\r\n <text\r\n *ngIf=\"e.ActionText\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y - 8\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.ActionText }}\r\n </text>\r\n\r\n <text\r\n *ngIf=\"e.allowBack && e.labelBack\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y + 14\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.labelBack }}\r\n </text>\r\n </ng-container>\r\n\r\n <!-- preview -->\r\n <path\r\n *ngIf=\"connectingFrom\"\r\n class=\"edge\"\r\n [attr.d]=\"buildPreviewPath()\"\r\n stroke-dasharray=\"5,5\"\r\n marker-end=\"url(#arrow-blue)\"\r\n ></path>\r\n </g>\r\n </svg>\r\n\r\n <div\r\n *ngIf=\"isSelecting && selectStart && selectEnd\"\r\n class=\"selection-box\"\r\n [style.left.px]=\"Math.min(selectStart.x, selectEnd.x)\"\r\n [style.top.px]=\"Math.min(selectStart.y, selectEnd.y)\"\r\n [style.width.px]=\"Math.abs(selectEnd.x - selectStart.x)\"\r\n [style.height.px]=\"Math.abs(selectEnd.y - selectStart.y)\"\r\n ></div>\r\n\r\n <!-- lstStage -->\r\n @for (n of lstStage; track $index) {\r\n <!-- START NODE -->\r\n @if (n.StageType === \"_start_\") {\r\n <nz-card\r\n class=\"workflow-node workflow-node-start\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <nz-tag [nzColor]=\"'green'\"> START </nz-tag>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector RIGHT: output -->\r\n <div class=\"connector connector-right connector-start\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n } @else {\r\n <div\r\n class=\"connector connector-right connector-start reverse\"\r\n (click)=\"onClickConnector($event, n, 'right')\"\r\n ></div>\r\n }\r\n </nz-card>\r\n }\r\n <!-- END NODE -->\r\n @else if (n.StageType === \"_end_\") {\r\n <nz-card\r\n class=\"workflow-node workflow-node-end\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <nz-tag [nzColor]=\"'red'\"> END </nz-tag>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector LEFT: input -->\r\n <div class=\"connector connector-left connector-end\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n } @else {\r\n <div\r\n class=\"connector connector-left connector-end reverse\"\r\n (click)=\"onClickConnector($event, n, 'left')\"\r\n ></div>\r\n }\r\n </nz-card>\r\n } @else {\r\n <nz-card\r\n class=\"workflow-node\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <div class=\"title\">{{ n.Code }}</div>\r\n\r\n <div>{{ n.Name }}</div>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector RIGHT: output -->\r\n <div class=\"connector connector-right\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n\r\n <!-- connector LEFT: input -->\r\n <div class=\"connector connector-left\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n } @else {\r\n <div class=\"connector connector-right reverse\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n <div class=\"connector connector-left reverse\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n }\r\n </nz-card>\r\n }\r\n }\r\n\r\n <!-- POINTS -->\r\n @for (p of connectingPoints; track $index) {\r\n @if (p != draggingPoint) {\r\n <div\r\n class=\"waypoint\"\r\n [style.left.px]=\"p.x\"\r\n [style.top.px]=\"p.y\"\r\n (mousedown)=\"onmousedownPoint($event, p)\"\r\n (contextmenu)=\"onRightClickPoint($event, hoverAction!, $index)\"\r\n ></div>\r\n } @else {\r\n <div\r\n class=\"waypoint dragging\"\r\n [style.left.px]=\"p.x\"\r\n [style.top.px]=\"p.y\"\r\n (mousedown)=\"onmousedownPoint($event, p)\"\r\n ></div>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- drawer TEMPLATE -->\r\n<nz-drawer\r\n [nzTitle]=\"drawTemplateTitle\"\r\n nzPlacement=\"right\"\r\n [nzWidth]=\"500\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"drawTemplateVisibel\"\r\n [nzFooter]=\"footerTplTemplate\"\r\n (nzOnClose)=\"drawTemplateVisibel = false\"\r\n>\r\n <ng-template #drawTemplateTitle> <nz-icon nzType=\"setting\"></nz-icon> Template </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <extend-select\r\n [label]=\"'Org'\"\r\n [lstItem]=\"lstOrg\"\r\n [valueField]=\"'App_Org_Id'\"\r\n [displayFields]=\"['Name', 'Code']\"\r\n [(_ngModel)]=\"template.App_Org_Id\"\r\n ></extend-select>\r\n <extend-input [label]=\"'Code'\" [(_ngModel)]=\"template.Code\"></extend-input>\r\n <extend-input [label]=\"'Name'\" [(_ngModel)]=\"template.Name\"></extend-input>\r\n <extend-select\r\n [label]=\"'Type'\"\r\n [lstItem]=\"template.lstTemplateType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.DocType\"\r\n ></extend-select>\r\n <extend-textarea [label]=\"'Desscription'\" [(_ngModel)]=\"template.Description\"></extend-textarea>\r\n <extend-select\r\n [label]=\"'Print template'\"\r\n [lstItem]=\"template.lstTemplatePrint\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.TemplatePrint\"\r\n ></extend-select>\r\n <extend-select\r\n [label]=\"'Apply to'\"\r\n [lstItem]=\"template.lstApplyTo\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.ApplyTo\"\r\n ></extend-select>\r\n\r\n <extend-checkbox [label]=\"'Active'\" [(_ngModel)]=\"template.IsActive\"></extend-checkbox>\r\n <extend-checkbox [label]=\"'Use Allow back'\" [(_ngModel)]=\"template.editorOption.AllowbackInUse\"></extend-checkbox>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Stage</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of getLstStage; track tag) {\r\n <div nz-col>\r\n <nz-tag (click)=\"hoverStage = tag\">\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Stage status</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstStageStatus; track tag) {\r\n <div nz-col>\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableStageStatus(tag) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleCloseStageStatus(tag)\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputStageStatusVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInputStageStatus()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action type\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputStageStatusElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Code\"\r\n [(ngModel)]=\"inputStageStatusCode\"\r\n (keydown.enter)=\"inputStageStatusNameElement.select()\"\r\n />\r\n <input\r\n #inputStageStatusNameElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Name\"\r\n [(ngModel)]=\"inputStageStatusName\"\r\n (blur)=\"handleInputStageStatusConfirm()\"\r\n (keydown.enter)=\"handleInputStageStatusConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Action type</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstActionType; track tag) {\r\n <div nz-col>\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableActionType(tag) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleCloseActionType(tag)\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputActionTypeVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInputActionType()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action type\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputActionTypeElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Code\"\r\n [(ngModel)]=\"inputActionTypeCode\"\r\n (keydown.enter)=\"inputActionTypeNameElement.select()\"\r\n />\r\n <input\r\n #inputActionTypeNameElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Name\"\r\n [(ngModel)]=\"inputActionTypeName\"\r\n (blur)=\"handleInputActionTypeConfirm()\"\r\n (keydown.enter)=\"handleInputActionTypeConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Action status</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstActionStatus; track tag) {\r\n <div nz-col>\r\n @if (template.editingActionStatus != tag) {\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableActionStatus(tag.Code) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleClose(tag.Code)\"\r\n (click)=\"template.editingActionStatus = checkRemoveableActionStatus(tag.Code) ? tag : undefined\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n } @else {\r\n <input\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n [appAutoFocus]=\"true\"\r\n [(ngModel)]=\"tag.Code\"\r\n (blur)=\"template.editingActionStatus = undefined\"\r\n (keydown.enter)=\"template.editingActionStatus = undefined\"\r\n /> \r\n }\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInput()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action status\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"+ New Action status\"\r\n [(ngModel)]=\"inputValue\"\r\n (blur)=\"handleInputConfirm()\"\r\n (keydown.enter)=\"handleInputConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #footerTplTemplate>\r\n <div nz-flex [nzGap]=\"6\" [nzJustify]=\"'end'\">\r\n <button nz-button nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button (click)=\"drawTemplateVisibel = false\">Close</button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- drawer STAGE -->\r\n<nz-drawer\r\n [nzTitle]=\"drawerTitleStage\"\r\n [nzPlacement]=\"selectedStage?.editorOption?.drawerPosition == 'left' ? 'left' : 'right'\"\r\n [nzVisible]=\"!!selectedStage\"\r\n [nzWidth]=\"'calc(50vw)'\"\r\n [nzClosable]=\"false\"\r\n [nzFooter]=\"footerTplNode\"\r\n (nzOnClose)=\"selectedStage = undefined\"\r\n>\r\n <ng-template #drawerTitleStage>\r\n <div nz-row nzJustify=\"space-between\">\r\n @if (selectedStage && selectedStage.editorOption) {\r\n @if (selectedStage.editorOption.drawerPosition == \"left\") {\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the right\"\r\n (click)=\"selectedStage.editorOption.drawerPosition = 'right'\"\r\n >\r\n <nz-icon nzType=\"double-right\"></nz-icon>\r\n </button>\r\n STAGE\r\n } @else {\r\n STAGE\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the left\"\r\n (click)=\"selectedStage.editorOption.drawerPosition = 'left'\"\r\n >\r\n <nz-icon nzType=\"double-left\"></nz-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <ng-container *ngIf=\"selectedStage\">\r\n <nz-radio-group [(ngModel)]=\"selectedStage.StageType\">\r\n <label nz-radio nzValue=\"_start_\">UI start</label>\r\n <label nz-radio nzValue=\"_end_\">UI end</label>\r\n <label nz-radio nzValue=\"start\">START</label>\r\n <label nz-radio nzValue=\"node\">NODE</label>\r\n <label nz-radio nzValue=\"end\">END</label>\r\n </nz-radio-group>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Code'\"\r\n [floatingLabel]=\"true\"\r\n [required]=\"true\"\r\n [(_ngModel)]=\"selectedStage.Code\"\r\n ></extend-input>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"16\"\r\n [label]=\"'Name'\"\r\n [floatingLabel]=\"true\"\r\n [required]=\"true\"\r\n [(_ngModel)]=\"selectedStage.Name\"\r\n ></extend-input>\r\n </div>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input-number\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Sequence'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedStage.SeqValue\"\r\n ></extend-input-number>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"16\"\r\n [label]=\"'Org implement'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstOrg\"\r\n [valueField]=\"'App_Org_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedStage.App_Org_Id\"\r\n ></extend-select>\r\n </div>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input-number\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Number Day'\"\r\n [floatingLabel]=\"true\"\r\n [precision]=\"1\"\r\n [(_ngModel)]=\"selectedStage.NumberDay\"\r\n ></extend-input-number>\r\n </div>\r\n\r\n @if (selectedStage.editorOption) {\r\n @if ([\"start\", \"node\", \"end\"].includes(selectedStage.StageType.toLowerCase())) {\r\n <extend-checkbox\r\n [label]=\"'Reverse'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedStage.editorOption.isReverse\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <extend-checkbox\r\n [label]=\"'Require user action'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedStage.IsRequireUser\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"16\">\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> List Action</h3>\r\n <div nz-col>\r\n <button nz-button nzType=\"primary\" nzSize=\"small\" (click)=\"addAction()\">\r\n <nz-icon nzType=\"plus\"></nz-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <nz-table nzSize=\"small\" [nzData]=\"lstActionOfCurrentStage\" [nzShowPagination]=\"false\" [nzNoResult]=\"' '\">\r\n <thead>\r\n <tr [hidden]=\"true\">\r\n <th nzWidth=\"40px\"></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (action of lstActionOfCurrentStage; track $index) {\r\n <tr [class.text-bold]=\"action == hoverAction\" (click)=\"onclickaction(action)\">\r\n <td style=\"border-bottom: solid 1px orange\">\r\n ({{ $index + 1 }})\r\n <nz-icon\r\n nzType=\"delete\"\r\n nzTheme=\"outline\"\r\n class=\"color-warn cursor-pointer icon-size-16\"\r\n (click)=\"$event.stopPropagation(); deleteAction(action)\"\r\n ></nz-icon>\r\n </td>\r\n <td style=\"border-bottom: solid 1px orange\">\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"action.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(action.ActionStatus)\"\r\n (blur)=\"onenterAotu(action.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"action.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(action)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"getlstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(action)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.To_StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Process status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstProcessStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.DocProcessStatus\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row>Role</div>\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstRole\"\r\n [valueField]=\"'App_Role_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [multiple]=\"true\"\r\n [(_ngModel)]=\"action._lstRoleId\"\r\n (_ngModelChange)=\"onselectedRoleEmail(action)\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row>Email action</div>\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstEmailAction\"\r\n [valueField]=\"'ID'\"\r\n [displayField]=\"'Name'\"\r\n [multiple]=\"true\"\r\n [(_ngModel)]=\"action._lstEmailActionId\"\r\n (_ngModelChange)=\"onselectedRoleEmail(action)\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div *ngIf=\"action._lstEmailActionId && action._lstEmailActionId.length\" nz-row>Email template</div>\r\n <div *ngIf=\"action._lstEmailActionId && action._lstEmailActionId.length\" nz-row>\r\n <div nz-col nzSpan=\"1\"></div>\r\n <div nz-col nzSpan=\"23\" class=\"form-item-no-bottom\" style=\"font-weight: normal\">\r\n @for (actionRef of lstActionRefOf(action); track $index) {\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [labelSpan]=\"12\"\r\n [size]=\"'small'\"\r\n [label]=\"emailActionText(actionRef.To_WF_TemplateStageAction_Id)\"\r\n [lstItem]=\"lstEmailTemplate\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"actionRef.TemplateMail\"\r\n ></extend-select>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row [nzGutter]=\"8\">\r\n Action rule\r\n <button nz-button nzType=\"text\" nzSize=\"small\" (click)=\"actionRuleModalVisible = true\">\r\n <nz-icon nzType=\"export\" nzTheme=\"outline\" class=\"color-primary\" />\r\n </button>\r\n <button\r\n *ngIf=\"action.WF_TransitionsRule_Id\"\r\n nz-button\r\n nzType=\"text\"\r\n nzSize=\"small\"\r\n (click)=\"deleteActionRule(action)\"\r\n >\r\n <nz-icon nzType=\"delete\" nzTheme=\"outline\" class=\"color-warn\" />\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n\r\n <box [height]=\"16\"></box>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTplNode>\r\n <div\r\n nz-flex\r\n [nzGap]=\"6\"\r\n [nzJustify]=\"\r\n selectedStage && selectedStage.editorOption && selectedStage.editorOption.drawerPosition == 'left'\r\n ? 'start'\r\n : 'end'\r\n \"\r\n >\r\n <button nz-button nzDanger nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button (click)=\"selectedStage = undefined\">Close</button>\r\n <button\r\n *ngIf=\"selectedStage && ['START', 'END'].indexOf(selectedStage.StageType) < 0\"\r\n nz-button\r\n nzDanger\r\n (click)=\"deleteStage()\"\r\n >\r\n Delete\r\n </button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- drawer ACTION -->\r\n<nz-drawer\r\n [nzTitle]=\"drawerTitleAction\"\r\n nzTitle=\"ACTION\"\r\n [nzPlacement]=\"selectedAction?.editorOption?.drawerPosition == 'left' ? 'left' : 'right'\"\r\n [nzClosable]=\"false\"\r\n [nzWidth]=\"750\"\r\n [nzVisible]=\"!!selectedAction\"\r\n [nzFooter]=\"footerTplAction\"\r\n (nzOnClose)=\"selectedAction = undefined\"\r\n>\r\n <ng-template #drawerTitleAction>\r\n <div nz-row nzJustify=\"space-between\">\r\n @if (selectedAction && selectedAction.editorOption) {\r\n @if (selectedAction.editorOption.drawerPosition == \"left\") {\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the right\"\r\n (click)=\"selectedAction.editorOption.drawerPosition = 'right'\"\r\n >\r\n <nz-icon nzType=\"double-right\"></nz-icon>\r\n </button>\r\n ACTION\r\n } @else {\r\n ACTION\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the left\"\r\n (click)=\"selectedAction.editorOption.drawerPosition = 'left'\"\r\n >\r\n <nz-icon nzType=\"double-left\"></nz-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <ng-container *ngIf=\"selectedAction\">\r\n <div>\r\n <strong\r\n >{{ selectedAction.getFromStageCode(lstStage) }} -> {{ selectedAction.getToStageCode(lstStage) }}</strong\r\n >\r\n </div>\r\n <div>{{ selectedAction.getFromStageName(lstStage) }} -> {{ selectedAction.getToStageName(lstStage) }}</div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"selectedAction.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(selectedAction.ActionStatus)\"\r\n (blur)=\"onenterAotu(selectedAction.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedAction.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(selectedAction)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(selectedAction)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.To_StageStatus\"\r\n ></extend-select>\r\n </div>\r\n\r\n <!-- <box [height]=\"16\"></box> -->\r\n <nz-divider></nz-divider>\r\n\r\n @if (template.editorOption.AllowbackInUse) {\r\n <extend-checkbox\r\n [label]=\"'Allow back'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedAction.allowBack\"\r\n (_ngModelChange)=\"onchangeAllowBack(selectedAction)\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n @if (selectedAction.allowBack) {\r\n <div>\r\n <strong\r\n >{{ selectedAction.getToStageCode(lstStage) }} -> {{ selectedAction.getFromStageCode(lstStage) }}</strong\r\n >\r\n </div>\r\n <div>{{ selectedAction.getToStageName(lstStage) }} -> {{ selectedAction.getFromStageName(lstStage) }}</div>\r\n\r\n @if (selectedBackAction) {\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"selectedBackAction.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(selectedBackAction.ActionStatus)\"\r\n (blur)=\"onenterAotu(selectedBackAction.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedBackAction.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(selectedBackAction)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(selectedBackAction)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.To_StageStatus\"\r\n ></extend-select>\r\n </div>\r\n }\r\n }\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #footerTplAction>\r\n <div\r\n nz-flex\r\n [nzGap]=\"6\"\r\n [nzJustify]=\"selectedAction && selectedAction.editorOption.drawerPosition == 'left' ? 'start' : 'end'\"\r\n >\r\n <button nz-button nzDanger nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button nzDanger (click)=\"deleteAction(selectedAction!)\">Delete</button>\r\n <button nz-button (click)=\"selectedAction = undefined\">Close</button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- setting editor -->\r\n<nz-drawer\r\n [nzTitle]=\"drawSettingTitle\"\r\n nzPlacement=\"right\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"settingVisible\"\r\n (nzOnClose)=\"settingVisible = false\"\r\n>\r\n <ng-template #drawSettingTitle> <nz-icon nzType=\"setting\"></nz-icon> Editor </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"form-item-no-bottom\">\r\n <extend-checkbox [label]=\"'Show grid'\" [labelSpan]=\"0\" [(_ngModel)]=\"wfcSetting.ShowGrid\"></extend-checkbox>\r\n\r\n <box [height]=\"16\"></box>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n\r\n<!-- editor infomation -->\r\n<nz-drawer\r\n [nzTitle]=\"drawInfoTitle\"\r\n nzPlacement=\"right\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"infoVisible\"\r\n (nzOnClose)=\"infoVisible = false\"\r\n>\r\n <ng-template #drawInfoTitle> <nz-icon nzType=\"info-circle\"></nz-icon> Infomation </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <p>1. C\u00E1c th\u00E0nh ph\u1EA7n: Stage or Node (stag, node quy tr\u00ECnh), Action or Connector (\u0111\u01B0\u1EDDng n\u1ED1i gi\u1EEFa c\u00E1c stage)</p>\r\n <p>2. Save \u0111\u1EC3 load c\u00E1c th\u00F4ng tin: Stage status, Action type</p>\r\n <p>\r\n 3. N\u1ED1i 2 node (t\u1EA1o connector t\u01B0\u01A1ng \u0111\u01B0\u01A1ng t\u1EA1o action):\r\n <br />- Click ch\u1EA5m cam t\u1EEB Node ngu\u1ED3n \u0111\u1EBFn ch\u1EA5m xanh c\u1EE7a Node \u0111\u00EDch (ho\u1EB7c click v\u00E0o Node \u0111\u00EDch), c\u00F3 th\u1EC3 click th\u00E0nh\r\n nhi\u1EC1u \u0111i\u1EC3m \u0111\u1EC3 t\u1EA1o \u0111\u01B0\u1EDDng n\u1ED1i cong<br />- Khi hover connector chuy\u1EC3n sang m\u1EA7u \u0111\u1ECF c\u00F3 th\u1EC3 click \u0111\u00FAp \u0111\u1EC3 th\u00EAm m\u1ED9t \u0111i\u1EC3m\r\n c\u1EE7a connector<br />- Khi hover l\u00EAn \u0111i\u1EC3m c\u1EE7a connector c\u00F3 th\u1EC3 di chuy\u1EC3n \u0111i\u1EC3m \u0111\u00F3 b\u1EB1ng c\u00E1ch nh\u1EA5n gi\u1EEF chu\u1ED9t v\u00E0 k\u00E9o th\u1EA3\r\n \u0111\u1EBFn v\u1ECB tr\u00ED m\u1EDBi<br />- Chu\u1ED9t ph\u1EA3i v\u00E0o \u0111i\u1EC3m n\u1ED1i connector \u0111\u1EC3 xo\u00E1 \u0111i\u1EC3m \u0111\u00F3\r\n </p>\r\n </ng-container>\r\n</nz-drawer>\r\n\r\n<!-- action rule modal -->\r\n<nz-modal\r\n [(nzVisible)]=\"actionRuleModalVisible\"\r\n [nzMaskClosable]=\"false\"\r\n [nzClosable]=\"false\"\r\n [nzKeyboard]=\"true\"\r\n [nzWidth]=\"'50vw'\"\r\n>\r\n <ng-container *nzModalTitle>\r\n ACTION RULE: [{{ selectedStage?.Code }}] {{ selectedStage?.Name }} > [{{ hoverAction?.ActionStatus }}]\r\n {{ hoverAction?.ActionText }}\r\n </ng-container>\r\n <ng-container *nzModalContent>\r\n @if (hoverAction && hoverAction.actionRule) {\r\n <div nz-row [nzGutter]=\"32\">\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Code'\" [(_ngModel)]=\"hoverAction.actionRule.Code\"></extend-input>\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Name'\" [(_ngModel)]=\"hoverAction.actionRule.Name\"></extend-input>\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Note'\" [(_ngModel)]=\"hoverAction.actionRule.Note\"></extend-input>\r\n <extend-checkbox\r\n nz-col\r\n nzSpan=\"12\"\r\n [label]=\"'IsActive'\"\r\n [(_ngModel)]=\"hoverAction.actionRule.IsActive\"\r\n ></extend-checkbox>\r\n </div>\r\n <div nz-row [nzGutter]=\"16\">\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table nzSize=\"small\" [nzData]=\"hoverAction.actionRule.lstLine\" [nzShowPagination]=\"false\">\r\n <thead>\r\n <tr>\r\n <th [nzWidth]=\"'50px'\"><icon-add (click)=\"addActionRuleLine()\"></icon-add></th>\r\n <th [nzWidth]=\"'25%'\">Template</th>\r\n <th [nzWidth]=\"'25%'\">Template stage</th>\r\n <th [nzWidth]=\"'25%'\">Template action</th>\r\n <th [nzWidth]=\"'50px'\">IsActive</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (item of hoverAction.actionRule.lstLine; track $index) {\r\n <tr>\r\n <td><icon-delete (click)=\"deleteActionRuleLine(hoverAction.actionRule, item)\"></icon-delete></td>\r\n <td>\r\n <extend-select\r\n #xxx\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstTemplateForRule(item)\"\r\n [valueField]=\"'WF_Template_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"item.WF_Template_Id\"\r\n (_ngModelChange)=\"item.WF_TemplateStage_Id = 0; item.WF_TemplateStageAction_Id = 0\"\r\n ></extend-select>\r\n </td>\r\n <td>\r\n <extend-select\r\n #yyy\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstStageForRule(xxx._ngModel)\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"item.WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"item.WF_TemplateStageAction_Id = 0\"\r\n ></extend-select>\r\n </td>\r\n <td>\r\n <extend-select\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstActionForRule(yyy._ngModel)\"\r\n [valueField]=\"'WF_TemplateStageAction_Id'\"\r\n [displayFields]=\"['ActionStatus', 'ActionText']\"\r\n [(_ngModel)]=\"item.WF_TemplateStageAction_Id\"\r\n ></extend-select>\r\n </td>\r\n <td class=\"text-center\">\r\n <extend-checkbox [(_ngModel)]=\"item.IsActive\"></extend-checkbox>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n <ng-container *nzModalFooter>\r\n <button nz-button nzType=\"primary\" (click)=\"actionRuleModalVisible = false\">OK</button>\r\n </ng-container>\r\n</nz-modal>\r\n", styles: ["@charset \"UTF-8\";::ng-deep .workflow-wrapper{border:solid 1px lightgray;overflow:hidden;width:100%}.workflow-canvas{position:relative;background:#f0f2f5;cursor:default;overflow:hidden;outline:1px dashed rgba(0,0,0,.1)}.workflow-canvas .edges-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1}.workflow-canvas .edges-layer path{stroke-width:2;fill:none}.canvas-content{transform-origin:0 0;width:100%;height:100%}.canvas-content{outline:1px dashed red}.canvas-content.panning{cursor:grab}.canvas-content.panning:active{cursor:grabbing}.workflow-canvas.panning{cursor:grab}.workflow-canvas.panning:active{cursor:grabbing}.workflow-canvas.connecting,.workflow-canvas.connecting .workflow-node{cursor:crosshair}.workflow-node{position:absolute;width:160px;cursor:grab;-webkit-user-select:none;user-select:none;z-index:2}.workflow-node:active{cursor:grabbing}.workflow-node.connecting-source,.workflow-node.selected,.workflow-node:hover:not(.workflow-node-start,.workflow-node-end){outline:2px dashed #1890ff}.workflow-node .title{font-weight:600;margin-bottom:6px}.workflow-node-start{width:0px}.workflow-node-start.connecting-source,.workflow-node-start.selected,.workflow-node-start:hover{outline:unset}.workflow-node-start.connecting-source nz-tag,.workflow-node-start.selected nz-tag,.workflow-node-start:hover nz-tag{outline:2px dashed}.workflow-node-start nz-tag{position:relative;top:45px;right:35px}.workflow-node-end{width:0px}.workflow-node-end.connecting-source,.workflow-node-end.selected,.workflow-node-end:hover{outline:unset}.workflow-node-end.connecting-source nz-tag,.workflow-node-end.selected nz-tag,.workflow-node-end:hover nz-tag{outline:2px dashed}.workflow-node-end nz-tag{position:relative;top:45px;right:32px}.connector{position:absolute;top:39px;width:12px;height:12px;background:#1890ff;border-radius:50%;transform:translateY(-50%);cursor:crosshair;transition:box-shadow .15s ease-out,transform .15s ease-out}.connector:hover{box-shadow:0 0 0 3px #1890ff4d;transform:translateY(-50%) scale(1.15)}.connector-right{right:-8px;background:orange}.connector-right.reverse,.connector-left{left:-8px}.connector-left.reverse{left:unset;right:-8px}.connector-start{width:16px;height:16px;right:-8px;background:green;box-shadow:0 0 0 3px #1890ff4d}.connector-end{width:16px;height:16px;left:-8px;background:#000;box-shadow:0 0 0 3px #1890ff4d}.edge{cursor:pointer;stroke:#1890ff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;fill:none;transition:stroke .15s ease}.edge-hit{stroke:transparent;stroke-width:18px!important;fill:none;cursor:pointer}.edge-hit:hover+.edge{stroke:#ff4d4f;stroke-width:2}.workflow-canvas.dragging-point .edge-hit{pointer-events:none}.edge:hover+.edge-label{fill:#1890ff;font-weight:500}.edge-label{font-size:12px;fill:#555;pointer-events:none;-webkit-user-select:none;user-select:none}.blue{stroke:#1890ff!important}.red{stroke:#ff4d4f!important;box-shadow:0 0 0 3px #1890ff4d!important}.workflow-svg{background:transparent;overflow:visible}.waypoint{position:absolute;width:10px;height:10px;background:#ff4d4f;border-radius:50%;transform:translate(-50%,-50%) scale(1);cursor:move;z-index:1;transition:transform .12s ease-out,background-color .12s ease-out,box-shadow .12s ease-out}.waypoint:hover{background:#ff7875;transform:translate(-50%,-50%) scale(1.25);box-shadow:0 0 0 4px #ff787559}.waypoint.dragging{transition:none;transform:translate(-50%,-50%) scale(1.15);pointer-events:none}.workflow-canvas.dragging-point svg{cursor:grabbing}.selection-box{position:absolute;border:1px dashed #1890ff;background:#1890ff1a;pointer-events:none}.toolbar{position:absolute;top:8px;left:8px;display:flex;gap:4px;padding:6px;background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;z-index:100}.toolbar .divider{width:1px;background:#e5e5e5;margin:0 2px}.zoom-toolbar{position:absolute;top:8px;left:8px;z-index:10;display:flex;align-items:center;gap:6px;background:#fff;padding:4px 6px;border-radius:6px;box-shadow:0 2px 6px #00000026}.zoom-toolbar span{min-width:40px;text-align:center;font-size:12px}nz-tag.selected{outline:2px dashed #1890ff}.grid-layer{position:absolute;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(rgba(0,0,0,.08) 1px,transparent 1px);background-size:20px 20px}.grid-layer{background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px);background-size:20px 20px}.editable-tag{background:#fff;border-style:dashed}::ng-deep .minimap{position:fixed;width:180px;height:125px;top:60px;right:15px;background-color:#eee;border:1px solid #aaa;opacity:.9;z-index:1}::ng-deep .minimap-node{position:absolute;background-color:#607a86}::ng-deep .minimap-node-round{position:absolute;background-color:#607a86;border-radius:10px}::ng-deep .minimap-node-round-start{background-color:green}::ng-deep .minimap-node-round-end{background-color:#000}::ng-deep .minimap-viewport{position:absolute;box-sizing:border-box;background-color:#4f6f7e66;z-index:1;cursor:move}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzCardModule }, { kind: "component", type: i3$1.NzCardComponent, selector: "nz-card", inputs: ["nzBordered", "nzLoading", "nzHoverable", "nzBodyStyle", "nzCover", "nzActions", "nzType", "nzSize", "nzTitle", "nzExtra"], exportAs: ["nzCard"] }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i4$2.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$2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: NzTagModule }, { kind: "component", type: i5$2.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "ngmodule", type: NzRadioModule }, { kind: "component", type: i6$3.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i6$3.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { 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: "component", type: Box, selector: "box", inputs: ["display", "width", "height"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i11.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: "component", type: ExtendInput, selector: "extend-input", inputs: ["label", "floatingLabel", "placeHolder", "labelAlign", "inputClass", "labelSpan", "labelFlex", "inputFlex", "allowClear", "disabled", "readOnly", "required", "noBottom", "selectModeType", "autocomplete", "autofocus", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "size", "lstItem", "displayField", "valueField", "formData", "controlName", "_ngModel", "isSubmited"], outputs: ["_ngModelChange", "onclickClearIcon", "onenter"] }, { kind: "component", type: ExtendSelectComponent, selector: "extend-select", inputs: ["label", "floatingLabel", "placeHolder", "labelAlign", "dropdownMatchSelectWidth", "labelSpan", "labelFlex", "disabled", "required", "noBottom", "multiple", "showSelectAll", "maxTagCount", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "size", "lstItem", "displayField", "displayFields", "valueField", "formData", "controlName", "_ngModel", "isSubmited"], outputs: ["_ngModelChange", "itemChange", "onFocus"] }, { kind: "component", type: ExtendCheckbox, selector: "extend-checkbox", inputs: ["label", "labelSpan", "labelFlex", "disabled", "formData", "controlName", "valueType", "_ngModel"], outputs: ["_ngModelChange"] }, { kind: "component", type: ExtendTextArea, selector: "extend-textarea", inputs: ["label", "placeHolder", "labelAlign", "floatingLabel", "displayInline", "labelSpan", "labelFlex", "inputFlex", "disabled", "required", "noBottom", "selectModeType", "inputClass", "size", "isSubmited", "minRows", "maxRows", "lstItem", "displayField", "valueField", "formData", "controlName", "_ngModel", "isTouched", "inputErrorMessage", "errorMessages"], outputs: ["_ngModelChange"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { 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: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "component", type: ExtendInputNumber, selector: "extend-input-number", inputs: ["label", "placeHolder", "labelAlign", "floatingLabel", "hiddenUpDown", "labelSpan", "labelFlex", "inputFlex", "disabled", "required", "noBottom", "size", "min", "max", "precision", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "isSubmited", "separatorType", "formData", "controlName", "_ngModel"], outputs: ["_ngModelChange"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$2.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: i2$2.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i2$2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$2.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: NzDividerModule }, { kind: "component", type: i16.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }, { kind: "directive", type: AutoFocusDirective, selector: "[appAutoFocus]", inputs: ["appAutoFocus"] }, { kind: "ngmodule", type: NzAutocompleteModule }, { kind: "component", type: i17.NzAutocompleteComponent, selector: "nz-autocomplete", inputs: ["nzWidth", "nzOverlayClassName", "nzOverlayStyle", "nzDefaultActiveFirstOption", "nzBackfill", "compareWith", "nzDataSource"], outputs: ["selectionChange"], exportAs: ["nzAutocomplete"] }, { kind: "component", type: i17.NzAutocompleteOptionComponent, selector: "nz-auto-option", inputs: ["nzValue", "nzLabel", "nzDisabled"], outputs: ["selectionChange", "mouseEntered"], exportAs: ["nzAutoOption"] }, { kind: "directive", type: i17.NzAutocompleteTriggerDirective, selector: "input[nzAutocomplete], textarea[nzAutocomplete]", inputs: ["nzAutocomplete"], exportAs: ["nzAutocompleteTrigger"] }, { kind: "component", type: IconDelete, selector: "icon-delete", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "directive", type: NzModalTitleDirective, selector: "[nzModalTitle]", exportAs: ["nzModalTitle"] }, { kind: "component", type: IconAdd, selector: "icon-add", inputs: ["size"], outputs: ["click"] }, { kind: "directive", type: NzModalFooterDirective, selector: "[nzModalFooter]", exportAs: ["nzModalFooter"] }] });
|
|
6166
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: WorkflowEditorComponent, isStandalone: true, selector: "app-workflow-editor", inputs: { lstOrg: "lstOrg", lstRole: "lstRole", lstEmailTemplate: "lstEmailTemplate" }, outputs: { onSave: "onSave", onDeleteStage: "onDeleteStage", onDeleteAction: "onDeleteAction", onDeleteRule: "onDeleteRule", onDeleteRuleLine: "onDeleteRuleLine" }, host: { listeners: { "window:keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true, static: true }, { propertyName: "svgRef", first: true, predicate: ["svg"], descendants: true, static: true }, { propertyName: "inputStageStatusElement", first: true, predicate: ["inputStageStatusElement"], descendants: true }, { propertyName: "inputActionTypeElement", first: true, predicate: ["inputActionTypeElement"], descendants: true }, { propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #canvasRef\r\n class=\"workflow-canvas\"\r\n [class.connecting]=\"!!connectingFrom\"\r\n [class.dragging-point]=\"!!draggingPoint\"\r\n [style.width.px]=\"getCanvasWidth()\"\r\n [style.height.px]=\"getCanvasHeight()\"\r\n (mousedown)=\"onMouseDownCanvas($event)\"\r\n (mousemove)=\"onMouseMoveCanvas($event)\"\r\n (mouseup)=\"onMouseUpCanvas($event)\"\r\n (click)=\"onClickCanvas($event)\"\r\n>\r\n <!-- \r\n\r\n [style.width.px]=\"getCanvasWidth()\"\r\n [style.height.px]=\"getCanvasHeight()\" \r\n\r\n [style.width.px]=\"CANVAS_WIDTH\"\r\n [style.height.px]=\"CANVAS_HEIGHT\"\r\n\r\n style=\"width: 100%; height: calc(100vh - 120px)\"\r\n \r\n -->\r\n\r\n <div class=\"toolbar\" (mousedown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Editor setting\" (click)=\"settingVisible = true\">\r\n <nz-icon nzType=\"setting\"></nz-icon>\r\n </button>\r\n\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Infomation\" (click)=\"infoVisible = true\">\r\n <nz-icon nzType=\"info-circle\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Template setting\" (click)=\"drawTemplateVisibel = true\">\r\n <nz-icon nzType=\"setting\"></nz-icon> T\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button nz-button nzSize=\"small\" nzDanger [nzLoading]=\"!ready\" nz-tooltip=\"Save (Ctrl + S)\" (click)=\"save()\">\r\n <nz-icon nzType=\"save\"></nz-icon>\r\n </button>\r\n <button nz-button nzSize=\"small\" nz-tooltip=\"Add stage\" (click)=\"addStage()\">\r\n <nz-icon nzType=\"plus\" class=\"color-primary\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n [nzType]=\"isMoveMode ? 'primary' : 'default'\"\r\n nz-tooltip=\"Move mode\"\r\n (click)=\"isMoveMode = true\"\r\n >\r\n <nz-icon><img src=\"/assets/icon/hand-palm.png\" width=\"19\" height=\"19\" /></nz-icon>\r\n </button>\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n [nzType]=\"!isMoveMode ? 'primary' : 'default'\"\r\n nz-tooltip=\"Select mode\"\r\n (click)=\"isMoveMode = false\"\r\n >\r\n <nz-icon><img src=\"/assets/icon/cursor.png\" width=\"19\" height=\"19\" /></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <!-- UNDO / REDO -->\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nzType=\"default\"\r\n [disabled]=\"undoStack.length === 0\"\r\n nz-tooltip=\"Undo\"\r\n (click)=\"undo()\"\r\n >\r\n <nz-icon nzType=\"undo\"></nz-icon>\r\n </button>\r\n\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nzType=\"default\"\r\n [disabled]=\"redoStack.length === 0\"\r\n nz-tooltip=\"Redo\"\r\n (click)=\"redo()\"\r\n >\r\n <nz-icon nzType=\"redo\"></nz-icon>\r\n </button>\r\n\r\n <box [width]=\"1\"></box>\r\n <span class=\"divider\"></span>\r\n <box [width]=\"1\"></box>\r\n\r\n <!-- ALIGN -->\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignLeft()\">\u27F8</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignCenter()\">\u2261</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignRight()\">\u27F9</button>\r\n\r\n <span class=\"divider\"></span>\r\n\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignTop()\">\u21D1</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignMiddle()\">\u2550</button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 2\" (click)=\"alignBottom()\">\u21D3</button>\r\n\r\n <span class=\"divider\"></span>\r\n\r\n <!-- DISTRIBUTE -->\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 3\" (click)=\"distributeHorizontal()\">\r\n \u21C4\r\n </button>\r\n <button nz-button nzSize=\"small\" [disabled]=\"lstSelectedStageId.size < 3\" (click)=\"distributeVertical()\">\u21C5</button>\r\n </div>\r\n\r\n <div\r\n class=\"canvas-content\"\r\n [class.panning]=\"isMoveMode\"\r\n [style.transform]=\"'translate(' + template.editorOption.panX + 'px,' + template.editorOption.panY + 'px)'\"\r\n >\r\n <!-- GRID -->\r\n <div *ngIf=\"wfcSetting.ShowGrid\" class=\"grid-layer\"></div>\r\n\r\n <!-- <div class=\"zoom-toolbar\">\r\n <button nz-button nzSize=\"small\" (click)=\"zoomOut()\">\u2212</button>\r\n <span>{{ zoom * 100 | number: \"1.0-0\" }}%</span>\r\n <button nz-button nzSize=\"small\" (click)=\"zoomIn()\">+</button>\r\n </div> -->\r\n\r\n <!-- SVG EDGES -->\r\n <svg #svg class=\"edges-layer\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"none\">\r\n <g [attr.transform]=\"svgTransform\">\r\n <!-- DEFS -->\r\n <defs>\r\n <!-- glow effect -->\r\n <filter id=\"edge-glow\" x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\">\r\n <feGaussianBlur stdDeviation=\"2\" result=\"blur\" />\r\n <feMerge>\r\n <feMergeNode in=\"blur\" />\r\n <feMergeNode in=\"SourceGraphic\" />\r\n </feMerge>\r\n </filter>\r\n\r\n <!-- arrow markers -->\r\n <marker\r\n id=\"arrow-blue\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"blue\" d=\"M0,0 L10,5 L0,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-red\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n refX=\"10\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"red\" d=\"M0,0 L10,5 L0,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-blue-start\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n viewBox=\"0 0 10 10\"\r\n refX=\"0\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"blue\" d=\"M10,0 L0,5 L10,10\"></path>\r\n </marker>\r\n\r\n <marker\r\n id=\"arrow-red-start\"\r\n markerWidth=\"10\"\r\n markerHeight=\"10\"\r\n viewBox=\"0 0 10 10\"\r\n refX=\"0\"\r\n refY=\"5\"\r\n orient=\"auto\"\r\n markerUnits=\"strokeWidth\"\r\n >\r\n <path class=\"red\" d=\"M10,0 L0,5 L10,10\"></path>\r\n </marker>\r\n </defs>\r\n\r\n <!-- EDGES B\u00CCNH TH\u01AF\u1EDCNG -->\r\n <ng-container *ngFor=\"let e of normalEdges; let i = index\">\r\n <path\r\n class=\"edge\"\r\n [attr.id]=\"'edge-path-' + i\"\r\n [attr.d]=\"buildPath(e)\"\r\n marker-end=\"url(#arrow-blue)\"\r\n [attr.marker-start]=\"e.allowBack ? 'url(#arrow-blue-start)' : ''\"\r\n ></path>\r\n\r\n <path\r\n class=\"edge-hit\"\r\n [attr.d]=\"buildPath(e)\"\r\n (mouseenter)=\"onMouseEnterEdge(e)\"\r\n (mouseleave)=\"onMouseLeaveEdge(e)\"\r\n (click)=\"onClickEdge(e, $event)\"\r\n ></path>\r\n\r\n <!-- LABEL -->\r\n <!-- text b\u00E1m theo line -->\r\n <!-- \r\n <text *ngIf=\"e.ActionText\" class=\"edge-label\" dy=\"-6\">\r\n <textPath [attr.href]=\"'#edge-path-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.ActionText }}\r\n </textPath>\r\n </text> \r\n \r\n <text *ngIf=\"e.allowBack && e.labelBack\" class=\"edge-label\" dy=\"14\">\r\n <textPath [attr.href]=\"'#edge-path-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.labelBack }}\r\n </textPath>\r\n </text>\r\n -->\r\n\r\n <!-- text th\u1EB3ng n\u1EB1m ngang -->\r\n <text\r\n *ngIf=\"e.ActionText\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y - 8\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.ActionText }}\r\n </text>\r\n\r\n <text\r\n *ngIf=\"e.allowBack && e.labelBack\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y + 14\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.labelBack }}\r\n </text>\r\n </ng-container>\r\n\r\n <!-- EDGE \u0110ANG HOVER (LU\u00D4N TR\u00CAN C\u00D9NG) -->\r\n <ng-container *ngFor=\"let e of hoverEdges; let i = index\">\r\n <path\r\n class=\"edge red\"\r\n [attr.id]=\"'edge-path-hover-' + i\"\r\n [attr.d]=\"buildPath(e)\"\r\n marker-end=\"url(#arrow-red)\"\r\n [attr.marker-start]=\"e.allowBack ? 'url(#arrow-red-start)' : ''\"\r\n ></path>\r\n\r\n <path\r\n class=\"edge-hit\"\r\n [attr.d]=\"buildPath(e)\"\r\n (mouseleave)=\"onMouseLeaveEdge(e)\"\r\n (click)=\"onClickEdge(e, $event)\"\r\n ></path>\r\n\r\n <!-- LABEL -->\r\n <!-- <text *ngIf=\"e.ActionText\" class=\"edge-label\" dy=\"-6\">\r\n <textPath [attr.href]=\"'#edge-path-hover-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.ActionText }}\r\n </textPath>\r\n </text>\r\n\r\n <text *ngIf=\"e.allowBack && e.labelBack\" class=\"edge-label\" dy=\"14\">\r\n <textPath [attr.href]=\"'#edge-path-hover-' + i\" startOffset=\"50%\" text-anchor=\"middle\">\r\n {{ e.labelBack }}\r\n </textPath>\r\n </text> -->\r\n\r\n <text\r\n *ngIf=\"e.ActionText\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y - 8\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.ActionText }}\r\n </text>\r\n\r\n <text\r\n *ngIf=\"e.allowBack && e.labelBack\"\r\n class=\"edge-label\"\r\n [attr.x]=\"getEdgeLabelPosition(e).x\"\r\n [attr.y]=\"getEdgeLabelPosition(e).y + 14\"\r\n [attr.text-anchor]=\"'middle'\"\r\n >\r\n {{ e.labelBack }}\r\n </text>\r\n </ng-container>\r\n\r\n <!-- preview -->\r\n <path\r\n *ngIf=\"connectingFrom\"\r\n class=\"edge\"\r\n [attr.d]=\"buildPreviewPath()\"\r\n stroke-dasharray=\"5,5\"\r\n marker-end=\"url(#arrow-blue)\"\r\n ></path>\r\n </g>\r\n </svg>\r\n\r\n <div\r\n *ngIf=\"isSelecting && selectStart && selectEnd\"\r\n class=\"selection-box\"\r\n [style.left.px]=\"Math.min(selectStart.x, selectEnd.x)\"\r\n [style.top.px]=\"Math.min(selectStart.y, selectEnd.y)\"\r\n [style.width.px]=\"Math.abs(selectEnd.x - selectStart.x)\"\r\n [style.height.px]=\"Math.abs(selectEnd.y - selectStart.y)\"\r\n ></div>\r\n\r\n <!-- lstStage -->\r\n @for (n of lstStage; track $index) {\r\n <!-- START NODE -->\r\n @if (n.StageType === \"_start_\") {\r\n <nz-card\r\n class=\"workflow-node workflow-node-start\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <nz-tag [nzColor]=\"'green'\"> START </nz-tag>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector RIGHT: output -->\r\n <div class=\"connector connector-right connector-start\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n } @else {\r\n <div\r\n class=\"connector connector-right connector-start reverse\"\r\n (click)=\"onClickConnector($event, n, 'right')\"\r\n ></div>\r\n }\r\n </nz-card>\r\n }\r\n <!-- END NODE -->\r\n @else if (n.StageType === \"_end_\") {\r\n <nz-card\r\n class=\"workflow-node workflow-node-end\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <nz-tag [nzColor]=\"'red'\"> END </nz-tag>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector LEFT: input -->\r\n <div class=\"connector connector-left connector-end\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n } @else {\r\n <div\r\n class=\"connector connector-left connector-end reverse\"\r\n (click)=\"onClickConnector($event, n, 'left')\"\r\n ></div>\r\n }\r\n </nz-card>\r\n } @else {\r\n <nz-card\r\n class=\"workflow-node\"\r\n [attr.data-id]=\"n.Code\"\r\n [class.selected]=\"n == selectedStage || n == hoverStage || lstSelectedStageId.has(n.WF_TemplateStage_Id)\"\r\n [style.left.px]=\"n.editorOption.x\"\r\n [style.top.px]=\"n.editorOption.y\"\r\n [class.connecting-source]=\"isConnectingFrom(n) || isDraggingFrom(n) || isSelectedNode(n)\"\r\n nzSize=\"small\"\r\n (mousedown)=\"onMouseDownNode($event, n)\"\r\n (click)=\"$event.stopPropagation(); onClickStage(n)\"\r\n >\r\n <div class=\"title\">{{ n.Code }}</div>\r\n\r\n <div>{{ n.Name }}</div>\r\n\r\n @if (!n.editorOption.isReverse) {\r\n <!-- connector RIGHT: output -->\r\n <div class=\"connector connector-right\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n\r\n <!-- connector LEFT: input -->\r\n <div class=\"connector connector-left\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n } @else {\r\n <div class=\"connector connector-right reverse\" (click)=\"onClickConnector($event, n, 'right')\"></div>\r\n <div class=\"connector connector-left reverse\" (click)=\"onClickConnector($event, n, 'left')\"></div>\r\n }\r\n </nz-card>\r\n }\r\n }\r\n\r\n <!-- POINTS -->\r\n @for (p of connectingPoints; track $index) {\r\n @if (p != draggingPoint) {\r\n <div\r\n class=\"waypoint\"\r\n [style.left.px]=\"p.x\"\r\n [style.top.px]=\"p.y\"\r\n (mousedown)=\"onmousedownPoint($event, p)\"\r\n (contextmenu)=\"onRightClickPoint($event, hoverAction!, $index)\"\r\n ></div>\r\n } @else {\r\n <div\r\n class=\"waypoint dragging\"\r\n [style.left.px]=\"p.x\"\r\n [style.top.px]=\"p.y\"\r\n (mousedown)=\"onmousedownPoint($event, p)\"\r\n ></div>\r\n }\r\n }\r\n </div>\r\n</div>\r\n\r\n<!-- drawer TEMPLATE -->\r\n<nz-drawer\r\n [nzTitle]=\"drawTemplateTitle\"\r\n nzPlacement=\"right\"\r\n [nzWidth]=\"500\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"drawTemplateVisibel\"\r\n [nzFooter]=\"footerTplTemplate\"\r\n (nzOnClose)=\"drawTemplateVisibel = false\"\r\n>\r\n <ng-template #drawTemplateTitle> <nz-icon nzType=\"setting\"></nz-icon> Template </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <extend-select\r\n [label]=\"'Org'\"\r\n [lstItem]=\"lstOrg\"\r\n [valueField]=\"'App_Org_Id'\"\r\n [displayFields]=\"['Name', 'Code']\"\r\n [(_ngModel)]=\"template.App_Org_Id\"\r\n ></extend-select>\r\n <extend-input [label]=\"'Code'\" [(_ngModel)]=\"template.Code\"></extend-input>\r\n <extend-input [label]=\"'Name'\" [(_ngModel)]=\"template.Name\"></extend-input>\r\n <extend-select\r\n [label]=\"'Type'\"\r\n [lstItem]=\"template.lstTemplateType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.DocType\"\r\n ></extend-select>\r\n <extend-textarea [label]=\"'Desscription'\" [(_ngModel)]=\"template.Description\"></extend-textarea>\r\n <extend-select\r\n [label]=\"'Print template'\"\r\n [lstItem]=\"template.lstTemplatePrint\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.TemplatePrint\"\r\n ></extend-select>\r\n <extend-select\r\n [label]=\"'Apply to'\"\r\n [lstItem]=\"template.lstApplyTo\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"template.ApplyTo\"\r\n ></extend-select>\r\n\r\n <extend-checkbox [label]=\"'Active'\" [(_ngModel)]=\"template.IsActive\"></extend-checkbox>\r\n <extend-checkbox [label]=\"'Use Allow back'\" [(_ngModel)]=\"template.editorOption.AllowbackInUse\"></extend-checkbox>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Stage</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of getLstStage; track tag) {\r\n <div nz-col>\r\n <nz-tag (click)=\"hoverStage = tag\">\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Stage status</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstStageStatus; track tag) {\r\n <div nz-col>\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableStageStatus(tag) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleCloseStageStatus(tag)\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputStageStatusVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInputStageStatus()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action type\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputStageStatusElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Code\"\r\n [(ngModel)]=\"inputStageStatusCode\"\r\n (keydown.enter)=\"inputStageStatusNameElement.select()\"\r\n />\r\n <input\r\n #inputStageStatusNameElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Name\"\r\n [(ngModel)]=\"inputStageStatusName\"\r\n (blur)=\"handleInputStageStatusConfirm()\"\r\n (keydown.enter)=\"handleInputStageStatusConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Action type</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstActionType; track tag) {\r\n <div nz-col>\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableActionType(tag) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleCloseActionType(tag)\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputActionTypeVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInputActionType()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action type\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputActionTypeElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Code\"\r\n [(ngModel)]=\"inputActionTypeCode\"\r\n (keydown.enter)=\"inputActionTypeNameElement.select()\"\r\n />\r\n <input\r\n #inputActionTypeNameElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"Name\"\r\n [(ngModel)]=\"inputActionTypeName\"\r\n (blur)=\"handleInputActionTypeConfirm()\"\r\n (keydown.enter)=\"handleInputActionTypeConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> Action status</h3>\r\n\r\n <div nz-row [nzGutter]=\"[0, 5]\">\r\n @for (tag of template.lstActionStatus; track tag) {\r\n <div nz-col>\r\n @if (template.editingActionStatus != tag) {\r\n <nz-tag\r\n [nzMode]=\"checkRemoveableActionStatus(tag.Code) ? 'closeable' : 'default'\"\r\n (nzOnClose)=\"handleClose(tag.Code)\"\r\n (click)=\"template.editingActionStatus = checkRemoveableActionStatus(tag.Code) ? tag : undefined\"\r\n >\r\n {{ sliceTagName(tag.Code + (tag.Name ? \" - \" + tag.Name : \"\")) }}\r\n </nz-tag>\r\n } @else {\r\n <input\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n [appAutoFocus]=\"true\"\r\n [(ngModel)]=\"tag.Code\"\r\n (blur)=\"template.editingActionStatus = undefined\"\r\n (keydown.enter)=\"template.editingActionStatus = undefined\"\r\n /> \r\n }\r\n </div>\r\n }\r\n\r\n <div nz-col>\r\n @if (!inputVisible) {\r\n <nz-tag class=\"editable-tag\" nzNoAnimation (click)=\"showInput()\">\r\n <nz-icon nzType=\"plus\" />\r\n New Action status\r\n </nz-tag>\r\n } @else {\r\n <input\r\n #inputElement\r\n nz-input\r\n nzSize=\"small\"\r\n type=\"text\"\r\n style=\"width: 150px\"\r\n placeholder=\"+ New Action status\"\r\n [(ngModel)]=\"inputValue\"\r\n (blur)=\"handleInputConfirm()\"\r\n (keydown.enter)=\"handleInputConfirm()\"\r\n />\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #footerTplTemplate>\r\n <div nz-flex [nzGap]=\"6\" [nzJustify]=\"'end'\">\r\n <button nz-button nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button (click)=\"drawTemplateVisibel = false\">Close</button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- drawer STAGE -->\r\n<nz-drawer\r\n [nzTitle]=\"drawerTitleStage\"\r\n [nzPlacement]=\"selectedStage?.editorOption?.drawerPosition == 'left' ? 'left' : 'right'\"\r\n [nzVisible]=\"!!selectedStage\"\r\n [nzWidth]=\"'calc(50vw)'\"\r\n [nzClosable]=\"false\"\r\n [nzFooter]=\"footerTplNode\"\r\n (nzOnClose)=\"selectedStage = undefined\"\r\n>\r\n <ng-template #drawerTitleStage>\r\n <div nz-row nzJustify=\"space-between\">\r\n @if (selectedStage && selectedStage.editorOption) {\r\n @if (selectedStage.editorOption.drawerPosition == \"left\") {\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the right\"\r\n (click)=\"selectedStage.editorOption.drawerPosition = 'right'\"\r\n >\r\n <nz-icon nzType=\"double-right\"></nz-icon>\r\n </button>\r\n STAGE\r\n } @else {\r\n STAGE\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the left\"\r\n (click)=\"selectedStage.editorOption.drawerPosition = 'left'\"\r\n >\r\n <nz-icon nzType=\"double-left\"></nz-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <ng-container *ngIf=\"selectedStage\">\r\n <nz-radio-group [(ngModel)]=\"selectedStage.StageType\">\r\n <label nz-radio nzValue=\"_start_\">UI start</label>\r\n <label nz-radio nzValue=\"_end_\">UI end</label>\r\n <label nz-radio nzValue=\"start\">START</label>\r\n <label nz-radio nzValue=\"node\">NODE</label>\r\n <label nz-radio nzValue=\"end\">END</label>\r\n </nz-radio-group>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Code'\"\r\n [floatingLabel]=\"true\"\r\n [required]=\"true\"\r\n [(_ngModel)]=\"selectedStage.Code\"\r\n ></extend-input>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"16\"\r\n [label]=\"'Name'\"\r\n [floatingLabel]=\"true\"\r\n [required]=\"true\"\r\n [(_ngModel)]=\"selectedStage.Name\"\r\n ></extend-input>\r\n </div>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input-number\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Sequence'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedStage.SeqValue\"\r\n ></extend-input-number>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"16\"\r\n [label]=\"'Org implement'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstOrg\"\r\n [valueField]=\"'App_Org_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedStage.App_Org_Id\"\r\n ></extend-select>\r\n </div>\r\n\r\n <div nz-row [nzGutter]=\"32\" class=\"form-item-no-bottom\">\r\n <extend-input-number\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Number Day'\"\r\n [floatingLabel]=\"true\"\r\n [precision]=\"1\"\r\n [(_ngModel)]=\"selectedStage.NumberDay\"\r\n ></extend-input-number>\r\n </div>\r\n\r\n @if (selectedStage.editorOption) {\r\n @if ([\"start\", \"node\", \"end\"].includes(selectedStage.StageType.toLowerCase())) {\r\n <extend-checkbox\r\n [label]=\"'Reverse'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedStage.editorOption.isReverse\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <extend-checkbox\r\n [label]=\"'Require user action'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedStage.IsRequireUser\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"16\">\r\n <h3 nz-col><nz-icon nzType=\"send\" nzTheme=\"outline\" /> List Action</h3>\r\n <div nz-col>\r\n <button nz-button nzType=\"primary\" nzSize=\"small\" (click)=\"addAction()\">\r\n <nz-icon nzType=\"plus\"></nz-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <nz-table nzSize=\"small\" [nzData]=\"lstActionOfCurrentStage\" [nzShowPagination]=\"false\" [nzNoResult]=\"' '\">\r\n <thead>\r\n <tr [hidden]=\"true\">\r\n <th nzWidth=\"40px\"></th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (action of lstActionOfCurrentStage; track $index) {\r\n <tr [class.text-bold]=\"action == hoverAction\" (click)=\"onclickaction(action)\">\r\n <td style=\"border-bottom: solid 1px orange\">\r\n ({{ $index + 1 }})\r\n <nz-icon\r\n nzType=\"delete\"\r\n nzTheme=\"outline\"\r\n class=\"color-warn cursor-pointer icon-size-16\"\r\n (click)=\"$event.stopPropagation(); deleteAction(action)\"\r\n ></nz-icon>\r\n </td>\r\n <td style=\"border-bottom: solid 1px orange\">\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"action.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(action.ActionStatus)\"\r\n (blur)=\"onenterAotu(action.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"action.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(action)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"getlstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(action)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.To_StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Process status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstProcessStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"action.DocProcessStatus\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row>Role</div>\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstRole\"\r\n [valueField]=\"'App_Role_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [multiple]=\"true\"\r\n [(_ngModel)]=\"action._lstRoleId\"\r\n (_ngModelChange)=\"onselectedRoleEmail(action)\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row>Email action</div>\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstEmailAction\"\r\n [valueField]=\"'ID'\"\r\n [displayField]=\"'Name'\"\r\n [multiple]=\"true\"\r\n [(_ngModel)]=\"action._lstEmailActionId\"\r\n (_ngModelChange)=\"onselectedRoleEmail(action)\"\r\n ></extend-select>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div *ngIf=\"action._lstEmailActionId && action._lstEmailActionId.length\" nz-row>Email template</div>\r\n <div *ngIf=\"action._lstEmailActionId && action._lstEmailActionId.length\" nz-row>\r\n <div nz-col nzSpan=\"1\"></div>\r\n <div nz-col nzSpan=\"23\" class=\"form-item-no-bottom\" style=\"font-weight: normal\">\r\n @for (actionRef of lstActionRefOf(action); track $index) {\r\n <div nz-row>\r\n <extend-select\r\n nz-col\r\n nzSpan=\"24\"\r\n [labelSpan]=\"12\"\r\n [size]=\"'small'\"\r\n [label]=\"emailActionText(actionRef.To_WF_TemplateStageAction_Id)\"\r\n [lstItem]=\"lstEmailTemplate\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"actionRef.TemplateMail\"\r\n ></extend-select>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <box [height]=\"8\"></box>\r\n <div nz-row [nzGutter]=\"8\">\r\n Action rule\r\n <button nz-button nzType=\"text\" nzSize=\"small\" (click)=\"actionRuleModalVisible = true\">\r\n <nz-icon nzType=\"export\" nzTheme=\"outline\" class=\"color-primary\" />\r\n </button>\r\n <button\r\n *ngIf=\"action.WF_TransitionsRule_Id\"\r\n nz-button\r\n nzType=\"text\"\r\n nzSize=\"small\"\r\n (click)=\"deleteActionRule(action)\"\r\n >\r\n <nz-icon nzType=\"delete\" nzTheme=\"outline\" class=\"color-warn\" />\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n\r\n <box [height]=\"16\"></box>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTplNode>\r\n <div\r\n nz-flex\r\n [nzGap]=\"6\"\r\n [nzJustify]=\"\r\n selectedStage && selectedStage.editorOption && selectedStage.editorOption.drawerPosition == 'left'\r\n ? 'start'\r\n : 'end'\r\n \"\r\n >\r\n <button nz-button nzDanger nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button (click)=\"selectedStage = undefined\">Close</button>\r\n <button\r\n *ngIf=\"selectedStage && ['START', 'END'].indexOf(selectedStage.StageType) < 0\"\r\n nz-button\r\n nzDanger\r\n (click)=\"deleteStage()\"\r\n >\r\n Delete\r\n </button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- drawer ACTION -->\r\n<nz-drawer\r\n [nzTitle]=\"drawerTitleAction\"\r\n nzTitle=\"ACTION\"\r\n [nzPlacement]=\"selectedAction?.editorOption?.drawerPosition == 'left' ? 'left' : 'right'\"\r\n [nzClosable]=\"false\"\r\n [nzWidth]=\"750\"\r\n [nzVisible]=\"!!selectedAction\"\r\n [nzFooter]=\"footerTplAction\"\r\n (nzOnClose)=\"selectedAction = undefined\"\r\n>\r\n <ng-template #drawerTitleAction>\r\n <div nz-row nzJustify=\"space-between\">\r\n @if (selectedAction && selectedAction.editorOption) {\r\n @if (selectedAction.editorOption.drawerPosition == \"left\") {\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the right\"\r\n (click)=\"selectedAction.editorOption.drawerPosition = 'right'\"\r\n >\r\n <nz-icon nzType=\"double-right\"></nz-icon>\r\n </button>\r\n ACTION\r\n } @else {\r\n ACTION\r\n <button\r\n nz-button\r\n nzSize=\"small\"\r\n nz-tooltip=\"To the left\"\r\n (click)=\"selectedAction.editorOption.drawerPosition = 'left'\"\r\n >\r\n <nz-icon nzType=\"double-left\"></nz-icon>\r\n </button>\r\n }\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <ng-container *ngIf=\"selectedAction\">\r\n <div>\r\n <strong\r\n >{{ selectedAction.getFromStageCode(lstStage) }} -> {{ selectedAction.getToStageCode(lstStage) }}</strong\r\n >\r\n </div>\r\n <div>{{ selectedAction.getFromStageName(lstStage) }} -> {{ selectedAction.getToStageName(lstStage) }}</div>\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"selectedAction.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(selectedAction.ActionStatus)\"\r\n (blur)=\"onenterAotu(selectedAction.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedAction.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(selectedAction)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(selectedAction)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedAction.To_StageStatus\"\r\n ></extend-select>\r\n </div>\r\n\r\n <!-- <box [height]=\"16\"></box> -->\r\n <nz-divider></nz-divider>\r\n\r\n @if (template.editorOption.AllowbackInUse) {\r\n <extend-checkbox\r\n [label]=\"'Allow back'\"\r\n [labelSpan]=\"0\"\r\n [(_ngModel)]=\"selectedAction.allowBack\"\r\n (_ngModelChange)=\"onchangeAllowBack(selectedAction)\"\r\n ></extend-checkbox>\r\n }\r\n\r\n <box [height]=\"16\"></box>\r\n\r\n @if (selectedAction.allowBack) {\r\n <div>\r\n <strong\r\n >{{ selectedAction.getToStageCode(lstStage) }} -> {{ selectedAction.getFromStageCode(lstStage) }}</strong\r\n >\r\n </div>\r\n <div>{{ selectedAction.getToStageName(lstStage) }} -> {{ selectedAction.getFromStageName(lstStage) }}</div>\r\n\r\n @if (selectedBackAction) {\r\n <div nz-row [nzGutter]=\"16\" class=\"form-item-no-bottom\">\r\n <div nz-col [nzSpan]=\"8\">\r\n <nz-form-item>\r\n <nz-form-label [nzSpan]=\"24\" style=\"height: 32px\">Action status</nz-form-label>\r\n <nz-form-control [nzSpan]=\"24\">\r\n <nz-input-group class=\"full-width\">\r\n <input\r\n nz-input\r\n [(ngModel)]=\"selectedBackAction.ActionStatus\"\r\n [nzAutocomplete]=\"auto\"\r\n (ngModelChange)=\"nzAutocompletechange($event, template.lstActionStatus)\"\r\n (click)=\"lstActionStatusFiltered = template.lstActionStatus\"\r\n (keyup.enter)=\"onenterAotu(selectedBackAction.ActionStatus)\"\r\n (blur)=\"onenterAotu(selectedBackAction.ActionStatus)\"\r\n />\r\n <nz-autocomplete #auto [compareWith]=\"compareFun\">\r\n @for (option of lstActionStatusFiltered; track $index) {\r\n <nz-auto-option [nzValue]=\"option.Code\" [nzLabel]=\"option.Code\">\r\n {{ option.Code }}\r\n <icon-delete\r\n *ngIf=\"checkRemoveableActionStatus(option.Code)\"\r\n style=\"float: right\"\r\n [size]=\"12\"\r\n (click)=\"handleClose(option.Code)\"\r\n ></icon-delete>\r\n </nz-auto-option>\r\n }\r\n </nz-autocomplete>\r\n </nz-input-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n </div>\r\n\r\n <extend-input\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action text'\"\r\n [floatingLabel]=\"true\"\r\n [(_ngModel)]=\"selectedBackAction.ActionText\"\r\n (_ngModelChange)=\"onchangeActionText(selectedBackAction)\"\r\n ></extend-input>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Action type'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstActionType\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.ActionType\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.StageStatus\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"lstStage\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.To_WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"onchangeNextStage(selectedBackAction)\"\r\n ></extend-select>\r\n\r\n <extend-select\r\n nz-col\r\n [nzSpan]=\"8\"\r\n [label]=\"'Next stage status'\"\r\n [floatingLabel]=\"true\"\r\n [lstItem]=\"template.lstStageStatus\"\r\n [valueField]=\"'Code'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"selectedBackAction.To_StageStatus\"\r\n ></extend-select>\r\n </div>\r\n }\r\n }\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #footerTplAction>\r\n <div\r\n nz-flex\r\n [nzGap]=\"6\"\r\n [nzJustify]=\"selectedAction && selectedAction.editorOption.drawerPosition == 'left' ? 'start' : 'end'\"\r\n >\r\n <button nz-button nzDanger nzDanger [nzLoading]=\"!ready\" (click)=\"save()\">Save</button>\r\n <button nz-button nzDanger (click)=\"deleteAction(selectedAction!)\">Delete</button>\r\n <button nz-button (click)=\"selectedAction = undefined\">Close</button>\r\n </div>\r\n </ng-template>\r\n</nz-drawer>\r\n\r\n<!-- setting editor -->\r\n<nz-drawer\r\n [nzTitle]=\"drawSettingTitle\"\r\n nzPlacement=\"right\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"settingVisible\"\r\n (nzOnClose)=\"settingVisible = false\"\r\n>\r\n <ng-template #drawSettingTitle> <nz-icon nzType=\"setting\"></nz-icon> Editor </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <div class=\"form-item-no-bottom\">\r\n <extend-checkbox [label]=\"'Show grid'\" [labelSpan]=\"0\" [(_ngModel)]=\"wfcSetting.ShowGrid\"></extend-checkbox>\r\n\r\n <box [height]=\"16\"></box>\r\n </div>\r\n </ng-container>\r\n</nz-drawer>\r\n\r\n<!-- editor infomation -->\r\n<nz-drawer\r\n [nzTitle]=\"drawInfoTitle\"\r\n nzPlacement=\"right\"\r\n [nzClosable]=\"false\"\r\n [nzVisible]=\"infoVisible\"\r\n (nzOnClose)=\"infoVisible = false\"\r\n>\r\n <ng-template #drawInfoTitle> <nz-icon nzType=\"info-circle\"></nz-icon> Infomation </ng-template>\r\n <ng-container *nzDrawerContent>\r\n <p>1. C\u00E1c th\u00E0nh ph\u1EA7n: Stage or Node (stag, node quy tr\u00ECnh), Action or Connector (\u0111\u01B0\u1EDDng n\u1ED1i gi\u1EEFa c\u00E1c stage)</p>\r\n <p>2. Save \u0111\u1EC3 load c\u00E1c th\u00F4ng tin: Stage status, Action type</p>\r\n <p>\r\n 3. N\u1ED1i 2 node (t\u1EA1o connector t\u01B0\u01A1ng \u0111\u01B0\u01A1ng t\u1EA1o action):\r\n <br />- Click ch\u1EA5m cam t\u1EEB Node ngu\u1ED3n \u0111\u1EBFn ch\u1EA5m xanh c\u1EE7a Node \u0111\u00EDch (ho\u1EB7c click v\u00E0o Node \u0111\u00EDch), c\u00F3 th\u1EC3 click th\u00E0nh\r\n nhi\u1EC1u \u0111i\u1EC3m \u0111\u1EC3 t\u1EA1o \u0111\u01B0\u1EDDng n\u1ED1i cong<br />- Khi hover connector chuy\u1EC3n sang m\u1EA7u \u0111\u1ECF c\u00F3 th\u1EC3 click \u0111\u00FAp \u0111\u1EC3 th\u00EAm m\u1ED9t \u0111i\u1EC3m\r\n c\u1EE7a connector<br />- Khi hover l\u00EAn \u0111i\u1EC3m c\u1EE7a connector c\u00F3 th\u1EC3 di chuy\u1EC3n \u0111i\u1EC3m \u0111\u00F3 b\u1EB1ng c\u00E1ch nh\u1EA5n gi\u1EEF chu\u1ED9t v\u00E0 k\u00E9o th\u1EA3\r\n \u0111\u1EBFn v\u1ECB tr\u00ED m\u1EDBi<br />- Chu\u1ED9t ph\u1EA3i v\u00E0o \u0111i\u1EC3m n\u1ED1i connector \u0111\u1EC3 xo\u00E1 \u0111i\u1EC3m \u0111\u00F3\r\n </p>\r\n </ng-container>\r\n</nz-drawer>\r\n\r\n<!-- action rule modal -->\r\n<nz-modal\r\n [(nzVisible)]=\"actionRuleModalVisible\"\r\n [nzMaskClosable]=\"false\"\r\n [nzClosable]=\"false\"\r\n [nzKeyboard]=\"true\"\r\n [nzWidth]=\"'50vw'\"\r\n>\r\n <ng-container *nzModalTitle>\r\n ACTION RULE: [{{ selectedStage?.Code }}] {{ selectedStage?.Name }} > [{{ hoverAction?.ActionStatus }}]\r\n {{ hoverAction?.ActionText }}\r\n </ng-container>\r\n <ng-container *nzModalContent>\r\n @if (hoverAction && hoverAction.actionRule) {\r\n <div nz-row [nzGutter]=\"32\">\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Code'\" [(_ngModel)]=\"hoverAction.actionRule.Code\"></extend-input>\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Name'\" [(_ngModel)]=\"hoverAction.actionRule.Name\"></extend-input>\r\n <extend-input nz-col nzSpan=\"12\" [label]=\"'Note'\" [(_ngModel)]=\"hoverAction.actionRule.Note\"></extend-input>\r\n <extend-checkbox\r\n nz-col\r\n nzSpan=\"12\"\r\n [label]=\"'IsActive'\"\r\n [(_ngModel)]=\"hoverAction.actionRule.IsActive\"\r\n ></extend-checkbox>\r\n </div>\r\n <div nz-row [nzGutter]=\"16\">\r\n <div nz-col nzSpan=\"24\">\r\n <nz-table nzSize=\"small\" [nzData]=\"hoverAction.actionRule.lstLine\" [nzShowPagination]=\"false\">\r\n <thead>\r\n <tr>\r\n <th [nzWidth]=\"'50px'\"><icon-add (click)=\"addActionRuleLine()\"></icon-add></th>\r\n <th [nzWidth]=\"'25%'\">Template</th>\r\n <th [nzWidth]=\"'25%'\">Template stage</th>\r\n <th [nzWidth]=\"'25%'\">Template action</th>\r\n <th [nzWidth]=\"'50px'\">IsActive</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (item of hoverAction.actionRule.lstLine; track $index) {\r\n <tr>\r\n <td><icon-delete (click)=\"deleteActionRuleLine(hoverAction.actionRule, item)\"></icon-delete></td>\r\n <td>\r\n <extend-select\r\n #xxx\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstTemplateForRule(item)\"\r\n [valueField]=\"'WF_Template_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"item.WF_Template_Id\"\r\n (_ngModelChange)=\"item.WF_TemplateStage_Id = 0; item.WF_TemplateStageAction_Id = 0\"\r\n ></extend-select>\r\n </td>\r\n <td>\r\n <extend-select\r\n #yyy\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstStageForRule(xxx._ngModel)\"\r\n [valueField]=\"'WF_TemplateStage_Id'\"\r\n [displayFields]=\"['Code', 'Name']\"\r\n [(_ngModel)]=\"item.WF_TemplateStage_Id\"\r\n (_ngModelChange)=\"item.WF_TemplateStageAction_Id = 0\"\r\n ></extend-select>\r\n </td>\r\n <td>\r\n <extend-select\r\n [size]=\"'small'\"\r\n [lstItem]=\"lstActionForRule(yyy._ngModel)\"\r\n [valueField]=\"'WF_TemplateStageAction_Id'\"\r\n [displayFields]=\"['ActionStatus', 'ActionText']\"\r\n [(_ngModel)]=\"item.WF_TemplateStageAction_Id\"\r\n ></extend-select>\r\n </td>\r\n <td class=\"text-center\">\r\n <extend-checkbox [(_ngModel)]=\"item.IsActive\"></extend-checkbox>\r\n </td>\r\n </tr>\r\n }\r\n </tbody>\r\n </nz-table>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n <ng-container *nzModalFooter>\r\n <button nz-button nzType=\"primary\" (click)=\"actionRuleModalVisible = false\">OK</button>\r\n </ng-container>\r\n</nz-modal>\r\n", styles: ["@charset \"UTF-8\";::ng-deep .workflow-wrapper{border:solid 1px lightgray;overflow:hidden;width:100%}.workflow-canvas{position:relative;background:#f0f2f5;cursor:default;overflow:hidden;outline:1px dashed rgba(0,0,0,.1)}.workflow-canvas .edges-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1}.workflow-canvas .edges-layer path{stroke-width:2;fill:none}.canvas-content{transform-origin:0 0;width:100%;height:100%}.canvas-content{outline:1px dashed red}.canvas-content.panning{cursor:grab}.canvas-content.panning:active{cursor:grabbing}.workflow-canvas.panning{cursor:grab}.workflow-canvas.panning:active{cursor:grabbing}.workflow-canvas.connecting,.workflow-canvas.connecting .workflow-node{cursor:crosshair}.workflow-node{position:absolute;width:160px;cursor:grab;-webkit-user-select:none;user-select:none;z-index:2}.workflow-node:active{cursor:grabbing}.workflow-node.connecting-source,.workflow-node.selected,.workflow-node:hover:not(.workflow-node-start,.workflow-node-end){outline:2px dashed #1890ff}.workflow-node .title{font-weight:600;margin-bottom:6px}.workflow-node-start{width:0px}.workflow-node-start.connecting-source,.workflow-node-start.selected,.workflow-node-start:hover{outline:unset}.workflow-node-start.connecting-source nz-tag,.workflow-node-start.selected nz-tag,.workflow-node-start:hover nz-tag{outline:2px dashed}.workflow-node-start nz-tag{position:relative;top:45px;right:35px}.workflow-node-end{width:0px}.workflow-node-end.connecting-source,.workflow-node-end.selected,.workflow-node-end:hover{outline:unset}.workflow-node-end.connecting-source nz-tag,.workflow-node-end.selected nz-tag,.workflow-node-end:hover nz-tag{outline:2px dashed}.workflow-node-end nz-tag{position:relative;top:45px;right:32px}.connector{position:absolute;top:39px;width:12px;height:12px;background:#1890ff;border-radius:50%;transform:translateY(-50%);cursor:crosshair;transition:box-shadow .15s ease-out,transform .15s ease-out}.connector:hover{box-shadow:0 0 0 3px #1890ff4d;transform:translateY(-50%) scale(1.15)}.connector-right{right:-8px;background:orange}.connector-right.reverse,.connector-left{left:-8px}.connector-left.reverse{left:unset;right:-8px}.connector-start{width:16px;height:16px;right:-8px;background:green;box-shadow:0 0 0 3px #1890ff4d}.connector-end{width:16px;height:16px;left:-8px;background:#000;box-shadow:0 0 0 3px #1890ff4d}.edge{cursor:pointer;stroke:#1890ff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;fill:none;transition:stroke .15s ease}.edge-hit{stroke:transparent;stroke-width:18px!important;fill:none;cursor:pointer}.edge-hit:hover+.edge{stroke:#ff4d4f;stroke-width:2}.workflow-canvas.dragging-point .edge-hit{pointer-events:none}.edge:hover+.edge-label{fill:#1890ff;font-weight:500}.edge-label{font-size:12px;fill:#555;pointer-events:none;-webkit-user-select:none;user-select:none}.blue{stroke:#1890ff!important}.red{stroke:#ff4d4f!important;box-shadow:0 0 0 3px #1890ff4d!important}.workflow-svg{background:transparent;overflow:visible}.waypoint{position:absolute;width:10px;height:10px;background:#ff4d4f;border-radius:50%;transform:translate(-50%,-50%) scale(1);cursor:move;z-index:1;transition:transform .12s ease-out,background-color .12s ease-out,box-shadow .12s ease-out}.waypoint:hover{background:#ff7875;transform:translate(-50%,-50%) scale(1.25);box-shadow:0 0 0 4px #ff787559}.waypoint.dragging{transition:none;transform:translate(-50%,-50%) scale(1.15);pointer-events:none}.workflow-canvas.dragging-point svg{cursor:grabbing}.selection-box{position:absolute;border:1px dashed #1890ff;background:#1890ff1a;pointer-events:none}.toolbar{position:absolute;top:8px;left:8px;display:flex;gap:4px;padding:6px;background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;z-index:100}.toolbar .divider{width:1px;background:#e5e5e5;margin:0 2px}.zoom-toolbar{position:absolute;top:8px;left:8px;z-index:10;display:flex;align-items:center;gap:6px;background:#fff;padding:4px 6px;border-radius:6px;box-shadow:0 2px 6px #00000026}.zoom-toolbar span{min-width:40px;text-align:center;font-size:12px}nz-tag.selected{outline:2px dashed #1890ff}.grid-layer{position:absolute;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(rgba(0,0,0,.08) 1px,transparent 1px);background-size:20px 20px}.grid-layer{background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px);background-size:20px 20px}.editable-tag{background:#fff;border-style:dashed}::ng-deep .minimap{position:fixed;width:180px;height:125px;top:60px;right:15px;background-color:#eee;border:1px solid #aaa;opacity:.9;z-index:1}::ng-deep .minimap-node{position:absolute;background-color:#607a86}::ng-deep .minimap-node-round{position:absolute;background-color:#607a86;border-radius:10px}::ng-deep .minimap-node-round-start{background-color:green}::ng-deep .minimap-node-round-end{background-color:#000}::ng-deep .minimap-viewport{position:absolute;box-sizing:border-box;background-color:#4f6f7e66;z-index:1;cursor:move}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzCardModule }, { kind: "component", type: i3$1.NzCardComponent, selector: "nz-card", inputs: ["nzBordered", "nzLoading", "nzHoverable", "nzBodyStyle", "nzCover", "nzActions", "nzType", "nzSize", "nzTitle", "nzExtra"], exportAs: ["nzCard"] }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i4$2.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$2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: NzTagModule }, { kind: "component", type: i5$2.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "ngmodule", type: NzRadioModule }, { kind: "component", type: i6$3.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i6$3.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: Box, selector: "box", inputs: ["display", "width", "height"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i11.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: "component", type: ExtendInput, selector: "extend-input", inputs: ["label", "floatingLabel", "placeHolder", "labelAlign", "inputClass", "labelSpan", "labelFlex", "inputFlex", "allowClear", "disabled", "readOnly", "required", "noBottom", "selectModeType", "autocomplete", "autofocus", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "size", "lstItem", "displayField", "valueField", "formData", "controlName", "_ngModel", "isSubmited"], outputs: ["_ngModelChange", "onclickClearIcon", "onenter"] }, { kind: "component", type: ExtendSelectComponent, selector: "extend-select", inputs: ["label", "floatingLabel", "placeHolder", "labelAlign", "dropdownMatchSelectWidth", "labelSpan", "labelFlex", "disabled", "required", "noBottom", "multiple", "showSelectAll", "maxTagCount", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "size", "lstItem", "displayField", "displayFields", "valueField", "formData", "controlName", "_ngModel", "isSubmited"], outputs: ["_ngModelChange", "itemChange", "onFocus"] }, { kind: "component", type: ExtendCheckbox, selector: "extend-checkbox", inputs: ["label", "labelSpan", "labelFlex", "disabled", "formData", "controlName", "valueType", "_ngModel"], outputs: ["_ngModelChange"] }, { kind: "component", type: ExtendTextArea, selector: "extend-textarea", inputs: ["label", "placeHolder", "labelAlign", "floatingLabel", "displayInline", "labelSpan", "labelFlex", "inputFlex", "disabled", "required", "noBottom", "selectModeType", "inputClass", "size", "isSubmited", "minRows", "maxRows", "lstItem", "displayField", "valueField", "formData", "controlName", "_ngModel", "isTouched", "inputErrorMessage", "errorMessages"], outputs: ["_ngModelChange"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { 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: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "component", type: ExtendInputNumber, selector: "extend-input-number", inputs: ["label", "placeHolder", "labelAlign", "floatingLabel", "hiddenUpDown", "labelSpan", "labelFlex", "inputFlex", "disabled", "required", "noBottom", "size", "min", "max", "precision", "inputWidth", "inputHeight", "borderBottomOnly", "displayInline", "isSubmited", "separatorType", "formData", "controlName", "_ngModel"], outputs: ["_ngModelChange"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$2.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: i2$2.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i2$2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$2.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: NzDividerModule }, { kind: "component", type: i16.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }, { kind: "directive", type: AutoFocusDirective, selector: "[appAutoFocus]", inputs: ["appAutoFocus"] }, { kind: "ngmodule", type: NzAutocompleteModule }, { kind: "component", type: i17.NzAutocompleteComponent, selector: "nz-autocomplete", inputs: ["nzWidth", "nzOverlayClassName", "nzOverlayStyle", "nzDefaultActiveFirstOption", "nzBackfill", "compareWith", "nzDataSource"], outputs: ["selectionChange"], exportAs: ["nzAutocomplete"] }, { kind: "component", type: i17.NzAutocompleteOptionComponent, selector: "nz-auto-option", inputs: ["nzValue", "nzLabel", "nzDisabled"], outputs: ["selectionChange", "mouseEntered"], exportAs: ["nzAutoOption"] }, { kind: "directive", type: i17.NzAutocompleteTriggerDirective, selector: "input[nzAutocomplete], textarea[nzAutocomplete]", inputs: ["nzAutocomplete"], exportAs: ["nzAutocompleteTrigger"] }, { kind: "component", type: IconDelete, selector: "icon-delete", inputs: ["size"], outputs: ["click"] }, { kind: "component", type: NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "directive", type: NzModalTitleDirective, selector: "[nzModalTitle]", exportAs: ["nzModalTitle"] }, { kind: "component", type: IconAdd, selector: "icon-add", inputs: ["size"], outputs: ["click"] }, { kind: "directive", type: NzModalFooterDirective, selector: "[nzModalFooter]", exportAs: ["nzModalFooter"] }] });
|
|
6107
6167
|
}
|
|
6108
6168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: WorkflowEditorComponent, decorators: [{
|
|
6109
6169
|
type: Component,
|
|
@@ -6225,7 +6285,7 @@ class ExpandableSearchComponent {
|
|
|
6225
6285
|
this.searchValueChange.emit(this.searchValue);
|
|
6226
6286
|
}
|
|
6227
6287
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExpandableSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6228
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: ExpandableSearchComponent, isStandalone: true, selector: "expandable-search", inputs: { searchValue: "searchValue" }, outputs: { searchValueChange: "searchValueChange" }, viewQueries: [{ propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div class=\"nz-search-wrapper\" [class.expanded]=\"isExpanded\">\n <input\n #searchInput\n type=\"text\"\n class=\"custom-search-input\"\n [(ngModel)]=\"searchValue\"\n placeholder=\"Nh\u1EADp \u0111i\u1EC1u ki\u1EC7n t\u00ECm ki\u1EBFm...\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"performSearch()\"\n />\n\n <span class=\"suffix-wrap\" (mousedown)=\"$event.preventDefault()\" (click)=\"toggleSearch()\">\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"fill\"\n class=\"suffix-icon delete\"\n [class.show]=\"isExpanded && searchValue\"\n (click)=\"clearSearch($event)\"\n ></i>\n\n <i\n nz-icon\n nzType=\"search\"\n nzTheme=\"outline\"\n class=\"suffix-icon search\"\n [class.show]=\"!isExpanded || !searchValue\"\n ></i>\n </span>\n</div>\n", styles: ["@charset \"UTF-8\";.nz-search-wrapper{position:relative;display:inline-flex;align-items:center;height:32px;width:32px;background-color:transparent;border:1px solid transparent;border-radius:6px;transition:all .3s cubic-bezier(.645,.045,.355,1);overflow:hidden}.nz-search-wrapper:hover:not(.expanded){background-color:#0000000a;cursor:pointer}.nz-search-wrapper.expanded{width:250px;background-color:#fff;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.nz-search-wrapper.expanded .custom-search-input{width:100%;padding:4px 32px 4px 11px;opacity:1}.custom-search-input{width:0;opacity:0;border:none;outline:none;background:transparent;padding:0;font-size:14px;color:#000000d9;transition:all .3s cubic-bezier(.645,.045,.355,1)}.custom-search-input::placeholder{color:#bfbfbf}.suffix-wrap{position:absolute;right:0;top:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;pointer-events:none;transition:opacity .2s ease}.suffix-icon.show{opacity:1;pointer-events:auto}.search{color:var(--primary-color)}.delete{color:#bfbfbf}.delete:hover{color:#ff4d4f}.delete.show{animation:popIn .18s ease}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$
|
|
6288
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: ExpandableSearchComponent, isStandalone: true, selector: "expandable-search", inputs: { searchValue: "searchValue" }, outputs: { searchValueChange: "searchValueChange" }, viewQueries: [{ propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div class=\"nz-search-wrapper\" [class.expanded]=\"isExpanded\">\n <input\n #searchInput\n type=\"text\"\n class=\"custom-search-input\"\n [(ngModel)]=\"searchValue\"\n placeholder=\"Nh\u1EADp \u0111i\u1EC1u ki\u1EC7n t\u00ECm ki\u1EBFm...\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"performSearch()\"\n />\n\n <span class=\"suffix-wrap\" (mousedown)=\"$event.preventDefault()\" (click)=\"toggleSearch()\">\n <i\n nz-icon\n nzType=\"close-circle\"\n nzTheme=\"fill\"\n class=\"suffix-icon delete\"\n [class.show]=\"isExpanded && searchValue\"\n (click)=\"clearSearch($event)\"\n ></i>\n\n <i\n nz-icon\n nzType=\"search\"\n nzTheme=\"outline\"\n class=\"suffix-icon search\"\n [class.show]=\"!isExpanded || !searchValue\"\n ></i>\n </span>\n</div>\n", styles: ["@charset \"UTF-8\";.nz-search-wrapper{position:relative;display:inline-flex;align-items:center;height:32px;width:32px;background-color:transparent;border:1px solid transparent;border-radius:6px;transition:all .3s cubic-bezier(.645,.045,.355,1);overflow:hidden}.nz-search-wrapper:hover:not(.expanded){background-color:#0000000a;cursor:pointer}.nz-search-wrapper.expanded{width:250px;background-color:#fff;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.nz-search-wrapper.expanded .custom-search-input{width:100%;padding:4px 32px 4px 11px;opacity:1}.custom-search-input{width:0;opacity:0;border:none;outline:none;background:transparent;padding:0;font-size:14px;color:#000000d9;transition:all .3s cubic-bezier(.645,.045,.355,1)}.custom-search-input::placeholder{color:#bfbfbf}.suffix-wrap{position:absolute;right:0;top:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.suffix-icon{position:absolute;display:flex;align-items:center;justify-content:center;font-size:16px;opacity:0;pointer-events:none;transition:opacity .2s ease}.suffix-icon.show{opacity:1;pointer-events:auto}.search{color:var(--primary-color)}.delete{color:#bfbfbf}.delete:hover{color:#ff4d4f}.delete.show{animation:popIn .18s ease}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
6229
6289
|
}
|
|
6230
6290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: ExpandableSearchComponent, decorators: [{
|
|
6231
6291
|
type: Component,
|
|
@@ -6239,6 +6299,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
6239
6299
|
type: Output
|
|
6240
6300
|
}] } });
|
|
6241
6301
|
|
|
6302
|
+
class CustomNotiComponent {
|
|
6303
|
+
customNotiService = inject(CustomNotiService);
|
|
6304
|
+
notiTemplate;
|
|
6305
|
+
ngOnInit() {
|
|
6306
|
+
this.customNotiService.registerTemplate(this.notiTemplate);
|
|
6307
|
+
}
|
|
6308
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomNotiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6309
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: CustomNotiComponent, isStandalone: true, selector: "custom-noti", viewQueries: [{ propertyName: "notiTemplate", first: true, predicate: ["globalNotiTemplate"], descendants: true, static: true }], ngImport: i0, template: `
|
|
6310
|
+
<ng-template #globalNotiTemplate let-data="data">
|
|
6311
|
+
<div class="custom-notification-wrapper">
|
|
6312
|
+
<div class="notification-content">
|
|
6313
|
+
<i nz-icon [nzType]="data.icon" nzTheme="twotone" [nzTwotoneColor]="data.color" class="noti-icon"></i>
|
|
6314
|
+
|
|
6315
|
+
<div class="noti-text">
|
|
6316
|
+
<div class="noti-title">{{ data.title }}</div>
|
|
6317
|
+
<div class="noti-desc">{{ data.description }}</div>
|
|
6318
|
+
|
|
6319
|
+
<div class="noti-action" *ngIf="data.showDetail">
|
|
6320
|
+
<a class="detail-link" (click)="data.onDetailClick()">Chi tiết</a>
|
|
6321
|
+
</div>
|
|
6322
|
+
</div>
|
|
6323
|
+
</div>
|
|
6324
|
+
|
|
6325
|
+
<div class="progress-bar-container">
|
|
6326
|
+
<div
|
|
6327
|
+
class="progress-bar"
|
|
6328
|
+
[style.background-color]="data.color"
|
|
6329
|
+
[style.animation-duration.ms]="data.duration"
|
|
6330
|
+
></div>
|
|
6331
|
+
</div>
|
|
6332
|
+
</div>
|
|
6333
|
+
</ng-template>
|
|
6334
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";::ng-deep .ant-notification-notice.notification-with-progress{padding:0!important;border-radius:8px;overflow:hidden;box-shadow:0 6px 16px #0000004d,0 3px 6px -4px #0000004d,0 9px 28px 8px #0000001a!important}::ng-deep .notification-with-progress .ant-notification-notice-content{padding:0!important}::ng-deep .notification-with-progress .ant-notification-notice-close{top:8px!important;right:8px!important}::ng-deep .custom-notification-wrapper{position:relative;width:100%;overflow:hidden;padding:0}::ng-deep .notification-content{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px;padding:12px 12px 12px 16px;min-height:50px;word-break:break-word}::ng-deep .notification-content .noti-text{width:100%}::ng-deep .notification-content .noti-icon{font-size:24px;margin-top:2px}::ng-deep .notification-content .noti-title{font-weight:500;font-size:16px;color:#000000d9;margin-bottom:4px;width:94%}::ng-deep .notification-content .noti-desc{font-size:14px;color:#000000a6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}::ng-deep .notification-content .noti-action{margin-top:8px;text-align:right}::ng-deep .notification-content .noti-action .detail-link{color:#1890ff;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:color .3s}::ng-deep .notification-content .noti-action .detail-link:hover{color:#40a9ff;text-decoration:underline}::ng-deep .progress-bar-container{position:absolute;bottom:0;left:0;width:100%;height:4px;background-color:#f0f0f0}::ng-deep .progress-bar{height:100%;width:100%;animation-name:shrinkProgress;animation-timing-function:linear;animation-fill-mode:forwards}::ng-deep .ant-notification-notice.notification-with-progress:hover .progress-bar{animation-play-state:paused!important}@keyframes shrinkProgress{0%{width:100%}to{width:0%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
|
|
6335
|
+
}
|
|
6336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: CustomNotiComponent, decorators: [{
|
|
6337
|
+
type: Component,
|
|
6338
|
+
args: [{ selector: 'custom-noti', imports: [CommonModule, NzIconModule], template: `
|
|
6339
|
+
<ng-template #globalNotiTemplate let-data="data">
|
|
6340
|
+
<div class="custom-notification-wrapper">
|
|
6341
|
+
<div class="notification-content">
|
|
6342
|
+
<i nz-icon [nzType]="data.icon" nzTheme="twotone" [nzTwotoneColor]="data.color" class="noti-icon"></i>
|
|
6343
|
+
|
|
6344
|
+
<div class="noti-text">
|
|
6345
|
+
<div class="noti-title">{{ data.title }}</div>
|
|
6346
|
+
<div class="noti-desc">{{ data.description }}</div>
|
|
6347
|
+
|
|
6348
|
+
<div class="noti-action" *ngIf="data.showDetail">
|
|
6349
|
+
<a class="detail-link" (click)="data.onDetailClick()">Chi tiết</a>
|
|
6350
|
+
</div>
|
|
6351
|
+
</div>
|
|
6352
|
+
</div>
|
|
6353
|
+
|
|
6354
|
+
<div class="progress-bar-container">
|
|
6355
|
+
<div
|
|
6356
|
+
class="progress-bar"
|
|
6357
|
+
[style.background-color]="data.color"
|
|
6358
|
+
[style.animation-duration.ms]="data.duration"
|
|
6359
|
+
></div>
|
|
6360
|
+
</div>
|
|
6361
|
+
</div>
|
|
6362
|
+
</ng-template>
|
|
6363
|
+
`, styles: ["@charset \"UTF-8\";::ng-deep .ant-notification-notice.notification-with-progress{padding:0!important;border-radius:8px;overflow:hidden;box-shadow:0 6px 16px #0000004d,0 3px 6px -4px #0000004d,0 9px 28px 8px #0000001a!important}::ng-deep .notification-with-progress .ant-notification-notice-content{padding:0!important}::ng-deep .notification-with-progress .ant-notification-notice-close{top:8px!important;right:8px!important}::ng-deep .custom-notification-wrapper{position:relative;width:100%;overflow:hidden;padding:0}::ng-deep .notification-content{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px;padding:12px 12px 12px 16px;min-height:50px;word-break:break-word}::ng-deep .notification-content .noti-text{width:100%}::ng-deep .notification-content .noti-icon{font-size:24px;margin-top:2px}::ng-deep .notification-content .noti-title{font-weight:500;font-size:16px;color:#000000d9;margin-bottom:4px;width:94%}::ng-deep .notification-content .noti-desc{font-size:14px;color:#000000a6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}::ng-deep .notification-content .noti-action{margin-top:8px;text-align:right}::ng-deep .notification-content .noti-action .detail-link{color:#1890ff;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:color .3s}::ng-deep .notification-content .noti-action .detail-link:hover{color:#40a9ff;text-decoration:underline}::ng-deep .progress-bar-container{position:absolute;bottom:0;left:0;width:100%;height:4px;background-color:#f0f0f0}::ng-deep .progress-bar{height:100%;width:100%;animation-name:shrinkProgress;animation-timing-function:linear;animation-fill-mode:forwards}::ng-deep .ant-notification-notice.notification-with-progress:hover .progress-bar{animation-play-state:paused!important}@keyframes shrinkProgress{0%{width:100%}to{width:0%}}\n"] }]
|
|
6364
|
+
}], propDecorators: { notiTemplate: [{
|
|
6365
|
+
type: ViewChild,
|
|
6366
|
+
args: ['globalNotiTemplate', { static: true }]
|
|
6367
|
+
}] } });
|
|
6368
|
+
|
|
6242
6369
|
class NullIfEmptyDirective {
|
|
6243
6370
|
el;
|
|
6244
6371
|
ngControl;
|
|
@@ -6718,13 +6845,13 @@ class RouteMonitorService {
|
|
|
6718
6845
|
}
|
|
6719
6846
|
});
|
|
6720
6847
|
}
|
|
6721
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RouteMonitorService, deps: [{ token: i1$
|
|
6848
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RouteMonitorService, deps: [{ token: i1$6.Router }, { token: AuthService }, { token: NotiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6722
6849
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RouteMonitorService, providedIn: 'root' });
|
|
6723
6850
|
}
|
|
6724
6851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: RouteMonitorService, decorators: [{
|
|
6725
6852
|
type: Injectable,
|
|
6726
6853
|
args: [{ providedIn: 'root' }]
|
|
6727
|
-
}], ctorParameters: () => [{ type: i1$
|
|
6854
|
+
}], ctorParameters: () => [{ type: i1$6.Router }, { type: AuthService }, { type: NotiService }] });
|
|
6728
6855
|
|
|
6729
6856
|
class ThemeService {
|
|
6730
6857
|
setHighContrast(enabled) {
|
|
@@ -6985,7 +7112,7 @@ class LayoutUser extends BaseComponent {
|
|
|
6985
7112
|
this.sessionManager.logout();
|
|
6986
7113
|
}
|
|
6987
7114
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutUser, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
6988
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutUser, isStandalone: true, selector: "layout-user", usesInheritance: true, ngImport: i0, template: "<nz-badge [nzSize]=\"'small'\" [nzCount]=\"0\">\n <button nz-button nzType=\"text\" nzSize=\"small\">\n <nz-icon nzType=\"bell\" nzTheme=\"outline\" style=\"color: #ffffff\" />\n </button>\n</nz-badge>\n\n<button\n *ngIf=\"!isXSmall && TokenStorage.getOrgName()\"\n [@fadeInOut]\n nz-button\n nzType=\"text\"\n nz-dropdown\n [nzDropdownMenu]=\"isOneUserMultiOrgs ? menuOrg : null\"\n [nzTrigger]=\"'click'\"\n style=\"height: 50px; color: #ffffff\"\n>\n <nz-icon nzType=\"cluster\" nzTheme=\"outline\" />\n {{ TokenStorage.getOrgName() }}\n</button>\n\n<nz-dropdown-menu #menuOrg=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (org of lstOrg; track $index) {\n <li *ngIf=\"$index > 0\" nz-menu-divider></li>\n <li nz-menu-item (click)=\"changeOrg(org)\">\n <nz-icon nzType=\"swap\" nzTheme=\"outline\" /> {{ org.Name }}\n </li>\n }\n </ul>\n</nz-dropdown-menu>\n\n<button\n nz-button\n nzType=\"text\"\n nz-dropdown\n [nzDropdownMenu]=\"menuUser\"\n [nzTrigger]=\"'click'\"\n style=\"height: 50px; color: #ffffff\"\n>\n <nz-icon nzType=\"user\" nzTheme=\"outline\" />\n {{ TokenStorage.getUserFullname() }}\n</button>\n\n<nz-dropdown-menu #menuUser=\"nzDropdownMenu\">\n <ul nz-menu>\n <li *ngIf=\"!(!isXSmall && TokenStorage.getOrgName())\" nz-menu-item>\n <nz-icon nzType=\"cluster\" nzTheme=\"outline\" /> {{ TokenStorage.getOrgName() }}\n </li>\n <li *ngIf=\"!(!isXSmall && TokenStorage.getOrgName())\" nz-menu-divider></li>\n <li nz-menu-item (click)=\"gotoSetting()\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" /> {{ TranslateKey.SETTING | translate }}\n </li>\n <li nz-menu-divider></li>\n <li nz-menu-item (click)=\"logout()\">\n <nz-icon nzType=\"logout\" nzTheme=\"outline\" /> {{ TranslateKey.LOGOUT | translate }}\n </li>\n </ul>\n</nz-dropdown-menu>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$
|
|
7115
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutUser, isStandalone: true, selector: "layout-user", usesInheritance: true, ngImport: i0, template: "<nz-badge [nzSize]=\"'small'\" [nzCount]=\"0\">\n <button nz-button nzType=\"text\" nzSize=\"small\">\n <nz-icon nzType=\"bell\" nzTheme=\"outline\" style=\"color: #ffffff\" />\n </button>\n</nz-badge>\n\n<button\n *ngIf=\"!isXSmall && TokenStorage.getOrgName()\"\n [@fadeInOut]\n nz-button\n nzType=\"text\"\n nz-dropdown\n [nzDropdownMenu]=\"isOneUserMultiOrgs ? menuOrg : null\"\n [nzTrigger]=\"'click'\"\n style=\"height: 50px; color: #ffffff\"\n>\n <nz-icon nzType=\"cluster\" nzTheme=\"outline\" />\n {{ TokenStorage.getOrgName() }}\n</button>\n\n<nz-dropdown-menu #menuOrg=\"nzDropdownMenu\">\n <ul nz-menu>\n @for (org of lstOrg; track $index) {\n <li *ngIf=\"$index > 0\" nz-menu-divider></li>\n <li nz-menu-item (click)=\"changeOrg(org)\">\n <nz-icon nzType=\"swap\" nzTheme=\"outline\" /> {{ org.Name }}\n </li>\n }\n </ul>\n</nz-dropdown-menu>\n\n<button\n nz-button\n nzType=\"text\"\n nz-dropdown\n [nzDropdownMenu]=\"menuUser\"\n [nzTrigger]=\"'click'\"\n style=\"height: 50px; color: #ffffff\"\n>\n <nz-icon nzType=\"user\" nzTheme=\"outline\" />\n {{ TokenStorage.getUserFullname() }}\n</button>\n\n<nz-dropdown-menu #menuUser=\"nzDropdownMenu\">\n <ul nz-menu>\n <li *ngIf=\"!(!isXSmall && TokenStorage.getOrgName())\" nz-menu-item>\n <nz-icon nzType=\"cluster\" nzTheme=\"outline\" /> {{ TokenStorage.getOrgName() }}\n </li>\n <li *ngIf=\"!(!isXSmall && TokenStorage.getOrgName())\" nz-menu-divider></li>\n <li nz-menu-item (click)=\"gotoSetting()\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" /> {{ TranslateKey.SETTING | translate }}\n </li>\n <li nz-menu-divider></li>\n <li nz-menu-item (click)=\"logout()\">\n <nz-icon nzType=\"logout\" nzTheme=\"outline\" /> {{ TranslateKey.LOGOUT | translate }}\n </li>\n </ul>\n</nz-dropdown-menu>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzLayoutModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i4$3.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i4$3.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i4$3.NzMenuDividerDirective, selector: "[nz-menu-divider]", exportAs: ["nzMenuDivider"] }, { kind: "directive", type: i5$3.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i5$3.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: i5$3.NzDropdownButtonDirective, selector: "[nz-button][nz-dropdown]" }, { kind: "ngmodule", type: NzGridModule }, { kind: "ngmodule", type: NzFlexModule }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: "ngmodule", type: NzTreeModule }, { kind: "ngmodule", type: NzBackTopModule }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: NzInputModule }, { kind: "ngmodule", type: NzSegmentedModule }, { kind: "ngmodule", type: NzBadgeModule }, { kind: "component", type: i8$1.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }], animations: [fadeInOut] });
|
|
6989
7116
|
}
|
|
6990
7117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutUser, decorators: [{
|
|
6991
7118
|
type: Component,
|
|
@@ -7485,7 +7612,7 @@ class LayoutComponent extends BaseComponent {
|
|
|
7485
7612
|
return r;
|
|
7486
7613
|
}
|
|
7487
7614
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7488
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutComponent, isStandalone: true, selector: "layout", viewQueries: [{ propertyName: "divuser", first: true, predicate: ["divuser"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<app-global-spinner></app-global-spinner>\n<nz-layout class=\"app-layout\">\n <nz-header class=\"app-header\">\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\n @if (isCollapsed) {\n <div @fadeInOut>\n <button nz-button (click)=\"visibleMenuDrawer = true\">\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\n </button>\n </div>\n }\n\n <div class=\"header-logo\" [style.width]=\"!isCollapsed ? siderWidthStorage : '100px'\">\n <div nz-flex nzJustify=\"center\" nzGap=\"small\">\n <img\n *ngIf=\"logoUrl$ | async as url\"\n [src]=\"url\"\n height=\"40px\"\n style=\"position: relative; top: 5px\"\n hideIfError\n />\n @if (!isCollapsed) {\n @if (SYSTEM_NAME) {\n <h2 style=\"color: whitesmoke\">{{ SYSTEM_NAME }}</h2>\n } @else {\n -- o0o --\n }\n }\n </div>\n </div>\n @if (!HEADER_MENU_IN_USE) {\n <box [width]=\"8\"></box>\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\n }\n <div *ngIf=\"HEADER_MENU_IN_USE\" [ngStyle]=\"{ width: getHeaderMenuWidth() }\" class=\"header-menu\">\n <div style=\"overflow: auto\">\n <nz-segmented\n [nzOptions]=\"lstHeaderMenuDisplay\"\n [(ngModel)]=\"selectedHeaderMenuDisplay\"\n (nzValueChange)=\"handleValueChangeHeaderMenu($event)\"\n ></nz-segmented>\n </div>\n </div>\n <div #divuser>\n <layout-user></layout-user>\n </div>\n </div>\n </nz-header>\n <nz-layout class=\"body-layout\">\n <nz-sider\n class=\"menu-sidebar\"\n nzCollapsible\n [nzWidth]=\"siderWidth\"\n [nzCollapsedWidth]=\"0\"\n [nzBreakpoint]=\"'md'\"\n [(nzCollapsed)]=\"isCollapsed\"\n [nzTrigger]=\"null\"\n [nzTheme]=\"'dark'\"\n >\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n </div>\n <div class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\n\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </span>\n </div>\n </div>\n </nz-sider>\n <nz-layout class=\"main-layout\">\n <nz-content class=\"content\">\n <div class=\"inner-content\">\n @if (HEADER_MENU_IN_USE) {\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\n <box [height]=\"8\"></box>\n }\n <router-outlet></router-outlet>\n </div>\n <div nz-row class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\n </div>\n </div>\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\n </nz-content>\n </nz-layout>\n </nz-layout>\n</nz-layout>\n\n<nz-drawer\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\n [nzWidth]=\"350\"\n [nzClosable]=\"false\"\n [(nzVisible)]=\"visibleMenuDrawer\"\n [nzMaskClosable]=\"true\"\n nzPlacement=\"left\"\n nzTitle=\"\"\n (nzOnClose)=\"visibleMenuDrawer = false\"\n>\n <ng-container *nzDrawerContent>\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper in-drawer\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper in-drawer\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n <ng-template #afterTemplate>\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </button>\n </ng-template>\n </div>\n </ng-container>\n</nz-drawer>\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:50px;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%}.header-logo{height:50px;text-align:center;color:var(--theme-text-color);transition:width .3s}.body-layout{display:flex;flex:1;margin-top:50px;height:calc(100vh - 50px);overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - 50px)}.menu-wapper{min-height:calc(100% - 22px)}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#f1f2f5;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#f1f2f5;min-height:calc(100% - 22px);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 - 104px);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 .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}@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$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$3.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$3.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i4$3.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4$3.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: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.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: "component", type: GlobalSpinnerComponent, selector: "app-global-spinner" }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i10$1.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$2.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$2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6$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: i14$1.NzSegmentedComponent, selector: "nz-segmented", inputs: ["nzBlock", "nzDisabled", "nzOptions", "nzSize"], outputs: ["nzValueChange"], exportAs: ["nzSegmented"] }, { kind: "component", type: LayoutUser, selector: "layout-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]" }], animations: [fadeInOut] });
|
|
7615
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LayoutComponent, isStandalone: true, selector: "layout", viewQueries: [{ propertyName: "divuser", first: true, predicate: ["divuser"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<custom-noti></custom-noti>\n<app-global-spinner></app-global-spinner>\n<nz-layout class=\"app-layout\">\n <nz-header class=\"app-header\">\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\n @if (isCollapsed) {\n <div @fadeInOut>\n <button nz-button (click)=\"visibleMenuDrawer = true\">\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\n </button>\n </div>\n }\n\n <div class=\"header-logo\" [style.width]=\"!isCollapsed ? siderWidthStorage : '100px'\">\n <div nz-flex nzJustify=\"center\" nzGap=\"small\">\n <img\n *ngIf=\"logoUrl$ | async as url\"\n [src]=\"url\"\n height=\"40px\"\n style=\"position: relative; top: 5px\"\n hideIfError\n />\n @if (!isCollapsed) {\n @if (SYSTEM_NAME) {\n <h2 style=\"color: whitesmoke\">{{ SYSTEM_NAME }}</h2>\n } @else {\n -- o0o --\n }\n }\n </div>\n </div>\n @if (!HEADER_MENU_IN_USE) {\n <box [width]=\"8\"></box>\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\n }\n <div *ngIf=\"HEADER_MENU_IN_USE\" [ngStyle]=\"{ width: getHeaderMenuWidth() }\" class=\"header-menu\">\n <div style=\"overflow: auto\">\n <nz-segmented\n [nzOptions]=\"lstHeaderMenuDisplay\"\n [(ngModel)]=\"selectedHeaderMenuDisplay\"\n (nzValueChange)=\"handleValueChangeHeaderMenu($event)\"\n ></nz-segmented>\n </div>\n </div>\n <div #divuser>\n <layout-user></layout-user>\n </div>\n </div>\n </nz-header>\n <nz-layout class=\"body-layout\">\n <nz-sider\n class=\"menu-sidebar\"\n nzCollapsible\n [nzWidth]=\"siderWidth\"\n [nzCollapsedWidth]=\"0\"\n [nzBreakpoint]=\"'md'\"\n [(nzCollapsed)]=\"isCollapsed\"\n [nzTrigger]=\"null\"\n [nzTheme]=\"'dark'\"\n >\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n </div>\n <div class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\n\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </span>\n </div>\n </div>\n </nz-sider>\n <nz-layout class=\"main-layout\">\n <nz-content class=\"content\">\n <div class=\"inner-content\">\n @if (HEADER_MENU_IN_USE) {\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\n <box [height]=\"8\"></box>\n }\n <router-outlet></router-outlet>\n </div>\n <div nz-row class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\n </div>\n </div>\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\n </nz-content>\n </nz-layout>\n </nz-layout>\n</nz-layout>\n\n<nz-drawer\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\n [nzWidth]=\"350\"\n [nzClosable]=\"false\"\n [(nzVisible)]=\"visibleMenuDrawer\"\n [nzMaskClosable]=\"true\"\n nzPlacement=\"left\"\n nzTitle=\"\"\n (nzOnClose)=\"visibleMenuDrawer = false\"\n>\n <ng-container *nzDrawerContent>\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper in-drawer\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper in-drawer\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n <ng-template #afterTemplate>\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </button>\n </ng-template>\n </div>\n </ng-container>\n</nz-drawer>\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:50px;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%}.header-logo{height:50px;text-align:center;color:var(--theme-text-color);transition:width .3s}.body-layout{display:flex;flex:1;margin-top:50px;height:calc(100vh - 50px);overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - 50px)}.menu-wapper{min-height:calc(100% - 22px)}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#f1f2f5;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#f1f2f5;min-height:calc(100% - 22px);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 - 104px);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 .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}@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$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$4.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$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i4$3.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i4$3.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i4$3.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: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.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: "component", type: GlobalSpinnerComponent, selector: "app-global-spinner" }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i10$1.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$2.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$2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6$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: i14$1.NzSegmentedComponent, selector: "nz-segmented", inputs: ["nzBlock", "nzDisabled", "nzOptions", "nzSize"], outputs: ["nzValueChange"], exportAs: ["nzSegmented"] }, { kind: "component", type: LayoutUser, selector: "layout-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: CustomNotiComponent, selector: "custom-noti" }], animations: [fadeInOut] });
|
|
7489
7616
|
}
|
|
7490
7617
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
7491
7618
|
type: Component,
|
|
@@ -7515,7 +7642,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
7515
7642
|
IconSearch,
|
|
7516
7643
|
HighlightPipe,
|
|
7517
7644
|
HideIfErrorDirective,
|
|
7518
|
-
], animations: [fadeInOut], template: "<app-global-spinner></app-global-spinner>\n<nz-layout class=\"app-layout\">\n <nz-header class=\"app-header\">\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\n @if (isCollapsed) {\n <div @fadeInOut>\n <button nz-button (click)=\"visibleMenuDrawer = true\">\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\n </button>\n </div>\n }\n\n <div class=\"header-logo\" [style.width]=\"!isCollapsed ? siderWidthStorage : '100px'\">\n <div nz-flex nzJustify=\"center\" nzGap=\"small\">\n <img\n *ngIf=\"logoUrl$ | async as url\"\n [src]=\"url\"\n height=\"40px\"\n style=\"position: relative; top: 5px\"\n hideIfError\n />\n @if (!isCollapsed) {\n @if (SYSTEM_NAME) {\n <h2 style=\"color: whitesmoke\">{{ SYSTEM_NAME }}</h2>\n } @else {\n -- o0o --\n }\n }\n </div>\n </div>\n @if (!HEADER_MENU_IN_USE) {\n <box [width]=\"8\"></box>\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\n }\n <div *ngIf=\"HEADER_MENU_IN_USE\" [ngStyle]=\"{ width: getHeaderMenuWidth() }\" class=\"header-menu\">\n <div style=\"overflow: auto\">\n <nz-segmented\n [nzOptions]=\"lstHeaderMenuDisplay\"\n [(ngModel)]=\"selectedHeaderMenuDisplay\"\n (nzValueChange)=\"handleValueChangeHeaderMenu($event)\"\n ></nz-segmented>\n </div>\n </div>\n <div #divuser>\n <layout-user></layout-user>\n </div>\n </div>\n </nz-header>\n <nz-layout class=\"body-layout\">\n <nz-sider\n class=\"menu-sidebar\"\n nzCollapsible\n [nzWidth]=\"siderWidth\"\n [nzCollapsedWidth]=\"0\"\n [nzBreakpoint]=\"'md'\"\n [(nzCollapsed)]=\"isCollapsed\"\n [nzTrigger]=\"null\"\n [nzTheme]=\"'dark'\"\n >\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n </div>\n <div class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\n\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </span>\n </div>\n </div>\n </nz-sider>\n <nz-layout class=\"main-layout\">\n <nz-content class=\"content\">\n <div class=\"inner-content\">\n @if (HEADER_MENU_IN_USE) {\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\n <box [height]=\"8\"></box>\n }\n <router-outlet></router-outlet>\n </div>\n <div nz-row class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\n </div>\n </div>\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\n </nz-content>\n </nz-layout>\n </nz-layout>\n</nz-layout>\n\n<nz-drawer\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\n [nzWidth]=\"350\"\n [nzClosable]=\"false\"\n [(nzVisible)]=\"visibleMenuDrawer\"\n [nzMaskClosable]=\"true\"\n nzPlacement=\"left\"\n nzTitle=\"\"\n (nzOnClose)=\"visibleMenuDrawer = false\"\n>\n <ng-container *nzDrawerContent>\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper in-drawer\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper in-drawer\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n <ng-template #afterTemplate>\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </button>\n </ng-template>\n </div>\n </ng-container>\n</nz-drawer>\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:50px;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%}.header-logo{height:50px;text-align:center;color:var(--theme-text-color);transition:width .3s}.body-layout{display:flex;flex:1;margin-top:50px;height:calc(100vh - 50px);overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - 50px)}.menu-wapper{min-height:calc(100% - 22px)}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#f1f2f5;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#f1f2f5;min-height:calc(100% - 22px);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 - 104px);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 .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}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"] }]
|
|
7645
|
+
CustomNotiComponent,
|
|
7646
|
+
], animations: [fadeInOut], template: "<custom-noti></custom-noti>\n<app-global-spinner></app-global-spinner>\n<nz-layout class=\"app-layout\">\n <nz-header class=\"app-header\">\n <div nz-row nzAlign=\"middle\" class=\"header-content\">\n @if (isCollapsed) {\n <div @fadeInOut>\n <button nz-button (click)=\"visibleMenuDrawer = true\">\n <nz-icon nzType=\"menu\" nzTheme=\"outline\" />\n </button>\n </div>\n }\n\n <div class=\"header-logo\" [style.width]=\"!isCollapsed ? siderWidthStorage : '100px'\">\n <div nz-flex nzJustify=\"center\" nzGap=\"small\">\n <img\n *ngIf=\"logoUrl$ | async as url\"\n [src]=\"url\"\n height=\"40px\"\n style=\"position: relative; top: 5px\"\n hideIfError\n />\n @if (!isCollapsed) {\n @if (SYSTEM_NAME) {\n <h2 style=\"color: whitesmoke\">{{ SYSTEM_NAME }}</h2>\n } @else {\n -- o0o --\n }\n }\n </div>\n </div>\n @if (!HEADER_MENU_IN_USE) {\n <box [width]=\"8\"></box>\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\" class=\"breadcrumb-header\"></app-breadcrumb>\n }\n <div *ngIf=\"HEADER_MENU_IN_USE\" [ngStyle]=\"{ width: getHeaderMenuWidth() }\" class=\"header-menu\">\n <div style=\"overflow: auto\">\n <nz-segmented\n [nzOptions]=\"lstHeaderMenuDisplay\"\n [(ngModel)]=\"selectedHeaderMenuDisplay\"\n (nzValueChange)=\"handleValueChangeHeaderMenu($event)\"\n ></nz-segmented>\n </div>\n </div>\n <div #divuser>\n <layout-user></layout-user>\n </div>\n </div>\n </nz-header>\n <nz-layout class=\"body-layout\">\n <nz-sider\n class=\"menu-sidebar\"\n nzCollapsible\n [nzWidth]=\"siderWidth\"\n [nzCollapsedWidth]=\"0\"\n [nzBreakpoint]=\"'md'\"\n [(nzCollapsed)]=\"isCollapsed\"\n [nzTrigger]=\"null\"\n [nzTheme]=\"'dark'\"\n >\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n </div>\n <div class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_LEFT || \"-- o0o --\" }}\n\n <span style=\"float: right\" (click)=\"triggerCollapse()\">\n <nz-icon class=\"trigger\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </span>\n </div>\n </div>\n </nz-sider>\n <nz-layout class=\"main-layout\">\n <nz-content class=\"content\">\n <div class=\"inner-content\">\n @if (HEADER_MENU_IN_USE) {\n <app-breadcrumb [@fadeInOut] nz-col nzFlex=\"auto\"></app-breadcrumb>\n <box [height]=\"8\"></box>\n }\n <router-outlet></router-outlet>\n </div>\n <div nz-row class=\"sider-footer\" style=\"height: 22px\">\n <div nz-col nzFlex=\"auto\" class=\"content-footer text-italic\" style=\"font-size: 0.8em; color: lightgray\">\n {{ SYSTEM_SUB_NAME_RIGHT || \"-- o0o --\" }}\n </div>\n </div>\n <!-- <nz-back-top [nzTarget]=\"'.content'\" [nzVisibilityHeight]=\"500\"></nz-back-top> -->\n </nz-content>\n </nz-layout>\n </nz-layout>\n</nz-layout>\n\n<nz-drawer\n [nzWrapClassName]=\"'same-theme-color menu-drawer'\"\n [nzWidth]=\"350\"\n [nzClosable]=\"false\"\n [(nzVisible)]=\"visibleMenuDrawer\"\n [nzMaskClosable]=\"true\"\n nzPlacement=\"left\"\n nzTitle=\"\"\n (nzOnClose)=\"visibleMenuDrawer = false\"\n>\n <ng-container *nzDrawerContent>\n <div class=\"menu-wapper\">\n @if (MENU_TYPE == 1) {\n <div class=\"nz-tree-wapper in-drawer\">\n <nz-tree\n [nzData]=\"nodes\"\n [nzSearchValue]=\"searchValue\"\n [nzShowLine]=\"true\"\n [nzSelectedKeys]=\"selectedKeys\"\n [nzExpandedKeys]=\"expandedKeys\"\n (nzClick)=\"nzEvent($event)\"\n ></nz-tree>\n </div>\n } @else {\n <div class=\"nz-tree-wapper in-drawer\">\n <ul nz-menu nzTheme=\"light\" nzMode=\"inline\">\n @for (menuLv1 of lstMenu; track menuLv1.App_Menu_Id) {\n @if (menuLv1.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv1.Open\" [nzTitle]=\"menuLv1.Name\" [nzIcon]=\"menuLv1.Icon\">\n @for (menuLv2 of menuLv1.SubMenu; track menuLv2.App_Menu_Id) {\n @if (menuLv2.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv2.Open\" [nzTitle]=\"menuLv2.Name\" [nzIcon]=\"menuLv2.Icon\">\n @for (menuLv3 of menuLv2.SubMenu; track menuLv3.App_Menu_Id) {\n @if (menuLv3.SubMenu) {\n <ul nz-submenu [nzOpen]=\"menuLv3.Open\" [nzTitle]=\"menuLv3.Name\" [nzIcon]=\"menuLv3.Icon\">\n @for (menuLv4 of menuLv3.SubMenu; track menuLv4.App_Menu_Id) {\n @if (menuLv4.SubMenu) {\n <ul\n nz-submenu\n [nzOpen]=\"menuLv4.Open\"\n [nzTitle]=\"menuLv4.Name\"\n [nzIcon]=\"menuLv4.Icon\"\n >\n @for (menuLv5 of menuLv4.SubMenu; track menuLv5.App_Menu_Id) {}\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a\n [routerLink]=\"menuLv4.Url\"\n [innerHTML]=\"menuLv4.Name | highlight: searchValue\"\n ></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv3.Url\" [innerHTML]=\"menuLv3.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv2.Url\" [innerHTML]=\"menuLv2.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n } @else {\n <li nz-menu-item nzMatchRouter>\n <a [routerLink]=\"menuLv1.Url\" [innerHTML]=\"menuLv1.Name | highlight: searchValue\"></a>\n </li>\n }\n }\n </ul>\n </div>\n }\n\n <nz-input-group [nzSuffix]=\"suffixTemplate\" [nzAddOnAfter]=\"afterTemplate\">\n <input nz-input placeholder=\"T\u00ECm menu\" [(ngModel)]=\"searchValue\" />\n </nz-input-group>\n <ng-template #suffixTemplate>\n <span class=\"suffix-wrap\">\n <icon-delete\n class=\"suffix-icon delete\"\n [class.show]=\"searchValue\"\n [size]=\"14\"\n (click)=\"searchValue = ''\"\n ></icon-delete>\n\n <icon-search class=\"suffix-icon search\" [class.show]=\"!searchValue\"></icon-search>\n </span>\n </ng-template>\n <ng-template #afterTemplate>\n <button nz-button (click)=\"triggerCollapse(); this.visibleMenuDrawer = false\">\n <nz-icon *ngIf=\"isCollapsed\" [nzType]=\"isCollapsed ? 'menu-unfold' : 'menu-fold'\" />\n </button>\n </ng-template>\n </div>\n </ng-container>\n</nz-drawer>\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:50px;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%}.header-logo{height:50px;text-align:center;color:var(--theme-text-color);transition:width .3s}.body-layout{display:flex;flex:1;margin-top:50px;height:calc(100vh - 50px);overflow:hidden}.menu-sidebar{width:256px;background:#f0f2f5;overflow-y:auto;min-height:calc(100vh - 50px)}.menu-wapper{min-height:calc(100% - 22px)}.main-layout{display:flex;flex-direction:column;flex:1;overflow:hidden}.content{flex:1;background:#f1f2f5;overflow-x:hidden;overflow-y:auto;height:100%}.inner-content{background:#f1f2f5;min-height:calc(100% - 22px);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 - 104px);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 .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}@keyframes popIn{0%{transform:scale(.5)}70%{transform:scale(1.15)}to{transform:scale(1)}}\n"] }]
|
|
7519
7647
|
}], propDecorators: { divuser: [{
|
|
7520
7648
|
type: ViewChild,
|
|
7521
7649
|
args: ['divuser']
|
|
@@ -7703,7 +7831,7 @@ class LoginComponent extends BaseComponent {
|
|
|
7703
7831
|
.getFileVersion('LOGIN_BACKGROUND')
|
|
7704
7832
|
.pipe(map((res) => `${AppGlobals.apiEndpoint}/api/file/image?code=LOGIN_BACKGROUND&v=${res || ''}`));
|
|
7705
7833
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LoginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7706
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LoginComponent, isStandalone: true, selector: "login", usesInheritance: true, ngImport: i0, template: "<div nz-row nzJustify=\"center\" class=\"login\">\n <div class=\"form-container\">\n <form nz-flex nzVertical=\"true\" nz-form [formGroup]=\"loginForm\" class=\"login-form\" (ngSubmit)=\"dologin()\">\n <div>\n <div style=\"text-align: center\">\n <img *ngIf=\"logoUrl$ | async as url\" width=\"150px\" [src]=\"url\" hideIfError />\n </div>\n <div class=\"form-field\" style=\"text-align: center; margin-bottom: 20px\">\n <h3 style=\"font-weight: bold; font-size: 20px\">{{ SYSTEM_NAME_LOGIN }}</h3>\n </div>\n </div>\n\n <div nz-row [nzJustify]=\"'center'\">\n <div nz-col nzSm=\"24\" nzMd=\"16\">\n <div nz-flex nzVertical=\"true\">\n @if (isOneUserMultiOrgs) {\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"cluster\" nzHasFeedback=\"false\">\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzBorderless]=\"true\"\n [nzSize]=\"'small'\"\n nzPlaceHolder=\"{{ 'ORG' | translate }}\"\n formControlName=\"orgid\"\n class=\"no-error-border\"\n (nzFocus)=\"onFocusOrg()\"\n >\n @for (item of lstOrg; track $index) {\n <nz-option [nzLabel]=\"item.TreeNodeName!\" [nzValue]=\"item.App_Org_Id\"></nz-option>\n }\n </nz-select>\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n }\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"user\">\n <input type=\"text\" nz-input formControlName=\"username\" placeholder=\"{{ 'USERNAME' | translate }}\" />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group\n nzPrefixIcon=\"lock\"\n [nzSuffix]=\"visible ? suffixTemplateHiddenPassword : suffixTemplateShowPassword\"\n >\n <input\n type=\"{{ passwordType }}\"\n nz-input\n formControlName=\"password\"\n placeholder=\"{{ 'PASSWORD' | translate }}\"\n />\n </nz-input-group>\n </nz-form-control>\n <ng-template #suffixTemplateShowPassword>\n <nz-icon\n nzType=\"eye\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'SHOW' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'text'\"\n />\n </ng-template>\n <ng-template #suffixTemplateHiddenPassword>\n <nz-icon\n nzType=\"eye-invisible\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'HIDDEN' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'password'\"\n />\n </ng-template>\n </nz-form-item>\n\n <div nz-flex nzVertical=\"true\" nzGap=\"4px\">\n <button nz-button [nzType]=\"'primary'\" nzBlock [nzLoading]=\"loadingService.isLoading\">\n {{ \"LOGIN\" | translate }}\n </button>\n <!-- \n <nz-form-item nzJustify=\"end\">\n <nz-switch formControlName=\"langSwitch\" class=\"nz-switch-both-active-color\" nzCheckedChildren=\"VN\"\n nzUnCheckedChildren=\"EN\" (ngModelChange)=\"changeLanguage($event)\"></nz-switch>\n </nz-form-item> \n -->\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n\n<img *ngIf=\"bgUrl$ | async as url\" class=\"bg-image\" [src]=\"url\" hideIfError />\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:80vh}.form-container{width:clamp(280px,30vw,420px);box-shadow:0 10px 20px 1px #001a2d59;background-color:#fff;padding:16px}.bg-image{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;object-position:center;z-index:-1;pointer-events:none}::ng-deep .login .ant-select-selector{height:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { 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: NzToolTipModule }, { kind: "directive", type: i11.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: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzSwitchModule }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i6$2.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i6$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "directive", type: HideIfErrorDirective, selector: "img[hideIfError]" }] });
|
|
7834
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: LoginComponent, isStandalone: true, selector: "login", usesInheritance: true, ngImport: i0, template: "<div nz-row nzJustify=\"center\" class=\"login\">\n <div class=\"form-container\">\n <form nz-flex nzVertical=\"true\" nz-form [formGroup]=\"loginForm\" class=\"login-form\" (ngSubmit)=\"dologin()\">\n <div>\n <div style=\"text-align: center\">\n <img *ngIf=\"logoUrl$ | async as url\" width=\"150px\" [src]=\"url\" hideIfError />\n </div>\n <div class=\"form-field\" style=\"text-align: center; margin-bottom: 20px\">\n <h3 style=\"font-weight: bold; font-size: 20px\">{{ SYSTEM_NAME_LOGIN }}</h3>\n </div>\n </div>\n\n <div nz-row [nzJustify]=\"'center'\">\n <div nz-col nzSm=\"24\" nzMd=\"16\">\n <div nz-flex nzVertical=\"true\">\n @if (isOneUserMultiOrgs) {\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"cluster\" nzHasFeedback=\"false\">\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzBorderless]=\"true\"\n [nzSize]=\"'small'\"\n nzPlaceHolder=\"{{ 'ORG' | translate }}\"\n formControlName=\"orgid\"\n class=\"no-error-border\"\n (nzFocus)=\"onFocusOrg()\"\n >\n @for (item of lstOrg; track $index) {\n <nz-option [nzLabel]=\"item.TreeNodeName!\" [nzValue]=\"item.App_Org_Id\"></nz-option>\n }\n </nz-select>\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n }\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"user\">\n <input type=\"text\" nz-input formControlName=\"username\" placeholder=\"{{ 'USERNAME' | translate }}\" />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group\n nzPrefixIcon=\"lock\"\n [nzSuffix]=\"visible ? suffixTemplateHiddenPassword : suffixTemplateShowPassword\"\n >\n <input\n type=\"{{ passwordType }}\"\n nz-input\n formControlName=\"password\"\n placeholder=\"{{ 'PASSWORD' | translate }}\"\n />\n </nz-input-group>\n </nz-form-control>\n <ng-template #suffixTemplateShowPassword>\n <nz-icon\n nzType=\"eye\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'SHOW' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'text'\"\n />\n </ng-template>\n <ng-template #suffixTemplateHiddenPassword>\n <nz-icon\n nzType=\"eye-invisible\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'HIDDEN' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'password'\"\n />\n </ng-template>\n </nz-form-item>\n\n <div nz-flex nzVertical=\"true\" nzGap=\"4px\">\n <button nz-button [nzType]=\"'primary'\" nzBlock [nzLoading]=\"loadingService.isLoading\">\n {{ \"LOGIN\" | translate }}\n </button>\n <!-- \n <nz-form-item nzJustify=\"end\">\n <nz-switch formControlName=\"langSwitch\" class=\"nz-switch-both-active-color\" nzCheckedChildren=\"VN\"\n nzUnCheckedChildren=\"EN\" (ngModelChange)=\"changeLanguage($event)\"></nz-switch>\n </nz-form-item> \n -->\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n\n<img *ngIf=\"bgUrl$ | async as url\" class=\"bg-image\" [src]=\"url\" hideIfError />\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:80vh}.form-container{width:clamp(280px,30vw,420px);box-shadow:0 10px 20px 1px #001a2d59;background-color:#fff;padding:16px;border-radius:8px}.bg-image{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;object-position:center;z-index:-1;pointer-events:none}::ng-deep .login .ant-select-selector{height:auto!important}::ng-deep .login .ant-input-affix-wrapper,::ng-deep .login .ant-btn{border-radius:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: NzFormModule }, { 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: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1$3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i11.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: NzButtonModule }, { kind: "component", type: i8.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4$1.ɵ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: i10.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzSwitchModule }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i14.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i6$2.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i6$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "directive", type: HideIfErrorDirective, selector: "img[hideIfError]" }] });
|
|
7707
7835
|
}
|
|
7708
7836
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: LoginComponent, decorators: [{
|
|
7709
7837
|
type: Component,
|
|
@@ -7721,12 +7849,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
7721
7849
|
NzFlexModule,
|
|
7722
7850
|
NzSelectModule,
|
|
7723
7851
|
HideIfErrorDirective,
|
|
7724
|
-
], template: "<div nz-row nzJustify=\"center\" class=\"login\">\n <div class=\"form-container\">\n <form nz-flex nzVertical=\"true\" nz-form [formGroup]=\"loginForm\" class=\"login-form\" (ngSubmit)=\"dologin()\">\n <div>\n <div style=\"text-align: center\">\n <img *ngIf=\"logoUrl$ | async as url\" width=\"150px\" [src]=\"url\" hideIfError />\n </div>\n <div class=\"form-field\" style=\"text-align: center; margin-bottom: 20px\">\n <h3 style=\"font-weight: bold; font-size: 20px\">{{ SYSTEM_NAME_LOGIN }}</h3>\n </div>\n </div>\n\n <div nz-row [nzJustify]=\"'center'\">\n <div nz-col nzSm=\"24\" nzMd=\"16\">\n <div nz-flex nzVertical=\"true\">\n @if (isOneUserMultiOrgs) {\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"cluster\" nzHasFeedback=\"false\">\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzBorderless]=\"true\"\n [nzSize]=\"'small'\"\n nzPlaceHolder=\"{{ 'ORG' | translate }}\"\n formControlName=\"orgid\"\n class=\"no-error-border\"\n (nzFocus)=\"onFocusOrg()\"\n >\n @for (item of lstOrg; track $index) {\n <nz-option [nzLabel]=\"item.TreeNodeName!\" [nzValue]=\"item.App_Org_Id\"></nz-option>\n }\n </nz-select>\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n }\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"user\">\n <input type=\"text\" nz-input formControlName=\"username\" placeholder=\"{{ 'USERNAME' | translate }}\" />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group\n nzPrefixIcon=\"lock\"\n [nzSuffix]=\"visible ? suffixTemplateHiddenPassword : suffixTemplateShowPassword\"\n >\n <input\n type=\"{{ passwordType }}\"\n nz-input\n formControlName=\"password\"\n placeholder=\"{{ 'PASSWORD' | translate }}\"\n />\n </nz-input-group>\n </nz-form-control>\n <ng-template #suffixTemplateShowPassword>\n <nz-icon\n nzType=\"eye\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'SHOW' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'text'\"\n />\n </ng-template>\n <ng-template #suffixTemplateHiddenPassword>\n <nz-icon\n nzType=\"eye-invisible\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'HIDDEN' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'password'\"\n />\n </ng-template>\n </nz-form-item>\n\n <div nz-flex nzVertical=\"true\" nzGap=\"4px\">\n <button nz-button [nzType]=\"'primary'\" nzBlock [nzLoading]=\"loadingService.isLoading\">\n {{ \"LOGIN\" | translate }}\n </button>\n <!-- \n <nz-form-item nzJustify=\"end\">\n <nz-switch formControlName=\"langSwitch\" class=\"nz-switch-both-active-color\" nzCheckedChildren=\"VN\"\n nzUnCheckedChildren=\"EN\" (ngModelChange)=\"changeLanguage($event)\"></nz-switch>\n </nz-form-item> \n -->\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n\n<img *ngIf=\"bgUrl$ | async as url\" class=\"bg-image\" [src]=\"url\" hideIfError />\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:80vh}.form-container{width:clamp(280px,30vw,420px);box-shadow:0 10px 20px 1px #001a2d59;background-color:#fff;padding:16px}.bg-image{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;object-position:center;z-index:-1;pointer-events:none}::ng-deep .login .ant-select-selector{height:auto!important}\n"] }]
|
|
7852
|
+
], template: "<div nz-row nzJustify=\"center\" class=\"login\">\n <div class=\"form-container\">\n <form nz-flex nzVertical=\"true\" nz-form [formGroup]=\"loginForm\" class=\"login-form\" (ngSubmit)=\"dologin()\">\n <div>\n <div style=\"text-align: center\">\n <img *ngIf=\"logoUrl$ | async as url\" width=\"150px\" [src]=\"url\" hideIfError />\n </div>\n <div class=\"form-field\" style=\"text-align: center; margin-bottom: 20px\">\n <h3 style=\"font-weight: bold; font-size: 20px\">{{ SYSTEM_NAME_LOGIN }}</h3>\n </div>\n </div>\n\n <div nz-row [nzJustify]=\"'center'\">\n <div nz-col nzSm=\"24\" nzMd=\"16\">\n <div nz-flex nzVertical=\"true\">\n @if (isOneUserMultiOrgs) {\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"cluster\" nzHasFeedback=\"false\">\n <nz-select\n nzShowSearch\n nzAllowClear\n [nzBorderless]=\"true\"\n [nzSize]=\"'small'\"\n nzPlaceHolder=\"{{ 'ORG' | translate }}\"\n formControlName=\"orgid\"\n class=\"no-error-border\"\n (nzFocus)=\"onFocusOrg()\"\n >\n @for (item of lstOrg; track $index) {\n <nz-option [nzLabel]=\"item.TreeNodeName!\" [nzValue]=\"item.App_Org_Id\"></nz-option>\n }\n </nz-select>\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n }\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group nzPrefixIcon=\"user\">\n <input type=\"text\" nz-input formControlName=\"username\" placeholder=\"{{ 'USERNAME' | translate }}\" />\n </nz-input-group>\n </nz-form-control>\n </nz-form-item>\n\n <nz-form-item>\n <nz-form-control nzErrorTip=\"{{ 'REQUIRED' | translate }}\">\n <nz-input-group\n nzPrefixIcon=\"lock\"\n [nzSuffix]=\"visible ? suffixTemplateHiddenPassword : suffixTemplateShowPassword\"\n >\n <input\n type=\"{{ passwordType }}\"\n nz-input\n formControlName=\"password\"\n placeholder=\"{{ 'PASSWORD' | translate }}\"\n />\n </nz-input-group>\n </nz-form-control>\n <ng-template #suffixTemplateShowPassword>\n <nz-icon\n nzType=\"eye\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'SHOW' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'text'\"\n />\n </ng-template>\n <ng-template #suffixTemplateHiddenPassword>\n <nz-icon\n nzType=\"eye-invisible\"\n nzTheme=\"outline\"\n nz-tooltip\n nzTooltipTitle=\"{{ 'HIDDEN' | translate }}\"\n nzTooltipPlacement=\"right\"\n (click)=\"visible = !visible; passwordType = 'password'\"\n />\n </ng-template>\n </nz-form-item>\n\n <div nz-flex nzVertical=\"true\" nzGap=\"4px\">\n <button nz-button [nzType]=\"'primary'\" nzBlock [nzLoading]=\"loadingService.isLoading\">\n {{ \"LOGIN\" | translate }}\n </button>\n <!-- \n <nz-form-item nzJustify=\"end\">\n <nz-switch formControlName=\"langSwitch\" class=\"nz-switch-both-active-color\" nzCheckedChildren=\"VN\"\n nzUnCheckedChildren=\"EN\" (ngModelChange)=\"changeLanguage($event)\"></nz-switch>\n </nz-form-item> \n -->\n </div>\n </div>\n </div>\n </div>\n </form>\n </div>\n</div>\n\n<img *ngIf=\"bgUrl$ | async as url\" class=\"bg-image\" [src]=\"url\" hideIfError />\n", styles: [":host{display:flex;justify-content:center;align-items:center;height:80vh}.form-container{width:clamp(280px,30vw,420px);box-shadow:0 10px 20px 1px #001a2d59;background-color:#fff;padding:16px;border-radius:8px}.bg-image{position:fixed;top:0;left:0;width:100vw;height:100vh;object-fit:cover;object-position:center;z-index:-1;pointer-events:none}::ng-deep .login .ant-select-selector{height:auto!important}::ng-deep .login .ant-input-affix-wrapper,::ng-deep .login .ant-btn{border-radius:8px}\n"] }]
|
|
7725
7853
|
}] });
|
|
7726
7854
|
|
|
7727
7855
|
/**
|
|
7728
7856
|
* Generated bundle index. Do not edit.
|
|
7729
7857
|
*/
|
|
7730
7858
|
|
|
7731
|
-
export { ActionRule, ActionRuleLine, AnimatedDigitComponent, AppGlobals, AppStorage, App_Org, AuthGuard, AuthService, AutoFocusDirective, BarGraphComponent, BaseComponent, BaseGuardChangeComponent, BaseOverlayComponent, Box, Breadcrumb, CheckModel, CommonService, DashcardComponent, DateInputParserDirective, DateTimeHelper, DicDomainPipe, DoughnutGraphComponent, DownloadHelper, ENUM_ResponseType, ExpandableSearchComponent, ExtendCheckbox, ExtendDatePicker, ExtendDateRangePicker, ExtendInput, ExtendInputNumber, ExtendPaginationComponent, ExtendSelectComponent, ExtendTableComponent, ExtendTextArea, GlobalSpinnerComponent, GridFilter, H3Icon, HTTPService, Height, HideIfErrorDirective, HighlightPipe, IconAdd, IconDelete, IconEdit, IconSave, IconSearch, IconView, LayoutComponent, LimitWordsPipe, LineGraphComponent, LoadingService, LoginComponent, NoPermission, NotiService, NullIfEmptyDirective, NumberOnlyDirective, OrderOption, PagingData, PagingModel, PdfViewerComponent, ReadMoreProComponent, RouteMonitorService, SessionManagerService, TableHeader, ThemeService, TokenStorage, TranslateKey, URLs$4 as URLs, UnsavedChangesGuard, UpperCaseFirsLetterEachWordDirective, UppercaseDirective, UppercaseFirstLetterDirective, VscService, WF_TemplateActionRef, WF_TransitionRule, WF_TransitionRuleLine, Width, Workflow, WorkflowAction, WorkflowActionEditorOption, WorkflowActionRef, WorkflowEditorComponent, WorkflowEditorOption, WorkflowStage, WorkflowStageEditorOption, XLSXHelper, authInterceptor };
|
|
7859
|
+
export { ActionRule, ActionRuleLine, AnimatedDigitComponent, AppGlobals, AppStorage, App_Org, AuthGuard, AuthService, AutoFocusDirective, BarGraphComponent, BaseComponent, BaseGuardChangeComponent, BaseOverlayComponent, Box, Breadcrumb, CheckModel, CommonService, CustomNotiComponent, CustomNotiService, DashcardComponent, DateInputParserDirective, DateTimeHelper, DicDomainPipe, DoughnutGraphComponent, DownloadHelper, ENUM_ResponseType, ExpandableSearchComponent, ExtendCheckbox, ExtendDatePicker, ExtendDateRangePicker, ExtendInput, ExtendInputNumber, ExtendPaginationComponent, ExtendSelectComponent, ExtendTableComponent, ExtendTextArea, GlobalSpinnerComponent, GridFilter, H3Icon, HTTPService, Height, HideIfErrorDirective, HighlightPipe, IconAdd, IconDelete, IconEdit, IconSave, IconSearch, IconView, LayoutComponent, LimitWordsPipe, LineGraphComponent, LoadingService, LoginComponent, NoPermission, NotiService, NullIfEmptyDirective, NumberOnlyDirective, OrderOption, PagingData, PagingModel, PdfViewerComponent, ReadMoreProComponent, RouteMonitorService, SessionManagerService, TableHeader, ThemeService, TokenStorage, TranslateKey, URLs$4 as URLs, UnsavedChangesGuard, UpperCaseFirsLetterEachWordDirective, UppercaseDirective, UppercaseFirstLetterDirective, VscService, WF_TemplateActionRef, WF_TransitionRule, WF_TransitionRuleLine, Width, Workflow, WorkflowAction, WorkflowActionEditorOption, WorkflowActionRef, WorkflowEditorComponent, WorkflowEditorOption, WorkflowStage, WorkflowStageEditorOption, XLSXHelper, authInterceptor };
|
|
7732
7860
|
//# sourceMappingURL=brggroup-share-lib.mjs.map
|