@ai-table/grid 0.2.2 → 0.2.4

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.
@@ -48,7 +48,7 @@ import { ThyNotifyService } from 'ngx-tethys/notify';
48
48
  import { ThyInputNumber } from 'ngx-tethys/input-number';
49
49
  import { isKeyHotkey } from 'is-hotkey';
50
50
  import { LRUCache } from 'lru-cache';
51
- import { fromUnixTime, subDays, differenceInDays, differenceInMonths } from 'date-fns';
51
+ import { differenceInDays, fromUnixTime, differenceInMonths, subDays } from 'date-fns';
52
52
  import { isArray, TinyDate, helpers, hexToRgb } from 'ngx-tethys/util';
53
53
  import { DEFAULT_COLORS } from 'ngx-tethys/color-picker';
54
54
  import GraphemeSplitter from 'grapheme-splitter';
@@ -535,6 +535,7 @@ var AITableGridI18nKey;
535
535
  AITableGridI18nKey["fieldGroupBase"] = "fieldGroupBase";
536
536
  AITableGridI18nKey["fieldGroupAdvanced"] = "fieldGroupAdvanced";
537
537
  AITableGridI18nKey["rowAddFilterTooltip"] = "rowAddFilterTooltip";
538
+ AITableGridI18nKey["rowWillMoveTooltip"] = "rowWillMoveTooltip";
538
539
  AITableGridI18nKey["earliestTime"] = "earliestTime";
539
540
  AITableGridI18nKey["earliestTimeResult"] = "earliestTimeResult";
540
541
  AITableGridI18nKey["latestTime"] = "latestTime";
