imm-element-ui 1.4.6 → 1.4.7

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.
@@ -270,7 +270,7 @@ class AmComponent {
270
270
  }
271
271
  //全部创建或更新,根据ID判断
272
272
  web_upsert(param) {
273
- this.loadingService.setLoading(true);
273
+ // this.loadingService.setLoading(true);
274
274
  if (!param.modelName) {
275
275
  param = { modelName: this.modelName, ...param };
276
276
  }
@@ -332,7 +332,7 @@ class AmComponent {
332
332
  }
333
333
  }
334
334
  web_deal(param) {
335
- this.loadingService.setLoading(true);
335
+ // this.loadingService.setLoading(true);
336
336
  return this.http.post(apiPath + 'deal', param).pipe(map((response) => {
337
337
  this.dealPrm = { data: response, ...this.dealPrm };
338
338
  return response;
@@ -350,7 +350,7 @@ class AmComponent {
350
350
  }
351
351
  }
352
352
  web_write(param) {
353
- this.loadingService.setLoading(true);
353
+ // this.loadingService.setLoading(true);
354
354
  if (!param.modelName) {
355
355
  param = { modelName: this.modelName, ...param };
356
356
  }
@@ -373,7 +373,7 @@ class AmComponent {
373
373
  }
374
374
  }
375
375
  web_remove(param) {
376
- this.loadingService.setLoading(true);
376
+ // this.loadingService.setLoading(true);
377
377
  return this.http.post(apiPath + 'remove', param).pipe(map((response) => {
378
378
  if (param.log) {
379
379
  delete param.log;
@@ -396,7 +396,7 @@ class AmComponent {
396
396
  if (!param.hasOwnProperty('modelName')) {
397
397
  param.modelName = this.modelName;
398
398
  }
399
- this.loadingService.setLoading(true);
399
+ // this.loadingService.setLoading(true);
400
400
  return this.http.post(apiPath + 'get', param).pipe(map((response) => {
401
401
  this.getPrm.data = response;
402
402
  if (response.id === 0 && param.hasOwnProperty('foreignKey')) {
@@ -418,7 +418,7 @@ class AmComponent {
418
418
  }
419
419
  }
420
420
  web_search(param) {
421
- this.loadingService.setLoading(true);
421
+ // this.loadingService.setLoading(true);
422
422
  return this.http.post(apiPath + 'search', param).pipe(map((response) => {
423
423
  this.searchPrm = { ...response };
424
424
  console.log('upsey-----', this.upsertPrm);
@@ -436,7 +436,7 @@ class AmComponent {
436
436
  }
437
437
  }
438
438
  web_searchmap(param) {
439
- this.loadingService.setLoading(true);
439
+ // this.loadingService.setLoading(true);
440
440
  return this.http.post(apiPath + 'searchMap', param).pipe(map((response) => {
441
441
  this.searchPrm = { ...response };
442
442
  console.log('upsey-----', this.upsertPrm);
@@ -455,7 +455,7 @@ class AmComponent {
455
455
  }
456
456
  }
457
457
  web_searchCount(param) {
458
- this.loadingService.setLoading(true);
458
+ // this.loadingService.setLoading(true);
459
459
  return this.http.post(apiPath + 'searchCount', param).pipe(map((response) => {
460
460
  this.searchPrm = { ...response };
461
461
  return response;
@@ -498,7 +498,7 @@ class AmComponent {
498
498
  if (!param.modelName) {
499
499
  param = { modelName: this.modelName, ...param };
500
500
  }
501
- this.loadingService.setLoading(true);
501
+ // this.loadingService.setLoading(true);
502
502
  return this.http.post(apiPath + 'export', param, { responseType: 'blob' }).pipe(map((response) => {
503
503
  const data = new Blob([response], {
504
504
  type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
@@ -523,7 +523,7 @@ class AmComponent {
523
523
  if (!param.modelName) {
524
524
  param = { modelName: this.modelName, ...param };
525
525
  }
526
- this.loadingService.setLoading(true);
526
+ // this.loadingService.setLoading(true);
527
527
  return this.http.post(apiPath + 'dealExport', param, { responseType: 'blob' }).pipe(map((response) => {
528
528
  const data = new Blob([response], {
529
529
  type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
@@ -545,7 +545,7 @@ class AmComponent {
545
545
  }
546
546
  }
547
547
  web_downloadTemplate(param) {
548
- this.loadingService.setLoading(true);
548
+ // this.loadingService.setLoading(true);
549
549
  return this.http.post(apiPath + 'download', param, { responseType: 'blob' }).pipe(map((response) => {
550
550
  const data = new Blob([response], {
551
551
  type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
@@ -567,7 +567,7 @@ class AmComponent {
567
567
  }
568
568
  }
569
569
  web_imageDelete(fid) {
570
- this.loadingService.setLoading(true);
570
+ // this.loadingService.setLoading(true);
571
571
  return this.http.post(apiPath + 'imageDelete', fid).pipe(map((response) => {
572
572
  this.messageService.add({ severity: 'success', summary: 'Success', detail: response });
573
573
  return response;
@@ -585,7 +585,7 @@ class AmComponent {
585
585
  }
586
586
  }
587
587
  web_filerDelete(fid) {
588
- this.loadingService.setLoading(true);
588
+ // this.loadingService.setLoading(true);
589
589
  return this.http.post(apiPath + 'imageDelete', fid).pipe(map((response) => {
590
590
  this.messageService.add({ severity: 'success', summary: 'Success', detail: response });
591
591
  return response;
@@ -612,7 +612,7 @@ class AmComponent {
612
612
  }
613
613
  }
614
614
  web_createTable(param) {
615
- this.loadingService.setLoading(true);
615
+ // this.loadingService.setLoading(true);
616
616
  return this.http.post(apiPath + 'createTable', param).pipe(map((response) => {
617
617
  // this.messageService.add({severity: 'success',summary: 'Success',detail: response})
618
618
  return response;
@@ -647,7 +647,7 @@ class AmComponent {
647
647
  }
648
648
  }
649
649
  webDealQuery(param) {
650
- this.loadingService.setLoading(true);
650
+ // this.loadingService.setLoading(true);
651
651
  return this.http.post(apiPath + 'dealQuery', param).pipe(map((response) => {
652
652
  this.dealPrm = { data: response, ...this.dealPrm };
653
653
  return response;
@@ -664,7 +664,7 @@ class AmComponent {
664
664
  }
665
665
  }
666
666
  webDealCustom(param) {
667
- this.loadingService.setLoading(true);
667
+ // this.loadingService.setLoading(true);
668
668
  return this.http.post(apiPath + 'dealCustom', param).pipe(map((response) => {
669
669
  this.dealPrm = { data: response, ...this.dealPrm };
670
670
  return response;
@@ -681,7 +681,7 @@ class AmComponent {
681
681
  }
682
682
  }
683
683
  webDealSubmit(param) {
684
- this.loadingService.setLoading(true);
684
+ // this.loadingService.setLoading(true);
685
685
  return this.http.post(apiPath + 'dealSubmit', param).pipe(map((response) => {
686
686
  this.dealPrm = { data: response, ...this.dealPrm };
687
687
  return response;
@@ -8069,11 +8069,11 @@ class CrumbActionComponent extends AmComponent {
8069
8069
  this.action.saveSignal.set(false);
8070
8070
  }
8071
8071
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrumbActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8072
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CrumbActionComponent, isStandalone: true, selector: "app-crumb-action", inputs: { isShowCog: { classPropertyName: "isShowCog", publicName: "isShowCog", isSignal: true, isRequired: false, transformFunction: null }, addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, importVisible: { classPropertyName: "importVisible", publicName: "importVisible", isSignal: true, isRequired: false, transformFunction: null }, exportVisible: { classPropertyName: "exportVisible", publicName: "exportVisible", isSignal: true, isRequired: false, transformFunction: null }, newUrl: { classPropertyName: "newUrl", publicName: "newUrl", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, onExport: { classPropertyName: "onExport", publicName: "onExport", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, saveBtnDisable: { classPropertyName: "saveBtnDisable", publicName: "saveBtnDisable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saveEvent: "saveEvent", cancelEvent: "cancelEvent", actionEvent: "actionEvent" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "newBtnTemplateRef", first: true, predicate: ["newBtn"] }], viewQueries: [{ propertyName: "op", first: true, predicate: ["op"], descendants: true }, { propertyName: "listOp", first: true, predicate: ["listOp"], descendants: true }, { propertyName: "actOp", first: true, predicate: ["actOp"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex items-center gap-1\">\n <div class=\"left-btn flex gap-1\">\n <!-- TODO \u6743\u9650\u6570\u636E\u63A5\u5165 -->\n @if(!newBtnTemplateRef){\n @if(this.authLevel() > 2 && addVisible()){\n <p-button (click)=\"goNew()\" [outlined]=\"outlined()\">{{'app.create' | translate}}</p-button>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"newBtnTemplateRef\"></ng-container>\n }\n </div>\n @if(crumbList().length > 0){\n <div class=\"flex flex-col leading-none\">\n <div class=\"hidden md:flex\">\n @if(crumbList().length <= 2){\n @for(fchild of crumbList(); track fchild.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(fchild)\">\n @if(fchild.i18nKey!= ''){\n {{ fchild!.i18nKey | translate}}\n } @else {\n {{fchild.title}}\n }\n </div>\n }\n } @else {\n <div class=\"flex\">\n <div class=\"crumb-title cursor-pointer select-crumb\">\n <div class=\"w-[17px] h-[17px] flex items-center font-bold text-[13px]\" (click)=\"toggle($event)\">\n ...\n </div>\n <p-tieredmenu #op [model]=\"crumbFront\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\">\n <span class=\"ml-2 w-full\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </span>\n </a>\n </ng-template>\n </p-tieredmenu>\n </div>\n @for(item of crumbEnd;track item.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </div>\n }\n </div>\n }\n \n </div>\n <div class=\"min-w-0 text-text-color text-[12px] title-action\">\n <span class=\"hidden md:inline-block max-w-[150px] overflow-hidden text-ellipsis whitespace-nowrap\">{{isNew? 'New':crumbTitle().title}}</span>\n @if(isShowCog()){\n @if(isList()){\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n } @else {\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleAct($event)\"/>\n @if(actionList().length > 0 && showAct){\n <p-tieredmenu #actOp [model]=\"actionList()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple \n class=\"flex items-center p-tieredmenu-item-link\"\n [class]=\"(item.auth || 0) > (authLevel() || 0) || !!item.btnHidden?.(data()) ? 'hidden' : 'block'\" \n (click)=\"actEvent(item)\">\n <span class=\"ml-2\">{{item.i18nKey ? (item.i18nKey | translate) : item.label}}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n }\n }\n @if(this.authLevel() > 2 && !isList()){\n <p-button \n variant=\"text\" \n [severity]=\"setSaveClass()\" \n icon=\"pi pi-cloud-upload\" \n [loading]=\"loading()\"\n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n }\n <!-- @if(crumbList().length >= 2){ -->\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n <!-- } -->\n </div>\n </div>\n } @else {\n <!-- \u521D\u59CB\u8282\u70B9 -->\n <div class=\"min-w-0 flex items-center text-[14px] text-text-color\">\n <span class=\"hidden md:inline-block max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\">\n @if(crumbTitle().i18nKey != ''){\n {{crumbTitle().i18nKey | translate}}\n } @else {\n {{crumbTitle().title}}\n }\n </span>\n @if(isShowCog()){\n <p-button \n variant=\"text\"\n severity=\"secondary\" \n icon=\"pi pi-cog\" \n aria-label=\"\u64CD\u4F5C\" \n (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n \n }\n @if(!isList()){\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-cloud-upload\" \n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n }\n </div>\n }\n \n</div>", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.crumb-title{color:var(--p-primary-color)}.crumb-title+.crumb-title{padding-left:.5rem}.crumb-title+.crumb-title:before{padding-right:.5rem;content:var(--breadcrumb-divider, \"/\")}:host::ng-deep .p-button-text.p-button-secondary{color:var(--p-surface-700)}:host::ng-deep .title-action .p-button{padding:0}:host::ng-deep .new-action .p-button{padding:0}:host::ng-deep .new-action .p-button button{padding-top:2px;height:100%;align-items:center}:host::ng-deep .select-crumb .p-button{padding:0;background-color:#fff;line-height:1}:host::ng-deep .select-crumb .p-button button{padding:0;width:17px;height:17px}:host::ng-deep .p-popover-content{padding:.5rem}:host::ng-deep .left-btn .p-button{height:33px;min-width:51px}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TieredMenu, selector: "p-tieredMenu, p-tieredmenu, p-tiered-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "breakpoint", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }] }); }
8072
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CrumbActionComponent, isStandalone: true, selector: "app-crumb-action", inputs: { isShowCog: { classPropertyName: "isShowCog", publicName: "isShowCog", isSignal: true, isRequired: false, transformFunction: null }, addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, importVisible: { classPropertyName: "importVisible", publicName: "importVisible", isSignal: true, isRequired: false, transformFunction: null }, exportVisible: { classPropertyName: "exportVisible", publicName: "exportVisible", isSignal: true, isRequired: false, transformFunction: null }, newUrl: { classPropertyName: "newUrl", publicName: "newUrl", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, onExport: { classPropertyName: "onExport", publicName: "onExport", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, saveBtnDisable: { classPropertyName: "saveBtnDisable", publicName: "saveBtnDisable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saveEvent: "saveEvent", cancelEvent: "cancelEvent", actionEvent: "actionEvent" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "newBtnTemplateRef", first: true, predicate: ["newBtn"] }], viewQueries: [{ propertyName: "op", first: true, predicate: ["op"], descendants: true }, { propertyName: "listOp", first: true, predicate: ["listOp"], descendants: true }, { propertyName: "actOp", first: true, predicate: ["actOp"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex items-center gap-1\">\n <div class=\"left-btn flex gap-1\">\n <!-- TODO \u6743\u9650\u6570\u636E\u63A5\u5165 -->\n @if(!newBtnTemplateRef){\n @if(this.authLevel() > 2 && addVisible()){\n <p-button (click)=\"goNew()\" [outlined]=\"outlined()\">{{'app.create' | translate}}</p-button>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"newBtnTemplateRef\"></ng-container>\n }\n </div>\n @if(crumbList().length > 0){\n <div class=\"flex flex-col leading-none\">\n <div class=\"hidden md:flex\">\n @if(crumbList().length <= 2){\n @for(fchild of crumbList(); track fchild.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(fchild)\">\n @if(fchild.i18nKey!= ''){\n {{ fchild!.i18nKey | translate}}\n } @else {\n {{fchild.title}}\n }\n </div>\n }\n } @else {\n <div class=\"flex\">\n <div class=\"crumb-title cursor-pointer select-crumb\">\n <div class=\"w-[17px] h-[17px] flex items-center font-bold text-[13px]\" (click)=\"toggle($event)\">\n ...\n </div>\n <p-tieredmenu #op [model]=\"crumbFront\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\">\n <span class=\"ml-2 w-full\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </span>\n </a>\n </ng-template>\n </p-tieredmenu>\n </div>\n @for(item of crumbEnd;track item.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </div>\n }\n </div>\n }\n \n </div>\n <div class=\"min-w-0 text-text-color text-[12px] title-action\">\n <span\n [title]=\"isNew? 'New':crumbTitle().title\" \n class=\"hidden md:inline-block max-w-[150px] overflow-hidden text-ellipsis whitespace-nowrap\">\n {{isNew? 'New':crumbTitle().title}}\n </span>\n @if(isShowCog()){\n @if(isList()){\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n } @else {\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleAct($event)\"/>\n @if(actionList().length > 0 && showAct){\n <p-tieredmenu #actOp [model]=\"actionList()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple \n class=\"flex items-center p-tieredmenu-item-link\"\n [class]=\"(item.auth || 0) > (authLevel() || 0) || !!item.btnHidden?.(data()) ? 'hidden' : 'block'\" \n (click)=\"actEvent(item)\">\n <span class=\"ml-2\">{{item.i18nKey ? (item.i18nKey | translate) : item.label}}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n }\n }\n @if(this.authLevel() > 2 && !isList()){\n <p-button \n variant=\"text\" \n [severity]=\"setSaveClass()\" \n icon=\"pi pi-cloud-upload\" \n [loading]=\"loading()\"\n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n }\n <!-- @if(crumbList().length >= 2){ -->\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n <!-- } -->\n </div>\n </div>\n } @else {\n <!-- \u521D\u59CB\u8282\u70B9 -->\n <div class=\"min-w-0 flex items-center text-[14px] text-text-color\">\n <span class=\"hidden md:inline-block max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\">\n @if(crumbTitle().i18nKey != ''){\n {{crumbTitle().i18nKey | translate}}\n } @else {\n {{crumbTitle().title}}\n }\n </span>\n @if(isShowCog()){\n <p-button \n variant=\"text\"\n severity=\"secondary\" \n icon=\"pi pi-cog\" \n aria-label=\"\u64CD\u4F5C\" \n (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n \n }\n @if(!isList()){\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-cloud-upload\" \n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n }\n </div>\n }\n \n</div>", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.crumb-title{color:var(--p-primary-color)}.crumb-title+.crumb-title{padding-left:.5rem}.crumb-title+.crumb-title:before{padding-right:.5rem;content:var(--breadcrumb-divider, \"/\")}:host::ng-deep .p-button-text.p-button-secondary{color:var(--p-surface-700)}:host::ng-deep .title-action .p-button{padding:0}:host::ng-deep .new-action .p-button{padding:0}:host::ng-deep .new-action .p-button button{padding-top:2px;height:100%;align-items:center}:host::ng-deep .select-crumb .p-button{padding:0;background-color:#fff;line-height:1}:host::ng-deep .select-crumb .p-button button{padding:0;width:17px;height:17px}:host::ng-deep .p-popover-content{padding:.5rem}:host::ng-deep .left-btn .p-button{height:33px;min-width:51px}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TieredMenu, selector: "p-tieredMenu, p-tieredmenu, p-tiered-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "breakpoint", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }] }); }
8073
8073
  }
8074
8074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrumbActionComponent, decorators: [{
8075
8075
  type: Component,
8076
- args: [{ selector: 'app-crumb-action', standalone: true, imports: [ButtonModule, TranslatePipe, CommonModule, TieredMenu], template: "<div class=\"flex items-center gap-1\">\n <div class=\"left-btn flex gap-1\">\n <!-- TODO \u6743\u9650\u6570\u636E\u63A5\u5165 -->\n @if(!newBtnTemplateRef){\n @if(this.authLevel() > 2 && addVisible()){\n <p-button (click)=\"goNew()\" [outlined]=\"outlined()\">{{'app.create' | translate}}</p-button>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"newBtnTemplateRef\"></ng-container>\n }\n </div>\n @if(crumbList().length > 0){\n <div class=\"flex flex-col leading-none\">\n <div class=\"hidden md:flex\">\n @if(crumbList().length <= 2){\n @for(fchild of crumbList(); track fchild.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(fchild)\">\n @if(fchild.i18nKey!= ''){\n {{ fchild!.i18nKey | translate}}\n } @else {\n {{fchild.title}}\n }\n </div>\n }\n } @else {\n <div class=\"flex\">\n <div class=\"crumb-title cursor-pointer select-crumb\">\n <div class=\"w-[17px] h-[17px] flex items-center font-bold text-[13px]\" (click)=\"toggle($event)\">\n ...\n </div>\n <p-tieredmenu #op [model]=\"crumbFront\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\">\n <span class=\"ml-2 w-full\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </span>\n </a>\n </ng-template>\n </p-tieredmenu>\n </div>\n @for(item of crumbEnd;track item.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </div>\n }\n </div>\n }\n \n </div>\n <div class=\"min-w-0 text-text-color text-[12px] title-action\">\n <span class=\"hidden md:inline-block max-w-[150px] overflow-hidden text-ellipsis whitespace-nowrap\">{{isNew? 'New':crumbTitle().title}}</span>\n @if(isShowCog()){\n @if(isList()){\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n } @else {\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleAct($event)\"/>\n @if(actionList().length > 0 && showAct){\n <p-tieredmenu #actOp [model]=\"actionList()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple \n class=\"flex items-center p-tieredmenu-item-link\"\n [class]=\"(item.auth || 0) > (authLevel() || 0) || !!item.btnHidden?.(data()) ? 'hidden' : 'block'\" \n (click)=\"actEvent(item)\">\n <span class=\"ml-2\">{{item.i18nKey ? (item.i18nKey | translate) : item.label}}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n }\n }\n @if(this.authLevel() > 2 && !isList()){\n <p-button \n variant=\"text\" \n [severity]=\"setSaveClass()\" \n icon=\"pi pi-cloud-upload\" \n [loading]=\"loading()\"\n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n }\n <!-- @if(crumbList().length >= 2){ -->\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n <!-- } -->\n </div>\n </div>\n } @else {\n <!-- \u521D\u59CB\u8282\u70B9 -->\n <div class=\"min-w-0 flex items-center text-[14px] text-text-color\">\n <span class=\"hidden md:inline-block max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\">\n @if(crumbTitle().i18nKey != ''){\n {{crumbTitle().i18nKey | translate}}\n } @else {\n {{crumbTitle().title}}\n }\n </span>\n @if(isShowCog()){\n <p-button \n variant=\"text\"\n severity=\"secondary\" \n icon=\"pi pi-cog\" \n aria-label=\"\u64CD\u4F5C\" \n (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n \n }\n @if(!isList()){\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-cloud-upload\" \n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n }\n </div>\n }\n \n</div>", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.crumb-title{color:var(--p-primary-color)}.crumb-title+.crumb-title{padding-left:.5rem}.crumb-title+.crumb-title:before{padding-right:.5rem;content:var(--breadcrumb-divider, \"/\")}:host::ng-deep .p-button-text.p-button-secondary{color:var(--p-surface-700)}:host::ng-deep .title-action .p-button{padding:0}:host::ng-deep .new-action .p-button{padding:0}:host::ng-deep .new-action .p-button button{padding-top:2px;height:100%;align-items:center}:host::ng-deep .select-crumb .p-button{padding:0;background-color:#fff;line-height:1}:host::ng-deep .select-crumb .p-button button{padding:0;width:17px;height:17px}:host::ng-deep .p-popover-content{padding:.5rem}:host::ng-deep .left-btn .p-button{height:33px;min-width:51px}\n"] }]
8076
+ args: [{ selector: 'app-crumb-action', standalone: true, imports: [ButtonModule, TranslatePipe, CommonModule, TieredMenu], template: "<div class=\"flex items-center gap-1\">\n <div class=\"left-btn flex gap-1\">\n <!-- TODO \u6743\u9650\u6570\u636E\u63A5\u5165 -->\n @if(!newBtnTemplateRef){\n @if(this.authLevel() > 2 && addVisible()){\n <p-button (click)=\"goNew()\" [outlined]=\"outlined()\">{{'app.create' | translate}}</p-button>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"newBtnTemplateRef\"></ng-container>\n }\n </div>\n @if(crumbList().length > 0){\n <div class=\"flex flex-col leading-none\">\n <div class=\"hidden md:flex\">\n @if(crumbList().length <= 2){\n @for(fchild of crumbList(); track fchild.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(fchild)\">\n @if(fchild.i18nKey!= ''){\n {{ fchild!.i18nKey | translate}}\n } @else {\n {{fchild.title}}\n }\n </div>\n }\n } @else {\n <div class=\"flex\">\n <div class=\"crumb-title cursor-pointer select-crumb\">\n <div class=\"w-[17px] h-[17px] flex items-center font-bold text-[13px]\" (click)=\"toggle($event)\">\n ...\n </div>\n <p-tieredmenu #op [model]=\"crumbFront\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\">\n <span class=\"ml-2 w-full\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </span>\n </a>\n </ng-template>\n </p-tieredmenu>\n </div>\n @for(item of crumbEnd;track item.url){\n <div class=\"crumb-title cursor-pointer text-[12px] max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\" (click)=\"back(item)\">\n @if(item.i18nKey!= ''){\n {{ item!.i18nKey | translate}}\n } @else {\n {{item.title}}\n }\n </div>\n }\n </div>\n }\n \n </div>\n <div class=\"min-w-0 text-text-color text-[12px] title-action\">\n <span\n [title]=\"isNew? 'New':crumbTitle().title\" \n class=\"hidden md:inline-block max-w-[150px] overflow-hidden text-ellipsis whitespace-nowrap\">\n {{isNew? 'New':crumbTitle().title}}\n </span>\n @if(isShowCog()){\n @if(isList()){\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n } @else {\n <p-button variant=\"text\" severity=\"secondary\" icon=\"pi pi-cog\" aria-label=\"\u64CD\u4F5C\" (onClick)=\"toggleAct($event)\"/>\n @if(actionList().length > 0 && showAct){\n <p-tieredmenu #actOp [model]=\"actionList()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple \n class=\"flex items-center p-tieredmenu-item-link\"\n [class]=\"(item.auth || 0) > (authLevel() || 0) || !!item.btnHidden?.(data()) ? 'hidden' : 'block'\" \n (click)=\"actEvent(item)\">\n <span class=\"ml-2\">{{item.i18nKey ? (item.i18nKey | translate) : item.label}}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n }\n }\n @if(this.authLevel() > 2 && !isList()){\n <p-button \n variant=\"text\" \n [severity]=\"setSaveClass()\" \n icon=\"pi pi-cloud-upload\" \n [loading]=\"loading()\"\n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n }\n <!-- @if(crumbList().length >= 2){ -->\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n <!-- } -->\n </div>\n </div>\n } @else {\n <!-- \u521D\u59CB\u8282\u70B9 -->\n <div class=\"min-w-0 flex items-center text-[14px] text-text-color\">\n <span class=\"hidden md:inline-block max-w-[120px] overflow-hidden whitespace-nowrap text-ellipsis\">\n @if(crumbTitle().i18nKey != ''){\n {{crumbTitle().i18nKey | translate}}\n } @else {\n {{crumbTitle().title}}\n }\n </span>\n @if(isShowCog()){\n <p-button \n variant=\"text\"\n severity=\"secondary\" \n icon=\"pi pi-cog\" \n aria-label=\"\u64CD\u4F5C\" \n (onClick)=\"toggleListOp($event)\"/>\n @if(displayOpItems().length > 0){\n <p-tieredmenu #listOp [model]=\"displayOpItems()\" [popup]=\"true\" [style]=\"{position:'absolute'}\">\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\n <a pRipple class=\"flex items-center p-tieredmenu-item-link\" (click)=\"listAct(item)\">\n <span [class]=\"item.icon\" class=\"p-tieredmenu-item-icon\"></span>\n <span class=\"ml-2\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.shortcut\" class=\"ml-auto border border-surface rounded bg-emphasis text-muted-color text-xs p-1\">\n {{ item.shortcut }}\n </span>\n <i *ngIf=\"hasSubmenu\" class=\"pi pi-angle-right ml-auto\"></i>\n </a>\n </ng-template>\n </p-tieredmenu>\n }\n \n }\n @if(!isList()){\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-cloud-upload\" \n aria-label=\"\u624B\u52A8\u4FDD\u5B58\"\n [disabled]=\"saveBtnDisable()\" \n class=\"p-0\"\n (click)=\"handleSave()\">\n </p-button>\n <p-button \n variant=\"text\" \n severity=\"secondary\" \n icon=\"pi pi-times\" \n aria-label=\"\u5173\u95ED\" \n class=\"p-0\"\n (click)=\"closeNew()\">\n </p-button>\n }\n </div>\n }\n \n</div>", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.crumb-title{color:var(--p-primary-color)}.crumb-title+.crumb-title{padding-left:.5rem}.crumb-title+.crumb-title:before{padding-right:.5rem;content:var(--breadcrumb-divider, \"/\")}:host::ng-deep .p-button-text.p-button-secondary{color:var(--p-surface-700)}:host::ng-deep .title-action .p-button{padding:0}:host::ng-deep .new-action .p-button{padding:0}:host::ng-deep .new-action .p-button button{padding-top:2px;height:100%;align-items:center}:host::ng-deep .select-crumb .p-button{padding:0;background-color:#fff;line-height:1}:host::ng-deep .select-crumb .p-button button{padding:0;width:17px;height:17px}:host::ng-deep .p-popover-content{padding:.5rem}:host::ng-deep .left-btn .p-button{height:33px;min-width:51px}\n"] }]
8077
8077
  }], ctorParameters: () => [], propDecorators: { op: [{
8078
8078
  type: ViewChild,
8079
8079
  args: ['op']
@@ -8463,13 +8463,16 @@ class StepsComponent {
8463
8463
  this.startSteps = [];
8464
8464
  this.endSteps = [];
8465
8465
  this.maxWidth = 0;
8466
- this.visible = true;
8467
8466
  effect(() => {
8468
8467
  let current = this.current();
8469
8468
  if (current != 0 && this.steps().length > 0) {
8470
8469
  this.refreshSteps();
8471
8470
  }
8472
8471
  }, { allowSignalWrites: true });
8472
+ effect(() => {
8473
+ this.calcMaxWidth();
8474
+ this.refreshSteps();
8475
+ }, { allowSignalWrites: true });
8473
8476
  const steps$ = toObservable(this.steps).subscribe((steps) => {
8474
8477
  if (steps === undefined)
8475
8478
  return;
@@ -8477,15 +8480,6 @@ class StepsComponent {
8477
8480
  steps$.unsubscribe();
8478
8481
  });
8479
8482
  }
8480
- ngAfterViewInit() {
8481
- this.i18n.change.subscribe((res) => {
8482
- this.visible = false;
8483
- setTimeout(() => {
8484
- this.visible = true;
8485
- this.initSteps();
8486
- }, 100);
8487
- });
8488
- }
8489
8483
  initSteps() {
8490
8484
  this.calcMaxWidth();
8491
8485
  this.initWidthList();
@@ -8520,7 +8514,7 @@ class StepsComponent {
8520
8514
  this.maxWidth = window.innerWidth * 0.64;
8521
8515
  return;
8522
8516
  }
8523
- const centerWidth = window.innerWidth < 1024 ? window.innerWidth - 400 : window.innerWidth - 300;
8517
+ const centerWidth = window.innerWidth < 1024 ? window.innerWidth - 300 : window.innerWidth - 400;
8524
8518
  this.maxWidth = centerWidth * 0.64;
8525
8519
  }
8526
8520
  showStartSteps(event, startOp) {
@@ -8605,6 +8599,7 @@ class StepsComponent {
8605
8599
  }
8606
8600
  totalWidth += this.startIndex === 0 ? 0 : this.START_BUTTON_WIDTH;
8607
8601
  totalWidth += this.endIndex === this.widthList.length - 1 ? 0 : this.END_BUTTON_WIDTH;
8602
+ console.log('----------------totalWidth', totalWidth, this.maxWidth);
8608
8603
  return totalWidth >= this.maxWidth;
8609
8604
  }
8610
8605
  handleSteps() {
@@ -8633,11 +8628,11 @@ class StepsComponent {
8633
8628
  this.excludeValues.set(excludeValues);
8634
8629
  }
8635
8630
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
8636
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "@if (visible) {\r\n\t<div\r\n\t\t#container\r\n\t\tclass=\"flex my-1 w-full justify-end\">\r\n\t\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t\t@if (st.value === 'start') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#startItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#startOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else if (st.value === 'end') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#endItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#endOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t}\r\n\t</div>\r\n}\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1$9.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i1$8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
8631
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: StepsComponent, isStandalone: true, selector: "custom-steps", inputs: { modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, needSelfAdjusting: { classPropertyName: "needSelfAdjusting", publicName: "needSelfAdjusting", isSignal: true, isRequired: false, transformFunction: null }, steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, isClick: { classPropertyName: "isClick", publicName: "isClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ListboxModule }, { kind: "component", type: i1$9.Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "style", "styleClass", "listStyle", "listStyleClass", "readonly", "disabled", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad"] }, { kind: "directive", type: i1$8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
8637
8632
  }
8638
8633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
8639
8634
  type: Component,
8640
- args: [{ selector: 'custom-steps', standalone: true, imports: [FormsModule, ListboxModule, Popover], template: "@if (visible) {\r\n\t<div\r\n\t\t#container\r\n\t\tclass=\"flex my-1 w-full justify-end\">\r\n\t\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t\t@if (st.value === 'start') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#startItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#startOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else if (st.value === 'end') {\r\n\t\t\t\t<div\r\n\t\t\t\t\t#endItem\r\n\t\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t\t<span>...</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p-popover\r\n\t\t\t\t\t#endOp\r\n\t\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t\t<p-listbox\r\n\t\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</p-listbox>\r\n\t\t\t\t</p-popover>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t}\r\n\t</div>\r\n}\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"] }]
8635
+ args: [{ selector: 'custom-steps', standalone: true, imports: [FormsModule, ListboxModule, Popover], template: "<div\r\n\t#container\r\n\tclass=\"flex my-1 w-full justify-end\">\r\n\t@for (st of displaySteps(); track st; let i = $index) {\r\n\t\t@if (st.value === 'start') {\r\n\t\t\t<div\r\n\t\t\t\t#startItem\r\n\t\t\t\t[class]=\"getClass(i, ['start-item'])\"\r\n\t\t\t\t(click)=\"showStartSteps($event, startOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#startOp\r\n\t\t\t\t[styleClass]=\"'pop-steps start-steps'\"\r\n\t\t\t\t[appendTo]=\"startItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"startSteps\"\r\n\t\t\t\t\t(onChange)=\"onStartStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else if (st.value === 'end') {\r\n\t\t\t<div\r\n\t\t\t\t#endItem\r\n\t\t\t\t[class]=\"getClass(i, ['end-item'])\"\r\n\t\t\t\t(click)=\"showEndSteps($event, endOp)\">\r\n\t\t\t\t<span>...</span>\r\n\t\t\t</div>\r\n\t\t\t<p-popover\r\n\t\t\t\t#endOp\r\n\t\t\t\t[styleClass]=\"'pop-steps end-steps'\"\r\n\t\t\t\t[appendTo]=\"endItem\">\r\n\t\t\t\t<p-listbox\r\n\t\t\t\t\t[options]=\"endSteps\"\r\n\t\t\t\t\t(onChange)=\"onEndStepsChange($event)\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\tclass=\"w-full md:w-56\">\r\n\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\tlet-country\r\n\t\t\t\t\t\tpTemplate=\"item\">\r\n\t\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t\t<div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-listbox>\r\n\t\t\t</p-popover>\r\n\t\t} @else {\r\n\t\t\t<div\r\n\t\t\t\t[class]=\"getClass(i, [])\"\r\n\t\t\t\t(click)=\"changeStatus(st)\">\r\n\t\t\t\t<span>{{ st.i18nKey ? i18n.fanyi(st.i18nKey) : st.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n</div>\r\n", styles: ["::ng-deep .pop-steps.p-popover.p-popover-flipped:before{display:none}::ng-deep .pop-steps.p-popover.p-popover-flipped:after{display:none}::ng-deep .pop-steps.p-popover:before{display:none}::ng-deep .pop-steps.p-popover:after{display:none}::ng-deep .pop-steps.p-popover-flipped{margin-top:-5px}::ng-deep .pop-steps .p-popover-content{padding:0}::ng-deep .end-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:auto!important;right:0!important;top:100%!important;min-width:125px}::ng-deep .start-steps.p-popover{margin-top:2.5px;z-index:999;position:absolute!important;left:0!important;right:auto!important;top:100%!important;min-width:125px}.step-item{position:relative;height:32px;padding:0 5px;background-color:#e7e9ed}.step-item span{color:#334155c2;white-space:nowrap}.step-item.step-first{padding-left:15px}.step-item.step-last{padding-right:15px}.step-item:not(.step-first){border-left:15px solid transparent;margin-left:2px}.step-item:not(.step-first):before{content:\"\";position:absolute;top:0;left:-15px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid white}.step-item:not(.step-last):after{content:\"\";position:absolute;top:0;right:-12px;width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:12px solid #e7e9ed;z-index:2}.step-item.step-active{background-color:var(--p-primary-200)}.step-item.step-active span{color:#334155}.step-item.step-active:after{border-left:12px solid var(--p-primary-200)}\n"] }]
8641
8636
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { containerRef: [{
8642
8637
  type: ViewChild,
8643
8638
  args: ['container', { static: false }]
@@ -8778,6 +8773,7 @@ class PageFormComponent extends AmComponent {
8778
8773
  this.gridDisable = false;
8779
8774
  this.selectionKeys = [];
8780
8775
  this.subDeleteIds = [];
8776
+ this.stepsVisible = true;
8781
8777
  this.id = Number(this.route.snapshot.paramMap.get('id'));
8782
8778
  this.pageUrl = this.route.snapshot.url
8783
8779
  .map((segment) => segment.path)
@@ -8824,6 +8820,14 @@ class PageFormComponent extends AmComponent {
8824
8820
  ngOnInit() {
8825
8821
  this.upCb = this.upCb.bind(this);
8826
8822
  }
8823
+ ngAfterViewInit() {
8824
+ this.i18n.change.subscribe((res) => {
8825
+ this.stepsVisible = false;
8826
+ setTimeout(() => {
8827
+ this.stepsVisible = true;
8828
+ }, 100);
8829
+ });
8830
+ }
8827
8831
  submitForm() {
8828
8832
  // this.tabForm.validate()
8829
8833
  console.log('getPrm------', this.getPrm);
@@ -9166,7 +9170,7 @@ class PageFormComponent extends AmComponent {
9166
9170
  this.sidebarMode.set(this.sidebarMode() === 'left' ? 'right' : 'left');
9167
9171
  }
9168
9172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + (sidebarMode())\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data,action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
9173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize($event)" } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + (sidebarMode())\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data,action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if(stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$2.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$2.TabList, selector: "p-tablist" }, { kind: "component", type: i3$2.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
9170
9174
  }
9171
9175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
9172
9176
  type: Component,
@@ -9182,7 +9186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
9182
9186
  RowSelectorComponent$1,
9183
9187
  TranslatePipe,
9184
9188
  HrefBtnListComponent,
9185
- ], providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + (sidebarMode())\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data,action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
9189
+ ], providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"lg:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[configNewPath]=\"configNewPath()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3 flex flex-row-reverse\">\n\t\t\t@if (modelLog()) {\n\t\t\t\t<div class=\"hidden md:block\">\n\t\t\t\t\t<span\n\t\t\t\t\t\t[class]=\"'iconfont icon-sidebar icon-sidebar-' + (sidebarMode())\"\n\t\t\t\t\t\t(click)=\"toggleLog()\"></span>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[loading]=\"action.loading\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data,action)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t@if(stepsVisible) {\n\t\t\t\t\t<custom-steps\n\t\t\t\t\t\t#customSteps\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t\t[modelLog]=\"showLog()\"\n\t\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t\t</custom-steps>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"lg:w-[400px] md:w-[300px] hidden md:block\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap\">\n\t\t<div class=\"w-full md:flex-1 md:h-full md:overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\"\n\t\t\t\t\t\t\t[addSort]=\"grid.addSort\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (showLog()) {\n\t\t\t<div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\"\n\t(cancelSelect)=\"onCancelSelected($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
9186
9190
  }], ctorParameters: () => [], propDecorators: { cForm: [{
9187
9191
  type: ViewChild,
9188
9192
  args: ['cForm']