imm-element-ui 2.6.3 → 2.6.5

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.
@@ -7,7 +7,7 @@ import * as FileSaver from 'file-saver';
7
7
  import * as i1$7 from 'primeng/api';
8
8
  import { MessageService, ConfirmationService } from 'primeng/api';
9
9
  import * as i1$1 from '@angular/router';
10
- import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
10
+ import { ActivatedRoute, Router, NavigationStart, NavigationEnd } from '@angular/router';
11
11
  import { Subject, pairwise, filter, debounceTime, BehaviorSubject, isObservable, tap, catchError, of, Observable, forkJoin, shareReplay, pipe, firstValueFrom, fromEvent, lastValueFrom, map as map$1, takeUntil, finalize as finalize$1 } from 'rxjs';
12
12
  import * as i1 from '@ngx-translate/core';
13
13
  import { TranslatePipe } from '@ngx-translate/core';
@@ -2348,8 +2348,8 @@ const convertGrid = (thisArg, gridList, fiterPreloads) => {
2348
2348
  fiterPreloads.push(...item.fiterPreloads);
2349
2349
  }
2350
2350
  if (item.type == 'grid') {
2351
- let { gridOptions: { columnDefs, ...restGridOptions }, subTableSource, subDataKey, title, selectDataCb, fk, mainField, uniqueField, addDataCb, deleteFunc, showDelete = true, scrollHeight, dragSort, selectionMode, isRowSelectable, addSort, reference, slotKey, subSave, gridCustomDisabled } = item;
2352
- grid = { subTableSource, subDataKey, title, showDelete, slotKey, subSave, deleteFunc, gridCustomDisabled, ...grid };
2351
+ let { gridOptions: { columnDefs, ...restGridOptions }, subTableSource, subDataKey, title, selectDataCb, fk, mainField, uniqueField, addDataCb, deleteFunc, deleteHidden, showDelete = true, addHidden, scrollHeight, dragSort, selectionMode, isRowSelectable, addSort, reference, slotKey, subSave, gridCustomDisabled } = item;
2352
+ grid = { subTableSource, subDataKey, title, showDelete, slotKey, subSave, deleteFunc, deleteHidden, addHidden, gridCustomDisabled, ...grid };
2353
2353
  let gridOptions = {
2354
2354
  ...restGridOptions,
2355
2355
  fk,
@@ -5501,6 +5501,470 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5501
5501
  args: ['input', { read: ViewContainerRef }]
5502
5502
  }] } });
5503
5503
 
