@ai-table/grid 0.0.29 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/constants/table.d.ts +1 -1
  2. package/constants/table.d.ts.map +1 -1
  3. package/core/types/ai-table.d.ts +6 -6
  4. package/core/types/ai-table.d.ts.map +1 -1
  5. package/core/types/core.d.ts +3 -4
  6. package/core/types/core.d.ts.map +1 -1
  7. package/core/utils/queries.d.ts +2 -2
  8. package/core/utils/queries.d.ts.map +1 -1
  9. package/esm2022/components/context-menu/context-menu.component.mjs +3 -3
  10. package/esm2022/constants/table.mjs +2 -2
  11. package/esm2022/core/types/ai-table.mjs +4 -7
  12. package/esm2022/core/types/core.mjs +1 -1
  13. package/esm2022/core/utils/common.mjs +2 -2
  14. package/esm2022/core/utils/queries.mjs +1 -1
  15. package/esm2022/grid-base.component.mjs +1 -4
  16. package/esm2022/grid.component.mjs +34 -21
  17. package/esm2022/renderer/creations/create-cells.mjs +18 -44
  18. package/esm2022/services/event.service.mjs +1 -1
  19. package/esm2022/services/index.mjs +1 -2
  20. package/esm2022/services/selection.service.mjs +9 -14
  21. package/esm2022/types/grid.mjs +1 -1
  22. package/esm2022/utils/field/model/field.mjs +1 -1
  23. package/esm2022/utils/field/model/member.mjs +10 -9
  24. package/esm2022/utils/index.mjs +2 -1
  25. package/esm2022/utils/match-keywords.mjs +11 -0
  26. package/fesm2022/ai-table-grid.mjs +82 -135
  27. package/fesm2022/ai-table-grid.mjs.map +1 -1
  28. package/grid-base.component.d.ts +0 -2
  29. package/grid-base.component.d.ts.map +1 -1
  30. package/grid.component.d.ts +4 -3
  31. package/grid.component.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/services/event.service.d.ts.map +1 -1
  34. package/services/index.d.ts +0 -1
  35. package/services/index.d.ts.map +1 -1
  36. package/services/selection.service.d.ts +3 -3
  37. package/services/selection.service.d.ts.map +1 -1
  38. package/types/grid.d.ts +3 -3
  39. package/types/grid.d.ts.map +1 -1
  40. package/utils/field/model/field.d.ts +1 -1
  41. package/utils/field/model/field.d.ts.map +1 -1
  42. package/utils/field/model/member.d.ts +1 -1
  43. package/utils/field/model/member.d.ts.map +1 -1
  44. package/utils/index.d.ts +1 -0
  45. package/utils/index.d.ts.map +1 -1
  46. package/utils/match-keywords.d.ts +4 -0
  47. package/utils/match-keywords.d.ts.map +1 -0
  48. package/esm2022/services/match-cell.service.mjs +0 -45
  49. package/services/match-cell.service.d.ts +0 -13
  50. package/services/match-cell.service.d.ts.map +0 -1
@@ -42,8 +42,8 @@ import { ThyCheckboxModule } from 'ngx-tethys/checkbox';
42
42
  import { ThyProgress } from 'ngx-tethys/progress';
43
43
  import { ThyDivider } from 'ngx-tethys/divider';
44
44
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
45
- import { fromUnixTime, subDays } from 'date-fns';
46
45
  import { LRUCache } from 'lru-cache';
46
+ import { fromUnixTime, subDays } from 'date-fns';
47
47
  import Konva from 'konva';
48
48
  import { Shape } from 'konva/lib/Shape';
49
49
  import { Sprite } from 'konva/lib/shapes/Sprite';
