@ai-table/state 0.0.27 → 0.0.29

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.
Files changed (46) hide show
  1. package/constants/context-menu-item.d.ts.map +1 -1
  2. package/esm2022/constants/context-menu-item.mjs +3 -7
  3. package/esm2022/types/view.mjs +1 -18
  4. package/esm2022/utils/common.mjs +1 -11
  5. package/esm2022/utils/index.mjs +1 -2
  6. package/esm2022/utils/record/filter.mjs +2 -4
  7. package/esm2022/utils/record/sort.mjs +2 -3
  8. package/fesm2022/ai-table-state.mjs +6 -416
  9. package/fesm2022/ai-table-state.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/types/view.d.ts +1 -22
  12. package/types/view.d.ts.map +1 -1
  13. package/utils/common.d.ts +0 -1
  14. package/utils/common.d.ts.map +1 -1
  15. package/utils/index.d.ts +0 -1
  16. package/utils/index.d.ts.map +1 -1
  17. package/utils/record/filter.d.ts +2 -2
  18. package/utils/record/filter.d.ts.map +1 -1
  19. package/utils/record/sort.d.ts.map +1 -1
  20. package/esm2022/utils/field/model/date.mjs +0 -74
  21. package/esm2022/utils/field/model/field.mjs +0 -63
  22. package/esm2022/utils/field/model/index.mjs +0 -24
  23. package/esm2022/utils/field/model/link.mjs +0 -37
  24. package/esm2022/utils/field/model/member.mjs +0 -48
  25. package/esm2022/utils/field/model/number.mjs +0 -46
  26. package/esm2022/utils/field/model/rate.mjs +0 -40
  27. package/esm2022/utils/field/model/select.mjs +0 -55
  28. package/esm2022/utils/field/model/text.mjs +0 -27
  29. package/utils/field/model/date.d.ts +0 -11
  30. package/utils/field/model/date.d.ts.map +0 -1
  31. package/utils/field/model/field.d.ts +0 -12
  32. package/utils/field/model/field.d.ts.map +0 -1
  33. package/utils/field/model/index.d.ts +0 -4
  34. package/utils/field/model/index.d.ts.map +0 -1
  35. package/utils/field/model/link.d.ts +0 -10
  36. package/utils/field/model/link.d.ts.map +0 -1
  37. package/utils/field/model/member.d.ts +0 -8
  38. package/utils/field/model/member.d.ts.map +0 -1
  39. package/utils/field/model/number.d.ts +0 -10
  40. package/utils/field/model/number.d.ts.map +0 -1
  41. package/utils/field/model/rate.d.ts +0 -10
  42. package/utils/field/model/rate.d.ts.map +0 -1
  43. package/utils/field/model/select.d.ts +0 -12
  44. package/utils/field/model/select.d.ts.map +0 -1
  45. package/utils/field/model/text.d.ts +0 -10
  46. package/utils/field/model/text.d.ts.map +0 -1
@@ -1,10 +1,9 @@
1
1
  import * as Y from 'yjs';
2
- import { isArray, isEmpty as isEmpty$1, isObject, isUndefinedOrNull, TinyDate, isString } from 'ngx-tethys/util';
3
- import { AITableQueries, AITableFieldType, isSystemField, getDefaultFieldValue, Direction as Direction$1, idsCreator, idCreator, shortIdCreator, shortIdsCreator, AI_TABLE_GRID_FIELD_SERVICE_MAP, getDetailByTargetName } from '@ai-table/grid';
4
- import * as _ from 'lodash';
5
- import ___default, { isEqual } from 'lodash';
6
- import { fromUnixTime, subDays } from 'date-fns';
2
+ import { isArray } from 'ngx-tethys/util';
3
+ import { AITableQueries, ViewOperationMap, isSystemField, AITableFieldType, isEmpty, getDefaultFieldValue, Direction as Direction$1, idsCreator, idCreator, shortIdCreator, shortIdsCreator, AI_TABLE_GRID_FIELD_SERVICE_MAP, AITable } from '@ai-table/grid';
7
4
  import { createDraft, finishDraft } from 'immer';
5
+ import * as _ from 'lodash';
6
+ import ___default from 'lodash';
8
7
 
9
8
  const IS_LOCAL = new WeakSet();
10
9
  const IS_REMOTE = new WeakSet();
