@ai-table/state 0.0.42 → 0.0.44

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.
@@ -2,12 +2,17 @@ import { idCreator, shortIdCreator } from '@ai-table/grid';
2
2
  import { Actions } from '../action';
3
3
  import { ViewActions } from '../action/view';
4
4
  import { PositionsActions } from '../action/position';
5
+ import { generateCopyName } from './common';
5
6
  export function createDefaultPositions(views, activeId, data, index) {
6
7
  const positions = {};
7
8
  const position = getPosition(data, activeId, index);
8
- const maxPosition = data.length ? data[data.length - 1].positions[activeId] : -1;
9
9
  views.forEach((element) => {
10
- positions[element._id] = element._id === activeId ? position : maxPosition + 1;
10
+ if (element._id === activeId) {
11
+ positions[element._id] = position;
12
+ }
13
+ else {
14
+ positions[element._id] = getMaxPosition(data, element._id) + 1;
15
+ }
11
16
  });
12
17
  return positions;
13
18
  }
@@ -19,10 +24,19 @@ export function getPosition(data, activeViewId, index) {
19
24
  position = (previousViewPosition + nextViewPosition) / 2;
20
25
  }
21
26
  else {
22
- position = index;
27
+ const maxPosition = getMaxPosition(data, activeViewId);
28
+ position = maxPosition + 1;
23
29
  }
24
30
  return position;
25
31
  }
