imm-element-ui 0.4.2 → 0.4.3

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.
@@ -947,7 +947,6 @@ class LabelDirective {
947
947
  this.fieldLabel()?.interactiveLabel && this.action.setFieldLabelAction(this.fieldLabel().uuid, 'mouseleave');
948
948
  }
949
949
  onClick() {
950
- console.log('-----click', this.fieldLabel());
951
950
  if (this.fieldLabel()?.interactiveLabel) {
952
951
  if (fieldUtils.props(this.fieldLabel()).disabled)
953
952
  return;
@@ -958,7 +957,7 @@ class LabelDirective {
958
957
  }
959
958
  }
960
959
  onDoubleClick() {
961
- if (this.fieldLabel()?.type === 'codemirror') {
960
+ if (['inputtext', 'textarea', 'codemirror'].includes(this.fieldLabel()?.type)) {
962
961
  this.action.setFieldLabelAction(this.fieldLabel().uuid, 'dblclick');
963
962
  }
964
963
  }
@@ -991,6 +990,7 @@ class InputTextComponent {
991
990
  this.renderer = renderer;
992
991
  this.field = input();
993
992
  this.props = {};
993
+ this.templateIndex = 0;
994
994
  effect(() => {
995
995
  if (this.field()) {
996
996
  this.props = this.field().inputTextProps;
@@ -1011,6 +1011,12 @@ class InputTextComponent {
1011
1011
  else if (labelAction.type == 'click') {
1012
1012
  this.inputRef.nativeElement.focus();
1013
1013
  }
1014
+ else if (labelAction.type == 'dblclick') {
1015
+ if (!this.props.templates || !this.props.templates.length)
1016
+ return;
1017
+ this.field()?.fieldControl?.setValue(this.props.templates[((this.templateIndex % this.props.templates.length) + this.props.templates.length) % this.props.templates.length], { emitEvent: true }, false);
1018
+ this.templateIndex++;
1019
+ }
1014
1020
  });
1015
1021
  }
1016
1022
  handleDisabled() {
@@ -2320,6 +2326,7 @@ class TextAreaComponent {
2320
2326
  this.renderer = renderer;
2321
2327
  this.field = input();
2322
2328
  this.props = {};
2329
+ this.templateIndex = 0;
2323
2330
  effect(() => {
2324
2331
  if (this.field()) {
2325
2332
  this.props = this.field().textAreaProps;
@@ -2340,6 +2347,12 @@ class TextAreaComponent {
2340
2347
  else if (labelAction.type == 'click') {
2341
2348
  this.textAreaRef.nativeElement.focus();
2342
2349
  }
2350
+ else if (labelAction.type == 'dblclick') {
2351
+ if (!this.props.templates || !this.props.templates.length)
2352
+ return;
2353
+ this.field()?.fieldControl?.setValue(this.props.templates[((this.templateIndex % this.props.templates.length) + this.props.templates.length) % this.props.templates.length], { emitEvent: true }, false);
2354
+ this.templateIndex++;
2355
+ }
2343
2356
  }, { allowSignalWrites: true });
2344
2357
  }
2345
2358
  handleDisabled() {
@@ -4068,6 +4081,15 @@ const _gridUtils = {
4068
4081
  columnDef.hide = true;
4069
4082
  return { ...gridOptions, ..._gridUtils.getTreeOptions(columnDef) };
4070
4083
  }
4084
+ if (gridOptions.showIndex) {
4085
+ gridOptions.columnDefs?.unshift({
4086
+ headerName: '#',
4087
+ valueGetter: (params) => (params.node?.rowIndex || 0) + 1,
4088
+ width: 80,
4089
+ minWidth: 80,
4090
+ maxWidth: 80,
4091
+ });
4092
+ }
4071
4093
  return { ...gridOptions };
4072
4094
  },
4073
4095
  };
@@ -4792,18 +4814,12 @@ class GridComponent {
4792
4814
  this.localeText = gridUtils.getLocalText(res);
4793
4815
  this.columnDefs = gridUtils.handleI18nKey(this.toOptions().columnDefs, this.i18nService);
4794
4816
  setTimeout(() => {
4795
- this.selectedRows.set([]);
4796
4817
  this.initGrid = true;
4797
4818
  }, 100);
4798
- setTimeout(() => {
4799
- this.initGridHeight();
4800
- }, 200);
4801
4819
  });
4802
4820
  this.localeText = gridUtils.getLocalText(this.i18nService.currentLang);
4803
4821
  }
4804
- ngAfterViewInit() {
4805
- this.initGridHeight();
4806
- }
4822
+ ngAfterViewInit() { }
4807
4823
  ngOnDestroy() {
4808
4824
  if (this.horizontalScrollBarObserver) {
4809
4825
  this.horizontalScrollBarObserver.disconnect();
@@ -4813,7 +4829,7 @@ class GridComponent {
4813
4829
  return this.grid;
4814
4830
  }
4815
4831
  onGridReady(e) {
4816
- this.selectedRows.set([]);
4832
+ this.initGridHeight();
4817
4833
  this.getData();
4818
4834
  }
4819
4835
  onSelectionChanged(event) {
@@ -4899,6 +4915,7 @@ class GridComponent {
4899
4915
  untracked(() => {
4900
4916
  if (!this.searchPrm().modelName)
4901
4917
  return;
4918
+ this.cancelSelect();
4902
4919
  const search = this.action.getSearch(this.toOptions().modelName);
4903
4920
  this.toOptions()?.rowModelType == 'serverSide' ? this.getServerData(search) : this.getClientData(search);
4904
4921
  });
@@ -5098,6 +5115,10 @@ class GridComponent {
5098
5115
  const maxHeight = this.toOptions().scrollHeight ? parseInt(this.toOptions().scrollHeight.match(/\d+/)[0]) : height + 1;
5099
5116
  this.showHorizontal = this.actPos() == 'bottom' && (this.noRows || maxHeight < height);
5100
5117
  }
5118
+ cancelSelect() {
5119
+ this.getGrid().api.deselectAll();
5120
+ this.selectedRows.set([]);
5121
+ }
5101
5122
  editingFix() {
5102
5123
  document.addEventListener('click', (event) => {
5103
5124
  if (!this.grid?.api?.getEditingCells()?.length) {
@@ -5148,8 +5169,7 @@ class ActionsComponent {
5148
5169
  : 'block';
5149
5170
  }
5150
5171
  doCancelAction() {
5151
- this.grid()?.getGrid().api.deselectAll();
5152
- this.grid()?.selectedRows.set([]);
5172
+ this.grid()?.cancelSelect();
5153
5173
  }
5154
5174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ActionsComponent, deps: [{ token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
5155
5175
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ActionsComponent, isStandalone: true, selector: "custom-actions", inputs: { grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, isCancel: { classPropertyName: "isCancel", publicName: "isCancel", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<p-toast />\r\n<div class=\"flex flex-wrap gap-4 justify-center\">\r\n\t@if (isCancel()) {\r\n\t\t<p-button\r\n\t\t\t[severity]=\"'secondary'\"\r\n\t\t\t[label]=\"('primeng.cancel' | translate) + ' ' + selectedRows.length\"\r\n\t\t\tsize=\"small\"\r\n\t\t\t(click)=\"doCancelAction()\">\r\n\t\t</p-button>\r\n\t}\r\n\r\n\t@for (action of actions(); track action) {\r\n\t\t<p-button\r\n\t\t\tsize=\"small\"\r\n\t\t\t[variant]=\"action.variant\"\r\n\t\t\t[icon]=\"action.icon\"\r\n\t\t\t[severity]=\"action.severity\"\r\n\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t[styleClass]=\"getClass(action)\"\r\n\t\t\t[disabled]=\"action.btnDisabled?.({ action: action, rows: selectedRows, grid: grid() }) ?? false\"\r\n\t\t\t(onClick)=\"action.onClick && action.onClick?.({ originalEvent: $event, action: action, rows: selectedRows, grid: grid() })\"></p-button>\r\n\t}\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.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: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
@@ -6566,11 +6586,11 @@ class HrefBtnListComponent {
6566
6586
  this.hrefClick.emit(btn);
6567
6587
  }
6568
6588
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6569
- 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 hover:bg-[#e7e9ed]\" \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);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-.8px}.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}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.border-left{border-left:1px solid rgb(216,218,221)}.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$7.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
6589
+ 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$7.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }] }); }
6570
6590
  }
6571
6591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HrefBtnListComponent, decorators: [{
6572
6592
  type: Component,
6573
- 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 hover:bg-[#e7e9ed]\" \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);z-index:0}.btn:active{border-color:var(--p-button-primary-active-border-color);z-index:1}.not-first{margin-left:-.8px}.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}.txt-color{color:var(--p-primary-color)}.btn:hover{background-color:var(--p-button-outlined-primary-hover-background)}.border-left{border-left:1px solid rgb(216,218,221)}.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"] }]
6593
+ 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"] }]
6574
6594
  }], ctorParameters: () => [], propDecorators: { containerRef: [{
6575
6595
  type: ViewChild,
6576
6596
  args: ['container', { static: false }]
@@ -6780,7 +6800,7 @@ class PageFormComponent extends AmComponent {
6780
6800
  });
6781
6801
  }
6782
6802
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6783
- 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 }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex flex-wrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data??{}\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\t\t\r\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]\">\r\n\t\t\t<href-btn-list [hrefs]=\"hrefBtnList()\" (hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center gap-4 flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[variant]=\"action?.variant\"\r\n\t\t\t\t\t\t[severity]=\"action?.severity\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data) ? 'hidden' : 'block'\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\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\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 1) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab [value]=\"i\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t</custom-grid>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.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", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["steps", "current", "authLevel"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel"], outputs: ["searchPrmChange", "deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$1.TabList, selector: "p-tablist" }, { kind: "component", type: i3$1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
6803
+ 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 }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex flex-wrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\r\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]\">\r\n\t\t\t<href-btn-list\r\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\r\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center gap-2 flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"\r\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data) ? 'form-action hidden' : 'form-action block'\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\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\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 1) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab [value]=\"i\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t</custom-grid>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}: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:hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$3.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$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.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", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["steps", "current", "authLevel"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel"], outputs: ["searchPrmChange", "deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3$1.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3$1.TabList, selector: "p-tablist" }, { kind: "component", type: i3$1.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
6784
6804
  }
6785
6805
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
6786
6806
  type: Component,
@@ -6796,7 +6816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6796
6816
  RowSelectorComponent,
6797
6817
  TranslatePipe,
6798
6818
  HrefBtnListComponent
6799
- ], providers: [], template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex flex-wrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data??{}\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\t\t\r\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]\">\r\n\t\t\t<href-btn-list [hrefs]=\"hrefBtnList()\" (hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center gap-4 flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[variant]=\"action?.variant\"\r\n\t\t\t\t\t\t[severity]=\"action?.severity\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data) ? 'hidden' : 'block'\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\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\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 1) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab [value]=\"i\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t</custom-grid>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"] }]
6819
+ ], providers: [], template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex flex-wrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\r\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]\">\r\n\t\t\t<href-btn-list\r\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\r\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center gap-2 flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"\r\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data) ? 'form-action hidden' : 'form-action block'\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\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\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 1) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab [value]=\"i\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t</custom-grid>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}: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:hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"] }]
6800
6820
  }], ctorParameters: () => [], propDecorators: { cForm: [{
6801
6821
  type: ViewChild,
6802
6822
  args: ['cForm']