imm-element-ui 1.4.5 → 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;
@@ -3151,14 +3151,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3151
3151
  }] } });
3152
3152
 
3153
3153
  class UploadComponent {
3154
- constructor(http, action, renderer) {
3154
+ constructor(http, action, renderer, datePipe) {
3155
3155
  this.http = http;
3156
3156
  this.action = action;
3157
3157
  this.renderer = renderer;
3158
+ this.datePipe = datePipe;
3158
3159
  this.field = input();
3159
3160
  this.props = {};
3160
3161
  this.fileList = [];
3161
3162
  this.deleteHooks = [];
3163
+ this.loading = false;
3164
+ this.counter = 0;
3162
3165
  effect(() => {
3163
3166
  if (this.field()) {
3164
3167
  this.props = this.field().uploadProps;
@@ -3206,9 +3209,19 @@ class UploadComponent {
3206
3209
  return this.http.post('filerDelete', { fileName: fileStr });
3207
3210
  }
3208
3211
  uploadHandler(field, event, fu) {
3209
- this.uploadFile(event.files[0]).subscribe((response) => {
3210
- this.fileList?.push(response.body.fileName);
3211
- this.field()?.fieldControl?.setValue(this.fileList);
3212
+ this.initLoading(event.files.length);
3213
+ event.files.forEach((v) => {
3214
+ this.uploadFile(v).subscribe({
3215
+ next: (response) => {
3216
+ this.updateLoading(fu);
3217
+ this.fileList?.push(response.body.fid);
3218
+ this.field()?.fieldControl?.setValue(this.fileList);
3219
+ },
3220
+ error: (error) => {
3221
+ this.initLoading(0);
3222
+ console.error(error);
3223
+ },
3224
+ });
3212
3225
  });
3213
3226
  }
3214
3227
  deleteHandler(fileStr, index) {
@@ -3237,7 +3250,23 @@ class UploadComponent {
3237
3250
  this.field().fieldControl.disable({ emitEvent: false });
3238
3251
  }
3239
3252
  }
3240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1$4.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3253
+ initLoading(counter) {
3254
+ this.counter = counter;
3255
+ if (counter == 0) {
3256
+ this.loading = false;
3257
+ return;
3258
+ }
3259
+ this.loading = true;
3260
+ }
3261
+ updateLoading(fu) {
3262
+ this.counter--;
3263
+ console.log('----counter', this.counter);
3264
+ if (this.counter === 0) {
3265
+ this.loading = false;
3266
+ fu.clear();
3267
+ }
3268
+ }
3269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1$4.HttpClient }, { token: ActionService }, { token: i0.Renderer2 }, { token: i1$3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
3241
3270
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "form-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "uploadCompRef", first: true, predicate: ["uploadComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
3242
3271
  #fu
3243
3272
  auto
@@ -3274,8 +3303,8 @@ class UploadComponent {
3274
3303
  <span
3275
3304
  ><span
3276
3305
  style="font-size: 12px; margin-right: 2.5px"
3277
- class="pi pi-upload"></span
3278
- >上传</span
3306
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
3307
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
3279
3308
  >
3280
3309
  </div>
3281
3310
  </ng-template>
@@ -3303,11 +3332,11 @@ class UploadComponent {
3303
3332
  }
3304
3333
  </ng-template>
3305
3334
  <ng-template #file> </ng-template>
3306
- </p-fileUpload>`, isInline: true, 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}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { 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 }] }); }
3335
+ </p-fileUpload>`, isInline: true, 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}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { 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: "pipe", type: TranslatePipe, name: "translate" }] }); }
3307
3336
  }
3308
3337
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
3309
3338
  type: Component,
3310
- args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
3339
+ args: [{ selector: 'form-upload', standalone: true, imports: [FileUpload, ButtonModule, ReactiveFormsModule, TranslatePipe], template: `<p-fileUpload
3311
3340
  #fu
3312
3341
  auto
3313
3342
  [id]="field()?.uuid"
@@ -3343,8 +3372,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3343
3372
  <span
3344
3373
  ><span
3345
3374
  style="font-size: 12px; margin-right: 2.5px"
3346
- class="pi pi-upload"></span
3347
- >上传</span
3375
+ [class]="'pi' + (loading ? ' pi-spin pi-spinner' : ' pi-upload')"></span
3376
+ >{{ (loading ? 'modal.uploading' : 'modal.selectFile') | translate }}</span
3348
3377
  >
3349
3378
  </div>
3350
3379
  </ng-template>
@@ -3373,7 +3402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3373
3402
  </ng-template>
3374
3403
  <ng-template #file> </ng-template>
3375
3404
  </p-fileUpload>`, 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}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px}.file-name:hover{cursor:pointer;color:var(--p-primary-color)}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}\n"] }]
3376
- }], ctorParameters: () => [{ type: i1$4.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }], propDecorators: { uploadCompRef: [{
3405
+ }], ctorParameters: () => [{ type: i1$4.HttpClient }, { type: ActionService }, { type: i0.Renderer2 }, { type: i1$3.DatePipe }], propDecorators: { uploadCompRef: [{
3377
3406
  type: ViewChild,
3378
3407
  args: ['uploadComp', { read: ElementRef, static: false }]
3379
3408
  }] } });
