@ai-table/state 0.0.28 → 0.0.30

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 (57) hide show
  1. package/action/record.d.ts +2 -2
  2. package/action/record.d.ts.map +1 -1
  3. package/constants/context-menu-item.d.ts.map +1 -1
  4. package/esm2022/action/record.mjs +1 -1
  5. package/esm2022/constants/context-menu-item.mjs +3 -7
  6. package/esm2022/shared/to-table/array-event.mjs +1 -1
  7. package/esm2022/types/action.mjs +1 -1
  8. package/esm2022/types/view.mjs +1 -18
  9. package/esm2022/utils/build.mjs +3 -3
  10. package/esm2022/utils/common.mjs +1 -11
  11. package/esm2022/utils/index.mjs +1 -2
  12. package/esm2022/utils/record/filter.mjs +2 -4
  13. package/esm2022/utils/record/sort.mjs +7 -7
  14. package/fesm2022/ai-table-state.mjs +13 -422
  15. package/fesm2022/ai-table-state.mjs.map +1 -1
  16. package/package.json +1 -1
  17. package/types/action.d.ts +2 -2
  18. package/types/action.d.ts.map +1 -1
  19. package/types/view.d.ts +1 -22
  20. package/types/view.d.ts.map +1 -1
  21. package/utils/build.d.ts +2 -1
  22. package/utils/build.d.ts.map +1 -1
  23. package/utils/common.d.ts +0 -1
  24. package/utils/common.d.ts.map +1 -1
  25. package/utils/index.d.ts +0 -1
  26. package/utils/index.d.ts.map +1 -1
  27. package/utils/record/filter.d.ts +2 -2
  28. package/utils/record/filter.d.ts.map +1 -1
  29. package/utils/record/sort.d.ts +3 -3
  30. package/utils/record/sort.d.ts.map +1 -1
  31. package/esm2022/utils/field/model/date.mjs +0 -74
  32. package/esm2022/utils/field/model/field.mjs +0 -63
  33. package/esm2022/utils/field/model/index.mjs +0 -24
  34. package/esm2022/utils/field/model/link.mjs +0 -37
  35. package/esm2022/utils/field/model/member.mjs +0 -48
  36. package/esm2022/utils/field/model/number.mjs +0 -46
  37. package/esm2022/utils/field/model/rate.mjs +0 -40
  38. package/esm2022/utils/field/model/select.mjs +0 -55
  39. package/esm2022/utils/field/model/text.mjs +0 -27
  40. package/utils/field/model/date.d.ts +0 -11
  41. package/utils/field/model/date.d.ts.map +0 -1
  42. package/utils/field/model/field.d.ts +0 -12
  43. package/utils/field/model/field.d.ts.map +0 -1
  44. package/utils/field/model/index.d.ts +0 -4
  45. package/utils/field/model/index.d.ts.map +0 -1
  46. package/utils/field/model/link.d.ts +0 -10
  47. package/utils/field/model/link.d.ts.map +0 -1
  48. package/utils/field/model/member.d.ts +0 -8
  49. package/utils/field/model/member.d.ts.map +0 -1
  50. package/utils/field/model/number.d.ts +0 -10
  51. package/utils/field/model/number.d.ts.map +0 -1
  52. package/utils/field/model/rate.d.ts +0 -10
  53. package/utils/field/model/rate.d.ts.map +0 -1
  54. package/utils/field/model/select.d.ts +0 -12
  55. package/utils/field/model/select.d.ts.map +0 -1
  56. package/utils/field/model/text.d.ts +0 -10
  57. 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,396 +699,17 @@ 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
- function getSortRecords(aiTable, records, activeView) {
702
+ function getSortRecords(aiTable, records, activeView, sortKeysMap) {
1109
703
  if (!activeView?.settings || !activeView.settings.sorts?.length) {
1110
704
  return records;
1111
705
  }
1112
706
  const { is_keep_sort, sorts } = activeView.settings;
1113
707
  if (is_keep_sort && sorts?.length) {
1114
- return sortRecordsBySortInfo(aiTable, records, activeView);
708
+ return sortRecordsBySortInfo(aiTable, records, activeView, sortKeysMap);
1115
709
  }
1116
710
  return sortByViewPosition(records, activeView);
1117
711
  }
1118
- function sortRecordsBySortInfo(aiTable, records, activeView) {
712
+ function sortRecordsBySortInfo(aiTable, records, activeView, sortKeysMap) {
1119
713
  const shallowRows = [...records];
1120
714
  if (activeView.settings?.sorts?.length) {
1121
715
  shallowRows.sort((prev, current) => {
@@ -1125,10 +719,11 @@ function sortRecordsBySortInfo(aiTable, records, activeView) {
1125
719
  return acc;
1126
720
  }
1127
721
  const fieldMethod = ViewOperationMap[field.type];
722
+ const sortKey = sortKeysMap?.[field.type];
1128
723
  const cellValue1 = AITableQueries.getFieldValue(aiTable, [prev._id, field._id]);
1129
724
  const cellValue2 = AITableQueries.getFieldValue(aiTable, [current._id, field._id]);
1130
725
  const references = aiTable.references();
1131
- const res = fieldMethod.compare(cellValue1, cellValue2, field, references);
726
+ const res = fieldMethod.compare(cellValue1, cellValue2, field, references, sortKey);
1132
727
  return res * rule.direction;
1133
728
  }, 0);
1134
729
  });
@@ -1218,9 +813,9 @@ function getSortFields(aiTable, fields, activeView) {
1218
813
  return sortByViewPosition(fields, activeView);
1219
814
  }
1220
815
 
1221
- function buildRecordsByView(aiTable, records, fields, activeView) {
816
+ function buildRecordsByView(aiTable, records, fields, activeView, sortKeysMap) {
1222
817
  const filteredRecords = getFilteredRecords(aiTable, records, fields, activeView);
1223
- return getSortRecords(aiTable, filteredRecords, activeView);
818
+ return getSortRecords(aiTable, filteredRecords, activeView, sortKeysMap);
1224
819
  }
1225
820
  function buildFieldsByView(aiTable, fields, activeView) {
1226
821
  return getSortFields(aiTable, fields, activeView);
@@ -1792,11 +1387,7 @@ const RemoveRecordsItem = {
1792
1387
  name: '删除行',
1793
1388
  icon: 'trash',
1794
1389
  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
- }
1390
+ let selectedRecordIds = AITable.getActiveRecordIds(aiTable);
1800
1391
  selectedRecordIds.forEach((id) => {
1801
1392
  Actions.removeRecord(aiTable, [id]);
1802
1393
  });
@@ -1810,5 +1401,5 @@ const VIEW_ACTIONS = [ActionName.SetView, ActionName.AddView, ActionName.RemoveV
1810
1401
  * Generated bundle index. Do not edit.
1811
1402
  */
1812
1403
 
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 };
1404
+ 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
1405
  //# sourceMappingURL=ai-table-state.mjs.map