@ai-table/grid 0.5.8 → 0.6.0-next.0

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.
@@ -195,7 +195,7 @@ function createListener(instance) {
195
195
 
196
196
  class KoShape {
197
197
  constructor() {
198
- this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
198
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
199
199
  this.koMouseover = new EventEmitter();
200
200
  this.koMousemove = new EventEmitter();
201
201
  this.koMouseout = new EventEmitter();
@@ -277,10 +277,10 @@ class KoShape {
277
277
  ngOnDestroy() {
278
278
  this._node?.destroy();
279
279
  }
280
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoShape, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: KoShape, isStandalone: true, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koMouseover: "koMouseover", koMousemove: "koMousemove", koMouseout: "koMouseout", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", koMousedown: "koMousedown", koMouseup: "koMouseup", koWheel: "koWheel", koContextmenu: "koContextmenu", koClick: "koClick", koDblclick: "koDblclick", koTouchstart: "koTouchstart", koTouchmove: "koTouchmove", koTouchend: "koTouchend", koTap: "koTap", koDbltap: "koDbltap", koDragstart: "koDragstart", koDragmove: "koDragmove", koDragend: "koDragend" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoShape, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: KoShape, isStandalone: true, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koMouseover: "koMouseover", koMousemove: "koMousemove", koMouseout: "koMouseout", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", koMousedown: "koMousedown", koMouseup: "koMouseup", koWheel: "koWheel", koContextmenu: "koContextmenu", koClick: "koClick", koDblclick: "koDblclick", koTouchstart: "koTouchstart", koTouchmove: "koTouchmove", koTouchend: "koTouchend", koTap: "koTap", koDbltap: "koDbltap", koDragstart: "koDragstart", koDragmove: "koDragmove", koDragend: "koDragend" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
282
282
  }
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoShape, decorators: [{
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoShape, decorators: [{
284
284
  type: Component,
285
285
  args: [{
286
286
  selector: 'ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer',
@@ -328,15 +328,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
328
328
  }] } });
329
329
 
330
330
  class KoContainer extends KoShape {
331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: KoContainer, isStandalone: true, selector: "ko-layer, ko-fastlayer, ko-group", providers: [
331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: KoContainer, isStandalone: true, selector: "ko-layer, ko-fastlayer, ko-group", providers: [
333
333
  {
334
334
  provide: KO_CONTAINER_TOKEN,
335
335
  useExisting: KoContainer
336
336
  }
337
337
  ], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
338
338
  }
339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoContainer, decorators: [{
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoContainer, decorators: [{
340
340
  type: Component,
341
341
  args: [{
342
342
  selector: 'ko-layer, ko-fastlayer, ko-group',
@@ -353,7 +353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
353
353
 
354
354
  class KoStage {
355
355
  constructor() {
356
- this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
356
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
357
357
  this.koMouseover = new EventEmitter();
358
358
  this.koMousemove = new EventEmitter();
359
359
  this.koMouseout = new EventEmitter();
@@ -407,15 +407,15 @@ class KoStage {
407
407
  ngOnDestroy() {
408
408
  this._stage?.destroy();
409
409
  }
410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
411
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: KoStage, isStandalone: true, selector: "ko-stage", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koMouseover: "koMouseover", koMousemove: "koMousemove", koMouseout: "koMouseout", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", koMousedown: "koMousedown", koMouseup: "koMouseup", koWheel: "koWheel", koContextmenu: "koContextmenu", koClick: "koClick", koDblclick: "koDblclick", koTouchstart: "koTouchstart", koTouchmove: "koTouchmove", koTouchend: "koTouchend", koTap: "koTap", koDbltap: "koDbltap", koDragstart: "koDragstart", koDragmove: "koDragmove", koDragend: "koDragend" }, providers: [
410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: KoStage, isStandalone: true, selector: "ko-stage", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koMouseover: "koMouseover", koMousemove: "koMousemove", koMouseout: "koMouseout", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", koMousedown: "koMousedown", koMouseup: "koMouseup", koWheel: "koWheel", koContextmenu: "koContextmenu", koClick: "koClick", koDblclick: "koDblclick", koTouchstart: "koTouchstart", koTouchmove: "koTouchmove", koTouchend: "koTouchend", koTap: "koTap", koDbltap: "koDbltap", koDragstart: "koDragstart", koDragmove: "koDragmove", koDragend: "koDragend" }, providers: [
412
412
  {
413
413
  provide: KO_CONTAINER_TOKEN,
414
414
  useExisting: KoStage
415
415
  }
416
416
  ], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
417
417
  }
418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: KoStage, decorators: [{
418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: KoStage, decorators: [{
419
419
  type: Component,
420
420
  args: [{
421
421
  selector: 'ko-stage',
@@ -945,7 +945,7 @@ const AI_TABLE_AUTO_SCROLL_RIGHT_THRESHOLD = 40;
945
945
  const AI_TABLE_AUTO_SCROLL_TOP_THRESHOLD = AI_TABLE_FIELD_HEAD_HEIGHT / 2;
946
946
  const AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD = AI_TABLE_FIELD_HEAD_HEIGHT / 2;
947
947
  const AI_TABLE_FIELD_STAT_INNER_HEIGHT = 47; // 字段统计内部高度
948
- const AI_TABLE_TEXT_LINE_HEIGHT = 1.84; // 默认文本行高
948
+ const AI_TABLE_TEXT_LINE_HEIGHT = 1.7; // 默认文本行高
949
949
  const AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT = AI_TABLE_FIELD_STAT_INNER_HEIGHT + AI_TABLE_CELL_LINE_BORDER * 2; // 统计容器高度
950
950
  const AI_TABLE_GROUP_MAX_LEVEL = 3;
951
951
  const AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON = 'AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON';
@@ -1677,15 +1677,15 @@ class RendererContext {
1677
1677
 
1678
1678
  class AbstractEditCellEditor {
1679
1679
  constructor() {
1680
- this.recordHeight = input(AI_TABLE_RECORD_HEIGHT_LEVELS.low, ...(ngDevMode ? [{ debugName: "recordHeight" }] : []));
1681
- this.autoFocus = input(true, ...(ngDevMode ? [{ debugName: "autoFocus", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
1680
+ this.recordHeight = input(AI_TABLE_RECORD_HEIGHT_LEVELS.low, ...(ngDevMode ? [{ debugName: "recordHeight" }] : /* istanbul ignore next */ []));
1681
+ this.autoFocus = input(true, { ...(ngDevMode ? { debugName: "autoFocus" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
1682
1682
  this.updateFieldValues = output();
1683
1683
  this.field = computed(() => {
1684
1684
  return this.aiTable.fieldsMap()[this.fieldId];
1685
- }, ...(ngDevMode ? [{ debugName: "field" }] : []));
1685
+ }, ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
1686
1686
  this.record = computed(() => {
1687
1687
  return this.aiTable.recordsMap()[this.recordId];
1688
- }, ...(ngDevMode ? [{ debugName: "record" }] : []));
1688
+ }, ...(ngDevMode ? [{ debugName: "record" }] : /* istanbul ignore next */ []));
1689
1689
  this.elementRef = inject((ElementRef));
1690
1690
  this.thyPopoverRef = inject((ThyPopoverRef), { optional: true });
1691
1691
  this.render2 = inject(Renderer2);
@@ -1739,10 +1739,10 @@ class AbstractEditCellEditor {
1739
1739
  });
1740
1740
  }
1741
1741
  }
1742
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AbstractEditCellEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1743
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AbstractEditCellEditor, isStandalone: true, selector: "abstract-edit-cell", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: false, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: false, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: false, isRequired: true, transformFunction: null }, recordHeight: { classPropertyName: "recordHeight", publicName: "recordHeight", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateFieldValues: "updateFieldValues" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1742
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AbstractEditCellEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AbstractEditCellEditor, isStandalone: true, selector: "abstract-edit-cell", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: false, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: false, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: false, isRequired: true, transformFunction: null }, recordHeight: { classPropertyName: "recordHeight", publicName: "recordHeight", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { updateFieldValues: "updateFieldValues" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1744
1744
  }
1745
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AbstractEditCellEditor, decorators: [{
1745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AbstractEditCellEditor, decorators: [{
1746
1746
  type: Component,
1747
1747
  args: [{
1748
1748
  selector: 'abstract-edit-cell',
@@ -1795,8 +1795,8 @@ class DateCellEditorComponent extends AbstractEditCellEditor {
1795
1795
  this.closePopover();
1796
1796
  }
1797
1797
  }
1798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: DateCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1799
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: DateCellEditorComponent, isStandalone: true, selector: "date-cell-editor", host: { classAttribute: "date-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
1798
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DateCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1799
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: DateCellEditorComponent, isStandalone: true, selector: "date-cell-editor", host: { classAttribute: "date-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
1800
1800
  <thy-date-picker
1801
1801
  class="h-100"
1802
1802
  thyTimestampPrecision="seconds"
@@ -1814,7 +1814,7 @@ class DateCellEditorComponent extends AbstractEditCellEditor {
1814
1814
  </thy-date-picker>
1815
1815
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyDatePicker, selector: "thy-date-picker", exportAs: ["thyDatePicker"] }, { kind: "ngmodule", type: ThyTimePickerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1816
1816
  }
1817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: DateCellEditorComponent, decorators: [{
1817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DateCellEditorComponent, decorators: [{
1818
1818
  type: Component,
1819
1819
  args: [{
1820
1820
  selector: 'date-cell-editor',
@@ -1851,7 +1851,7 @@ class LinkEditComponent {
1851
1851
  this.thyPopoverRef = thyPopoverRef;
1852
1852
  this.url = '';
1853
1853
  this.text = '';
1854
- this.aiTable = input(...(ngDevMode ? [undefined, { debugName: "aiTable" }] : []));
1854
+ this.aiTable = input(...(ngDevMode ? [undefined, { debugName: "aiTable" }] : /* istanbul ignore next */ []));
1855
1855
  this.confirm = new EventEmitter();
1856
1856
  this.i18nTexts = computed(() => {
1857
1857
  return {
@@ -1862,7 +1862,7 @@ class LinkEditComponent {
1862
1862
  cancel: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.cancel),
1863
1863
  apply: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.apply)
1864
1864
  };
1865
- }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : []));
1865
+ }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : /* istanbul ignore next */ []));
1866
1866
  this.validatorConfig = computed(() => {
1867
1867
  return {
1868
1868
  validationMessages: {
@@ -1871,7 +1871,7 @@ class LinkEditComponent {
1871
1871
  }
1872
1872
  }
1873
1873
  };
1874
- }, ...(ngDevMode ? [{ debugName: "validatorConfig" }] : []));
1874
+ }, ...(ngDevMode ? [{ debugName: "validatorConfig" }] : /* istanbul ignore next */ []));
1875
1875
  }
1876
1876
  ngOnInit() { }
1877
1877
  close() {
@@ -1892,10 +1892,10 @@ class LinkEditComponent {
1892
1892
  const link = url ? { text: text || url, url: url } : undefined;
1893
1893
  this.confirm.emit(link);
1894
1894
  }
1895
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: LinkEditComponent, deps: [{ token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
1896
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: LinkEditComponent, isStandalone: true, selector: "link-edit", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: false, isRequired: false, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirm: "confirm" }, ngImport: i0, template: "<form\n thyLayout=\"vertical\"\n thyStopPropagation\n thyForm\n #linkForm=\"thyForm\"\n [thyFormValidatorConfig]=\"validatorConfig()\"\n name=\"linkForm\"\n class=\"p-5\"\n>\n <thy-form-group [thyLabelText]=\"i18nTexts().linkText\">\n <input thyInput [placeholder]=\"i18nTexts().textPlaceholder\" name=\"text\" [(ngModel)]=\"text\" />\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"i18nTexts().urlLabel\">\n <input name=\"url\" thyInput [placeholder]=\"i18nTexts().urlPlaceholder\" type=\"text\" [(ngModel)]=\"url\" />\n </thy-form-group>\n <thy-form-group-footer thyAlign=\"right\">\n <div class=\"btn-pair\">\n <button thyStopPropagation thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"close()\">{{ i18nTexts().cancel }}</button>\n <button thyStopPropagation thyButton=\"primary\" thySize=\"sm\" (thyFormSubmit)=\"apply(linkForm)\">{{ i18nTexts().apply }}</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }] }); }
1895
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LinkEditComponent, deps: [{ token: i1$1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
1896
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: LinkEditComponent, isStandalone: true, selector: "link-edit", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: false, isRequired: false, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirm: "confirm" }, ngImport: i0, template: "<form\n thyLayout=\"vertical\"\n thyStopPropagation\n thyForm\n #linkForm=\"thyForm\"\n [thyFormValidatorConfig]=\"validatorConfig()\"\n name=\"linkForm\"\n class=\"p-5\"\n>\n <thy-form-group [thyLabelText]=\"i18nTexts().linkText\">\n <input thyInput [placeholder]=\"i18nTexts().textPlaceholder\" name=\"text\" [(ngModel)]=\"text\" />\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"i18nTexts().urlLabel\">\n <input name=\"url\" thyInput [placeholder]=\"i18nTexts().urlPlaceholder\" type=\"text\" [(ngModel)]=\"url\" />\n </thy-form-group>\n <thy-form-group-footer thyAlign=\"right\">\n <div class=\"btn-pair\">\n <button thyStopPropagation thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"close()\">{{ i18nTexts().cancel }}</button>\n <button thyStopPropagation thyButton=\"primary\" thySize=\"sm\" (thyFormSubmit)=\"apply(linkForm)\">{{ i18nTexts().apply }}</button>\n </div>\n </thy-form-group-footer>\n</form>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }] }); }
1897
1897
  }
1898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: LinkEditComponent, decorators: [{
1898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LinkEditComponent, decorators: [{
1899
1899
  type: Component,
1900
1900
  args: [{ selector: 'link-edit', imports: [FormsModule, ThyStopPropagationDirective, ThyInputDirective, ThyButton, ThyFormSubmitDirective, ThyFormModule], template: "<form\n thyLayout=\"vertical\"\n thyStopPropagation\n thyForm\n #linkForm=\"thyForm\"\n [thyFormValidatorConfig]=\"validatorConfig()\"\n name=\"linkForm\"\n class=\"p-5\"\n>\n <thy-form-group [thyLabelText]=\"i18nTexts().linkText\">\n <input thyInput [placeholder]=\"i18nTexts().textPlaceholder\" name=\"text\" [(ngModel)]=\"text\" />\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"i18nTexts().urlLabel\">\n <input name=\"url\" thyInput [placeholder]=\"i18nTexts().urlPlaceholder\" type=\"text\" [(ngModel)]=\"url\" />\n </thy-form-group>\n <thy-form-group-footer thyAlign=\"right\">\n <div class=\"btn-pair\">\n <button thyStopPropagation thyButton=\"link-secondary\" thySize=\"sm\" (click)=\"close()\">{{ i18nTexts().cancel }}</button>\n <button thyStopPropagation thyButton=\"primary\" thySize=\"sm\" (thyFormSubmit)=\"apply(linkForm)\">{{ i18nTexts().apply }}</button>\n </div>\n </thy-form-group-footer>\n</form>\n" }]
1901
1901
  }], ctorParameters: () => [{ type: i1$1.ThyPopoverRef }], propDecorators: { url: [{
@@ -1918,7 +1918,7 @@ class LinkCellEditorComponent extends AbstractEditCellEditor {
1918
1918
  this.isOpened = false;
1919
1919
  this.linkTooltip = computed(() => {
1920
1920
  return getI18nTextByKey(this.aiTable, AITableGridI18nKey.linkTooltip);
1921
- }, ...(ngDevMode ? [{ debugName: "linkTooltip" }] : []));
1921
+ }, ...(ngDevMode ? [{ debugName: "linkTooltip" }] : /* istanbul ignore next */ []));
1922
1922
  }
1923
1923
  isValidLink(link) {
1924
1924
  if (!link.text) {
@@ -1987,10 +1987,10 @@ class LinkCellEditorComponent extends AbstractEditCellEditor {
1987
1987
  });
1988
1988
  }
1989
1989
  }
1990
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: LinkCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1991
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: LinkCellEditorComponent, isStandalone: true, selector: "link-cell-editor", host: { classAttribute: "ai-table-link-editor" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<thy-input-group class=\"link-input-group h-100\" thySize=\"lg\">\n <input\n #inputElement\n class=\"h-100\"\n class=\"link-input\"\n thyInput\n thySize=\"md\"\n [thyAutofocus]=\"autoFocus()\"\n [(ngModel)]=\"text\"\n (blur)=\"blur($event)\"\n (thyEnter)=\"updateValue()\"\n />\n <ng-template #suffix>\n <a\n thyAction\n thyIcon=\"link-insert\"\n [thyTooltip]=\"linkTooltip()\"\n class=\"font-size-base edit-icon\"\n [class.active]=\"isOpened\"\n href=\"javascript:;\"\n (click)=\"openEdit()\"\n ></a>\n </ng-template>\n</thy-input-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "directive", type: i2$1.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "ngmodule", type: ThyInputModule }, { kind: "directive", type: i3.ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: ThyFlexibleTextModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1990
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LinkCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1991
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: LinkCellEditorComponent, isStandalone: true, selector: "link-cell-editor", host: { classAttribute: "ai-table-link-editor" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<thy-input-group class=\"link-input-group h-100\" thySize=\"lg\">\n <input\n #inputElement\n class=\"h-100\"\n class=\"link-input\"\n thyInput\n thySize=\"md\"\n [thyAutofocus]=\"autoFocus()\"\n [(ngModel)]=\"text\"\n (blur)=\"blur($event)\"\n (thyEnter)=\"updateValue()\"\n />\n <ng-template #suffix>\n <a\n thyAction\n thyIcon=\"link-insert\"\n [thyTooltip]=\"linkTooltip()\"\n class=\"font-size-base edit-icon\"\n [class.active]=\"isOpened\"\n href=\"javascript:;\"\n (click)=\"openEdit()\"\n ></a>\n </ng-template>\n</thy-input-group>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "directive", type: i2$1.ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "ngmodule", type: ThyInputModule }, { kind: "directive", type: i3.ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: ThyFlexibleTextModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1992
1992
  }
1993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: LinkCellEditorComponent, decorators: [{
1993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: LinkCellEditorComponent, decorators: [{
1994
1994
  type: Component,
1995
1995
  args: [{ selector: 'link-cell-editor', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1996
1996
  FormsModule,
@@ -3814,7 +3814,7 @@ function getPlaceHolderCellsConfigs(options) {
3814
3814
  fill: Colors.transparent,
3815
3815
  strokeEnabled: false,
3816
3816
  hitStrokeWidth: 0,
3817
- transformsEnabled: 'position',
3817
+ transformsEnabled: DEFAULT_TEXT_TRANSFORMS_ENABLED,
3818
3818
  perfectDrawEnabled: false,
3819
3819
  shadowEnabled: false
3820
3820
  });
@@ -4177,7 +4177,7 @@ const isCellMatchKeywords = (aiTable, field, recordId, keywords, references) =>
4177
4177
 
4178
4178
  class AITableTextComponent {
4179
4179
  constructor() {
4180
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
4180
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
4181
4181
  // @Output() koClick = new EventEmitter<KoEventObject<MouseEvent>>();
4182
4182
  this.koClick = output();
4183
4183
  this.koMouseMove = output();
@@ -4204,7 +4204,7 @@ class AITableTextComponent {
4204
4204
  ...rest
4205
4205
  };
4206
4206
  return result;
4207
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
4207
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
4208
4208
  }
4209
4209
  onClick(e) {
4210
4210
  this.koClick.emit(e);
@@ -4212,10 +4212,10 @@ class AITableTextComponent {
4212
4212
  onMousemove(e) {
4213
4213
  this.koMouseMove.emit(e);
4214
4214
  }
4215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableTextComponent, isStandalone: true, selector: "ai-table-text", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koClick: "koClick", koMouseMove: "koMouseMove" }, ngImport: i0, template: ` <ko-text [config]="textConfig()" (koClick)="onClick($event)" (koMousemove)="onMousemove($event)"></ko-text> `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableTextComponent, isStandalone: true, selector: "ai-table-text", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koClick: "koClick", koMouseMove: "koMouseMove" }, ngImport: i0, template: ` <ko-text [config]="textConfig()" (koClick)="onClick($event)" (koMousemove)="onMousemove($event)"></ko-text> `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4217
4217
  }
4218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableTextComponent, decorators: [{
4218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableTextComponent, decorators: [{
4219
4219
  type: Component,
4220
4220
  args: [{
4221
4221
  selector: 'ai-table-text',
@@ -4518,7 +4518,7 @@ class Drawer {
4518
4518
  return res;
4519
4519
  }
4520
4520
  wrapTextWithKonva(options) {
4521
- const { x, y, text, maxWidth, maxHeight, lineHeight = AI_TABLE_TEXT_LINE_HEIGHT, maxRow = DEFAULT_WRAP_TEXT_MAX_ROW, fontSize = DEFAULT_FONT_SIZE, fillStyle = this.colors.gray800, textAlign = DEFAULT_TEXT_ALIGN_LEFT, verticalAlign = DEFAULT_TEXT_VERTICAL_ALIGN_TOP, fontWeight = DEFAULT_FONT_WEIGHT, textDecoration = DEFAULT_TEXT_DECORATION, fieldType, needDraw = false } = options;
4521
+ const { x, y, text, maxWidth, maxHeight, lineHeight = AI_TABLE_TEXT_LINE_HEIGHT, maxRow, fontSize = DEFAULT_FONT_SIZE, fillStyle = this.colors.gray800, textAlign = DEFAULT_TEXT_ALIGN_LEFT, verticalAlign = DEFAULT_TEXT_VERTICAL_ALIGN_TOP, fontWeight = DEFAULT_FONT_WEIGHT, textDecoration = DEFAULT_TEXT_DECORATION, fieldType, needDraw = false } = options;
4522
4522
  let offsetX = 0;
4523
4523
  const fontStyle = DEFAULT_FONT_STYLE;
4524
4524
  const baselineOffset = verticalAlign === DEFAULT_TEXT_VERTICAL_ALIGN_TOP ? fontSize / 2 : 0;
@@ -4543,7 +4543,7 @@ class Drawer {
4543
4543
  if (fillStyle)
4544
4544
  this.setStyle({ fillStyle });
4545
4545
  this.ctx.textAlign = textAlign;
4546
- const cacheKey = `${fontStyleKey}-${maxRow}-${maxWidth || 0}-${maxHeight || 0}-${fieldType}-${text}`;
4546
+ const cacheKey = `${fontStyleKey}-${(maxRow || 1)}-${maxWidth || 0}-${maxHeight || 0}-${fieldType}-${text}`;
4547
4547
  const cacheTextData = textDataCache.get(cacheKey);
4548
4548
  if (cacheTextData) {
4549
4549
  if (this.needDraw && needDraw) {
@@ -4552,12 +4552,12 @@ class Drawer {
4552
4552
  return cacheTextData;
4553
4553
  }
4554
4554
  const resultData = [];
4555
- const height = maxHeight ? maxHeight : maxRow * lineHeight * fontSize;
4555
+ const height = maxHeight ? maxHeight : maxRow ? (maxRow) * lineHeight * fontSize : undefined;
4556
4556
  const konvaText = new Konva.Text({
4557
4557
  text,
4558
4558
  fontSize,
4559
4559
  fontFamily: DEFAULT_FONT_FAMILY,
4560
- lineHeight: 1.84,
4560
+ lineHeight: AI_TABLE_TEXT_LINE_HEIGHT,
4561
4561
  wrap: 'char',
4562
4562
  width: maxWidth,
4563
4563
  height: height,
@@ -4565,7 +4565,7 @@ class Drawer {
4565
4565
  verticalAlign: 'top',
4566
4566
  fontStyle: fontStyle,
4567
4567
  ellipsis: true,
4568
- transformsEnabled: true,
4568
+ transformsEnabled: DEFAULT_TEXT_TRANSFORMS_ENABLED,
4569
4569
  listening: false
4570
4570
  });
4571
4571
  konvaText.textArr.forEach((item, index) => {
@@ -5247,17 +5247,17 @@ const drawer = new Drawer();
5247
5247
 
5248
5248
  class CoverCellBase {
5249
5249
  constructor() {
5250
- this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
5251
- this.onlyDisplayBorder = input(false, ...(ngDevMode ? [{ debugName: "onlyDisplayBorder" }] : []));
5250
+ this.config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
5251
+ this.onlyDisplayBorder = input(false, ...(ngDevMode ? [{ debugName: "onlyDisplayBorder" }] : /* istanbul ignore next */ []));
5252
5252
  this.isExpand = computed(() => {
5253
5253
  const { isExpand } = this.config();
5254
5254
  return isExpand;
5255
- }, ...(ngDevMode ? [{ debugName: "isExpand" }] : []));
5255
+ }, ...(ngDevMode ? [{ debugName: "isExpand" }] : /* istanbul ignore next */ []));
5256
5256
  }
5257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CoverCellBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: CoverCellBase, isStandalone: true, selector: "ai-table-cover-cell-base", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CoverCellBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: CoverCellBase, isStandalone: true, selector: "ai-table-cover-cell-base", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5259
5259
  }
5260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CoverCellBase, decorators: [{
5260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CoverCellBase, decorators: [{
5261
5261
  type: Component,
5262
5262
  args: [{
5263
5263
  selector: 'ai-table-cover-cell-base',
@@ -5270,9 +5270,9 @@ class AITableCellLink extends CoverCellBase {
5270
5270
  constructor() {
5271
5271
  super(...arguments);
5272
5272
  this.textOffset = AI_TABLE_CELL_PADDING + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE;
5273
- this.render = computed(() => this.config()?.render, ...(ngDevMode ? [{ debugName: "render" }] : []));
5274
- this.transformValue = computed(() => this.render()?.transformValue, ...(ngDevMode ? [{ debugName: "transformValue" }] : []));
5275
- this.showLink = computed(() => !!this.transformValue()?.text, ...(ngDevMode ? [{ debugName: "showLink" }] : []));
5273
+ this.render = computed(() => this.config()?.render, ...(ngDevMode ? [{ debugName: "render" }] : /* istanbul ignore next */ []));
5274
+ this.transformValue = computed(() => this.render()?.transformValue, ...(ngDevMode ? [{ debugName: "transformValue" }] : /* istanbul ignore next */ []));
5275
+ this.showLink = computed(() => !!this.transformValue()?.text, ...(ngDevMode ? [{ debugName: "showLink" }] : /* istanbul ignore next */ []));
5276
5276
  this.textConfig = computed(() => {
5277
5277
  const render = this.config()?.render;
5278
5278
  if (render) {
@@ -5307,7 +5307,7 @@ class AITableCellLink extends CoverCellBase {
5307
5307
  };
5308
5308
  }
5309
5309
  return;
5310
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
5310
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
5311
5311
  }
5312
5312
  static { this.fieldType = AITableFieldType.link; }
5313
5313
  linkClick(e) {
@@ -5327,14 +5327,14 @@ class AITableCellLink extends CoverCellBase {
5327
5327
  const curMousePosition = getMousePosition(aiTable, x, y, coordinate, AITable.getVisibleFields(aiTable), context, targetName);
5328
5328
  handleMouseStyle(AI_TABLE_FIELD_HEAD_MORE, curMousePosition.areaType, coordinate.container);
5329
5329
  }
5330
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellLink, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5331
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellLink, isStandalone: true, selector: "ai-table-link", usesInheritance: true, ngImport: i0, template: `
5330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellLink, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellLink, isStandalone: true, selector: "ai-table-link", usesInheritance: true, ngImport: i0, template: `
5332
5332
  @if (showLink()) {
5333
5333
  <ai-table-text [config]="textConfig()!" (koClick)="linkClick($event)" (koMouseMove)="linkMouseMove($event)"></ai-table-text>
5334
5334
  }
5335
5335
  `, isInline: true, dependencies: [{ kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5336
5336
  }
5337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellLink, decorators: [{
5337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellLink, decorators: [{
5338
5338
  type: Component,
5339
5339
  args: [{
5340
5340
  selector: 'ai-table-link',
@@ -5354,12 +5354,12 @@ class AITableActionIcon {
5354
5354
  this.onMousemove = output();
5355
5355
  this.onMouseenter = output();
5356
5356
  this.onMouseleave = output();
5357
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
5358
- this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : []));
5357
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
5358
+ this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : /* istanbul ignore next */ []));
5359
5359
  this.groupConfig = computed(() => {
5360
5360
  const { x, y, listening } = this.config();
5361
5361
  return { x, y, listening };
5362
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
5362
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
5363
5363
  this.squareShapeConfig = computed(() => {
5364
5364
  const { name, backgroundWidth, backgroundHeight, hoverFill: coverFill, size = DEFAULT_ICON_SIZE, strokeWidth = 1, cornerRadius, source } = this.config();
5365
5365
  return {
@@ -5372,7 +5372,7 @@ class AITableActionIcon {
5372
5372
  cornerRadius,
5373
5373
  source
5374
5374
  };
5375
- }, ...(ngDevMode ? [{ debugName: "squareShapeConfig" }] : []));
5375
+ }, ...(ngDevMode ? [{ debugName: "squareShapeConfig" }] : /* istanbul ignore next */ []));
5376
5376
  this.iconGroupConfig = computed(() => {
5377
5377
  let { backgroundWidth, backgroundHeight, size = DEFAULT_ICON_SIZE, scaleX, scaleY, offsetX, offsetY } = this.config();
5378
5378
  return {
@@ -5383,9 +5383,9 @@ class AITableActionIcon {
5383
5383
  scaleX: scaleX || size / DEFAULT_ICON_SIZE,
5384
5384
  scaleY: scaleY || size / DEFAULT_ICON_SIZE
5385
5385
  };
5386
- }, ...(ngDevMode ? [{ debugName: "iconGroupConfig" }] : []));
5386
+ }, ...(ngDevMode ? [{ debugName: "iconGroupConfig" }] : /* istanbul ignore next */ []));
5387
5387
  this.iconConfig = computed(() => {
5388
- let { type, data, size = DEFAULT_ICON_SIZE, stroke, strokeWidth = 1, scaleX, scaleY, offsetX, offsetY, rotation, fill, hoverFill: hoverFill, transformsEnabled = 'position' } = this.config();
5388
+ let { type, data, size = DEFAULT_ICON_SIZE, stroke, strokeWidth = 1, scaleX, scaleY, offsetX, offsetY, rotation, fill, hoverFill: hoverFill, transformsEnabled = DEFAULT_TEXT_TRANSFORMS_ENABLED } = this.config();
5389
5389
  fill = fill || Colors.gray600;
5390
5390
  let pathData = data;
5391
5391
  switch (type) {
@@ -5412,7 +5412,7 @@ class AITableActionIcon {
5412
5412
  perfectDrawEnabled: false,
5413
5413
  listening: false
5414
5414
  };
5415
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
5415
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
5416
5416
  }
5417
5417
  koClick(e) {
5418
5418
  this.onClick.emit(e);
@@ -5432,8 +5432,8 @@ class AITableActionIcon {
5432
5432
  const { coordinate } = this.config();
5433
5433
  setMouseStyle('default', coordinate.container);
5434
5434
  }
5435
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableActionIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5436
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableActionIcon, isStandalone: true, selector: "ai-table-action-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onClick: "onClick", onMousemove: "onMousemove", onMouseenter: "onMouseenter", onMouseleave: "onMouseleave" }, ngImport: i0, template: `
5435
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableActionIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5436
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableActionIcon, isStandalone: true, selector: "ai-table-action-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onClick: "onClick", onMousemove: "onMousemove", onMouseenter: "onMouseenter", onMouseleave: "onMouseleave" }, ngImport: i0, template: `
5437
5437
  <ko-group
5438
5438
  [config]="groupConfig()"
5439
5439
  (koClick)="koClick($event)"
@@ -5448,7 +5448,7 @@ class AITableActionIcon {
5448
5448
  </ko-group>
5449
5449
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5450
5450
  }
5451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableActionIcon, decorators: [{
5451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableActionIcon, decorators: [{
5452
5452
  type: Component,
5453
5453
  args: [{
5454
5454
  selector: 'ai-table-action-icon',
@@ -5720,7 +5720,7 @@ class AITableCellAttachment extends CoverCellBase {
5720
5720
  });
5721
5721
  }
5722
5722
  return [];
5723
- }, ...(ngDevMode ? [{ debugName: "attachments" }] : []));
5723
+ }, ...(ngDevMode ? [{ debugName: "attachments" }] : /* istanbul ignore next */ []));
5724
5724
  this.iconConfig = computed(() => {
5725
5725
  const { coordinate, render, field, recordId, readonly } = this.config();
5726
5726
  const offsetX = render.columnWidth - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_ACTION_COMMON_RIGHT_PADDING;
@@ -5745,18 +5745,18 @@ class AITableCellAttachment extends CoverCellBase {
5745
5745
  cornerRadius: AI_TABLE_ACTION_COMMON_RADIUS,
5746
5746
  listening: true
5747
5747
  };
5748
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
5748
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
5749
5749
  }
5750
5750
  static { this.fieldType = AITableFieldType.attachment; }
5751
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellAttachment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5752
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellAttachment, isStandalone: true, selector: "ai-table-attachments", usesInheritance: true, ngImport: i0, template: `
5751
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellAttachment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellAttachment, isStandalone: true, selector: "ai-table-attachments", usesInheritance: true, ngImport: i0, template: `
5753
5753
  @for (attachment of attachments(); track attachment.attachmentInfo._id) {
5754
5754
  <ko-image [config]="attachment"></ko-image>
5755
5755
  }
5756
5756
  <ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
5757
5757
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableActionIcon, selector: "ai-table-action-icon", inputs: ["config"], outputs: ["onClick", "onMousemove", "onMouseenter", "onMouseleave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5758
5758
  }
5759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellAttachment, decorators: [{
5759
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellAttachment, decorators: [{
5760
5760
  type: Component,
5761
5761
  args: [{
5762
5762
  selector: 'ai-table-attachments',
@@ -5800,7 +5800,7 @@ class AITableCellRichText extends CoverCellBase {
5800
5800
  };
5801
5801
  }
5802
5802
  return;
5803
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
5803
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
5804
5804
  this.iconConfig = computed(() => {
5805
5805
  const { coordinate, render, field, recordId, readonly } = this.config();
5806
5806
  const offsetX = render.columnWidth - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_ACTION_COMMON_RIGHT_PADDING;
@@ -5825,18 +5825,18 @@ class AITableCellRichText extends CoverCellBase {
5825
5825
  cornerRadius: AI_TABLE_ACTION_COMMON_RADIUS,
5826
5826
  listening: true
5827
5827
  };
5828
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
5828
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
5829
5829
  }
5830
5830
  static { this.fieldType = AITableFieldType.richText; }
5831
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellRichText, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5832
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellRichText, isStandalone: true, selector: "ai-table-rich-text", usesInheritance: true, ngImport: i0, template: `
5831
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellRichText, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5832
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellRichText, isStandalone: true, selector: "ai-table-rich-text", usesInheritance: true, ngImport: i0, template: `
5833
5833
  @if (textConfig()) {
5834
5834
  <ai-table-text [config]="textConfig()!"></ai-table-text>
5835
5835
  }
5836
5836
  <ai-table-action-icon [config]="iconConfig()"></ai-table-action-icon>
5837
5837
  `, isInline: true, dependencies: [{ kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: AITableActionIcon, selector: "ai-table-action-icon", inputs: ["config"], outputs: ["onClick", "onMousemove", "onMouseenter", "onMouseleave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5838
5838
  }
5839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellRichText, decorators: [{
5839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellRichText, decorators: [{
5840
5840
  type: Component,
5841
5841
  args: [{
5842
5842
  selector: 'ai-table-rich-text',
@@ -6499,7 +6499,7 @@ class CellDrawer extends Drawer {
6499
6499
  this.wrapTextWithKonva({
6500
6500
  x: renderX,
6501
6501
  y: renderY,
6502
- maxHeight: rowHeight,
6502
+ maxHeight: rowHeight - AI_TABLE_CELL_PADDING,
6503
6503
  text: renderText,
6504
6504
  maxWidth: textMaxWidth,
6505
6505
  maxRow,
@@ -7318,12 +7318,12 @@ const isHoverRecord = (isHover, targetName) => {
7318
7318
 
7319
7319
  class AITableIcon {
7320
7320
  constructor() {
7321
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7321
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7322
7322
  this.koClick = output();
7323
7323
  this.groupConfig = computed(() => {
7324
7324
  const { x, y, listening } = this.config();
7325
7325
  return { x, y, listening };
7326
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
7326
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
7327
7327
  this.squareShapeConfig = computed(() => {
7328
7328
  const { name, backgroundWidth, backgroundHeight, size = DEFAULT_ICON_SIZE, strokeWidth = 1, background, cornerRadius, opacity } = this.config();
7329
7329
  return {
@@ -7335,9 +7335,9 @@ class AITableIcon {
7335
7335
  cornerRadius,
7336
7336
  opacity
7337
7337
  };
7338
- }, ...(ngDevMode ? [{ debugName: "squareShapeConfig" }] : []));
7338
+ }, ...(ngDevMode ? [{ debugName: "squareShapeConfig" }] : /* istanbul ignore next */ []));
7339
7339
  this.iconConfig = computed(() => {
7340
- const { type, data, backgroundWidth, backgroundHeight, size = DEFAULT_ICON_SIZE, stroke, strokeWidth = 1, scaleX, scaleY, offsetX, offsetY, rotation, fill = Colors.gray600, transformsEnabled = 'position', disabled } = this.config();
7340
+ const { type, data, backgroundWidth, backgroundHeight, size = DEFAULT_ICON_SIZE, stroke, strokeWidth = 1, scaleX, scaleY, offsetX, offsetY, rotation, fill = Colors.gray600, transformsEnabled = DEFAULT_TEXT_TRANSFORMS_ENABLED, disabled } = this.config();
7341
7341
  let pathData = data;
7342
7342
  switch (type) {
7343
7343
  case AITableCheckType.checked:
@@ -7368,17 +7368,17 @@ class AITableIcon {
7368
7368
  perfectDrawEnabled: false,
7369
7369
  listening: false
7370
7370
  };
7371
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
7371
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
7372
7372
  }
7373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7374
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableIcon, isStandalone: true, selector: "ai-table-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koClick: "koClick" }, ngImport: i0, template: `
7373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableIcon, isStandalone: true, selector: "ai-table-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koClick: "koClick" }, ngImport: i0, template: `
7375
7375
  <ko-group [config]="groupConfig()" (koClick)="koClick.emit($event)">
7376
7376
  <ko-rect [config]="squareShapeConfig()"></ko-rect>
7377
7377
  <ko-path [config]="iconConfig()"></ko-path>
7378
7378
  </ko-group>
7379
7379
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7380
7380
  }
7381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableIcon, decorators: [{
7381
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableIcon, decorators: [{
7382
7382
  type: Component,
7383
7383
  args: [{
7384
7384
  selector: 'ai-table-icon',
@@ -7395,13 +7395,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
7395
7395
 
7396
7396
  class AITableAddField {
7397
7397
  constructor() {
7398
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7398
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7399
7399
  this.btnWidth = AI_TABLE_FIELD_ADD_BUTTON_WIDTH;
7400
7400
  this.x = computed(() => {
7401
7401
  const lastColumnWidth = this.config().coordinate.getColumnWidth(this.config().columnStopIndex);
7402
7402
  const lastColumnOffset = this.config().coordinate.getColumnOffset(this.config().columnStopIndex);
7403
7403
  return lastColumnWidth + lastColumnOffset;
7404
- }, ...(ngDevMode ? [{ debugName: "x" }] : []));
7404
+ }, ...(ngDevMode ? [{ debugName: "x" }] : /* istanbul ignore next */ []));
7405
7405
  this.rectConfig = computed(() => {
7406
7406
  const { pointPosition: { targetName }, readonly, maxFields, aiTable } = this.config();
7407
7407
  const fill = targetName === AI_TABLE_FIELD_ADD_BUTTON ? Colors.gray80 : Colors.white;
@@ -7426,7 +7426,7 @@ class AITableAddField {
7426
7426
  listening: true,
7427
7427
  fill
7428
7428
  };
7429
- }, ...(ngDevMode ? [{ debugName: "rectConfig" }] : []));
7429
+ }, ...(ngDevMode ? [{ debugName: "rectConfig" }] : /* istanbul ignore next */ []));
7430
7430
  this.addIconConfig = computed(() => {
7431
7431
  const { readonly, maxFields, aiTable } = this.config();
7432
7432
  const offsetY = (AI_TABLE_FIELD_HEAD_HEIGHT - AI_TABLE_ICON_COMMON_SIZE) / 2;
@@ -7439,10 +7439,10 @@ class AITableAddField {
7439
7439
  visible: !readonly,
7440
7440
  disabled: maxFields ? aiTable.fields().length >= maxFields : false
7441
7441
  };
7442
- }, ...(ngDevMode ? [{ debugName: "addIconConfig" }] : []));
7442
+ }, ...(ngDevMode ? [{ debugName: "addIconConfig" }] : /* istanbul ignore next */ []));
7443
7443
  }
7444
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableAddField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7445
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableAddField, isStandalone: true, selector: "ai-table-add-field", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7444
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableAddField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7445
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableAddField, isStandalone: true, selector: "ai-table-add-field", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7446
7446
  <ko-group [config]="{ x: x() }">
7447
7447
  <ko-group>
7448
7448
  <ko-rect [config]="rectConfig()"></ko-rect>
@@ -7455,7 +7455,7 @@ class AITableAddField {
7455
7455
  </ko-group>
7456
7456
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7457
7457
  }
7458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableAddField, decorators: [{
7458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableAddField, decorators: [{
7459
7459
  type: Component,
7460
7460
  args: [{
7461
7461
  selector: 'ai-table-add-field',
@@ -7478,7 +7478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
7478
7478
 
7479
7479
  class AITableCells {
7480
7480
  constructor() {
7481
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7481
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7482
7482
  this.cellsShapeConfig = computed(() => {
7483
7483
  const { coordinate, columnStartIndex } = this.config();
7484
7484
  const { frozenColumnCount } = coordinate;
@@ -7491,12 +7491,12 @@ class AITableCells {
7491
7491
  columnStartIndex: Math.max(columnStartIndex, frozenColumnCount)
7492
7492
  })
7493
7493
  };
7494
- }, ...(ngDevMode ? [{ debugName: "cellsShapeConfig" }] : []));
7494
+ }, ...(ngDevMode ? [{ debugName: "cellsShapeConfig" }] : /* istanbul ignore next */ []));
7495
7495
  }
7496
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7497
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableCells, isStandalone: true, selector: "ai-table-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: ` <ko-shape [config]="cellsShapeConfig()"></ko-shape> `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableCells, isStandalone: true, selector: "ai-table-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: ` <ko-shape [config]="cellsShapeConfig()"></ko-shape> `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7498
7498
  }
7499
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCells, decorators: [{
7499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCells, decorators: [{
7500
7500
  type: Component,
7501
7501
  args: [{
7502
7502
  selector: 'ai-table-cells',
@@ -7508,7 +7508,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
7508
7508
 
7509
7509
  class AITableFieldIcon {
7510
7510
  constructor() {
7511
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7511
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7512
7512
  this.iconConfig = computed(() => {
7513
7513
  const { field, x, y, width, height, fill, path } = this.config();
7514
7514
  const data = getFieldIconPath(field) || path;
@@ -7521,12 +7521,12 @@ class AITableFieldIcon {
7521
7521
  data,
7522
7522
  fill
7523
7523
  };
7524
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
7524
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
7525
7525
  }
7526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7527
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableFieldIcon, isStandalone: true, selector: "ai-table-field-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: ` <ai-table-icon [config]="iconConfig()"></ai-table-icon> `, isInline: true, dependencies: [{ kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7526
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7527
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableFieldIcon, isStandalone: true, selector: "ai-table-field-icon", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: ` <ai-table-icon [config]="iconConfig()"></ai-table-icon> `, isInline: true, dependencies: [{ kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7528
7528
  }
7529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldIcon, decorators: [{
7529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldIcon, decorators: [{
7530
7530
  type: Component,
7531
7531
  args: [{
7532
7532
  selector: 'ai-table-field-icon',
@@ -7538,7 +7538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
7538
7538
 
7539
7539
  class AITableFieldHead {
7540
7540
  constructor() {
7541
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7541
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7542
7542
  this.textOffset = AI_TABLE_CELL_PADDING + AI_TABLE_ICON_COMMON_SIZE + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE;
7543
7543
  this.textMeasure = TextMeasure();
7544
7544
  this.availableTextWidth = computed(() => {
@@ -7547,7 +7547,7 @@ class AITableFieldHead {
7547
7547
  (iconVisible
7548
7548
  ? 2 * (AI_TABLE_CELL_PADDING + AI_TABLE_ICON_COMMON_SIZE + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE)
7549
7549
  : 2 * AI_TABLE_CELL_PADDING + AI_TABLE_ICON_COMMON_SIZE + AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE));
7550
- }, ...(ngDevMode ? [{ debugName: "availableTextWidth" }] : []));
7550
+ }, ...(ngDevMode ? [{ debugName: "availableTextWidth" }] : /* istanbul ignore next */ []));
7551
7551
  this.textData = computed(() => {
7552
7552
  const fieldName = this.config().field.name.replace(/\r|\n/g, ' ');
7553
7553
  this.textMeasure.setFont({ fontSize: DEFAULT_FONT_SIZE });
@@ -7557,13 +7557,13 @@ class AITableFieldHead {
7557
7557
  height,
7558
7558
  isOverflow
7559
7559
  };
7560
- }, ...(ngDevMode ? [{ debugName: "textData" }] : []));
7560
+ }, ...(ngDevMode ? [{ debugName: "textData" }] : /* istanbul ignore next */ []));
7561
7561
  this.groupConfig = computed(() => {
7562
7562
  return {
7563
7563
  x: this.config().x,
7564
7564
  y: this.config().y
7565
7565
  };
7566
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
7566
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
7567
7567
  this.bgConfig = computed(() => {
7568
7568
  const { field, width, height, stroke, isSelected, iconVisible, isFirstHead, showExpandIcon } = this.config();
7569
7569
  const shouldExtendLeft = isFirstHead && showExpandIcon && !isSelected;
@@ -7583,7 +7583,7 @@ class AITableFieldHead {
7583
7583
  strokeWidth: 1,
7584
7584
  opacity: 1
7585
7585
  };
7586
- }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : []));
7586
+ }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : /* istanbul ignore next */ []));
7587
7587
  this.fieldIconConfig = computed(() => {
7588
7588
  const { field, height } = this.config();
7589
7589
  return {
@@ -7595,7 +7595,7 @@ class AITableFieldHead {
7595
7595
  fill: Colors.gray600,
7596
7596
  path: IconPathMap[field.icon]
7597
7597
  };
7598
- }, ...(ngDevMode ? [{ debugName: "fieldIconConfig" }] : []));
7598
+ }, ...(ngDevMode ? [{ debugName: "fieldIconConfig" }] : /* istanbul ignore next */ []));
7599
7599
  this.textConfig = computed(() => {
7600
7600
  const { field, height } = this.config();
7601
7601
  return {
@@ -7606,7 +7606,7 @@ class AITableFieldHead {
7606
7606
  text: field.name,
7607
7607
  lineHeight: AI_TABLE_TEXT_LINE_HEIGHT
7608
7608
  };
7609
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
7609
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
7610
7610
  this.moreIconConfig = computed(() => {
7611
7611
  const { field, width, height, isHoverIcon, isSelected } = this.config();
7612
7612
  const commonIconOffsetY = (height - AI_TABLE_ACTION_COMMON_SIZE) / 2;
@@ -7624,7 +7624,7 @@ class AITableFieldHead {
7624
7624
  backgroundHeight: AI_TABLE_ACTION_COMMON_SIZE,
7625
7625
  cornerRadius: 4
7626
7626
  };
7627
- }, ...(ngDevMode ? [{ debugName: "moreIconConfig" }] : []));
7627
+ }, ...(ngDevMode ? [{ debugName: "moreIconConfig" }] : /* istanbul ignore next */ []));
7628
7628
  this.fieldOpacityLineConfig = computed(() => {
7629
7629
  const { field, width, height } = this.config();
7630
7630
  return {
@@ -7638,10 +7638,10 @@ class AITableFieldHead {
7638
7638
  stroke: Colors.transparent,
7639
7639
  strokeWidth: 6
7640
7640
  };
7641
- }, ...(ngDevMode ? [{ debugName: "fieldOpacityLineConfig" }] : []));
7641
+ }, ...(ngDevMode ? [{ debugName: "fieldOpacityLineConfig" }] : /* istanbul ignore next */ []));
7642
7642
  }
7643
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldHead, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7644
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFieldHead, isStandalone: true, selector: "ai-table-field-head", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7643
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldHead, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7644
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFieldHead, isStandalone: true, selector: "ai-table-field-head", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7645
7645
  <ko-group [config]="groupConfig()">
7646
7646
  <ko-rect [config]="bgConfig()"></ko-rect>
7647
7647
  <ko-group>
@@ -7655,7 +7655,7 @@ class AITableFieldHead {
7655
7655
  </ko-group>
7656
7656
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableFieldIcon, selector: "ai-table-field-icon", inputs: ["config"] }, { kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7657
7657
  }
7658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldHead, decorators: [{
7658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldHead, decorators: [{
7659
7659
  type: Component,
7660
7660
  args: [{
7661
7661
  selector: 'ai-table-field-head',
@@ -7679,7 +7679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
7679
7679
 
7680
7680
  class AITableFrozenCells {
7681
7681
  constructor() {
7682
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7682
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7683
7683
  this.frozenCellsConfig = computed(() => {
7684
7684
  const { coordinate } = this.config();
7685
7685
  const { frozenColumnCount } = coordinate;
@@ -7693,12 +7693,12 @@ class AITableFrozenCells {
7693
7693
  columnStopIndex: frozenColumnCount - 1
7694
7694
  })
7695
7695
  };
7696
- }, ...(ngDevMode ? [{ debugName: "frozenCellsConfig" }] : []));
7696
+ }, ...(ngDevMode ? [{ debugName: "frozenCellsConfig" }] : /* istanbul ignore next */ []));
7697
7697
  }
7698
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7699
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableFrozenCells, isStandalone: true, selector: "ai-table-frozen-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<ko-shape [config]="frozenCellsConfig()"></ko-shape>`, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7699
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableFrozenCells, isStandalone: true, selector: "ai-table-frozen-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<ko-shape [config]="frozenCellsConfig()"></ko-shape>`, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7700
7700
  }
7701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenCells, decorators: [{
7701
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenCells, decorators: [{
7702
7702
  type: Component,
7703
7703
  args: [{
7704
7704
  selector: 'ai-table-frozen-cells',
@@ -7762,31 +7762,31 @@ const createColumnHeads = (config) => {
7762
7762
 
7763
7763
  class AITableFrozenColumnHeads {
7764
7764
  constructor() {
7765
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
7765
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
7766
7766
  this.textMeasure = TextMeasure();
7767
- this.emptyRecordsSelectAllStatus = signal(AITableSelectAllState.none, ...(ngDevMode ? [{ debugName: "emptyRecordsSelectAllStatus" }] : []));
7767
+ this.emptyRecordsSelectAllStatus = signal(AITableSelectAllState.none, ...(ngDevMode ? [{ debugName: "emptyRecordsSelectAllStatus" }] : /* istanbul ignore next */ []));
7768
7768
  this.coordinate = computed(() => {
7769
7769
  const config = this.config();
7770
7770
  if (!config)
7771
7771
  return null;
7772
7772
  return config.coordinate;
7773
- }, ...(ngDevMode ? [{ debugName: "coordinate" }] : []));
7773
+ }, ...(ngDevMode ? [{ debugName: "coordinate" }] : /* istanbul ignore next */ []));
7774
7774
  this.hiddenIndexColumn = computed(() => {
7775
7775
  const context = this.context();
7776
7776
  if (!context)
7777
7777
  return false;
7778
7778
  return context?.aiFieldConfig()?.hiddenIndexColumn;
7779
- }, ...(ngDevMode ? [{ debugName: "hiddenIndexColumn" }] : []));
7779
+ }, ...(ngDevMode ? [{ debugName: "hiddenIndexColumn" }] : /* istanbul ignore next */ []));
7780
7780
  this.context = computed(() => {
7781
7781
  const config = this.config();
7782
7782
  if (!config)
7783
7783
  return null;
7784
7784
  return config?.aiTable.context;
7785
- }, ...(ngDevMode ? [{ debugName: "context" }] : []));
7785
+ }, ...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
7786
7786
  this.readonly = computed(() => {
7787
7787
  const context = this.context();
7788
7788
  return !!context?.readonly?.();
7789
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
7789
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
7790
7790
  this.isChecked = computed(() => {
7791
7791
  const config = this.config();
7792
7792
  if (!config) {
@@ -7802,14 +7802,14 @@ class AITableFrozenColumnHeads {
7802
7802
  ? AITableSelectAllState.none
7803
7803
  : AITableSelectAllState.partial;
7804
7804
  return selectedAllState === AITableSelectAllState.all;
7805
- }, ...(ngDevMode ? [{ debugName: "isChecked" }] : []));
7805
+ }, ...(ngDevMode ? [{ debugName: "isChecked" }] : /* istanbul ignore next */ []));
7806
7806
  this.fieldHeadHeight = computed(() => {
7807
7807
  const coord = this.coordinate();
7808
7808
  if (!coord)
7809
7809
  return 0;
7810
7810
  // return coord.rowInitSize;
7811
7811
  return AI_TABLE_FIELD_HEAD_HEIGHT;
7812
- }, ...(ngDevMode ? [{ debugName: "fieldHeadHeight" }] : []));
7812
+ }, ...(ngDevMode ? [{ debugName: "fieldHeadHeight" }] : /* istanbul ignore next */ []));
7813
7813
  this.headConfigs = computed(() => {
7814
7814
  const coord = this.coordinate();
7815
7815
  if (!coord)
@@ -7819,7 +7819,7 @@ class AITableFrozenColumnHeads {
7819
7819
  columnStartIndex: 0,
7820
7820
  columnStopIndex: coord.frozenColumnCount - 1
7821
7821
  });
7822
- }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : []));
7822
+ }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : /* istanbul ignore next */ []));
7823
7823
  this.dragHeadBgConfig = computed(() => {
7824
7824
  return {
7825
7825
  x: AI_TABLE_OFFSET,
@@ -7829,7 +7829,7 @@ class AITableFrozenColumnHeads {
7829
7829
  fill: Colors.white,
7830
7830
  listening: false
7831
7831
  };
7832
- }, ...(ngDevMode ? [{ debugName: "dragHeadBgConfig" }] : []));
7832
+ }, ...(ngDevMode ? [{ debugName: "dragHeadBgConfig" }] : /* istanbul ignore next */ []));
7833
7833
  this.numberHeadBgConfig = computed(() => {
7834
7834
  const ctx = this.context();
7835
7835
  if (!ctx)
@@ -7842,7 +7842,7 @@ class AITableFrozenColumnHeads {
7842
7842
  fill: Colors.white,
7843
7843
  listening: false
7844
7844
  };
7845
- }, ...(ngDevMode ? [{ debugName: "numberHeadBgConfig" }] : []));
7845
+ }, ...(ngDevMode ? [{ debugName: "numberHeadBgConfig" }] : /* istanbul ignore next */ []));
7846
7846
  this.topLineConfig = computed(() => {
7847
7847
  const ctx = this.context();
7848
7848
  if (!ctx)
@@ -7855,7 +7855,7 @@ class AITableFrozenColumnHeads {
7855
7855
  strokeWidth: 1,
7856
7856
  listening: false
7857
7857
  };
7858
- }, ...(ngDevMode ? [{ debugName: "topLineConfig" }] : []));
7858
+ }, ...(ngDevMode ? [{ debugName: "topLineConfig" }] : /* istanbul ignore next */ []));
7859
7859
  this.bottomLineConfig = computed(() => {
7860
7860
  const ctx = this.context();
7861
7861
  if (!ctx)
@@ -7868,7 +7868,7 @@ class AITableFrozenColumnHeads {
7868
7868
  strokeWidth: 1,
7869
7869
  listening: false
7870
7870
  };
7871
- }, ...(ngDevMode ? [{ debugName: "bottomLineConfig" }] : []));
7871
+ }, ...(ngDevMode ? [{ debugName: "bottomLineConfig" }] : /* istanbul ignore next */ []));
7872
7872
  this.iconConfig = computed(() => {
7873
7873
  return {
7874
7874
  name: AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX,
@@ -7879,7 +7879,7 @@ class AITableFrozenColumnHeads {
7879
7879
  ? Colors.primary
7880
7880
  : Colors.gray300
7881
7881
  };
7882
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
7882
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
7883
7883
  this.textConfig = computed(() => {
7884
7884
  const text = AI_TABLE_INDEX_FIELD_TEXT;
7885
7885
  const lineHeight = AI_TABLE_TEXT_LINE_HEIGHT;
@@ -7892,7 +7892,7 @@ class AITableFrozenColumnHeads {
7892
7892
  text,
7893
7893
  lineHeight
7894
7894
  };
7895
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
7895
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
7896
7896
  this.headBgConfig = computed(() => {
7897
7897
  const coord = this.coordinate();
7898
7898
  const ctx = this.context();
@@ -7909,7 +7909,7 @@ class AITableFrozenColumnHeads {
7909
7909
  listening: false,
7910
7910
  zIndex: 10
7911
7911
  };
7912
- }, ...(ngDevMode ? [{ debugName: "headBgConfig" }] : []));
7912
+ }, ...(ngDevMode ? [{ debugName: "headBgConfig" }] : /* istanbul ignore next */ []));
7913
7913
  this.cellLinesConfig = computed(() => {
7914
7914
  const coord = this.coordinate();
7915
7915
  const ctx = this.context();
@@ -7971,15 +7971,15 @@ class AITableFrozenColumnHeads {
7971
7971
  });
7972
7972
  }
7973
7973
  return lines;
7974
- }, ...(ngDevMode ? [{ debugName: "cellLinesConfig" }] : []));
7974
+ }, ...(ngDevMode ? [{ debugName: "cellLinesConfig" }] : /* istanbul ignore next */ []));
7975
7975
  }
7976
7976
  selectAllClick(e) {
7977
7977
  if (this.config()?.aiTable?.records().length === 0) {
7978
7978
  this.emptyRecordsSelectAllStatus.set(this.emptyRecordsSelectAllStatus() === AITableSelectAllState.all ? AITableSelectAllState.none : AITableSelectAllState.all);
7979
7979
  }
7980
7980
  }
7981
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenColumnHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7982
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFrozenColumnHeads, isStandalone: true, selector: "ai-table-frozen-column-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7981
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenColumnHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7982
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFrozenColumnHeads, isStandalone: true, selector: "ai-table-frozen-column-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7983
7983
  @if (!hiddenIndexColumn()) {
7984
7984
  <ko-group>
7985
7985
  @if (!readonly()) {
@@ -7998,7 +7998,7 @@ class AITableFrozenColumnHeads {
7998
7998
  }
7999
7999
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableFieldHead, selector: "ai-table-field-head", inputs: ["config"] }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }, { kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8000
8000
  }
8001
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenColumnHeads, decorators: [{
8001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenColumnHeads, decorators: [{
8002
8002
  type: Component,
8003
8003
  args: [{
8004
8004
  selector: 'ai-table-frozen-column-heads',
@@ -8027,7 +8027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8027
8027
 
8028
8028
  class AITableFrozenPlaceholderCells {
8029
8029
  constructor() {
8030
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8030
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8031
8031
  this.frozenPlaceHolderCellsConfig = computed(() => {
8032
8032
  const { coordinate } = this.config();
8033
8033
  return getPlaceHolderCellsConfigs({
@@ -8035,16 +8035,16 @@ class AITableFrozenPlaceholderCells {
8035
8035
  columnStartIndex: 0,
8036
8036
  columnStopIndex: coordinate.frozenColumnCount - 1
8037
8037
  });
8038
- }, ...(ngDevMode ? [{ debugName: "frozenPlaceHolderCellsConfig" }] : []));
8038
+ }, ...(ngDevMode ? [{ debugName: "frozenPlaceHolderCellsConfig" }] : /* istanbul ignore next */ []));
8039
8039
  }
8040
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenPlaceholderCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8041
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFrozenPlaceholderCells, isStandalone: true, selector: "ai-table-frozen-placeholder-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8040
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenPlaceholderCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8041
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFrozenPlaceholderCells, isStandalone: true, selector: "ai-table-frozen-placeholder-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8042
8042
  @for (item of frozenPlaceHolderCellsConfig(); track $index) {
8043
8043
  <ko-rect [config]="item"></ko-rect>
8044
8044
  }
8045
8045
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8046
8046
  }
8047
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenPlaceholderCells, decorators: [{
8047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenPlaceholderCells, decorators: [{
8048
8048
  type: Component,
8049
8049
  args: [{
8050
8050
  selector: 'ai-table-frozen-placeholder-cells',
@@ -8060,7 +8060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8060
8060
 
8061
8061
  class AITableColumnHeads {
8062
8062
  constructor() {
8063
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8063
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8064
8064
  this.headConfigs = computed(() => {
8065
8065
  const { coordinate, columnStartIndex } = this.config();
8066
8066
  const { frozenColumnCount } = coordinate;
@@ -8068,16 +8068,16 @@ class AITableColumnHeads {
8068
8068
  ...this.config(),
8069
8069
  columnStartIndex: Math.max(columnStartIndex, frozenColumnCount)
8070
8070
  });
8071
- }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : []));
8071
+ }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : /* istanbul ignore next */ []));
8072
8072
  }
8073
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableColumnHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8074
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableColumnHeads, isStandalone: true, selector: "ai-table-column-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8073
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableColumnHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8074
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableColumnHeads, isStandalone: true, selector: "ai-table-column-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8075
8075
  @for (config of headConfigs(); track $index) {
8076
8076
  <ai-table-field-head [config]="config"></ai-table-field-head>
8077
8077
  }
8078
8078
  `, isInline: true, dependencies: [{ kind: "component", type: AITableFieldHead, selector: "ai-table-field-head", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8079
8079
  }
8080
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableColumnHeads, decorators: [{
8080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableColumnHeads, decorators: [{
8081
8081
  type: Component,
8082
8082
  args: [{
8083
8083
  selector: 'ai-table-column-heads',
@@ -8093,19 +8093,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8093
8093
 
8094
8094
  class AITableHoverRowHeads {
8095
8095
  constructor() {
8096
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8096
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8097
8097
  this.pointPosition = computed(() => {
8098
8098
  return this.config().aiTable.context.pointPosition();
8099
- }, ...(ngDevMode ? [{ debugName: "pointPosition" }] : []));
8099
+ }, ...(ngDevMode ? [{ debugName: "pointPosition" }] : /* istanbul ignore next */ []));
8100
8100
  this.headConfigs = computed(() => {
8101
8101
  return this.createHoverRowHeads(this.pointPosition());
8102
- }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : []));
8102
+ }, ...(ngDevMode ? [{ debugName: "headConfigs" }] : /* istanbul ignore next */ []));
8103
8103
  this.readonly = computed(() => {
8104
8104
  return this.config().readonly;
8105
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
8105
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
8106
8106
  this.hiddenRowDrag = computed(() => {
8107
8107
  return this.config()?.aiTable.context?.aiFieldConfig()?.hiddenRowDrag;
8108
- }, ...(ngDevMode ? [{ debugName: "hiddenRowDrag" }] : []));
8108
+ }, ...(ngDevMode ? [{ debugName: "hiddenRowDrag" }] : /* istanbul ignore next */ []));
8109
8109
  this.createHoverRowHeads = (pointPosition) => {
8110
8110
  const { coordinate, rowStartIndex, rowStopIndex, aiTable } = this.config();
8111
8111
  const context = aiTable.context;
@@ -8175,8 +8175,8 @@ class AITableHoverRowHeads {
8175
8175
  return headConfigs;
8176
8176
  };
8177
8177
  }
8178
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableHoverRowHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableHoverRowHeads, isStandalone: true, selector: "ai-table-hover-row-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8178
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableHoverRowHeads, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8179
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableHoverRowHeads, isStandalone: true, selector: "ai-table-hover-row-heads", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8180
8180
  @for (config of headConfigs(); track config.recordId) {
8181
8181
  <ko-group [config]="{ x: 0, y: config.y, name: 'hover-heads' }">
8182
8182
  @if (config.bgConfig) {
@@ -8192,7 +8192,7 @@ class AITableHoverRowHeads {
8192
8192
  }
8193
8193
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8194
8194
  }
8195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableHoverRowHeads, decorators: [{
8195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableHoverRowHeads, decorators: [{
8196
8196
  type: Component,
8197
8197
  args: [{
8198
8198
  selector: 'ai-table-hover-row-heads',
@@ -8218,11 +8218,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8218
8218
 
8219
8219
  class AITableOtherRows {
8220
8220
  constructor() {
8221
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8221
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8222
8222
  this.AITableRowType = AITableRowType;
8223
8223
  this.otherConfigs = computed(() => {
8224
8224
  return this.createOtherRows(this.config());
8225
- }, ...(ngDevMode ? [{ debugName: "otherConfigs" }] : []));
8225
+ }, ...(ngDevMode ? [{ debugName: "otherConfigs" }] : /* istanbul ignore next */ []));
8226
8226
  this.createOtherRows = (config) => {
8227
8227
  const { coordinate, rowStartIndex, rowStopIndex, aiTable, maxRecords } = config;
8228
8228
  const otherRowConfigs = [];
@@ -8255,8 +8255,8 @@ class AITableOtherRows {
8255
8255
  return otherRowConfigs;
8256
8256
  };
8257
8257
  }
8258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableOtherRows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8259
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableOtherRows, isStandalone: true, selector: "ai-table-other-rows", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableOtherRows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableOtherRows, isStandalone: true, selector: "ai-table-other-rows", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8260
8260
  @for (config of otherConfigs(); track $index) {
8261
8261
  @switch (config.type) {
8262
8262
  @case (AITableRowType.add) {
@@ -8266,7 +8266,7 @@ class AITableOtherRows {
8266
8266
  }
8267
8267
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8268
8268
  }
8269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableOtherRows, decorators: [{
8269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableOtherRows, decorators: [{
8270
8270
  type: Component,
8271
8271
  args: [{
8272
8272
  selector: 'ai-table-other-rows',
@@ -8286,19 +8286,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8286
8286
 
8287
8287
  class AITablePlaceholderCells {
8288
8288
  constructor() {
8289
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8289
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8290
8290
  this.frozenPlaceHolderCellsConfig = computed(() => {
8291
8291
  return getPlaceHolderCellsConfigs(this.config());
8292
- }, ...(ngDevMode ? [{ debugName: "frozenPlaceHolderCellsConfig" }] : []));
8292
+ }, ...(ngDevMode ? [{ debugName: "frozenPlaceHolderCellsConfig" }] : /* istanbul ignore next */ []));
8293
8293
  }
8294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITablePlaceholderCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITablePlaceholderCells, isStandalone: true, selector: "ai-table-placeholder-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITablePlaceholderCells, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8295
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITablePlaceholderCells, isStandalone: true, selector: "ai-table-placeholder-cells", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8296
8296
  @for (item of frozenPlaceHolderCellsConfig(); track $index) {
8297
8297
  <ko-rect [config]="item"></ko-rect>
8298
8298
  }
8299
8299
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8300
8300
  }
8301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITablePlaceholderCells, decorators: [{
8301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITablePlaceholderCells, decorators: [{
8302
8302
  type: Component,
8303
8303
  args: [{
8304
8304
  selector: 'ai-table-placeholder-cells',
@@ -8314,7 +8314,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8314
8314
 
8315
8315
  class AITableExpandRecord {
8316
8316
  constructor() {
8317
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8317
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8318
8318
  this.backgroundConfig = computed(() => {
8319
8319
  const { coordinate, aiTable } = this.config();
8320
8320
  const context = aiTable.context;
@@ -8340,7 +8340,7 @@ class AITableExpandRecord {
8340
8340
  hoverFill: Colors.transparent,
8341
8341
  listening: true
8342
8342
  };
8343
- }, ...(ngDevMode ? [{ debugName: "backgroundConfig" }] : []));
8343
+ }, ...(ngDevMode ? [{ debugName: "backgroundConfig" }] : /* istanbul ignore next */ []));
8344
8344
  this.shouldShowIcon = computed(() => {
8345
8345
  const { aiTable, rowStartIndex, rowStopIndex } = this.config();
8346
8346
  const context = aiTable.context;
@@ -8351,7 +8351,7 @@ class AITableExpandRecord {
8351
8351
  const { rowIndex: pointRowIndex } = context.pointPosition();
8352
8352
  const row = context.linearRows()[pointRowIndex];
8353
8353
  return pointRowIndex >= rowStartIndex && pointRowIndex <= rowStopIndex && row && row.type === AITableRowType.record;
8354
- }, ...(ngDevMode ? [{ debugName: "shouldShowIcon" }] : []));
8354
+ }, ...(ngDevMode ? [{ debugName: "shouldShowIcon" }] : /* istanbul ignore next */ []));
8355
8355
  this.expandIconConfig = computed(() => {
8356
8356
  const { coordinate, aiTable } = this.config();
8357
8357
  const context = aiTable.context;
@@ -8377,10 +8377,10 @@ class AITableExpandRecord {
8377
8377
  cornerRadius: AI_TABLE_ACTION_COMMON_RADIUS,
8378
8378
  listening: true
8379
8379
  };
8380
- }, ...(ngDevMode ? [{ debugName: "expandIconConfig" }] : []));
8380
+ }, ...(ngDevMode ? [{ debugName: "expandIconConfig" }] : /* istanbul ignore next */ []));
8381
8381
  }
8382
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableExpandRecord, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8383
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableExpandRecord, isStandalone: true, selector: "ai-table-expand-record", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableExpandRecord, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8383
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableExpandRecord, isStandalone: true, selector: "ai-table-expand-record", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
8384
8384
  <ko-group>
8385
8385
  @if (shouldShowIcon()) {
8386
8386
  <ai-table-action-icon [config]="expandIconConfig()"></ai-table-action-icon>
@@ -8388,7 +8388,7 @@ class AITableExpandRecord {
8388
8388
  </ko-group>
8389
8389
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: AITableActionIcon, selector: "ai-table-action-icon", inputs: ["config"], outputs: ["onClick", "onMousemove", "onMouseenter", "onMouseleave"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8390
8390
  }
8391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableExpandRecord, decorators: [{
8391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableExpandRecord, decorators: [{
8392
8392
  type: Component,
8393
8393
  args: [{
8394
8394
  selector: 'ai-table-expand-record',
@@ -8406,8 +8406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8406
8406
 
8407
8407
  class AITableBackground {
8408
8408
  constructor() {
8409
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8410
- this.isActive = input(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
8409
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8410
+ this.isActive = input(false, ...(ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []));
8411
8411
  this.koClick = output();
8412
8412
  this.hover = output();
8413
8413
  this.koMouseenter = output();
@@ -8415,14 +8415,14 @@ class AITableBackground {
8415
8415
  this.groupConfig = computed(() => {
8416
8416
  const { x, y } = this.config();
8417
8417
  return { x, y, listening: false };
8418
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
8419
- this.isHover = model(false, ...(ngDevMode ? [{ debugName: "isHover" }] : []));
8418
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
8419
+ this.isHover = model(false, ...(ngDevMode ? [{ debugName: "isHover" }] : /* istanbul ignore next */ []));
8420
8420
  this.isShowSpecialBorderConfig = computed(() => {
8421
8421
  const { borders } = this.config();
8422
8422
  const stroke = this.stroke();
8423
8423
  const strokeWidth = this.strokeWidth();
8424
8424
  return borders && stroke && strokeWidth && ___default.some(borders, (item) => !item) && ___default.some(borders, (item) => !!item);
8425
- }, ...(ngDevMode ? [{ debugName: "isShowSpecialBorderConfig" }] : []));
8425
+ }, ...(ngDevMode ? [{ debugName: "isShowSpecialBorderConfig" }] : /* istanbul ignore next */ []));
8426
8426
  this.borderLinesConfig = computed(() => {
8427
8427
  const { borders, height, width } = this.config();
8428
8428
  const stroke = this.stroke();
@@ -8470,21 +8470,21 @@ class AITableBackground {
8470
8470
  });
8471
8471
  }
8472
8472
  return result;
8473
- }, ...(ngDevMode ? [{ debugName: "borderLinesConfig" }] : []));
8473
+ }, ...(ngDevMode ? [{ debugName: "borderLinesConfig" }] : /* istanbul ignore next */ []));
8474
8474
  this.stroke = computed(() => {
8475
8475
  const { stroke, hoverStroke } = this.config();
8476
8476
  const active = this.isHover() || this.isActive();
8477
8477
  return active ? hoverStroke || stroke : stroke;
8478
- }, ...(ngDevMode ? [{ debugName: "stroke" }] : []));
8478
+ }, ...(ngDevMode ? [{ debugName: "stroke" }] : /* istanbul ignore next */ []));
8479
8479
  this.strokeWidth = computed(() => {
8480
8480
  const { strokeWidth, hoverStrokeWidth } = this.config();
8481
8481
  const active = this.isHover() || this.isActive();
8482
8482
  return active ? hoverStrokeWidth || strokeWidth : strokeWidth;
8483
- }, ...(ngDevMode ? [{ debugName: "strokeWidth" }] : []));
8483
+ }, ...(ngDevMode ? [{ debugName: "strokeWidth" }] : /* istanbul ignore next */ []));
8484
8484
  this.containerConfig = computed(() => {
8485
8485
  const { x, y } = this.config();
8486
8486
  return { x, y };
8487
- }, ...(ngDevMode ? [{ debugName: "containerConfig" }] : []));
8487
+ }, ...(ngDevMode ? [{ debugName: "containerConfig" }] : /* istanbul ignore next */ []));
8488
8488
  this.bgConfig = computed(() => {
8489
8489
  const { name, width, height, fill = Colors.transparent, opacity, hoverFill, hoverOpacity, listening, borders } = this.config();
8490
8490
  const [top, right, bottom, left] = borders || [false, false, false, false];
@@ -8505,7 +8505,7 @@ class AITableBackground {
8505
8505
  result.strokeWidth = this.strokeWidth();
8506
8506
  }
8507
8507
  return result;
8508
- }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : []));
8508
+ }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : /* istanbul ignore next */ []));
8509
8509
  }
8510
8510
  onClick(e) {
8511
8511
  this.koClick.emit(e);
@@ -8527,8 +8527,8 @@ class AITableBackground {
8527
8527
  this.koMouseleave.emit(e);
8528
8528
  this.hover.emit(this.isHover());
8529
8529
  }
8530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableBackground, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8531
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableBackground, isStandalone: true, selector: "ai-table-background", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, isHover: { classPropertyName: "isHover", publicName: "isHover", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koClick: "koClick", hover: "hover", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", isHover: "isHoverChange" }, ngImport: i0, template: `
8530
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableBackground, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8531
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableBackground, isStandalone: true, selector: "ai-table-background", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, isHover: { classPropertyName: "isHover", publicName: "isHover", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { koClick: "koClick", hover: "hover", koMouseenter: "koMouseenter", koMouseleave: "koMouseleave", isHover: "isHoverChange" }, ngImport: i0, template: `
8532
8532
  <ko-group [config]="containerConfig()">
8533
8533
  <ko-group>
8534
8534
  <ko-rect
@@ -8547,7 +8547,7 @@ class AITableBackground {
8547
8547
  </ko-group>
8548
8548
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8549
8549
  }
8550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableBackground, decorators: [{
8550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableBackground, decorators: [{
8551
8551
  type: Component,
8552
8552
  args: [{
8553
8553
  selector: 'ai-table-background',
@@ -8576,7 +8576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8576
8576
 
8577
8577
  class AITableShadow {
8578
8578
  constructor() {
8579
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8579
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8580
8580
  this.shadowConfig = computed(() => {
8581
8581
  const { visible, x, y, width = AI_TABLE_SHADOW_DEFAULT_WIDTH, height } = this.config();
8582
8582
  return {
@@ -8589,12 +8589,12 @@ class AITableShadow {
8589
8589
  fillLinearGradientEndPoint: { x: width, y: 0 },
8590
8590
  fillLinearGradientColorStops: [0, 'rgba(0,0,0,0.05)', 1, Colors.transparent]
8591
8591
  };
8592
- }, ...(ngDevMode ? [{ debugName: "shadowConfig" }] : []));
8592
+ }, ...(ngDevMode ? [{ debugName: "shadowConfig" }] : /* istanbul ignore next */ []));
8593
8593
  }
8594
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8595
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableShadow, isStandalone: true, selector: "ai-table-shadow", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<ko-rect [config]="shadowConfig()"></ko-rect>`, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableShadow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8595
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableShadow, isStandalone: true, selector: "ai-table-shadow", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `<ko-rect [config]="shadowConfig()"></ko-rect>`, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8596
8596
  }
8597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableShadow, decorators: [{
8597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableShadow, decorators: [{
8598
8598
  type: Component,
8599
8599
  args: [{
8600
8600
  selector: 'ai-table-shadow',
@@ -8606,16 +8606,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
8606
8606
 
8607
8607
  class AITableScrollableGroup {
8608
8608
  constructor() {
8609
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
8610
- this.contentTemplate = input.required(...(ngDevMode ? [{ debugName: "contentTemplate" }] : []));
8611
- this.parentContainer = input(...(ngDevMode ? [undefined, { debugName: "parentContainer" }] : []));
8609
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
8610
+ this.contentTemplate = input.required(...(ngDevMode ? [{ debugName: "contentTemplate" }] : /* istanbul ignore next */ []));
8611
+ this.parentContainer = input(...(ngDevMode ? [undefined, { debugName: "parentContainer" }] : /* istanbul ignore next */ []));
8612
8612
  this.scrollPosition = output();
8613
- this.displayScrollbarTime = signal(null, ...(ngDevMode ? [{ debugName: "displayScrollbarTime" }] : []));
8614
- this.hiddenScrollbar = signal(true, ...(ngDevMode ? [{ debugName: "hiddenScrollbar" }] : []));
8615
- this.isHoverScrollbar = signal(false, ...(ngDevMode ? [{ debugName: "isHoverScrollbar" }] : []));
8613
+ this.displayScrollbarTime = signal(null, ...(ngDevMode ? [{ debugName: "displayScrollbarTime" }] : /* istanbul ignore next */ []));
8614
+ this.hiddenScrollbar = signal(true, ...(ngDevMode ? [{ debugName: "hiddenScrollbar" }] : /* istanbul ignore next */ []));
8615
+ this.isHoverScrollbar = signal(false, ...(ngDevMode ? [{ debugName: "isHoverScrollbar" }] : /* istanbul ignore next */ []));
8616
8616
  // 滚动位置信号
8617
- this.scrollX = signal(0, ...(ngDevMode ? [{ debugName: "scrollX" }] : []));
8618
- this.scrollY = signal(0, ...(ngDevMode ? [{ debugName: "scrollY" }] : []));
8617
+ this.scrollX = signal(0, ...(ngDevMode ? [{ debugName: "scrollX" }] : /* istanbul ignore next */ []));
8618
+ this.scrollY = signal(0, ...(ngDevMode ? [{ debugName: "scrollY" }] : /* istanbul ignore next */ []));
8619
8619
  // 容器配置
8620
8620
  this.containerConfig = computed(() => {
8621
8621
  const { x = 0, y = 0, width, height } = this.config();
@@ -8632,7 +8632,7 @@ class AITableScrollableGroup {
8632
8632
  clipHeight: height,
8633
8633
  name: 'scrollable-group'
8634
8634
  };
8635
- }, ...(ngDevMode ? [{ debugName: "containerConfig" }] : []));
8635
+ }, ...(ngDevMode ? [{ debugName: "containerConfig" }] : /* istanbul ignore next */ []));
8636
8636
  this.bgConfig = computed(() => {
8637
8637
  const { x = 0, y = 0, width, height, bgName } = this.config();
8638
8638
  const config = {
@@ -8647,7 +8647,7 @@ class AITableScrollableGroup {
8647
8647
  config.name = bgName;
8648
8648
  }
8649
8649
  return config;
8650
- }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : []));
8650
+ }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : /* istanbul ignore next */ []));
8651
8651
  // 内容区域配置
8652
8652
  this.contentConfig = computed(() => {
8653
8653
  if (this.config().contentNotScrollbar) {
@@ -8660,17 +8660,17 @@ class AITableScrollableGroup {
8660
8660
  offsetX: this.scrollX(),
8661
8661
  offsetY: this.scrollY()
8662
8662
  };
8663
- }, ...(ngDevMode ? [{ debugName: "contentConfig" }] : []));
8663
+ }, ...(ngDevMode ? [{ debugName: "contentConfig" }] : /* istanbul ignore next */ []));
8664
8664
  // 是否显示竖向滚动条
8665
8665
  this.showVerticalScrollbar = computed(() => {
8666
8666
  const { height, contentHeight, verticalScrollbar } = this.config();
8667
8667
  return verticalScrollbar && contentHeight > height;
8668
- }, ...(ngDevMode ? [{ debugName: "showVerticalScrollbar" }] : []));
8668
+ }, ...(ngDevMode ? [{ debugName: "showVerticalScrollbar" }] : /* istanbul ignore next */ []));
8669
8669
  // 是否显示横向滚动条
8670
8670
  this.showHorizontalScrollbar = computed(() => {
8671
8671
  const { width, contentWidth, horizontalScrollbar } = this.config();
8672
8672
  return horizontalScrollbar && contentWidth > width;
8673
- }, ...(ngDevMode ? [{ debugName: "showHorizontalScrollbar" }] : []));
8673
+ }, ...(ngDevMode ? [{ debugName: "showHorizontalScrollbar" }] : /* istanbul ignore next */ []));
8674
8674
  // 竖向滚动条配置
8675
8675
  this.verticalScrollbarConfig = computed(() => {
8676
8676
  const { width, scrollbarSize = 12 } = this.config();
@@ -8680,7 +8680,7 @@ class AITableScrollableGroup {
8680
8680
  width: scrollbarSize,
8681
8681
  height: this.verticalScrollbarHeight()
8682
8682
  };
8683
- }, ...(ngDevMode ? [{ debugName: "verticalScrollbarConfig" }] : []));
8683
+ }, ...(ngDevMode ? [{ debugName: "verticalScrollbarConfig" }] : /* istanbul ignore next */ []));
8684
8684
  // 横向滚动条配置
8685
8685
  this.horizontalScrollbarConfig = computed(() => {
8686
8686
  const { height, scrollbarSize = 12 } = this.config();
@@ -8690,7 +8690,7 @@ class AITableScrollableGroup {
8690
8690
  width: this.horizontalScrollbarHeight(),
8691
8691
  height: scrollbarSize
8692
8692
  };
8693
- }, ...(ngDevMode ? [{ debugName: "horizontalScrollbarConfig" }] : []));
8693
+ }, ...(ngDevMode ? [{ debugName: "horizontalScrollbarConfig" }] : /* istanbul ignore next */ []));
8694
8694
  // 竖向滚动条轨道配置
8695
8695
  this.verticalTrackConfig = computed(() => {
8696
8696
  const { scrollbarSize = 12, scrollbarTrackColor, height } = this.config();
@@ -8702,7 +8702,7 @@ class AITableScrollableGroup {
8702
8702
  fill: scrollbarTrackColor,
8703
8703
  cornerRadius: 2
8704
8704
  };
8705
- }, ...(ngDevMode ? [{ debugName: "verticalTrackConfig" }] : []));
8705
+ }, ...(ngDevMode ? [{ debugName: "verticalTrackConfig" }] : /* istanbul ignore next */ []));
8706
8706
  // 横向滚动条轨道配置
8707
8707
  this.horizontalTrackConfig = computed(() => {
8708
8708
  const { scrollbarSize = 12, scrollbarTrackColor } = this.config();
@@ -8714,40 +8714,40 @@ class AITableScrollableGroup {
8714
8714
  fill: scrollbarTrackColor,
8715
8715
  cornerRadius: 2
8716
8716
  };
8717
- }, ...(ngDevMode ? [{ debugName: "horizontalTrackConfig" }] : []));
8717
+ }, ...(ngDevMode ? [{ debugName: "horizontalTrackConfig" }] : /* istanbul ignore next */ []));
8718
8718
  this.verticalThumbMinY = computed(() => {
8719
8719
  const getAbsolutePositionY = this.verticalTrack.getNode().getAbsolutePosition().y;
8720
8720
  return getAbsolutePositionY;
8721
- }, ...(ngDevMode ? [{ debugName: "verticalThumbMinY" }] : []));
8721
+ }, ...(ngDevMode ? [{ debugName: "verticalThumbMinY" }] : /* istanbul ignore next */ []));
8722
8722
  // 垂直滚动条滑块的最大Y坐标
8723
8723
  this.verticalThumbMaxY = computed(() => {
8724
8724
  const { height, contentHeight } = this.config();
8725
8725
  const getAbsolutePositionY = this.verticalTrack.getNode().getAbsolutePosition().y;
8726
8726
  return getAbsolutePositionY + height - this.verticalThumbHeight();
8727
- }, ...(ngDevMode ? [{ debugName: "verticalThumbMaxY" }] : []));
8727
+ }, ...(ngDevMode ? [{ debugName: "verticalThumbMaxY" }] : /* istanbul ignore next */ []));
8728
8728
  // 横向滚动条滑块的最小X坐标
8729
8729
  this.horizontalThumbMinX = computed(() => {
8730
8730
  const getAbsolutePositionX = this.horizontalTrack.getNode().getAbsolutePosition().x;
8731
8731
  return getAbsolutePositionX;
8732
- }, ...(ngDevMode ? [{ debugName: "horizontalThumbMinX" }] : []));
8732
+ }, ...(ngDevMode ? [{ debugName: "horizontalThumbMinX" }] : /* istanbul ignore next */ []));
8733
8733
  // 横向滚动条滑块的最大X坐标
8734
8734
  this.horizontalThumbMaxX = computed(() => {
8735
8735
  const { width } = this.config();
8736
8736
  const getAbsolutePositionX = this.horizontalTrack.getNode().getAbsolutePosition().x;
8737
8737
  return getAbsolutePositionX + width - this.horizontalThumbWidth();
8738
- }, ...(ngDevMode ? [{ debugName: "horizontalThumbMaxX" }] : []));
8738
+ }, ...(ngDevMode ? [{ debugName: "horizontalThumbMaxX" }] : /* istanbul ignore next */ []));
8739
8739
  // 竖向滚动条滑块高度
8740
8740
  this.verticalThumbHeight = computed(() => {
8741
8741
  const { height, contentHeight } = this.config();
8742
8742
  const thumbHeight = Math.max(20, (height / contentHeight) * this.verticalScrollbarHeight());
8743
8743
  return thumbHeight;
8744
- }, ...(ngDevMode ? [{ debugName: "verticalThumbHeight" }] : []));
8744
+ }, ...(ngDevMode ? [{ debugName: "verticalThumbHeight" }] : /* istanbul ignore next */ []));
8745
8745
  // 横向滚动条滑块宽度
8746
8746
  this.horizontalThumbWidth = computed(() => {
8747
8747
  const { width, contentWidth } = this.config();
8748
8748
  const thumbWidth = Math.max(20, (width / contentWidth) * this.horizontalScrollbarHeight());
8749
8749
  return thumbWidth;
8750
- }, ...(ngDevMode ? [{ debugName: "horizontalThumbWidth" }] : []));
8750
+ }, ...(ngDevMode ? [{ debugName: "horizontalThumbWidth" }] : /* istanbul ignore next */ []));
8751
8751
  // 竖向滚动条滑块配置
8752
8752
  this.verticalConfig = computed(() => {
8753
8753
  const { scrollbarSize = 12, scrollbarColor = Colors.black, scrollbarOpacity = 0.8 } = this.config();
@@ -8779,7 +8779,7 @@ class AITableScrollableGroup {
8779
8779
  };
8780
8780
  }
8781
8781
  };
8782
- }, ...(ngDevMode ? [{ debugName: "verticalConfig" }] : []));
8782
+ }, ...(ngDevMode ? [{ debugName: "verticalConfig" }] : /* istanbul ignore next */ []));
8783
8783
  // 横向滚动条滑块配置
8784
8784
  this.horizontalThumbConfig = computed(() => {
8785
8785
  const { scrollbarSize = 12, scrollbarColor = Colors.black, scrollbarOpacity = 0.8 } = this.config();
@@ -8811,17 +8811,17 @@ class AITableScrollableGroup {
8811
8811
  };
8812
8812
  }
8813
8813
  };
8814
- }, ...(ngDevMode ? [{ debugName: "horizontalThumbConfig" }] : []));
8814
+ }, ...(ngDevMode ? [{ debugName: "horizontalThumbConfig" }] : /* istanbul ignore next */ []));
8815
8815
  // 横向滚动条滑块配置
8816
8816
  this.verticalScrollbarHeight = computed(() => {
8817
8817
  const { height } = this.config();
8818
8818
  return height;
8819
- }, ...(ngDevMode ? [{ debugName: "verticalScrollbarHeight" }] : []));
8819
+ }, ...(ngDevMode ? [{ debugName: "verticalScrollbarHeight" }] : /* istanbul ignore next */ []));
8820
8820
  // 获取横向滚动条宽度
8821
8821
  this.horizontalScrollbarHeight = computed(() => {
8822
8822
  const { width } = this.config();
8823
8823
  return width;
8824
- }, ...(ngDevMode ? [{ debugName: "horizontalScrollbarHeight" }] : []));
8824
+ }, ...(ngDevMode ? [{ debugName: "horizontalScrollbarHeight" }] : /* istanbul ignore next */ []));
8825
8825
  // 滚动条延迟隐藏
8826
8826
  effect(() => {
8827
8827
  const displayScrollbarTime = this.displayScrollbarTime();
@@ -8943,8 +8943,8 @@ class AITableScrollableGroup {
8943
8943
  const { width, contentWidth } = this.config();
8944
8944
  this.scrollX.set(Math.max(0, contentWidth - width));
8945
8945
  }
8946
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableScrollableGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8947
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableScrollableGroup, isStandalone: true, selector: "ai-table-scrollable-group", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: true, isRequired: true, transformFunction: null }, parentContainer: { classPropertyName: "parentContainer", publicName: "parentContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrollPosition: "scrollPosition" }, viewQueries: [{ propertyName: "verticalTrack", first: true, predicate: ["verticalTrack"], descendants: true }, { propertyName: "verticalThumb", first: true, predicate: ["verticalThumb"], descendants: true }, { propertyName: "horizontalTrack", first: true, predicate: ["horizontalTrack"], descendants: true }, { propertyName: "contentGroup", first: true, predicate: ["contentGroup"], descendants: true }, { propertyName: "rootGroup", first: true, predicate: ["rootGroup"], descendants: true }], ngImport: i0, template: `
8946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableScrollableGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8947
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableScrollableGroup, isStandalone: true, selector: "ai-table-scrollable-group", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: true, isRequired: true, transformFunction: null }, parentContainer: { classPropertyName: "parentContainer", publicName: "parentContainer", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrollPosition: "scrollPosition" }, viewQueries: [{ propertyName: "verticalTrack", first: true, predicate: ["verticalTrack"], descendants: true }, { propertyName: "verticalThumb", first: true, predicate: ["verticalThumb"], descendants: true }, { propertyName: "horizontalTrack", first: true, predicate: ["horizontalTrack"], descendants: true }, { propertyName: "contentGroup", first: true, predicate: ["contentGroup"], descendants: true }, { propertyName: "rootGroup", first: true, predicate: ["rootGroup"], descendants: true }], ngImport: i0, template: `
8948
8948
  <ko-group #rootGroup [config]="containerConfig()" (koWheel)="stageWheel($event)">
8949
8949
  <ko-group>
8950
8950
  <ko-rect [config]="bgConfig()"></ko-rect>
@@ -8992,7 +8992,7 @@ class AITableScrollableGroup {
8992
8992
  </ko-group>
8993
8993
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8994
8994
  }
8995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableScrollableGroup, decorators: [{
8995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableScrollableGroup, decorators: [{
8996
8996
  type: Component,
8997
8997
  args: [{
8998
8998
  selector: 'ai-table-scrollable-group',
@@ -9180,11 +9180,11 @@ const createGroupFieldStats = (config) => {
9180
9180
  class AITableStatTypeMenu extends ThyDropdownAbstractMenu {
9181
9181
  constructor() {
9182
9182
  super(...arguments);
9183
- this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : []));
9184
- this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : []));
9185
- this.statMenus = input.required(...(ngDevMode ? [{ debugName: "statMenus" }] : []));
9183
+ this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
9184
+ this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
9185
+ this.statMenus = input.required(...(ngDevMode ? [{ debugName: "statMenus" }] : /* istanbul ignore next */ []));
9186
9186
  this.menuClick = output();
9187
- this.selectStatType = computed(() => this.field().stat_type || AITableStatType.None, ...(ngDevMode ? [{ debugName: "selectStatType" }] : []));
9187
+ this.selectStatType = computed(() => this.field().stat_type || AITableStatType.None, ...(ngDevMode ? [{ debugName: "selectStatType" }] : /* istanbul ignore next */ []));
9188
9188
  }
9189
9189
  execute(menu) {
9190
9190
  this.menuClick.emit({
@@ -9192,10 +9192,10 @@ class AITableStatTypeMenu extends ThyDropdownAbstractMenu {
9192
9192
  field: this.field()
9193
9193
  });
9194
9194
  }
9195
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableStatTypeMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9196
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableStatTypeMenu, isStandalone: true, selector: "ai-table-stat-type-menu", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, statMenus: { classPropertyName: "statMenus", publicName: "statMenus", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { menuClick: "menuClick" }, host: { classAttribute: "stat-type-menu" }, usesInheritance: true, ngImport: i0, template: "@if (field()) {\n @for (menu of statMenus(); track index; let index = $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: selectStatType() === menu.type\n }\"\n (click)=\"execute(menu)\"\n >\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableStatTypeMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableStatTypeMenu, isStandalone: true, selector: "ai-table-stat-type-menu", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, statMenus: { classPropertyName: "statMenus", publicName: "statMenus", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { menuClick: "menuClick" }, host: { classAttribute: "stat-type-menu" }, usesInheritance: true, ngImport: i0, template: "@if (field()) {\n @for (menu of statMenus(); track index; let index = $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: selectStatType() === menu.type\n }\"\n (click)=\"execute(menu)\"\n >\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9197
9197
  }
9198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableStatTypeMenu, decorators: [{
9198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableStatTypeMenu, decorators: [{
9199
9199
  type: Component,
9200
9200
  args: [{ selector: 'ai-table-stat-type-menu', changeDetection: ChangeDetectionStrategy.OnPush, host: {
9201
9201
  class: 'stat-type-menu'
@@ -9205,28 +9205,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9205
9205
  class AITableFieldStat {
9206
9206
  constructor() {
9207
9207
  this.thyPopover = inject(ThyPopover);
9208
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9208
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9209
9209
  this.hover = output();
9210
- this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
9211
- this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : []));
9210
+ this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []));
9211
+ this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : /* istanbul ignore next */ []));
9212
9212
  this.isShowSelectedCount = false;
9213
9213
  this.availableTextWidth = computed(() => {
9214
9214
  const { width } = this.config();
9215
9215
  return width - AI_TABLE_ACTION_COMMON_SIZE - AI_TABLE_CELL_PADDING;
9216
- }, ...(ngDevMode ? [{ debugName: "availableTextWidth" }] : []));
9216
+ }, ...(ngDevMode ? [{ debugName: "availableTextWidth" }] : /* istanbul ignore next */ []));
9217
9217
  this.groupConfig = computed(() => {
9218
9218
  return {
9219
9219
  x: this.config().x,
9220
9220
  y: this.config().y
9221
9221
  };
9222
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
9222
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
9223
9223
  this.isGroupStat = computed(() => {
9224
9224
  return this.config().isGroupStat;
9225
- }, ...(ngDevMode ? [{ debugName: "isGroupStat" }] : []));
9225
+ }, ...(ngDevMode ? [{ debugName: "isGroupStat" }] : /* istanbul ignore next */ []));
9226
9226
  this.groupStatContainerWidthMap = computed(() => {
9227
9227
  const { aiTable } = this.config();
9228
9228
  return aiTable.context?.groupStatContainerWidthMap();
9229
- }, ...(ngDevMode ? [{ debugName: "groupStatContainerWidthMap" }] : []));
9229
+ }, ...(ngDevMode ? [{ debugName: "groupStatContainerWidthMap" }] : /* istanbul ignore next */ []));
9230
9230
  this.bgConfig = computed(() => {
9231
9231
  const { field, width, height, coordinate, readonly, aiTable, isGroupStat, columnIndex, groupRow } = this.config();
9232
9232
  const rowHeadWidth = aiTable.context.rowHeadWidth();
@@ -9289,21 +9289,21 @@ class AITableFieldStat {
9289
9289
  }
9290
9290
  }
9291
9291
  return config;
9292
- }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : []));
9292
+ }, ...(ngDevMode ? [{ debugName: "bgConfig" }] : /* istanbul ignore next */ []));
9293
9293
  this.field = computed(() => {
9294
9294
  const { field } = this.config();
9295
9295
  return field;
9296
- }, ...(ngDevMode ? [{ debugName: "field" }] : []));
9296
+ }, ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
9297
9297
  this.linearRows = computed(() => {
9298
9298
  const { aiTable } = this.config();
9299
9299
  return aiTable.context?.linearRows();
9300
- }, ...(ngDevMode ? [{ debugName: "linearRows" }] : []));
9300
+ }, ...(ngDevMode ? [{ debugName: "linearRows" }] : /* istanbul ignore next */ []));
9301
9301
  this.recordsMap = computed(() => {
9302
9302
  const { aiTable } = this.config();
9303
9303
  return aiTable.recordsMap();
9304
- }, ...(ngDevMode ? [{ debugName: "recordsMap" }] : []));
9305
- this.groupRow = computed(() => this.config().groupRow, ...(ngDevMode ? [{ debugName: "groupRow" }] : []));
9306
- this.gridData = computed(() => this.config().aiTable.gridData(), ...(ngDevMode ? [{ debugName: "gridData" }] : []));
9304
+ }, ...(ngDevMode ? [{ debugName: "recordsMap" }] : /* istanbul ignore next */ []));
9305
+ this.groupRow = computed(() => this.config().groupRow, ...(ngDevMode ? [{ debugName: "groupRow" }] : /* istanbul ignore next */ []));
9306
+ this.gridData = computed(() => this.config().aiTable.gridData(), ...(ngDevMode ? [{ debugName: "gridData" }] : /* istanbul ignore next */ []));
9307
9307
  this.records = computed(() => {
9308
9308
  let records = [];
9309
9309
  const groupRow = this.groupRow();
@@ -9316,15 +9316,15 @@ class AITableFieldStat {
9316
9316
  records = this.gridData().records;
9317
9317
  }
9318
9318
  return records;
9319
- }, ...(ngDevMode ? [{ debugName: "records" }] : []));
9319
+ }, ...(ngDevMode ? [{ debugName: "records" }] : /* istanbul ignore next */ []));
9320
9320
  this.aiFieldConfig = computed(() => {
9321
9321
  const { aiTable } = this.config();
9322
9322
  return aiTable.context?.aiFieldConfig;
9323
- }, ...(ngDevMode ? [{ debugName: "aiFieldConfig" }] : []));
9323
+ }, ...(ngDevMode ? [{ debugName: "aiFieldConfig" }] : /* istanbul ignore next */ []));
9324
9324
  this.aiTable = computed(() => {
9325
9325
  const { aiTable } = this.config();
9326
9326
  return aiTable;
9327
- }, ...(ngDevMode ? [{ debugName: "aiTable" }] : []));
9327
+ }, ...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
9328
9328
  this.options = computed(() => {
9329
9329
  const aiTable = this.aiTable();
9330
9330
  return {
@@ -9335,18 +9335,18 @@ class AITableFieldStat {
9335
9335
  return AITableQueries.getFieldValue(aiTable, [record._id, field._id]);
9336
9336
  }
9337
9337
  };
9338
- }, ...(ngDevMode ? [{ debugName: "options" }] : []));
9338
+ }, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
9339
9339
  this.isActiveOrHover = computed(() => {
9340
9340
  return this.isActive() || this.isHover();
9341
- }, ...(ngDevMode ? [{ debugName: "isActiveOrHover" }] : []));
9341
+ }, ...(ngDevMode ? [{ debugName: "isActiveOrHover" }] : /* istanbul ignore next */ []));
9342
9342
  this.containerBoxHeight = computed(() => {
9343
9343
  const { height } = this.config();
9344
9344
  return height;
9345
- }, ...(ngDevMode ? [{ debugName: "containerBoxHeight" }] : []));
9345
+ }, ...(ngDevMode ? [{ debugName: "containerBoxHeight" }] : /* istanbul ignore next */ []));
9346
9346
  this.containerBoxWidth = computed(() => {
9347
9347
  const { width } = this.config();
9348
9348
  return width;
9349
- }, ...(ngDevMode ? [{ debugName: "containerBoxWidth" }] : []));
9349
+ }, ...(ngDevMode ? [{ debugName: "containerBoxWidth" }] : /* istanbul ignore next */ []));
9350
9350
  this.noneStatWidth = computed(() => {
9351
9351
  const noneStatString = getI18nTextByKey(this.aiTable(), AITableGridI18nKey.stat);
9352
9352
  const { text, textWidth } = drawer.textEllipsis({
@@ -9355,7 +9355,7 @@ class AITableFieldStat {
9355
9355
  fontWeight: DEFAULT_FONT_WEIGHT
9356
9356
  });
9357
9357
  return textWidth + AI_TABLE_ACTION_COMMON_SIZE + AI_TABLE_OFFSET;
9358
- }, ...(ngDevMode ? [{ debugName: "noneStatWidth" }] : []));
9358
+ }, ...(ngDevMode ? [{ debugName: "noneStatWidth" }] : /* istanbul ignore next */ []));
9359
9359
  this.renderTexts = computed(() => {
9360
9360
  const width = this.containerBoxWidth();
9361
9361
  const field = this.field();
@@ -9405,10 +9405,10 @@ class AITableFieldStat {
9405
9405
  totalWidth: textWidth,
9406
9406
  statValue: statValue || ''
9407
9407
  };
9408
- }, ...(ngDevMode ? [{ debugName: "renderTexts" }] : []));
9408
+ }, ...(ngDevMode ? [{ debugName: "renderTexts" }] : /* istanbul ignore next */ []));
9409
9409
  this.fontSize = computed(() => {
9410
9410
  return this.isGroupStat() ? GROUP_STAT_DEFAULT_FONT_SIZE : DEFAULT_FONT_SIZE;
9411
- }, ...(ngDevMode ? [{ debugName: "fontSize" }] : []));
9411
+ }, ...(ngDevMode ? [{ debugName: "fontSize" }] : /* istanbul ignore next */ []));
9412
9412
  this.textsConfig = computed(() => {
9413
9413
  const height = this.containerBoxHeight();
9414
9414
  const width = this.containerBoxWidth();
@@ -9470,17 +9470,17 @@ class AITableFieldStat {
9470
9470
  return result;
9471
9471
  }
9472
9472
  return null;
9473
- }, ...(ngDevMode ? [{ debugName: "textsConfig" }] : []));
9473
+ }, ...(ngDevMode ? [{ debugName: "textsConfig" }] : /* istanbul ignore next */ []));
9474
9474
  this.selectedRecordCount = computed(() => {
9475
9475
  const aiTable = this.aiTable();
9476
9476
  const selectedRecords = aiTable.selection().selectedRecords;
9477
9477
  return selectedRecords.size;
9478
- }, ...(ngDevMode ? [{ debugName: "selectedRecordCount" }] : []));
9478
+ }, ...(ngDevMode ? [{ debugName: "selectedRecordCount" }] : /* istanbul ignore next */ []));
9479
9479
  this.selectedCellCount = computed(() => {
9480
9480
  const aiTable = this.aiTable();
9481
9481
  const selectedCells = aiTable.selection().selectedCells;
9482
9482
  return selectedCells.size;
9483
- }, ...(ngDevMode ? [{ debugName: "selectedCellCount" }] : []));
9483
+ }, ...(ngDevMode ? [{ debugName: "selectedCellCount" }] : /* istanbul ignore next */ []));
9484
9484
  this.selectedInfo = computed(() => {
9485
9485
  const selectedRecordCount = this.selectedRecordCount();
9486
9486
  const selectedCellCount = this.selectedCellCount();
@@ -9493,15 +9493,15 @@ class AITableFieldStat {
9493
9493
  selectedCount
9494
9494
  };
9495
9495
  return result;
9496
- }, ...(ngDevMode ? [{ debugName: "selectedInfo" }] : []));
9496
+ }, ...(ngDevMode ? [{ debugName: "selectedInfo" }] : /* istanbul ignore next */ []));
9497
9497
  this.isFirstColumn = computed(() => {
9498
9498
  const { columnIndex } = this.config();
9499
9499
  return columnIndex === 0;
9500
- }, ...(ngDevMode ? [{ debugName: "isFirstColumn" }] : []));
9500
+ }, ...(ngDevMode ? [{ debugName: "isFirstColumn" }] : /* istanbul ignore next */ []));
9501
9501
  this.isLastFrozenColumn = computed(() => {
9502
9502
  const { columnIndex, coordinate } = this.config();
9503
9503
  return columnIndex === coordinate.frozenColumnCount - 1;
9504
- }, ...(ngDevMode ? [{ debugName: "isLastFrozenColumn" }] : []));
9504
+ }, ...(ngDevMode ? [{ debugName: "isLastFrozenColumn" }] : /* istanbul ignore next */ []));
9505
9505
  this.iconConfig = computed(() => {
9506
9506
  const { field, width, height } = this.config();
9507
9507
  const commonIconOffsetY = (height - AI_TABLE_ACTION_COMMON_SIZE) / 2;
@@ -9516,7 +9516,7 @@ class AITableFieldStat {
9516
9516
  cornerRadius: 4,
9517
9517
  listening: false
9518
9518
  };
9519
- }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : []));
9519
+ }, ...(ngDevMode ? [{ debugName: "iconConfig" }] : /* istanbul ignore next */ []));
9520
9520
  effect(() => {
9521
9521
  const isGroupStat = this.isGroupStat();
9522
9522
  const bgConfigWidth = this.bgConfig().width;
@@ -9597,8 +9597,8 @@ class AITableFieldStat {
9597
9597
  });
9598
9598
  }
9599
9599
  }
9600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldStat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9601
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFieldStat, isStandalone: true, selector: "ai-table-field-stat", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { hover: "hover" }, ngImport: i0, template: `
9600
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldStat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9601
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFieldStat, isStandalone: true, selector: "ai-table-field-stat", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { hover: "hover" }, ngImport: i0, template: `
9602
9602
  <ko-group [config]="groupConfig()">
9603
9603
  <ai-table-background
9604
9604
  [config]="bgConfig()"
@@ -9620,7 +9620,7 @@ class AITableFieldStat {
9620
9620
  </ko-group>
9621
9621
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }, { kind: "component", type: AITableBackground, selector: "ai-table-background", inputs: ["config", "isActive", "isHover"], outputs: ["koClick", "hover", "koMouseenter", "koMouseleave", "isHoverChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9622
9622
  }
9623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldStat, decorators: [{
9623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldStat, decorators: [{
9624
9624
  type: Component,
9625
9625
  args: [{
9626
9626
  selector: 'ai-table-field-stat',
@@ -9652,24 +9652,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9652
9652
 
9653
9653
  class AITableGroups {
9654
9654
  constructor() {
9655
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9655
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9656
9656
  this.trackBy = (groupStat) => {
9657
9657
  return groupStat.groupRow._id + groupStat.columnIndex;
9658
9658
  };
9659
9659
  this.frozenColumnCount = computed(() => {
9660
9660
  const { coordinate } = this.config();
9661
9661
  return coordinate.frozenColumnCount ?? 0;
9662
- }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : []));
9662
+ }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : /* istanbul ignore next */ []));
9663
9663
  this.columnStartIndex = computed(() => {
9664
9664
  const { columnStartIndex } = this.config();
9665
9665
  return Math.max(columnStartIndex, this.frozenColumnCount());
9666
- }, ...(ngDevMode ? [{ debugName: "columnStartIndex" }] : []));
9666
+ }, ...(ngDevMode ? [{ debugName: "columnStartIndex" }] : /* istanbul ignore next */ []));
9667
9667
  this.groups = computed(() => {
9668
9668
  return createGroupCells({
9669
9669
  ...this.config(),
9670
9670
  columnStartIndex: this.columnStartIndex()
9671
9671
  });
9672
- }, ...(ngDevMode ? [{ debugName: "groups" }] : []));
9672
+ }, ...(ngDevMode ? [{ debugName: "groups" }] : /* istanbul ignore next */ []));
9673
9673
  this.groupCells = computed(() => {
9674
9674
  const groups = this.groups();
9675
9675
  const groupCells = [];
@@ -9687,16 +9687,16 @@ class AITableGroups {
9687
9687
  });
9688
9688
  });
9689
9689
  return groupCells;
9690
- }, ...(ngDevMode ? [{ debugName: "groupCells" }] : []));
9690
+ }, ...(ngDevMode ? [{ debugName: "groupCells" }] : /* istanbul ignore next */ []));
9691
9691
  }
9692
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9693
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableGroups, isStandalone: true, selector: "ai-table-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableGroups, isStandalone: true, selector: "ai-table-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9694
9694
  @for (groupCell of groupCells(); track trackBy(groupCell.groupStat!)) {
9695
9695
  <ai-table-field-stat [config]="groupCell.groupStat!"></ai-table-field-stat>
9696
9696
  }
9697
9697
  `, isInline: true, dependencies: [{ kind: "component", type: AITableFieldStat, selector: "ai-table-field-stat", inputs: ["config"], outputs: ["hover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9698
9698
  }
9699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGroups, decorators: [{
9699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGroups, decorators: [{
9700
9700
  type: Component,
9701
9701
  args: [{
9702
9702
  selector: 'ai-table-groups',
@@ -9712,25 +9712,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9712
9712
 
9713
9713
  class AITableFrozenGroups {
9714
9714
  constructor() {
9715
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9715
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9716
9716
  this.frozenColumnCount = computed(() => {
9717
9717
  const { coordinate } = this.config();
9718
9718
  return coordinate.frozenColumnCount ?? 0;
9719
- }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : []));
9719
+ }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : /* istanbul ignore next */ []));
9720
9720
  this.columnStopIndex = computed(() => {
9721
9721
  return this.frozenColumnCount() - 1;
9722
- }, ...(ngDevMode ? [{ debugName: "columnStopIndex" }] : []));
9722
+ }, ...(ngDevMode ? [{ debugName: "columnStopIndex" }] : /* istanbul ignore next */ []));
9723
9723
  this.groups = computed(() => {
9724
9724
  return createGroupCells({
9725
9725
  ...this.config(),
9726
9726
  columnStartIndex: 0,
9727
9727
  columnStopIndex: this.columnStopIndex()
9728
9728
  });
9729
- }, ...(ngDevMode ? [{ debugName: "groups" }] : []));
9729
+ }, ...(ngDevMode ? [{ debugName: "groups" }] : /* istanbul ignore next */ []));
9730
9730
  this.groupCollapseDisabled = computed(() => {
9731
9731
  const { aiTable } = this.config();
9732
9732
  return aiTable.context.groupCollapseDisabled();
9733
- }, ...(ngDevMode ? [{ debugName: "groupCollapseDisabled" }] : []));
9733
+ }, ...(ngDevMode ? [{ debugName: "groupCollapseDisabled" }] : /* istanbul ignore next */ []));
9734
9734
  this.groupCells = computed(() => {
9735
9735
  const groups = this.groups();
9736
9736
  const groupCells = [];
@@ -9769,15 +9769,15 @@ class AITableFrozenGroups {
9769
9769
  });
9770
9770
  });
9771
9771
  return groupCells;
9772
- }, ...(ngDevMode ? [{ debugName: "groupCells" }] : []));
9772
+ }, ...(ngDevMode ? [{ debugName: "groupCells" }] : /* istanbul ignore next */ []));
9773
9773
  }
9774
9774
  collapseClick(e) {
9775
9775
  if (this.groupCollapseDisabled()) {
9776
9776
  e.event.cancelBubble = true;
9777
9777
  }
9778
9778
  }
9779
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9780
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFrozenGroups, isStandalone: true, selector: "ai-table-frozen-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9780
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFrozenGroups, isStandalone: true, selector: "ai-table-frozen-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9781
9781
  @for (groupCell of groupCells(); track $index) {
9782
9782
  @if (groupCell.collapsedIcon) {
9783
9783
  <ai-table-icon [config]="groupCell.collapsedIcon" (koClick)="collapseClick($event)"></ai-table-icon>
@@ -9786,7 +9786,7 @@ class AITableFrozenGroups {
9786
9786
  }
9787
9787
  `, isInline: true, dependencies: [{ kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }, { kind: "component", type: AITableFieldStat, selector: "ai-table-field-stat", inputs: ["config"], outputs: ["hover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9788
9788
  }
9789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFrozenGroups, decorators: [{
9789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFrozenGroups, decorators: [{
9790
9790
  type: Component,
9791
9791
  args: [{
9792
9792
  selector: 'ai-table-frozen-groups',
@@ -9805,14 +9805,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9805
9805
 
9806
9806
  class AITableFillHandle {
9807
9807
  constructor() {
9808
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9808
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9809
9809
  this.showFillHandle = computed(() => {
9810
9810
  const { aiTable, readonly } = this.config();
9811
9811
  const selection = aiTable.selection();
9812
9812
  const hasSelectedCells = selection.selectedCells.size > 0;
9813
9813
  const isEditingCell = !!aiTable.editingCell()?.path;
9814
9814
  return hasSelectedCells && !readonly && !isEditingCell;
9815
- }, ...(ngDevMode ? [{ debugName: "showFillHandle" }] : []));
9815
+ }, ...(ngDevMode ? [{ debugName: "showFillHandle" }] : /* istanbul ignore next */ []));
9816
9816
  this.handleConfig = computed(() => {
9817
9817
  const { aiTable, coordinate } = this.config();
9818
9818
  const selectedCells = Array.from(aiTable.selection().selectedCells);
@@ -9846,16 +9846,16 @@ class AITableFillHandle {
9846
9846
  recordId
9847
9847
  })
9848
9848
  };
9849
- }, ...(ngDevMode ? [{ debugName: "handleConfig" }] : []));
9849
+ }, ...(ngDevMode ? [{ debugName: "handleConfig" }] : /* istanbul ignore next */ []));
9850
9850
  }
9851
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFillHandle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9852
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFillHandle, isStandalone: true, selector: "ai-table-fill-handle", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9851
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFillHandle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9852
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFillHandle, isStandalone: true, selector: "ai-table-fill-handle", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9853
9853
  @if (showFillHandle()) {
9854
9854
  <ko-rect [config]="handleConfig()"></ko-rect>
9855
9855
  }
9856
9856
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }] }); }
9857
9857
  }
9858
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFillHandle, decorators: [{
9858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFillHandle, decorators: [{
9859
9859
  type: Component,
9860
9860
  args: [{
9861
9861
  selector: 'ai-table-fill-handle',
@@ -9870,8 +9870,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9870
9870
 
9871
9871
  class AITableCoverCellEntry {
9872
9872
  constructor() {
9873
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9874
- this.onlyDisplayBorder = input(false, ...(ngDevMode ? [{ debugName: "onlyDisplayBorder" }] : []));
9873
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9874
+ this.onlyDisplayBorder = input(false, ...(ngDevMode ? [{ debugName: "onlyDisplayBorder" }] : /* istanbul ignore next */ []));
9875
9875
  this.componentMap = {};
9876
9876
  this.groupConfig = computed(() => {
9877
9877
  return {
@@ -9879,7 +9879,7 @@ class AITableCoverCellEntry {
9879
9879
  y: this.coverCellConfig()?.y,
9880
9880
  listening: true
9881
9881
  };
9882
- }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : []));
9882
+ }, ...(ngDevMode ? [{ debugName: "groupConfig" }] : /* istanbul ignore next */ []));
9883
9883
  this.coverCellConfig = computed(() => {
9884
9884
  const { aiTable, coordinate, references, readonly, actions } = this.config();
9885
9885
  const coverCell = this.coverCell();
@@ -9943,11 +9943,11 @@ class AITableCoverCellEntry {
9943
9943
  }
9944
9944
  };
9945
9945
  return result;
9946
- }, ...(ngDevMode ? [{ debugName: "coverCellConfig" }] : []));
9947
- this.coverCell = computed(() => getCoverCell(this.config().aiTable), ...(ngDevMode ? [{ debugName: "coverCell" }] : []));
9946
+ }, ...(ngDevMode ? [{ debugName: "coverCellConfig" }] : /* istanbul ignore next */ []));
9947
+ this.coverCell = computed(() => getCoverCell(this.config().aiTable), ...(ngDevMode ? [{ debugName: "coverCell" }] : /* istanbul ignore next */ []));
9948
9948
  }
9949
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCoverCellEntry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9950
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCoverCellEntry, isStandalone: true, selector: "ai-table-cover-cell-entry", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9949
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCoverCellEntry, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9950
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCoverCellEntry, isStandalone: true, selector: "ai-table-cover-cell-entry", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, onlyDisplayBorder: { classPropertyName: "onlyDisplayBorder", publicName: "onlyDisplayBorder", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9951
9951
  @if (coverCell()) {
9952
9952
  <ko-group #rootGroup [config]="groupConfig()">
9953
9953
  <ng-container
@@ -9959,9 +9959,9 @@ class AITableCoverCellEntry {
9959
9959
  </ng-container>
9960
9960
  </ko-group>
9961
9961
  }
9962
- `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9962
+ `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9963
9963
  }
9964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCoverCellEntry, decorators: [{
9964
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCoverCellEntry, decorators: [{
9965
9965
  type: Component,
9966
9966
  args: [{
9967
9967
  selector: 'ai-table-cover-cell-entry',
@@ -9985,13 +9985,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
9985
9985
 
9986
9986
  class AITableFieldStats {
9987
9987
  constructor() {
9988
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
9988
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
9989
9989
  this.hover = output();
9990
- this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : []));
9990
+ this.isHover = signal(false, ...(ngDevMode ? [{ debugName: "isHover" }] : /* istanbul ignore next */ []));
9991
9991
  this.trackBy = (groupStat) => {
9992
9992
  return groupStat.columnIndex;
9993
9993
  };
9994
- this.statConfigs = computed(() => createFieldStats(this.config()), ...(ngDevMode ? [{ debugName: "statConfigs" }] : []));
9994
+ this.statConfigs = computed(() => createFieldStats(this.config()), ...(ngDevMode ? [{ debugName: "statConfigs" }] : /* istanbul ignore next */ []));
9995
9995
  }
9996
9996
  onMouseenter(e) {
9997
9997
  this.isHover.set(true);
@@ -9999,8 +9999,8 @@ class AITableFieldStats {
9999
9999
  onMouseleave(e) {
10000
10000
  this.isHover.set(false);
10001
10001
  }
10002
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldStats, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10003
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFieldStats, isStandalone: true, selector: "ai-table-column-stats", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { hover: "hover" }, ngImport: i0, template: `
10002
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldStats, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10003
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFieldStats, isStandalone: true, selector: "ai-table-column-stats", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { hover: "hover" }, ngImport: i0, template: `
10004
10004
  <ko-group>
10005
10005
  @for (config of statConfigs(); track trackBy(config)) {
10006
10006
  <ai-table-field-stat [config]="config" (hover)="hover.emit($event)"></ai-table-field-stat>
@@ -10008,7 +10008,7 @@ class AITableFieldStats {
10008
10008
  </ko-group>
10009
10009
  `, isInline: true, dependencies: [{ kind: "component", type: AITableFieldStat, selector: "ai-table-field-stat", inputs: ["config"], outputs: ["hover"] }, { kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10010
10010
  }
10011
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldStats, decorators: [{
10011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldStats, decorators: [{
10012
10012
  type: Component,
10013
10013
  args: [{
10014
10014
  selector: 'ai-table-column-stats',
@@ -10027,7 +10027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
10027
10027
  Konva.pixelRatio = 2;
10028
10028
  class AITableRenderer {
10029
10029
  constructor() {
10030
- this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
10030
+ this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
10031
10031
  this.koMousemove = output();
10032
10032
  this.koMousedown = output();
10033
10033
  this.koMouseup = output();
@@ -10037,49 +10037,49 @@ class AITableRenderer {
10037
10037
  this.koDblclick = output();
10038
10038
  this.koMouseleave = output();
10039
10039
  this.onScrollPosition = output();
10040
- this.isHoverStatContainer = signal(false, ...(ngDevMode ? [{ debugName: "isHoverStatContainer" }] : []));
10040
+ this.isHoverStatContainer = signal(false, ...(ngDevMode ? [{ debugName: "isHoverStatContainer" }] : /* istanbul ignore next */ []));
10041
10041
  this.fields = computed(() => {
10042
10042
  return AITable.getVisibleFields(this.config().aiTable);
10043
- }, ...(ngDevMode ? [{ debugName: "fields" }] : []));
10043
+ }, ...(ngDevMode ? [{ debugName: "fields" }] : /* istanbul ignore next */ []));
10044
10044
  this.readonly = computed(() => {
10045
10045
  return this.config()?.readonly;
10046
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
10046
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
10047
10047
  this.hiddenIndexColumn = computed(() => {
10048
10048
  return this.config()?.aiTable.context?.aiFieldConfig()?.hiddenIndexColumn;
10049
- }, ...(ngDevMode ? [{ debugName: "hiddenIndexColumn" }] : []));
10049
+ }, ...(ngDevMode ? [{ debugName: "hiddenIndexColumn" }] : /* istanbul ignore next */ []));
10050
10050
  this.showExpandIcon = computed(() => {
10051
10051
  return !!this.config()?.aiTable.context?.recordDetailConfig?.()?.showExpandIcon;
10052
- }, ...(ngDevMode ? [{ debugName: "showExpandIcon" }] : []));
10052
+ }, ...(ngDevMode ? [{ debugName: "showExpandIcon" }] : /* istanbul ignore next */ []));
10053
10053
  this.coordinate = computed(() => {
10054
10054
  return this.config()?.coordinate;
10055
- }, ...(ngDevMode ? [{ debugName: "coordinate" }] : []));
10055
+ }, ...(ngDevMode ? [{ debugName: "coordinate" }] : /* istanbul ignore next */ []));
10056
10056
  this.containerWidth = computed(() => {
10057
10057
  return this.config().containerWidth;
10058
- }, ...(ngDevMode ? [{ debugName: "containerWidth" }] : []));
10058
+ }, ...(ngDevMode ? [{ debugName: "containerWidth" }] : /* istanbul ignore next */ []));
10059
10059
  this.containerHeight = computed(() => {
10060
10060
  return this.config().containerHeight;
10061
- }, ...(ngDevMode ? [{ debugName: "containerHeight" }] : []));
10061
+ }, ...(ngDevMode ? [{ debugName: "containerHeight" }] : /* istanbul ignore next */ []));
10062
10062
  this.gridContainerHeight = computed(() => {
10063
10063
  return this.containerHeight() - AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT;
10064
- }, ...(ngDevMode ? [{ debugName: "gridContainerHeight" }] : []));
10064
+ }, ...(ngDevMode ? [{ debugName: "gridContainerHeight" }] : /* istanbul ignore next */ []));
10065
10065
  this.scrollState = computed(() => {
10066
10066
  return this.config()?.aiTable.context.scrollState();
10067
- }, ...(ngDevMode ? [{ debugName: "scrollState" }] : []));
10067
+ }, ...(ngDevMode ? [{ debugName: "scrollState" }] : /* istanbul ignore next */ []));
10068
10068
  this.visibleRangeInfo = computed(() => {
10069
10069
  return getVisibleRangeInfo(this.coordinate(), this.scrollState());
10070
- }, ...(ngDevMode ? [{ debugName: "visibleRangeInfo" }] : []));
10070
+ }, ...(ngDevMode ? [{ debugName: "visibleRangeInfo" }] : /* istanbul ignore next */ []));
10071
10071
  this.frozenAreaWidth = computed(() => {
10072
10072
  return this.config().aiTable.context.rowHeadWidth() + this.coordinate().frozenColumnWidth;
10073
- }, ...(ngDevMode ? [{ debugName: "frozenAreaWidth" }] : []));
10073
+ }, ...(ngDevMode ? [{ debugName: "frozenAreaWidth" }] : /* istanbul ignore next */ []));
10074
10074
  this.lastColumnWidth = computed(() => {
10075
10075
  return this.coordinate().getColumnWidth(this.visibleRangeInfo().columnStopIndex);
10076
- }, ...(ngDevMode ? [{ debugName: "lastColumnWidth" }] : []));
10076
+ }, ...(ngDevMode ? [{ debugName: "lastColumnWidth" }] : /* istanbul ignore next */ []));
10077
10077
  this.lastColumnOffset = computed(() => {
10078
10078
  return this.coordinate().getColumnOffset(this.visibleRangeInfo().columnStopIndex);
10079
- }, ...(ngDevMode ? [{ debugName: "lastColumnOffset" }] : []));
10079
+ }, ...(ngDevMode ? [{ debugName: "lastColumnOffset" }] : /* istanbul ignore next */ []));
10080
10080
  this.cellGroupClipWidth = computed(() => {
10081
10081
  return this.containerWidth() - this.frozenAreaWidth();
10082
- }, ...(ngDevMode ? [{ debugName: "cellGroupClipWidth" }] : []));
10082
+ }, ...(ngDevMode ? [{ debugName: "cellGroupClipWidth" }] : /* istanbul ignore next */ []));
10083
10083
  this.stageConfig = computed(() => {
10084
10084
  const { isScrolling } = this.scrollState();
10085
10085
  return {
@@ -10087,7 +10087,7 @@ class AITableRenderer {
10087
10087
  height: this.containerHeight(),
10088
10088
  listening: isScrolling ? false : true
10089
10089
  };
10090
- }, ...(ngDevMode ? [{ debugName: "stageConfig" }] : []));
10090
+ }, ...(ngDevMode ? [{ debugName: "stageConfig" }] : /* istanbul ignore next */ []));
10091
10091
  this.gridGroupConfig = computed(() => {
10092
10092
  return {
10093
10093
  clipX: 0,
@@ -10095,7 +10095,7 @@ class AITableRenderer {
10095
10095
  clipWidth: this.containerWidth(),
10096
10096
  clipHeight: this.gridContainerHeight()
10097
10097
  };
10098
- }, ...(ngDevMode ? [{ debugName: "gridGroupConfig" }] : []));
10098
+ }, ...(ngDevMode ? [{ debugName: "gridGroupConfig" }] : /* istanbul ignore next */ []));
10099
10099
  this.statGroupConfig = computed(() => {
10100
10100
  return {
10101
10101
  x: 0,
@@ -10103,13 +10103,13 @@ class AITableRenderer {
10103
10103
  width: this.containerWidth(),
10104
10104
  height: AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT
10105
10105
  };
10106
- }, ...(ngDevMode ? [{ debugName: "statGroupConfig" }] : []));
10106
+ }, ...(ngDevMode ? [{ debugName: "statGroupConfig" }] : /* istanbul ignore next */ []));
10107
10107
  this.scrollTotalHeight = computed(() => {
10108
10108
  return Math.max(this.coordinate().totalHeight, this.containerHeight() - AI_TABLE_FIELD_HEAD_HEIGHT);
10109
- }, ...(ngDevMode ? [{ debugName: "scrollTotalHeight" }] : []));
10109
+ }, ...(ngDevMode ? [{ debugName: "scrollTotalHeight" }] : /* istanbul ignore next */ []));
10110
10110
  this.scrollTotalWidth = computed(() => {
10111
10111
  return this.coordinate().totalWidth + AI_TABLE_FIELD_ADD_BUTTON_WIDTH;
10112
- }, ...(ngDevMode ? [{ debugName: "scrollTotalWidth" }] : []));
10112
+ }, ...(ngDevMode ? [{ debugName: "scrollTotalWidth" }] : /* istanbul ignore next */ []));
10113
10113
  this.frozenCommonGroupConfig = computed(() => {
10114
10114
  return {
10115
10115
  clipX: 0,
@@ -10117,7 +10117,7 @@ class AITableRenderer {
10117
10117
  clipWidth: this.containerWidth(),
10118
10118
  clipHeight: this.gridContainerHeight()
10119
10119
  };
10120
- }, ...(ngDevMode ? [{ debugName: "frozenCommonGroupConfig" }] : []));
10120
+ }, ...(ngDevMode ? [{ debugName: "frozenCommonGroupConfig" }] : /* istanbul ignore next */ []));
10121
10121
  this.commonGroupConfig = computed(() => {
10122
10122
  return {
10123
10123
  clipX: this.frozenAreaWidth() + 1,
@@ -10125,7 +10125,7 @@ class AITableRenderer {
10125
10125
  clipWidth: this.cellGroupClipWidth(),
10126
10126
  clipHeight: this.gridContainerHeight()
10127
10127
  };
10128
- }, ...(ngDevMode ? [{ debugName: "commonGroupConfig" }] : []));
10128
+ }, ...(ngDevMode ? [{ debugName: "commonGroupConfig" }] : /* istanbul ignore next */ []));
10129
10129
  this.statCommonGroupConfig = computed(() => {
10130
10130
  return {
10131
10131
  x: AI_TABLE_OFFSET,
@@ -10134,7 +10134,7 @@ class AITableRenderer {
10134
10134
  clipWidth: this.cellGroupClipWidth(),
10135
10135
  clipHeight: this.gridContainerHeight()
10136
10136
  };
10137
- }, ...(ngDevMode ? [{ debugName: "statCommonGroupConfig" }] : []));
10137
+ }, ...(ngDevMode ? [{ debugName: "statCommonGroupConfig" }] : /* istanbul ignore next */ []));
10138
10138
  this.attachGroupConfig = computed(() => {
10139
10139
  return {
10140
10140
  clipX: this.frozenAreaWidth() - 1,
@@ -10142,7 +10142,7 @@ class AITableRenderer {
10142
10142
  clipWidth: this.containerWidth() - this.frozenAreaWidth(),
10143
10143
  clipHeight: this.gridContainerHeight() - AI_TABLE_FIELD_HEAD_HEIGHT
10144
10144
  };
10145
- }, ...(ngDevMode ? [{ debugName: "attachGroupConfig" }] : []));
10145
+ }, ...(ngDevMode ? [{ debugName: "attachGroupConfig" }] : /* istanbul ignore next */ []));
10146
10146
  this.frozenAttachGroupConfig = computed(() => {
10147
10147
  return {
10148
10148
  clipX: 0,
@@ -10150,7 +10150,7 @@ class AITableRenderer {
10150
10150
  clipWidth: this.frozenAreaWidth() + 10,
10151
10151
  clipHeight: this.gridContainerHeight() - AI_TABLE_FIELD_HEAD_HEIGHT
10152
10152
  };
10153
- }, ...(ngDevMode ? [{ debugName: "frozenAttachGroupConfig" }] : []));
10153
+ }, ...(ngDevMode ? [{ debugName: "frozenAttachGroupConfig" }] : /* istanbul ignore next */ []));
10154
10154
  this.frozenCoverAttachGroupConfig = computed(() => {
10155
10155
  return {
10156
10156
  clipX: 0,
@@ -10158,26 +10158,26 @@ class AITableRenderer {
10158
10158
  clipWidth: this.frozenAreaWidth(),
10159
10159
  clipHeight: this.gridContainerHeight() - AI_TABLE_FIELD_HEAD_HEIGHT
10160
10160
  };
10161
- }, ...(ngDevMode ? [{ debugName: "frozenCoverAttachGroupConfig" }] : []));
10161
+ }, ...(ngDevMode ? [{ debugName: "frozenCoverAttachGroupConfig" }] : /* istanbul ignore next */ []));
10162
10162
  this.offsetYConfig = computed(() => {
10163
10163
  const { scrollTop } = this.scrollState();
10164
10164
  return {
10165
10165
  offsetY: scrollTop
10166
10166
  };
10167
- }, ...(ngDevMode ? [{ debugName: "offsetYConfig" }] : []));
10167
+ }, ...(ngDevMode ? [{ debugName: "offsetYConfig" }] : /* istanbul ignore next */ []));
10168
10168
  this.offsetXConfig = computed(() => {
10169
10169
  const { scrollLeft } = this.scrollState();
10170
10170
  return {
10171
10171
  offsetX: scrollLeft
10172
10172
  };
10173
- }, ...(ngDevMode ? [{ debugName: "offsetXConfig" }] : []));
10173
+ }, ...(ngDevMode ? [{ debugName: "offsetXConfig" }] : /* istanbul ignore next */ []));
10174
10174
  this.offsetConfig = computed(() => {
10175
10175
  const { scrollLeft, scrollTop } = this.scrollState();
10176
10176
  return {
10177
10177
  offsetX: scrollLeft,
10178
10178
  offsetY: scrollTop
10179
10179
  };
10180
- }, ...(ngDevMode ? [{ debugName: "offsetConfig" }] : []));
10180
+ }, ...(ngDevMode ? [{ debugName: "offsetConfig" }] : /* istanbul ignore next */ []));
10181
10181
  this.columnFrozenHeadFieldConfig = computed(() => {
10182
10182
  const { columnStartIndex, columnStopIndex } = this.visibleRangeInfo();
10183
10183
  const { aiTable, coordinate, readonly, maxFields, actions } = this.config();
@@ -10194,7 +10194,7 @@ class AITableRenderer {
10194
10194
  readonly,
10195
10195
  maxFields
10196
10196
  };
10197
- }, ...(ngDevMode ? [{ debugName: "columnFrozenHeadFieldConfig" }] : []));
10197
+ }, ...(ngDevMode ? [{ debugName: "columnFrozenHeadFieldConfig" }] : /* istanbul ignore next */ []));
10198
10198
  this.columnHeadFieldConfig = computed(() => {
10199
10199
  const { columnStartIndex, columnStopIndex } = this.visibleRangeInfo();
10200
10200
  const { aiTable, coordinate, readonly, maxFields, actions } = this.config();
@@ -10211,7 +10211,7 @@ class AITableRenderer {
10211
10211
  readonly,
10212
10212
  maxFields
10213
10213
  };
10214
- }, ...(ngDevMode ? [{ debugName: "columnHeadFieldConfig" }] : []));
10214
+ }, ...(ngDevMode ? [{ debugName: "columnHeadFieldConfig" }] : /* istanbul ignore next */ []));
10215
10215
  this.columnFieldStatsConfig = computed(() => {
10216
10216
  return {
10217
10217
  ...this.columnHeadFieldConfig(),
@@ -10221,10 +10221,10 @@ class AITableRenderer {
10221
10221
  height: AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT,
10222
10222
  isHoverStatContainer: this.isHoverStatContainer()
10223
10223
  };
10224
- }, ...(ngDevMode ? [{ debugName: "columnFieldStatsConfig" }] : []));
10224
+ }, ...(ngDevMode ? [{ debugName: "columnFieldStatsConfig" }] : /* istanbul ignore next */ []));
10225
10225
  this.xIsScroll = computed(() => {
10226
10226
  return this.scrollState().scrollLeft > 0;
10227
- }, ...(ngDevMode ? [{ debugName: "xIsScroll" }] : []));
10227
+ }, ...(ngDevMode ? [{ debugName: "xIsScroll" }] : /* istanbul ignore next */ []));
10228
10228
  this.statShadowConfig = computed(() => {
10229
10229
  return {
10230
10230
  width: 8,
@@ -10233,7 +10233,7 @@ class AITableRenderer {
10233
10233
  height: AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT,
10234
10234
  visible: this.xIsScroll()
10235
10235
  };
10236
- }, ...(ngDevMode ? [{ debugName: "statShadowConfig" }] : []));
10236
+ }, ...(ngDevMode ? [{ debugName: "statShadowConfig" }] : /* istanbul ignore next */ []));
10237
10237
  this.fieldHeadShadowConfig = computed(() => {
10238
10238
  return {
10239
10239
  width: AI_TABLE_SHADOW_DEFAULT_WIDTH,
@@ -10242,7 +10242,7 @@ class AITableRenderer {
10242
10242
  height: AI_TABLE_FIELD_HEAD_HEIGHT,
10243
10243
  visible: this.xIsScroll()
10244
10244
  };
10245
- }, ...(ngDevMode ? [{ debugName: "fieldHeadShadowConfig" }] : []));
10245
+ }, ...(ngDevMode ? [{ debugName: "fieldHeadShadowConfig" }] : /* istanbul ignore next */ []));
10246
10246
  this.columnFieldStatsBgConfig = computed(() => {
10247
10247
  return {
10248
10248
  x: 0,
@@ -10257,7 +10257,7 @@ class AITableRenderer {
10257
10257
  listening: true,
10258
10258
  coordinate: this.coordinate()
10259
10259
  };
10260
- }, ...(ngDevMode ? [{ debugName: "columnFieldStatsBgConfig" }] : []));
10260
+ }, ...(ngDevMode ? [{ debugName: "columnFieldStatsBgConfig" }] : /* istanbul ignore next */ []));
10261
10261
  this.columnFrozenFieldStatsConfig = computed(() => {
10262
10262
  return {
10263
10263
  ...this.columnHeadFieldConfig(),
@@ -10269,7 +10269,7 @@ class AITableRenderer {
10269
10269
  height: AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT,
10270
10270
  isHoverStatContainer: this.isHoverStatContainer()
10271
10271
  };
10272
- }, ...(ngDevMode ? [{ debugName: "columnFrozenFieldStatsConfig" }] : []));
10272
+ }, ...(ngDevMode ? [{ debugName: "columnFrozenFieldStatsConfig" }] : /* istanbul ignore next */ []));
10273
10273
  this.cellsConfig = computed(() => {
10274
10274
  const { aiTable, readonly, coordinate, references, actions, maxRecords } = this.config();
10275
10275
  const keywordsMatchedCells = aiTable.keywordsMatchedCells();
@@ -10287,7 +10287,7 @@ class AITableRenderer {
10287
10287
  maxRecords,
10288
10288
  keywordsMatchedCells
10289
10289
  };
10290
- }, ...(ngDevMode ? [{ debugName: "cellsConfig" }] : []));
10290
+ }, ...(ngDevMode ? [{ debugName: "cellsConfig" }] : /* istanbul ignore next */ []));
10291
10291
  this.expandRecordConfig = computed(() => {
10292
10292
  const { aiTable, coordinate } = this.config();
10293
10293
  const { rowStartIndex, rowStopIndex } = this.visibleRangeInfo();
@@ -10297,14 +10297,14 @@ class AITableRenderer {
10297
10297
  rowStartIndex,
10298
10298
  rowStopIndex
10299
10299
  };
10300
- }, ...(ngDevMode ? [{ debugName: "expandRecordConfig" }] : []));
10300
+ }, ...(ngDevMode ? [{ debugName: "expandRecordConfig" }] : /* istanbul ignore next */ []));
10301
10301
  this.fillHandleConfig = computed(() => {
10302
10302
  return {
10303
10303
  aiTable: this.config().aiTable,
10304
10304
  coordinate: this.coordinate(),
10305
10305
  readonly: this.readonly()
10306
10306
  };
10307
- }, ...(ngDevMode ? [{ debugName: "fillHandleConfig" }] : []));
10307
+ }, ...(ngDevMode ? [{ debugName: "fillHandleConfig" }] : /* istanbul ignore next */ []));
10308
10308
  this.isLastSelectedCellInFrozenColumn = computed(() => {
10309
10309
  const { aiTable } = this.config();
10310
10310
  const selectedCells = Array.from(aiTable.selection().selectedCells);
@@ -10314,10 +10314,10 @@ class AITableRenderer {
10314
10314
  const [, fieldId] = lastCell.split(':');
10315
10315
  const columnIndex = aiTable.context.visibleColumnsIndexMap().get(fieldId);
10316
10316
  return AITable.isFrozenColumn(aiTable, columnIndex);
10317
- }, ...(ngDevMode ? [{ debugName: "isLastSelectedCellInFrozenColumn" }] : []));
10317
+ }, ...(ngDevMode ? [{ debugName: "isLastSelectedCellInFrozenColumn" }] : /* istanbul ignore next */ []));
10318
10318
  this.activeCellBorderConfig = computed(() => {
10319
10319
  return createActiveCellBorder(this.cellsConfig());
10320
- }, ...(ngDevMode ? [{ debugName: "activeCellBorderConfig" }] : []));
10320
+ }, ...(ngDevMode ? [{ debugName: "activeCellBorderConfig" }] : /* istanbul ignore next */ []));
10321
10321
  this.showExpandCellBorder = computed(() => {
10322
10322
  let expandCellBorder = false;
10323
10323
  let frozenExpandCellBorder = false;
@@ -10340,7 +10340,7 @@ class AITableRenderer {
10340
10340
  expandCellBorder,
10341
10341
  frozenExpandCellBorder
10342
10342
  };
10343
- }, ...(ngDevMode ? [{ debugName: "showExpandCellBorder" }] : []));
10343
+ }, ...(ngDevMode ? [{ debugName: "showExpandCellBorder" }] : /* istanbul ignore next */ []));
10344
10344
  }