@@ -60,23 +59,6 @@ var AITableFilterLogical;
60
59
  AITableFilterLogical["and"] = "and";
61
60
  AITableFilterLogical["or"] = "or";
62
61
  })(AITableFilterLogical || (AITableFilterLogical = {}));
63
- var AITableFilterOperation;
64
- (function (AITableFilterOperation) {
65
- AITableFilterOperation["eq"] = "eq";
66
- AITableFilterOperation["gte"] = "gte";
67
- AITableFilterOperation["lte"] = "lte";
68
- AITableFilterOperation["gt"] = "gt";
69
- AITableFilterOperation["lt"] = "lt";
70
- AITableFilterOperation["in"] = "in";
71
- AITableFilterOperation["contain"] = "contain";
72
- AITableFilterOperation["ne"] = "ne";
73
- AITableFilterOperation["nin"] = "nin";
74
- AITableFilterOperation["between"] = "between";
75
- AITableFilterOperation["besides"] = "besides";
76
- AITableFilterOperation["empty"] = "empty";
77
- AITableFilterOperation["exists"] = "exists";
78
- AITableFilterOperation["notContain"] = "not_contain";
79
- })(AITableFilterOperation || (AITableFilterOperation = {}));
80
62
 
81
63
  var ActionName;
82
64
  (function (ActionName) {
@@ -706,15 +688,6 @@ function applyActionOps(aiTable, sharedType, actions) {
706
688
  return sharedType;
707
689
  }
708
690
 
709
- function isEmpty(value) {
710
- if (isArray(value)) {
711
- return isEmpty$1(value);
712
- }
713
- if (isObject(value)) {
714
- return Reflect.ownKeys(value).length === 0;
715
- }
716
- return isUndefinedOrNull(value) || value === '';
717
- }
718
691
  function isPathEqual(path, another) {
719
692
  return path.length === another.length && path.every((n, i) => n === another[i]);
720
693
  }
@@ -726,385 +699,6 @@ function sortByViewPosition(data, activeView) {
726
699
  return data;
727
700
  }
728
701
 
729
- const zhIntlCollator = typeof Intl !== 'undefined' ? new Intl.Collator('zh-CN') : undefined;
730
- class Field {
731
- stringInclude(str, searchStr) {
732
- return str.toLowerCase().includes(searchStr.trim().toLowerCase());
733
- }
734
- isMeetFilter(condition, cellValue) {
735
- switch (condition.operation) {
736
- case AITableFilterOperation.empty:
737
- case AITableFilterOperation.exists: {
738
- return this.isEmptyOrNot(condition.operation, cellValue);
739
- }
740
- default: {
741
- return true;
742
- }
743
- }
744
- }
745
- isEmptyOrNot(operation, cellValue) {
746
- switch (operation) {
747
- case AITableFilterOperation.empty: {
748
- return isEmpty(cellValue);
749
- }
750
- case AITableFilterOperation.exists: {
751
- return !isEmpty(cellValue);
752
- }
753
- default: {
754
- throw new Error('compare operator type error');
755
- }
756
- }
757
- }
758
- eq(cv1, cv2) {
759
- return isEqual(cv1, cv2);
760
- }
761
- compare(cellValue1, cellValue2, field, references) {
762
- if (this.eq(cellValue1, cellValue2)) {
763
- return 0;
764
- }
765
- if (cellValue1 == null) {
766
- return -1;
767
- }
768
- if (cellValue2 == null) {
769
- return 1;
770
- }
771
- let str1 = this.cellValueToString(cellValue1, field, references);
772
- let str2 = this.cellValueToString(cellValue2, field, references);
773
- if (str1 === str2) {
774
- return 0;
775
- }
776
- if (str1 == null) {
777
- return -1;
778
- }
779
- if (str2 == null) {
780
- return 1;
781
- }
782
- str1 = str1.trim();
783
- str2 = str2.trim();
784
- // test pinyin sort
785
- return str1 === str2 ? 0 : zhIntlCollator ? zhIntlCollator.compare(str1, str2) : str1.localeCompare(str2, 'zh-CN') > 0 ? 1 : -1;
786
- }
787
- }
788
-
789
- class TextField extends Field {
790
- isMeetFilter(condition, cellValue) {
791
- switch (condition.operation) {
792
- case AITableFilterOperation.empty:
793
- return isEmpty(cellValue);
794
- case AITableFilterOperation.exists:
795
- return !isEmpty(cellValue);
796
- case AITableFilterOperation.contain:
797
- return !isEmpty(cellValue) && this.stringInclude(cellValue, condition.value);
798
- default:
799
- return super.isMeetFilter(condition, cellValue);
800
- }
801
- }
802
- static stringInclude(str, searchStr) {
803
- return str.toLowerCase().includes(searchStr.trim().toLowerCase());
804
- }
805
- eq(cv1, cv2) {
806
- return this.cellValueToString(cv1) === this.cellValueToString(cv2);
807
- }
808
- cellValueToString(cellValue) {
809
- return cellValue;
810
- }
811
- }
812
-
813
- class SelectField extends Field {
814
- isMeetFilter(condition, cellValue) {
815
- switch (condition.operation) {
816
- case AITableFilterOperation.empty:
817
- return isEmpty(cellValue);
818
- case AITableFilterOperation.exists:
819
- return !isEmpty(cellValue);
820
- case AITableFilterOperation.in:
821
- return Array.isArray(condition.value) && hasIntersect$1(cellValue, condition.value);
822
- case AITableFilterOperation.nin:
823
- return Array.isArray(condition.value) && !hasIntersect$1(cellValue, condition.value);
824
- default:
825
- return super.isMeetFilter(condition, cellValue);
826
- }
827
- }
828
- cellValueToString(cellValue, field) {
829
- return this.arrayValueToString(this.cellValueToArray(cellValue, field));
830
- }
831
- cellValueToArray(cellValue, field) {
832
- if (!cellValue) {
833
- return null;
834
- }
835
- const result = [];
836
- for (let i = 0, l = cellValue.length; i < l; i++) {
837
- const option = this.findOptionById(field, cellValue[i]);
838
- if (option) {
839
- result.push(option.text);
840
- }
841
- }
842
- return result;
843
- }
844
- findOptionById(field, id) {
845
- return field.settings.options.find(option => option._id === id) || null;
846
- }
847
- arrayValueToString(cellValues) {
848
- return cellValues && cellValues.length ? cellValues.join(', ') : null;
849
- }
850
- }
851
- function hasIntersect$1(array1, array2) {
852
- if (!Array.isArray(array1) || !Array.isArray(array2)) {
853
- return false;
854
- }
855
- const set1 = new Set(array1);
856
- const set2 = new Set(array2);
857
- for (const ele of set1) {
858
- if (set2.has(ele)) {
859
- return true;
860
- }
861
- }
862
- return false;
863
- }
864
-
865
- class DateField extends Field {
866
- isMeetFilter(condition, cellValue) {
867
- const [left, right] = this.getTimeRange(condition.value);
868
- switch (condition.operation) {
869
- case AITableFilterOperation.empty:
870
- return isEmpty(cellValue.timestamp) || cellValue.timestamp === 0;
871
- case AITableFilterOperation.exists:
872
- return !isEmpty(cellValue.timestamp) && cellValue.timestamp !== 0;
873
- case AITableFilterOperation.eq:
874
- return left <= cellValue.timestamp && cellValue.timestamp < right;
875
- case AITableFilterOperation.gt:
876
- return cellValue.timestamp > right;
877
- case AITableFilterOperation.lt:
878
- return cellValue.timestamp < left;
879
- case AITableFilterOperation.between:
880
- return left <= cellValue.timestamp && cellValue.timestamp < right;
881
- default:
882
- return super.isMeetFilter(condition, cellValue);
883
- }
884
- }
885
- getTimeRange(value) {
886
- switch (value) {
887
- case 'today':
888
- return [new TinyDate(new Date()).startOfDay().getUnixTime(), new TinyDate(new Date()).endOfDay().getUnixTime()];
889
- case 'current_week':
890
- return [
891
- new TinyDate().startOfWeek({ weekStartsOn: 1 }).getUnixTime(),
892
- new TinyDate().endOfWeek({ weekStartsOn: 1 }).getUnixTime()
893
- ];
894
- case 'yesterday':
895
- return [
896
- new TinyDate(subDays(new Date(), 1)).startOfDay().getUnixTime(),
897
- new TinyDate(subDays(new Date(), 1)).endOfDay().getUnixTime()
898
- ];
899
- case 'current_month':
900
- return [new TinyDate().startOfMonth().getUnixTime(), new TinyDate().endOfMonth().getUnixTime()];
901
- default:
902
- if (isArray(value)) {
903
- return [
904
- new TinyDate(fromUnixTime(value[0])).startOfDay().getUnixTime(),
905
- new TinyDate(fromUnixTime(value[1])).endOfDay().getUnixTime()
906
- ];
907
- }
908
- return [
909
- new TinyDate(fromUnixTime(value)).startOfDay().getUnixTime(),
910
- new TinyDate(fromUnixTime(value)).endOfDay().getUnixTime()
911
- ];
912
- }
913
- }
914
- cellValueToString(_cellValue) {
915
- return null;
916
- }
917
- static _compare(cellValue1, cellValue2) {
918
- if (isEmpty(cellValue1?.timestamp) && isEmpty(cellValue2?.timestamp)) {
919
- return 0;
920
- }
921
- if (isEmpty(cellValue1?.timestamp)) {
922
- return -1;
923
- }
924
- if (isEmpty(cellValue2?.timestamp)) {
925
- return 1;
926
- }
927
- return cellValue1.timestamp === cellValue2.timestamp ? 0 : cellValue1.timestamp > cellValue2.timestamp ? 1 : -1;
928
- }
929
- compare(cellValue1, cellValue2) {
930
- return DateField._compare(cellValue1, cellValue2);
931
- }
932
- }
933
-
934
- class NumberField extends Field {
935
- isMeetFilter(condition, cellValue) {
936
- switch (condition.operation) {
937
- case AITableFilterOperation.empty:
938
- return isEmpty(cellValue);
939
- case AITableFilterOperation.exists:
940
- return !isEmpty(cellValue);
941
- case AITableFilterOperation.eq:
942
- return !Number.isNaN(condition.value) && cellValue != null && cellValue !== '' && condition.value === cellValue;
943
- case AITableFilterOperation.gte:
944
- return cellValue != null && cellValue !== '' && cellValue >= condition.value;
945
- case AITableFilterOperation.lte:
946
- return cellValue != null && cellValue !== '' && cellValue <= condition.value;
947
- case AITableFilterOperation.gt:
948
- return cellValue != null && cellValue !== '' && cellValue > condition.value;
949
- case AITableFilterOperation.lt:
950
- return cellValue != null && cellValue !== '' && cellValue < condition.value;
951
- case AITableFilterOperation.ne:
952
- return cellValue == null || cellValue == '' || Number.isNaN(condition.value) || cellValue !== condition.value;
953
- default:
954
- return super.isMeetFilter(condition, cellValue);
955
- }
956
- }
957
- cellValueToString(_cellValue) {
958
- return null;
959
- }
960
- static _compare(cellValue1, cellValue2) {
961
- if (isEmpty(cellValue1) && isEmpty(cellValue2)) {
962
- return 0;
963
- }
964
- if (isEmpty(cellValue1)) {
965
- return -1;
966
- }
967
- if (isEmpty(cellValue2)) {
968
- return 1;
969
- }
970
- return cellValue1 === cellValue2 ? 0 : cellValue1 > cellValue2 ? 1 : -1;
971
- }
972
- compare(cellValue1, cellValue2) {
973
- return NumberField._compare(cellValue1, cellValue2);
974
- }
975
- }
976
-
977
- class RateField extends Field {
978
- isMeetFilter(condition, cellValue) {
979
- switch (condition.operation) {
980
- case AITableFilterOperation.empty:
981
- return isEmpty(cellValue);
982
- case AITableFilterOperation.exists:
983
- return !isEmpty(cellValue);
984
- case AITableFilterOperation.in:
985
- const isContain = condition.value.some((item) => String(item) === String(cellValue));
986
- return !isEmpty(cellValue) && isContain;
987
- case AITableFilterOperation.nin:
988
- const noContain = condition.value.every((item) => String(item) !== String(cellValue));
989
- return isEmpty(cellValue) || noContain;
990
- default:
991
- return super.isMeetFilter(condition, cellValue);
992
- }
993
- }
994
- cellValueToString(_cellValue) {
995
- return null;
996
- }
997
- static _compare(cellValue1, cellValue2) {
998
- if (isEmpty(cellValue1) && isEmpty(cellValue2)) {
999
- return 0;
1000
- }
1001
- if (isEmpty(cellValue1)) {
1002
- return -1;
1003
- }
1004
- if (isEmpty(cellValue2)) {
1005
- return 1;
1006
- }
1007
- return cellValue1 === cellValue2 ? 0 : cellValue1 > cellValue2 ? 1 : -1;
1008
- }
1009
- compare(cellValue1, cellValue2) {
1010
- return RateField._compare(cellValue1, cellValue2);
1011
- }
1012
- }
1013
-
1014
- class LinkField extends Field {
1015
- isMeetFilter(condition, cellValue) {
1016
- const cellTextValue = this.cellValueToString(cellValue);
1017
- switch (condition.operation) {
1018
- case AITableFilterOperation.empty:
1019
- return isEmpty(cellTextValue);
1020
- case AITableFilterOperation.exists:
1021
- return !isEmpty(cellTextValue);
1022
- case AITableFilterOperation.contain:
1023
- return !isEmpty(cellTextValue) && this.stringInclude(cellTextValue, condition.value);
1024
- default:
1025
- return super.isMeetFilter(condition, cellTextValue);
1026
- }
1027
- }
1028
- eq(cv1, cv2) {
1029
- return this.cellValueToString(cv1) === this.cellValueToString(cv2);
1030
- }
1031
- compare(cellValue1, cellValue2, field) {
1032
- const cellTextValue1 = this.cellValueToString(cellValue1);
1033
- const cellTextValue2 = this.cellValueToString(cellValue2);
1034
- return super.compare(cellTextValue1, cellTextValue2, field);
1035
- }
1036
- cellValueToString(cellValue) {
1037
- if (isString(cellValue)) {
1038
- return cellValue;
1039
- }
1040
- if (isObject(cellValue)) {
1041
- return cellValue.text;
1042
- }
1043
- return '';
1044
- }
1045
- }
1046
-
1047
- class MemberField extends Field {
1048
- isMeetFilter(condition, cellValue) {
1049
- switch (condition.operation) {
1050
- case AITableFilterOperation.empty:
1051
- return isEmpty(cellValue);
1052
- case AITableFilterOperation.exists:
1053
- return !isEmpty(cellValue);
1054
- case AITableFilterOperation.in:
1055
- return Array.isArray(condition.value) && hasIntersect(cellValue, condition.value);
1056
- case AITableFilterOperation.nin:
1057
- return Array.isArray(condition.value) && !hasIntersect(cellValue, condition.value);
1058
- default:
1059
- return super.isMeetFilter(condition, cellValue);
1060
- }
1061
- }
1062
- cellValueToString(cellValue, field, references) {
1063
- let names = [];
1064
- if (cellValue?.length && references) {
1065
- for (let index = 0; index < cellValue.length; index++) {
1066
- const userInfo = references?.members[cellValue[index]];
1067
- if (!userInfo) {
1068
- continue;
1069
- }
1070
- if (userInfo.display_name_pinyin) {
1071
- names.push(userInfo.display_name_pinyin);
1072
- }
1073
- }
1074
- }
1075
- return names && names.length ? names.join(', ') : null;
1076
- }
1077
- }
1078
- function hasIntersect(array1, array2) {
1079
- if (!Array.isArray(array1) || !Array.isArray(array2)) {
1080
- return false;
1081
- }
1082
- const set1 = new Set(array1);
1083
- const set2 = new Set(array2);
1084
- for (const ele of set1) {
1085
- if (set2.has(ele)) {
1086
- return true;
1087
- }
1088
- }
1089
- return false;
1090
- }
1091
-
1092
- const ViewOperationMap = {
1093
- [AITableFieldType.text]: new TextField(),
1094
- [AITableFieldType.richText]: new TextField(),
1095
- [AITableFieldType.select]: new SelectField(),
1096
- [AITableFieldType.date]: new DateField(),
1097
- [AITableFieldType.createdAt]: new DateField(),
1098
- [AITableFieldType.updatedAt]: new DateField(),
1099
- [AITableFieldType.number]: new NumberField(),
1100
- [AITableFieldType.rate]: new RateField(),
1101
- [AITableFieldType.link]: new LinkField(),
1102
- [AITableFieldType.member]: new MemberField(),
1103
- [AITableFieldType.progress]: new NumberField(),
1104
- [AITableFieldType.createdBy]: new MemberField(),
1105
- [AITableFieldType.updatedBy]: new MemberField()
1106
- };
1107
-
1108
702
  function getSortRecords(aiTable, records, activeView) {
1109
703
  if (!activeView?.settings || !activeView.settings.sorts?.length) {
1110
704
  return records;
@@ -1792,11 +1386,7 @@ const RemoveRecordsItem = {
1792
1386
  name: '删除行',
1793
1387
  icon: 'trash',
1794
1388
  exec: (aiTable, targetName, position, aiTableGridSelectionService) => {
1795
- let selectedRecordIds = [...aiTable.selection().selectedRecords.keys()];
1796
- if (!selectedRecordIds.length) {
1797
- const recordId = getDetailByTargetName(targetName).recordId;
1798
- selectedRecordIds = [recordId];
1799
- }
1389
+ let selectedRecordIds = AITable.getSelectedRecordIds(aiTable);
1800
1390
  selectedRecordIds.forEach((id) => {
1801
1391
  Actions.removeRecord(aiTable, [id]);
1802
1392
  });
@@ -1810,5 +1400,5 @@ const VIEW_ACTIONS = [ActionName.SetView, ActionName.AddView, ActionName.RemoveV
1810
1400
  * Generated bundle index. Do not edit.
1811
1401
  */
1812
1402
 
1813
- export { AITableFilterLogical, AITableFilterOperation, AI_TABLE_CONTENT_FIELD_NAME, ActionName, Actions, Direction, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, Positions, RemovePositions, RemoveRecordsItem, SystemFieldIndex, VIEW_ACTIONS, ViewOperationMap, YjsAITable, actionMappers, addFields, addRecords, addView, applyActionOps, applyEvents, applyYjsEvents, buildFieldsByView, buildRecordsByView, buildRemoveFieldItem, createDefaultPositions, createSharedType, doFilter, getCustomFieldValues, getDataBySharedType, getDefaultRecordDataByFilter, getDefaultRecordValues, getFilteredRecords, getIdBySystemFieldValues, getIdBySystemFieldValuesType, getPosition, getPositionsByRecordSyncElement, getPositionsBySystemFieldValues, getRecordsBySharedJson, getShareTypeNumberPath, getSharedMapValueId, getSharedMapValueIndex, getSharedRecord, getSharedRecordId, getSharedRecordIndex, getSharedTypeByData, getShortIdBySystemFieldValues, getSortFields, getSortRecords, getSystemFieldValues, getTrackableEntityBySystemFieldValues, getValuesByCustomFieldValues, isEmpty, isPathEqual, removeView, setRecordPositions$1 as setRecordPositions, setRecordUpdatedInfo, sortByViewPosition, sortRecordsBySortInfo, toRecordSyncElement, toSharedType, toSyncElement, translatePositionToPath, translateYjsEvent, updateFieldValue, updateRecordsUpdatedInfo, withState };
1403
+ export { AITableFilterLogical, AI_TABLE_CONTENT_FIELD_NAME, ActionName, Actions, Direction, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, Positions, RemovePositions, RemoveRecordsItem, SystemFieldIndex, VIEW_ACTIONS, YjsAITable, actionMappers, addFields, addRecords, addView, applyActionOps, applyEvents, applyYjsEvents, buildFieldsByView, buildRecordsByView, buildRemoveFieldItem, createDefaultPositions, createSharedType, doFilter, getCustomFieldValues, getDataBySharedType, getDefaultRecordDataByFilter, getDefaultRecordValues, getFilteredRecords, getIdBySystemFieldValues, getIdBySystemFieldValuesType, getPosition, getPositionsByRecordSyncElement, getPositionsBySystemFieldValues, getRecordsBySharedJson, getShareTypeNumberPath, getSharedMapValueId, getSharedMapValueIndex, getSharedRecord, getSharedRecordId, getSharedRecordIndex, getSharedTypeByData, getShortIdBySystemFieldValues, getSortFields, getSortRecords, getSystemFieldValues, getTrackableEntityBySystemFieldValues, getValuesByCustomFieldValues, isPathEqual, removeView, setRecordPositions$1 as setRecordPositions, setRecordUpdatedInfo, sortByViewPosition, sortRecordsBySortInfo, toRecordSyncElement, toSharedType, toSyncElement, translatePositionToPath, translateYjsEvent, updateFieldValue, updateRecordsUpdatedInfo, withState };
1814
1404
  //# sourceMappingURL=ai-table-state.mjs.map