@nokecy/qc-ui 1.1.36 → 1.1.38

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 (240) hide show
  1. package/README.md +25 -25
  2. package/dist/cjs/ConfirmPro/index.js +4 -4
  3. package/dist/cjs/RuleBuilder/LogicSelector.js +7 -7
  4. package/dist/cjs/RuleBuilder/RuleBuilderContainer.js +27 -27
  5. package/dist/cjs/RuleBuilder/RuleCard.js +6 -6
  6. package/dist/cjs/RuleBuilder/RuleGroupEditor.js +7 -7
  7. package/dist/cjs/RuleBuilder/constants/operators.js +18 -18
  8. package/dist/cjs/RuleBuilder/context/RuleBuilderContext.js +38 -38
  9. package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.js +5 -5
  10. package/dist/cjs/RuleBuilder/inputs/MultiValueInput.js +5 -5
  11. package/dist/cjs/RuleBuilder/inputs/SingleValueInput.js +8 -8
  12. package/dist/cjs/RuleBuilder/inputs/ValueInput.js +8 -8
  13. package/dist/cjs/RuleBuilder/selectors/FieldSelector.js +5 -5
  14. package/dist/cjs/RuleBuilder/selectors/OperatorSelector.js +5 -5
  15. package/dist/cjs/RuleBuilder/styles/index.module.less +443 -443
  16. package/dist/cjs/RuleBuilder/styles/index.module.less.d.ts +43 -43
  17. package/dist/cjs/RuleBuilder/types/index.js +42 -42
  18. package/dist/cjs/RuleBuilder/utils/pathHelpers.js +47 -47
  19. package/dist/cjs/RuleBuilder/utils/ruleHelpers.js +31 -31
  20. package/dist/cjs/RuleBuilder/utils/validation.js +22 -22
  21. package/dist/cjs/ag-grid-plus/_utils/boolSelect.js +5 -5
  22. package/dist/cjs/ag-grid-plus/_utils/processColumnGroups.js +9 -9
  23. package/dist/cjs/ag-grid-plus/ag-grid-theme-builder.css +352 -352
  24. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +83 -89
  25. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +1 -5
  26. package/dist/cjs/ag-grid-plus/context/gridContext.js +19 -19
  27. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +56 -56
  28. package/dist/cjs/ag-grid-plus/context/useSchemeManager.js +93 -93
  29. package/dist/cjs/ag-grid-plus/errors/ErrorBoundary.js +8 -8
  30. package/dist/cjs/ag-grid-plus/errors/types.js +14 -14
  31. package/dist/cjs/ag-grid-plus/hooks/useAgGridCalculation.js +45 -45
  32. package/dist/cjs/ag-grid-plus/hooks/useAgGridData.js +44 -44
  33. package/dist/cjs/ag-grid-plus/hooks/useGridPlusColumnState.js +3 -3
  34. package/dist/cjs/ag-grid-plus/hooks/useGridState.js +36 -36
  35. package/dist/cjs/ag-grid-plus/index.less +50 -50
  36. package/dist/cjs/ag-grid-plus/queryForm/index.less +72 -72
  37. package/dist/cjs/ag-grid-plus/setting/ColumnConfigForm.js +11 -11
  38. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +3 -3
  39. package/dist/cjs/ag-grid-plus/setting/ColumnNameCellRenderer.js +10 -10
  40. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +29 -29
  41. package/dist/cjs/ag-grid-plus/setting/DebounceInputs.js +9 -9
  42. package/dist/cjs/ag-grid-plus/setting/MoveNodeModal.js +7 -7
  43. package/dist/cjs/ag-grid-plus/setting/NameColumnRenderer.js +6 -6
  44. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +34 -34
  45. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +76 -76
  46. package/dist/cjs/ag-grid-plus/setting/performanceMonitor.js +5 -5
  47. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +46 -46
  48. package/dist/cjs/ag-grid-plus/shared/storage/localStorageAdapter.js +39 -39
  49. package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.js +18 -18
  50. package/dist/cjs/ag-grid-plus/theme.js +3 -3
  51. package/dist/cjs/ag-grid-plus/toolBar/index.js +4 -4
  52. package/dist/cjs/ag-grid-plus/types.d.ts +2 -22
  53. package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +52 -52
  54. package/dist/cjs/ag-grid-plus/utils/constants.js +22 -22
  55. package/dist/cjs/ag-grid-plus/utils/entityExtensionColumns.d.ts +1 -0
  56. package/dist/cjs/ag-grid-plus/utils/entityExtensionColumns.js +22 -20
  57. package/dist/cjs/ag-grid-plus/utils/logger.js +2 -2
  58. package/dist/cjs/ag-grid-plus/utils/sanitize.js +10 -10
  59. package/dist/cjs/ag-grid-plus/utils.js +3 -3
  60. package/dist/cjs/array-table/columnHelper.js +43 -43
  61. package/dist/cjs/array-table/hooks.js +11 -9
  62. package/dist/cjs/array-table/index.js +40 -41
  63. package/dist/cjs/array-table/utils.js +4 -3
  64. package/dist/cjs/components/RegexEditor/core/RegexEditor.js +32 -32
  65. package/dist/cjs/components/RegexEditor/core/RegexEditor.less +119 -119
  66. package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.js +52 -52
  67. package/dist/cjs/components/RegexEditor/hooks/useRegexTester.js +48 -48
  68. package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.js +54 -54
  69. package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.js +5 -5
  70. package/dist/cjs/components/RegexEditor/templates/TemplateSelector.js +28 -28
  71. package/dist/cjs/components/RegexEditor/templates/builtinTemplates.js +24 -24
  72. package/dist/cjs/components/RegexEditor/templates/storage.js +29 -29
  73. package/dist/cjs/components/RegexEditor/templates/templateManager.js +29 -29
  74. package/dist/cjs/components/RegexEditor/templates/types.js +74 -74
  75. package/dist/cjs/components/RegexEditor/validation/complexity.js +40 -40
  76. package/dist/cjs/components/RegexEditor/validation/parser.js +47 -47
  77. package/dist/cjs/components/RegexEditor/validation/validator.js +54 -54
  78. package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.js +19 -19
  79. package/dist/cjs/components/RegexEditor/visualizer/MatchItem.js +20 -20
  80. package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.js +15 -15
  81. package/dist/cjs/components/RegexEditor/visualizer/RegexTester.js +17 -17
  82. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +11 -11
  83. package/dist/cjs/components/RegexEditor/visualizer/utils.js +92 -92
  84. package/dist/cjs/dashboard/dashboard/components/toolbar/style/index.less +49 -49
  85. package/dist/cjs/dashboard/dashboard/index.less +173 -173
  86. package/dist/cjs/dashboard/dashboard/utils.js +4 -4
  87. package/dist/cjs/dashboard/utils.js +8 -8
  88. package/dist/cjs/dashboard/widget/index.less +7 -7
  89. package/dist/cjs/dashboard/widget/selector/index.less +172 -172
  90. package/dist/cjs/deleteConfirm/index.js +17 -17
  91. package/dist/cjs/draggableModal/index.js +4 -4
  92. package/dist/cjs/draggableModal/style.less +122 -122
  93. package/dist/cjs/editable/index.js +16 -1
  94. package/dist/cjs/formDesigner/arrayTable/styles.less +2 -2
  95. package/dist/cjs/formDesigner/index.less +2 -2
  96. package/dist/cjs/fullScreenAlert/index.js +13 -13
  97. package/dist/cjs/fullScreenAlert/index.less +133 -133
  98. package/dist/cjs/generatedListPage/ConfigurableToolbar.js +2 -2
  99. package/dist/cjs/generatedListPage/GeneratedListPage.js +20 -20
  100. package/dist/cjs/generatedListPage/OptionsColumn.js +3 -3
  101. package/dist/cjs/generatedListPage/PerformanceMonitor.js +9 -9
  102. package/dist/cjs/generatedListPage/RequestManager.js +39 -39
  103. package/dist/cjs/generatedListPage/_utils/AccessWrapper.js +6 -6
  104. package/dist/cjs/generatedListPage/_utils/defaultHandlers.js +14 -14
  105. package/dist/cjs/generatedListPage/usePermissionCheck.js +27 -27
  106. package/dist/cjs/generatedListPage/useRequestManager.js +20 -20
  107. package/dist/cjs/importModal/index.js +4 -4
  108. package/dist/cjs/standardFormDialog/FormValidation.js +45 -45
  109. package/dist/cjs/standardFormDialog/PortalManager.js +46 -46
  110. package/dist/cjs/standardFormDialog/StandardFormDialog.js +20 -20
  111. package/dist/cjs/standardFormDialog/useStandardFormSchema.js +24 -24
  112. package/dist/cjs/toolBar/index.less +25 -25
  113. package/dist/cjs/types/railroad-diagrams.d.ts +59 -59
  114. package/dist/cjs/types/regexp-tree.d.ts +175 -175
  115. package/dist/esm/ConfirmPro/index.js +4 -4
  116. package/dist/esm/RuleBuilder/LogicSelector.js +7 -7
  117. package/dist/esm/RuleBuilder/RuleBuilderContainer.js +27 -27
  118. package/dist/esm/RuleBuilder/RuleCard.js +6 -6
  119. package/dist/esm/RuleBuilder/RuleGroupEditor.js +7 -7
  120. package/dist/esm/RuleBuilder/constants/operators.js +18 -18
  121. package/dist/esm/RuleBuilder/context/RuleBuilderContext.js +38 -38
  122. package/dist/esm/RuleBuilder/index.js +6 -6
  123. package/dist/esm/RuleBuilder/inputs/BetweenValueInput.js +5 -5
  124. package/dist/esm/RuleBuilder/inputs/MultiValueInput.js +5 -5
  125. package/dist/esm/RuleBuilder/inputs/SingleValueInput.js +8 -8
  126. package/dist/esm/RuleBuilder/inputs/ValueInput.js +8 -8
  127. package/dist/esm/RuleBuilder/selectors/FieldSelector.js +5 -5
  128. package/dist/esm/RuleBuilder/selectors/OperatorSelector.js +5 -5
  129. package/dist/esm/RuleBuilder/styles/index.module.less +443 -443
  130. package/dist/esm/RuleBuilder/styles/index.module.less.d.ts +43 -43
  131. package/dist/esm/RuleBuilder/types/index.js +42 -42
  132. package/dist/esm/RuleBuilder/utils/pathHelpers.js +47 -47
  133. package/dist/esm/RuleBuilder/utils/ruleHelpers.js +31 -31
  134. package/dist/esm/RuleBuilder/utils/validation.js +22 -22
  135. package/dist/esm/ag-grid-plus/_utils/boolSelect.js +5 -5
  136. package/dist/esm/ag-grid-plus/_utils/processColumnGroups.js +9 -9
  137. package/dist/esm/ag-grid-plus/ag-grid-theme-builder.css +352 -352
  138. package/dist/esm/ag-grid-plus/ag-gridPlus.js +83 -89
  139. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +1 -5
  140. package/dist/esm/ag-grid-plus/context/gridContext.js +19 -19
  141. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +56 -56
  142. package/dist/esm/ag-grid-plus/context/useSchemeManager.js +93 -93
  143. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.js +8 -8
  144. package/dist/esm/ag-grid-plus/errors/types.js +14 -14
  145. package/dist/esm/ag-grid-plus/hooks/index.js +2 -2
  146. package/dist/esm/ag-grid-plus/hooks/useAgGridCalculation.js +45 -45
  147. package/dist/esm/ag-grid-plus/hooks/useAgGridData.js +44 -44
  148. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.js +3 -3
  149. package/dist/esm/ag-grid-plus/hooks/useGridState.js +36 -36
  150. package/dist/esm/ag-grid-plus/index.less +50 -50
  151. package/dist/esm/ag-grid-plus/queryForm/index.less +72 -72
  152. package/dist/esm/ag-grid-plus/setting/ColumnConfigForm.js +11 -11
  153. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +3 -3
  154. package/dist/esm/ag-grid-plus/setting/ColumnNameCellRenderer.js +10 -10
  155. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +29 -29
  156. package/dist/esm/ag-grid-plus/setting/DebounceInputs.js +9 -9
  157. package/dist/esm/ag-grid-plus/setting/MoveNodeModal.js +7 -7
  158. package/dist/esm/ag-grid-plus/setting/NameColumnRenderer.js +6 -6
  159. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +34 -34
  160. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +76 -76
  161. package/dist/esm/ag-grid-plus/setting/performanceMonitor.js +5 -5
  162. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +46 -46
  163. package/dist/esm/ag-grid-plus/shared/storage/localStorageAdapter.js +39 -39
  164. package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.js +18 -18
  165. package/dist/esm/ag-grid-plus/theme.js +3 -3
  166. package/dist/esm/ag-grid-plus/toolBar/index.js +4 -4
  167. package/dist/esm/ag-grid-plus/types.d.ts +2 -22
  168. package/dist/esm/ag-grid-plus/utils/columnProcessors.js +52 -52
  169. package/dist/esm/ag-grid-plus/utils/constants.js +22 -22
  170. package/dist/esm/ag-grid-plus/utils/entityExtensionColumns.d.ts +1 -0
  171. package/dist/esm/ag-grid-plus/utils/entityExtensionColumns.js +29 -34
  172. package/dist/esm/ag-grid-plus/utils/logger.js +2 -2
  173. package/dist/esm/ag-grid-plus/utils/sanitize.js +10 -10
  174. package/dist/esm/ag-grid-plus/utils.js +3 -3
  175. package/dist/esm/array-table/columnHelper.js +43 -43
  176. package/dist/esm/array-table/hooks.js +11 -9
  177. package/dist/esm/array-table/index.js +40 -41
  178. package/dist/esm/array-table/utils.js +4 -3
  179. package/dist/esm/components/RegexEditor/core/RegexEditor.js +32 -32
  180. package/dist/esm/components/RegexEditor/core/RegexEditor.less +119 -119
  181. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.js +52 -52
  182. package/dist/esm/components/RegexEditor/hooks/index.js +4 -4
  183. package/dist/esm/components/RegexEditor/hooks/useRegexTester.js +48 -48
  184. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.js +54 -54
  185. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.js +5 -5
  186. package/dist/esm/components/RegexEditor/templates/TemplateSelector.js +28 -28
  187. package/dist/esm/components/RegexEditor/templates/builtinTemplates.js +24 -24
  188. package/dist/esm/components/RegexEditor/templates/index.js +2 -2
  189. package/dist/esm/components/RegexEditor/templates/storage.js +29 -29
  190. package/dist/esm/components/RegexEditor/templates/templateManager.js +29 -29
  191. package/dist/esm/components/RegexEditor/templates/types.js +74 -74
  192. package/dist/esm/components/RegexEditor/validation/complexity.js +40 -40
  193. package/dist/esm/components/RegexEditor/validation/parser.js +47 -47
  194. package/dist/esm/components/RegexEditor/validation/validator.js +54 -54
  195. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.js +19 -19
  196. package/dist/esm/components/RegexEditor/visualizer/MatchItem.js +20 -20
  197. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.js +15 -15
  198. package/dist/esm/components/RegexEditor/visualizer/RegexTester.js +17 -17
  199. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +11 -11
  200. package/dist/esm/components/RegexEditor/visualizer/index.js +5 -5
  201. package/dist/esm/components/RegexEditor/visualizer/utils.js +92 -92
  202. package/dist/esm/dashboard/dashboard/components/toolbar/style/index.less +49 -49
  203. package/dist/esm/dashboard/dashboard/index.less +173 -173
  204. package/dist/esm/dashboard/dashboard/utils.js +4 -4
  205. package/dist/esm/dashboard/utils.js +8 -8
  206. package/dist/esm/dashboard/widget/index.less +7 -7
  207. package/dist/esm/dashboard/widget/selector/index.less +172 -172
  208. package/dist/esm/deleteConfirm/index.js +17 -17
  209. package/dist/esm/draggableModal/index.js +4 -4
  210. package/dist/esm/draggableModal/style.less +122 -122
  211. package/dist/esm/editable/index.js +16 -1
  212. package/dist/esm/formDesigner/arrayTable/styles.less +2 -2
  213. package/dist/esm/formDesigner/index.less +2 -2
  214. package/dist/esm/fullScreenAlert/index.js +13 -13
  215. package/dist/esm/fullScreenAlert/index.less +133 -133
  216. package/dist/esm/generatedListPage/ConfigurableToolbar.js +2 -2
  217. package/dist/esm/generatedListPage/GeneratedListPage.js +20 -20
  218. package/dist/esm/generatedListPage/OptionsColumn.js +3 -3
  219. package/dist/esm/generatedListPage/PerformanceMonitor.js +9 -9
  220. package/dist/esm/generatedListPage/RequestManager.js +39 -39
  221. package/dist/esm/generatedListPage/_utils/AccessWrapper.js +6 -6
  222. package/dist/esm/generatedListPage/_utils/defaultHandlers.js +14 -14
  223. package/dist/esm/generatedListPage/index.js +9 -9
  224. package/dist/esm/generatedListPage/usePermissionCheck.js +27 -27
  225. package/dist/esm/generatedListPage/useRequestManager.js +20 -20
  226. package/dist/esm/importModal/index.js +4 -4
  227. package/dist/esm/standardFormDialog/FormValidation.js +45 -45
  228. package/dist/esm/standardFormDialog/PortalManager.js +46 -46
  229. package/dist/esm/standardFormDialog/StandardFormDialog.js +20 -20
  230. package/dist/esm/standardFormDialog/useStandardFormSchema.js +24 -24
  231. package/dist/esm/standardFormDialog/withStandardForm.d.ts +2 -2
  232. package/dist/esm/toolBar/index.less +25 -25
  233. package/dist/esm/types/railroad-diagrams.d.ts +59 -59
  234. package/dist/esm/types/regexp-tree.d.ts +175 -175
  235. package/dist/umd/qc-ui.min.js +1 -1
  236. package/package.json +90 -90
  237. package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +0 -66
  238. package/dist/cjs/ag-grid-plus/shared/hooks/useSchemeManager.js +0 -648
  239. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.d.ts +0 -66
  240. package/dist/esm/ag-grid-plus/shared/hooks/useSchemeManager.js +0 -643