10345
10345
  stageMousemove(e) {
10346
10346
  this.koMousemove.emit(e);
@@ -10369,10 +10369,10 @@ class AITableRenderer {
10369
10369
  onStatContainerHover(isHover) {
10370
10370
  this.isHoverStatContainer.set(isHover);
10371
10371
  }
10372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10373
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableRenderer, isStandalone: true, selector: "ai-table-renderer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koMousemove: "koMousemove", koMousedown: "koMousedown", koMouseup: "koMouseup", koContextmenu: "koContextmenu", koWheel: "koWheel", koClick: "koClick", koDblclick: "koDblclick", koMouseleave: "koMouseleave", onScrollPosition: "onScrollPosition" }, ngImport: i0, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <!-- \u53F3\u4FA7\u975E\u56FA\u5B9A\u5217\u7684\u533A\u57DF -->\n <ko-group [config]=\"commonGroupConfig()\">\n <!-- \u53F3\u4FA7x,y\u6EDA\u52A8\u533A\u57DF\u7684 cell -->\n <ko-group #commonOffsetGroup [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n <ai-table-groups [config]=\"cellsConfig()\"></ai-table-groups>\n </ko-group>\n\n <!-- \u53F3\u4FA7\u8868\u5934head \u548C \u65B0\u589E\u5217 + \u533A\u57DF -->\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <!-- \u5DE6\u4FA7\u56FA\u5B9A\u5217 y\u6EDA\u52A8\u533A\u57DF\u7684cell -->\n <ko-group [config]=\"frozenCommonGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-groups [config]=\"cellsConfig()\"></ai-table-frozen-groups>\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n <ko-group>\n @if (showExpandIcon()) {\n <ai-table-expand-record [config]=\"expandRecordConfig()\"></ai-table-expand-record>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <!-- \u5DE6\u4FA7\u56FA\u5B9A\u5217 \u8868\u5934 + \u8868\u5934\u53F3\u4FA7\u5206\u5272\u9634\u5F71 -->\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n <ai-table-shadow [config]=\"fieldHeadShadowConfig()\"></ai-table-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group #frozenCoverAttachOffsetGroup [config]=\"offsetYConfig()\">\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-shadow [config]=\"statShadowConfig()\"></ai-table-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoStage, selector: "ko-stage", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableColumnHeads, selector: "ai-table-column-heads", inputs: ["config"] }, { kind: "component", type: AITableFrozenColumnHeads, selector: "ai-table-frozen-column-heads", inputs: ["config"] }, { kind: "component", type: AITableCells, selector: "ai-table-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenCells, selector: "ai-table-frozen-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenPlaceholderCells, selector: "ai-table-frozen-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableCoverCellEntry, selector: "ai-table-cover-cell-entry", inputs: ["config", "onlyDisplayBorder"] }, { kind: "component", type: AITablePlaceholderCells, selector: "ai-table-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableAddField, selector: "ai-table-add-field", inputs: ["config"] }, { kind: "component", type: AITableHoverRowHeads, selector: "ai-table-hover-row-heads", inputs: ["config"] }, { kind: "component", type: AITableOtherRows, selector: "ai-table-other-rows", inputs: ["config"] }, { kind: "component", type: AITableFillHandle, selector: "ai-table-fill-handle", inputs: ["config"] }, { kind: "component", type: AITableFieldStats, selector: "ai-table-column-stats", inputs: ["config"], outputs: ["hover"] }, { kind: "component", type: AITableBackground, selector: "ai-table-background", inputs: ["config", "isActive", "isHover"], outputs: ["koClick", "hover", "koMouseenter", "koMouseleave", "isHoverChange"] }, { kind: "component", type: AITableFrozenGroups, selector: "ai-table-frozen-groups", inputs: ["config"] }, { kind: "component", type: AITableGroups, selector: "ai-table-groups", inputs: ["config"] }, { kind: "component", type: AITableShadow, selector: "ai-table-shadow", inputs: ["config"] }, { kind: "component", type: AITableExpandRecord, selector: "ai-table-expand-record", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10373
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableRenderer, isStandalone: true, selector: "ai-table-renderer", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { koMousemove: "koMousemove", koMousedown: "koMousedown", koMouseup: "koMouseup", koContextmenu: "koContextmenu", koWheel: "koWheel", koClick: "koClick", koDblclick: "koDblclick", koMouseleave: "koMouseleave", onScrollPosition: "onScrollPosition" }, ngImport: i0, template: "<ko-stage\n [config]=\"stageConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n>\n <ko-layer>\n <ko-group [config]=\"gridGroupConfig()\">\n <!-- \u53F3\u4FA7\u975E\u56FA\u5B9A\u5217\u7684\u533A\u57DF -->\n <ko-group [config]=\"commonGroupConfig()\">\n <!-- \u53F3\u4FA7x,y\u6EDA\u52A8\u533A\u57DF\u7684 cell -->\n <ko-group #commonOffsetGroup [config]=\"offsetConfig()\">\n <ai-table-cells [config]=\"cellsConfig()\"></ai-table-cells>\n <ai-table-placeholder-cells [config]=\"cellsConfig()\"></ai-table-placeholder-cells>\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n <ai-table-groups [config]=\"cellsConfig()\"></ai-table-groups>\n </ko-group>\n\n <!-- \u53F3\u4FA7\u8868\u5934head \u548C \u65B0\u589E\u5217 + \u533A\u57DF -->\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-heads [config]=\"columnHeadFieldConfig()\"></ai-table-column-heads>\n <ai-table-add-field [config]=\"columnHeadFieldConfig()\"></ai-table-add-field>\n </ko-group>\n </ko-group>\n\n <!-- \u5DE6\u4FA7\u56FA\u5B9A\u5217 y\u6EDA\u52A8\u533A\u57DF\u7684cell -->\n <ko-group [config]=\"frozenCommonGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n <ai-table-frozen-cells [config]=\"cellsConfig()\"></ai-table-frozen-cells>\n <ai-table-other-rows [config]=\"cellsConfig()\"></ai-table-other-rows>\n @if (!hiddenIndexColumn()) {\n <ai-table-hover-row-heads [config]=\"cellsConfig()\"></ai-table-hover-row-heads>\n }\n <ai-table-frozen-groups [config]=\"cellsConfig()\"></ai-table-frozen-groups>\n <ai-table-frozen-placeholder-cells [config]=\"cellsConfig()\"></ai-table-frozen-placeholder-cells>\n <ko-group>\n @if (showExpandIcon()) {\n <ai-table-expand-record [config]=\"expandRecordConfig()\"></ai-table-expand-record>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <!-- \u5DE6\u4FA7\u56FA\u5B9A\u5217 \u8868\u5934 + \u8868\u5934\u53F3\u4FA7\u5206\u5272\u9634\u5F71 -->\n <ko-group>\n <ai-table-frozen-column-heads [config]=\"columnFrozenHeadFieldConfig()\"></ai-table-frozen-column-heads>\n <ai-table-shadow [config]=\"fieldHeadShadowConfig()\"></ai-table-shadow>\n </ko-group>\n\n <ko-group [config]=\"attachGroupConfig()\">\n <ko-group [config]=\"offsetConfig()\">\n @if (activeCellBorderConfig().activeCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().activeCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().expandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (!isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n <ko-group [config]=\"frozenCoverAttachGroupConfig()\">\n <ko-group #frozenCoverAttachOffsetGroup [config]=\"offsetYConfig()\">\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\"></ai-table-cover-cell-entry>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"frozenAttachGroupConfig()\">\n <ko-group [config]=\"offsetYConfig()\">\n @if (activeCellBorderConfig().frozenActiveCellBorder) {\n <ko-rect [config]=\"activeCellBorderConfig().frozenActiveCellBorder!\"></ko-rect>\n }\n @if (showExpandCellBorder().frozenExpandCellBorder) {\n <ai-table-cover-cell-entry [config]=\"cellsConfig()\" [onlyDisplayBorder]=\"true\"></ai-table-cover-cell-entry>\n }\n @if (isLastSelectedCellInFrozenColumn()) {\n <ai-table-fill-handle [config]=\"fillHandleConfig()\"></ai-table-fill-handle>\n }\n </ko-group>\n </ko-group>\n </ko-group>\n\n <ko-group [config]=\"statGroupConfig()\">\n <ai-table-background [config]=\"columnFieldStatsBgConfig()\"></ai-table-background>\n <ko-group>\n <ai-table-column-stats\n [config]=\"columnFrozenFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n <ko-group [config]=\"statCommonGroupConfig()\">\n <ko-group [config]=\"offsetXConfig()\">\n <ai-table-column-stats\n [config]=\"columnFieldStatsConfig()\"\n (hover)=\"onStatContainerHover($event)\"\n ></ai-table-column-stats>\n </ko-group>\n </ko-group>\n <ko-group>\n <ai-table-shadow [config]=\"statShadowConfig()\"></ai-table-shadow>\n </ko-group>\n </ko-group>\n </ko-layer>\n</ko-stage>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: KoStage, selector: "ko-stage", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: AITableColumnHeads, selector: "ai-table-column-heads", inputs: ["config"] }, { kind: "component", type: AITableFrozenColumnHeads, selector: "ai-table-frozen-column-heads", inputs: ["config"] }, { kind: "component", type: AITableCells, selector: "ai-table-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenCells, selector: "ai-table-frozen-cells", inputs: ["config"] }, { kind: "component", type: AITableFrozenPlaceholderCells, selector: "ai-table-frozen-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableCoverCellEntry, selector: "ai-table-cover-cell-entry", inputs: ["config", "onlyDisplayBorder"] }, { kind: "component", type: AITablePlaceholderCells, selector: "ai-table-placeholder-cells", inputs: ["config"] }, { kind: "component", type: AITableAddField, selector: "ai-table-add-field", inputs: ["config"] }, { kind: "component", type: AITableHoverRowHeads, selector: "ai-table-hover-row-heads", inputs: ["config"] }, { kind: "component", type: AITableOtherRows, selector: "ai-table-other-rows", inputs: ["config"] }, { kind: "component", type: AITableFillHandle, selector: "ai-table-fill-handle", inputs: ["config"] }, { kind: "component", type: AITableFieldStats, selector: "ai-table-column-stats", inputs: ["config"], outputs: ["hover"] }, { kind: "component", type: AITableBackground, selector: "ai-table-background", inputs: ["config", "isActive", "isHover"], outputs: ["koClick", "hover", "koMouseenter", "koMouseleave", "isHoverChange"] }, { kind: "component", type: AITableFrozenGroups, selector: "ai-table-frozen-groups", inputs: ["config"] }, { kind: "component", type: AITableGroups, selector: "ai-table-groups", inputs: ["config"] }, { kind: "component", type: AITableShadow, selector: "ai-table-shadow", inputs: ["config"] }, { kind: "component", type: AITableExpandRecord, selector: "ai-table-expand-record", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10374
10374
  }
10375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableRenderer, decorators: [{
10375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableRenderer, decorators: [{
10376
10376
  type: Component,
10377
10377
  args: [{ selector: 'ai-table-renderer', imports: [
10378
10378
  KoContainer,
@@ -10402,12 +10402,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
10402
10402
  class AITableCellRate extends CoverCellBase {
10403
10403
  constructor() {
10404
10404
  super(...arguments);
10405
- this.pointerX = signal(0, ...(ngDevMode ? [{ debugName: "pointerX" }] : []));
10406
- this.pointerY = signal(0, ...(ngDevMode ? [{ debugName: "pointerY" }] : []));
10407
- this.resetStatus = signal(false, ...(ngDevMode ? [{ debugName: "resetStatus" }] : []));
10405
+ this.pointerX = signal(0, ...(ngDevMode ? [{ debugName: "pointerX" }] : /* istanbul ignore next */ []));
10406
+ this.pointerY = signal(0, ...(ngDevMode ? [{ debugName: "pointerY" }] : /* istanbul ignore next */ []));
10407
+ this.resetStatus = signal(false, ...(ngDevMode ? [{ debugName: "resetStatus" }] : /* istanbul ignore next */ []));
10408
10408
  this.readonly = computed(() => {
10409
10409
  return this.config()?.readonly;
10410
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
10410
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
10411
10411
  this.whiteBgConfig = computed(() => {
10412
10412
  const { aiTable, render, field, recordId, coordinate } = this.config();
10413
10413
  const pointPosition = aiTable.context.pointPosition();
@@ -10431,7 +10431,7 @@ class AITableCellRate extends CoverCellBase {
10431
10431
  recordId
10432
10432
  })
10433
10433
  };
10434
- }, ...(ngDevMode ? [{ debugName: "whiteBgConfig" }] : []));
10434
+ }, ...(ngDevMode ? [{ debugName: "whiteBgConfig" }] : /* istanbul ignore next */ []));
10435
10435
  this.starConfigs = computed(() => {
10436
10436
  const { render, field, recordId, readonly, aiTable, coordinate } = this.config();
10437
10437
  const { x, columnWidth, transformValue } = render;
@@ -10485,7 +10485,7 @@ class AITableCellRate extends CoverCellBase {
10485
10485
  })
10486
10486
  };
10487
10487
  });
10488
- }, ...(ngDevMode ? [{ debugName: "starConfigs" }] : []));
10488
+ }, ...(ngDevMode ? [{ debugName: "starConfigs" }] : /* istanbul ignore next */ []));
10489
10489
  }
10490
10490
  static { this.fieldType = AITableFieldType.rate; }
10491
10491
  koMousemove(e) {
@@ -10523,8 +10523,8 @@ class AITableCellRate extends CoverCellBase {
10523
10523
  ]);
10524
10524
  }