@@ -101,7 +101,7 @@ const AITable = {
101
101
  getActiveCell(aiTable) {
102
102
  return aiTable.selection().activeCell;
103
103
  },
104
- getSelectedRecordIds(aiTable) {
104
+ getActiveRecordIds(aiTable) {
105
105
  const selectedRecords = aiTable.selection().selectedRecords;
106
106
  const selectedCells = aiTable.selection().selectedCells;
107
107
  let selectedRecordIds = [];
@@ -119,11 +119,8 @@ const AITable = {
119
119
  isCellVisible(aiTable, cell) {
120
120
  const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
121
121
  const visibleColumnIndexMap = aiTable.context.visibleColumnsMap();
122
- let isVisible = false;
123
- if (Array.isArray(cell) && !!cell.length) {
124
- const [recordId, fieldId] = cell;
125
- isVisible = visibleRowIndexMap.has(recordId) && visibleColumnIndexMap.has(fieldId);
126
- }
122
+ const [recordId, fieldId] = cell || [];
123
+ const isVisible = visibleRowIndexMap.has(recordId) && visibleColumnIndexMap.has(fieldId);
127
124
  return isVisible;
128
125
  },
129
126
  getCellIndex(aiTable, cell) {
@@ -705,7 +702,7 @@ function createAITable(records, fields) {
705
702
  selectedCells: new Set(),
706
703
  activeCell: null
707
704
  }),
708
- matchedCells: signal([]),
705
+ keywordsMatchedCells: signal(new Set()),
709
706
  recordsMap: computed(() => {
710
707
  return records().reduce((object, item) => {
711
708
  object[item._id] = item;
@@ -1632,29 +1629,25 @@ class AITableGridSelectionService {
1632
1629
  }
1633
1630
  selectCells(startCell, endCell) {
1634
1631
  const [startRecordId, startFieldId] = startCell;
1635
- if (!this.aiTable.context.visibleRowsIndexMap().has(startRecordId) ||
1636
- !this.aiTable.context.visibleColumnsMap().has(startFieldId)) {
1637
- return;
1638
- }
1632
+ const records = this.aiTable.records();
1633
+ const fields = this.aiTable.fields();
1639
1634
  const selectedCells = new Set();
1640
- if (!endCell || !endCell.length) {
1635
+ if (!endCell) {
1641
1636
  selectedCells.add(`${startRecordId}:${startFieldId}`);
1642
1637
  }
1643
1638
  else {
1644
1639
  const [endRecordId, endFieldId] = endCell;
1645
- const startRowIndex = this.aiTable.context.visibleRowsIndexMap().get(startRecordId);
1646
- const endRowIndex = this.aiTable.context.visibleRowsIndexMap().get(endRecordId);
1647
- const startColIndex = this.aiTable.context.visibleColumnsMap().get(startFieldId);
1648
- const endColIndex = this.aiTable.context.visibleColumnsMap().get(endFieldId);
1640
+ const startRowIndex = records.findIndex((record) => record._id === startRecordId);
1641
+ const endRowIndex = records.findIndex((record) => record._id === endRecordId);
1642
+ const startColIndex = fields.findIndex((field) => field._id === startFieldId);
1643
+ const endColIndex = fields.findIndex((field) => field._id === endFieldId);
1649
1644
  const minRowIndex = Math.min(startRowIndex, endRowIndex);
1650
1645
  const maxRowIndex = Math.max(startRowIndex, endRowIndex);
1651
1646
  const minColIndex = Math.min(startColIndex, endColIndex);
1652
1647
  const maxColIndex = Math.max(startColIndex, endColIndex);
1653
- const rows = this.aiTable.context.linearRows();
1654
- const fields = AITable.getVisibleFields(this.aiTable);
1655
1648
  for (let i = minRowIndex; i <= maxRowIndex; i++) {
1656
1649
  for (let j = minColIndex; j <= maxColIndex; j++) {
1657
- selectedCells.add(`${rows[i]._id}:${fields[j]._id}`);
1650
+ selectedCells.add(`${records[i]._id}:${fields[j]._id}`);
1658
1651
  }
1659
1652
  }
1660
1653
  }
@@ -1684,13 +1677,13 @@ class AITableContextMenu extends ThyDropdownAbstractMenu {
1684
1677
  }
1685
1678
  }
1686
1679
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableContextMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1687
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'ai-table-prohibit-clear-selection remove-record': !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1680
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'ai-table-prevent-clear-selection remove-record': !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1688
1681
  }
1689
1682
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableContextMenu, decorators: [{
1690
1683
  type: Component,
1691
1684
  args: [{ selector: 'ai-table-context-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
1692
1685
  class: 'context-menu'
1693
- }, imports: [ThyDropdownMenuItemDirective, ThyIcon, NgClass], template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'ai-table-prohibit-clear-selection remove-record': !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n" }]
1686
+ }, imports: [ThyDropdownMenuItemDirective, ThyIcon, NgClass], template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{ 'ai-table-prevent-clear-selection remove-record': !disabled }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name }}</span>\n </a>\n }\n}\n" }]
1694
1687
  }] });
1695
1688
 
1696
1689
  const GRID_CELL_EDITOR_MAP = {
@@ -1726,7 +1719,7 @@ const AI_TABLE_FIELD_ADD_BUTTON = 'AI_TABLE_FIELD_ADD_BUTTON'; // 添加列名
1726
1719
  const AI_TABLE_FIELD_ADD_BUTTON_WIDTH = 100; // 添加列宽度
1727
1720
  const AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE = 8; // 字段表列头图标的间距
1728
1721
  const AI_TABLE_FIELD_HEAD_MORE = 'AI_TABLE_FIELD_HEAD_MORE'; // 更多图标名称
1729
- const AI_TABLE_PROHIBIT_CLEAR_SELECTION_CLASS = '.ai-table-prohibit-clear-selection';
1722
+ const AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS = '.ai-table-prevent-clear-selection';
1730
1723
  const AI_TABLE_ICON_COMMON_SIZE = 16; // 表格图标的通用尺寸
1731
1724
  const AI_TABLE_CELL = 'AI_TABLE_CELL'; // 单元格标识
1732
1725
  // 因为 dom 的边距 12 是不包含 边框的,所以加上边框 2px 才能跟 编辑里面的内容对其;
@@ -1979,47 +1972,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1979
1972
  type: Injectable
1980
1973
  }], ctorParameters: () => [{ type: i1$1.ThyPopover }] });