5504
+ const optionsCache = new Map();
5505
+ const resolveAsyncSelectOptions = async (params, context) => {
5506
+ const cache = params.cache !== false;
5507
+ const cacheKey = resolveCacheKey(params, context);
5508
+ if (cache && params.clearCache) {
5509
+ optionsCache.delete(cacheKey);
5510
+ }
5511
+ if (cache && optionsCache.has(cacheKey)) {
5512
+ return optionsCache.get(cacheKey);
5513
+ }
5514
+ const promise = loadOptions(params, context).catch((error) => {
5515
+ if (cache) {
5516
+ optionsCache.delete(cacheKey);
5517
+ }
5518
+ throw error;
5519
+ });
5520
+ if (cache) {
5521
+ optionsCache.set(cacheKey, promise);
5522
+ }
5523
+ return promise;
5524
+ };
5525
+ const clearAsyncSelectOptionsCache = (cacheKey) => {
5526
+ if (cacheKey === undefined) {
5527
+ optionsCache.clear();
5528
+ return;
5529
+ }
5530
+ optionsCache.delete(cacheKey);
5531
+ };
5532
+ const loadOptions = async (params, context) => {
5533
+ const source = resolveOptionsSource(params, context);
5534
+ let options = normalizeOptions(await unwrapOptions(source));
5535
+ if (params.filterOptions && typeof params.filterOptions === 'function') {
5536
+ options = params.filterOptions(options, context) || options;
5537
+ }
5538
+ return options;
5539
+ };
5540
+ const resolveOptionsSource = (params, context) => {
5541
+ if (typeof params.getOptions === 'function') {
5542
+ return params.getOptions(context);
5543
+ }
5544
+ if (typeof params.optionsHook === 'function') {
5545
+ return params.optionsHook(context);
5546
+ }
5547
+ return params.rawOptions || params.options || [];
5548
+ };
5549
+ const unwrapOptions = async (source) => {
5550
+ if (isObservable(source)) {
5551
+ return firstValueFrom(source);
5552
+ }
5553
+ if (source && typeof source.then === 'function') {
5554
+ return source;
5555
+ }
5556
+ return source;
5557
+ };
5558
+ const normalizeOptions = (res) => {
5559
+ if (Array.isArray(res)) {
5560
+ return res;
5561
+ }
5562
+ if (Array.isArray(res?.data)) {
5563
+ return res.data;
5564
+ }
5565
+ return [];
5566
+ };
5567
+ const resolveCacheKey = (params, context) => {
5568
+ if (typeof params.cacheKey === 'function') {
5569
+ return String(params.cacheKey(context));
5570
+ }
5571
+ if (params.cacheKey !== undefined && params.cacheKey !== null) {
5572
+ return String(params.cacheKey);
5573
+ }
5574
+ return [
5575
+ context.field || context.colDef?.field || '',
5576
+ params.optionValue || 'value',
5577
+ params.optionLabel || 'label',
5578
+ params.multiple ? 'multiple' : 'single',
5579
+ ].join('|');
5580
+ };
5581
+
5582
+ class AsyncSelectOptionsCacheService {
5583
+ constructor(router) {
5584
+ router.events
5585
+ .pipe(filter((event) => event instanceof NavigationStart))
5586
+ .subscribe(() => clearAsyncSelectOptionsCache());
5587
+ }
5588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
5589
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, providedIn: 'root' }); }
5590
+ }
5591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, decorators: [{
5592
+ type: Injectable,
5593
+ args: [{ providedIn: 'root' }]
5594
+ }], ctorParameters: () => [{ type: i1$1.Router }] });
5595
+
5596
+ class CellEditAsyncSelectFieldComponent {
5597
+ constructor() {
5598
+ this.cacheService = inject(AsyncSelectOptionsCacheService);
5599
+ }
5600
+ async agInit(params) {
5601
+ this.params = params;
5602
+ this.params.optionLabel = this.params.optionLabel || 'label';
5603
+ this.params.optionValue = this.params.optionValue || 'value';
5604
+ const rowValue = this.params.data?.[this.params.colDef.field];
5605
+ this.value = this.params.multiple ? this.toValueArray(params.value ?? rowValue) : (params.value ?? rowValue);
5606
+ this.setEditorSize(params);
5607
+ await this.loadOptions();
5608
+ }
5609
+ getValue() {
5610
+ if (this.params.multiple) {
5611
+ return this.toValueString(this.value);
5612
+ }
5613
+ const value = this.value;
5614
+ return value === '' || value == null ? null : value;
5615
+ }
5616
+ onChange(event) {
5617
+ const nameFields = this.params.nameFields || [];
5618
+ nameFields.forEach((nameField) => {
5619
+ this.updateNameField(nameField, event);
5620
+ });
5621
+ }
5622
+ async loadOptions() {
5623
+ const context = this.createContext();
5624
+ try {
5625
+ this.params.loading = true;
5626
+ this.params.options = await resolveAsyncSelectOptions(this.params, context);
5627
+ }
5628
+ finally {
5629
+ this.params.loading = false;
5630
+ }
5631
+ }
5632
+ createContext() {
5633
+ return {
5634
+ data: this.params.data,
5635
+ value: this.params.multiple ? this.toValueString(this.value) : this.value,
5636
+ params: this.params,
5637
+ field: this.params.colDef.field,
5638
+ colDef: this.params.colDef,
5639
+ rowIndex: this.params.node?.rowIndex,
5640
+ };
5641
+ }
5642
+ setEditorSize(params) {
5643
+ const cellWidth = params.column.getActualWidth();
5644
+ this.params.style = {
5645
+ border: 'none',
5646
+ boxShadow: 'none',
5647
+ width: `${cellWidth}px`,
5648
+ background: 'var(--ag-background-color)',
5649
+ height: '40px',
5650
+ alignItems: 'center',
5651
+ ...(this.params.style || {}),
5652
+ };
5653
+ this.params.panelStyle = {
5654
+ width: `${cellWidth}px`,
5655
+ ...(this.params.panelStyle || {}),
5656
+ };
5657
+ }
5658
+ updateNameField(nameField, event) {
5659
+ const oldValue = this.params.data[nameField.field];
5660
+ const newValue = this.resolveNameFieldValue(nameField, event.value);
5661
+ const grid = this.params.grid();
5662
+ const e = {
5663
+ colDef: nameField,
5664
+ oldValue,
5665
+ newValue,
5666
+ rowIndex: this.params.node.rowIndex,
5667
+ data: { id: this.params.data.id },
5668
+ };
5669
+ grid.cellValueChanged(e);
5670
+ this.params.data[nameField.field] = newValue;
5671
+ }
5672
+ resolveNameFieldValue(nameField, value) {
5673
+ const valueField = this.params.optionValue || 'value';
5674
+ if (this.params.multiple) {
5675
+ const values = this.toValueArray(value);
5676
+ return (this.params.options || [])
5677
+ .filter((op) => values.some((selectedValue) => selectedValue == op?.[valueField]))
5678
+ .map((op) => op?.[nameField.key])
5679
+ .filter((item) => item !== undefined && item !== null && item !== '')
5680
+ .join(',');
5681
+ }
5682
+ const item = (this.params.options || []).find((op) => op?.[valueField] === value);
5683
+ return item ? item[nameField.key] : null;
5684
+ }
5685
+ toValueArray(value) {
5686
+ if (Array.isArray(value)) {
5687
+ return value;
5688
+ }
5689
+ if (value === '' || value == null) {
5690
+ return [];
5691
+ }
5692
+ return String(value).split(',').filter((item) => item !== '');
5693
+ }
5694
+ toValueString(value) {
5695
+ if (Array.isArray(value)) {
5696
+ return value.filter((item) => item !== '' && item != null).join(',');
5697
+ }
5698
+ if (value === '' || value == null) {
5699
+ return '';
5700
+ }
5701
+ return String(value);
5702
+ }
5703
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAsyncSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5704
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CellEditAsyncSelectFieldComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
5705
+ @if (params.multiple) {
5706
+ <p-multiselect
5707
+ [(ngModel)]="value"
5708
+ [scrollHeight]="params.scrollHeight || '200px'"
5709
+ [filter]="params.filter"
5710
+ [name]="params.name"
5711
+ [options]="params.options"
5712
+ [placeholder]="params.placeholder"
5713
+ [class]="params.class"
5714
+ [style]="params.style"
5715
+ [panelStyle]="params.panelStyle"
5716
+ [panelStyleClass]="params.panelStyleClass"
5717
+ [readonly]="params.readonly"
5718
+ [appendTo]="params.appendTo || 'body'"
5719
+ [tabindex]="params.tabindex"
5720
+ [loadingIcon]="params.loadingIcon"
5721
+ [filterPlaceHolder]="params.filterPlaceHolder || params.filterPlaceholder"
5722
+ [filterLocale]="params.filterLocale"
5723
+ [variant]="params.variant"
5724
+ [inputId]="params.inputId"
5725
+ [dataKey]="params.dataKey"
5726
+ [filterBy]="params.filterBy"
5727
+ [filterFields]="params.filterFields"
5728
+ [autofocus]="params.autofocus ?? true"
5729
+ [resetFilterOnHide]="params.resetFilterOnHide"
5730
+ [dropdownIcon]="params.dropdownIcon"
5731
+ [loading]="params.loading"
5732
+ [optionLabel]="params.optionLabel"
5733
+ [optionValue]="params.optionValue"
5734
+ [optionDisabled]="params.optionDisabled"
5735
+ [optionGroupLabel]="params.optionGroupLabel"
5736
+ [optionGroupChildren]="params.optionGroupChildren || 'items'"
5737
+ [group]="params.group"
5738
+ [showClear]="params.showClear"
5739
+ [emptyFilterMessage]="params.emptyFilterMessage"
5740
+ [emptyMessage]="params.emptyMessage"
5741
+ [lazy]="params.lazy"
5742
+ [virtualScroll]="params.virtualScroll"
5743
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
5744
+ [virtualScrollOptions]="params.virtualScrollOptions"
5745
+ [overlayOptions]="params.overlayOptions"
5746
+ [size]="params.size"
5747
+ [ariaFilterLabel]="params.ariaFilterLabel"
5748
+ [ariaLabel]="params.ariaLabel"
5749
+ [ariaLabelledBy]="params.ariaLabelledBy"
5750
+ [filterMatchMode]="params.filterMatchMode"
5751
+ [maxlength]="params.maxlength"
5752
+ [tooltip]="params.tooltip"
5753
+ [tooltipPosition]="params.tooltipPosition || 'right'"
5754
+ [tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
5755
+ [tooltipStyleClass]="params.tooltipStyleClass"
5756
+ [focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
5757
+ [fluid]="params.fluid == undefined ? true : params.fluid"
5758
+ [filterValue]="params.filterValue"
5759
+ [display]="params.display ?? 'comma'"
5760
+ [displaySelectedLabel]="params.displaySelectedLabel ?? true"
5761
+ [maxSelectedLabels]="params.maxSelectedLabels"
5762
+ [selectionLimit]="params.selectionLimit"
5763
+ [selectedItemsLabel]="params.selectedItemsLabel"
5764
+ [showToggleAll]="params.showToggleAll ?? true"
5765
+ [showHeader]="params.showHeader ?? true"
5766
+ [autofocusFilter]="params.autofocusFilter"
5767
+ [selectAll]="params.selectAll ?? null"
5768
+ [selectOnFocus]="params.selectOnFocus"
5769
+ [autoOptionFocus]="params.autoOptionFocus"
5770
+ (onChange)="onChange($event)" />
5771
+ } @else {
5772
+ <p-select
5773
+ [(ngModel)]="value"
5774
+ [scrollHeight]="params.scrollHeight || '200px'"
5775
+ [filter]="params.filter"
5776
+ [name]="params.name"
5777
+ [options]="params.options"
5778
+ [placeholder]="params.placeholder"
5779
+ [class]="params.class"
5780
+ [style]="params.style"
5781
+ [panelStyle]="params.panelStyle"
5782
+ [panelStyleClass]="params.panelStyleClass"
5783
+ [readonly]="params.readonly"
5784
+ [editable]="params.editable"
5785
+ [appendTo]="params.appendTo || 'body'"
5786
+ [tabindex]="params.tabindex"
5787
+ [loadingIcon]="params.loadingIcon"
5788
+ [filterPlaceholder]="params.filterPlaceholder"
5789
+ [filterLocale]="params.filterLocale"
5790
+ [variant]="params.variant"
5791
+ [inputId]="params.inputId"
5792
+ [dataKey]="params.dataKey"
5793
+ [filterBy]="params.filterBy"
5794
+ [filterFields]="params.filterFields"
5795
+ [autofocus]="params.autofocus ?? true"
5796
+ [resetFilterOnHide]="params.resetFilterOnHide"
5797
+ [checkmark]="params.checkmark"
5798
+ [dropdownIcon]="params.dropdownIcon"
5799
+ [loading]="params.loading"
5800
+ [optionLabel]="params.optionLabel"
5801
+ [optionValue]="params.optionValue"
5802
+ [optionDisabled]="params.optionDisabled"
5803
+ [optionGroupLabel]="params.optionGroupLabel"
5804
+ [optionGroupChildren]="params.optionGroupChildren || 'items'"
5805
+ [group]="params.group"
5806
+ [showClear]="params.showClear"
5807
+ [emptyFilterMessage]="params.emptyFilterMessage"
5808
+ [emptyMessage]="params.emptyMessage"
5809
+ [lazy]="params.lazy"
5810
+ [virtualScroll]="params.virtualScroll"
5811
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
5812
+ [virtualScrollOptions]="params.virtualScrollOptions"
5813
+ [overlayOptions]="params.overlayOptions"
5814
+ [size]="params.size"
5815
+ [ariaFilterLabel]="params.ariaFilterLabel"
5816
+ [ariaLabel]="params.ariaLabel"
5817
+ [ariaLabelledBy]="params.ariaLabelledBy"
5818
+ [filterMatchMode]="params.filterMatchMode"
5819
+ [maxlength]="params.maxlength"
5820
+ [tooltip]="params.tooltip"
5821
+ [tooltipPosition]="params.tooltipPosition || 'right'"
5822
+ [tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
5823
+ [tooltipStyleClass]="params.tooltipStyleClass"
5824
+ [focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
5825
+ [fluid]="params.fluid == undefined ? true : params.fluid"
5826
+ [filterValue]="params.filterValue"
5827
+ (onChange)="onChange($event)" />
5828
+ }
5829
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2$6.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
5830
+ }
5831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAsyncSelectFieldComponent, decorators: [{
5832
+ type: Component,
5833
+ args: [{
5834
+ standalone: true,
5835
+ template: `
5836
+ @if (params.multiple) {
5837
+ <p-multiselect
5838
+ [(ngModel)]="value"
5839
+ [scrollHeight]="params.scrollHeight || '200px'"
5840
+ [filter]="params.filter"
5841
+ [name]="params.name"
5842
+ [options]="params.options"
5843
+ [placeholder]="params.placeholder"
5844
+ [class]="params.class"
5845
+ [style]="params.style"
5846
+ [panelStyle]="params.panelStyle"
5847
+ [panelStyleClass]="params.panelStyleClass"
5848
+ [readonly]="params.readonly"
5849
+ [appendTo]="params.appendTo || 'body'"
5850
+ [tabindex]="params.tabindex"
5851
+ [loadingIcon]="params.loadingIcon"
5852
+ [filterPlaceHolder]="params.filterPlaceHolder || params.filterPlaceholder"
5853
+ [filterLocale]="params.filterLocale"
5854
+ [variant]="params.variant"
5855
+ [inputId]="params.inputId"
5856
+ [dataKey]="params.dataKey"
5857
+ [filterBy]="params.filterBy"
5858
+ [filterFields]="params.filterFields"
5859
+ [autofocus]="params.autofocus ?? true"
5860
+ [resetFilterOnHide]="params.resetFilterOnHide"
5861
+ [dropdownIcon]="params.dropdownIcon"
5862
+ [loading]="params.loading"
5863
+ [optionLabel]="params.optionLabel"
5864
+ [optionValue]="params.optionValue"
5865
+ [optionDisabled]="params.optionDisabled"
5866
+ [optionGroupLabel]="params.optionGroupLabel"
5867
+ [optionGroupChildren]="params.optionGroupChildren || 'items'"
5868
+ [group]="params.group"
5869
+ [showClear]="params.showClear"
5870
+ [emptyFilterMessage]="params.emptyFilterMessage"
5871
+ [emptyMessage]="params.emptyMessage"
5872
+ [lazy]="params.lazy"
5873
+ [virtualScroll]="params.virtualScroll"
5874
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
5875
+ [virtualScrollOptions]="params.virtualScrollOptions"
5876
+ [overlayOptions]="params.overlayOptions"
5877
+ [size]="params.size"
5878
+ [ariaFilterLabel]="params.ariaFilterLabel"
5879
+ [ariaLabel]="params.ariaLabel"
5880
+ [ariaLabelledBy]="params.ariaLabelledBy"
5881
+ [filterMatchMode]="params.filterMatchMode"
5882
+ [maxlength]="params.maxlength"
5883
+ [tooltip]="params.tooltip"
5884
+ [tooltipPosition]="params.tooltipPosition || 'right'"
5885
+ [tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
5886
+ [tooltipStyleClass]="params.tooltipStyleClass"
5887
+ [focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
5888
+ [fluid]="params.fluid == undefined ? true : params.fluid"
5889
+ [filterValue]="params.filterValue"
5890
+ [display]="params.display ?? 'comma'"
5891
+ [displaySelectedLabel]="params.displaySelectedLabel ?? true"
5892
+ [maxSelectedLabels]="params.maxSelectedLabels"
5893
+ [selectionLimit]="params.selectionLimit"
5894
+ [selectedItemsLabel]="params.selectedItemsLabel"
5895
+ [showToggleAll]="params.showToggleAll ?? true"
5896
+ [showHeader]="params.showHeader ?? true"
5897
+ [autofocusFilter]="params.autofocusFilter"
5898
+ [selectAll]="params.selectAll ?? null"
5899
+ [selectOnFocus]="params.selectOnFocus"
5900
+ [autoOptionFocus]="params.autoOptionFocus"
5901
+ (onChange)="onChange($event)" />
5902
+ } @else {
5903
+ <p-select
5904
+ [(ngModel)]="value"
5905
+ [scrollHeight]="params.scrollHeight || '200px'"
5906
+ [filter]="params.filter"
5907
+ [name]="params.name"
5908
+ [options]="params.options"
5909
+ [placeholder]="params.placeholder"
5910
+ [class]="params.class"
5911
+ [style]="params.style"
5912
+ [panelStyle]="params.panelStyle"
5913
+ [panelStyleClass]="params.panelStyleClass"
5914
+ [readonly]="params.readonly"
5915
+ [editable]="params.editable"
5916
+ [appendTo]="params.appendTo || 'body'"
5917
+ [tabindex]="params.tabindex"
5918
+ [loadingIcon]="params.loadingIcon"
5919
+ [filterPlaceholder]="params.filterPlaceholder"
5920
+ [filterLocale]="params.filterLocale"
5921
+ [variant]="params.variant"
5922
+ [inputId]="params.inputId"
5923
+ [dataKey]="params.dataKey"
5924
+ [filterBy]="params.filterBy"
5925
+ [filterFields]="params.filterFields"
5926
+ [autofocus]="params.autofocus ?? true"
5927
+ [resetFilterOnHide]="params.resetFilterOnHide"
5928
+ [checkmark]="params.checkmark"
5929
+ [dropdownIcon]="params.dropdownIcon"
5930
+ [loading]="params.loading"
5931
+ [optionLabel]="params.optionLabel"
5932
+ [optionValue]="params.optionValue"
5933
+ [optionDisabled]="params.optionDisabled"
5934
+ [optionGroupLabel]="params.optionGroupLabel"
5935
+ [optionGroupChildren]="params.optionGroupChildren || 'items'"
5936
+ [group]="params.group"
5937
+ [showClear]="params.showClear"
5938
+ [emptyFilterMessage]="params.emptyFilterMessage"
5939
+ [emptyMessage]="params.emptyMessage"
5940
+ [lazy]="params.lazy"
5941
+ [virtualScroll]="params.virtualScroll"
5942
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
5943
+ [virtualScrollOptions]="params.virtualScrollOptions"
5944
+ [overlayOptions]="params.overlayOptions"
5945
+ [size]="params.size"
5946
+ [ariaFilterLabel]="params.ariaFilterLabel"
5947
+ [ariaLabel]="params.ariaLabel"
5948
+ [ariaLabelledBy]="params.ariaLabelledBy"
5949
+ [filterMatchMode]="params.filterMatchMode"
5950
+ [maxlength]="params.maxlength"
5951
+ [tooltip]="params.tooltip"
5952
+ [tooltipPosition]="params.tooltipPosition || 'right'"
5953
+ [tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
5954
+ [tooltipStyleClass]="params.tooltipStyleClass"
5955
+ [focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
5956
+ [fluid]="params.fluid == undefined ? true : params.fluid"
5957
+ [filterValue]="params.filterValue"
5958
+ (onChange)="onChange($event)" />
5959
+ }
5960
+ `,
5961
+ imports: [FormsModule, ReactiveFormsModule, SelectModule, MultiSelect],
5962
+ }]
5963
+ }], propDecorators: { input: [{
5964
+ type: ViewChild,
5965
+ args: ['input', { read: ViewContainerRef }]
5966
+ }] } });
5967
+
5504
5968
  class CellEditAutoCompleteComponent {
5505
5969
  agInit(params) {
5506
5970
  this.params = params;
@@ -6186,6 +6650,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6186
6650
  >`, styles: [".cell-link{color:var(--p-primary-color);cursor:pointer}\n"] }]
6187
6651
  }] });
6188
6652
 
6653
+ class AsyncSelectLabelRenderer {
6654
+ constructor() {
6655
+ this.label = '';
6656
+ this.loadId = 0;
6657
+ this.cacheService = inject(AsyncSelectOptionsCacheService);
6658
+ }
6659
+ agInit(params) {
6660
+ this.refresh(params);
6661
+ }
6662
+ refresh(params) {
6663
+ this.params = this.mergeParams(params);
6664
+ void this.loadLabel();
6665
+ return true;
6666
+ }
6667
+ async loadLabel() {
6668
+ const loadId = ++this.loadId;
6669
+ const value = this.params.value ?? this.params.data?.[this.params.colDef.field];
6670
+ if (value === '' || value == null) {
6671
+ this.label = '';
6672
+ return;
6673
+ }
6674
+ const context = this.createContext(value);
6675
+ try {
6676
+ const options = await resolveAsyncSelectOptions(this.params, context);
6677
+ if (loadId !== this.loadId) {
6678
+ return;
6679
+ }
6680
+ this.label = this.formatLabel(value, options);
6681
+ }
6682
+ catch {
6683
+ if (loadId === this.loadId) {
6684
+ this.label = String(value);
6685
+ }
6686
+ }
6687
+ }
6688
+ mergeParams(params) {
6689
+ const cellEditorParams = params.colDef?.cellEditorParams || {};
6690
+ return {
6691
+ ...cellEditorParams,
6692
+ ...params,
6693
+ optionLabel: params.optionLabel || cellEditorParams.optionLabel || 'label',
6694
+ optionValue: params.optionValue || cellEditorParams.optionValue || 'value',
6695
+ multiple: params.multiple ?? cellEditorParams.multiple,
6696
+ };
6697
+ }
6698
+ createContext(value) {
6699
+ return {
6700
+ data: this.params.data,
6701
+ value: this.params.multiple ? this.toValueString(value) : value,
6702
+ params: this.params,
6703
+ field: this.params.colDef.field,
6704
+ colDef: this.params.colDef,
6705
+ rowIndex: this.params.node?.rowIndex,
6706
+ };
6707
+ }
6708
+ formatLabel(value, options) {
6709
+ const valueField = this.params.optionValue || 'value';
6710
+ const labelField = this.params.optionLabel || 'label';
6711
+ if (this.params.multiple) {
6712
+ const values = this.toValueArray(value);
6713
+ const labels = values.map((item) => {
6714
+ const option = options.find((opt) => opt?.[valueField] == item);
6715
+ return option ? option?.[labelField] : item;
6716
+ });
6717
+ return labels.filter((item) => item !== undefined && item !== null && item !== '').join(',');
6718
+ }
6719
+ const option = options.find((opt) => opt?.[valueField] == value);
6720
+ return option ? option?.[labelField] : String(value);
6721
+ }
6722
+ toValueArray(value) {
6723
+ if (Array.isArray(value)) {
6724
+ return value;
6725
+ }
6726
+ if (value === '' || value == null) {
6727
+ return [];
6728
+ }
6729
+ return String(value).split(',').filter((item) => item !== '');
6730
+ }
6731
+ toValueString(value) {
6732
+ if (Array.isArray(value)) {
6733
+ return value.filter((item) => item !== '' && item != null).join(',');
6734
+ }
6735
+ if (value === '' || value == null) {
6736
+ return '';
6737
+ }
6738
+ return String(value);
6739
+ }
6740
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectLabelRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6741
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AsyncSelectLabelRenderer, isStandalone: true, selector: "ng-component", ngImport: i0, template: `{{ label }}`, isInline: true }); }
6742
+ }
6743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectLabelRenderer, decorators: [{
6744
+ type: Component,
6745
+ args: [{
6746
+ standalone: true,
6747
+ template: `{{ label }}`,
6748
+ }]
6749
+ }] });
6750
+
6189
6751
  // rowModelType 使用clientSide的最大值
6190
6752
  const CLIENTLIMIT = 9999;
6191
6753
  const components = {
@@ -6200,8 +6762,10 @@ const components = {
6200
6762
  cellEditInputDateComponent: CellEditInputDateComponent,
6201
6763
  rowSpanRenderer: RowSpanRenderer,
6202
6764
  cellEditSelectFieldComponent: CellEditSelectFieldComponent,
6765
+ cellEditAsyncSelectFieldComponent: CellEditAsyncSelectFieldComponent,
6203
6766
  primeActionsRenderer: PrimeActionsRenderer,
6204
- asyncLinkRenderer: AsyncLinkRenderer
6767
+ asyncLinkRenderer: AsyncLinkRenderer,
6768
+ asyncSelectLabelRenderer: AsyncSelectLabelRenderer
6205
6769
  };
6206
6770
 
6207
6771
  const defaultOption = {
@@ -6263,9 +6827,12 @@ class GridComponent {
6263
6827
  this.ngZone = inject(NgZone);
6264
6828
  this.cdr = inject(ChangeDetectorRef);
6265
6829
  this.showDelete = input(true);
6830
+ this.deleteHidden = input(false);
6831
+ this.addHidden = input(false);
6266
6832
  this.gridDisable = input(false);
6267
6833
  this.addSort = input();
6268
6834
  this.subSaveVisible = input(false);
6835
+ this.subSaveHidden = input(false);
6269
6836
  this.subSaveLabel = input('保存');
6270
6837
  this.subSaveDisabled = input(false);
6271
6838
  this.subSaveEmit = output();
@@ -6962,11 +7529,11 @@ class GridComponent {
6962
7529
  return columnFilter;
6963
7530
  }
6964
7531
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GridComponent, deps: [{ token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
6965
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: GridComponent, isStandalone: true, selector: "custom-grid", inputs: { gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, upsert: { classPropertyName: "upsert", publicName: "upsert", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, addType: { classPropertyName: "addType", publicName: "addType", isSignal: true, isRequired: false, transformFunction: null }, selectData: { classPropertyName: "selectData", publicName: "selectData", isSignal: true, isRequired: false, transformFunction: null }, showAct: { classPropertyName: "showAct", publicName: "showAct", isSignal: true, isRequired: false, transformFunction: null }, actPos: { classPropertyName: "actPos", publicName: "actPos", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, showDelete: { classPropertyName: "showDelete", publicName: "showDelete", isSignal: true, isRequired: false, transformFunction: null }, gridDisable: { classPropertyName: "gridDisable", publicName: "gridDisable", isSignal: true, isRequired: false, transformFunction: null }, addSort: { classPropertyName: "addSort", publicName: "addSort", isSignal: true, isRequired: false, transformFunction: null }, subSaveVisible: { classPropertyName: "subSaveVisible", publicName: "subSaveVisible", isSignal: true, isRequired: false, transformFunction: null }, subSaveLabel: { classPropertyName: "subSaveLabel", publicName: "subSaveLabel", isSignal: true, isRequired: false, transformFunction: null }, subSaveDisabled: { classPropertyName: "subSaveDisabled", publicName: "subSaveDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deleteEmit: "deleteEmit", addEmit: "addEmit", subSaveEmit: "subSaveEmit" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "grid", first: true, predicate: AgGridAngular, descendants: true }, { propertyName: "gridRef", first: true, predicate: AgGridAngular, descendants: true, read: ElementRef }, { propertyName: "containerRef", first: true, predicate: ["gridContainer"], descendants: true }], ngImport: i0, template: "@if (initGrid) {\n\t<div\n\t\t#gridContainer\n\t\t[class]=\"\n\t\t\t(toOptions().treeDataField ? 'tree-grid ' : '') +\n\t\t\t'grid-container w-full flex justify-between ' +\n\t\t\t(actPos() == 'bottom' ? 'flex-col' : 'flex-col-reverse')\n\t\t\">\n\t\t<ag-grid-angular\n\t\t\t[theme]=\"myTheme()\"\n\t\t\t[columnDefs]=\"columnDefs\"\n\t\t\t[gridOptions]=\"toOptions()\"\n\t\t\t[localeText]=\"localeText\"\n\t\t\t[components]=\"components\"\n\t\t\t[suppressDragLeaveHidesColumns]=\"true\"\n\t\t\t[undoRedoCellEditing]=\"toOptions().undoRedoCellEditing\"\n\t\t\t[undoRedoCellEditingLimit]=\"toOptions().undoRedoCellEditingLimit\"\n\t\t\t[rowBuffer]=\"30\"\n\t\t\t(cellValueChanged)=\"cellValueChanged($event)\"\n\t\t\t(selectionChanged)=\"onSelectionChanged($event)\"\n\t\t\t(rowGroupOpened)=\"onRowGroupOpened()\"\n\t\t\t(gridReady)=\"onGridReady($event)\"\n\t\t\t(rowDragEnd)=\"onRowDragEnd($event)\"\n\t\t\t(rowDragEnter)=\"rowDragEnter($event)\" \n\t\t\t[singleClickEdit]=\"singleClickEdit()\" />\n\t\t@if (showAct() && authLevel() >= 3 && (addType() != 'none' || showDelete() || subSaveVisible())) {\n\t\t\t@if (showHorizontal) {\n\t\t\t\t<div class=\"w-full border-t border-gray-300\"></div>\n\t\t\t}\n\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t@if (subSaveVisible()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-cloud-upload\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"primary\"\n\t\t\t\t\t\t[disabled]=\"subSaveDisabled()\"\n\t\t\t\t\t\t(onClick)=\"subSaveEmit.emit()\" />\n\t\t\t\t}\n\t\t\t\t@if (addType() != 'none') {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"addRow()\" />\n\t\t\t\t}\n\t\t\t\t@if (showDelete()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"delRows()\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ag-grid .ag-body{overflow-y:scroll!important;scrollbar-gutter:stable;transition:height .2s ease}:host ::ng-deep .ag-grid{transition:height .2s ease}:host ::ng-deep .ag-root-wrapper{overflow:initial!important}:host ::ng-deep .tree-grid .ag-body-vertical-scroll{width:5px!important;max-width:5px!important;min-width:5px!important;display:block!important}:host ::ng-deep .cell-wrap-text{white-space:normal!important;word-break:break-word!important;line-height:1.5!important;padding:10px 15px}:host ::ng-deep .editable-column-header .ag-header-cell-text:after{content:\"\\2710\";padding-left:6px;color:var(--p-primary-color)}:host ::ng-deep .rowSpan .ag-cell{border-right:1px solid color-mix(in srgb,transparent,var(--ag-foreground-color) 15%)}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { 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"] }] }); }
7532
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: GridComponent, isStandalone: true, selector: "custom-grid", inputs: { gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, upsert: { classPropertyName: "upsert", publicName: "upsert", isSignal: true, isRequired: false, transformFunction: null }, rowData: { classPropertyName: "rowData", publicName: "rowData", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, addType: { classPropertyName: "addType", publicName: "addType", isSignal: true, isRequired: false, transformFunction: null }, selectData: { classPropertyName: "selectData", publicName: "selectData", isSignal: true, isRequired: false, transformFunction: null }, showAct: { classPropertyName: "showAct", publicName: "showAct", isSignal: true, isRequired: false, transformFunction: null }, actPos: { classPropertyName: "actPos", publicName: "actPos", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null }, showDelete: { classPropertyName: "showDelete", publicName: "showDelete", isSignal: true, isRequired: false, transformFunction: null }, deleteHidden: { classPropertyName: "deleteHidden", publicName: "deleteHidden", isSignal: true, isRequired: false, transformFunction: null }, addHidden: { classPropertyName: "addHidden", publicName: "addHidden", isSignal: true, isRequired: false, transformFunction: null }, gridDisable: { classPropertyName: "gridDisable", publicName: "gridDisable", isSignal: true, isRequired: false, transformFunction: null }, addSort: { classPropertyName: "addSort", publicName: "addSort", isSignal: true, isRequired: false, transformFunction: null }, subSaveVisible: { classPropertyName: "subSaveVisible", publicName: "subSaveVisible", isSignal: true, isRequired: false, transformFunction: null }, subSaveHidden: { classPropertyName: "subSaveHidden", publicName: "subSaveHidden", isSignal: true, isRequired: false, transformFunction: null }, subSaveLabel: { classPropertyName: "subSaveLabel", publicName: "subSaveLabel", isSignal: true, isRequired: false, transformFunction: null }, subSaveDisabled: { classPropertyName: "subSaveDisabled", publicName: "subSaveDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deleteEmit: "deleteEmit", addEmit: "addEmit", subSaveEmit: "subSaveEmit" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "grid", first: true, predicate: AgGridAngular, descendants: true }, { propertyName: "gridRef", first: true, predicate: AgGridAngular, descendants: true, read: ElementRef }, { propertyName: "containerRef", first: true, predicate: ["gridContainer"], descendants: true }], ngImport: i0, template: "@if (initGrid) {\n\t<div\n\t\t#gridContainer\n\t\t[class]=\"\n\t\t\t(toOptions().treeDataField ? 'tree-grid ' : '') +\n\t\t\t'grid-container w-full flex justify-between ' +\n\t\t\t(actPos() == 'bottom' ? 'flex-col' : 'flex-col-reverse')\n\t\t\">\n\t\t<ag-grid-angular\n\t\t\t[theme]=\"myTheme()\"\n\t\t\t[columnDefs]=\"columnDefs\"\n\t\t\t[gridOptions]=\"toOptions()\"\n\t\t\t[localeText]=\"localeText\"\n\t\t\t[components]=\"components\"\n\t\t\t[suppressDragLeaveHidesColumns]=\"true\"\n\t\t\t[undoRedoCellEditing]=\"toOptions().undoRedoCellEditing\"\n\t\t\t[undoRedoCellEditingLimit]=\"toOptions().undoRedoCellEditingLimit\"\n\t\t\t[rowBuffer]=\"30\"\n\t\t\t(cellValueChanged)=\"cellValueChanged($event)\"\n\t\t\t(selectionChanged)=\"onSelectionChanged($event)\"\n\t\t\t(rowGroupOpened)=\"onRowGroupOpened()\"\n\t\t\t(gridReady)=\"onGridReady($event)\"\n\t\t\t(rowDragEnd)=\"onRowDragEnd($event)\"\n\t\t\t(rowDragEnter)=\"rowDragEnter($event)\"\n\t\t\t[singleClickEdit]=\"singleClickEdit()\" />\n\t\t@if (showAct() && authLevel() >= 3 && ((addType() != 'none' && !addHidden()) || (showDelete() && !deleteHidden()) || (subSaveVisible() && !subSaveHidden()))) {\n\t\t\t@if (showHorizontal) {\n\t\t\t\t<div class=\"w-full border-t border-gray-300\"></div>\n\t\t\t}\n\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t@if (subSaveVisible() && !subSaveHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-cloud-upload\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"primary\"\n\t\t\t\t\t\t[disabled]=\"subSaveDisabled()\"\n\t\t\t\t\t\t(onClick)=\"subSaveEmit.emit()\" />\n\t\t\t\t}\n\t\t\t\t@if (addType() != 'none' && !addHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"addRow()\" />\n\t\t\t\t}\n\t\t\t\t@if (showDelete() && !deleteHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"delRows()\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ag-grid .ag-body{overflow-y:scroll!important;scrollbar-gutter:stable;transition:height .2s ease}:host ::ng-deep .ag-grid{transition:height .2s ease}:host ::ng-deep .ag-root-wrapper{overflow:initial!important}:host ::ng-deep .tree-grid .ag-body-vertical-scroll{width:5px!important;max-width:5px!important;min-width:5px!important;display:block!important}:host ::ng-deep .cell-wrap-text{white-space:normal!important;word-break:break-word!important;line-height:1.5!important;padding:10px 15px}:host ::ng-deep .editable-column-header .ag-header-cell-text:after{content:\"\\2710\";padding-left:6px;color:var(--p-primary-color)}:host ::ng-deep .rowSpan .ag-cell{border-right:1px solid color-mix(in srgb,transparent,var(--ag-foreground-color) 15%)}\n"], dependencies: [{ kind: "component", type: AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "enableStrictPivotColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "hidePaddedHeaderRows", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressMoveWhenColumnDragging", "suppressDragLeaveHidesColumns", "suppressGroupChangesColumnVisibility", "suppressMakeColumnVisibleAfterUnGroup", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "animateColumnResizing", "components", "editType", "suppressStartEditOnTab", "getFullRowEditValidationErrors", "invalidEditValueMode", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "findSearchValue", "findOptions", "quickFilterText", "cacheQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "alwaysPassFilter", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "advancedFilterParams", "suppressAdvancedFilterEval", "suppressSetFilterByDefault", "enableFilterHandlers", "filterHandlers", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressTouch", "suppressFocusAfterRefresh", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "loading", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "suppressOverlays", "overlayComponent", "overlayComponentParams", "overlayComponentSelector", "activeOverlay", "activeOverlayParams", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "formulaDataSource", "formulaFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "cellFlashDuration", "cellFadeDuration", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableCellSpan", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "refreshAfterGroupEdit", "rowDragInsertDelay", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "dragAndDropImageComponent", "dragAndDropImageComponentParams", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupHideParentOfSingleChild", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "treeData", "treeDataChildrenField", "treeDataParentIdField", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "groupHierarchyConfig", "pinnedTopRowData", "pinnedBottomRowData", "enableRowPinning", "isRowPinnable", "isRowPinned", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "cellSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "selectionColumnDef", "rowNumbers", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "enableGroupEdit", "initialState", "theme", "loadThemeGoogleFonts", "themeCssLayer", "styleNonce", "themeStyleContainer", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "focusGridInnerElement", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "ssrmExpandAllAffectsAllRows", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow", "isRowValidDropPosition"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnsReset", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "bulkEditingStarted", "bulkEditingStopped", "batchEditingStarted", "batchEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "cellSelectionDeleteStart", "cellSelectionDeleteEnd", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "filterUiChanged", "floatingFilterUiChanged", "advancedFilterBuilderVisibleChanged", "findChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "dragCancelled", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "rowDragCancel", "rowResizeStarted", "rowResizeEnded", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "pinnedRowsChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "headerFocused", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "cellSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged"] }, { 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"] }] }); }
6966
7533
  }
6967
7534
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GridComponent, decorators: [{
6968
7535
  type: Component,
6969
- args: [{ selector: 'custom-grid', standalone: true, imports: [AgGridAngular, ButtonModule], template: "@if (initGrid) {\n\t<div\n\t\t#gridContainer\n\t\t[class]=\"\n\t\t\t(toOptions().treeDataField ? 'tree-grid ' : '') +\n\t\t\t'grid-container w-full flex justify-between ' +\n\t\t\t(actPos() == 'bottom' ? 'flex-col' : 'flex-col-reverse')\n\t\t\">\n\t\t<ag-grid-angular\n\t\t\t[theme]=\"myTheme()\"\n\t\t\t[columnDefs]=\"columnDefs\"\n\t\t\t[gridOptions]=\"toOptions()\"\n\t\t\t[localeText]=\"localeText\"\n\t\t\t[components]=\"components\"\n\t\t\t[suppressDragLeaveHidesColumns]=\"true\"\n\t\t\t[undoRedoCellEditing]=\"toOptions().undoRedoCellEditing\"\n\t\t\t[undoRedoCellEditingLimit]=\"toOptions().undoRedoCellEditingLimit\"\n\t\t\t[rowBuffer]=\"30\"\n\t\t\t(cellValueChanged)=\"cellValueChanged($event)\"\n\t\t\t(selectionChanged)=\"onSelectionChanged($event)\"\n\t\t\t(rowGroupOpened)=\"onRowGroupOpened()\"\n\t\t\t(gridReady)=\"onGridReady($event)\"\n\t\t\t(rowDragEnd)=\"onRowDragEnd($event)\"\n\t\t\t(rowDragEnter)=\"rowDragEnter($event)\" \n\t\t\t[singleClickEdit]=\"singleClickEdit()\" />\n\t\t@if (showAct() && authLevel() >= 3 && (addType() != 'none' || showDelete() || subSaveVisible())) {\n\t\t\t@if (showHorizontal) {\n\t\t\t\t<div class=\"w-full border-t border-gray-300\"></div>\n\t\t\t}\n\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t@if (subSaveVisible()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-cloud-upload\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"primary\"\n\t\t\t\t\t\t[disabled]=\"subSaveDisabled()\"\n\t\t\t\t\t\t(onClick)=\"subSaveEmit.emit()\" />\n\t\t\t\t}\n\t\t\t\t@if (addType() != 'none') {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"addRow()\" />\n\t\t\t\t}\n\t\t\t\t@if (showDelete()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"delRows()\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ag-grid .ag-body{overflow-y:scroll!important;scrollbar-gutter:stable;transition:height .2s ease}:host ::ng-deep .ag-grid{transition:height .2s ease}:host ::ng-deep .ag-root-wrapper{overflow:initial!important}:host ::ng-deep .tree-grid .ag-body-vertical-scroll{width:5px!important;max-width:5px!important;min-width:5px!important;display:block!important}:host ::ng-deep .cell-wrap-text{white-space:normal!important;word-break:break-word!important;line-height:1.5!important;padding:10px 15px}:host ::ng-deep .editable-column-header .ag-header-cell-text:after{content:\"\\2710\";padding-left:6px;color:var(--p-primary-color)}:host ::ng-deep .rowSpan .ag-cell{border-right:1px solid color-mix(in srgb,transparent,var(--ag-foreground-color) 15%)}\n"] }]
7536
+ args: [{ selector: 'custom-grid', standalone: true, imports: [AgGridAngular, ButtonModule], template: "@if (initGrid) {\n\t<div\n\t\t#gridContainer\n\t\t[class]=\"\n\t\t\t(toOptions().treeDataField ? 'tree-grid ' : '') +\n\t\t\t'grid-container w-full flex justify-between ' +\n\t\t\t(actPos() == 'bottom' ? 'flex-col' : 'flex-col-reverse')\n\t\t\">\n\t\t<ag-grid-angular\n\t\t\t[theme]=\"myTheme()\"\n\t\t\t[columnDefs]=\"columnDefs\"\n\t\t\t[gridOptions]=\"toOptions()\"\n\t\t\t[localeText]=\"localeText\"\n\t\t\t[components]=\"components\"\n\t\t\t[suppressDragLeaveHidesColumns]=\"true\"\n\t\t\t[undoRedoCellEditing]=\"toOptions().undoRedoCellEditing\"\n\t\t\t[undoRedoCellEditingLimit]=\"toOptions().undoRedoCellEditingLimit\"\n\t\t\t[rowBuffer]=\"30\"\n\t\t\t(cellValueChanged)=\"cellValueChanged($event)\"\n\t\t\t(selectionChanged)=\"onSelectionChanged($event)\"\n\t\t\t(rowGroupOpened)=\"onRowGroupOpened()\"\n\t\t\t(gridReady)=\"onGridReady($event)\"\n\t\t\t(rowDragEnd)=\"onRowDragEnd($event)\"\n\t\t\t(rowDragEnter)=\"rowDragEnter($event)\"\n\t\t\t[singleClickEdit]=\"singleClickEdit()\" />\n\t\t@if (showAct() && authLevel() >= 3 && ((addType() != 'none' && !addHidden()) || (showDelete() && !deleteHidden()) || (subSaveVisible() && !subSaveHidden()))) {\n\t\t\t@if (showHorizontal) {\n\t\t\t\t<div class=\"w-full border-t border-gray-300\"></div>\n\t\t\t}\n\t\t\t<div class=\"flex justify-end py-[5px] pr-[8px]\">\n\t\t\t\t@if (subSaveVisible() && !subSaveHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-cloud-upload\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"primary\"\n\t\t\t\t\t\t[disabled]=\"subSaveDisabled()\"\n\t\t\t\t\t\t(onClick)=\"subSaveEmit.emit()\" />\n\t\t\t\t}\n\t\t\t\t@if (addType() != 'none' && !addHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-plus\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"success\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"addRow()\" />\n\t\t\t\t}\n\t\t\t\t@if (showDelete() && !deleteHidden()) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\ticon=\"pi pi-trash\"\n\t\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t\tseverity=\"danger\"\n\t\t\t\t\t\t[disabled]=\"gridDisable()\"\n\t\t\t\t\t\t(onClick)=\"delRows()\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n}\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .ag-grid .ag-body{overflow-y:scroll!important;scrollbar-gutter:stable;transition:height .2s ease}:host ::ng-deep .ag-grid{transition:height .2s ease}:host ::ng-deep .ag-root-wrapper{overflow:initial!important}:host ::ng-deep .tree-grid .ag-body-vertical-scroll{width:5px!important;max-width:5px!important;min-width:5px!important;display:block!important}:host ::ng-deep .cell-wrap-text{white-space:normal!important;word-break:break-word!important;line-height:1.5!important;padding:10px 15px}:host ::ng-deep .editable-column-header .ag-header-cell-text:after{content:\"\\2710\";padding-left:6px;color:var(--p-primary-color)}:host ::ng-deep .rowSpan .ag-cell{border-right:1px solid color-mix(in srgb,transparent,var(--ag-foreground-color) 15%)}\n"] }]
6970
7537
  }], ctorParameters: () => [{ type: ActionService }], propDecorators: { grid: [{
6971
7538
  type: ViewChild,
6972
7539
  args: [AgGridAngular]
@@ -7925,7 +8492,7 @@ let RowSelectorComponent$1 = class RowSelectorComponent {
7925
8492
  }
7926
8493
  }
7927
8494
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, deps: [{ token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
7928
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "row-selector", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, selectModelCode: { classPropertyName: "selectModelCode", publicName: "selectModelCode", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialog: { classPropertyName: "customListFormByDialog", publicName: "customListFormByDialog", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialogContext: { classPropertyName: "customListFormByDialogContext", publicName: "customListFormByDialogContext", isSignal: true, isRequired: false, transformFunction: null }, customListDialogMap: { classPropertyName: "customListDialogMap", publicName: "customListDialogMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOk: "onOk", visible: "visibleChange", cancelSelect: "cancelSelect" }, viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<p-dialog\n\t[header]=\"title()\"\n\t[modal]=\"true\"\n\t[style]=\"{ width: '50vw' }\"\n\t[maximizable]=\"true\"\n\t[appendTo]=\"'body'\"\n\t[focusOnShow]=\"false\"\n\t(onShow)=\"onShow()\"\n\t(onHide)=\"onHide()\"\n\t(onMaximize)=\"onMaximize($event)\"\n\t[(visible)]=\"visible\">\n\t@if (innerVisible) {\n\t\t<div class=\"flex flex-col gap-2\">\n @if (customListFormByDialog()) {\n <ng-container *ngTemplateOutlet=\"customListFormByDialog(); context: customListFormByDialogContext() || {}\"></ng-container>\n }\n\t\t\t@if (showSearch()) {\n\t\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\n\t\t\t}\n\t\t\t<custom-grid\n\t\t\t\t[showAct]=\"false\"\n\t\t\t\t[searchPrm]=\"searchPrm()\"\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\n\t\t\t<div class=\"flex justify-end gap-2\">\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t(click)=\"cancel()\" />\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t(click)=\"ok()\" />\n\t\t\t</div>\n\t\t</div>\n\t}\n</p-dialog>\n", 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"], 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: DialogModule }, { kind: "component", type: i3$2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort", "subSaveVisible", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
8495
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "row-selector", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, selectModelCode: { classPropertyName: "selectModelCode", publicName: "selectModelCode", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialog: { classPropertyName: "customListFormByDialog", publicName: "customListFormByDialog", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialogContext: { classPropertyName: "customListFormByDialogContext", publicName: "customListFormByDialogContext", isSignal: true, isRequired: false, transformFunction: null }, customListDialogMap: { classPropertyName: "customListDialogMap", publicName: "customListDialogMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOk: "onOk", visible: "visibleChange", cancelSelect: "cancelSelect" }, viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<p-dialog\n\t[header]=\"title()\"\n\t[modal]=\"true\"\n\t[style]=\"{ width: '50vw' }\"\n\t[maximizable]=\"true\"\n\t[appendTo]=\"'body'\"\n\t[focusOnShow]=\"false\"\n\t(onShow)=\"onShow()\"\n\t(onHide)=\"onHide()\"\n\t(onMaximize)=\"onMaximize($event)\"\n\t[(visible)]=\"visible\">\n\t@if (innerVisible) {\n\t\t<div class=\"flex flex-col gap-2\">\n @if (customListFormByDialog()) {\n <ng-container *ngTemplateOutlet=\"customListFormByDialog(); context: customListFormByDialogContext() || {}\"></ng-container>\n }\n\t\t\t@if (showSearch()) {\n\t\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\n\t\t\t}\n\t\t\t<custom-grid\n\t\t\t\t[showAct]=\"false\"\n\t\t\t\t[searchPrm]=\"searchPrm()\"\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\n\t\t\t<div class=\"flex justify-end gap-2\">\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t(click)=\"cancel()\" />\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t(click)=\"ok()\" />\n\t\t\t</div>\n\t\t</div>\n\t}\n</p-dialog>\n", 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"], 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: DialogModule }, { kind: "component", type: i3$2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
7929
8496
  };
7930
8497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent$1, decorators: [{
7931
8498
  type: Component,
@@ -11058,12 +11625,49 @@ class PageFormComponent extends AmComponent {
11058
11625
  if (!currentGrid) {
11059
11626
  return false;
11060
11627
  }
11061
- return this.authLevel() >= 3 && currentGrid === this.getCurrentGrid() && currentGrid.subSave?.enabled === true;
11628
+ return this.authLevel() >= 3 && currentGrid === this.getCurrentGrid() && currentGrid.subSave?.enabled === true && !this.isSubSaveHidden(currentGrid);
11062
11629
  }
11063
11630
  getCurrentTabSaveLabel(grid) {
11064
11631
  const currentGrid = grid ?? this.getCurrentGrid();
11065
11632
  return currentGrid?.subSave?.label || '保存';
11066
11633
  }
11634
+ createSubButtonHiddenContext(grid) {
11635
+ const index = grid ? this.resolvedGridList().indexOf(grid) : -1;
11636
+ return {
11637
+ data: this.getPrm.data || this.cForm?.model?.(),
11638
+ grid,
11639
+ pageForm: this,
11640
+ component: this.runtimeContext?.['component'] || this,
11641
+ index,
11642
+ authLevel: this.authLevel(),
11643
+ getPrm: this.getPrm,
11644
+ runtimeContext: this.runtimeContext,
11645
+ };
11646
+ }
11647
+ resolveSubButtonHidden(grid, hidden) {
11648
+ if (typeof hidden !== 'function') {
11649
+ return false;
11650
+ }
11651
+ try {
11652
+ return !!hidden.call(this.runtimeContext?.['component'] || this, this.createSubButtonHiddenContext(grid || null));
11653
+ }
11654
+ catch (error) {
11655
+ console.error('子表按钮隐藏条件执行失败:', error, grid);
11656
+ return false;
11657
+ }
11658
+ }
11659
+ isSubSaveHidden(grid) {
11660
+ const currentGrid = grid ?? this.getCurrentGrid();
11661
+ return this.resolveSubButtonHidden(currentGrid, currentGrid?.subSave?.hidden);
11662
+ }
11663
+ isSubAddHidden(grid) {
11664
+ const currentGrid = grid ?? this.getCurrentGrid();
11665
+ return this.resolveSubButtonHidden(currentGrid, currentGrid?.addHidden);
11666
+ }
11667
+ isSubDeleteHidden(grid) {
11668
+ const currentGrid = grid ?? this.getCurrentGrid();
11669
+ return this.resolveSubButtonHidden(currentGrid, currentGrid?.deleteHidden);
11670
+ }
11067
11671
  hasMainPendingChanges() {
11068
11672
  const addData = this.upsertPrm.addData || {};
11069
11673
  const updData = this.upsertPrm.updData || {};
@@ -11249,7 +11853,7 @@ class PageFormComponent extends AmComponent {
11249
11853
  }
11250
11854
  }
11251
11855
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11252
- 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 }, showMainSaveButton: { classPropertyName: "showMainSaveButton", publicName: "showMainSaveButton", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, runtimeContextInput: { classPropertyName: "runtimeContextInput", publicName: "runtimeContextInput", isSignal: true, isRequired: false, transformFunction: null }, customLeftPanel: { classPropertyName: "customLeftPanel", publicName: "customLeftPanel", isSignal: true, isRequired: false, transformFunction: null }, customListFormTemplateMap: { classPropertyName: "customListFormTemplateMap", publicName: "customListFormTemplateMap", isSignal: true, isRequired: false, transformFunction: null }, customListFormInstanceMap: { classPropertyName: "customListFormInstanceMap", publicName: "customListFormInstanceMap", isSignal: true, isRequired: false, transformFunction: null }, leftPanel: { classPropertyName: "leftPanel", publicName: "leftPanel", isSignal: true, isRequired: false, transformFunction: null }, panelSelectedData: { classPropertyName: "panelSelectedData", publicName: "panelSelectedData", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, providers: [], queries: [{ propertyName: "pageFormSlots", predicate: PageFormSlotDirective, descendants: true }], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "rowSelector", first: true, predicate: RowSelectorComponent$1, 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 <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\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[showSaveButton]=\"showMainSaveButton()\"\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 <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'list') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel\">\n <am-single-select-listbox\n [options]=\"leftPanelItems\"\n [ngModel]=\"leftPanelSelectedValue\"\n (onChange)=\"onLeftPanelSelectionChange($event)\"\n [optionValue]=\"getPanelOptionValue()\"\n [optionLabel]=\"getPanelOptionLabel()\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n [allowDeselect]=\"getPanelAllowDeselect()\" />\n </div>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'tree') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel page-form-tree-panel\">\n @if (leftPanelTreeNodes.length > 0) {\n <p-tree\n [value]=\"leftPanelTreeNodes\"\n selectionMode=\"single\"\n [(selection)]=\"leftPanelSelectedNode\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n styleClass=\"page-form-left-tree\"\n (onNodeSelect)=\"onLeftPanelTreeNodeSelect($event)\"\n (onNodeExpand)=\"onLeftPanelTreeNodeExpand($event)\"\n (onNodeCollapse)=\"onLeftPanelTreeNodeCollapse($event)\" />\n } @else {\n <div class=\"page-form-left-panel-empty\">{{ getPanelEmptyMessage() }}</div>\n }\n </div>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (grids && grids.length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of grids; let i = $index; track fchild) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of grids; let i = $index; track grid) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (canShowCurrentTabSave(grid)) {\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n }\n @if (grid.subTableSource != 'none') {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n\t\t\t\t\t\t\t\t\t<div #customGrid></div>\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"grid.gridDisabled\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [subSaveVisible]=\"canShowCurrentTabSave(grid)\"\n [subSaveLabel]=\"getCurrentTabSaveLabel(grid)\"\n [subSaveDisabled]=\"grid.gridDisabled\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\"\n (subSaveEmit)=\"saveCurrentTab()\">\n </custom-grid>\n } @else {\n @if (canShowCurrentTabSave(grid)) {\n <div class=\"flex justify-end px-2 pt-2 bg-white\">\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n </div>\n }\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t[selectModelCode]=\"currentSelectModelCode || undefined\"\n\t[customListFormByDialog]=\"currentCustomListFormTemplate\"\n\t[customListFormByDialogContext]=\"currentCustomListFormContext\"\n\t[customListDialogMap]=\"customListFormInstanceMap()\"\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}:host ::ng-deep .page-form-left-tree{border:none!important;padding:0!important}.form-panel{border:solid 1px #dbdbdb}.page-form-left-panel{height:100%}.page-form-tree-panel{border:1px solid #e2e8f0;border-radius:4px;background:#fff;padding:4px}.page-form-left-panel-empty{display:flex;align-items:center;justify-content:center;min-height:160px;color:#94a3b8;font-size:12px}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$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", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], 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", "subSaveVisible", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i4.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i4.TabList, selector: "p-tablist" }, { kind: "component", type: i4.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch", "selectModelCode", "customListFormByDialog", "customListFormByDialogContext", "customListDialogMap"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }, { kind: "component", type: SingleSelectListboxComponent, selector: "am-single-select-listbox", inputs: ["options", "optionLabel", "optionValue", "disabled", "emptyMessage", "allowDeselect"], outputs: ["onChange"] }, { kind: "ngmodule", type: TreeModule }, { kind: "component", type: i2$8.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterOptions", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "highlightOnSelect", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }] }); }
11856
+ 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 }, showMainSaveButton: { classPropertyName: "showMainSaveButton", publicName: "showMainSaveButton", isSignal: true, isRequired: false, transformFunction: null }, configNewPath: { classPropertyName: "configNewPath", publicName: "configNewPath", isSignal: true, isRequired: false, transformFunction: null }, runtimeContextInput: { classPropertyName: "runtimeContextInput", publicName: "runtimeContextInput", isSignal: true, isRequired: false, transformFunction: null }, customLeftPanel: { classPropertyName: "customLeftPanel", publicName: "customLeftPanel", isSignal: true, isRequired: false, transformFunction: null }, customListFormTemplateMap: { classPropertyName: "customListFormTemplateMap", publicName: "customListFormTemplateMap", isSignal: true, isRequired: false, transformFunction: null }, customListFormInstanceMap: { classPropertyName: "customListFormInstanceMap", publicName: "customListFormInstanceMap", isSignal: true, isRequired: false, transformFunction: null }, leftPanel: { classPropertyName: "leftPanel", publicName: "leftPanel", isSignal: true, isRequired: false, transformFunction: null }, panelSelectedData: { classPropertyName: "panelSelectedData", publicName: "panelSelectedData", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, providers: [], queries: [{ propertyName: "pageFormSlots", predicate: PageFormSlotDirective, descendants: true }], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "rowSelector", first: true, predicate: RowSelectorComponent$1, 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 <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\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[showSaveButton]=\"showMainSaveButton()\"\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 <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'list') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel\">\n <am-single-select-listbox\n [options]=\"leftPanelItems\"\n [ngModel]=\"leftPanelSelectedValue\"\n (onChange)=\"onLeftPanelSelectionChange($event)\"\n [optionValue]=\"getPanelOptionValue()\"\n [optionLabel]=\"getPanelOptionLabel()\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n [allowDeselect]=\"getPanelAllowDeselect()\" />\n </div>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'tree') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel page-form-tree-panel\">\n @if (leftPanelTreeNodes.length > 0) {\n <p-tree\n [value]=\"leftPanelTreeNodes\"\n selectionMode=\"single\"\n [(selection)]=\"leftPanelSelectedNode\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n styleClass=\"page-form-left-tree\"\n (onNodeSelect)=\"onLeftPanelTreeNodeSelect($event)\"\n (onNodeExpand)=\"onLeftPanelTreeNodeExpand($event)\"\n (onNodeCollapse)=\"onLeftPanelTreeNodeCollapse($event)\" />\n } @else {\n <div class=\"page-form-left-panel-empty\">{{ getPanelEmptyMessage() }}</div>\n }\n </div>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (grids && grids.length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of grids; let i = $index; track fchild) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of grids; let i = $index; track grid) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (canShowCurrentTabSave(grid)) {\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n }\n @if (grid.subTableSource != 'none' && !isSubAddHidden(grid)) {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete && !isSubDeleteHidden(grid)) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n\t\t\t\t\t\t\t\t\t<div #customGrid></div>\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"grid.gridDisabled\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [deleteHidden]=\"isSubDeleteHidden(grid)\"\n [addHidden]=\"isSubAddHidden(grid)\"\n [subSaveVisible]=\"canShowCurrentTabSave(grid)\"\n [subSaveHidden]=\"isSubSaveHidden(grid)\"\n [subSaveLabel]=\"getCurrentTabSaveLabel(grid)\"\n [subSaveDisabled]=\"grid.gridDisabled\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\"\n (subSaveEmit)=\"saveCurrentTab()\">\n </custom-grid>\n } @else {\n @if (canShowCurrentTabSave(grid)) {\n <div class=\"flex justify-end px-2 pt-2 bg-white\">\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n </div>\n }\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t[selectModelCode]=\"currentSelectModelCode || undefined\"\n\t[customListFormByDialog]=\"currentCustomListFormTemplate\"\n\t[customListFormByDialogContext]=\"currentCustomListFormContext\"\n\t[customListDialogMap]=\"customListFormInstanceMap()\"\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}:host ::ng-deep .page-form-left-tree{border:none!important;padding:0!important}.form-panel{border:solid 1px #dbdbdb}.page-form-left-panel{height:100%}.page-form-tree-panel{border:1px solid #e2e8f0;border-radius:4px;background:#fff;padding:4px}.page-form-left-panel-empty{display:flex;align-items:center;justify-content:center;min-height:160px;color:#94a3b8;font-size:12px}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$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", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], 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", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i4.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i4.TabList, selector: "p-tablist" }, { kind: "component", type: i4.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent$1, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible", "showSearch", "selectModelCode", "customListFormByDialog", "customListFormByDialogContext", "customListDialogMap"], outputs: ["onOk", "visibleChange", "cancelSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }, { kind: "component", type: SingleSelectListboxComponent, selector: "am-single-select-listbox", inputs: ["options", "optionLabel", "optionValue", "disabled", "emptyMessage", "allowDeselect"], outputs: ["onChange"] }, { kind: "ngmodule", type: TreeModule }, { kind: "component", type: i2$8.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterOptions", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "highlightOnSelect", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }] }); }
11253
11857
  }
11254
11858
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
11255
11859
  type: Component,
@@ -11269,7 +11873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
11269
11873
  HrefBtnListComponent,
11270
11874
  SingleSelectListboxComponent,
11271
11875
  TreeModule,
11272
- ], providers: [], template: "<div class=\"md:overflow-hidden\">\n <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\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[showSaveButton]=\"showMainSaveButton()\"\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 <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'list') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel\">\n <am-single-select-listbox\n [options]=\"leftPanelItems\"\n [ngModel]=\"leftPanelSelectedValue\"\n (onChange)=\"onLeftPanelSelectionChange($event)\"\n [optionValue]=\"getPanelOptionValue()\"\n [optionLabel]=\"getPanelOptionLabel()\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n [allowDeselect]=\"getPanelAllowDeselect()\" />\n </div>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'tree') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel page-form-tree-panel\">\n @if (leftPanelTreeNodes.length > 0) {\n <p-tree\n [value]=\"leftPanelTreeNodes\"\n selectionMode=\"single\"\n [(selection)]=\"leftPanelSelectedNode\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n styleClass=\"page-form-left-tree\"\n (onNodeSelect)=\"onLeftPanelTreeNodeSelect($event)\"\n (onNodeExpand)=\"onLeftPanelTreeNodeExpand($event)\"\n (onNodeCollapse)=\"onLeftPanelTreeNodeCollapse($event)\" />\n } @else {\n <div class=\"page-form-left-panel-empty\">{{ getPanelEmptyMessage() }}</div>\n }\n </div>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (grids && grids.length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of grids; let i = $index; track fchild) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of grids; let i = $index; track grid) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (canShowCurrentTabSave(grid)) {\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n }\n @if (grid.subTableSource != 'none') {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n\t\t\t\t\t\t\t\t\t<div #customGrid></div>\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"grid.gridDisabled\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [subSaveVisible]=\"canShowCurrentTabSave(grid)\"\n [subSaveLabel]=\"getCurrentTabSaveLabel(grid)\"\n [subSaveDisabled]=\"grid.gridDisabled\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\"\n (subSaveEmit)=\"saveCurrentTab()\">\n </custom-grid>\n } @else {\n @if (canShowCurrentTabSave(grid)) {\n <div class=\"flex justify-end px-2 pt-2 bg-white\">\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n </div>\n }\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t[selectModelCode]=\"currentSelectModelCode || undefined\"\n\t[customListFormByDialog]=\"currentCustomListFormTemplate\"\n\t[customListFormByDialogContext]=\"currentCustomListFormContext\"\n\t[customListDialogMap]=\"customListFormInstanceMap()\"\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}:host ::ng-deep .page-form-left-tree{border:none!important;padding:0!important}.form-panel{border:solid 1px #dbdbdb}.page-form-left-panel{height:100%}.page-form-tree-panel{border:1px solid #e2e8f0;border-radius:4px;background:#fff;padding:4px}.page-form-left-panel-empty{display:flex;align-items:center;justify-content:center;min-height:160px;color:#94a3b8;font-size:12px}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
11876
+ ], providers: [], template: "<div class=\"md:overflow-hidden\">\n <!-- \u4FDD\u5B58\u65B0\u5EFA\u64CD\u4F5C\u533A -->\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[showSaveButton]=\"showMainSaveButton()\"\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 <!-- form \u4E3B\u533A\u57DF-->\n @if(this.form().form) {\n <div class=\"main flex flex-wrap\">\n @if (customLeftPanel()) {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-fit md:max-w-full\">\n <ng-container *ngTemplateOutlet=\"customLeftPanel()\"></ng-container>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'list') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel\">\n <am-single-select-listbox\n [options]=\"leftPanelItems\"\n [ngModel]=\"leftPanelSelectedValue\"\n (onChange)=\"onLeftPanelSelectionChange($event)\"\n [optionValue]=\"getPanelOptionValue()\"\n [optionLabel]=\"getPanelOptionLabel()\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n [allowDeselect]=\"getPanelAllowDeselect()\" />\n </div>\n </div>\n } @else if (leftPanel()?.enabled && leftPanel()?.mode === 'tree') {\n <div class=\"hidden md:block md:h-full md:overflow-y-auto md:flex-none md:w-[220px] md:max-w-full px-2\">\n <div class=\"page-form-left-panel page-form-tree-panel\">\n @if (leftPanelTreeNodes.length > 0) {\n <p-tree\n [value]=\"leftPanelTreeNodes\"\n selectionMode=\"single\"\n [(selection)]=\"leftPanelSelectedNode\"\n [emptyMessage]=\"getPanelEmptyMessage()\"\n styleClass=\"page-form-left-tree\"\n (onNodeSelect)=\"onLeftPanelTreeNodeSelect($event)\"\n (onNodeExpand)=\"onLeftPanelTreeNodeExpand($event)\"\n (onNodeCollapse)=\"onLeftPanelTreeNodeCollapse($event)\" />\n } @else {\n <div class=\"page-form-left-panel-empty\">{{ getPanelEmptyMessage() }}</div>\n }\n </div>\n </div>\n }\n <div class=\"w-full md:min-w-0 md:flex-1 md:h-full md:overflow-y-auto\">\n <div class=\"bg-white mx-2 form-panel\">\n <div class=\"p-2 flex-1\">\n <form [formGroup]=\"form().form!\">\n <custom-form\n #cForm\n [options]=\"formOptions\"\n [upsert]=\"upsertPrm\"\n [model]=\"getPrm.data ?? {}\"></custom-form>\n </form>\n </div>\n @if (grids && grids.length > 0) {\n <div class=\"relative mb-2\">\n <p-tabs [(value)]=\"indexValue\">\n <p-tablist>\n @for (fchild of grids; let i = $index; track fchild) {\n <p-tab\n [value]=\"i\"\n (click)=\"tabClick()\">\n {{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n </p-tab>\n }\n </p-tablist>\n </p-tabs>\n </div>\n }\n @for (grid of grids; let i = $index; track grid) {\n @let slotState = slotRenderStates[i];\n @let slot = slotState?.slot;\n <div [hidden]=\"indexValue != i\" [style.height]=\"slot ? grid.gridOptions.scrollHeight : null\">\n @if (slot) {\n <ng-container *ngTemplateOutlet=\"slot.templateRef; context: slotState.context\"> </ng-container>\n <div class=\"flex justify-end py-[5px] pr-[8px] bg-white\">\n @if (canShowCurrentTabSave(grid)) {\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n }\n @if (grid.subTableSource != 'none' && !isSubAddHidden(grid)) {\n <p-button\n icon=\"pi pi-plus\"\n [text]=\"true\"\n severity=\"success\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"addRowClickHandler(grid)\" />\n }\n @if (grid.showDelete && !isSubDeleteHidden(grid)) {\n <p-button\n icon=\"pi pi-trash\"\n [text]=\"true\"\n severity=\"danger\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"delRowClickHandler(grid)\" />\n }\n\t\t\t\t\t\t\t\t\t<div #customGrid></div>\n </div>\n } @else {\n @if (grid.type == 'grid') {\n <custom-grid\n #customGrid\n [rowData]=\"getPrm.data?.[grid.subDataKey!]\"\n [upsert]=\"upsertPrm\"\n (deleteEmit)=\"delRows($event)\"\n [addType]=\"grid.subTableSource\"\n (addEmit)=\"dataSourceShow()\"\n [gridOptions]=\"grid.gridOptions\"\n [gridDisable]=\"grid.gridDisabled\"\n [authLevel]=\"authLevel()\"\n [showDelete]=\"grid.showDelete\"\n [deleteHidden]=\"isSubDeleteHidden(grid)\"\n [addHidden]=\"isSubAddHidden(grid)\"\n [subSaveVisible]=\"canShowCurrentTabSave(grid)\"\n [subSaveHidden]=\"isSubSaveHidden(grid)\"\n [subSaveLabel]=\"getCurrentTabSaveLabel(grid)\"\n [subSaveDisabled]=\"grid.gridDisabled\"\n [selectData]=\"grid.selectData\"\n [addSort]=\"grid.addSort\"\n (subSaveEmit)=\"saveCurrentTab()\">\n </custom-grid>\n } @else {\n @if (canShowCurrentTabSave(grid)) {\n <div class=\"flex justify-end px-2 pt-2 bg-white\">\n <p-button\n icon=\"pi pi-cloud-upload\"\n [text]=\"true\"\n severity=\"primary\"\n [disabled]=\"grid.gridDisable\"\n (onClick)=\"saveCurrentTab()\" />\n </div>\n }\n <custom-form\n #tabForm\n [options]=\"grid\"\n [upsert]=\"upsertPrm\"\n [model]=\"subFormModel[grid.subDataKey!] || {}\">\n </custom-form>\n }\n }\n </div>\n }\n </div>\n </div>\n @if (showLog()) {\n <div class=\"w-full lg:w-[400px] md:w-[300px] md:h-full md:overflow-y-auto hidden md:block\">\n <custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n </div>\n }\n </div>\n }\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t[selectModelCode]=\"currentSelectModelCode || undefined\"\n\t[customListFormByDialog]=\"currentCustomListFormTemplate\"\n\t[customListFormByDialogContext]=\"currentCustomListFormContext\"\n\t[customListDialogMap]=\"customListFormInstanceMap()\"\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}:host ::ng-deep .page-form-left-tree{border:none!important;padding:0!important}.form-panel{border:solid 1px #dbdbdb}.page-form-left-panel{height:100%}.page-form-tree-panel{border:1px solid #e2e8f0;border-radius:4px;background:#fff;padding:4px}.page-form-left-panel-empty{display:flex;align-items:center;justify-content:center;min-height:160px;color:#94a3b8;font-size:12px}.icon-sidebar{color:#334155;padding:2.5px}.icon-sidebar:hover{color:var(--p-primary-color);cursor:pointer}\n"] }]
11273
11877
  }], ctorParameters: () => [], propDecorators: { cForm: [{
11274
11878
  type: ViewChild,
11275
11879
  args: ['cForm']
@@ -11326,7 +11930,7 @@ class PageGridListComponent extends AmComponent {
11326
11930
  return searchPrm;
11327
11931
  }
11328
11932
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageGridListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11329
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PageGridListComponent, isStandalone: true, selector: "app-page-grid-list", inputs: { params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n\t<div class=\"flex flex-wrap items-center py-1 px-1 bg-white\">\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-start order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"params().addVisible\"\n\t\t\t\t[exportVisible]=\"params().exportVisible ?? true\"\n\t\t\t\t[importVisible]=\"params().importVisible ?? true\"\n\t\t\t\t[newUrl]=\"params().newUrl\"\n\t\t\t\t[onExport]=\"params().onExport\"\n\t\t\t\t[isList]=\"true\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[menus]=\"menus()\"\n\t\t\t\t[authLevel]=\"authLevel()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\t\t<div class=\"lg:basis-4/6 md:basis-1/2 basis-full flex justify-center items-center md:order-2 order-last\">\n\t\t\t<custom-head\n\t\t\t\tclass=\"max-lg:min-w-full\"\n\t\t\t\t[actions]=\"actions()\"\n\t\t\t\t[grid]=\"customGrid\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-head>\n\t\t</div>\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-end order-3\">\n\t\t\t<custom-pager></custom-pager>\n\t\t</div>\n\t</div>\n\t<div class=\"flex-1\">\n\t\t<custom-grid\n\t\t\t#customGrid\n\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t[searchPrm]=\"searchPrm\"\n\t\t\t[showAct]=\"false\"\n\t\t\t[gridOptions]=\"gridOptions()!\">\n\t\t</custom-grid>\n\t</div>\n</div>\n<app-import\n\t[fileName]=\"params()?.importFileName\"\n\t[funcName]=\"params()?.importFuncName\"\n\t[orgVisible]=\"params()?.importOrgVisible\"\n\t[orgField]=\"params()?.importOrgField\"\n\t[grid]=\"customGrid\"\n\t[modelName]=\"gridOptions()!.modelName ?? ''\"\n\t[importOrgValueField]=\"params()?.importOrgValueField ?? 'deptId'\">\n</app-import>\n", styles: [".ms-grid{background-color:#efefef}.ms-content{border-top:solid 1px #dbdbdb;background-color:#f9fafb}.mode-hide{display:none}\n"], dependencies: [{ kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable", "addSort", "subSaveVisible", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: PagerComponent, selector: "custom-pager" }, { kind: "component", type: HeadComponent, selector: "custom-head", inputs: ["gridOptions", "grid", "actions", "authLevel"] }, { kind: "component", type: ImportComponent, selector: "app-import", inputs: ["visible", "fileName", "funcName", "orgVisible", "orgField", "modelName", "grid", "importOrgValueField"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
11933
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PageGridListComponent, isStandalone: true, selector: "app-page-grid-list", inputs: { params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n\t<div class=\"flex flex-wrap items-center py-1 px-1 bg-white\">\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-start order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"params().addVisible\"\n\t\t\t\t[exportVisible]=\"params().exportVisible ?? true\"\n\t\t\t\t[importVisible]=\"params().importVisible ?? true\"\n\t\t\t\t[newUrl]=\"params().newUrl\"\n\t\t\t\t[onExport]=\"params().onExport\"\n\t\t\t\t[isList]=\"true\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[menus]=\"menus()\"\n\t\t\t\t[authLevel]=\"authLevel()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\t\t<div class=\"lg:basis-4/6 md:basis-1/2 basis-full flex justify-center items-center md:order-2 order-last\">\n\t\t\t<custom-head\n\t\t\t\tclass=\"max-lg:min-w-full\"\n\t\t\t\t[actions]=\"actions()\"\n\t\t\t\t[grid]=\"customGrid\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-head>\n\t\t</div>\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-end order-3\">\n\t\t\t<custom-pager></custom-pager>\n\t\t</div>\n\t</div>\n\t<div class=\"flex-1\">\n\t\t<custom-grid\n\t\t\t#customGrid\n\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t[searchPrm]=\"searchPrm\"\n\t\t\t[showAct]=\"false\"\n\t\t\t[gridOptions]=\"gridOptions()!\">\n\t\t</custom-grid>\n\t</div>\n</div>\n<app-import\n\t[fileName]=\"params()?.importFileName\"\n\t[funcName]=\"params()?.importFuncName\"\n\t[orgVisible]=\"params()?.importOrgVisible\"\n\t[orgField]=\"params()?.importOrgField\"\n\t[grid]=\"customGrid\"\n\t[modelName]=\"gridOptions()!.modelName ?? ''\"\n\t[importOrgValueField]=\"params()?.importOrgValueField ?? 'deptId'\">\n</app-import>\n", styles: [".ms-grid{background-color:#efefef}.ms-content{border-top:solid 1px #dbdbdb;background-color:#f9fafb}.mode-hide{display:none}\n"], dependencies: [{ kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: PagerComponent, selector: "custom-pager" }, { kind: "component", type: HeadComponent, selector: "custom-head", inputs: ["gridOptions", "grid", "actions", "authLevel"] }, { kind: "component", type: ImportComponent, selector: "app-import", inputs: ["visible", "fileName", "funcName", "orgVisible", "orgField", "modelName", "grid", "importOrgValueField"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
11330
11934
  }
11331
11935
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageGridListComponent, decorators: [{
11332
11936
  type: Component,
@@ -11532,5 +12136,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
11532
12136
  * Generated bundle index. Do not edit.
11533
12137
  */
11534
12138
 
11535
- export { ActionService, ActionsComponent, AmComponent, AsyncRenderer, CellEditAutoCompleteComponent, CellEditDatePickerComponent, CellEditInputDateComponent, CellEditInputNumberCompoent, CellEditInputTextCompoent, CellEditSelectComponent, CellEditSelectFieldComponent, CodeMirrorComponent, CrumbActionComponent, FieldControl, FormComponent, FormFieldComponent, FormTypeComponent, GridComponent, HeadComponent, HrefBtnListComponent, I18N_Token, I18nService, ImportComponent, LANGS, LinkRenderer, LoadingComponent, LoadingService, LogComponent, PageActionService, PageFormComponent, PageFormService, PageFormSlotDirective, PageGridListComponent, PagerComponent, PopActionService, RowSelectorComponent$1 as RowSelectorComponent, SearchComponent, SingleSelectListboxComponent, StepsComponent, ThemeConfigComponent, ThemeConfigService, UserHistoryService, calcRowSpan, changeContent, clearLocal, compileTsToJs, convertAct, convertCol, convertForm, convertGrid, createCircularIterator, deepClone, executeRuntimeContextInit, filterObjectByKeys, formTypeToProps, generateUniqueId, getFilterMatchMode, gridOptionsHooker, gridUtils, isJSONParsable, pageListGridOptions, parseFunctions, toPascalCase, wrapHeaderValueGetter };
12139
+ export { ActionService, ActionsComponent, AmComponent, AsyncRenderer, AsyncSelectLabelRenderer, CellEditAsyncSelectFieldComponent, CellEditAutoCompleteComponent, CellEditDatePickerComponent, CellEditInputDateComponent, CellEditInputNumberCompoent, CellEditInputTextCompoent, CellEditSelectComponent, CellEditSelectFieldComponent, CodeMirrorComponent, CrumbActionComponent, FieldControl, FormComponent, FormFieldComponent, FormTypeComponent, GridComponent, HeadComponent, HrefBtnListComponent, I18N_Token, I18nService, ImportComponent, LANGS, LinkRenderer, LoadingComponent, LoadingService, LogComponent, PageActionService, PageFormComponent, PageFormService, PageFormSlotDirective, PageGridListComponent, PagerComponent, PopActionService, RowSelectorComponent$1 as RowSelectorComponent, SearchComponent, SingleSelectListboxComponent, StepsComponent, ThemeConfigComponent, ThemeConfigService, UserHistoryService, calcRowSpan, changeContent, clearLocal, compileTsToJs, convertAct, convertCol, convertForm, convertGrid, createCircularIterator, deepClone, executeRuntimeContextInit, filterObjectByKeys, formTypeToProps, generateUniqueId, getFilterMatchMode, gridOptionsHooker, gridUtils, isJSONParsable, pageListGridOptions, parseFunctions, toPascalCase, wrapHeaderValueGetter };
11536
12140
  //# sourceMappingURL=imm-element-ui.mjs.map