10525
10525
  }
10526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellRate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10527
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellRate, isStandalone: true, selector: "ai-table-rate", usesInheritance: true, ngImport: i0, template: `
10526
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellRate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10527
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellRate, isStandalone: true, selector: "ai-table-rate", usesInheritance: true, ngImport: i0, template: `
10528
10528
  @if (!readonly()) {
10529
10529
  <ko-rect [config]="whiteBgConfig()" (koMousemove)="koMousemove($event)"></ko-rect>
10530
10530
  }
@@ -10533,7 +10533,7 @@ class AITableCellRate extends CoverCellBase {
10533
10533
  }
10534
10534
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10535
10535
  }
10536
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellRate, decorators: [{
10536
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellRate, decorators: [{
10537
10537
  type: Component,
10538
10538
  args: [{
10539
10539
  selector: 'ai-table-rate',
@@ -10555,18 +10555,18 @@ class AITableCellProgress extends CoverCellBase {
10555
10555
  super(...arguments);
10556
10556
  this.readonly = computed(() => {
10557
10557
  return this.config()?.readonly;
10558
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
10559
- this.dragPointerX = signal(null, ...(ngDevMode ? [{ debugName: "dragPointerX" }] : []));
10558
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
10559
+ this.dragPointerX = signal(null, ...(ngDevMode ? [{ debugName: "dragPointerX" }] : /* istanbul ignore next */ []));
10560
10560
  this.railWidth = computed(() => {
10561
10561
  const { columnWidth } = this.config().render;
10562
10562
  return columnWidth - 2 * AI_TABLE_CELL_PADDING - AI_TABLE_PROGRESS_TEXT_WIDTH;
10563
- }, ...(ngDevMode ? [{ debugName: "railWidth" }] : []));
10563
+ }, ...(ngDevMode ? [{ debugName: "railWidth" }] : /* istanbul ignore next */ []));
10564
10564
  this.trackWidth = computed(() => {
10565
10565
  return (this.progressValue() / 100) * this.railWidth();
10566
- }, ...(ngDevMode ? [{ debugName: "trackWidth" }] : []));
10566
+ }, ...(ngDevMode ? [{ debugName: "trackWidth" }] : /* istanbul ignore next */ []));
10567
10567
  this.pointerWidth = AI_TABLE_PROGRESS_BAR_POINTER_WIDTH;
10568
10568
  this.progressOffsetY = (AI_TABLE_ROW_BLANK_HEIGHT - AI_TABLE_PROGRESS_BAR_HEIGHT) / 2 + AI_TABLE_OFFSET;
10569
- this.dragProgressValue = signal(null, ...(ngDevMode ? [{ debugName: "dragProgressValue" }] : []));
10569
+ this.dragProgressValue = signal(null, ...(ngDevMode ? [{ debugName: "dragProgressValue" }] : /* istanbul ignore next */ []));
10570
10570
  this.progressValue = computed(() => {
10571
10571
  const dragValue = this.dragProgressValue();
10572
10572
  if (dragValue !== null) {
@@ -10578,7 +10578,7 @@ class AITableCellProgress extends CoverCellBase {
10578
10578
  return 0;
10579
10579
  }
10580
10580
  return transformValue;
10581
- }, ...(ngDevMode ? [{ debugName: "progressValue" }] : []));
10581
+ }, ...(ngDevMode ? [{ debugName: "progressValue" }] : /* istanbul ignore next */ []));
10582
10582
  this.whiteBgConfig = computed(() => {
10583
10583
  const { aiTable, render, field, recordId, coordinate } = this.config();
10584
10584
  const pointPosition = aiTable.context.pointPosition();
@@ -10601,7 +10601,7 @@ class AITableCellProgress extends CoverCellBase {
10601
10601
  recordId
10602
10602
  })
10603
10603
  };
10604
- }, ...(ngDevMode ? [{ debugName: "whiteBgConfig" }] : []));
10604
+ }, ...(ngDevMode ? [{ debugName: "whiteBgConfig" }] : /* istanbul ignore next */ []));
10605
10605
  this.railConfig = computed(() => {
10606
10606
  const { render, field, recordId } = this.config();
10607
10607
  const { x } = render;
@@ -10619,7 +10619,7 @@ class AITableCellProgress extends CoverCellBase {
10619
10619
  mouseStyle: this.readonly() ? 'default' : 'pointer'
10620
10620
  })
10621
10621
  };