1981
1974
 
1982
- class AITableGridMatchCellService {
1983
- initialize(aiTable) {
1984
- this.aiTable = aiTable;
1985
- }
1986
- findMatchedCells(keywords, references) {
1987
- if (!keywords) {
1988
- this.clearMatchedCells();
1989
- return;
1990
- }
1991
- let matchedCells = [];
1992
- this.aiTable.records().forEach((record) => {
1993
- this.aiTable.fields().forEach((field) => {
1994
- if (this.isCellMatchKeywords(this.aiTable, field, record._id, keywords, references)) {
1995
- matchedCells.push(`${record._id}:${field._id}`);
1996
- }
1997
- });
1998
- });
1999
- this.aiTable.matchedCells.set([...matchedCells]);
2000
- }
2001
- clearMatchedCells() {
2002
- this.aiTable.matchedCells.set([]);
2003
- }
2004
- isCellMatchKeywords(aiTable, field, recordId, keywords, references) {
2005
- const cellValue = AITableQueries.getFieldValue(aiTable, [recordId, field._id]);
2006
- const transformValue = transformCellValue(aiTable, field, cellValue);
2007
- const fieldMethod = ViewOperationMap[field.type];
2008
- let cellFullText = fieldMethod.cellFullText(transformValue, field, references);
2009
- try {
2010
- return keywords && cellFullText.length && cellFullText.some((item) => item.toLowerCase().includes(keywords.toLowerCase()));
2011
- }
2012
- catch (error) {
2013
- return false;
2014
- }
2015
- }
2016
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridMatchCellService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2017
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridMatchCellService }); }
2018
- }
2019
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridMatchCellService, decorators: [{
2020
- type: Injectable
2021
- }] });
2022
-
2023
1975
  function getColumnIndicesMap(fields) {
2024
1976
  const columnIndicesMap = {};
2025
1977
  fields?.forEach((field, index) => {
@@ -2715,9 +2667,9 @@ class MemberField extends Field {
2715
2667
  return super.isMeetFilter(condition, cellValue);
2716
2668
  }
2717
2669
  }
2718
- compare(cellValue1, cellValue2, field, references) {
2719
- const value1 = cellValueToSortValue$2(cellValue1, field, references);
2720
- const value2 = cellValueToSortValue$2(cellValue2, field, references);
2670
+ compare(cellValue1, cellValue2, field, references, sortKey) {
2671
+ const value1 = cellValueToSortValue$2(cellValue1, field, references, sortKey);
2672
+ const value2 = cellValueToSortValue$2(cellValue2, field, references, sortKey);
2721
2673
  return compareString(value1, value2);
2722
2674
  }
2723
2675
  cellFullText(transformValue, field, references) {
@@ -2736,20 +2688,21 @@ class MemberField extends Field {
2736
2688
  return fullText;
2737
2689
  }
2738
2690
  }
2739
- function cellValueToSortValue$2(cellValue, field, references) {
2740
- let names = [];
2691
+ function cellValueToSortValue$2(cellValue, field, references, sortKey = 'display_name') {
2692
+ let values = [];
2741
2693
  if (cellValue?.length && references) {
2742
2694
  for (let index = 0; index < cellValue.length; index++) {
2743
2695
  const userInfo = references?.members[cellValue[index]];
2744
2696
  if (!userInfo) {
2745
2697
  continue;
2746
2698
  }
2747
- if (userInfo.display_name_pinyin) {
2748
- names.push(userInfo.display_name_pinyin);
2699
+ const value = userInfo[sortKey];
2700
+ if (value) {
2701
+ values.push(value);
2749
2702
  }
2750
2703
  }
2751
2704
  }
2752
- return names && names.length ? names.join(', ') : null;
2705
+ return values && values.length ? values.join(', ') : null;
2753
2706
  }
2754
2707
 
2755
2708
  class NumberField extends Field {
@@ -2927,6 +2880,14 @@ const ViewOperationMap = {
2927
2880
  [AITableFieldType.updatedBy]: new MemberField()
2928
2881
  };
2929
2882
 
2883
+ const isCellMatchKeywords = (aiTable, field, recordId, keywords, references) => {
2884
+ const cellValue = AITableQueries.getFieldValue(aiTable, [recordId, field._id]);
2885
+ const transformValue = transformCellValue(aiTable, field, cellValue);
2886
+ const fieldMethod = ViewOperationMap[field.type];
2887
+ let cellFullText = fieldMethod.cellFullText(transformValue, field, references);
2888
+ return keywords && cellFullText.length && cellFullText.some((text) => text.toLowerCase().includes(keywords.toLowerCase()));
2889
+ };
2890
+
2930
2891
  class AITableGridEventService {
2931
2892
  constructor() {
2932
2893
  this.dblClickEvent$ = new Subject();
@@ -3181,7 +3142,6 @@ class AITableGridBase {
3181
3142
  this.aiTableGridFieldService = inject(AITableGridFieldService);
3182
3143
  this.aiTableGridEventService = inject(AITableGridEventService);
3183
3144
  this.aiTableGridSelectionService = inject(AITableGridSelectionService);
3184
- this.aiTableGridMatchCellService = inject(AITableGridMatchCellService);
3185
3145
  }
3186
3146
  ngOnInit() {
3187
3147
  this.initAITable();
@@ -3197,7 +3157,6 @@ class AITableGridBase {
3197
3157
  initService() {
3198
3158
  this.aiTableGridEventService.initialize(this.aiTable, this.aiFieldConfig()?.fieldRenderers);
3199
3159
  this.aiTableGridSelectionService.initialize(this.aiTable);
3200
- this.aiTableGridMatchCellService.initialize(this.aiTable);
3201
3160
  this.aiTableGridEventService.registerEvents(this.elementRef.nativeElement);
3202
3161
  this.aiTableGridFieldService.initAIFieldConfig(this.aiFieldConfig());
3203
3162
  this.aiTable.references.set(this.aiReferences());
@@ -5824,17 +5783,17 @@ const getCellBackground = (cell, isHover, targetName, aiTable) => {
5824
5783
  const colors = AITable.getColors();
5825
5784
  const [recordId, fieldId] = cell;
5826
5785
  let background = colors.white;
5786
+ const _isHoverRecord = isHoverRecord(isHover, targetName);
5827
5787
  const _isSelectedRecord = isSelectedRecord(recordId, aiTable);
5828
5788
  const _isSelectedField = isSelectedField(fieldId, aiTable);
5829
- const _isSiblingActiveCell = isSiblingActiveCell(cell, aiTable);
5789
+ const _isSiblingCell = isSiblingCell(cell, aiTable);
5830
5790
  const _isActiveCell = isActiveCell(cell, aiTable);
5831
5791
  const _isSelectedCell = isSelectedCell(cell, aiTable);
5832
- const _isMatchedCell = isMatchedCell(cell, aiTable);
5833
- const _isHoverRecord = isHoverRecord(isHover, targetName);
5834
- if (_isMatchedCell) {
5792
+ const _isKeywordsMatchedCell = isKeywordsMatchedCell(cell, aiTable);
5793
+ if (_isKeywordsMatchedCell) {
5835
5794
  background = colors.itemMatchBgColor;
5836
5795
  }
5837
- else if (_isSelectedRecord || _isSelectedField || _isSiblingActiveCell || (_isSelectedCell && !_isActiveCell)) {
5796
+ else if (_isSelectedRecord || _isSelectedField || _isSiblingCell || (_isSelectedCell && !_isActiveCell)) {
5838
5797
  background = colors.itemActiveBgColor;
5839
5798
  }
5840
5799
  else if (_isHoverRecord && !_isActiveCell) {
@@ -5843,54 +5802,28 @@ const getCellBackground = (cell, isHover, targetName, aiTable) => {
5843
5802
  return background;
5844
5803
  };
5845
5804
  const isActiveCell = (cell, aiTable) => {
5846
- let isActive = false;
5847
- const activeCell = AITable.getActiveCell(aiTable);
5848
- if (Array.isArray(activeCell) && !!activeCell.length) {
5849
- const [activeCellRecordId, activeCellFieldId] = activeCell;
5850
- const [recordId, fieldId] = cell;
5851
- if (recordId === activeCellRecordId && fieldId === activeCellFieldId) {
5852
- isActive = true;
5853
- }
5854
- }
5855
- return isActive;
5805
+ const [recordId, fieldId] = cell;
5806
+ const [activeRecordId, activeFieldId] = AITable.getActiveCell(aiTable) || [];
5807
+ return recordId === activeRecordId && fieldId === activeFieldId;
5856
5808
  };
5857
- const isSiblingActiveCell = (cell, aiTable) => {
5858
- let isSiblingCell = false;
5859
- const activeCell = AITable.getActiveCell(aiTable);
5860
- if (Array.isArray(activeCell) && !!activeCell.length) {
5861
- const [recordId, fieldId] = cell;
5862
- const [activeCellRecordId, activeCellFieldId] = activeCell;
5863
- const selectedCells = aiTable.selection().selectedCells;
5864
- isSiblingCell =
5865
- selectedCells.size === 1 &&
5866
- selectedCells.has(`${activeCellRecordId}:${activeCellFieldId}`) &&
5867
- recordId === activeCellRecordId &&
5868
- fieldId !== activeCellFieldId;
5869
- }
5870
- return isSiblingCell;
5809
+ const isSiblingCell = (cell, aiTable) => {
5810
+ const [recordId, fieldId] = cell;
5811
+ const [activeRecordId, activeFieldId] = AITable.getActiveCell(aiTable) || [];
5812
+ return AITable.getActiveRecordIds(aiTable).length === 1 && recordId === activeRecordId && fieldId !== activeFieldId;
5871
5813
  };
5872
- const isMatchedCell = (cell, aiTable) => {
5814
+ const isKeywordsMatchedCell = (cell, aiTable) => {
5873
5815
  const [recordId, fieldId] = cell;
5874
- let matchedCellsMap = {};
5875
- aiTable.matchedCells().forEach((key) => {
5876
- matchedCellsMap[key] = true;
5877
- });
5878
- const isMatchedCell = matchedCellsMap[`${recordId}:${fieldId}`];
5879
- return isMatchedCell;
5816
+ return aiTable.keywordsMatchedCells().has(`${recordId}:${fieldId}`);
5880
5817
  };
5881
5818
  const isSelectedCell = (cell, aiTable) => {
5882
5819
  const [recordId, fieldId] = cell;
5883
- const selectedCells = aiTable.selection().selectedCells;
5884
- const isSelectedCell = selectedCells.has(`${recordId}:${fieldId}`);
5885
- return isSelectedCell;
5820
+ return aiTable.selection().selectedCells.has(`${recordId}:${fieldId}`);
5886
5821
  };
5887
5822
  const isSelectedField = (fieldId, aiTable) => {
5888
- const selectedFields = aiTable.selection().selectedFields;
5889
- return selectedFields.has(fieldId);
5823
+ return aiTable.selection().selectedFields.has(fieldId);
5890
5824
  };
5891
5825
  const isSelectedRecord = (recordId, aiTable) => {
5892
- const selectedRecords = aiTable.selection().selectedRecords;
5893
- return selectedRecords.has(recordId);
5826
+ return aiTable.selection().selectedRecords.has(recordId);
5894
5827
  };
5895
5828
  const isHoverRecord = (isHover, targetName) => {
5896
5829
  return isHover && targetName !== AI_TABLE_FIELD_HEAD;
@@ -6841,8 +6774,8 @@ class AITableGrid extends AITableGridBase {
6841
6774
  constructor() {
6842
6775
  super();
6843
6776
  this.viewContainerRef = inject(ViewContainerRef);
6844
- this.isSelecting = false;
6845
- this.selectionStart = null;
6777
+ this.isDragSelecting = false;
6778
+ this.dragSelectionStart = null;
6846
6779
  this.fieldHeadHeight = AI_TABLE_FIELD_HEAD_HEIGHT;
6847
6780
  this.containerRect = signal({ width: 0, height: 0 });
6848
6781
  this.hasContainerRect = computed(() => {
@@ -6946,7 +6879,7 @@ class AITableGrid extends AITableGridBase {
6946
6879
  }
6947
6880
  });
6948
6881
  effect(() => {
6949
- this.aiTableGridMatchCellService.findMatchedCells(this.aiKeywords(), this.aiReferences());
6882
+ this.setKeywordsMatchedCells();
6950
6883
  }, { allowSignalWrites: true });
6951
6884
  }
6952
6885
  ngOnInit() {
@@ -6966,6 +6899,21 @@ class AITableGrid extends AITableGridBase {
6966
6899
  scrollAction: this.scrollAction
6967
6900
  });
6968
6901
  }
6902
+ setKeywordsMatchedCells() {
6903
+ const keywords = this.aiKeywords();
6904
+ let matchedCells = new Set();
6905
+ if (keywords) {
6906
+ const references = this.aiReferences();
6907
+ this.aiTable.records().forEach((record) => {
6908
+ this.aiTable.fields().forEach((field) => {
6909
+ if (isCellMatchKeywords(this.aiTable, field, record._id, keywords, references)) {
6910
+ matchedCells.add(`${record._id}:${field._id}`);
6911
+ }
6912
+ });
6913
+ });
6914
+ }
6915
+ this.aiTable.keywordsMatchedCells.set(matchedCells);
6916
+ }
6969
6917
  stageMousemove(e) {
6970
6918
  if (this.timer) {
6971
6919
  cancelAnimationFrame(this.timer);
@@ -6982,10 +6930,10 @@ class AITableGrid extends AITableGridBase {
6982
6930
  handleMouseStyle(curMousePosition.realTargetName, curMousePosition.areaType, this.containerElement());
6983
6931
  context.setPointPosition(curMousePosition);
6984
6932
  this.timer = null;
6985
- if (this.isSelecting) {
6933
+ if (this.isDragSelecting) {
6986
6934
  const { fieldId, recordId } = getDetailByTargetName(curMousePosition.realTargetName);
6987
6935
  if (fieldId && recordId) {
6988
- const startCell = this.selectionStart;
6936
+ const startCell = this.dragSelectionStart;
6989
6937
  const endCell = [recordId, fieldId];
6990
6938
  if (startCell && !!startCell.length) {
6991
6939
  this.aiTableGridSelectionService.selectCells(startCell, endCell);
@@ -7015,9 +6963,9 @@ class AITableGrid extends AITableGridBase {
7015
6963
  if (!recordId || !fieldId)
7016
6964
  return;
7017
6965
  this.aiTableGridEventService.closeCellEditor();
7018
- const selectionStart = [recordId, fieldId];
7019
- this.dragSelectionState(true, selectionStart);
7020
- this.aiTableGridSelectionService.selectCells(selectionStart);
6966
+ const dragSelectionStart = [recordId, fieldId];
6967
+ this.updateDragSelectionState(true, dragSelectionStart);
6968
+ this.aiTableGridSelectionService.selectCells(dragSelectionStart);
7021
6969
  return;
7022
6970
  case AI_TABLE_ROW_ADD_BUTTON:
7023
6971
  case AI_TABLE_FIELD_ADD_BUTTON:
@@ -7029,7 +6977,7 @@ class AITableGrid extends AITableGridBase {
7029
6977
  }
7030
6978
  }
7031
6979
  stageMouseup(e) {
7032
- this.dragSelectionState(false, null);
6980
+ this.updateDragSelectionState(false, null);
7033
6981
  }
7034
6982
  stageContextmenu(e) {
7035
6983
  const mouseEvent = e.event.evt;
@@ -7172,16 +7120,15 @@ class AITableGrid extends AITableGridBase {
7172
7120
  fromEvent(document, 'mousedown', { passive: true })
7173
7121
  .pipe(filter((e) => e.target instanceof Element &&
7174
7122
  !this.containerElement().contains(e.target) &&
7175
- !(e.target.closest(AI_TABLE_PROHIBIT_CLEAR_SELECTION_CLASS) &&
7176
- AITable.getSelectedRecordIds(this.aiTable).length > 0)), takeUntilDestroyed(this.destroyRef))
7123
+ !e.target.closest(AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS)), takeUntilDestroyed(this.destroyRef))
7177
7124
  .subscribe(() => {
7178
- this.dragSelectionState(false, null);
7125
+ this.updateDragSelectionState(false, null);
7179
7126
  this.aiTableGridSelectionService.clearSelection();
7180
7127
  });
7181
7128
  }
7182
- dragSelectionState(isSelecting, selectionStart) {
7183
- this.isSelecting = isSelecting;
7184
- this.selectionStart = selectionStart;
7129
+ updateDragSelectionState(isDragSelecting, dragSelectionStart) {
7130
+ this.isDragSelecting = isDragSelecting;
7131
+ this.dragSelectionStart = dragSelectionStart;
7185
7132
  }
7186
7133
  verticalScroll(e) {
7187
7134
  const { scrollTop } = e.target;
@@ -7254,18 +7201,18 @@ class AITableGrid extends AITableGridBase {
7254
7201
  }
7255
7202
  }
7256
7203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7257
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableGridMatchCellService], 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 >\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</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], 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 >\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</div>\n", dependencies: [{ kind: "component", type: AITableRenderer, selector: "ai-table-renderer", inputs: ["config"], outputs: ["koMousemove", "koMousedown", "koMouseup", "koContextmenu", "koWheel", "koClick", "koDblclick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7258
7205
  }
7259
7206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGrid, decorators: [{
7260
7207
  type: Component,
7261
7208
  args: [{ selector: 'ai-table-grid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
7262
7209
  class: 'ai-table-grid'
7263
- }, imports: [AITableRenderer], providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableGridMatchCellService], 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 >\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</div>\n" }]
7210
+ }, imports: [AITableRenderer], providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], 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 >\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</div>\n" }]
7264
7211
  }], ctorParameters: () => [] });
7265
7212
 
7266
7213
  /**
7267
7214
  * Generated bundle index. Do not edit.
7268
7215
  */
7269
7216
 
7270
- export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsMultiplePipe, AITableFieldPropertyEditor, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridMatchCellService, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_PROHIBIT_CLEAR_SELECTION_CLASS, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, FONT_SIZE_SM, FieldOptions, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, ViewOperationMap, WebOutlinedPath, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesMap, getDefaultFieldValue, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getHoverEditorBoxOffset, getHoverEditorSpace, getMousePosition, getPlaceHolderCellsConfigs, getTargetName, getTextWidth, getVisibleRangeInfo, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isArrayField, isEmpty, isMac, isNumberFiled, isSameFieldOption, isSystemField, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, stringInclude, textDataCache, transformCellValue, zhIntlCollator };
7217
+ export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsMultiplePipe, AITableFieldPropertyEditor, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, FONT_SIZE_SM, FieldOptions, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, ViewOperationMap, WebOutlinedPath, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesMap, getDefaultFieldValue, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getHoverEditorBoxOffset, getHoverEditorSpace, getMousePosition, getPlaceHolderCellsConfigs, getTargetName, getTextWidth, getVisibleRangeInfo, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isArrayField, isCellMatchKeywords, isEmpty, isMac, isNumberFiled, isSameFieldOption, isSystemField, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, stringInclude, textDataCache, transformCellValue, zhIntlCollator };
7271
7218
  //# sourceMappingURL=ai-table-grid.mjs.map