32
+ export function getMaxPosition(data, activeViewId) {
33
+ return data.reduce((maxPosition, item) => {
34
+ if (item.positions[activeViewId] > maxPosition) {
35
+ maxPosition = item.positions[activeViewId];
36
+ }
37
+ return maxPosition;
38
+ }, 0);
39
+ }
26
40
  export function addView(aiTable, type, viewId) {
27
41
  let index = aiTable.views().length;
28
42
  const newId = idCreator();
@@ -36,10 +50,13 @@ export function addView(aiTable, type, viewId) {
36
50
  if (type === 'copy') {
37
51
  originViewId = viewId ?? aiTable.activeViewId();
38
52
  const copyView = aiTable.views().find((item) => item._id === originViewId);
53
+ const allViewNames = aiTable.views().map((item) => item.name);
54
+ const copyName = copyView.name;
55
+ const newViewName = generateCopyName(allViewNames, copyName);
39
56
  newView = {
40
57
  ...copyView,
41
58
  _id: newId,
42
- name: copyView.name + '-副本'
59
+ name: newViewName
43
60
  };
44
61
  index = aiTable.views().indexOf(copyView) + 1;
45
62
  }
@@ -70,4 +87,4 @@ export function removeView(aiTable, records, fields, activeViewId) {
70
87
  });
71
88
  ViewActions.removeView(aiTable, [activeViewId]);
72
89
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy91dGlscy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxLQUFvQixFQUNwQixRQUFnQixFQUNoQixJQUE0QyxFQUM1QyxLQUFhO0lBRWIsTUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3RCLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNuRixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQTRDLEVBQUUsWUFBb0IsRUFBRSxLQUFhO0lBQ3pHLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQWEsQ0FBQyxDQUFDO1FBQzlELFFBQVEsR0FBRyxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FBTSxDQUFDO1FBQ0osUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBb0IsRUFBRSxJQUFvQixFQUFFLE1BQWU7SUFDL0UsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUMxQixNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUNqQyxJQUFJLE9BQU8sR0FBZ0I7UUFDdkIsR0FBRyxFQUFFLEtBQUs7UUFDVixRQUFRLEVBQUUsT0FBTztRQUNqQixJQUFJLEVBQUUsT0FBTyxHQUFHLEtBQUs7S0FDeEIsQ0FBQztJQUNGLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNuRSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNsQixZQUFZLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBRSxDQUFDO1FBQzVFLE9BQU8sR0FBRztZQUNOLEdBQUcsUUFBUTtZQUNYLEdBQUcsRUFBRSxLQUFLO1lBQ1YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSztTQUM5QixDQUFDO1FBQ0YsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxPQUFPLEVBQXlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekQsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDLENBQUMsQ0FBQztJQUNGLE9BQU8sQ0FBQyxNQUFNLEVBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDdEQsT0FBTyxDQUFDLFFBQVEsQ0FDWixPQUFPLEVBQ1A7WUFDSSxTQUFTLEVBQUU7Z0JBQ1AsR0FBRyxLQUFLLENBQUMsU0FBUztnQkFDbEIsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzthQUN6QztTQUNKLEVBQ0QsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2QsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBb0IsRUFBRSxPQUEyQixFQUFFLE1BQXlCLEVBQUUsWUFBb0I7SUFDekgsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3ZCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNyQixNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQ1osT0FBTyxFQUNQO1lBQ0ksU0FBUztTQUNaLEVBQ0QsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2QsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0gsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIHNob3J0SWRDcmVhdG9yIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHsgQUlUYWJsZVZpZXcsIEFJVGFibGVWaWV3RmllbGQsIEFJVGFibGVWaWV3RmllbGRzLCBBSVRhYmxlVmlld1JlY29yZHMsIEFJVmlld1RhYmxlLCBQb3NpdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IFZpZXdBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uL3ZpZXcnO1xuaW1wb3J0IHsgUG9zaXRpb25zQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbi9wb3NpdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0UG9zaXRpb25zKFxuICAgIHZpZXdzOiBBSVRhYmxlVmlld1tdLFxuICAgIGFjdGl2ZUlkOiBzdHJpbmcsXG4gICAgZGF0YTogQUlUYWJsZVZpZXdSZWNvcmRzIHwgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgaW5kZXg6IG51bWJlclxuKSB7XG4gICAgY29uc3QgcG9zaXRpb25zOiBQb3NpdGlvbnMgPSB7fTtcbiAgICBjb25zdCBwb3NpdGlvbiA9IGdldFBvc2l0aW9uKGRhdGEsIGFjdGl2ZUlkLCBpbmRleCk7XG4gICAgY29uc3QgbWF4UG9zaXRpb24gPSBkYXRhLmxlbmd0aCA/IGRhdGFbZGF0YS5sZW5ndGggLSAxXS5wb3NpdGlvbnNbYWN0aXZlSWRdIDogLTE7XG4gICAgdmlld3MuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBwb3NpdGlvbnNbZWxlbWVudC5faWRdID0gZWxlbWVudC5faWQgPT09IGFjdGl2ZUlkID8gcG9zaXRpb24gOiBtYXhQb3NpdGlvbiArIDE7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBvc2l0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc2l0aW9uKGRhdGE6IEFJVGFibGVWaWV3UmVjb3JkcyB8IEFJVGFibGVWaWV3RmllbGRzLCBhY3RpdmVWaWV3SWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuICAgIGxldCBwb3NpdGlvbiA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgICBpZiAoaW5kZXggIT09IDAgJiYgaW5kZXggIT09IGRhdGEubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmlld1Bvc2l0aW9uID0gZGF0YVtpbmRleCAtIDFdLnBvc2l0aW9uc1thY3RpdmVWaWV3SWRdO1xuICAgICAgICBjb25zdCBuZXh0Vmlld1Bvc2l0aW9uID0gZGF0YVtpbmRleF0ucG9zaXRpb25zW2FjdGl2ZVZpZXdJZCFdO1xuICAgICAgICBwb3NpdGlvbiA9IChwcmV2aW91c1ZpZXdQb3NpdGlvbiArIG5leHRWaWV3UG9zaXRpb24pIC8gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwb3NpdGlvbiA9IGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gcG9zaXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRWaWV3KGFpVGFibGU6IEFJVmlld1RhYmxlLCB0eXBlOiAnYWRkJyB8ICdjb3B5Jywgdmlld0lkPzogc3RyaW5nKSB7XG4gICAgbGV0IGluZGV4ID0gYWlUYWJsZS52aWV3cygpLmxlbmd0aDtcbiAgICBjb25zdCBuZXdJZCA9IGlkQ3JlYXRvcigpO1xuICAgIGNvbnN0IHNob3J0SWQgPSBzaG9ydElkQ3JlYXRvcigpO1xuICAgIGxldCBuZXdWaWV3OiBBSVRhYmxlVmlldyA9IHtcbiAgICAgICAgX2lkOiBuZXdJZCxcbiAgICAgICAgc2hvcnRfaWQ6IHNob3J0SWQsXG4gICAgICAgIG5hbWU6ICfooajmoLzop4blm74gJyArIGluZGV4XG4gICAgfTtcbiAgICBsZXQgb3JpZ2luVmlld0lkID0gYWlUYWJsZS52aWV3cygpW2FpVGFibGUudmlld3MoKS5sZW5ndGggLSAxXS5faWQ7XG4gICAgaWYgKHR5cGUgPT09ICdjb3B5Jykge1xuICAgICAgICBvcmlnaW5WaWV3SWQgPSB2aWV3SWQgPz8gYWlUYWJsZS5hY3RpdmVWaWV3SWQoKTtcbiAgICAgICAgY29uc3QgY29weVZpZXcgPSBhaVRhYmxlLnZpZXdzKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IG9yaWdpblZpZXdJZCkhO1xuICAgICAgICBuZXdWaWV3ID0ge1xuICAgICAgICAgICAgLi4uY29weVZpZXcsXG4gICAgICAgICAgICBfaWQ6IG5ld0lkLFxuICAgICAgICAgICAgbmFtZTogY29weVZpZXcubmFtZSArICct5Ymv5pysJ1xuICAgICAgICB9O1xuICAgICAgICBpbmRleCA9IGFpVGFibGUudmlld3MoKS5pbmRleE9mKGNvcHlWaWV3KSArIDE7XG4gICAgfVxuICAgIFZpZXdBY3Rpb25zLmFkZFZpZXcoYWlUYWJsZSwgbmV3VmlldywgW2luZGV4XSk7XG4gICAgKGFpVGFibGUucmVjb3JkcygpIGFzIEFJVGFibGVWaWV3UmVjb3JkcykuZm9yRWFjaCgocmVjb3JkKSA9PiB7XG4gICAgICAgIFBvc2l0aW9uc0FjdGlvbnMuc2V0UmVjb3JkUG9zaXRpb25zKGFpVGFibGUsIHsgW25ld0lkXTogcmVjb3JkLnBvc2l0aW9uc1tvcmlnaW5WaWV3SWRdIH0sIFtyZWNvcmQuX2lkXSk7XG4gICAgfSk7XG4gICAgKGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMpLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIEFjdGlvbnMuc2V0RmllbGQ8QUlUYWJsZVZpZXdGaWVsZD4oXG4gICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAuLi5maWVsZC5wb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIFtuZXdJZF06IGZpZWxkLnBvc2l0aW9uc1tvcmlnaW5WaWV3SWRdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtmaWVsZC5faWRdXG4gICAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld1ZpZXc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVWaWV3KGFpVGFibGU6IEFJVmlld1RhYmxlLCByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHMsIGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZHMsIGFjdGl2ZVZpZXdJZDogc3RyaW5nKSB7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+IHtcbiAgICAgICAgUG9zaXRpb25zQWN0aW9ucy5zZXRSZWNvcmRQb3NpdGlvbnMoYWlUYWJsZSwgeyBbYWN0aXZlVmlld0lkXTogdW5kZWZpbmVkIH0sIFtyZWNvcmQuX2lkXSk7XG4gICAgfSk7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHsgLi4uZmllbGQucG9zaXRpb25zIH07XG4gICAgICAgIGRlbGV0ZSBwb3NpdGlvbnNbYWN0aXZlVmlld0lkXTtcbiAgICAgICAgQWN0aW9ucy5zZXRGaWVsZDxBSVRhYmxlVmlld0ZpZWxkPihcbiAgICAgICAgICAgIGFpVGFibGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW2ZpZWxkLl9pZF1cbiAgICAgICAgKTtcbiAgICB9KTtcbiAgICBWaWV3QWN0aW9ucy5yZW1vdmVWaWV3KGFpVGFibGUsIFthY3RpdmVWaWV3SWRdKTtcbn1cbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy91dGlscy92aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsS0FBb0IsRUFDcEIsUUFBZ0IsRUFDaEIsSUFBNEMsRUFDNUMsS0FBYTtJQUViLE1BQU0sU0FBUyxHQUFjLEVBQUUsQ0FBQztJQUNoQyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ0osU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBNEMsRUFBRSxZQUFvQixFQUFFLEtBQWE7SUFDekcsSUFB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QUFDO1FBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQ1osT0FBTyxFQUNQO1lBQ0ksU0FBUztTQUNaLEVBQ0QsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQ2QsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0gsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIHNob3J0SWRDcmVhdG9yIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHsgQUlUYWJsZVZpZXcsIEFJVGFibGVWaWV3RmllbGQsIEFJVGFibGVWaWV3RmllbGRzLCBBSVRhYmxlVmlld1JlY29yZHMsIEFJVmlld1RhYmxlLCBQb3NpdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IFZpZXdBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uL3ZpZXcnO1xuaW1wb3J0IHsgUG9zaXRpb25zQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbi9wb3NpdGlvbic7XG5pbXBvcnQgeyBnZW5lcmF0ZUNvcHlOYW1lIH0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFBvc2l0aW9ucyhcbiAgICB2aWV3czogQUlUYWJsZVZpZXdbXSxcbiAgICBhY3RpdmVJZDogc3RyaW5nLFxuICAgIGRhdGE6IEFJVGFibGVWaWV3UmVjb3JkcyB8IEFJVGFibGVWaWV3RmllbGRzLFxuICAgIGluZGV4OiBudW1iZXJcbikge1xuICAgIGNvbnN0IHBvc2l0aW9uczogUG9zaXRpb25zID0ge307XG4gICAgY29uc3QgcG9zaXRpb24gPSBnZXRQb3NpdGlvbihkYXRhLCBhY3RpdmVJZCwgaW5kZXgpO1xuICAgIHZpZXdzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuX2lkID09PSBhY3RpdmVJZCkge1xuICAgICAgICAgICAgcG9zaXRpb25zW2VsZW1lbnQuX2lkXSA9IHBvc2l0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb25zW2VsZW1lbnQuX2lkXSA9IGdldE1heFBvc2l0aW9uKGRhdGEsIGVsZW1lbnQuX2lkKSArIDE7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcG9zaXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zaXRpb24oZGF0YTogQUlUYWJsZVZpZXdSZWNvcmRzIHwgQUlUYWJsZVZpZXdGaWVsZHMsIGFjdGl2ZVZpZXdJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IHBvc2l0aW9uID0gZGF0YS5sZW5ndGggLSAxO1xuICAgIGlmIChpbmRleCAhPT0gMCAmJiBpbmRleCAhPT0gZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWaWV3UG9zaXRpb24gPSBkYXRhW2luZGV4IC0gMV0ucG9zaXRpb25zW2FjdGl2ZVZpZXdJZF07XG4gICAgICAgIGNvbnN0IG5leHRWaWV3UG9zaXRpb24gPSBkYXRhW2luZGV4XS5wb3NpdGlvbnNbYWN0aXZlVmlld0lkIV07XG4gICAgICAgIHBvc2l0aW9uID0gKHByZXZpb3VzVmlld1Bvc2l0aW9uICsgbmV4dFZpZXdQb3NpdGlvbikgLyAyO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1heFBvc2l0aW9uID0gZ2V0TWF4UG9zaXRpb24oZGF0YSwgYWN0aXZlVmlld0lkKTtcbiAgICAgICAgcG9zaXRpb24gPSBtYXhQb3NpdGlvbiArIDE7XG4gICAgfVxuICAgIHJldHVybiBwb3NpdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1heFBvc2l0aW9uKGRhdGE6IEFJVGFibGVWaWV3UmVjb3JkcyB8IEFJVGFibGVWaWV3RmllbGRzLCBhY3RpdmVWaWV3SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBkYXRhLnJlZHVjZSgobWF4UG9zaXRpb24sIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ucG9zaXRpb25zW2FjdGl2ZVZpZXdJZF0gPiBtYXhQb3NpdGlvbikge1xuICAgICAgICAgICAgbWF4UG9zaXRpb24gPSBpdGVtLnBvc2l0aW9uc1thY3RpdmVWaWV3SWRdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhQb3NpdGlvbjtcbiAgICB9LCAwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFZpZXcoYWlUYWJsZTogQUlWaWV3VGFibGUsIHR5cGU6ICdhZGQnIHwgJ2NvcHknLCB2aWV3SWQ/OiBzdHJpbmcpIHtcbiAgICBsZXQgaW5kZXggPSBhaVRhYmxlLnZpZXdzKCkubGVuZ3RoO1xuICAgIGNvbnN0IG5ld0lkID0gaWRDcmVhdG9yKCk7XG4gICAgY29uc3Qgc2hvcnRJZCA9IHNob3J0SWRDcmVhdG9yKCk7XG4gICAgbGV0IG5ld1ZpZXc6IEFJVGFibGVWaWV3ID0ge1xuICAgICAgICBfaWQ6IG5ld0lkLFxuICAgICAgICBzaG9ydF9pZDogc2hvcnRJZCxcbiAgICAgICAgbmFtZTogJ+ihqOagvOinhuWbviAnICsgaW5kZXhcbiAgICB9O1xuICAgIGxldCBvcmlnaW5WaWV3SWQgPSBhaVRhYmxlLnZpZXdzKClbYWlUYWJsZS52aWV3cygpLmxlbmd0aCAtIDFdLl9pZDtcbiAgICBpZiAodHlwZSA9PT0gJ2NvcHknKSB7XG4gICAgICAgIG9yaWdpblZpZXdJZCA9IHZpZXdJZCA/PyBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpO1xuICAgICAgICBjb25zdCBjb3B5VmlldyA9IGFpVGFibGUudmlld3MoKS5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gb3JpZ2luVmlld0lkKSE7XG4gICAgICAgIGNvbnN0IGFsbFZpZXdOYW1lcyA9IGFpVGFibGUudmlld3MoKS5tYXAoKGl0ZW0pID0+IGl0ZW0ubmFtZSk7XG4gICAgICAgIGNvbnN0IGNvcHlOYW1lID0gY29weVZpZXcubmFtZTtcbiAgICAgICAgY29uc3QgbmV3Vmlld05hbWUgPSBnZW5lcmF0ZUNvcHlOYW1lKGFsbFZpZXdOYW1lcywgY29weU5hbWUpO1xuICAgICAgICBuZXdWaWV3ID0ge1xuICAgICAgICAgICAgLi4uY29weVZpZXcsXG4gICAgICAgICAgICBfaWQ6IG5ld0lkLFxuICAgICAgICAgICAgbmFtZTogbmV3Vmlld05hbWVcbiAgICAgICAgfTtcbiAgICAgICAgaW5kZXggPSBhaVRhYmxlLnZpZXdzKCkuaW5kZXhPZihjb3B5VmlldykgKyAxO1xuICAgIH1cbiAgICBWaWV3QWN0aW9ucy5hZGRWaWV3KGFpVGFibGUsIG5ld1ZpZXcsIFtpbmRleF0pO1xuICAgIChhaVRhYmxlLnJlY29yZHMoKSBhcyBBSVRhYmxlVmlld1JlY29yZHMpLmZvckVhY2goKHJlY29yZCkgPT4ge1xuICAgICAgICBQb3NpdGlvbnNBY3Rpb25zLnNldFJlY29yZFBvc2l0aW9ucyhhaVRhYmxlLCB7IFtuZXdJZF06IHJlY29yZC5wb3NpdGlvbnNbb3JpZ2luVmlld0lkXSB9LCBbcmVjb3JkLl9pZF0pO1xuICAgIH0pO1xuICAgIChhaVRhYmxlLmZpZWxkcygpIGFzIEFJVGFibGVWaWV3RmllbGRzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBBY3Rpb25zLnNldEZpZWxkPEFJVGFibGVWaWV3RmllbGQ+KFxuICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZmllbGQucG9zaXRpb25zLFxuICAgICAgICAgICAgICAgICAgICBbbmV3SWRdOiBmaWVsZC5wb3NpdGlvbnNbb3JpZ2luVmlld0lkXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbZmllbGQuX2lkXVxuICAgICAgICApO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdWaWV3O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVmlldyhhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzLCBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCBhY3RpdmVWaWV3SWQ6IHN0cmluZykge1xuICAgIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkKSA9PiB7XG4gICAgICAgIFBvc2l0aW9uc0FjdGlvbnMuc2V0UmVjb3JkUG9zaXRpb25zKGFpVGFibGUsIHsgW2FjdGl2ZVZpZXdJZF06IHVuZGVmaW5lZCB9LCBbcmVjb3JkLl9pZF0pO1xuICAgIH0pO1xuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBwb3NpdGlvbnMgPSB7IC4uLmZpZWxkLnBvc2l0aW9ucyB9O1xuICAgICAgICBkZWxldGUgcG9zaXRpb25zW2FjdGl2ZVZpZXdJZF07XG4gICAgICAgIEFjdGlvbnMuc2V0RmllbGQ8QUlUYWJsZVZpZXdGaWVsZD4oXG4gICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtmaWVsZC5faWRdXG4gICAgICAgICk7XG4gICAgfSk7XG4gICAgVmlld0FjdGlvbnMucmVtb3ZlVmlldyhhaVRhYmxlLCBbYWN0aXZlVmlld0lkXSk7XG59XG4iXX0=
@@ -120,7 +120,7 @@ function toRecordSyncElement(record, fields) {
120
120
  element.insert(0, [systemFieldValues, customFieldValues]);
121
121
  return element;
122
122
  }
123
- function translatePositionToPath(data, position, activeViewId) {
123
+ function translatePositionToPath(data, position, activeViewId, indexOffset = 0) {
124
124
  let index = data.findIndex((value, index) => {
125
125
  if (index === 0) {
126
126
  return position < value.positions[activeViewId];
@@ -130,7 +130,7 @@ function translatePositionToPath(data, position, activeViewId) {
130
130
  if (index === -1) {
131
131
  index = data.length;
132
132
  }
133
- return [index];
133
+ return [index + indexOffset];
134
134
  }
135
135
  function getShareTypeNumberPath(path) {
136
136
  return path.filter((node) => typeof node === 'number');
@@ -330,7 +330,7 @@ function translateArrayEvent(aiTable, sharedType, event) {
330
330
  short_id: getShortIdBySystemFieldValues(systemFieldValues),
331
331
  ...getTrackableEntityBySystemFieldValues(systemFieldValues),
332
332
  positions: getPositionsBySystemFieldValues(systemFieldValues),
333
- values: getValuesByCustomFieldValues(customFieldValues, aiTable.fields())
333
+ values: getValuesByCustomFieldValues(customFieldValues, aiTable.gridData().fields)
334
334
  }
335
335
  });
336
336
  });
@@ -340,9 +340,9 @@ function translateArrayEvent(aiTable, sharedType, event) {
340
340
  const sharedRecords = sharedType.get('records');
341
341
  const sharedFields = sharedType.get('fields');
342
342
  let systemFieldOffset = 0;
343
- delta.insert?.map((item) => {
343
+ delta.insert?.map((item, index) => {
344
344
  const recordIndex = targetPath[0];
345
- const fieldIndex = offset;
345
+ const fieldIndex = offset + index;
346
346
  const record = aiTable.records()[recordIndex];
347
347
  if (isSystemFieldOperation(targetPath)) {
348
348
  if (isPositionsOperation(fieldIndex)) {
@@ -389,9 +389,9 @@ function translateArrayEvent(aiTable, sharedType, event) {
389
389
  }
390
390
  }
391
391
  if (isFieldsTranslate) {
392
- delta.insert?.map((item) => {
392
+ delta.insert?.map((item, index) => {
393
393
  const data = item.toJSON();
394
- const path = translatePositionToPath(aiTable.fields(), data['positions'][activeViewId], activeViewId);
394
+ const path = translatePositionToPath(aiTable.gridData().fields, data['positions'][activeViewId], activeViewId, index);
395
395
  actions.push({
396
396
  type: ActionName.AddField,
397
397
  path,
@@ -468,7 +468,7 @@ function translateMapEvent(aiTable, sharedType, event) {
468
468
  if (isFieldsTranslate) {
469
469
  const field = sharedType.get('fields')?.get(targetPath);
470
470
  const fieldId = field && field.get('_id');
471
- targetElement = fieldId && aiTable.fields().find((item) => item._id === field.get('_id'));
471
+ targetElement = fieldId && aiTable.gridData().fields.find((item) => item._id === field.get('_id'));
472
472
  }
473
473
  if (isViewTranslate) {
474
474
  targetElement = aiTable.views()[targetPath];
@@ -705,6 +705,15 @@ function sortByViewPosition(data, activeView) {
705
705
  }
706
706
  return data;
707
707
  }
708
+ function generateCopyName(exsitNames, name) {
709
+ let newName = `${name} 副本`;
710
+ let index = 2;
711
+ while (exsitNames.includes(newName)) {
712
+ newName = `${name} 副本 ${index}`;
713
+ index++;
714
+ }
715
+ return newName;
716
+ }
708
717
 
709
718
  function getSortRecords(aiTable, records, activeView, sortKeysMap) {
710
719
  if (!activeView?.settings || !activeView.settings.sorts?.length) {
@@ -956,7 +965,7 @@ const apply = (aiTable, records, fields, views, action) => {
956
965
  const [fieldIndex] = action.path;
957
966
  if (fieldIndex > -1) {
958
967
  const newField = action.field;
959
- newField.positions = createDefaultPositions(aiTable.views(), aiTable.activeViewId(), aiTable.fields(), action.path[0]);
968
+ newField.positions = createDefaultPositions(aiTable.views(), aiTable.activeViewId(), aiTable.gridData().fields, action.path[0]);
960
969
  fields.splice(fieldIndex, 0, newField);
961
970
  records.forEach((item) => {
962
971
  item.values[newField._id] =
@@ -1241,9 +1250,13 @@ const buildRemoveFieldItem = (getUpdatedInfo) => {
1241
1250
  function createDefaultPositions(views, activeId, data, index) {
1242
1251
  const positions = {};
1243
1252
  const position = getPosition(data, activeId, index);
1244
- const maxPosition = data.length ? data[data.length - 1].positions[activeId] : -1;
1245
1253
  views.forEach((element) => {
1246
- positions[element._id] = element._id === activeId ? position : maxPosition + 1;
1254
+ if (element._id === activeId) {
1255
+ positions[element._id] = position;
1256
+ }
1257
+ else {
1258
+ positions[element._id] = getMaxPosition(data, element._id) + 1;
1259
+ }
1247
1260
  });
1248
1261
  return positions;
1249
1262
  }
@@ -1255,10 +1268,19 @@ function getPosition(data, activeViewId, index) {
1255
1268
  position = (previousViewPosition + nextViewPosition) / 2;
1256
1269
  }
1257
1270
  else {
1258
- position = index;
1271
+ const maxPosition = getMaxPosition(data, activeViewId);
1272
+ position = maxPosition + 1;
1259
1273
  }
1260
1274
  return position;
1261
1275
  }
1276
+ function getMaxPosition(data, activeViewId) {
1277
+ return data.reduce((maxPosition, item) => {
1278
+ if (item.positions[activeViewId] > maxPosition) {
1279
+ maxPosition = item.positions[activeViewId];
1280
+ }
1281
+ return maxPosition;
1282
+ }, 0);
1283
+ }
1262
1284
  function addView(aiTable, type, viewId) {
1263
1285
  let index = aiTable.views().length;
1264
1286
  const newId = idCreator();
@@ -1272,10 +1294,13 @@ function addView(aiTable, type, viewId) {
1272
1294
  if (type === 'copy') {
1273
1295
  originViewId = viewId ?? aiTable.activeViewId();
1274
1296
  const copyView = aiTable.views().find((item) => item._id === originViewId);
1297
+ const allViewNames = aiTable.views().map((item) => item.name);
1298
+ const copyName = copyView.name;
1299
+ const newViewName = generateCopyName(allViewNames, copyName);
1275
1300
  newView = {
1276
1301
  ...copyView,
1277
1302
  _id: newId,
1278
- name: copyView.name + '-副本'
1303
+ name: newViewName
1279
1304
  };
1280
1305
  index = aiTable.views().indexOf(copyView) + 1;
1281
1306
  }
@@ -1388,7 +1413,8 @@ function getFieldPositionInView(viewId, fields, path, newPath) {
1388
1413
  }
1389
1414
  else {
1390
1415
  const lastField = fields[fields.length - 1];
1391
- newPosition = lastField.positions[viewId] + 1;
1416
+ const lastPosition = lastField.positions[viewId] + 1;
1417
+ newPosition = (targetPosition + lastPosition) / 2;
1392
1418
  }
1393
1419
  }
1394
1420
  return newPosition;
@@ -1446,12 +1472,8 @@ const CopyFieldPropertyItem = (addFieldFn) => {
1446
1472
  icon: 'copy',
1447
1473
  exec: (aiTable, field) => {
1448
1474
  const allFieldNames = (aiTable.fields() || []).map((item) => item.name);
1449
- let newFieldName = `${field().name} 副本`;
1450
- let index = 2;
1451
- while (allFieldNames.includes(newFieldName)) {
1452
- newFieldName = `${field().name} 副本 ${index}`;
1453
- index++;
1454
- }
1475
+ const copyName = field().name;
1476
+ let newFieldName = generateCopyName(allFieldNames, copyName);
1455
1477
  const fieldOptions = {
1456
1478
  originId: field()._id,
1457
1479
  isCopy: true,
@@ -1519,5 +1541,5 @@ const VIEW_ACTIONS = [ActionName.SetView, ActionName.AddView, ActionName.RemoveV
1519
1541
  * Generated bundle index. Do not edit.
1520
1542
  */
1521
1543
 
1522
- export { AITableFilterLogical, AI_TABLE_CONTENT_FIELD_NAME, ActionName, Actions, CopyCellsItem, CopyFieldPropertyItem, Direction, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, PasteCellsItem, Positions, RemovePositions, RemoveRecordsItem, SystemFieldIndex, VIEW_ACTIONS, YjsAITable, actionMappers, addFields, addRecords, addView, applyActionOps, applyEvents, applyYjsEvents, buildFieldsByView, buildRecordsByView, buildRemoveFieldItem, createDefaultPositions, createSharedType, doFilter, getCustomFieldValues, getDataBySharedType, getDefaultRecordDataByFilter, getDefaultRecordValues, getFieldPositionInView, getFilteredRecords, getIdBySystemFieldValues, getIdBySystemFieldValuesType, getPosition, getPositionsByRecordSyncElement, getPositionsBySystemFieldValues, getRecordsBySharedJson, getShareTypeNumberPath, getSharedMapValueId, getSharedMapValueIndex, getSharedRecord, getSharedRecordId, getSharedRecordIndex, getSharedTypeByData, getShortIdBySystemFieldValues, getSortFields, getSortRecords, getSystemFieldValues, getTrackableEntityBySystemFieldValues, getValuesByCustomFieldValues, isPathEqual, moveFields, removeView, setRecordPositions$1 as setRecordPositions, setRecordUpdatedInfo, sortByViewPosition, sortRecordsBySortInfo, toRecordSyncElement, toSharedType, toSyncElement, translatePositionToPath, translateYjsEvent, updateFieldValue, updateRecordsUpdatedInfo, withState };
1544
+ export { AITableFilterLogical, AI_TABLE_CONTENT_FIELD_NAME, ActionName, Actions, CopyCellsItem, CopyFieldPropertyItem, Direction, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, PasteCellsItem, Positions, RemovePositions, RemoveRecordsItem, SystemFieldIndex, VIEW_ACTIONS, YjsAITable, actionMappers, addFields, addRecords, addView, applyActionOps, applyEvents, applyYjsEvents, buildFieldsByView, buildRecordsByView, buildRemoveFieldItem, createDefaultPositions, createSharedType, doFilter, generateCopyName, getCustomFieldValues, getDataBySharedType, getDefaultRecordDataByFilter, getDefaultRecordValues, getFieldPositionInView, getFilteredRecords, getIdBySystemFieldValues, getIdBySystemFieldValuesType, getMaxPosition, getPosition, getPositionsByRecordSyncElement, getPositionsBySystemFieldValues, getRecordsBySharedJson, getShareTypeNumberPath, getSharedMapValueId, getSharedMapValueIndex, getSharedRecord, getSharedRecordId, getSharedRecordIndex, getSharedTypeByData, getShortIdBySystemFieldValues, getSortFields, getSortRecords, getSystemFieldValues, getTrackableEntityBySystemFieldValues, getValuesByCustomFieldValues, isPathEqual, moveFields, removeView, setRecordPositions$1 as setRecordPositions, setRecordUpdatedInfo, sortByViewPosition, sortRecordsBySortInfo, toRecordSyncElement, toSharedType, toSyncElement, translatePositionToPath, translateYjsEvent, updateFieldValue, updateRecordsUpdatedInfo, withState };
1523
1545
  //# sourceMappingURL=ai-table-state.mjs.map