10622
- }, ...(ngDevMode ? [{ debugName: "railConfig" }] : []));
10622
+ }, ...(ngDevMode ? [{ debugName: "railConfig" }] : /* istanbul ignore next */ []));
10623
10623
  this.trackConfig = computed(() => {
10624
10624
  const { render, field, recordId } = this.config();
10625
10625
  const { x } = render;
@@ -10637,7 +10637,7 @@ class AITableCellProgress extends CoverCellBase {
10637
10637
  mouseStyle: this.readonly() ? 'default' : 'pointer'
10638
10638
  })
10639
10639
  };
10640
- }, ...(ngDevMode ? [{ debugName: "trackConfig" }] : []));
10640
+ }, ...(ngDevMode ? [{ debugName: "trackConfig" }] : /* istanbul ignore next */ []));
10641
10641
  this.pointerConfig = computed(() => {
10642
10642
  const { render, field, recordId } = this.config();
10643
10643
  const { x } = render;
@@ -10676,7 +10676,7 @@ class AITableCellProgress extends CoverCellBase {
10676
10676
  mouseStyle: this.readonly() ? 'default' : 'pointer'
10677
10677
  })
10678
10678
  };
10679
- }, ...(ngDevMode ? [{ debugName: "pointerConfig" }] : []));
10679
+ }, ...(ngDevMode ? [{ debugName: "pointerConfig" }] : /* istanbul ignore next */ []));
10680
10680
  this.textConfig = computed(() => {
10681
10681
  const { render, field, recordId } = this.config();
10682
10682
  const { x } = render;
@@ -10695,7 +10695,7 @@ class AITableCellProgress extends CoverCellBase {
10695
10695
  recordId
10696
10696
  })
10697
10697
  };