@@ -3390,9 +3419,12 @@ class ImageComponent {
3390
3419
  this.deleteHooks = [];
3391
3420
  this.loading = false;
3392
3421
  this.counter = 0;
3422
+ this.imageWidth = 0;
3423
+ this.imageHeight = 0;
3393
3424
  effect(() => {
3394
3425
  if (this.field()) {
3395
3426
  this.props = this.field().imageProps;
3427
+ this.initImageSize();
3396
3428
  this.handleDisabled();
3397
3429
  this.handleHookChange();
3398
3430
  this.afterSubmit();
@@ -3420,6 +3452,16 @@ class ImageComponent {
3420
3452
  }
3421
3453
  callback();
3422
3454
  }
3455
+ initImageSize() {
3456
+ if (this.props.size !== 'small') {
3457
+ this.imageWidth = 75;
3458
+ this.imageHeight = 100;
3459
+ }
3460
+ else {
3461
+ this.imageWidth = 35;
3462
+ this.imageHeight = 35;
3463
+ }
3464
+ }
3423
3465
  uploadImage(file) {
3424
3466
  const formData = new FormData();
3425
3467
  formData.append('file', file);
@@ -3502,7 +3544,8 @@ class ImageComponent {
3502
3544
  reader.readAsDataURL(imageFile);
3503
3545
  });
3504
3546
  }
3505
- deleteHandler(image, index) {
3547
+ deleteHandler(event, image, index) {
3548
+ event.stopPropagation();
3506
3549
  this.deleteHooks.push(this.delImage(image));
3507
3550
  this.imageList = this.imageList?.filter((value, i) => index != i);
3508
3551
  this.field()?.fieldControl?.setValue(this.imageList);
@@ -3550,7 +3593,6 @@ class ImageComponent {
3550
3593
  }
3551
3594
  updateLoading(fu) {
3552
3595
  this.counter--;
3553
- console.log('----counter', this.counter);
3554
3596
  if (this.counter === 0) {
3555
3597
  this.loading = false;
3556
3598
  fu.clear();
@@ -3619,39 +3661,37 @@ class ImageComponent {
3619
3661
  icon="pi pi-times"
3620
3662
  severity="danger"
3621
3663
  size="small"
3622
- (onClick)="deleteHandler(image, index)"
3664
+ (onClick)="deleteHandler($event, image, index)"
3623
3665
  [text]="true" />
3624
3666
  }
3625
3667
  </div>
3626
3668
  }
3627
3669
  } @else {
3628
- <div class="flex gap-2 mt-2">
3670
+ <div class="flex gap-2 mt-1 flex-wrap">
3629
3671
  @for (image of imageList; track image; let index = $index) {
3630
- <div class="border">
3631
- @if (!field()?.fieldControl?.disabled) {
3632
- <div class="flex flex-row-reverse">
3633
- <p-button
3634
- icon="pi pi-times"
3635
- severity="danger"
3636
- size="small"
3637
- (onClick)="deleteHandler(image, index)"
3638
- [text]="true" />
3639
- </div>
3640
- }
3672
+ <div [class]="'border h-[' + (imageHeight + 15) + 'px]'">
3641
3673
  <p-image
3642
3674
  [src]="'https://hrimage.myfoodiepet.com//' + image"
3643
3675
  [preview]="true"
3644
3676
  (onShow)="ajustedImage($event)"
3645
3677
  alt="Image">
3646
3678
  <ng-template #indicator>
3647
- <i class="pi pi-search"></i>
3679
+ @if (!field()?.fieldControl?.disabled) {
3680
+ <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
3681
+ <div
3682
+ style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
3683
+ (click)="deleteHandler($event, image, index)">
3684
+ <i class="pi pi-times text-[12px]"></i>
3685
+ </div>
3686
+ </div>
3687
+ }
3648
3688
  </ng-template>
3649
3689
  <ng-template #image>
3650
3690
  <div class="p-2">
3651
3691
  <img
3652
3692
  [src]="'https://hrimage.myfoodiepet.com//' + image"
3653
3693
  alt="image"
3654
- style="width: 85px; height: 100px; object-fit: cover" />
3694
+ [style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
3655
3695
  </div>
3656
3696
  </ng-template>
3657
3697
  </p-image>
@@ -3728,39 +3768,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3728
3768
  icon="pi pi-times"
3729
3769
  severity="danger"
3730
3770
  size="small"
3731
- (onClick)="deleteHandler(image, index)"
3771
+ (onClick)="deleteHandler($event, image, index)"
3732
3772
  [text]="true" />
3733
3773
  }
3734
3774
  </div>
3735
3775
  }
3736
3776
  } @else {
3737
- <div class="flex gap-2 mt-2">
3777
+ <div class="flex gap-2 mt-1 flex-wrap">
3738
3778
  @for (image of imageList; track image; let index = $index) {
3739
- <div class="border">
3740
- @if (!field()?.fieldControl?.disabled) {
3741
- <div class="flex flex-row-reverse">
3742
- <p-button
3743
- icon="pi pi-times"
3744
- severity="danger"
3745
- size="small"
3746
- (onClick)="deleteHandler(image, index)"
3747
- [text]="true" />
3748
- </div>
3749
- }
3779
+ <div [class]="'border h-[' + (imageHeight + 15) + 'px]'">
3750
3780
  <p-image
3751
3781
  [src]="'https://hrimage.myfoodiepet.com//' + image"
3752
3782
  [preview]="true"
3753
3783
  (onShow)="ajustedImage($event)"
3754
3784
  alt="Image">
3755
3785
  <ng-template #indicator>
3756
- <i class="pi pi-search"></i>
3786
+ @if (!field()?.fieldControl?.disabled) {
3787
+ <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
3788
+ <div
3789
+ style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
3790
+ (click)="deleteHandler($event, image, index)">
3791
+ <i class="pi pi-times text-[12px]"></i>
3792
+ </div>
3793
+ </div>
3794
+ }
3757
3795
  </ng-template>
3758
3796
  <ng-template #image>
3759
3797
  <div class="p-2">
3760
3798
  <img
3761
3799
  [src]="'https://hrimage.myfoodiepet.com//' + image"
3762
3800
  alt="image"
3763
- style="width: 85px; height: 100px; object-fit: cover" />
3801
+ [style]="{ width: imageWidth + 'px', height: imageHeight + 'px', objectFit: 'cover' }" />
3764
3802
  </div>
3765
3803
  </ng-template>
3766
3804
  </p-image>
@@ -8031,11 +8069,11 @@ class CrumbActionComponent extends AmComponent {
8031
8069
  this.action.saveSignal.set(false);
8032
8070
  }
8033
8071
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrumbActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8034
- 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"] }] }); }
8035
8073
  }
8036
8074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CrumbActionComponent, decorators: [{
8037
8075
  type: Component,
8038
- 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"] }]
8039
8077
  }], ctorParameters: () => [], propDecorators: { op: [{
8040
8078
  type: ViewChild,
8041
8079
  args: ['op']
@@ -8431,6 +8469,10 @@ class StepsComponent {
8431
8469
  this.refreshSteps();
8432
8470
  }
8433
8471
  }, { allowSignalWrites: true });
8472
+ effect(() => {
8473
+ this.calcMaxWidth();
8474
+ this.refreshSteps();
8475
+ }, { allowSignalWrites: true });
8434
8476
  const steps$ = toObservable(this.steps).subscribe((steps) => {
8435
8477
  if (steps === undefined)
8436
8478
  return;
@@ -8472,7 +8514,7 @@ class StepsComponent {
8472
8514
  this.maxWidth = window.innerWidth * 0.64;
8473
8515
  return;
8474
8516
  }
8475
- const centerWidth = window.innerWidth < 1024 ? window.innerWidth - 400 : window.innerWidth - 300;
8517
+ const centerWidth = window.innerWidth < 1024 ? window.innerWidth - 300 : window.innerWidth - 400;
8476
8518
  this.maxWidth = centerWidth * 0.64;
8477
8519
  }
8478
8520
  showStartSteps(event, startOp) {
@@ -8557,6 +8599,7 @@ class StepsComponent {
8557
8599
  }
8558
8600
  totalWidth += this.startIndex === 0 ? 0 : this.START_BUTTON_WIDTH;
8559
8601
  totalWidth += this.endIndex === this.widthList.length - 1 ? 0 : this.END_BUTTON_WIDTH;
8602
+ console.log('----------------totalWidth', totalWidth, this.maxWidth);
8560
8603
  return totalWidth >= this.maxWidth;
8561
8604
  }
8562
8605
  handleSteps() {
@@ -8585,11 +8628,11 @@ class StepsComponent {
8585
8628
  this.excludeValues.set(excludeValues);
8586
8629
  }
8587
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 }); }
8588
- 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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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"] }] }); }
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"] }] }); }
8589
8632
  }
8590
8633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StepsComponent, decorators: [{
8591
8634
  type: Component,
8592
- 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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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 let-country pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <div>{{ country.i18nKey ? i18n.fanyi(country.i18nKey) : country.label }}</div>\r\n </div>\r\n </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"] }]
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"] }]
8593
8636
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { containerRef: [{
8594
8637
  type: ViewChild,
8595
8638
  args: ['container', { static: false }]
@@ -8672,11 +8715,11 @@ class HrefBtnListComponent {
8672
8715
  this.hrefClick.emit(btn);
8673
8716
  }
8674
8717
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8675
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HrefBtnListComponent, isStandalone: true, selector: "href-btn-list", inputs: { hrefs: { classPropertyName: "hrefs", publicName: "hrefs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hrefClick: "hrefClick" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "op", first: true, predicate: ["moreOp"], descendants: true }, { propertyName: "btnItem", predicate: ["btnItem"], descendants: true }], ngImport: i0, template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n<button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n</button>\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { 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"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i1$a.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
8718
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: HrefBtnListComponent, isStandalone: true, selector: "href-btn-list", inputs: { hrefs: { classPropertyName: "hrefs", publicName: "hrefs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hrefClick: "hrefClick" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "op", first: true, predicate: ["moreOp"], descendants: true }, { propertyName: "btnItem", predicate: ["btnItem"], descendants: true }], ngImport: i0, template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n@if(hrefs().length > 0){\r\n <button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n </button>\r\n}\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { 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"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i1$a.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
8676
8719
  }
8677
8720
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, decorators: [{
8678
8721
  type: Component,
8679
- args: [{ selector: 'href-btn-list', standalone: true, imports: [TranslatePipe, TieredMenu, StyleClassModule], template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n<button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n</button>\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"] }]
8722
+ args: [{ selector: 'href-btn-list', standalone: true, imports: [TranslatePipe, TieredMenu, StyleClassModule], template: "<div class=\"hidden max-w-full md:flex\" #container style=\"max-width: 100%;\">\r\n @for(item of fillList();track item){\r\n <button \r\n #btnItem\r\n [attr.data-type]=\"'href'\"\r\n [class.first-btn]=\"$first\"\r\n [class.last-btn]=\"$last && !showMore\"\r\n class=\"flex px-[10px] h-[33px] btn items-center min-w-[85px] shrink-0 box-border not-first\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n @if(showMore){\r\n <button\r\n [attr.data-type]=\"'more'\" \r\n class=\"flex px-[10px] h-[33px] flex-grow-1 lg:flex-grow-0 btn items-center w-auto gap-[4px] last-btn ml-[-1px]\" \r\n (click)=\"toggleMore($event)\">\r\n <div class=\"text-[14px] whitespace-nowrap\">\u66F4\u591A</div>\r\n <i class=\"pi text-[14px] mr-[4px]\" [class]=\"iconClass()\"></i>\r\n </button>\r\n <p-tieredmenu #moreOp [model]=\"moreBtns()\" [popup]=\"true\" [style]=\"{position:'absolute'}\" (onHide)=\"hide()\">\r\n <ng-template #item let-item let-hasSubmenu=\"hasSubmenu\">\r\n <button \r\n class=\"flex py-[8px] pl-[10px] h-[33px] items-center min-w-[85px] shrink-0\"\r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n </ng-template>\r\n </p-tieredmenu>\r\n }\r\n</div>\r\n@if(hrefs().length > 0){\r\n <button class=\"md:hidden flex h-[33px] items-center justify-center btn p-[10px]\"\r\n enterActiveClass=\"animate-scalein\" \r\n enterFromClass=\"hidden\" \r\n leaveActiveClass=\"animate-fadeout\" \r\n leaveToClass=\"hidden\"\r\n pStyleClass=\"@next\" \r\n [hideOnOutsideClick]=\"true\">\r\n <i class=\"pi pi-bolt text-14px\"></i>\r\n </button>\r\n}\r\n<div class=\"hidden md:hidden absolute z-[9999] panel-box\">\r\n <div class=\"flex flex-wrap\">\r\n @for(item of hrefs();track item){\r\n <button \r\n class=\"flex w-[50%] px-[10px] h-[33px] panel-btn items-center min-w-[85px] shrink-1 rounded-none icon-color\" \r\n (click)=\"btnClick(item)\">\r\n <i class=\"pi text-[22px] mr-[4px] txt-color\" [class]=\"item.icon\"></i>\r\n <div class=\"flex flex-col text-[12px] \" style=\"line-height: 1;font-weight: 400;\">\r\n <div class=\"ml-[4px] text-left max-w-full\">\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 \">\r\n {{item.i18nKey ? (item.i18nKey | translate) : item.label}}\r\n </span>\r\n <span class=\"block whitespace-nowrap overflow-hidden text-ellipsis m-0 p-0 txt-color\">\r\n @if(item.hasOwnProperty('value')){\r\n <span>{{item.value || 0}}</span>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n", styles: [".btn{border:1px solid rgb(216,218,221);color:var(--ag-text-color);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-1px}.bg{background-color:#e6f2f3}.panel-box{width:calc(100vw - 32px);left:16px;margin-top:6px;background:#fff;box-shadow:#00000026 0 8px 16px}.panel-box .panel-btn{border:1px solid rgb(216,218,221);border-top:none;border-left:none;color:var(--ag-text-color)}.panel-box .panel-btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.first-btn{border-radius:var(--p-border-radius-md) 0 0 var(--p-border-radius-md);margin-left:0!important}.last-btn{border-radius:0 var(--p-border-radius-md) var(--p-border-radius-md) 0}\n"] }]
8680
8723
  }], ctorParameters: () => [], propDecorators: { containerRef: [{
8681
8724
  type: ViewChild,
8682
8725
  args: ['container', { static: false }]
@@ -8692,6 +8735,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8692
8735
  }] } });
8693
8736
 
8694
8737
  class PageFormComponent extends AmComponent {
8738
+ onResize() {
8739
+ this.sidebarMode.set(window.innerWidth < 1024 ? 'left' : 'right');
8740
+ }
8695
8741
  constructor() {
8696
8742
  super();
8697
8743
  this.showLog = computed(() => {
@@ -8727,6 +8773,7 @@ class PageFormComponent extends AmComponent {
8727
8773
  this.gridDisable = false;
8728
8774
  this.selectionKeys = [];
8729
8775
  this.subDeleteIds = [];
8776
+ this.stepsVisible = true;
8730
8777
  this.id = Number(this.route.snapshot.paramMap.get('id'));
8731
8778
  this.pageUrl = this.route.snapshot.url
8732
8779
  .map((segment) => segment.path)
@@ -8773,6 +8820,14 @@ class PageFormComponent extends AmComponent {
8773
8820
  ngOnInit() {
8774
8821
  this.upCb = this.upCb.bind(this);
8775
8822
  }
8823
+ ngAfterViewInit() {
8824
+ this.i18n.change.subscribe((res) => {
8825
+ this.stepsVisible = false;
8826
+ setTimeout(() => {
8827
+ this.stepsVisible = true;
8828
+ }, 100);
8829
+ });
8830
+ }
8776
8831
  submitForm() {
8777
8832
  // this.tabForm.validate()
8778
8833
  console.log('getPrm------', this.getPrm);
@@ -9115,7 +9170,7 @@ class PageFormComponent extends AmComponent {
9115
9170
  this.sidebarMode.set(this.sidebarMode() === 'left' ? 'right' : 'left');
9116
9171
  }
9117
9172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9118
- 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 } }, 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"] }] }); }
9119
9174
  }
9120
9175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
9121
9176
  type: Component,
@@ -9131,7 +9186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
9131
9186
  RowSelectorComponent$1,
9132
9187
  TranslatePipe,
9133
9188
  HrefBtnListComponent,
9134
- ], 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"] }]
9135
9190
  }], ctorParameters: () => [], propDecorators: { cForm: [{
9136
9191
  type: ViewChild,
9137
9192
  args: ['cForm']
@@ -9141,6 +9196,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
9141
9196
  }], tabForm: [{
9142
9197
  type: ViewChildren,
9143
9198
  args: ['tabForm']
9199
+ }], onResize: [{
9200
+ type: HostListener,
9201
+ args: ['window:resize', ['$event']]
9144
9202
  }] } });
9145
9203
 
9146
9204
  class PageGridListComponent extends AmComponent {