@@ -589,6 +590,7 @@ const AITableGridI18nText = {
589
590
  [AITableGridI18nKey.fieldGroupBase]: '基础',
590
591
  [AITableGridI18nKey.fieldGroupAdvanced]: '高级',
591
592
  [AITableGridI18nKey.rowAddFilterTooltip]: '本记录已被筛选过滤,点击该记录以外位置将被隐藏',
593
+ [AITableGridI18nKey.rowWillMoveTooltip]: '本记录不属于当前位置,点击该记录以外位置将被移动',
592
594
  [AITableGridI18nKey.earliestTime]: '最早时间',
593
595
  [AITableGridI18nKey.earliestTimeResult]: '最早时间 {{statValue}}',
594
596
  [AITableGridI18nKey.latestTime]: '最晚时间',
@@ -1453,6 +1455,7 @@ function createAITable(records, fields, gridData) {
1453
1455
  editingCell: signal({ path: null }),
1454
1456
  keywordsMatchedCells: signal(new Set()),
1455
1457
  keywordsMatchedCellIndex: signal(0),
1458
+ keywords: signal(''),
1456
1459
  recordsMap: computed(() => {
1457
1460
  return records().reduce((object, item) => {
1458
1461
  object[item._id] = item;
@@ -1466,7 +1469,7 @@ function createAITable(records, fields, gridData) {
1466
1469
  }, {});
1467
1470
  }),
1468
1471
  recordsWillHidden: signal([]),
1469
- recordsWillMove: signal([]),
1472
+ recordsWillMove: signal(new Map()),
1470
1473
  dragState: signal({
1471
1474
  type: DragType.none,
1472
1475
  sourceIds: new Set()
@@ -1553,7 +1556,7 @@ const AITableQueries = {
1553
1556
  }
1554
1557
  throw new Error(`can not find the field path: ${JSON.stringify({ ...(field || {}) })}`);
1555
1558
  },
1556
- getFieldValue(aiTable, path) {
1559
+ getFieldValue(aiTable, path, record) {
1557
1560
  if (!aiTable) {
1558
1561
  throw new Error(`aiTable does not exist`);
1559
1562
  }
@@ -1566,7 +1569,7 @@ const AITableQueries = {
1566
1569
  if (!path) {
1567
1570
  throw new Error(`path does not exist as path [${path}]`);
1568
1571
  }
1569
- const record = aiTable.recordsMap()[path[0]];
1572
+ record = record || aiTable.recordsMap()[path[0]];
1570
1573
  if (!record) {
1571
1574
  throw new Error(`can not find record at path [${path}]`);
1572
1575
  }
@@ -1601,7 +1604,7 @@ const AITableQueries = {
1601
1604
 
1602
1605
  class RendererContext {
1603
1606
  constructor(options) {
1604
- const { containerRect, rowHeadWidth, linearRows, pointPosition, scrollState, visibleColumnsIndexMap, visibleRowsIndexMap, groupStatContainerWidthMap, frozenColumnCount, references, aiFieldConfig, scrollAction, maxFields, maxRecords, maxSelectOptions, fieldOptions, fieldOptionMap, readonly } = options;
1607
+ const { containerRect, rowHeadWidth, linearRows, pointPosition, scrollState, visibleColumnsIndexMap, visibleRowsIndexMap, groupStatContainerWidthMap, frozenColumnCount, references, aiFieldConfig, scrollAction, maxFields, maxRecords, maxSelectOptions, fieldOptions, fieldOptionMap, groupCollapseDisabled, readonly } = options;
1605
1608
  this.containerRect = containerRect;
1606
1609
  this.rowHeadWidth = rowHeadWidth;
1607
1610
  this.linearRows = linearRows;
@@ -1618,6 +1621,7 @@ class RendererContext {
1618
1621
  this.maxSelectOptions = maxSelectOptions;
1619
1622
  this.fieldOptions = fieldOptions;
1620
1623
  this.fieldOptionMap = fieldOptionMap;
1624
+ this.groupCollapseDisabled = groupCollapseDisabled;
1621
1625
  this.readonly = readonly;
1622
1626
  this.groupStatContainerWidthMap = groupStatContainerWidthMap;
1623
1627
  }
@@ -1936,13 +1940,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
1936
1940
  }] } });
1937
1941
 
1938
1942
  const buildGridLinearRows = (visibleRecords, isAddingVisible = true, aiTable, aiBuildGroupLinearRowsFn) => {
1939
- let linearRows = [];
1940
1943
  if (aiBuildGroupLinearRowsFn) {
1941
1944
  const groupLinearRows = aiBuildGroupLinearRowsFn(aiTable);
1942
1945
  if (groupLinearRows) {
1943
1946
  return groupLinearRows;
1944
1947
  }
1945
1948
  }
1949
+ return buildNormalLinearRows(visibleRecords, isAddingVisible);
1950
+ };
1951
+ const buildNormalLinearRows = (visibleRecords, isAddingVisible = true) => {
1952
+ let linearRows = [];
1946
1953
  let displayRowIndex = 0;
1947
1954
  [...visibleRecords, { _id: '' }].forEach((row) => {
1948
1955
  if (row._id) {
@@ -2674,6 +2681,62 @@ function cellValueToSortValue$5(cellValue, field, references, sortKey = 'title')
2674
2681
  return values && values.length ? values.join(', ') : null;
2675
2682
  }
2676
2683
 
2684
+ function getDateFieldValues(records, options, filterNull = false) {
2685
+ const { aiTable, field } = options;
2686
+ const result = ___default.map(records, (record) => {
2687
+ const cellValue = AITableQueries.getFieldValue(aiTable, [record._id, field._id]);
2688
+ return cellValue;
2689
+ });
2690
+ if (filterNull) {
2691
+ return result.filter((value) => value !== null);
2692
+ }
2693
+ return result;
2694
+ }
2695
+ function statEarliestTime(records, options) {
2696
+ const values = getDateFieldValues(records, options, true);
2697
+ const result = ___default.minBy(values, (value) => {
2698
+ return value.timestamp;
2699
+ });
2700
+ return transformToCellText(result, options);
2701
+ }
2702
+ function statLatestTime(records, options) {
2703
+ const { field } = options;
2704
+ const values = getDateFieldValues(records, options, true);
2705
+ const result = ___default.maxBy(values, (value) => {
2706
+ return value.timestamp;
2707
+ });
2708
+ return transformToCellText(result, options);
2709
+ }
2710
+ function statDateRangeOfDays(records, options) {
2711
+ const { field } = options;
2712
+ const values = getDateFieldValues(records, options, true);
2713
+ const start = ___default.minBy(values, (value) => {
2714
+ return value.timestamp;
2715
+ });
2716
+ const end = ___default.maxBy(values, (value) => {
2717
+ return value.timestamp;
2718
+ });
2719
+ if (start && end) {
2720
+ const days = differenceInDays(fromUnixTime(end.timestamp), fromUnixTime(start.timestamp));
2721
+ return days;
2722
+ }
2723
+ return 0;
2724
+ }
2725
+ function statDateRangeOfMonths(records, options) {
2726
+ const values = getDateFieldValues(records, options, true);
2727
+ const start = ___default.minBy(values, (value) => {
2728
+ return value.timestamp;
2729
+ });
2730
+ const end = ___default.maxBy(values, (value) => {
2731
+ return value.timestamp;
2732
+ });
2733
+ if (start && end) {
2734
+ const months = differenceInMonths(fromUnixTime(end.timestamp), fromUnixTime(start.timestamp));
2735
+ return months;
2736
+ }
2737
+ return 0;
2738
+ }
2739
+
2677
2740
  const FIELD_STAT_TYPE_MAP = {
2678
2741
  [AITableStatType.EarliestTime]: {
2679
2742
  name: AITableGridI18nKey.earliestTime,
@@ -3544,6 +3607,9 @@ function getGroupLastRecordIndex(aiTable, startRowIndex) {
3544
3607
  }
3545
3608
  return linearRows.length - 1;
3546
3609
  }
3610
+ function setCollapseDisabled(aiTable, groupCollapseDisabled) {
3611
+ aiTable.context.groupCollapseDisabled.set(groupCollapseDisabled);
3612
+ }
3547
3613
 
3548
3614
  const aiTableAttributePattern = new RegExp(`${aiTableFragmentAttribute}="(.+?)"`, 'm');
3549
3615
  const decodeClipboardJsonData = (encoded) => {
@@ -9445,6 +9511,8 @@ class AITableFieldStat {
9445
9511
  this.hover.emit(this.isActive() || isHover);
9446
9512
  }
9447
9513
  clickStat(e) {
9514
+ if (e.event.evt.button !== AITableMouseDownType.Left)
9515
+ return;
9448
9516
  e.event.evt.stopPropagation();
9449
9517
  this.isActive.set(true);
9450
9518
  const { aiTable, coordinate, field, actions } = this.config();
@@ -9453,7 +9521,9 @@ class AITableFieldStat {
9453
9521
  const containerRect = coordinate.container.getBoundingClientRect();
9454
9522
  const position = {
9455
9523
  x: containerRect.x + statRect.x,
9456
- y: containerRect.y + statRect.y + statRect.height - 50
9524
+ y: containerRect.y + statRect.y + statRect.height - 50,
9525
+ width: this.containerBoxWidth(),
9526
+ height: this.containerBoxHeight() + 10
9457
9527
  };
9458
9528
  const editFieldPosition = {
9459
9529
  x: containerRect.x + fieldGroupRect.x - AI_TABLE_CELL_PADDING,
@@ -9617,6 +9687,10 @@ class AITableFrozenGroups {
9617
9687
  columnStopIndex: this.columnStopIndex()
9618
9688
  });
9619
9689
  });
9690
+ this.groupCollapseDisabled = computed(() => {
9691
+ const { aiTable } = this.config();
9692
+ return aiTable.context.groupCollapseDisabled();
9693
+ });
9620
9694
  this.groupCells = computed(() => {
9621
9695
  const groups = this.groups();
9622
9696
  const groupCells = [];
@@ -9628,7 +9702,7 @@ class AITableFrozenGroups {
9628
9702
  targetName: AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON,
9629
9703
  fieldId: fieldId,
9630
9704
  source: groupId,
9631
- mouseStyle: readonly ? 'default' : 'pointer'
9705
+ mouseStyle: readonly ? 'default' : this.groupCollapseDisabled() ? 'not-allowed' : 'pointer'
9632
9706
  }),
9633
9707
  x,
9634
9708
  y: y + (height - AI_TABLE_ICON_COMMON_SIZE) / 2,
@@ -9657,11 +9731,16 @@ class AITableFrozenGroups {
9657
9731
  return groupCells;
9658
9732
  });
9659
9733
  }
9734
+ collapseClick(e) {
9735
+ if (this.groupCollapseDisabled()) {
9736
+ e.event.cancelBubble = true;
9737
+ }
9738
+ }
9660
9739
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableFrozenGroups, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9661
9740
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableFrozenGroups, isStandalone: true, selector: "ai-table-frozen-groups", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
9662
9741
  @for (groupCell of groupCells(); track $index) {
9663
9742
  @if (groupCell.collapsedIcon) {
9664
- <ai-table-icon [config]="groupCell.collapsedIcon"></ai-table-icon>
9743
+ <ai-table-icon [config]="groupCell.collapsedIcon" (koClick)="collapseClick($event)"></ai-table-icon>
9665
9744
  }
9666
9745
  <ai-table-field-stat [config]="groupCell.groupStat!"></ai-table-field-stat>
9667
9746
  }
@@ -9674,7 +9753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
9674
9753
  template: `
9675
9754
  @for (groupCell of groupCells(); track $index) {
9676
9755
  @if (groupCell.collapsedIcon) {
9677
- <ai-table-icon [config]="groupCell.collapsedIcon"></ai-table-icon>
9756
+ <ai-table-icon [config]="groupCell.collapsedIcon" (koClick)="collapseClick($event)"></ai-table-icon>
9678
9757
  }
9679
9758
  <ai-table-field-stat [config]="groupCell.groupStat!"></ai-table-field-stat>
9680
9759
  }
@@ -10150,6 +10229,7 @@ class AITableRenderer {
10150
10229
  });
10151
10230
  this.cellsConfig = computed(() => {
10152
10231
  const { aiTable, readonly, coordinate, references, actions, maxRecords } = this.config();
10232
+ const keywordsMatchedCells = aiTable.keywordsMatchedCells();
10153
10233
  const { rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex } = this.visibleRangeInfo();
10154
10234
  return {
10155
10235
  aiTable,
@@ -10161,7 +10241,8 @@ class AITableRenderer {
10161
10241
  columnStartIndex,
10162
10242
  columnStopIndex,
10163
10243
  actions,
10164
- maxRecords
10244
+ maxRecords,
10245
+ keywordsMatchedCells
10165
10246
  };
10166
10247
  });
10167
10248
  this.fillHandleConfig = computed(() => {
@@ -11059,62 +11140,6 @@ function aiTableRectConfigToKonvaConfig(rectConfig, options) {
11059
11140
  return result;
11060
11141
  }
11061
11142
 
11062
- function getDateFieldValues(records, options, filterNull = false) {
11063
- const { aiTable, field } = options;
11064
- const result = ___default.map(records, (record) => {
11065
- const cellValue = AITableQueries.getFieldValue(aiTable, [record._id, field._id]);
11066
- return cellValue;
11067
- });
11068
- if (filterNull) {
11069
- return result.filter((value) => value !== null);
11070
- }
11071
- return result;
11072
- }
11073
- function statEarliestTime(records, options) {
11074
- const values = getDateFieldValues(records, options, true);
11075
- const result = ___default.minBy(values, (value) => {
11076
- return value.timestamp;
11077
- });
11078
- return transformToCellText(result, options);
11079
- }
11080
- function statLatestTime(records, options) {
11081
- const { field } = options;
11082
- const values = getDateFieldValues(records, options, true);
11083
- const result = ___default.maxBy(values, (value) => {
11084
- return value.timestamp;
11085
- });
11086
- return transformToCellText(result, options);
11087
- }
11088
- function statDateRangeOfDays(records, options) {
11089
- const { field } = options;
11090
- const values = getDateFieldValues(records, options, true);
11091
- const start = ___default.minBy(values, (value) => {
11092
- return value.timestamp;
11093
- });
11094
- const end = ___default.maxBy(values, (value) => {
11095
- return value.timestamp;
11096
- });
11097
- if (start && end) {
11098
- const days = differenceInDays(fromUnixTime(end.timestamp), fromUnixTime(start.timestamp));
11099
- return days;
11100
- }
11101
- return 0;
11102
- }
11103
- function statDateRangeOfMonths(records, options) {
11104
- const values = getDateFieldValues(records, options, true);
11105
- const start = ___default.minBy(values, (value) => {
11106
- return value.timestamp;
11107
- });
11108
- const end = ___default.maxBy(values, (value) => {
11109
- return value.timestamp;
11110
- });
11111
- if (start && end) {
11112
- const months = differenceInMonths(fromUnixTime(end.timestamp), fromUnixTime(start.timestamp));
11113
- return months;
11114
- }
11115
- return 0;
11116
- }
11117
-
11118
11143
  function getFillDirection(aiTable, sourceCells, mouseUpRecordId) {
11119
11144
  const { startCell: sourceStartCell, endCell: sourceEndCell } = getStartAndEndCell(sourceCells);
11120
11145
  const currentRowIndex = aiTable.context.visibleRowsIndexMap().get(mouseUpRecordId);
@@ -12181,6 +12206,7 @@ class AITableGridBase {
12181
12206
  this.aiReferences = input.required();
12182
12207
  this.aiBuildRenderDataFn = input();
12183
12208
  this.aiBuildGroupLinearRowsFn = input();
12209
+ this.aiSortKeysMap = input();
12184
12210
  this.aiGetI18nTextByKey = input();
12185
12211
  this.aiKeywords = input();
12186
12212
  this.aiFrozenColumnCountFn = input();
@@ -12234,6 +12260,9 @@ class AITableGridBase {
12234
12260
  if (this.aiGetI18nTextByKey()) {
12235
12261
  this.aiTable.getI18nTextByKey = this.aiGetI18nTextByKey();
12236
12262
  }
12263
+ if (this.aiSortKeysMap()) {
12264
+ this.aiTable.sortKeysMap = this.aiSortKeysMap();
12265
+ }
12237
12266
  this.aiPlugins()?.forEach((plugin) => {
12238
12267
  this.aiTable = plugin(this.aiTable);
12239
12268
  });
@@ -12297,7 +12326,7 @@ class AITableGridBase {
12297
12326
  }
12298
12327
  }
12299
12328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGridBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", 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 }, aiFieldsSizeMap: { classPropertyName: "aiFieldsSizeMap", publicName: "aiFieldsSizeMap", 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 }, 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 } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiFieldsSizeMap: "aiFieldsSizeMapChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", 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 }); }
12329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", 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 }, aiFieldsSizeMap: { classPropertyName: "aiFieldsSizeMap", publicName: "aiFieldsSizeMap", 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 } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", aiFieldsSizeMap: "aiFieldsSizeMapChange", aiTableInitialized: "aiTableInitialized", aiAddRecord: "aiAddRecord", aiAddField: "aiAddField", 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 }); }
12301
12330
  }
12302
12331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGridBase, decorators: [{
12303
12332
  type: Component,
@@ -12688,17 +12717,15 @@ class AITableDragComponent {
12688
12717
  top: '0',
12689
12718
  left: `${currentRectLeft}px`
12690
12719
  });
12691
- // 是否在冻结列区域内拖拽
12692
- const isFrozenColumnAreaDrag = isSourceColumnFrozen &&
12693
- currentRectLeft <
12694
- frozenColumnWidth +
12695
- rowHeadWidth +
12696
- (direction === DragDirection.left || direction === DragDirection.none
12697
- ? -AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD
12698
- : AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD);
12720
+ const currentRectLeftIsInFrozenArea = currentRectLeft <
12721
+ frozenColumnWidth +
12722
+ rowHeadWidth +
12723
+ (direction === DragDirection.left || direction === DragDirection.none
12724
+ ? -AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD
12725
+ : AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD);
12699
12726
  // 计算目标列和辅助线
12700
12727
  const updateTargetAndLine = (rectLeft, scrollPosition) => {
12701
- if (isFrozenColumnAreaDrag) {
12728
+ if (currentRectLeftIsInFrozenArea) {
12702
12729
  // 冻结列区域内滚动,清空滚动位置
12703
12730
  scrollPosition.x = 0;
12704
12731
  }
@@ -12718,10 +12745,9 @@ class AITableDragComponent {
12718
12745
  isLastColumn) {
12719
12746
  let lineLeft = targetColumnStartX - scrollPosition.x;
12720
12747
  const lineForFrozenX = lineLeft - frozenColumnWidth - rowHeadWidth;
12721
- const rectDistanceFrozenX = rectLeft - frozenColumnWidth - rowHeadWidth;
12722
12748
  if (lineForFrozenX < 0) {
12723
- if (Math.abs(rectDistanceFrozenX) < dragCenter || (isSourceColumnFrozen && !isFrozenColumnAreaDrag)) {
12724
- // 滚动中保持上一个位置
12749
+ if (!currentRectLeftIsInFrozenArea && lineLeft < frozenColumnWidth + rowHeadWidth) {
12750
+ // 非冻结区拖拽需要控制辅助线不要显示到冻结区,需要保持在上个位置
12725
12751
  const nextColumnStartX = coordinate.getColumnOffset(targetColumnIndex + 1);
12726
12752
  this.setAuxiliaryLineStyles({
12727
12753
  left: `${nextColumnStartX - scrollPosition.x}px`
@@ -12758,7 +12784,7 @@ class AITableDragComponent {
12758
12784
  }
12759
12785
  };
12760
12786
  updateTargetAndLine(currentRectLeft, newScrollPosition);
12761
- if (isFrozenColumnAreaDrag) {
12787
+ if (currentRectLeftIsInFrozenArea) {
12762
12788
  // 冻结列区域内拖拽取消滚动
12763
12789
  this.scrollControllerService.stopAutoScroll();
12764
12790
  return;
@@ -13042,18 +13068,29 @@ class AITableGrid extends AITableGridBase {
13042
13068
  this.domToolTips = computed(() => {
13043
13069
  const scrollTop = this.aiTable.context.scrollState().scrollTop;
13044
13070
  const rowIndices = this.toolTipRowIndices();
13045
- return rowIndices.map((rowIndex) => {
13071
+ return rowIndices.map(({ rowIndex, tooltip }) => {
13046
13072
  const offset = this.coordinate().getRowOffset(rowIndex);
13047
13073
  return {
13048
13074
  top: offset - scrollTop - AI_TABLE_FIELD_HEAD_HEIGHT,
13049
- left: 0
13075
+ left: 0,
13076
+ tooltip
13050
13077
  };
13051
13078
  });
13052
13079
  });
13053
13080
  this.toolTipRowIndices = computed(() => {
13054
13081
  const hiddenRows = this.aiTable.recordsWillHidden() || [];
13082
+ const moveRows = this.aiTable.recordsWillMove() || [];
13055
13083
  const toolTipRowIndices = hiddenRows.map((rowId) => {
13056
- return this.aiTable.context?.visibleRowsIndexMap().get(rowId) || 0;
13084
+ return {
13085
+ tooltip: getI18nTextByKey(this.aiTable, AITableGridI18nKey.rowAddFilterTooltip),
13086
+ rowIndex: this.aiTable.context?.visibleRowsIndexMap().get(rowId) || 0
13087
+ };
13088
+ });
13089
+ moveRows.forEach((record) => {
13090
+ toolTipRowIndices.push({
13091
+ tooltip: getI18nTextByKey(this.aiTable, AITableGridI18nKey.rowWillMoveTooltip),
13092
+ rowIndex: this.aiTable.context?.visibleRowsIndexMap().get(record._id) || 0
13093
+ });
13057
13094
  });
13058
13095
  return toolTipRowIndices;
13059
13096
  });
@@ -13220,10 +13257,13 @@ class AITableGrid extends AITableGridBase {
13220
13257
  // 当新增行选中的cell,编辑后,activeCell 不在新增的行中时,根据筛选 过滤行数据,触发重新渲染
13221
13258
  const activeCellPath = this.aiTable.selection().activeCell;
13222
13259
  untracked(() => {
13223
- if (!activeCellPath || !this.aiTable.recordsWillHidden().includes(activeCellPath[0])) {
13224
- if (this.aiTable.recordsWillHidden().length > 0) {
13225
- this.aiTable.recordsWillHidden.set([]);
13226
- }
13260
+ if ((!activeCellPath || !this.aiTable.recordsWillHidden().includes(activeCellPath[0])) &&
13261
+ this.aiTable.recordsWillHidden().length > 0) {
13262
+ this.aiTable.recordsWillHidden.set([]);
13263
+ }
13264
+ if ((!activeCellPath || !this.aiTable.recordsWillMove().has(activeCellPath[0])) &&
13265
+ this.aiTable.recordsWillMove().size > 0) {
13266
+ this.aiTable.recordsWillMove.set(new Map());
13227
13267
  }
13228
13268
  });
13229
13269
  });
@@ -13279,6 +13319,7 @@ class AITableGrid extends AITableGridBase {
13279
13319
  maxSelectOptions: this.aiMaxSelectOptions,
13280
13320
  fieldOptions: this.fieldOptions,
13281
13321
  fieldOptionMap: this.fieldOptionMap,
13322
+ groupCollapseDisabled: signal(false),
13282
13323
  readonly: this.aiReadonly
13283
13324
  });
13284
13325
  }
@@ -13299,8 +13340,9 @@ class AITableGrid extends AITableGridBase {
13299
13340
  }
13300
13341
  }
13301
13342
  setKeywordsMatchedCells() {
13302
- const keywords = this.aiKeywords();
13343
+ const keywords = this.aiKeywords() || '';
13303
13344
  let matchedCells = new Set();
13345
+ this.aiTable.keywords.set(keywords);
13304
13346
  if (keywords) {
13305
13347
  const references = this.aiReferences();
13306
13348
  this.aiTable.gridData().records.forEach((record) => {
@@ -14041,18 +14083,18 @@ class AITableGrid extends AITableGridBase {
14041
14083
  });
14042
14084
  }
14043
14085
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14044
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService], 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]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\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 }); }
14086
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService], 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 class=\"ai-table-left-background\" [thyTooltip]=\"domToolTip.tooltip\" [style.--scroll-top.px]=\"domToolTip.top\">\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 }); }
14045
14087
  }
14046
14088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AITableGrid, decorators: [{
14047
14089
  type: Component,
14048
14090
  args: [{ selector: 'ai-table-grid', changeDetection: ChangeDetectionStrategy.OnPush, host: {
14049
14091
  class: 'ai-table-grid'
14050
- }, imports: [AITableRenderer, AITableDragComponent, ThyTooltipDirective, ThyIcon], providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService], 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]=\"i18nTexts().rowAddFilterTooltip\"\n [style.--scroll-top.px]=\"domToolTip.top\"\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" }]
14092
+ }, imports: [AITableRenderer, AITableDragComponent, ThyTooltipDirective, ThyIcon], providers: [AITableGridEventService, AITableGridFieldService, AITableScrollControllerService], 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 class=\"ai-table-left-background\" [thyTooltip]=\"domToolTip.tooltip\" [style.--scroll-top.px]=\"domToolTip.top\">\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" }]
14051
14093
  }], ctorParameters: () => [] });
14052
14094
 
14053
14095
  /**
14054
14096
  * Generated bundle index. Do not edit.
14055
14097
  */
14056
14098
 
14057
- export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellCheckbox, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCellText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenGroups, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, AITableGroups, AITableHoverRowHeads, AITableIcon, AITableMemberType, AITableMouseDownType, AITableOtherRows, AITablePlaceholderCells, AITableQueries, AITableRenderer, AITableRowType, AITableScrollableGroup, AITableSelectAllState, AITableShadow, AITableTextComponent, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD, AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD, AI_TABLE_AUTO_SCROLL_RIGHT_THRESHOLD, AI_TABLE_AUTO_SCROLL_TOP_THRESHOLD, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EDIT, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_LINE_BORDER, 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_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FIELD_STAT_BG, AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT, AI_TABLE_FIELD_STAT_INNER_HEIGHT, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_FILL_HANDLE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_GROUP_MAX_LEVEL, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_INDEX_FIELD_TEXT, 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_OPTION_MULTI_ITEM_FONT_SIZE, 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_POINTER_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_WIDTH, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_WIDTH, AI_TABLE_RATE_MAX, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_DRAG, AI_TABLE_ROW_DRAG_ICON_WIDTH, AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON, AI_TABLE_ROW_GROUP_OFFSET, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEAD_WIDTH_AND_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_SCROLL_BAR_SIZE, AI_TABLE_SHADOW_DEFAULT_WIDTH, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AI_TABLE_TEXT_LINE_HEIGHT, AbstractEditCellEditor, AddOutlinedPath, AngleDownPath, AngleRightPath, AttachmentField, AttachmentPath, CellDrawer, Check, CheckboxMenuSort, Colors, ColumnCalendarFilledPath, ColumnCheckboxFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnRichTextFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, CoverCellBase, 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, DateField, DepartmentOutlinedPath, Drawer, EditPath, FONT_SIZE_SM, FieldModelMap, GROUP_STAT_DEFAULT_FONT_SIZE, IconPathMap, IsSelectRecordPipe, KO_CONTAINER_TOKEN, KoComponent, KoContainer, KoShape, KoShapeTypes, KoStage, LinkCellEditorComponent, LinkField, MIN_COLUMN_WIDTH, MemberField, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, NumberField, ProgressField, RateField, RendererContext, RichTextField, RowDragPath, RowHeight, SelectCellEditorComponent, SelectField, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextField, TextMeasure, Unchecked, UserPipe, WebOutlinedPath, aiTableFragmentAttribute, aiTableImageConfigToKonvaConfig, aiTableRectConfigToKonvaConfig, aiTableTextConfigToKonvaConfig, applyNodeProps, buildClipboardData, buildGridData, buildGridLinearRows, castToString, cellDrawer, clearCells, clearCoverCell, clearSelectedCells, clearSelection, clearSelectionFields, clearSelectionRecords, closeEditingCell, closeExpendCell, compareNumber, compareOption, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, createListener, dragFillHighlightArea, drawer, expandCell, extractLinkUrl, extractText, generateNewName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getCoverCell, getDateFieldValues, getDefaultFieldOptions, getDefaultI18nTextByKey, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getFieldOptionMap, getFieldOptions, getFieldValue, getFileThumbnailSvgString, getFillDirection, getGroupLastRecordIndex, getHoverEditorBoxOffset, getHoverEditorSpace, getI18nTextByKey, getMousePosition, getName, getOptionsByFieldAndRecords, getPlaceHolderCellsConfigs, getStartAndEndCell, getSystemFieldValue, getTargetName, getTextWidth, getVisibleRangeInfo, graphemeSplitter, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isActiveCell, isCellMatchKeywords, isClipboardReadSupported, isClipboardReadTextSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isEmptyOrNot, isMac, isMeetFilter, isSameFieldOption, isSelectedField, isSystemField, isVirtualKey, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, performFill, processPastedValueForSelect, readFromClipboard, scrollMax, scrollToMatchedCell, selectCells, selectField, setActiveCell, setEditingCell, setExpandCellInfo, setMouseStyle, setSelection, shortIdCreator, shortIdsCreator, statDateRangeOfDays, statDateRangeOfMonths, statEarliestTime, statLatestTime, stringInclude, textDataCache, toAttachmentFieldValue, toDateFieldValue, toLinkFieldValue, toMemberFieldValue, toNumberFieldValue, toProgressFieldValue, toRateFieldValue, toRichTextFieldValue, toSelectFieldValue, toTextFieldValue, toggleSelectAllRecords, toggleSelectRecord, transformToCellText, updatePicture, writeToAITable, writeToClipboard, zhIntlCollator };
14099
+ export { AITable, AITableActionIcon, AITableAddField, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableBackground, AITableCellAttachment, AITableCellCheckbox, AITableCellLink, AITableCellProgress, AITableCellRate, AITableCellRichText, AITableCellText, AITableCells, AITableCheckType, AITableColumnHeads, AITableContextMenu, AITableDomGrid, AITableFieldHead, AITableFieldIcon, AITableFieldIsSameOptionPipe, AITableFieldSetting, AITableFrozenCells, AITableFrozenColumnHeads, AITableFrozenGroups, AITableFrozenPlaceholderCells, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridI18nKey, AITableGridI18nText, AITableGroups, AITableHoverRowHeads, AITableIcon, AITableMemberType, AITableMouseDownType, AITableOtherRows, AITablePlaceholderCells, AITableQueries, AITableRenderer, AITableRowType, AITableScrollableGroup, AITableSelectAllState, AITableShadow, AITableTextComponent, AI_TABLE_ACTION_COMMON_RADIUS, AI_TABLE_ACTION_COMMON_RIGHT_PADDING, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_AUTO_SCROLL_BOTTOM_THRESHOLD, AI_TABLE_AUTO_SCROLL_LEFT_THRESHOLD, AI_TABLE_AUTO_SCROLL_RIGHT_THRESHOLD, AI_TABLE_AUTO_SCROLL_TOP_THRESHOLD, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_ATTACHMENT_ADD, AI_TABLE_CELL_ATTACHMENT_FILE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EDIT, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_FIELD_ITEM_HEIGHT, AI_TABLE_CELL_LINE_BORDER, 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_OPACITY_LINE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_FIELD_ITEM_MARGIN_RIGHT, AI_TABLE_FIELD_MAX_WIDTH, AI_TABLE_FIELD_MIDDLE_WIDTH, AI_TABLE_FIELD_MINI_WIDTH, AI_TABLE_FIELD_MIN_WIDTH, AI_TABLE_FIELD_STAT_BG, AI_TABLE_FIELD_STAT_CONTAINER_HEIGHT, AI_TABLE_FIELD_STAT_INNER_HEIGHT, AI_TABLE_FILE_ICON_ITEM_HEIGHT, AI_TABLE_FILE_ICON_SIZE, AI_TABLE_FILL_HANDLE, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_GROUP_MAX_LEVEL, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_INDEX_FIELD_TEXT, 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_OPTION_MULTI_ITEM_FONT_SIZE, 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_POINTER_HEIGHT, AI_TABLE_PROGRESS_BAR_POINTER_WIDTH, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_WIDTH, AI_TABLE_RATE_MAX, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_DRAG, AI_TABLE_ROW_DRAG_ICON_WIDTH, AI_TABLE_ROW_GROUP_COLLAPSE_BUTTON, AI_TABLE_ROW_GROUP_OFFSET, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEAD_WIDTH_AND_DRAG_ICON_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_SCROLL_BAR_SIZE, AI_TABLE_SHADOW_DEFAULT_WIDTH, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AI_TABLE_TEXT_LINE_HEIGHT, AbstractEditCellEditor, AddOutlinedPath, AngleDownPath, AngleRightPath, AttachmentField, AttachmentPath, CellDrawer, Check, CheckboxMenuSort, Colors, ColumnCalendarFilledPath, ColumnCheckboxFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnRichTextFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, CoverCellBase, 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, DateField, DepartmentOutlinedPath, Drawer, EditPath, FONT_SIZE_SM, FieldModelMap, GROUP_STAT_DEFAULT_FONT_SIZE, IconPathMap, IsSelectRecordPipe, KO_CONTAINER_TOKEN, KoComponent, KoContainer, KoShape, KoShapeTypes, KoStage, LinkCellEditorComponent, LinkField, MIN_COLUMN_WIDTH, MemberField, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, NumberField, ProgressField, RateField, RendererContext, RichTextField, RowDragPath, RowHeight, SelectCellEditorComponent, SelectField, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextField, TextMeasure, Unchecked, UserPipe, WebOutlinedPath, aiTableFragmentAttribute, aiTableImageConfigToKonvaConfig, aiTableRectConfigToKonvaConfig, aiTableTextConfigToKonvaConfig, applyNodeProps, buildClipboardData, buildGridData, buildGridLinearRows, buildNormalLinearRows, castToString, cellDrawer, clearCells, clearCoverCell, clearSelectedCells, clearSelection, clearSelectionFields, clearSelectionRecords, closeEditingCell, closeExpendCell, compareNumber, compareOption, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, createListener, dragFillHighlightArea, drawer, expandCell, extractLinkUrl, extractText, generateNewName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getCoverCell, getDateFieldValues, getDefaultFieldOptions, getDefaultI18nTextByKey, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getFieldOptionMap, getFieldOptions, getFieldValue, getFileThumbnailSvgString, getFillDirection, getGroupLastRecordIndex, getHoverEditorBoxOffset, getHoverEditorSpace, getI18nTextByKey, getMousePosition, getName, getOptionsByFieldAndRecords, getPlaceHolderCellsConfigs, getStartAndEndCell, getSystemFieldValue, getTargetName, getTextWidth, getVisibleRangeInfo, graphemeSplitter, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isActiveCell, isCellMatchKeywords, isClipboardReadSupported, isClipboardReadTextSupported, isClipboardWriteSupported, isClipboardWriteTextSupported, isEmptyOrNot, isMac, isMeetFilter, isSameFieldOption, isSelectedField, isSystemField, isVirtualKey, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, performFill, processPastedValueForSelect, readFromClipboard, scrollMax, scrollToMatchedCell, selectCells, selectField, setActiveCell, setCollapseDisabled, setEditingCell, setExpandCellInfo, setMouseStyle, setSelection, shortIdCreator, shortIdsCreator, statDateRangeOfDays, statDateRangeOfMonths, statEarliestTime, statLatestTime, stringInclude, textDataCache, toAttachmentFieldValue, toDateFieldValue, toLinkFieldValue, toMemberFieldValue, toNumberFieldValue, toProgressFieldValue, toRateFieldValue, toRichTextFieldValue, toSelectFieldValue, toTextFieldValue, toggleSelectAllRecords, toggleSelectRecord, transformToCellText, updatePicture, writeToAITable, writeToClipboard, zhIntlCollator };
14058
14100
  //# sourceMappingURL=ai-table-grid.mjs.map