10698
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
10698
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
10699
10699
  }
10700
10700
  static { this.fieldType = AITableFieldType.progress; }
10701
10701
  calculatePercentage(clickX) {
@@ -10778,8 +10778,8 @@ class AITableCellProgress extends CoverCellBase {
10778
10778
  ]);
10779
10779
  }
10780
10780
  }
10781
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellProgress, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10782
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellProgress, isStandalone: true, selector: "ai-table-progress", usesInheritance: true, ngImport: i0, template: `
10781
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellProgress, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10782
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellProgress, isStandalone: true, selector: "ai-table-progress", usesInheritance: true, ngImport: i0, template: `
10783
10783
  @if (!readonly()) {
10784
10784
  <ko-rect [config]="whiteBgConfig()"></ko-rect>
10785
10785
  }
@@ -10794,7 +10794,7 @@ class AITableCellProgress extends CoverCellBase {
10794
10794
  <ko-text [config]="textConfig()"></ko-text>
10795
10795
  `, isInline: true, dependencies: [{ kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10796
10796
  }
10797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellProgress, decorators: [{
10797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellProgress, decorators: [{
10798
10798
  type: Component,
10799
10799
  args: [{
10800
10800
  selector: 'ai-table-progress',
@@ -10824,7 +10824,7 @@ class AITableCellCheckbox extends CoverCellBase {
10824
10824
  const { render } = this.config();
10825
10825
  const { transformValue } = render;
10826
10826
  return !isEmpty(transformValue) && !!transformValue;
10827
- }, ...(ngDevMode ? [{ debugName: "isChecked" }] : []));
10827
+ }, ...(ngDevMode ? [{ debugName: "isChecked" }] : /* istanbul ignore next */ []));
10828
10828
  this.checkbox = computed(() => {
10829
10829
  const { render, field, recordId, readonly } = this.config();
10830
10830
  if (render) {
@@ -10848,7 +10848,7 @@ class AITableCellCheckbox extends CoverCellBase {
10848
10848
  };
10849
10849
  }
10850
10850
  return null;
10851
- }, ...(ngDevMode ? [{ debugName: "checkbox" }] : []));
10851
+ }, ...(ngDevMode ? [{ debugName: "checkbox" }] : /* istanbul ignore next */ []));
10852
10852
  }
10853
10853
  static { this.fieldType = AITableFieldType.checkbox; }
10854
10854
  switchChecked() {
@@ -10860,14 +10860,14 @@ class AITableCellCheckbox extends CoverCellBase {
10860
10860
  }
10861
10861
  ]);
10862
10862
  }
10863
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10864
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: AITableCellCheckbox, isStandalone: true, selector: "ai-table-checkbox", usesInheritance: true, ngImport: i0, template: `
10863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10864
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: AITableCellCheckbox, isStandalone: true, selector: "ai-table-checkbox", usesInheritance: true, ngImport: i0, template: `
10865
10865
  <ko-group>
10866
10866
  <ai-table-icon [config]="checkbox()" (koClick)="switchChecked()"></ai-table-icon>
10867
10867
  </ko-group>
10868
10868
  `, isInline: true, dependencies: [{ kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: AITableIcon, selector: "ai-table-icon", inputs: ["config"], outputs: ["koClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10869
10869
  }
10870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellCheckbox, decorators: [{
10870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellCheckbox, decorators: [{
10871
10871
  type: Component,
10872
10872
  args: [{
10873
10873
  selector: 'ai-table-checkbox',
@@ -10892,7 +10892,7 @@ class AITableCellText extends CoverCellBase {
10892
10892
  fieldId: field._id,
10893
10893
  recordId
10894
10894
  });
10895
- }, ...(ngDevMode ? [{ debugName: "cellName" }] : []));
10895
+ }, ...(ngDevMode ? [{ debugName: "cellName" }] : /* istanbul ignore next */ []));
10896
10896
  this.expandBorderConfig = computed(() => {
10897
10897
  const { render, field, recordId, readonly, isExpand } = this.config();
10898
10898
  const { columnWidth } = render;
@@ -10911,7 +10911,7 @@ class AITableCellText extends CoverCellBase {
10911
10911
  };
10912
10912
  }
10913
10913
  return null;
10914
- }, ...(ngDevMode ? [{ debugName: "expandBorderConfig" }] : []));
10914
+ }, ...(ngDevMode ? [{ debugName: "expandBorderConfig" }] : /* istanbul ignore next */ []));
10915
10915
  this.scrollConfig = computed(() => {
10916
10916
  const { render, field, recordId, readonly, isExpand, coordinate } = this.config();
10917
10917
  const { columnWidth } = render;
@@ -10931,32 +10931,38 @@ class AITableCellText extends CoverCellBase {
10931
10931
  contentNotScrollbar: false,
10932
10932
  bgName: this.cellName()
10933
10933
  };
10934
- }, ...(ngDevMode ? [{ debugName: "scrollConfig" }] : []));
10934
+ }, ...(ngDevMode ? [{ debugName: "scrollConfig" }] : /* istanbul ignore next */ []));
10935
10935
  this.expandTextBounds = computed(() => {
10936
10936
  const textRender = this.textString();
10937
- const tmpText = new Konva.Text({
10937
+ const render = this.config()?.render;
10938
+ if (!render) {
10939
+ return { height: 0, data: [] };
10940
+ }
10941
+ const { x, y } = render;
10942
+ const text = drawer.wrapTextWithKonva({
10943
+ x,
10944
+ y,
10938
10945
  text: textRender,
10946
+ maxWidth: this.textMaxWidth(),
10939
10947
  fontSize: DEFAULT_FONT_SIZE,
10940
- fontFamily: DEFAULT_FONT_FAMILY,
10941
10948
  lineHeight: AI_TABLE_TEXT_LINE_HEIGHT,
10942
- wrap: 'char',
10943
- width: this.textMaxWidth(),
10944
- align: DEFAULT_TEXT_ALIGN_LEFT,
10945
- verticalAlign: 'top',
10946
- fontStyle: DEFAULT_FONT_STYLE,
10947
- ellipsis: DEFAULT_TEXT_ELLIPSIS,
10948
- transformsEnabled: DEFAULT_TEXT_TRANSFORMS_ENABLED,
10949
- listening: false
10949
+ textAlign: DEFAULT_TEXT_ALIGN_LEFT,
10950
+ verticalAlign: DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE,
10951
+ fillStyle: Colors.primary,
10952
+ fontWeight: DEFAULT_FONT_WEIGHT,
10953
+ textDecoration: DEFAULT_TEXT_DECORATION,
10954
+ fieldType: AITableFieldType.text,
10955
+ needDraw: false
10950
10956
  });
10951
10957
  return {
10952
- ...tmpText.getClientRect(),
10953
- height: tmpText.getClientRect().height + this.startY() * 2 - AI_TABLE_CELL_LINE_BORDER
10958
+ ...text,
10959
+ height: text.height + AI_TABLE_CELL_PADDING + AI_TABLE_CELL_LINE_BORDER
10954
10960
  };
10955
- }, ...(ngDevMode ? [{ debugName: "expandTextBounds" }] : []));
10961
+ }, ...(ngDevMode ? [{ debugName: "expandTextBounds" }] : /* istanbul ignore next */ []));
10956
10962
  this.textMaxWidth = computed(() => {
10957
10963
  const { columnWidth } = this.config()?.render;
10958
10964
  return columnWidth - AI_TABLE_CELL_PADDING - AI_TABLE_CELL_PADDING;
10959
- }, ...(ngDevMode ? [{ debugName: "textMaxWidth" }] : []));
10965
+ }, ...(ngDevMode ? [{ debugName: "textMaxWidth" }] : /* istanbul ignore next */ []));
10960
10966
  this.textString = computed(() => {
10961
10967
  const { transformValue } = this.config()?.render;
10962
10968
  let textRender = transformValue;
@@ -10964,45 +10970,55 @@ class AITableCellText extends CoverCellBase {
10964
10970
  return;
10965
10971
  }
10966
10972
  return textRender.replace(/\r|\n/g, ' ');
10967
- }, ...(ngDevMode ? [{ debugName: "textString" }] : []));
10973
+ }, ...(ngDevMode ? [{ debugName: "textString" }] : /* istanbul ignore next */ []));
10968
10974
  this.height = computed(() => {
10969
10975
  const { height } = this.expandTextBounds() || { height: 0 };
10970
10976
  return Math.min(Math.max(height, this.config().render.rowHeight - AI_TABLE_CELL_LINE_BORDER || AI_TABLE_ROW_BLANK_HEIGHT), 146);
10971
- }, ...(ngDevMode ? [{ debugName: "height" }] : []));
10977
+ }, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
10972
10978
  this.startY = computed(() => {
10973
10979
  const { y, rowHeight } = this.config()?.render;
10974
10980
  return (y +
10975
10981
  (AI_TABLE_ROW_HEIGHT - DEFAULT_FONT_SIZE) / 2 -
10976
10982
  (DEFAULT_FONT_SIZE * (AI_TABLE_TEXT_LINE_HEIGHT - 1)) / 2 +
10977
10983
  AI_TABLE_CELL_LINE_BORDER);
10978
- }, ...(ngDevMode ? [{ debugName: "startY" }] : []));
10984
+ }, ...(ngDevMode ? [{ debugName: "startY" }] : /* istanbul ignore next */ []));
10979
10985
  this.expandTextConfig = computed(() => {
10980
10986
  const render = this.config()?.render;
10981
10987
  if (render) {
10982
10988
  const { x, y, transformValue, field, columnWidth, rowHeight, style, zIndex, recordId } = render;
10983
- let textRender = this.textString();
10984
- if (isUndefinedOrNull(textRender)) {
10989
+ let text = this.textString();
10990
+ if (isUndefinedOrNull(text)) {
10985
10991
  return;
10986
10992
  }
10987
- const { height } = this.expandTextBounds();
10993
+ const { height, data } = this.expandTextBounds();
10994
+ /**
10995
+ * Konva.Text 中的 wrap 为 none 时,则不进行换行计算处理
10996
+ * Konva.Text 中的 wrap 为 char/word/word-break,并且设置了 width参数时,则会进行计算 根据宽度计算容纳的内容,超过后进行换行
10997
+ * Konva.Text 中的 ellipsis 为 true,并且 wrap为char/word/word-break,设置了width 和 height 参数,则会计算超过的部分进行截断,展示...
10998
+ * 当 渲染的文字内容很多,开启上述运算时就会很耗时(实际是计算耗时,渲染并不耗时)。
10999
+ * 目前的优化方案:
11000
+ * 计算与渲染分离,优先计算出换行的结果并对数据进行缓存。
11001
+ * 渲染时,根据提前计算的结果,使用 \n 拼装计算出的所有行,直接进行渲染。
11002
+ */
11003
+ const textRender = data.map((item) => item.text).join('\n');
10988
11004
  return {
10989
11005
  x,
10990
11006
  y: this.startY(),
10991
11007
  name: this.cellName(),
10992
11008
  text: textRender,
10993
- wrap: 'char',
11009
+ wrap: 'none',
10994
11010
  width: this.textMaxWidth(),
10995
11011
  fillStyle: Colors.primary,
10996
11012
  lineHeight: AI_TABLE_TEXT_LINE_HEIGHT,
10997
11013
  verticalAlign: 'top',
10998
11014
  height,
10999
11015
  listening: true,
11000
- ellipsis: true,
11016
+ ellipsis: false,
11001
11017
  zIndex
11002
11018
  };
11003
11019
  }
11004
11020
  return;
11005
- }, ...(ngDevMode ? [{ debugName: "expandTextConfig" }] : []));
11021
+ }, ...(ngDevMode ? [{ debugName: "expandTextConfig" }] : /* istanbul ignore next */ []));
11006
11022
  this.textConfig = computed(() => {
11007
11023
  const render = this.config()?.render;
11008
11024
  if (render) {
@@ -11019,7 +11035,7 @@ class AITableCellText extends CoverCellBase {
11019
11035
  wrap: 'char',
11020
11036
  width: this.textMaxWidth(),
11021
11037
  fillStyle: Colors.primary,
11022
- height: rowHeight + AI_TABLE_CELL_LINE_BORDER * 2,
11038
+ height: rowHeight - AI_TABLE_CELL_PADDING,
11023
11039
  lineHeight: AI_TABLE_TEXT_LINE_HEIGHT,
11024
11040
  listening: false,
11025
11041
  ellipsis: true,
@@ -11027,7 +11043,7 @@ class AITableCellText extends CoverCellBase {
11027
11043
  };
11028
11044
  }
11029
11045
  return;
11030
- }, ...(ngDevMode ? [{ debugName: "textConfig" }] : []));
11046
+ }, ...(ngDevMode ? [{ debugName: "textConfig" }] : /* istanbul ignore next */ []));
11031
11047
  effect(() => {
11032
11048
  const height = this.height();
11033
11049
  if (this.isExpand()) {
@@ -11039,8 +11055,8 @@ class AITableCellText extends CoverCellBase {
11039
11055
  }
11040
11056
  });
11041
11057
  }