@@ -2,9 +2,9 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
2
2
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3
3
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4
4
  import { useCallback } from 'react';
5
- /**
6
- * 单元格聚焦 Hook
7
- * 处理 Editable 包装和普通输入框的聚焦逻辑
5
+ /**
6
+ * 单元格聚焦 Hook
7
+ * 处理 Editable 包装和普通输入框的聚焦逻辑
8
8
  */
9
9
  export var useCellFocus = function useCellFocus() {
10
10
  var focusInputInCell = useCallback(function (cell) {
@@ -86,9 +86,9 @@ export var useCellFocus = function useCellFocus() {
86
86
  };
87
87
  };
88
88
 
89
- /**
90
- * 键盘导航 Hook
91
- * 处理方向键在表格单元格间的导航
89
+ /**
90
+ * 键盘导航 Hook
91
+ * 处理方向键在表格单元格间的导航
92
92
  */
93
93
  export var useKeyboardNavigation = function useKeyboardNavigation(ref, dataSource, focusInputInCell) {
94
94
  var handleCellKeyDown = useCallback(function (event) {
@@ -194,9 +194,9 @@ export var useKeyboardNavigation = function useKeyboardNavigation(ref, dataSourc
194
194
  };
195
195
  };
196
196
 
197
- /**
198
- * 行拖拽 Hook
199
- * 处理行拖拽排序逻辑
197
+ /**
198
+ * 行拖拽 Hook
199
+ * 处理行拖拽排序逻辑
200
200
  */
201
201
  export var useRowDrag = function useRowDrag(field) {
202
202
  var handleRowDragMove = useCallback(function (event) {
@@ -209,6 +209,8 @@ export var useRowDrag = function useRowDrag(field) {
209
209
  var dataSourceCopy = Array.isArray(field.value) ? field.value.slice() : [];
210
210
  var fromIndex = dataSourceCopy.indexOf(movingData);
211
211
  var toIndex = dataSourceCopy.indexOf(overData);
212
+ // 防护:任一索引未命中(引用不一致)时直接返回,避免 splice(-1) 误删末行 @author nokecy
213
+ if (fromIndex < 0 || toIndex < 0) return;
212
214
  var newStore = dataSourceCopy.slice();
213
215
 
214
216
  // 移动数组元素
@@ -112,10 +112,10 @@ var ArrayTableInner = observer(function (props) {
112
112
  updatedAt: undefined
113
113
  });
114
114
 
115
- /**
116
- * 【关键优化】使用 useMemo 稳定 columnDefs 引用
117
- * 只在基础列定义(sources)变化时更新,避免数据变化导致列重置
118
- * 列的状态(宽度、顺序、隐藏等)由方案通过 applyColumnState 控制,不需要通过 columnDefs 传递
115
+ /**
116
+ * 【关键优化】使用 useMemo 稳定 columnDefs 引用
117
+ * 只在基础列定义(sources)变化时更新,避免数据变化导致列重置
118
+ * 列的状态(宽度、顺序、隐藏等)由方案通过 applyColumnState 控制,不需要通过 columnDefs 传递
119
119
  */
120
120
  var stableColumnDefs = useMemo(function () {
121
121
  // 只依赖 sources,不依赖 dataSource 和 field.value
@@ -128,13 +128,13 @@ var ArrayTableInner = observer(function (props) {
128
128
  return cols;
129
129
  }, [sources, props.onRowDrag]); // 移除 field 依赖,避免数据变化时重新计算
130
130
 
131
- /**
132
- * 方案自动加载
133
- *
134
- * 参考 ag-gridPlus 优化方案:
135
- * 1. 使用 Promise 链确保顺序执行,避免竞态条件
136
- * 2. 使用双重 RAF 确保渲染完成
137
- * 3. 完整的错误处理和清理机制
131
+ /**
132
+ * 方案自动加载
133
+ *
134
+ * 参考 ag-gridPlus 优化方案:
135
+ * 1. 使用 Promise 链确保顺序执行,避免竞态条件
136
+ * 2. 使用双重 RAF 确保渲染完成
137
+ * 3. 完整的错误处理和清理机制
138
138
  */
139
139
  useEffect(function () {
140
140
  // 检查必要条件
@@ -148,7 +148,7 @@ var ArrayTableInner = observer(function (props) {
148
148
  if (isSameScheme && isSameVersion) {
149
149
  return;
150
150
  }
151
- if (isSameScheme && !isSameVersion) {}
151
+
152
152
  // 使用 Promise 链确保顺序执行,避免竞态条件
153
153
  var cancelled = false;
154
154
  Promise.resolve().then(function () {
@@ -166,7 +166,6 @@ var ArrayTableInner = observer(function (props) {
166
166
  }
167
167
 
168
168
  // 2. 应用列状态(列顺序、宽度、隐藏、固定等)
169
-
170
169
  var columnState = flatConfigToColumnState(currentScheme.columnConfig);
171
170
  gridApiState.applyColumnState({
172
171
  state: columnState,
@@ -352,34 +351,34 @@ var ArrayTableInner = observer(function (props) {
352
351
  });
353
352
  ArrayTableInner.displayName = "ArrayTableInner";
354
353
 
355
- /**
356
- * ArrayTable 组件
357
- *
358
- * 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
359
- *
360
- * @example
361
- * ```tsx
362
- * const adapter = useMemo(() => new LocalStorageSchemeAdapter({
363
- * storageKey: `array-table-schemes-${gridKey}`
364
- * }), [gridKey]);
365
- *
366
- * const schemeManager = useSchemeManager({ adapter, autoLoad: true });
367
- *
368
- * const contextValue = useMemo(() => ({
369
- * extensibleColumns: [],
370
- * columnState: undefined,
371
- * onSaveColumnState: () => {},
372
- * applyToGlobal: () => {},
373
- * resetCurrent: () => {},
374
- * resetAll: () => {},
375
- * queryFormItems: [],
376
- * ...schemeManager
377
- * }), [schemeManager]);
378
- *
379
- * <GridPlusContext.Provider value={contextValue}>
380
- * <ArrayTable gridKey="my-table" height={400} />
381
- * </GridPlusContext.Provider>
382
- * ```
354
+ /**
355
+ * ArrayTable 组件
356
+ *
357
+ * 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
358
+ *
359
+ * @example
360
+ * ```tsx
361
+ * const adapter = useMemo(() => new LocalStorageSchemeAdapter({
362
+ * storageKey: `array-table-schemes-${gridKey}`
363
+ * }), [gridKey]);
364
+ *
365
+ * const schemeManager = useSchemeManager({ adapter, autoLoad: true });
366
+ *
367
+ * const contextValue = useMemo(() => ({
368
+ * extensibleColumns: [],
369
+ * columnState: undefined,
370
+ * onSaveColumnState: () => {},
371
+ * applyToGlobal: () => {},
372
+ * resetCurrent: () => {},
373
+ * resetAll: () => {},
374
+ * queryFormItems: [],
375
+ * ...schemeManager
376
+ * }), [schemeManager]);
377
+ *
378
+ * <GridPlusContext.Provider value={contextValue}>
379
+ * <ArrayTable gridKey="my-table" height={400} />
380
+ * </GridPlusContext.Provider>
381
+ * ```
383
382
  */
384
383
  //@ts-ignore
385
384
  var ArrayTable = ArrayTableInner;
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["pinned", "hide", "sort", "sortIndex"];
2
+ var _excluded = ["hide", "sort", "sortIndex"];
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -142,8 +142,9 @@ var useArrayTableColumns = function useArrayTableColumns(dataSource, field, sour
142
142
  // 【关键修复】移除可能干扰用户列状态的属性
143
143
  // 这些属性应该由用户通过列配置(applyColumnState)控制,而不是从 columnDefs 继承
144
144
  // 但保留 width 作为列的初始宽度
145
- var pinned = columnProps.pinned,
146
- hide = columnProps.hide,
145
+ // 注意:pinned 不再剥离——作为 schema 默认固定列状态生效;用户运行时拖动/保存方案后
146
+ // 由 applyColumnState 在其后覆盖(用户优先),stableColumnDefs 会话内稳定不重置,故不冲突。@author nokecy
147
+ var hide = columnProps.hide,
147
148
  sort = columnProps.sort,
148
149
  sortIndex = columnProps.sortIndex,
149
150
  safeColumnProps = _objectWithoutProperties(columnProps, _excluded);
@@ -1,26 +1,26 @@
1
- /**
2
- * RegexEditor 组件
3
- *
4
- * @description
5
- * CodeMirror 6 包装器组件,集成正则表达式验证和错误标注功能。
6
- * 提供实时语法验证、错误高亮、复杂度分析等功能。
7
- *
8
- * @module RegexEditor/core/RegexEditor
9
- *
10
- * @example
11
- * ```tsx
12
- * <RegexEditor
13
- * value={pattern}
14
- * onChange={setPattern}
15
- * placeholder="请输入正则表达式"
16
- * showComplexity={true}
17
- * onValidate={(result) => {
18
- * if (!result.valid) {
19
- * console.error('验证失败:', result.errors);
20
- * }
21
- * }}
22
- * />
23
- * ```
1
+ /**
2
+ * RegexEditor 组件
3
+ *
4
+ * @description
5
+ * CodeMirror 6 包装器组件,集成正则表达式验证和错误标注功能。
6
+ * 提供实时语法验证、错误高亮、复杂度分析等功能。
7
+ *
8
+ * @module RegexEditor/core/RegexEditor
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <RegexEditor
13
+ * value={pattern}
14
+ * onChange={setPattern}
15
+ * placeholder="请输入正则表达式"
16
+ * showComplexity={true}
17
+ * onValidate={(result) => {
18
+ * if (!result.valid) {
19
+ * console.error('验证失败:', result.errors);
20
+ * }
21
+ * }}
22
+ * />
23
+ * ```
24
24
  */
25
25
 
26
26
  import React, { useMemo, useEffect, useRef } from 'react';
@@ -32,11 +32,11 @@ import { createErrorMarkers, updateErrorMarkers } from "./extensions/errorMarker
32
32
  import { RegexRailroadDiagram } from "../visualizer/RegexRailroadDiagram";
33
33
  import "./RegexEditor.less";
34
34
 
35
- /**
36
- * RegexEditor 组件
37
- *
38
- * @param props - 组件属性
39
- * @returns React 组件
35
+ /**
36
+ * RegexEditor 组件
37
+ *
38
+ * @param props - 组件属性
39
+ * @returns React 组件
40
40
  */
41
41
  export var RegexEditor = function RegexEditor(_ref) {
42
42
  var _ref$value = _ref.value,
@@ -192,8 +192,8 @@ export var RegexEditor = function RegexEditor(_ref) {
192
192
  })));
193
193
  };
194
194
 
195
- /**
196
- * 获取评分等级
195
+ /**
196
+ * 获取评分等级
197
197
  */
198
198
  var getScoreLevel = function getScoreLevel(score) {
199
199
  if (score >= 80) return 'high';
@@ -201,8 +201,8 @@ var getScoreLevel = function getScoreLevel(score) {
201
201
  return 'low';
202
202
  };
203
203
 
204
- /**
205
- * 获取风险标签
204
+ /**
205
+ * 获取风险标签
206
206
  */
207
207
  var getRiskLabel = function getRiskLabel(risk) {
208
208
  var labels = {
@@ -1,119 +1,119 @@
1
- /**
2
- * RegexEditor 组件样式
3
- */
4
-
5
- .regex-editor {
6
- display: flex;
7
- flex-direction: column;
8
- gap: 12px;
9
-
10
- // 复杂度信息区域
11
- .regex-complexity {
12
- padding: 12px;
13
- background-color: #fafafa;
14
- border: 1px solid #d9d9d9;
15
- border-radius: 2px;
16
- font-size: 13px;
17
-
18
- .complexity-item {
19
- display: flex;
20
- align-items: center;
21
- margin-bottom: 8px;
22
-
23
- &:last-child {
24
- margin-bottom: 0;
25
- }
26
-
27
- .label {
28
- font-weight: 500;
29
- color: #595959;
30
- margin-right: 8px;
31
- }
32
-
33
- .score {
34
- padding: 2px 8px;
35
- border-radius: 2px;
36
- font-weight: 600;
37
-
38
- &.score-high {
39
- background-color: #f6ffed;
40
- color: #52c41a;
41
- }
42
-
43
- &.score-medium {
44
- background-color: #fffbe6;
45
- color: #faad14;
46
- }
47
-
48
- &.score-low {
49
- background-color: #fff2f0;
50
- color: #ff4d4f;
51
- }
52
- }
53
-
54
- .risk {
55
- padding: 2px 8px;
56
- border-radius: 2px;
57
- font-weight: 600;
58
-
59
- &.risk-low {
60
- background-color: #f6ffed;
61
- color: #52c41a;
62
- }
63
-
64
- &.risk-medium {
65
- background-color: #fffbe6;
66
- color: #faad14;
67
- }
68
-
69
- &.risk-high {
70
- background-color: #fff2f0;
71
- color: #ff4d4f;
72
- }
73
- }
74
- }
75
-
76
- .complexity-suggestions {
77
- margin-top: 12px;
78
- padding-top: 12px;
79
- border-top: 1px solid #e8e8e8;
80
-
81
- .suggestions-title {
82
- font-weight: 500;
83
- color: #595959;
84
- margin-bottom: 8px;
85
- }
86
-
87
- ul {
88
- margin: 0;
89
- padding-left: 20px;
90
-
91
- li {
92
- color: #8c8c8c;
93
- line-height: 1.6;
94
- margin-bottom: 4px;
95
-
96
- &:last-child {
97
- margin-bottom: 0;
98
- }
99
- }
100
- }
101
- }
102
- }
103
-
104
- // 错误标注样式
105
- .cm-regex-error {
106
- text-decoration: wavy underline red;
107
- text-decoration-skip-ink: none;
108
- }
109
-
110
- .cm-regex-warning {
111
- text-decoration: wavy underline orange;
112
- text-decoration-skip-ink: none;
113
- }
114
-
115
- .cm-regex-info {
116
- text-decoration: wavy underline blue;
117
- text-decoration-skip-ink: none;
118
- }
119
- }
1
+ /**
2
+ * RegexEditor 组件样式
3
+ */
4
+
5
+ .regex-editor {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 12px;
9
+
10
+ // 复杂度信息区域
11
+ .regex-complexity {
12
+ padding: 12px;
13
+ background-color: #fafafa;
14
+ border: 1px solid #d9d9d9;
15
+ border-radius: 2px;
16
+ font-size: 13px;
17
+
18
+ .complexity-item {
19
+ display: flex;
20
+ align-items: center;
21
+ margin-bottom: 8px;
22
+
23
+ &:last-child {
24
+ margin-bottom: 0;
25
+ }
26
+
27
+ .label {
28
+ font-weight: 500;
29
+ color: #595959;
30
+ margin-right: 8px;
31
+ }
32
+
33
+ .score {
34
+ padding: 2px 8px;
35
+ border-radius: 2px;
36
+ font-weight: 600;
37
+
38
+ &.score-high {
39
+ background-color: #f6ffed;
40
+ color: #52c41a;
41
+ }
42
+
43
+ &.score-medium {
44
+ background-color: #fffbe6;
45
+ color: #faad14;
46
+ }
47
+
48
+ &.score-low {
49
+ background-color: #fff2f0;
50
+ color: #ff4d4f;
51
+ }
52
+ }
53
+
54
+ .risk {
55
+ padding: 2px 8px;
56
+ border-radius: 2px;
57
+ font-weight: 600;
58
+
59
+ &.risk-low {
60
+ background-color: #f6ffed;
61
+ color: #52c41a;
62
+ }
63
+
64
+ &.risk-medium {
65
+ background-color: #fffbe6;
66
+ color: #faad14;
67
+ }
68
+
69
+ &.risk-high {
70
+ background-color: #fff2f0;
71
+ color: #ff4d4f;
72
+ }
73
+ }
74
+ }
75
+
76
+ .complexity-suggestions {
77
+ margin-top: 12px;
78
+ padding-top: 12px;
79
+ border-top: 1px solid #e8e8e8;
80
+
81
+ .suggestions-title {
82
+ font-weight: 500;
83
+ color: #595959;
84
+ margin-bottom: 8px;
85
+ }
86
+
87
+ ul {
88
+ margin: 0;
89
+ padding-left: 20px;
90
+
91
+ li {
92
+ color: #8c8c8c;
93
+ line-height: 1.6;
94
+ margin-bottom: 4px;
95
+
96
+ &:last-child {
97
+ margin-bottom: 0;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+
104
+ // 错误标注样式
105
+ .cm-regex-error {
106
+ text-decoration: wavy underline red;
107
+ text-decoration-skip-ink: none;
108
+ }
109
+
110
+ .cm-regex-warning {
111
+ text-decoration: wavy underline orange;
112
+ text-decoration-skip-ink: none;
113
+ }
114
+
115
+ .cm-regex-info {
116
+ text-decoration: wavy underline blue;
117
+ text-decoration-skip-ink: none;
118
+ }
119
+ }
@@ -1,27 +1,27 @@
1
1
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
2
2
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3
3
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4
- /**
5
- * CodeMirror 错误标注扩展
6
- *
7
- * @description
8
- * 为 CodeMirror 编辑器添加错误标注功能,支持波浪下划线高亮显示错误位置。
9
- *
10
- * @module RegexEditor/core/extensions/errorMarker
4
+ /**
5
+ * CodeMirror 错误标注扩展
6
+ *
7
+ * @description
8
+ * 为 CodeMirror 编辑器添加错误标注功能,支持波浪下划线高亮显示错误位置。
9
+ *
10
+ * @module RegexEditor/core/extensions/errorMarker
11
11
  */
12
12
 
13
13
  import { Decoration, EditorView } from '@codemirror/view';
14
14
  import { StateField, StateEffect } from '@codemirror/state';
15
- /**
16
- * 设置错误的 StateEffect
15
+ /**
16
+ * 设置错误的 StateEffect
17
17
  */
18
18
  export var setErrorsEffect = StateEffect.define();
19
19
 
20
- /**
21
- * 错误标注装饰
22
- *
23
- * @description
24
- * 使用红色波浪下划线标注错误位置
20
+ /**
21
+ * 错误标注装饰
22
+ *
23
+ * @description
24
+ * 使用红色波浪下划线标注错误位置
25
25
  */
26
26
  var errorMark = Decoration.mark({
27
27
  attributes: {
@@ -30,11 +30,11 @@ var errorMark = Decoration.mark({
30
30
  }
31
31
  });
32
32
 
33
- /**
34
- * 警告标注装饰
35
- *
36
- * @description
37
- * 使用橙色波浪下划线标注警告位置
33
+ /**
34
+ * 警告标注装饰
35
+ *
36
+ * @description
37
+ * 使用橙色波浪下划线标注警告位置
38
38
  */
39
39
  var warningMark = Decoration.mark({
40
40
  attributes: {
@@ -43,11 +43,11 @@ var warningMark = Decoration.mark({
43
43
  }
44
44
  });
45
45
 
46
- /**
47
- * 信息标注装饰
48
- *
49
- * @description
50
- * 使用蓝色波浪下划线标注信息位置
46
+ /**
47
+ * 信息标注装饰
48
+ *
49
+ * @description
50
+ * 使用蓝色波浪下划线标注信息位置
51
51
  */
52
52
  var infoMark = Decoration.mark({
53
53
  attributes: {
@@ -56,11 +56,11 @@ var infoMark = Decoration.mark({
56
56
  }
57
57
  });
58
58
 
59
- /**
60
- * 错误装饰状态字段
61
- *
62
- * @description
63
- * 管理错误标注的 DecorationSet
59
+ /**
60
+ * 错误装饰状态字段
61
+ *
62
+ * @description
63
+ * 管理错误标注的 DecorationSet
64
64
  */
65
65
  export var errorDecorationsField = StateField.define({
66
66
  create: function create() {
@@ -118,34 +118,34 @@ export var errorDecorationsField = StateField.define({
118
118
  }
119
119
  });
120
120
 
121
- /**
122
- * 创建错误标注扩展
123
- *
124
- * @param errors - 错误列表
125
- * @returns CodeMirror 扩展数组
126
- *
127
- * @example
128
- * ```typescript
129
- * const extensions = [
130
- * javascript(),
131
- * createErrorMarkers(errors)
132
- * ];
133
- * ```
121
+ /**
122
+ * 创建错误标注扩展
123
+ *
124
+ * @param errors - 错误列表
125
+ * @returns CodeMirror 扩展数组
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const extensions = [
130
+ * javascript(),
131
+ * createErrorMarkers(errors)
132
+ * ];
133
+ * ```
134
134
  */
135
135
  export var createErrorMarkers = function createErrorMarkers(errors) {
136
136
  return [errorDecorationsField];
137
137
  };
138
138
 
139
- /**
140
- * 更新错误标注的辅助函数
141
- *
142
- * @param view - EditorView 实例
143
- * @param errors - 新的错误列表
144
- *
145
- * @example
146
- * ```typescript
147
- * updateErrorMarkers(editorView, validationErrors);
148
- * ```
139
+ /**
140
+ * 更新错误标注的辅助函数
141
+ *
142
+ * @param view - EditorView 实例
143
+ * @param errors - 新的错误列表
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * updateErrorMarkers(editorView, validationErrors);
148
+ * ```
149
149
  */
150
150
  export var updateErrorMarkers = function updateErrorMarkers(view, errors) {
151
151
  view.dispatch({
@@ -1,7 +1,7 @@
1
- /**
2
- * React Hooks for RegexEditor
3
- *
4
- * @module RegexEditor/hooks
1
+ /**
2
+ * React Hooks for RegexEditor
3
+ *
4
+ * @module RegexEditor/hooks
5
5
  */
6
6
 
7
7
  export { useRegexValidation } from "./useRegexValidation";