11042
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11043
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableCellText, isStandalone: true, selector: "ai-table-single-text", usesInheritance: true, ngImport: i0, template: `
11058
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11059
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableCellText, isStandalone: true, selector: "ai-table-single-text", usesInheritance: true, ngImport: i0, template: `
11044
11060
  <ko-group>
11045
11061
  @if (isExpand()) {
11046
11062
  <ko-group>
@@ -11065,7 +11081,7 @@ class AITableCellText extends CoverCellBase {
11065
11081
  </ko-group>
11066
11082
  `, isInline: true, dependencies: [{ kind: "component", type: AITableTextComponent, selector: "ai-table-text", inputs: ["config"], outputs: ["koClick", "koMouseMove"] }, { kind: "component", type: KoShape, selector: "ko-shape, ko-circle, ko-label, ko-rect, ko-ellipse, ko-wedge, ko-line, ko-sprite, ko-image, ko-text, ko-text-path, ko-star, ko-ring, ko-arc, ko-tag, ko-path, ko-regular-polygon, ko-arrow, ko-transformer", inputs: ["config"], outputs: ["koMouseover", "koMousemove", "koMouseout", "koMouseenter", "koMouseleave", "koMousedown", "koMouseup", "koWheel", "koContextmenu", "koClick", "koDblclick", "koTouchstart", "koTouchmove", "koTouchend", "koTap", "koDbltap", "koDragstart", "koDragmove", "koDragend"] }, { kind: "component", type: KoContainer, selector: "ko-layer, ko-fastlayer, ko-group" }, { kind: "component", type: AITableScrollableGroup, selector: "ai-table-scrollable-group", inputs: ["config", "contentTemplate", "parentContainer"], outputs: ["scrollPosition"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11067
11083
  }
11068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableCellText, decorators: [{
11084
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableCellText, decorators: [{
11069
11085
  type: Component,
11070
11086
  args: [{
11071
11087
  selector: 'ai-table-single-text',
@@ -11886,8 +11902,8 @@ class NumberCellEditorComponent extends AbstractEditCellEditor {
11886
11902
  super.update();
11887
11903
  this.closePopover();
11888
11904
  }
11889
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: NumberCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11890
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.14", type: NumberCellEditorComponent, isStandalone: true, selector: "number-cell-editor", host: { classAttribute: "number-cell-editor" }, usesInheritance: true, ngImport: i0, template: `<thy-input-number
11905
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: NumberCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11906
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", type: NumberCellEditorComponent, isStandalone: true, selector: "number-cell-editor", host: { classAttribute: "number-cell-editor" }, usesInheritance: true, ngImport: i0, template: `<thy-input-number
11891
11907
  class="h-100"
11892
11908
  [thyAutoFocus]="autoFocus()"
11893
11909
  [thyShowStepControls]="false"
@@ -11896,7 +11912,7 @@ class NumberCellEditorComponent extends AbstractEditCellEditor {
11896
11912
  (thyBlur)="updateValue()"
11897
11913
  /> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyShowStepControls", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11898
11914
  }
11899
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: NumberCellEditorComponent, decorators: [{
11915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: NumberCellEditorComponent, decorators: [{
11900
11916
  type: Component,
11901
11917
  args: [{
11902
11918
  selector: 'number-cell-editor',
@@ -11918,21 +11934,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
11918
11934
 
11919
11935
  class SelectOptionComponent {
11920
11936
  constructor() {
11921
- this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : []));
11922
- this.displayOption = input.required(...(ngDevMode ? [{ debugName: "displayOption" }] : []));
11937
+ this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
11938
+ this.displayOption = input.required(...(ngDevMode ? [{ debugName: "displayOption" }] : /* istanbul ignore next */ []));
11923
11939
  this.optionStyle = computed(() => {
11924
11940
  return this.field().settings.option_style || AITableSelectOptionStyle.text;
11925
- }, ...(ngDevMode ? [{ debugName: "optionStyle" }] : []));
11941
+ }, ...(ngDevMode ? [{ debugName: "optionStyle" }] : /* istanbul ignore next */ []));
11926
11942
  this.AITableSelectOptionStyle = AITableSelectOptionStyle;
11927
11943
  }
11928
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11929
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: SelectOptionComponent, isStandalone: true, selector: "select-option", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, displayOption: { classPropertyName: "displayOption", publicName: "displayOption", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.select-option-tag": "optionStyle === AITableSelectOptionStyle.tag" }, classAttribute: "select-option thy-text" }, ngImport: i0, template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color || 'default'; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: ThyDot, selector: "thy-dot,[thy-dot],[thyDot]", inputs: ["thyColor", "thySize", "thyTheme", "thyShape"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11944
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11945
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: SelectOptionComponent, isStandalone: true, selector: "select-option", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, displayOption: { classPropertyName: "displayOption", publicName: "displayOption", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.select-option-tag": "optionStyle() === AITableSelectOptionStyle.tag" }, classAttribute: "select-option thy-text" }, ngImport: i0, template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color || 'default'; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: ThyDot, selector: "thy-dot,[thy-dot],[thyDot]", inputs: ["thyColor", "thySize", "thyTheme", "thyShape"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11930
11946
  }
11931
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionComponent, decorators: [{
11947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionComponent, decorators: [{
11932
11948
  type: Component,
11933
11949
  args: [{ selector: 'select-option', changeDetection: ChangeDetectionStrategy.OnPush, host: {
11934
11950
  class: 'select-option thy-text',
11935
- '[class.select-option-tag]': 'optionStyle === AITableSelectOptionStyle.tag'
11951
+ '[class.select-option-tag]': 'optionStyle() === AITableSelectOptionStyle.tag'
11936
11952
  }, imports: [ThyTag, ThyIcon, ThyTooltipModule, ThyDot, ThyFlexibleText], template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color || 'default'; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n" }]
11937
11953
  }], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], displayOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayOption", required: true }] }] } });
11938
11954
 
@@ -11944,10 +11960,10 @@ class SelectCellEditorComponent extends AbstractEditCellEditor {
11944
11960
  super();
11945
11961
  this.selectOptions = computed(() => {
11946
11962
  return this.field().settings.options;
11947
- }, ...(ngDevMode ? [{ debugName: "selectOptions" }] : []));
11963
+ }, ...(ngDevMode ? [{ debugName: "selectOptions" }] : /* istanbul ignore next */ []));
11948
11964
  this.preset = computed(() => {
11949
11965
  return this.field().settings.is_multiple && this.field().settings.option_style === AITableSelectOptionStyle.tag ? 'tag' : '';
11950
- }, ...(ngDevMode ? [{ debugName: "preset" }] : []));
11966
+ }, ...(ngDevMode ? [{ debugName: "preset" }] : /* istanbul ignore next */ []));
11951
11967
  }
11952
11968
  ngOnInit() {
11953
11969
  super.ngOnInit();
@@ -11993,10 +12009,10 @@ class SelectCellEditorComponent extends AbstractEditCellEditor {
11993
12009
  this.thyPopoverRef?.updatePosition();
11994
12010
  });
11995
12011
  }
11996
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11997
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: SelectCellEditorComponent, isStandalone: true, selector: "select-cell-editor", host: { classAttribute: "d-block h-100 select-cell-editor" }, usesInheritance: true, ngImport: i0, template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"autoFocus()\"\n [thyAllowClear]=\"true\"\n [thyPlaceHolder]=\"''\"\n [thyPreset]=\"preset()\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n (ngModelChange)=\"onModelChange($event)\"\n (thyOnExpandStatusChange)=\"onOpenChange($event)\"\n>\n <ng-template #selectedDisplay let-option>\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option\n [thyValue]=\"option._id\"\n [hidden]=\"!!option.is_disabled\"\n [thyRawValue]=\"option\"\n [thyShowOptionCustom]=\"true\"\n [thyLabelText]=\"option.text\"\n >\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n", dependencies: [{ kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyItemSize", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyVirtualScroll", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }, { kind: "ngmodule", type: ThyEmptyModule }, { kind: "ngmodule", type: ThyFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ThySelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12012
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12013
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: SelectCellEditorComponent, isStandalone: true, selector: "select-cell-editor", host: { classAttribute: "d-block h-100 select-cell-editor" }, usesInheritance: true, ngImport: i0, template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"autoFocus()\"\n [thyAllowClear]=\"true\"\n [thyPlaceHolder]=\"''\"\n [thyPreset]=\"preset()\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n (ngModelChange)=\"onModelChange($event)\"\n (thyOnExpandStatusChange)=\"onOpenChange($event)\"\n>\n <ng-template #selectedDisplay let-option>\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option\n [thyValue]=\"option._id\"\n [hidden]=\"!!option.is_disabled\"\n [thyRawValue]=\"option\"\n [thyShowOptionCustom]=\"true\"\n [thyLabelText]=\"option.text\"\n >\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n", dependencies: [{ kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyItemSize", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyVirtualScroll", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }, { kind: "ngmodule", type: ThyEmptyModule }, { kind: "ngmodule", type: ThyFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ThySelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11998
12014
  }
11999
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectCellEditorComponent, decorators: [{
12015
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectCellEditorComponent, decorators: [{
12000
12016
  type: Component,
12001
12017
  args: [{ selector: 'select-cell-editor', changeDetection: ChangeDetectionStrategy.OnPush, host: {
12002
12018
  class: 'd-block h-100 select-cell-editor'
@@ -12015,7 +12031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
12015
12031
  class TextCellEditorComponent extends AbstractEditCellEditor {
12016
12032
  constructor() {
12017
12033
  super();
12018
- this.isSelectAll = input(false, ...(ngDevMode ? [{ debugName: "isSelectAll" }] : []));
12034
+ this.isSelectAll = input(false, ...(ngDevMode ? [{ debugName: "isSelectAll" }] : /* istanbul ignore next */ []));
12019
12035
  }
12020
12036
  ngOnInit() {
12021
12037
  super.ngOnInit();
@@ -12044,8 +12060,8 @@ class TextCellEditorComponent extends AbstractEditCellEditor {
12044
12060
  super.update();
12045
12061
  this.closePopover();
12046
12062
  }
12047
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: TextCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12048
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: TextCellEditorComponent, isStandalone: true, selector: "text-cell-editor", inputs: { isSelectAll: { classPropertyName: "isSelectAll", publicName: "isSelectAll", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "text-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
12063
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TextCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12064
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: TextCellEditorComponent, isStandalone: true, selector: "text-cell-editor", inputs: { isSelectAll: { classPropertyName: "isSelectAll", publicName: "isSelectAll", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "text-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
12049
12065
  <textarea
12050
12066
  #textarea
12051
12067
  placeholder=""
@@ -12059,7 +12075,7 @@ class TextCellEditorComponent extends AbstractEditCellEditor {
12059
12075
  ></textarea>
12060
12076
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12061
12077
  }
12062
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: TextCellEditorComponent, decorators: [{
12078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: TextCellEditorComponent, decorators: [{
12063
12079
  type: Component,
12064
12080
  args: [{
12065
12081
  selector: 'text-cell-editor',
@@ -12088,10 +12104,10 @@ class SelectOptionPipe {
12088
12104
  transform(_id, options) {
12089
12105
  return options?.length && options.find((item) => item._id === _id);
12090
12106
  }
12091
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12092
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionPipe, isStandalone: true, name: "selectOption" }); }
12107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12108
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionPipe, isStandalone: true, name: "selectOption" }); }
12093
12109
  }
12094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionPipe, decorators: [{
12110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionPipe, decorators: [{
12095
12111
  type: Pipe,
12096
12112
  args: [{
12097
12113
  name: 'selectOption'
@@ -12105,10 +12121,10 @@ class SelectOptionsPipe {
12105
12121
  })) ||
12106
12122
  []);
12107
12123
  }
12108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12109
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionsPipe, isStandalone: true, name: "selectOptions" }); }
12124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12125
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionsPipe, isStandalone: true, name: "selectOptions" }); }
12110
12126
  }
12111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectOptionsPipe, decorators: [{
12127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectOptionsPipe, decorators: [{
12112
12128
  type: Pipe,
12113
12129
  args: [{
12114
12130
  name: 'selectOptions'
@@ -12118,10 +12134,10 @@ class IsSelectRecordPipe {
12118
12134
  transform(recordId, selection) {
12119
12135
  return selection.selectedRecords.has(recordId);
12120
12136
  }
12121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: IsSelectRecordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12122
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: IsSelectRecordPipe, isStandalone: true, name: "isSelectRecord" }); }
12137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: IsSelectRecordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12138
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: IsSelectRecordPipe, isStandalone: true, name: "isSelectRecord" }); }
12123
12139
  }
12124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: IsSelectRecordPipe, decorators: [{
12140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: IsSelectRecordPipe, decorators: [{
12125
12141
  type: Pipe,
12126
12142
  args: [{
12127
12143
  name: 'isSelectRecord'
@@ -12135,10 +12151,10 @@ class UserPipe {
12135
12151
  })) ||
12136
12152
  []);
12137
12153
  }
12138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: UserPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12139
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: UserPipe, isStandalone: true, name: "user" }); }
12154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UserPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12155
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: UserPipe, isStandalone: true, name: "user" }); }
12140
12156
  }
12141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: UserPipe, decorators: [{
12157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: UserPipe, decorators: [{
12142
12158
  type: Pipe,
12143
12159
  args: [{
12144
12160
  name: 'user'
@@ -12148,10 +12164,10 @@ class SelectSettingPipe {
12148
12164
  transform(settings) {
12149
12165
  return settings;
12150
12166
  }
12151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectSettingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12152
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: SelectSettingPipe, isStandalone: true, name: "selectSetting" }); }
12167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectSettingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12168
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: SelectSettingPipe, isStandalone: true, name: "selectSetting" }); }
12153
12169
  }
12154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: SelectSettingPipe, decorators: [{
12170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: SelectSettingPipe, decorators: [{
12155
12171
  type: Pipe,
12156
12172
  args: [{
12157
12173
  name: 'selectSetting'
@@ -12161,10 +12177,10 @@ class MemberSettingPipe {
12161
12177
  transform(settings) {
12162
12178
  return settings;
12163
12179
  }
12164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: MemberSettingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12165
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: MemberSettingPipe, isStandalone: true, name: "memberSetting" }); }
12180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MemberSettingPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12181
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: MemberSettingPipe, isStandalone: true, name: "memberSetting" }); }
12166
12182
  }
12167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: MemberSettingPipe, decorators: [{
12183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: MemberSettingPipe, decorators: [{
12168
12184
  type: Pipe,
12169
12185
  args: [{
12170
12186
  name: 'memberSetting'
@@ -12174,10 +12190,10 @@ class AITableFieldIsSameOptionPipe {
12174
12190
  transform(fieldOption, field) {
12175
12191
  return isSameFieldOption(fieldOption, field);
12176
12192
  }
12177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldIsSameOptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12178
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldIsSameOptionPipe, isStandalone: true, name: "fieldIsSameOption" }); }
12193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldIsSameOptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12194
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldIsSameOptionPipe, isStandalone: true, name: "fieldIsSameOption" }); }
12179
12195
  }
12180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldIsSameOptionPipe, decorators: [{
12196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldIsSameOptionPipe, decorators: [{
12181
12197
  type: Pipe,
12182
12198
  args: [{
12183
12199
  name: 'fieldIsSameOption'
@@ -12186,10 +12202,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
12186
12202
 
12187
12203
  class AITableFieldSettingBase {
12188
12204
  constructor() {
12189
- this.aiEditField = model.required(...(ngDevMode ? [{ debugName: "aiEditField" }] : []));
12190
- this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : []));
12191
- this.aiReferences = input(...(ngDevMode ? [undefined, { debugName: "aiReferences" }] : []));
12192
- this.isUpdate = input(false, ...(ngDevMode ? [{ debugName: "isUpdate", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
12205
+ this.aiEditField = model.required(...(ngDevMode ? [{ debugName: "aiEditField" }] : /* istanbul ignore next */ []));
12206
+ this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
12207
+ this.aiReferences = input(...(ngDevMode ? [undefined, { debugName: "aiReferences" }] : /* istanbul ignore next */ []));
12208
+ this.isUpdate = input(false, { ...(ngDevMode ? { debugName: "isUpdate" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
12193
12209
  this.addField = output();
12194
12210
  this.setField = output();
12195
12211
  this.thyPopoverRef = inject((ThyPopoverRef));
@@ -12216,10 +12232,10 @@ class AITableFieldSettingBase {
12216
12232
  cancel() {
12217
12233
  this.thyPopoverRef.close();
12218
12234
  }
12219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldSettingBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12220
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableFieldSettingBase, isStandalone: true, selector: "ai-table-field-setting-base", inputs: { aiEditField: { classPropertyName: "aiEditField", publicName: "aiEditField", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: false, transformFunction: null }, isUpdate: { classPropertyName: "isUpdate", publicName: "isUpdate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiEditField: "aiEditFieldChange", addField: "addField", setField: "setField" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldSettingBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableFieldSettingBase, isStandalone: true, selector: "ai-table-field-setting-base", inputs: { aiEditField: { classPropertyName: "aiEditField", publicName: "aiEditField", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: false, transformFunction: null }, isUpdate: { classPropertyName: "isUpdate", publicName: "isUpdate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiEditField: "aiEditFieldChange", addField: "addField", setField: "setField" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12221
12237
  }
12222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldSettingBase, decorators: [{
12238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldSettingBase, decorators: [{
12223
12239
  type: Component,
12224
12240
  args: [{
12225
12241
  selector: 'ai-table-field-setting-base',
@@ -12231,10 +12247,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
12231
12247
  class AITableFieldSetting extends AITableFieldSettingBase {
12232
12248
  constructor() {
12233
12249
  super(...arguments);
12234
- this.aiExternalTemplate = input(null, ...(ngDevMode ? [{ debugName: "aiExternalTemplate" }] : []));
12250
+ this.aiExternalTemplate = input(null, ...(ngDevMode ? [{ debugName: "aiExternalTemplate" }] : /* istanbul ignore next */ []));
12235
12251
  this.selectedFieldOption = computed(() => {
12236
12252
  return getFieldOptionByField(this.aiTable(), this.aiEditField());
12237
- }, ...(ngDevMode ? [{ debugName: "selectedFieldOption" }] : []));
12253
+ }, ...(ngDevMode ? [{ debugName: "selectedFieldOption" }] : /* istanbul ignore next */ []));
12238
12254
  this.fieldMaxLength = 32;
12239
12255
  this.validatorConfig = computed(() => {
12240
12256
  return {
@@ -12245,14 +12261,14 @@ class AITableFieldSetting extends AITableFieldSettingBase {
12245
12261
  }
12246
12262
  }
12247
12263
  };
12248
- }, ...(ngDevMode ? [{ debugName: "validatorConfig" }] : []));
12264
+ }, ...(ngDevMode ? [{ debugName: "validatorConfig" }] : /* istanbul ignore next */ []));
12249
12265
  this.fieldOptions = computed(() => {
12250
12266
  const fieldOptions = getFieldOptions(this.aiTable());
12251
12267
  return _.groupBy(fieldOptions, 'group');
12252
- }, ...(ngDevMode ? [{ debugName: "fieldOptions" }] : []));
12268
+ }, ...(ngDevMode ? [{ debugName: "fieldOptions" }] : /* istanbul ignore next */ []));
12253
12269
  this.aITableFieldType = AITableFieldType;
12254
12270
  this.isMultipleMember = false;
12255
- this.isManualInputName = signal(false, ...(ngDevMode ? [{ debugName: "isManualInputName" }] : []));
12271
+ this.isManualInputName = signal(false, ...(ngDevMode ? [{ debugName: "isManualInputName" }] : /* istanbul ignore next */ []));
12256
12272
  this.checkUniqueName = (fieldName) => {
12257
12273
  fieldName = fieldName?.trim();
12258
12274
  return of(!!this.aiTable()
@@ -12270,7 +12286,7 @@ class AITableFieldSetting extends AITableFieldSettingBase {
12270
12286
  base: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.fieldGroupBase),
12271
12287
  advanced: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.fieldGroupAdvanced)
12272
12288
  };
12273
- }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : []));
12289
+ }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : /* istanbul ignore next */ []));
12274
12290
  }
12275
12291
  ngOnInit() {
12276
12292
  super.ngOnInit();
@@ -12316,10 +12332,10 @@ class AITableFieldSetting extends AITableFieldSettingBase {
12316
12332
  nameChange(event) {
12317
12333
  this.isManualInputName.set(true);
12318
12334
  }
12319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldSetting, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12320
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFieldSetting, isStandalone: true, selector: "ai-table-field-setting", inputs: { aiExternalTemplate: { classPropertyName: "aiExternalTemplate", publicName: "aiExternalTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "field-setting d-block pl-5 pr-5 pb-5 pt-4" }, usesInheritance: true, ngImport: i0, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig()\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired [thyLabelText]=\"i18nTexts().columnName\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n (ngModelChange)=\"nameChange($event)\"\n required\n [placeholder]=\"i18nTexts().columnNamePlaceholder\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"i18nTexts().fieldType\">\n <div class=\"thy-dropdown-menu py-0\">\n <div class=\"ml-n5 mr-n5\">\n <span thyDropdownMenuItem [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" (click)=\"fieldTypeClick($event)\">\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"selectedFieldOption().icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ selectedFieldOption().name }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </span>\n </div>\n </div>\n\n @if (selectedFieldOption().type === aITableFieldType.member) {\n <div class=\"d-flex justify-content-between mt-3\">\n {{ i18nTexts().allowMultipleMembers }}\n <thy-switch\n name=\"isMultipleMember\"\n [(ngModel)]=\"isMultipleMember\"\n (ngModelChange)=\"multipleMemberChange()\"\n thySize=\"sm\"\n ></thy-switch>\n </div>\n }\n </thy-form-group>\n @if (aiExternalTemplate()) {\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate()\"></ng-container>\n }\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">{{ i18nTexts().cancel }}</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">{{ i18nTexts().confirm }}</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n <div class=\"ai-table-field-type-menu\">\n <thy-dropdown-menu-group [thyTitle]=\"i18nTexts().base\">\n @for (item of fieldOptions().base; track $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: (item | fieldIsSameOption: aiEditField())\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n </thy-dropdown-menu-group>\n <thy-dropdown-menu-group [thyTitle]=\"i18nTexts().advanced\">\n @for (item of fieldOptions().advanced; track $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: (item | fieldIsSameOption: aiEditField())\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n </thy-dropdown-menu-group>\n </div>\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "component", type: ThyInputCount, selector: "thy-input-count", inputs: ["thyInput"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyUniqueCheckValidator, selector: "[thyUniqueCheck]", inputs: ["thyUniqueCheck"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: ThyDropdownMenuGroup, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemExtendIconDirective, selector: "[thyDropdownMenuItemExtendIcon]" }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThySwitch, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled", "thyLoading"], outputs: ["thyChange"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i2.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "pipe", type: AITableFieldIsSameOptionPipe, name: "fieldIsSameOption" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12335
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldSetting, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12336
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFieldSetting, isStandalone: true, selector: "ai-table-field-setting", inputs: { aiExternalTemplate: { classPropertyName: "aiExternalTemplate", publicName: "aiExternalTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "field-setting d-block pl-5 pr-5 pb-5 pt-4" }, usesInheritance: true, ngImport: i0, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig()\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired [thyLabelText]=\"i18nTexts().columnName\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n (ngModelChange)=\"nameChange($event)\"\n required\n [placeholder]=\"i18nTexts().columnNamePlaceholder\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group [thyLabelText]=\"i18nTexts().fieldType\">\n <div class=\"thy-dropdown-menu py-0\">\n <div class=\"ml-n5 mr-n5\">\n <span thyDropdownMenuItem [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" (click)=\"fieldTypeClick($event)\">\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"selectedFieldOption().icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ selectedFieldOption().name }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </span>\n </div>\n </div>\n\n @if (selectedFieldOption().type === aITableFieldType.member) {\n <div class=\"d-flex justify-content-between mt-3\">\n {{ i18nTexts().allowMultipleMembers }}\n <thy-switch\n name=\"isMultipleMember\"\n [(ngModel)]=\"isMultipleMember\"\n (ngModelChange)=\"multipleMemberChange()\"\n thySize=\"sm\"\n ></thy-switch>\n </div>\n }\n </thy-form-group>\n @if (aiExternalTemplate()) {\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate()\"></ng-container>\n }\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">{{ i18nTexts().cancel }}</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">{{ i18nTexts().confirm }}</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n <div class=\"ai-table-field-type-menu\">\n <thy-dropdown-menu-group [thyTitle]=\"i18nTexts().base\">\n @for (item of fieldOptions().base; track $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: (item | fieldIsSameOption: aiEditField())\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n </thy-dropdown-menu-group>\n <thy-dropdown-menu-group [thyTitle]=\"i18nTexts().advanced\">\n @for (item of fieldOptions().advanced; track $index) {\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: (item | fieldIsSameOption: aiEditField())\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n </thy-dropdown-menu-group>\n </div>\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "component", type: ThyInputCount, selector: "thy-input-count", inputs: ["thyInput"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyUniqueCheckValidator, selector: "[thyUniqueCheck]", inputs: ["thyUniqueCheck"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: ThyDropdownMenuGroup, selector: "thy-dropdown-menu-group", inputs: ["thyTitle"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemExtendIconDirective, selector: "[thyDropdownMenuItemExtendIcon]" }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThySwitch, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled", "thyLoading"], outputs: ["thyChange"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i2.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "pipe", type: AITableFieldIsSameOptionPipe, name: "fieldIsSameOption" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12321
12337
  }
12322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldSetting, decorators: [{
12338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldSetting, decorators: [{
12323
12339
  type: Component,
12324
12340
  args: [{ selector: 'ai-table-field-setting', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
12325
12341
  NgClass,
@@ -12352,11 +12368,11 @@ class AITableContextMenu extends ThyDropdownAbstractMenu {
12352
12368
  super(...arguments);
12353
12369
  this.notifyService = inject(ThyNotifyService);
12354
12370
  this.thyPopoverRef = inject(ThyPopoverRef);
12355
- this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : []));
12356
- this.menuItems = input.required(...(ngDevMode ? [{ debugName: "menuItems" }] : []));
12357
- this.targetName = input.required(...(ngDevMode ? [{ debugName: "targetName" }] : []));
12358
- this.position = input.required(...(ngDevMode ? [{ debugName: "position" }] : []));
12359
- this.maxCount = computed(() => this.aiTable().context?.maxRecords() - this.aiTable().records().length, ...(ngDevMode ? [{ debugName: "maxCount" }] : []));
12371
+ this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
12372
+ this.menuItems = input.required(...(ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []));
12373
+ this.targetName = input.required(...(ngDevMode ? [{ debugName: "targetName" }] : /* istanbul ignore next */ []));
12374
+ this.position = input.required(...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
12375
+ this.maxCount = computed(() => this.aiTable().context?.maxRecords() - this.aiTable().records().length, ...(ngDevMode ? [{ debugName: "maxCount" }] : /* istanbul ignore next */ []));
12360
12376
  }
12361
12377
  execute(menu) {
12362
12378
  if ((menu.disabled && !menu.disabled(this.aiTable(), this.targetName(), this.position())) || !menu.disabled) {
@@ -12370,10 +12386,10 @@ class AITableContextMenu extends ThyDropdownAbstractMenu {
12370
12386
  this.execute(menu);
12371
12387
  this.thyPopoverRef.close();
12372
12388
  }
12373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableContextMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12374
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableContextMenu, isStandalone: true, selector: "ai-table-context-menu", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: true, transformFunction: null }, targetName: { classPropertyName: "targetName", publicName: "targetName", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "context-menu" }, usesInheritance: true, ngImport: i0, template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider thyStyle=\"solid\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n @let isRemoveRecords = menu.type === 'removeRecords';\n @let isPreventClearSelection =\n menu.type === 'copyCells' ||\n menu.type === 'pasteCells' ||\n menu.type === 'removeRecords' ||\n menu.type === 'insertUpwardRecords' ||\n menu.type === 'insertDownwardRecords';\n\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n 'remove-record': isRemoveRecords && !disabled,\n 'ai-table-prevent-clear-selection': isPreventClearSelection && !disabled\n }\"\n draggable=\"false\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"menu.icon!\"></thy-icon>\n @if (menu?.isInputNumber) {\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ menu.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"menu.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n [thyMax]=\"maxCount()\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, menu)\"\n thyStopPropagation\n ></thy-input-number>\n {{ menu.nameSuffix }}\n </span>\n } @else {\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n }\n <span thyDropdownMenuItemMeta class=\"text-desc\">{{ menu.shortcutKey }}</span>\n </a>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyShowStepControls", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemMetaDirective, selector: "[thyDropdownMenuItemMeta]" }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableContextMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12390
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableContextMenu, isStandalone: true, selector: "ai-table-context-menu", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: true, transformFunction: null }, targetName: { classPropertyName: "targetName", publicName: "targetName", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "context-menu" }, usesInheritance: true, ngImport: i0, template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider thyStyle=\"solid\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n @let isRemoveRecords = menu.type === 'removeRecords';\n @let isPreventClearSelection =\n menu.type === 'copyCells' ||\n menu.type === 'pasteCells' ||\n menu.type === 'removeRecords' ||\n menu.type === 'insertUpwardRecords' ||\n menu.type === 'insertDownwardRecords';\n\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n 'remove-record': isRemoveRecords && !disabled,\n 'ai-table-prevent-clear-selection': isPreventClearSelection && !disabled\n }\"\n draggable=\"false\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"menu.icon!\"></thy-icon>\n @if (menu?.isInputNumber) {\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ menu.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"menu.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n [thyMax]=\"maxCount()\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, menu)\"\n thyStopPropagation\n ></thy-input-number>\n {{ menu.nameSuffix }}\n </span>\n } @else {\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n }\n <span thyDropdownMenuItemMeta class=\"text-desc\">{{ menu.shortcutKey }}</span>\n </a>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyShowStepControls", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemMetaDirective, selector: "[thyDropdownMenuItemMeta]" }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12375
12391
  }
12376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableContextMenu, decorators: [{
12392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableContextMenu, decorators: [{
12377
12393
  type: Component,
12378
12394
  args: [{ selector: 'ai-table-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, host: {
12379
12395
  class: 'context-menu'
@@ -12394,8 +12410,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
12394
12410
 
12395
12411
  class CheckboxMenuSort {
12396
12412
  constructor() {
12397
- this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : []));
12398
- this.menu = input.required(...(ngDevMode ? [{ debugName: "menu" }] : []));
12413
+ this.field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
12414
+ this.menu = input.required(...(ngDevMode ? [{ debugName: "menu" }] : /* istanbul ignore next */ []));
12399
12415
  this.Direction = {
12400
12416
  ascending: 'ascending',
12401
12417
  descending: 'descending'
@@ -12411,8 +12427,8 @@ class CheckboxMenuSort {
12411
12427
  }
12412
12428
  return '按 Z → A 排序';
12413
12429
  }
12414
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CheckboxMenuSort, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12415
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: CheckboxMenuSort, isStandalone: true, selector: "checkbox-menu-sort", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "checkbox-menu-sort" }, ngImport: i0, template: `
12430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CheckboxMenuSort, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12431
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: CheckboxMenuSort, isStandalone: true, selector: "checkbox-menu-sort", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "checkbox-menu-sort" }, ngImport: i0, template: `
12416
12432
  <thy-icon class="sort-icon" [thyIconName]="menu().icon!"></thy-icon>
12417
12433
  <div class="sort-state">
12418
12434
  @if (menu().type === 'sortByAsc') {
@@ -12427,7 +12443,7 @@ class CheckboxMenuSort {
12427
12443
  </div>
12428
12444
  `, isInline: true, dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyCheckbox, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12429
12445
  }
12430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: CheckboxMenuSort, decorators: [{
12446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CheckboxMenuSort, decorators: [{
12431
12447
  type: Component,
12432
12448
  args: [{
12433
12449
  selector: 'checkbox-menu-sort',
@@ -12456,10 +12472,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
12456
12472
  class AITableFieldMenu extends ThyDropdownAbstractMenu {
12457
12473
  constructor() {
12458
12474
  super(...arguments);
12459
- this.execMenuCallback = input(...(ngDevMode ? [undefined, { debugName: "execMenuCallback" }] : []));
12475
+ this.execMenuCallback = input(...(ngDevMode ? [undefined, { debugName: "execMenuCallback" }] : /* istanbul ignore next */ []));
12460
12476
  this.field = computed(() => {
12461
12477
  return this.aiTable.fields().find((item) => item._id === this.fieldId);
12462
- }, ...(ngDevMode ? [{ debugName: "field" }] : []));
12478
+ }, ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
12463
12479
  }
12464
12480
  getCustomComponent(menu) {
12465
12481
  return menu.customComponent?.(this.aiTable, this.field());
@@ -12478,10 +12494,10 @@ class AITableFieldMenu extends ThyDropdownAbstractMenu {
12478
12494
  }
12479
12495
  return menu.name || '';
12480
12496
  }
12481
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12482
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableFieldMenu, isStandalone: true, selector: "ai-table-field-menu", inputs: { fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: false, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, fieldMenus: { classPropertyName: "fieldMenus", publicName: "fieldMenus", isSignal: false, isRequired: true, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, execMenuCallback: { classPropertyName: "execMenuCallback", publicName: "execMenuCallback", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "field-menu" }, usesInheritance: true, ngImport: i0, template: "@if (field()) {\n @for (menu of fieldMenus; track index; let index = $index) {\n @if ((menu.hidden && !menu.hidden(aiTable, field)) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider [thyStyle]=\"'solid'\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable, field));\n @let isRemoveField = menu.type === 'removeField';\n @let customComponent = getCustomComponent(menu);\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'remove-field': isRemoveField && !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n @if (customComponent) {\n <ng-container *ngComponentOutlet=\"customComponent; inputs: { field: field(), menu: menu }\"> </ng-container>\n } @else {\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ getMenuName(menu, field()) }}</span>\n }\n </a>\n }\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12497
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12498
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableFieldMenu, isStandalone: true, selector: "ai-table-field-menu", inputs: { fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: false, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, fieldMenus: { classPropertyName: "fieldMenus", publicName: "fieldMenus", isSignal: false, isRequired: true, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: false, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, execMenuCallback: { classPropertyName: "execMenuCallback", publicName: "execMenuCallback", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "field-menu" }, usesInheritance: true, ngImport: i0, template: "@if (field()) {\n @for (menu of fieldMenus; track index; let index = $index) {\n @if ((menu.hidden && !menu.hidden(aiTable, field)) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider [thyStyle]=\"'solid'\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable, field));\n @let isRemoveField = menu.type === 'removeField';\n @let customComponent = getCustomComponent(menu);\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'remove-field': isRemoveField && !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n @if (customComponent) {\n <ng-container *ngComponentOutlet=\"customComponent; inputs: { field: field(), menu: menu }\"> </ng-container>\n } @else {\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ getMenuName(menu, field()) }}</span>\n }\n </a>\n }\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12483
12499
  }
12484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableFieldMenu, decorators: [{
12500
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableFieldMenu, decorators: [{
12485
12501
  type: Component,
12486
12502
  args: [{ selector: 'ai-table-field-menu', changeDetection: ChangeDetectionStrategy.OnPush, host: {
12487
12503
  class: 'field-menu'
@@ -12512,18 +12528,18 @@ const GRID_CELL_EDITOR_MAP = {
12512
12528
 
12513
12529
  class DynamicCellEditorComponent {
12514
12530
  constructor() {
12515
- this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : []));
12516
- this.fieldId = input.required(...(ngDevMode ? [{ debugName: "fieldId" }] : []));
12517
- this.recordId = input.required(...(ngDevMode ? [{ debugName: "recordId" }] : []));
12518
- this.references = input.required(...(ngDevMode ? [{ debugName: "references" }] : []));
12531
+ this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
12532
+ this.fieldId = input.required(...(ngDevMode ? [{ debugName: "fieldId" }] : /* istanbul ignore next */ []));
12533
+ this.recordId = input.required(...(ngDevMode ? [{ debugName: "recordId" }] : /* istanbul ignore next */ []));
12534
+ this.references = input.required(...(ngDevMode ? [{ debugName: "references" }] : /* istanbul ignore next */ []));
12519
12535
  this.updateFieldValues = output();
12520
- this.editorHost = viewChild('editorHost', ...(ngDevMode ? [{ debugName: "editorHost", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
12536
+ this.editorHost = viewChild('editorHost', { ...(ngDevMode ? { debugName: "editorHost" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
12521
12537
  this.field = computed(() => {
12522
12538
  return this.aiTable().fieldsMap()[this.fieldId()];
12523
- }, ...(ngDevMode ? [{ debugName: "field" }] : []));
12539
+ }, ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
12524
12540
  this.cellValue = computed(() => {
12525
12541
  return AITableQueries.getFieldValue(this.aiTable(), [this.recordId(), this.fieldId()]);
12526
- }, ...(ngDevMode ? [{ debugName: "cellValue" }] : []));
12542
+ }, ...(ngDevMode ? [{ debugName: "cellValue" }] : /* istanbul ignore next */ []));
12527
12543
  effect(() => {
12528
12544
  this.recordId();
12529
12545
  this.fieldId();
@@ -12573,14 +12589,14 @@ class DynamicCellEditorComponent {
12573
12589
  }
12574
12590
  return GRID_CELL_EDITOR_MAP[fieldType];
12575
12591
  }
12576
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: DynamicCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12577
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: DynamicCellEditorComponent, isStandalone: true, selector: "ai-dynamic-cell-editor", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: true, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: true, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { updateFieldValues: "updateFieldValues" }, viewQueries: [{ propertyName: "editorHost", first: true, predicate: ["editorHost"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
12592
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DynamicCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12593
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.7", type: DynamicCellEditorComponent, isStandalone: true, selector: "ai-dynamic-cell-editor", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, fieldId: { classPropertyName: "fieldId", publicName: "fieldId", isSignal: true, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: true, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { updateFieldValues: "updateFieldValues" }, viewQueries: [{ propertyName: "editorHost", first: true, predicate: ["editorHost"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
12578
12594
  <div class="ai-dynamic-cell-editor-wrapper">
12579
12595
  <ng-container #editorHost></ng-container>
12580
12596
  </div>
12581
12597
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12582
12598
  }
12583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: DynamicCellEditorComponent, decorators: [{
12599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: DynamicCellEditorComponent, decorators: [{
12584
12600
  type: Component,
12585
12601
  args: [{
12586
12602
  selector: 'ai-dynamic-cell-editor',
@@ -12598,39 +12614,39 @@ class RecordDetailComponent {
12598
12614
  return getFieldIconPath(field) || IconPathMap[field.icon];
12599
12615
  }
12600
12616
  constructor() {
12601
- this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : []));
12602
- this.recordId = model.required(...(ngDevMode ? [{ debugName: "recordId" }] : []));
12603
- this.references = input.required(...(ngDevMode ? [{ debugName: "references" }] : []));
12604
- this.actions = input(...(ngDevMode ? [undefined, { debugName: "actions" }] : []));
12617
+ this.aiTable = input.required(...(ngDevMode ? [{ debugName: "aiTable" }] : /* istanbul ignore next */ []));
12618
+ this.recordId = model.required(...(ngDevMode ? [{ debugName: "recordId" }] : /* istanbul ignore next */ []));
12619
+ this.references = input.required(...(ngDevMode ? [{ debugName: "references" }] : /* istanbul ignore next */ []));
12620
+ this.actions = input(...(ngDevMode ? [undefined, { debugName: "actions" }] : /* istanbul ignore next */ []));
12605
12621
  this.recordIdChange = output();
12606
- this.internalRecordId = signal('', ...(ngDevMode ? [{ debugName: "internalRecordId" }] : []));
12622
+ this.internalRecordId = signal('', ...(ngDevMode ? [{ debugName: "internalRecordId" }] : /* istanbul ignore next */ []));
12607
12623
  this.readonly = computed(() => {
12608
12624
  return this.aiTable()?.context?.readonly?.();
12609
- }, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
12625
+ }, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
12610
12626
  this.currentRecordId = computed(() => {
12611
12627
  const inputId = this.recordId();
12612
12628
  const internalId = this.internalRecordId();
12613
12629
  return internalId || inputId;
12614
- }, ...(ngDevMode ? [{ debugName: "currentRecordId" }] : []));
12615
- this.fieldOperationsMenuTemplate = viewChild('fieldOperationsMenuTemplate', ...(ngDevMode ? [{ debugName: "fieldOperationsMenuTemplate" }] : []));
12630
+ }, ...(ngDevMode ? [{ debugName: "currentRecordId" }] : /* istanbul ignore next */ []));
12631
+ this.fieldOperationsMenuTemplate = viewChild('fieldOperationsMenuTemplate', ...(ngDevMode ? [{ debugName: "fieldOperationsMenuTemplate" }] : /* istanbul ignore next */ []));
12616
12632
  this.record = computed(() => {
12617
12633
  return this.aiTable().recordsMap()[this.currentRecordId()];
12618
- }, ...(ngDevMode ? [{ debugName: "record" }] : []));
12634
+ }, ...(ngDevMode ? [{ debugName: "record" }] : /* istanbul ignore next */ []));
12619
12635
  this.fields = computed(() => {
12620
12636
  return this.aiTable().gridData().fields;
12621
- }, ...(ngDevMode ? [{ debugName: "fields" }] : []));
12637
+ }, ...(ngDevMode ? [{ debugName: "fields" }] : /* istanbul ignore next */ []));
12622
12638
  this.firstField = computed(() => {
12623
12639
  return this.aiTable().gridData().fields[0];
12624
- }, ...(ngDevMode ? [{ debugName: "firstField" }] : []));
12640
+ }, ...(ngDevMode ? [{ debugName: "firstField" }] : /* istanbul ignore next */ []));
12625
12641
  this.lastField = computed(() => {
12626
12642
  const fields = this.aiTable().gridData().fields;
12627
12643
  return fields[fields.length - 1];
12628
- }, ...(ngDevMode ? [{ debugName: "lastField" }] : []));
12644
+ }, ...(ngDevMode ? [{ debugName: "lastField" }] : /* istanbul ignore next */ []));
12629
12645
  this.i18nTexts = computed(() => ({
12630
12646
  recordUntitled: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.recordUntitled),
12631
12647
  deleteRecord: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.deleteRecord),
12632
12648
  addField: getI18nTextByKey(this.aiTable(), AITableGridI18nKey.addField)
12633
- }), ...(ngDevMode ? [{ debugName: "i18nTexts" }] : []));
12649
+ }), ...(ngDevMode ? [{ debugName: "i18nTexts" }] : /* istanbul ignore next */ []));
12634
12650
  this.recordTitle = computed(() => {
12635
12651
  let title = this.i18nTexts().recordUntitled;
12636
12652
  const field = this.firstField();
@@ -12646,19 +12662,19 @@ class RecordDetailComponent {
12646
12662
  }
12647
12663
  }
12648
12664
  return title;
12649
- }, ...(ngDevMode ? [{ debugName: "recordTitle" }] : []));
12665
+ }, ...(ngDevMode ? [{ debugName: "recordTitle" }] : /* istanbul ignore next */ []));
12650
12666
  this.recordNavigation = computed(() => {
12651
12667
  return getRecordNavigationInfo(this.aiTable(), this.currentRecordId());
12652
- }, ...(ngDevMode ? [{ debugName: "recordNavigation" }] : []));
12668
+ }, ...(ngDevMode ? [{ debugName: "recordNavigation" }] : /* istanbul ignore next */ []));
12653
12669
  this.fieldMenus = computed(() => {
12654
12670
  const fieldMenusFn = this.aiTable()?.context?.aiFieldConfig()?.recordDetailFieldMenus;
12655
12671
  if (fieldMenusFn && this.aiTable()) {
12656
12672
  return fieldMenusFn(this.aiTable());
12657
12673
  }
12658
12674
  return [];
12659
- }, ...(ngDevMode ? [{ debugName: "fieldMenus" }] : []));
12675
+ }, ...(ngDevMode ? [{ debugName: "fieldMenus" }] : /* istanbul ignore next */ []));
12660
12676
  this.activeFieldId = null;
12661
- this.fieldMenuActive = signal({}, ...(ngDevMode ? [{ debugName: "fieldMenuActive" }] : []));
12677
+ this.fieldMenuActive = signal({}, ...(ngDevMode ? [{ debugName: "fieldMenuActive" }] : /* istanbul ignore next */ []));
12662
12678
  this.fieldMenuPopoverRef = null;
12663
12679
  this.currentPopoverFieldId = null;
12664
12680
  this.slideRef = inject(ThySlideRef);
@@ -12797,10 +12813,10 @@ class RecordDetailComponent {
12797
12813
  return (Array.isArray(value) && value.length === 0) || isUndefinedOrNull(value);
12798
12814
  }
12799
12815
  }
12800
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RecordDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12801
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: RecordDetailComponent, isStandalone: true, selector: "ai-record-detail", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: true, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { recordId: "recordIdChange", recordIdChange: "recordIdChange" }, viewQueries: [{ propertyName: "fieldOperationsMenuTemplate", first: true, predicate: ["fieldOperationsMenuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"d-flex flex-column ai-record-detail\">\n <div class=\"d-flex align-items-center justify-content-between pl-8 pr-5 record-detail-header\">\n <span class=\"record-title\" thyFlexibleText [thyTooltipContent]=\"recordTitle()\">\n {{ recordTitle() }}\n </span>\n\n <div class=\"record-navigation\">\n <a thyAction href=\"javascript:;\" [thyDisabled]=\"!recordNavigation()?.hasPrevious\" (click)=\"previousRecord()\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n\n <a thyAction href=\"javascript:;\" [thyDisabled]=\"!recordNavigation()?.hasNext\" (click)=\"nextRecord()\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n <thy-divider [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <div class=\"header-operations\">\n <a\n thyAction\n thyActiveClass=\"active\"\n href=\"javascript:;\"\n [thyDropdown]=\"headerMoreMenu\"\n thyTrigger=\"click\"\n thyPlacement=\"bottomRight\"\n ><thy-icon thyIconName=\"list\"></thy-icon\n ></a>\n\n <thy-dropdown-menu #headerMoreMenu>\n <a\n class=\"ai-table-record-detail-remove\"\n thyDropdownMenuItem\n [thyDisabled]=\"readonly()\"\n href=\"javascript:;\"\n (click)=\"deleteRecord()\"\n >\n <thy-icon thyIconName=\"trash\"></thy-icon>\n <span>{{ i18nTexts().deleteRecord }}</span>\n </a>\n </thy-dropdown-menu>\n\n <a thyAction href=\"javascript:;\" (click)=\"close()\"><thy-icon thyIconName=\"close\"></thy-icon></a>\n </div>\n </div>\n\n <div class=\"record-detail-body\">\n <div class=\"px-8 cell-list-viewport\">\n @for (field of fields(); track field._id) {\n <div class=\"pt-4 cell-item\" [class.active]=\"activeFieldId === field._id\">\n <div #fieldMenuOrigin class=\"d-flex align-items-center justify-content-between mb-2 cell-header\">\n <div class=\"d-flex align-items-center cell-label\">\n <span class=\"d-flex align-items-center mr-2 text-muted font-size-md\">\n @if (fieldIconPath(field)) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n <path [attr.d]=\"fieldIconPath(field)\" fill=\"currentColor\"></path>\n </svg>\n }\n </span>\n <span class=\"d-flex align-items-center font-size-base\">\n {{ field.name }}\n </span>\n </div>\n @if (!readonly()) {\n <a\n class=\"field-action\"\n thyAction\n [thyActionActive]=\"fieldMenuActive()[field._id]\"\n href=\"javascript:;\"\n (click)=\"fieldMenuMoreClick($event, field._id, fieldMenuOrigin)\"\n ><thy-icon thyIconName=\"more-vertical\"></thy-icon\n ></a>\n }\n </div>\n\n <div class=\"dynamic-cell-editor\" (click)=\"cellClick(field._id)\">\n <ai-dynamic-cell-editor\n [aiTable]=\"aiTable()\"\n [fieldId]=\"field._id\"\n [recordId]=\"currentRecordId()\"\n [references]=\"references()\"\n (updateFieldValues)=\"fieldValueChange($event)\"\n >\n </ai-dynamic-cell-editor>\n </div>\n </div>\n }\n </div>\n <div class=\"py-4 px-5\">\n @if (!readonly()) {\n <button class=\"p-0\" thyButton=\"link-secondary\" thySize=\"md\" (click)=\"addNewField($event)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n <span>{{ i18nTexts().addField }}</span>\n </button>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: DynamicCellEditorComponent, selector: "ai-dynamic-cell-editor", inputs: ["aiTable", "fieldId", "recordId", "references"], outputs: ["updateFieldValues"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RecordDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: RecordDetailComponent, isStandalone: true, selector: "ai-record-detail", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, recordId: { classPropertyName: "recordId", publicName: "recordId", isSignal: true, isRequired: true, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { recordId: "recordIdChange", recordIdChange: "recordIdChange" }, viewQueries: [{ propertyName: "fieldOperationsMenuTemplate", first: true, predicate: ["fieldOperationsMenuTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"d-flex flex-column ai-record-detail\">\n <div class=\"d-flex align-items-center justify-content-between pl-8 pr-5 record-detail-header\">\n <span class=\"record-title\" thyFlexibleText [thyTooltipContent]=\"recordTitle()\">\n {{ recordTitle() }}\n </span>\n\n <div class=\"record-navigation\">\n <a thyAction href=\"javascript:;\" [thyDisabled]=\"!recordNavigation()?.hasPrevious\" (click)=\"previousRecord()\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n\n <a thyAction href=\"javascript:;\" [thyDisabled]=\"!recordNavigation()?.hasNext\" (click)=\"nextRecord()\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n <thy-divider [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <div class=\"header-operations\">\n <a\n thyAction\n thyActiveClass=\"active\"\n href=\"javascript:;\"\n [thyDropdown]=\"headerMoreMenu\"\n thyTrigger=\"click\"\n thyPlacement=\"bottomRight\"\n ><thy-icon thyIconName=\"list\"></thy-icon\n ></a>\n\n <thy-dropdown-menu #headerMoreMenu>\n <a\n class=\"ai-table-record-detail-remove\"\n thyDropdownMenuItem\n [thyDisabled]=\"readonly()\"\n href=\"javascript:;\"\n (click)=\"deleteRecord()\"\n >\n <thy-icon thyIconName=\"trash\"></thy-icon>\n <span>{{ i18nTexts().deleteRecord }}</span>\n </a>\n </thy-dropdown-menu>\n\n <a thyAction href=\"javascript:;\" (click)=\"close()\"><thy-icon thyIconName=\"close\"></thy-icon></a>\n </div>\n </div>\n\n <div class=\"record-detail-body\">\n <div class=\"px-8 cell-list-viewport\">\n @for (field of fields(); track field._id) {\n <div class=\"pt-4 cell-item\" [class.active]=\"activeFieldId === field._id\">\n <div #fieldMenuOrigin class=\"d-flex align-items-center justify-content-between mb-2 cell-header\">\n <div class=\"d-flex align-items-center cell-label\">\n <span class=\"d-flex align-items-center mr-2 text-muted font-size-md\">\n @if (fieldIconPath(field)) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\">\n <path [attr.d]=\"fieldIconPath(field)\" fill=\"currentColor\"></path>\n </svg>\n }\n </span>\n <span class=\"d-flex align-items-center font-size-base\">\n {{ field.name }}\n </span>\n </div>\n @if (!readonly()) {\n <a\n class=\"field-action\"\n thyAction\n [thyActionActive]=\"fieldMenuActive()[field._id]\"\n href=\"javascript:;\"\n (click)=\"fieldMenuMoreClick($event, field._id, fieldMenuOrigin)\"\n ><thy-icon thyIconName=\"more-vertical\"></thy-icon\n ></a>\n }\n </div>\n\n <div class=\"dynamic-cell-editor\" (click)=\"cellClick(field._id)\">\n <ai-dynamic-cell-editor\n [aiTable]=\"aiTable()\"\n [fieldId]=\"field._id\"\n [recordId]=\"currentRecordId()\"\n [references]=\"references()\"\n (updateFieldValues)=\"fieldValueChange($event)\"\n >\n </ai-dynamic-cell-editor>\n </div>\n </div>\n }\n </div>\n <div class=\"py-4 px-5\">\n @if (!readonly()) {\n <button class=\"p-0\" thyButton=\"link-secondary\" thySize=\"md\" (click)=\"addNewField($event)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n <span>{{ i18nTexts().addField }}</span>\n </button>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "component", type: DynamicCellEditorComponent, selector: "ai-dynamic-cell-editor", inputs: ["aiTable", "fieldId", "recordId", "references"], outputs: ["updateFieldValues"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12802
12818
  }
12803
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RecordDetailComponent, decorators: [{
12819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RecordDetailComponent, decorators: [{
12804
12820
  type: Component,
12805
12821
  args: [{ selector: 'ai-record-detail', imports: [
12806
12822
  ThyButton,
@@ -13045,10 +13061,10 @@ class AITableGridEventService {
13045
13061
  });
13046
13062
  return ref;
13047
13063
  }
13048
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13049
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridEventService }); }
13064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13065
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridEventService }); }
13050
13066
  }
13051
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridEventService, decorators: [{
13067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridEventService, decorators: [{
13052
13068
  type: Injectable
13053
13069
  }] });
13054
13070
 
@@ -13097,38 +13113,38 @@ class AITableGridFieldService {
13097
13113
  });
13098
13114
  return ref;
13099
13115
  }
13100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridFieldService, deps: [{ token: i1$1.ThyPopover }], target: i0.ɵɵFactoryTarget.Injectable }); }
13101
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridFieldService }); }
13116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridFieldService, deps: [{ token: i1$1.ThyPopover }], target: i0.ɵɵFactoryTarget.Injectable }); }
13117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridFieldService }); }
13102
13118
  }
13103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridFieldService, decorators: [{
13119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridFieldService, decorators: [{
13104
13120
  type: Injectable
13105
13121
  }], ctorParameters: () => [{ type: i1$1.ThyPopover }] });
13106
13122
 
13107
13123
  class AITableGridBase {
13108
13124
  constructor() {
13109
- this.aiRecords = model.required(...(ngDevMode ? [{ debugName: "aiRecords" }] : []));
13110
- this.aiFields = model.required(...(ngDevMode ? [{ debugName: "aiFields" }] : []));
13111
- this.aiContextMenuItems = input(...(ngDevMode ? [undefined, { debugName: "aiContextMenuItems" }] : []));
13112
- this.aiFieldConfig = input(...(ngDevMode ? [undefined, { debugName: "aiFieldConfig" }] : []));
13113
- this.aiReadonly = input(false, ...(ngDevMode ? [{ debugName: "aiReadonly" }] : []));
13114
- this.aiPlugins = input(...(ngDevMode ? [undefined, { debugName: "aiPlugins" }] : []));
13115
- this.aiMaxFields = input(...(ngDevMode ? [undefined, { debugName: "aiMaxFields" }] : []));
13116
- this.aiMaxRecords = input(...(ngDevMode ? [undefined, { debugName: "aiMaxRecords" }] : []));
13117
- this.aiMaxSelectOptions = input(...(ngDevMode ? [undefined, { debugName: "aiMaxSelectOptions" }] : []));
13118
- this.aiReferences = input.required(...(ngDevMode ? [{ debugName: "aiReferences" }] : []));
13119
- this.aiBuildRenderDataFn = input(...(ngDevMode ? [undefined, { debugName: "aiBuildRenderDataFn" }] : []));
13120
- this.aiBuildGroupLinearRowsFn = input(...(ngDevMode ? [undefined, { debugName: "aiBuildGroupLinearRowsFn" }] : []));
13121
- this.aiSortKeysMap = input(...(ngDevMode ? [undefined, { debugName: "aiSortKeysMap" }] : []));
13122
- this.aiGetI18nTextByKey = input(...(ngDevMode ? [undefined, { debugName: "aiGetI18nTextByKey" }] : []));
13123
- this.aiKeywords = input(...(ngDevMode ? [undefined, { debugName: "aiKeywords" }] : []));
13124
- this.aiFrozenColumnCountFn = input(...(ngDevMode ? [undefined, { debugName: "aiFrozenColumnCountFn" }] : []));
13125
- this.aiRecordHeight = input(AITableRecordHeightType.low, ...(ngDevMode ? [{ debugName: "aiRecordHeight" }] : []));
13126
- this.aiRecordDetailConfig = input(...(ngDevMode ? [undefined, { debugName: "aiRecordDetailConfig" }] : []));
13125
+ this.aiRecords = model.required(...(ngDevMode ? [{ debugName: "aiRecords" }] : /* istanbul ignore next */ []));
13126
+ this.aiFields = model.required(...(ngDevMode ? [{ debugName: "aiFields" }] : /* istanbul ignore next */ []));
13127
+ this.aiContextMenuItems = input(...(ngDevMode ? [undefined, { debugName: "aiContextMenuItems" }] : /* istanbul ignore next */ []));
13128
+ this.aiFieldConfig = input(...(ngDevMode ? [undefined, { debugName: "aiFieldConfig" }] : /* istanbul ignore next */ []));
13129
+ this.aiReadonly = input(false, ...(ngDevMode ? [{ debugName: "aiReadonly" }] : /* istanbul ignore next */ []));
13130
+ this.aiPlugins = input(...(ngDevMode ? [undefined, { debugName: "aiPlugins" }] : /* istanbul ignore next */ []));
13131
+ this.aiMaxFields = input(...(ngDevMode ? [undefined, { debugName: "aiMaxFields" }] : /* istanbul ignore next */ []));
13132
+ this.aiMaxRecords = input(...(ngDevMode ? [undefined, { debugName: "aiMaxRecords" }] : /* istanbul ignore next */ []));
13133
+ this.aiMaxSelectOptions = input(...(ngDevMode ? [undefined, { debugName: "aiMaxSelectOptions" }] : /* istanbul ignore next */ []));
13134
+ this.aiReferences = input.required(...(ngDevMode ? [{ debugName: "aiReferences" }] : /* istanbul ignore next */ []));
13135
+ this.aiBuildRenderDataFn = input(...(ngDevMode ? [undefined, { debugName: "aiBuildRenderDataFn" }] : /* istanbul ignore next */ []));
13136
+ this.aiBuildGroupLinearRowsFn = input(...(ngDevMode ? [undefined, { debugName: "aiBuildGroupLinearRowsFn" }] : /* istanbul ignore next */ []));
13137
+ this.aiSortKeysMap = input(...(ngDevMode ? [undefined, { debugName: "aiSortKeysMap" }] : /* istanbul ignore next */ []));
13138
+ this.aiGetI18nTextByKey = input(...(ngDevMode ? [undefined, { debugName: "aiGetI18nTextByKey" }] : /* istanbul ignore next */ []));
13139
+ this.aiKeywords = input(...(ngDevMode ? [undefined, { debugName: "aiKeywords" }] : /* istanbul ignore next */ []));
13140
+ this.aiFrozenColumnCountFn = input(...(ngDevMode ? [undefined, { debugName: "aiFrozenColumnCountFn" }] : /* istanbul ignore next */ []));
13141
+ this.aiRecordHeight = input(AITableRecordHeightType.low, ...(ngDevMode ? [{ debugName: "aiRecordHeight" }] : /* istanbul ignore next */ []));
13142
+ this.aiRecordDetailConfig = input(...(ngDevMode ? [undefined, { debugName: "aiRecordDetailConfig" }] : /* istanbul ignore next */ []));
13127
13143
  this.AITableFieldType = AITableFieldType;
13128
13144
  this.AITableSelectOptionStyle = AITableSelectOptionStyle;
13129
13145
  this.isSelectedAll = computed(() => {
13130
13146
  return this.aiTable.selection().selectedRecords.size === this.aiRecords().length;
13131
- }, ...(ngDevMode ? [{ debugName: "isSelectedAll" }] : []));
13147
+ }, ...(ngDevMode ? [{ debugName: "isSelectedAll" }] : /* istanbul ignore next */ []));
13132
13148
  this.aiTableInitialized = output();
13133
13149
  this.aiAddRecord = output();
13134
13150
  this.aiRemoveRecord = output();
@@ -13149,7 +13165,7 @@ class AITableGridBase {
13149
13165
  return fieldMenusFn(this.aiTable);
13150
13166
  }
13151
13167
  return [];
13152
- }, ...(ngDevMode ? [{ debugName: "fieldMenus" }] : []));
13168
+ }, ...(ngDevMode ? [{ debugName: "fieldMenus" }] : /* istanbul ignore next */ []));
13153
13169
  this.gridData = computed(() => {
13154
13170
  this.aiTable.recordsWillHidden();
13155
13171
  if (this.aiBuildRenderDataFn && this.aiBuildRenderDataFn() && this.aiTable) {
@@ -13159,7 +13175,7 @@ class AITableGridBase {
13159
13175
  records: this.aiRecords(),
13160
13176
  fields: this.aiFields()
13161
13177
  };
13162
- }, ...(ngDevMode ? [{ debugName: "gridData" }] : []));
13178
+ }, ...(ngDevMode ? [{ debugName: "gridData" }] : /* istanbul ignore next */ []));
13163
13179
  this.ngZone = inject(NgZone);
13164
13180
  this.elementRef = inject(ElementRef);
13165
13181
  this.destroyRef = inject(DestroyRef);
@@ -13248,10 +13264,10 @@ class AITableGridBase {
13248
13264
  this.aiTableGridEventService.openEdit(cellDom);
13249
13265
  }
13250
13266
  }
13251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13252
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiMaxFields: { classPropertyName: "aiMaxFields", publicName: "aiMaxFields", isSignal: true, isRequired: false, transformFunction: null }, aiMaxRecords: { classPropertyName: "aiMaxRecords", publicName: "aiMaxRecords", isSignal: true, isRequired: false, transformFunction: null }, aiMaxSelectOptions: { classPropertyName: "aiMaxSelectOptions", publicName: "aiMaxSelectOptions", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiBuildGroupLinearRowsFn: { classPropertyName: "aiBuildGroupLinearRowsFn", publicName: "aiBuildGroupLinearRowsFn", isSignal: true, isRequired: false, transformFunction: null }, aiSortKeysMap: { classPropertyName: "aiSortKeysMap", publicName: "aiSortKeysMap", isSignal: true, isRequired: false, transformFunction: null }, aiGetI18nTextByKey: { classPropertyName: "aiGetI18nTextByKey", publicName: "aiGetI18nTextByKey", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null }, aiFrozenColumnCountFn: { classPropertyName: "aiFrozenColumnCountFn", publicName: "aiFrozenColumnCountFn", isSignal: true, isRequired: false, transformFunction: null }, aiRecordHeight: { classPropertyName: "aiRecordHeight", publicName: "aiRecordHeight", isSignal: true, isRequired: false, transformFunction: null }, aiRecordDetailConfig: { classPropertyName: "aiRecordDetailConfig", publicName: "aiRecordDetailConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiRemoveRecord: "aiRemoveRecord", aiAddField: "aiAddField", aiCopyRecords: "aiCopyRecords", aiMoveField: "aiMoveField", aiUpdateFieldValues: "aiUpdateFieldValues", aiSetField: "aiSetField", aiSetFieldWidth: "aiSetFieldWidth", aiSetFieldStatType: "aiSetFieldStatType", aiMoveRecords: "aiMoveRecords", aiClick: "aiClick", aiDbClick: "aiDbClick", aiRowGroupCollapseClick: "aiRowGroupCollapseClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13268
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableGridBase, isStandalone: true, selector: "ai-table-grid-base", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiContextMenuItems: { classPropertyName: "aiContextMenuItems", publicName: "aiContextMenuItems", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiMaxFields: { classPropertyName: "aiMaxFields", publicName: "aiMaxFields", isSignal: true, isRequired: false, transformFunction: null }, aiMaxRecords: { classPropertyName: "aiMaxRecords", publicName: "aiMaxRecords", isSignal: true, isRequired: false, transformFunction: null }, aiMaxSelectOptions: { classPropertyName: "aiMaxSelectOptions", publicName: "aiMaxSelectOptions", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: true, transformFunction: null }, aiBuildRenderDataFn: { classPropertyName: "aiBuildRenderDataFn", publicName: "aiBuildRenderDataFn", isSignal: true, isRequired: false, transformFunction: null }, aiBuildGroupLinearRowsFn: { classPropertyName: "aiBuildGroupLinearRowsFn", publicName: "aiBuildGroupLinearRowsFn", isSignal: true, isRequired: false, transformFunction: null }, aiSortKeysMap: { classPropertyName: "aiSortKeysMap", publicName: "aiSortKeysMap", isSignal: true, isRequired: false, transformFunction: null }, aiGetI18nTextByKey: { classPropertyName: "aiGetI18nTextByKey", publicName: "aiGetI18nTextByKey", isSignal: true, isRequired: false, transformFunction: null }, aiKeywords: { classPropertyName: "aiKeywords", publicName: "aiKeywords", isSignal: true, isRequired: false, transformFunction: null }, aiFrozenColumnCountFn: { classPropertyName: "aiFrozenColumnCountFn", publicName: "aiFrozenColumnCountFn", isSignal: true, isRequired: false, transformFunction: null }, aiRecordHeight: { classPropertyName: "aiRecordHeight", publicName: "aiRecordHeight", isSignal: true, isRequired: false, transformFunction: null }, aiRecordDetailConfig: { classPropertyName: "aiRecordDetailConfig", publicName: "aiRecordDetailConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiRemoveRecord: "aiRemoveRecord", aiAddField: "aiAddField", aiCopyRecords: "aiCopyRecords", aiMoveField: "aiMoveField", aiUpdateFieldValues: "aiUpdateFieldValues", aiSetField: "aiSetField", aiSetFieldWidth: "aiSetFieldWidth", aiSetFieldStatType: "aiSetFieldStatType", aiMoveRecords: "aiMoveRecords", aiClick: "aiClick", aiDbClick: "aiDbClick", aiRowGroupCollapseClick: "aiRowGroupCollapseClick" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13253
13269
  }
13254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGridBase, decorators: [{
13270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGridBase, decorators: [{
13255
13271
  type: Component,
13256
13272
  args: [{
13257
13273
  selector: 'ai-table-grid-base',
@@ -13274,10 +13290,10 @@ class AITableDomGrid extends AITableGridBase {
13274
13290
  fieldMenus: this.fieldMenus()
13275
13291
  });
13276
13292
  }
13277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableDomGrid, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13278
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableDomGrid, isStandalone: true, selector: "ai-table-dom-grid", host: { classAttribute: "ai-table-grid ai-table-dom-grid" }, providers: [AITableGridEventService, AITableGridFieldService], usesInheritance: true, ngImport: i0, template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell grid-checkbox\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll()\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field._id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field._id) }\"\n >\n <!-- [ngStyle]=\"{ width: gridData().fieldsSizeMap[field._id] + 'px' }\" -->\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n href=\"javascript:;\"\n class=\"grid-field-action\"\n thyAction\n thyIcon=\"more-vertical\"\n (click)=\"openFieldMenu($event, field, fieldAction)\"\n >\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record._id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: (record._id | isSelectRecord: aiTable.selection()) }\">\n <div class=\"grid-row-index grid-checkbox\">\n <label\n [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record._id | isSelectRecord: aiTable.selection()\"\n (ngModelChange)=\"toggleSelectRecord(record._id)\"\n ></label>\n <span [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'grid-row-no-number' : 'grid-row-number'\">\n {{ index + 1 }}\n </span>\n </div>\n @for (field of gridData().fields; track field._id) {\n <!-- [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record._id) || aiTable.selection().selectedFields.has(field._id),\n selected: aiTable.selection().selectedCells.get(record._id)?.hasOwnProperty(field._id)\n }\" -->\n <div #cell class=\"grid-cell\" [attr.type]=\"[field.type]\" [attr.fieldId]=\"[field._id]\" [attr.recordId]=\"[record._id]\">\n <!-- [ngStyle]=\"{ width: gridData().fieldsSizeMap[field._id] + 'px' }\" -->\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @let fieldValue = record.values[field._id];\n @let settings = field.settings! | selectSetting;\n @let options = settings['options'];\n @let optionStyle = settings['option_style'] || AITableSelectOptionStyle.tag;\n @let isTagStyle = optionStyle === AITableSelectOptionStyle.tag;\n\n @if (!settings['is_multiple'] && fieldValue | selectOption: options; as selectedOption) {\n @if (isTagStyle) {\n <select-option class=\"mb-1 mr-1\" [field]=\"field\" [displayOption]=\"selectedOption\"></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field\" [displayOption]=\"selectedOption\"></select-option>\n </div>\n }\n } @else {\n @let maxShowCount = 2;\n\n <div class=\"d-flex\">\n @if (fieldValue | selectOptions: options; as selectedOptions) {\n @for (option of selectedOptions; track option!._id; let i = $index) {\n @if (i + 1 <= maxShowCount) {\n @if (isTagStyle) {\n <select-option\n class=\"mb-1 mr-1\"\n [field]=\"field\"\n [displayOption]=\"option!\"\n ></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field\" [displayOption]=\"option!\"></select-option>\n </div>\n }\n }\n }\n\n @let selectedLength = selectedOptions.length || 0;\n @if (selectedOptions && maxShowCount < selectedLength) {\n @let shape = isTagStyle ? 'pill' : 'rectangle';\n @let isHidden = maxShowCount >= selectedLength;\n\n <thy-tag\n class=\"cursor-pointer\"\n [class.multi-property-value-hidden]=\"isHidden\"\n [thyShape]=\"shape\"\n >\n <span class=\"text-truncate\"> +{{ selectedLength - maxShowCount }} </span>\n </thy-tag>\n }\n }\n </div>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field._id].timestamp | thyDatePickerFormat }}\n }\n @case (AITableFieldType.updatedAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.createdAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.rate) {\n <thy-rate [ngModel]=\"record.values[field._id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n target=\"_blank\"\n [href]=\"record.values[field._id]?.url\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field._id]?.text\"\n >\n {{ record.values[field._id]?.text }}\n </a>\n }\n @case (AITableFieldType.progress) {\n <thy-progress\n class=\"w-100\"\n [thyValue]=\"record.values[field._id] || 0\"\n [thySize]=\"record.values[field._id]?.config?.size || 'md'\"\n [thyMax]=\"record.values[field._id]?.config?.max || 100\"\n [thyType]=\"record.values[field._id]?.config?.progressType || 'success'\"\n >\n <span> {{ record.values[field._id] || 0 }}{{ record.values[field._id]?.config?.suffix || '%' }} </span>\n </thy-progress>\n }\n @case (AITableFieldType.member) {\n @let settings = field.settings! | memberSetting;\n\n @if (!settings!['is_multiple']) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n } @else {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n <thy-avatar-list thyAvatarSize=\"xs\">\n @for (item of recordValues; track $index) {\n <thy-avatar [thyName]=\"item.display_name!\" [thySrc]=\"item.avatar!\"></thy-avatar>\n }\n </thy-avatar-list>\n }\n }\n @case (AITableFieldType.createdBy) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n }\n @case (AITableFieldType.updatedBy) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field._id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "ngmodule", type: ThyPopoverModule }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyValue", "currentValue", "hasHalf", "thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyValueChange", "currentValueChange", "hasHalfChange", "thyItemHoverChange"] }, { kind: "component", type: ThyProgress, selector: "thy-progress", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "ngmodule", type: ThyCheckboxModule }, { kind: "component", type: i2$2.ThyCheckbox, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "ngmodule", type: ThyAvatarModule }, { kind: "component", type: i3$1.ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError", "thySizeChange"] }, { kind: "component", type: i3$1.ThyAvatarList, selector: "thy-avatar-list", inputs: ["thyMode", "thyAvatarSize"] }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }, { kind: "pipe", type: SelectOptionPipe, name: "selectOption" }, { kind: "pipe", type: SelectOptionsPipe, name: "selectOptions" }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }, { kind: "pipe", type: IsSelectRecordPipe, name: "isSelectRecord" }, { kind: "pipe", type: UserPipe, name: "user" }, { kind: "pipe", type: SelectSettingPipe, name: "selectSetting" }, { kind: "pipe", type: MemberSettingPipe, name: "memberSetting" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13293
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableDomGrid, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13294
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableDomGrid, isStandalone: true, selector: "ai-table-dom-grid", host: { classAttribute: "ai-table-grid ai-table-dom-grid" }, providers: [AITableGridEventService, AITableGridFieldService], usesInheritance: true, ngImport: i0, template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell grid-checkbox\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll()\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field._id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field._id) }\"\n >\n <!-- [ngStyle]=\"{ width: gridData().fieldsSizeMap[field._id] + 'px' }\" -->\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n href=\"javascript:;\"\n class=\"grid-field-action\"\n thyAction\n thyIcon=\"more-vertical\"\n (click)=\"openFieldMenu($event, field, fieldAction)\"\n >\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record._id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: (record._id | isSelectRecord: aiTable.selection()) }\">\n <div class=\"grid-row-index grid-checkbox\">\n <label\n [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record._id | isSelectRecord: aiTable.selection()\"\n (ngModelChange)=\"toggleSelectRecord(record._id)\"\n ></label>\n <span [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'grid-row-no-number' : 'grid-row-number'\">\n {{ index + 1 }}\n </span>\n </div>\n @for (field of gridData().fields; track field._id) {\n <!-- [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record._id) || aiTable.selection().selectedFields.has(field._id),\n selected: aiTable.selection().selectedCells.get(record._id)?.hasOwnProperty(field._id)\n }\" -->\n <div #cell class=\"grid-cell\" [attr.type]=\"[field.type]\" [attr.fieldId]=\"[field._id]\" [attr.recordId]=\"[record._id]\">\n <!-- [ngStyle]=\"{ width: gridData().fieldsSizeMap[field._id] + 'px' }\" -->\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @let fieldValue = record.values[field._id];\n @let settings = field.settings! | selectSetting;\n @let options = settings['options'];\n @let optionStyle = settings['option_style'] || AITableSelectOptionStyle.tag;\n @let isTagStyle = optionStyle === AITableSelectOptionStyle.tag;\n\n @if (!settings['is_multiple'] && fieldValue | selectOption: options; as selectedOption) {\n @if (isTagStyle) {\n <select-option class=\"mb-1 mr-1\" [field]=\"field\" [displayOption]=\"selectedOption\"></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field\" [displayOption]=\"selectedOption\"></select-option>\n </div>\n }\n } @else {\n @let maxShowCount = 2;\n\n <div class=\"d-flex\">\n @if (fieldValue | selectOptions: options; as selectedOptions) {\n @for (option of selectedOptions; track option!._id; let i = $index) {\n @if (i + 1 <= maxShowCount) {\n @if (isTagStyle) {\n <select-option\n class=\"mb-1 mr-1\"\n [field]=\"field\"\n [displayOption]=\"option!\"\n ></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field\" [displayOption]=\"option!\"></select-option>\n </div>\n }\n }\n }\n\n @let selectedLength = selectedOptions.length || 0;\n @if (selectedOptions && maxShowCount < selectedLength) {\n @let shape = isTagStyle ? 'pill' : 'rectangle';\n @let isHidden = maxShowCount >= selectedLength;\n\n <thy-tag\n class=\"cursor-pointer\"\n [class.multi-property-value-hidden]=\"isHidden\"\n [thyShape]=\"shape\"\n >\n <span class=\"text-truncate\"> +{{ selectedLength - maxShowCount }} </span>\n </thy-tag>\n }\n }\n </div>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field._id].timestamp | thyDatePickerFormat }}\n }\n @case (AITableFieldType.updatedAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.createdAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.rate) {\n <thy-rate [ngModel]=\"record.values[field._id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n target=\"_blank\"\n [href]=\"record.values[field._id]?.url\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field._id]?.text\"\n >\n {{ record.values[field._id]?.text }}\n </a>\n }\n @case (AITableFieldType.progress) {\n <thy-progress\n class=\"w-100\"\n [thyValue]=\"record.values[field._id] || 0\"\n [thySize]=\"record.values[field._id]?.config?.size || 'md'\"\n [thyMax]=\"record.values[field._id]?.config?.max || 100\"\n [thyType]=\"record.values[field._id]?.config?.progressType || 'success'\"\n >\n <span> {{ record.values[field._id] || 0 }}{{ record.values[field._id]?.config?.suffix || '%' }} </span>\n </thy-progress>\n }\n @case (AITableFieldType.member) {\n @let settings = field.settings! | memberSetting;\n\n @if (!settings!['is_multiple']) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n } @else {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n <thy-avatar-list thyAvatarSize=\"xs\">\n @for (item of recordValues; track $index) {\n <thy-avatar [thyName]=\"item.display_name!\" [thySrc]=\"item.avatar!\"></thy-avatar>\n }\n </thy-avatar-list>\n }\n }\n @case (AITableFieldType.createdBy) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n }\n @case (AITableFieldType.updatedBy) {\n @let recordValues = record.values[field._id] | user: aiReferences()!;\n\n @if (recordValues && recordValues.length) {\n <thy-avatar\n [thyName]=\"recordValues[0].display_name!\"\n [thySrc]=\"recordValues[0].avatar!\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field._id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "ngmodule", type: ThyPopoverModule }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyValue", "currentValue", "hasHalf", "thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyValueChange", "currentValueChange", "hasHalfChange", "thyItemHoverChange"] }, { kind: "component", type: ThyProgress, selector: "thy-progress", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "ngmodule", type: ThyCheckboxModule }, { kind: "component", type: i2$2.ThyCheckbox, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "ngmodule", type: ThyAvatarModule }, { kind: "component", type: i3$1.ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError", "thySizeChange"] }, { kind: "component", type: i3$1.ThyAvatarList, selector: "thy-avatar-list", inputs: ["thyMode", "thyAvatarSize"] }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }, { kind: "pipe", type: SelectOptionPipe, name: "selectOption" }, { kind: "pipe", type: SelectOptionsPipe, name: "selectOptions" }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }, { kind: "pipe", type: IsSelectRecordPipe, name: "isSelectRecord" }, { kind: "pipe", type: UserPipe, name: "user" }, { kind: "pipe", type: SelectSettingPipe, name: "selectSetting" }, { kind: "pipe", type: MemberSettingPipe, name: "memberSetting" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13279
13295
  }
13280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableDomGrid, decorators: [{
13296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableDomGrid, decorators: [{
13281
13297
  type: Component,
13282
13298
  args: [{ selector: 'ai-table-dom-grid', changeDetection: ChangeDetectionStrategy.OnPush, host: {
13283
13299
  class: 'ai-table-grid ai-table-dom-grid'
@@ -13497,10 +13513,10 @@ class AITableScrollControllerService {
13497
13513
  this.mouseUpSubscription = null;
13498
13514
  }
13499
13515
  }
13500
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableScrollControllerService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
13501
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableScrollControllerService }); }
13516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableScrollControllerService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
13517
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableScrollControllerService }); }
13502
13518
  }
13503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableScrollControllerService, decorators: [{
13519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableScrollControllerService, decorators: [{
13504
13520
  type: Injectable
13505
13521
  }], ctorParameters: () => [{ type: i0.NgZone }] });
13506
13522
 
@@ -13589,17 +13605,17 @@ class RecordDetailService {
13589
13605
  }
13590
13606
  });
13591
13607
  }
13592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RecordDetailService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13593
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RecordDetailService }); }
13608
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RecordDetailService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13609
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RecordDetailService }); }
13594
13610
  }
13595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RecordDetailService, decorators: [{
13611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: RecordDetailService, decorators: [{
13596
13612
  type: Injectable
13597
13613
  }] });
13598
13614
 
13599
13615
  class AITableDragComponent {
13600
13616
  constructor() {
13601
- this.horizontalBar = input(...(ngDevMode ? [undefined, { debugName: "horizontalBar" }] : []));
13602
- this.verticalBar = input(...(ngDevMode ? [undefined, { debugName: "verticalBar" }] : []));
13617
+ this.horizontalBar = input(...(ngDevMode ? [undefined, { debugName: "horizontalBar" }] : /* istanbul ignore next */ []));
13618
+ this.verticalBar = input(...(ngDevMode ? [undefined, { debugName: "verticalBar" }] : /* istanbul ignore next */ []));
13603
13619
  this.dragEnd = output();
13604
13620
  this.aiTableGridEventService = inject(AITableGridEventService);
13605
13621
  this.render2 = inject(Renderer2);
@@ -14038,10 +14054,10 @@ class AITableDragComponent {
14038
14054
  }
14039
14055
  this.scrollControllerService.destroy();
14040
14056
  }
14041
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableDragComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14042
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: AITableDragComponent, isStandalone: true, selector: "ai-table-drag", inputs: { horizontalBar: { classPropertyName: "horizontalBar", publicName: "horizontalBar", isSignal: true, isRequired: false, transformFunction: null }, verticalBar: { classPropertyName: "verticalBar", publicName: "verticalBar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragEnd: "dragEnd" }, host: { classAttribute: "ai-table-drag-container" }, ngImport: i0, template: "<div class=\"rect\"></div>\n<div class=\"auxiliary-line\"></div>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14057
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableDragComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14058
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.7", type: AITableDragComponent, isStandalone: true, selector: "ai-table-drag", inputs: { horizontalBar: { classPropertyName: "horizontalBar", publicName: "horizontalBar", isSignal: true, isRequired: false, transformFunction: null }, verticalBar: { classPropertyName: "verticalBar", publicName: "verticalBar", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragEnd: "dragEnd" }, host: { classAttribute: "ai-table-drag-container" }, ngImport: i0, template: "<div class=\"rect\"></div>\n<div class=\"auxiliary-line\"></div>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14043
14059
  }
14044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableDragComponent, decorators: [{
14060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableDragComponent, decorators: [{
14045
14061
  type: Component,
14046
14062
  args: [{ selector: 'ai-table-drag', changeDetection: ChangeDetectionStrategy.OnPush, host: {
14047
14063
  class: 'ai-table-drag-container'
@@ -14067,7 +14083,7 @@ class AITableGrid extends AITableGridBase {
14067
14083
  this.recordDetailService = inject(RecordDetailService);
14068
14084
  this.isPopoverOpen = false;
14069
14085
  this.fieldHeadHeight = AI_TABLE_FIELD_HEAD_HEIGHT;
14070
- this.containerRect = signal({ width: 0, height: 0 }, ...(ngDevMode ? [{ debugName: "containerRect" }] : []));
14086
+ this.containerRect = signal({ width: 0, height: 0 }, ...(ngDevMode ? [{ debugName: "containerRect" }] : /* istanbul ignore next */ []));
14071
14087
  this.frozenColumnCount = computed(() => {
14072
14088
  const containerWidth = this.containerRect().width;
14073
14089
  const aiFrozenColumnCountFn = this.aiFrozenColumnCountFn();
@@ -14075,17 +14091,17 @@ class AITableGrid extends AITableGridBase {
14075
14091
  return aiFrozenColumnCountFn(containerWidth);
14076
14092
  }
14077
14093
  return AI_TABLE_MIN_FROZEN_COLUMN_COUNT;
14078
- }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : []));
14079
- this.showExpandIcon = computed(() => !!this.aiRecordDetailConfig()?.showExpandIcon, ...(ngDevMode ? [{ debugName: "showExpandIcon" }] : []));
14094
+ }, ...(ngDevMode ? [{ debugName: "frozenColumnCount" }] : /* istanbul ignore next */ []));
14095
+ this.showExpandIcon = computed(() => !!this.aiRecordDetailConfig()?.showExpandIcon, ...(ngDevMode ? [{ debugName: "showExpandIcon" }] : /* istanbul ignore next */ []));
14080
14096
  this.hasContainerRect = computed(() => {
14081
14097
  return this.containerRect().width > 0 && this.containerRect().height > 0;
14082
- }, ...(ngDevMode ? [{ debugName: "hasContainerRect" }] : []));
14083
- this.container = viewChild('container', ...(ngDevMode ? [{ debugName: "container" }] : []));
14084
- this.verticalBarRef = viewChild('verticalBar', ...(ngDevMode ? [{ debugName: "verticalBarRef" }] : []));
14085
- this.horizontalBarRef = viewChild('horizontalBar', ...(ngDevMode ? [{ debugName: "horizontalBarRef" }] : []));
14098
+ }, ...(ngDevMode ? [{ debugName: "hasContainerRect" }] : /* istanbul ignore next */ []));
14099
+ this.container = viewChild('container', ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
14100
+ this.verticalBarRef = viewChild('verticalBar', ...(ngDevMode ? [{ debugName: "verticalBarRef" }] : /* istanbul ignore next */ []));
14101
+ this.horizontalBarRef = viewChild('horizontalBar', ...(ngDevMode ? [{ debugName: "horizontalBarRef" }] : /* istanbul ignore next */ []));
14086
14102
  this.linearRows = computed(() => {
14087
14103
  return buildGridLinearRows(this.gridData().records, !this.aiReadonly(), this.aiTable, this.aiBuildGroupLinearRowsFn?.());
14088
- }, ...(ngDevMode ? [{ debugName: "linearRows" }] : []));
14104
+ }, ...(ngDevMode ? [{ debugName: "linearRows" }] : /* istanbul ignore next */ []));
14089
14105
  this.domToolTips = computed(() => {
14090
14106
  const scrollTop = this.aiTable.context.scrollState().scrollTop;
14091
14107
  const rowIndices = this.toolTipRowIndices();
@@ -14098,7 +14114,7 @@ class AITableGrid extends AITableGridBase {
14098
14114
  tooltip
14099
14115
  };
14100
14116
  });
14101
- }, ...(ngDevMode ? [{ debugName: "domToolTips" }] : []));
14117
+ }, ...(ngDevMode ? [{ debugName: "domToolTips" }] : /* istanbul ignore next */ []));
14102
14118
  this.toolTipRowIndices = computed(() => {
14103
14119
  const hiddenRows = this.aiTable.recordsWillHidden() || [];
14104
14120
  const moveRows = this.aiTable.recordsWillMove() || [];
@@ -14115,11 +14131,11 @@ class AITableGrid extends AITableGridBase {
14115
14131
  });
14116
14132
  });
14117
14133
  return toolTipRowIndices;
14118
- }, ...(ngDevMode ? [{ debugName: "toolTipRowIndices" }] : []));
14134
+ }, ...(ngDevMode ? [{ debugName: "toolTipRowIndices" }] : /* istanbul ignore next */ []));
14119
14135
  this.visibleColumnsIndexMap = computed(() => {
14120
14136
  const columns = AITable.getVisibleFields(this.aiTable);
14121
14137
  return new Map(columns?.map((item, index) => [item._id, index]));
14122
- }, ...(ngDevMode ? [{ debugName: "visibleColumnsIndexMap" }] : []));
14138
+ }, ...(ngDevMode ? [{ debugName: "visibleColumnsIndexMap" }] : /* istanbul ignore next */ []));
14123
14139
  this.fieldOptions = computed(() => {
14124
14140
  let allFieldOptions = getDefaultFieldOptions().map((fieldOption) => {
14125
14141
  const name = getI18nTextByKey(this.aiTable, fieldOption.name);
@@ -14135,16 +14151,16 @@ class AITableGrid extends AITableGridBase {
14135
14151
  allFieldOptions = filterFieldOptions(allFieldOptions);
14136
14152
  }
14137
14153
  return allFieldOptions;
14138
- }, ...(ngDevMode ? [{ debugName: "fieldOptions" }] : []));
14154
+ }, ...(ngDevMode ? [{ debugName: "fieldOptions" }] : /* istanbul ignore next */ []));
14139
14155
  this.fieldOptionMap = computed(() => {
14140
14156
  return new Map(this.fieldOptions().map((fieldOption) => [fieldOption.type, fieldOption]));
14141
- }, ...(ngDevMode ? [{ debugName: "fieldOptionMap" }] : []));
14157
+ }, ...(ngDevMode ? [{ debugName: "fieldOptionMap" }] : /* istanbul ignore next */ []));
14142
14158
  this.visibleRowsIndexMap = computed(() => {
14143
14159
  return new Map(this.linearRows().map((row, index) => [row._id, index]));
14144
- }, ...(ngDevMode ? [{ debugName: "visibleRowsIndexMap" }] : []));
14160
+ }, ...(ngDevMode ? [{ debugName: "visibleRowsIndexMap" }] : /* istanbul ignore next */ []));
14145
14161
  this.containerElement = computed(() => {
14146
14162
  return this.container().nativeElement;
14147
- }, ...(ngDevMode ? [{ debugName: "containerElement" }] : []));
14163
+ }, ...(ngDevMode ? [{ debugName: "containerElement" }] : /* istanbul ignore next */ []));
14148
14164
  this.trackBy = (index, item) => {
14149
14165
  return item.sort_by ?? index;
14150
14166
  };
@@ -14176,25 +14192,25 @@ class AITableGrid extends AITableGridBase {
14176
14192
  maxRecords: this.aiMaxRecords(),
14177
14193
  maxSelectOptions: this.aiMaxSelectOptions()
14178
14194
  };
14179
- }, ...(ngDevMode ? [{ debugName: "rendererConfig" }] : []));
14195
+ }, ...(ngDevMode ? [{ debugName: "rendererConfig" }] : /* istanbul ignore next */ []));
14180
14196
  this.coordinate = computed(() => {
14181
14197
  return this.rendererConfig().coordinate;
14182
- }, ...(ngDevMode ? [{ debugName: "coordinate" }] : []));
14198
+ }, ...(ngDevMode ? [{ debugName: "coordinate" }] : /* istanbul ignore next */ []));
14183
14199
  this.scrollState = computed(() => {
14184
14200
  return this.aiTable.context.scrollState();
14185
- }, ...(ngDevMode ? [{ debugName: "scrollState" }] : []));
14201
+ }, ...(ngDevMode ? [{ debugName: "scrollState" }] : /* istanbul ignore next */ []));
14186
14202
  this.scrollTotalHeight = computed(() => {
14187
14203
  return Math.max(this.coordinate().totalHeight, this.containerRect().height - this.fieldHeadHeight);
14188
- }, ...(ngDevMode ? [{ debugName: "scrollTotalHeight" }] : []));
14204
+ }, ...(ngDevMode ? [{ debugName: "scrollTotalHeight" }] : /* istanbul ignore next */ []));
14189
14205
  this.scrollbarWidth = computed(() => {
14190
14206
  return this.coordinate().totalWidth + AI_TABLE_FIELD_ADD_BUTTON_WIDTH;
14191
- }, ...(ngDevMode ? [{ debugName: "scrollbarWidth" }] : []));
14207
+ }, ...(ngDevMode ? [{ debugName: "scrollbarWidth" }] : /* istanbul ignore next */ []));
14192
14208
  this.i18nTexts = computed(() => {
14193
14209
  this.aiGetI18nTextByKey();
14194
14210
  return {
14195
14211
  rowAddFilterTooltip: getI18nTextByKey(this.aiTable, AITableGridI18nKey.rowAddFilterTooltip)
14196
14212
  };
14197
- }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : []));
14213
+ }, ...(ngDevMode ? [{ debugName: "i18nTexts" }] : /* istanbul ignore next */ []));
14198
14214
  // rowAddFilterTooltip = getI18nTextByKey(this.aiTable, AITableGridI18nKey.rowAddFilterTooltip);
14199
14215
  this.rowIndicesMap = computed(() => {
14200
14216
  const rowIndicesMap = {};
@@ -14207,7 +14223,7 @@ class AITableGrid extends AITableGridBase {
14207
14223
  }
14208
14224
  });
14209
14225
  return rowIndicesMap;
14210
- }, ...(ngDevMode ? [{ debugName: "rowIndicesMap" }] : []));
14226
+ }, ...(ngDevMode ? [{ debugName: "rowIndicesMap" }] : /* istanbul ignore next */ []));
14211
14227
  this.actions = {
14212
14228
  updateFieldValues: (data) => {
14213
14229
  this.aiUpdateFieldValues.emit(data);
@@ -15158,10 +15174,10 @@ class AITableGrid extends AITableGridBase {
15158
15174
  }
15159
15175
  });
15160
15176
  }
15161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService, RecordDetailService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "verticalBarRef", first: true, predicate: ["verticalBar"], descendants: true, isSignal: true }, { propertyName: "horizontalBarRef", first: true, predicate: ["horizontalBar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"domToolTip.tooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n [style.height.px]=\"domToolTip.height\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick", "koMouseleave", "onScrollPosition"] }, { kind: "component", type: AITableDragComponent, selector: "ai-table-drag", inputs: ["horizontalBar", "verticalBar"], outputs: ["dragEnd"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService, RecordDetailService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }, { propertyName: "verticalBarRef", first: true, predicate: ["verticalBar"], descendants: true, isSignal: true }, { propertyName: "horizontalBarRef", first: true, predicate: ["horizontalBar"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"ai-table-grid-view\">\n @if (hasContainerRect()) {\n <ai-table-renderer\n [config]=\"rendererConfig()\"\n (koMousemove)=\"stageMousemove($event)\"\n (koMousedown)=\"stageMousedown($event)\"\n (koMouseup)=\"stageMouseup($event)\"\n (koContextmenu)=\"stageContextmenu($event)\"\n (koClick)=\"stageClick($event)\"\n (koDblclick)=\"stageDblclick($event)\"\n (koMouseleave)=\"stageMouseleave($event)\"\n (koWheel)=\"stageWheel($event)\"\n >\n @if (domToolTips().length > 0) {\n <div\n class=\"ai-table-left-background-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n @for (domToolTip of domToolTips(); track trackBy(idx, domToolTip); let idx = $index) {\n <div\n class=\"ai-table-left-background\"\n [thyTooltip]=\"domToolTip.tooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\n [style.height.px]=\"domToolTip.height\"\n >\n <thy-icon class=\"text-white\" thyIconName=\"filter-line\"></thy-icon>\n </div>\n }\n </div>\n }\n <div #horizontalBar class=\"ai-table-horizontal-scroll-bar-wrapper\" [style.width.px]=\"containerRect().width\">\n <div class=\"ai-table-scroll-bar-inner\" [style.width.px]=\"scrollbarWidth()\"></div>\n </div>\n <div\n #verticalBar\n class=\"ai-table-vertical-scroll-bar-wrapper\"\n [style.height.px]=\"containerRect().height - fieldHeadHeight\"\n [style.top.px]=\"fieldHeadHeight\"\n >\n <div class=\"ai-table-scroll-bar-inner\" [style.height.px]=\"scrollTotalHeight()\"></div>\n </div>\n </ai-table-renderer>\n }\n <ai-table-drag [horizontalBar]=\"horizontalBarRef()\" [verticalBar]=\"verticalBarRef()\" (dragEnd)=\"dragEnd($event)\"></ai-table-drag>\n</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick", "koMouseleave", "onScrollPosition"] }, { kind: "component", type: AITableDragComponent, selector: "ai-table-drag", inputs: ["horizontalBar", "verticalBar"], outputs: ["dragEnd"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15163
15179
  }
15164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: AITableGrid, decorators: [{
15180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: AITableGrid, decorators: [{
15165
15181
  type: Component,
15166
15182
  args: [{ selector: 'ai-table-grid', changeDetection: ChangeDetectionStrategy.OnPush, host: {
15167
15183
  class: 'ai-table-grid'