@nokecy/qc-ui 1.0.66 → 1.0.68

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 (143) hide show
  1. package/dist/cjs/ag-grid-plus/hooks/useGridPlusColumnState.d.ts +12 -0
  2. package/dist/cjs/ag-grid-plus/hooks/useGridPlusColumnState.js +15 -0
  3. package/dist/cjs/ag-grid-plus/index.d.ts +2 -9
  4. package/dist/cjs/ag-grid-plus/index.js +8 -6
  5. package/dist/cjs/ag-grid-plus/setting/index.js +2 -2
  6. package/dist/cjs/array-table/columnHelper.d.ts +126 -0
  7. package/dist/cjs/array-table/columnHelper.js +241 -0
  8. package/dist/cjs/array-table/hooks.d.ts +23 -0
  9. package/dist/cjs/array-table/hooks.js +230 -0
  10. package/dist/cjs/array-table/index.js +141 -208
  11. package/dist/cjs/components/RegexEditor/core/RegexEditor.d.ts +34 -0
  12. package/dist/cjs/components/RegexEditor/core/RegexEditor.js +223 -0
  13. package/dist/cjs/components/RegexEditor/core/RegexEditor.less +119 -0
  14. package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.d.ts +49 -0
  15. package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.js +158 -0
  16. package/dist/cjs/components/RegexEditor/core/types.d.ts +79 -0
  17. package/dist/cjs/components/RegexEditor/core/types.js +5 -0
  18. package/dist/cjs/components/RegexEditor/hooks/index.d.ts +9 -0
  19. package/dist/cjs/components/RegexEditor/hooks/index.js +19 -0
  20. package/dist/cjs/components/RegexEditor/hooks/useRegexTester.d.ts +95 -0
  21. package/dist/cjs/components/RegexEditor/hooks/useRegexTester.js +234 -0
  22. package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.d.ts +71 -0
  23. package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.js +215 -0
  24. package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.d.ts +64 -0
  25. package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.js +438 -0
  26. package/dist/cjs/components/RegexEditor/index.d.ts +16 -0
  27. package/dist/cjs/components/RegexEditor/index.js +232 -0
  28. package/dist/cjs/components/RegexEditor/templates/TemplateSelector.d.ts +36 -0
  29. package/dist/cjs/components/RegexEditor/templates/TemplateSelector.js +322 -0
  30. package/dist/cjs/components/RegexEditor/templates/builtinTemplates.d.ts +36 -0
  31. package/dist/cjs/components/RegexEditor/templates/builtinTemplates.js +340 -0
  32. package/dist/cjs/components/RegexEditor/templates/index.d.ts +10 -0
  33. package/dist/cjs/components/RegexEditor/templates/index.js +184 -0
  34. package/dist/cjs/components/RegexEditor/templates/storage.d.ts +74 -0
  35. package/dist/cjs/components/RegexEditor/templates/storage.js +337 -0
  36. package/dist/cjs/components/RegexEditor/templates/templateManager.d.ts +67 -0
  37. package/dist/cjs/components/RegexEditor/templates/templateManager.js +277 -0
  38. package/dist/cjs/components/RegexEditor/templates/types.d.ts +111 -0
  39. package/dist/cjs/components/RegexEditor/templates/types.js +94 -0
  40. package/dist/cjs/components/RegexEditor/testing/types.d.ts +55 -0
  41. package/dist/cjs/components/RegexEditor/testing/types.js +5 -0
  42. package/dist/cjs/components/RegexEditor/validation/complexity.d.ts +22 -0
  43. package/dist/cjs/components/RegexEditor/validation/complexity.js +196 -0
  44. package/dist/cjs/components/RegexEditor/validation/parser.d.ts +53 -0
  45. package/dist/cjs/components/RegexEditor/validation/parser.js +129 -0
  46. package/dist/cjs/components/RegexEditor/validation/types.d.ts +146 -0
  47. package/dist/cjs/components/RegexEditor/validation/types.js +5 -0
  48. package/dist/cjs/components/RegexEditor/validation/validator.d.ts +60 -0
  49. package/dist/cjs/components/RegexEditor/validation/validator.js +218 -0
  50. package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.d.ts +20 -0
  51. package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.js +98 -0
  52. package/dist/cjs/components/RegexEditor/visualizer/MatchItem.d.ts +25 -0
  53. package/dist/cjs/components/RegexEditor/visualizer/MatchItem.js +201 -0
  54. package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts +32 -0
  55. package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.js +192 -0
  56. package/dist/cjs/components/RegexEditor/visualizer/RegexTester.d.ts +22 -0
  57. package/dist/cjs/components/RegexEditor/visualizer/RegexTester.js +255 -0
  58. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.d.ts +19 -0
  59. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +155 -0
  60. package/dist/cjs/components/RegexEditor/visualizer/index.d.ts +12 -0
  61. package/dist/cjs/components/RegexEditor/visualizer/index.js +76 -0
  62. package/dist/cjs/components/RegexEditor/visualizer/types.d.ts +131 -0
  63. package/dist/cjs/components/RegexEditor/visualizer/types.js +5 -0
  64. package/dist/cjs/components/RegexEditor/visualizer/utils.d.ts +106 -0
  65. package/dist/cjs/components/RegexEditor/visualizer/utils.js +268 -0
  66. package/dist/cjs/index.d.ts +6 -2
  67. package/dist/cjs/index.js +68 -0
  68. package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  69. package/dist/cjs/standardFormDialog/withStandardForm.d.ts +2 -2
  70. package/dist/cjs/types/railroad-diagrams.d.ts +59 -0
  71. package/dist/cjs/types/regexp-tree.d.ts +175 -0
  72. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.d.ts +12 -0
  73. package/dist/esm/ag-grid-plus/hooks/useGridPlusColumnState.js +10 -0
  74. package/dist/esm/ag-grid-plus/index.d.ts +2 -9
  75. package/dist/esm/ag-grid-plus/index.js +2 -5
  76. package/dist/esm/ag-grid-plus/setting/index.js +1 -1
  77. package/dist/esm/array-table/columnHelper.d.ts +126 -0
  78. package/dist/esm/array-table/columnHelper.js +235 -0
  79. package/dist/esm/array-table/hooks.d.ts +23 -0
  80. package/dist/esm/array-table/hooks.js +224 -0
  81. package/dist/esm/array-table/index.js +142 -209
  82. package/dist/esm/components/RegexEditor/core/RegexEditor.d.ts +34 -0
  83. package/dist/esm/components/RegexEditor/core/RegexEditor.js +214 -0
  84. package/dist/esm/components/RegexEditor/core/RegexEditor.less +119 -0
  85. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.d.ts +49 -0
  86. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.js +154 -0
  87. package/dist/esm/components/RegexEditor/core/types.d.ts +79 -0
  88. package/dist/esm/components/RegexEditor/core/types.js +1 -0
  89. package/dist/esm/components/RegexEditor/hooks/index.d.ts +9 -0
  90. package/dist/esm/components/RegexEditor/hooks/index.js +8 -0
  91. package/dist/esm/components/RegexEditor/hooks/useRegexTester.d.ts +95 -0
  92. package/dist/esm/components/RegexEditor/hooks/useRegexTester.js +230 -0
  93. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.d.ts +71 -0
  94. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.js +211 -0
  95. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.d.ts +64 -0
  96. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.js +430 -0
  97. package/dist/esm/components/RegexEditor/index.d.ts +16 -0
  98. package/dist/esm/components/RegexEditor/index.js +27 -0
  99. package/dist/esm/components/RegexEditor/templates/TemplateSelector.d.ts +36 -0
  100. package/dist/esm/components/RegexEditor/templates/TemplateSelector.js +316 -0
  101. package/dist/esm/components/RegexEditor/templates/builtinTemplates.d.ts +36 -0
  102. package/dist/esm/components/RegexEditor/templates/builtinTemplates.js +335 -0
  103. package/dist/esm/components/RegexEditor/templates/index.d.ts +10 -0
  104. package/dist/esm/components/RegexEditor/templates/index.js +19 -0
  105. package/dist/esm/components/RegexEditor/templates/storage.d.ts +74 -0
  106. package/dist/esm/components/RegexEditor/templates/storage.js +335 -0
  107. package/dist/esm/components/RegexEditor/templates/templateManager.d.ts +67 -0
  108. package/dist/esm/components/RegexEditor/templates/templateManager.js +274 -0
  109. package/dist/esm/components/RegexEditor/templates/types.d.ts +111 -0
  110. package/dist/esm/components/RegexEditor/templates/types.js +90 -0
  111. package/dist/esm/components/RegexEditor/testing/types.d.ts +55 -0
  112. package/dist/esm/components/RegexEditor/testing/types.js +1 -0
  113. package/dist/esm/components/RegexEditor/validation/complexity.d.ts +22 -0
  114. package/dist/esm/components/RegexEditor/validation/complexity.js +190 -0
  115. package/dist/esm/components/RegexEditor/validation/parser.d.ts +53 -0
  116. package/dist/esm/components/RegexEditor/validation/parser.js +123 -0
  117. package/dist/esm/components/RegexEditor/validation/types.d.ts +145 -0
  118. package/dist/esm/components/RegexEditor/validation/types.js +1 -0
  119. package/dist/esm/components/RegexEditor/validation/validator.d.ts +60 -0
  120. package/dist/esm/components/RegexEditor/validation/validator.js +213 -0
  121. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.d.ts +20 -0
  122. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.js +93 -0
  123. package/dist/esm/components/RegexEditor/visualizer/MatchItem.d.ts +25 -0
  124. package/dist/esm/components/RegexEditor/visualizer/MatchItem.js +194 -0
  125. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts +32 -0
  126. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.js +186 -0
  127. package/dist/esm/components/RegexEditor/visualizer/RegexTester.d.ts +22 -0
  128. package/dist/esm/components/RegexEditor/visualizer/RegexTester.js +248 -0
  129. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts +18 -0
  130. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +150 -0
  131. package/dist/esm/components/RegexEditor/visualizer/index.d.ts +12 -0
  132. package/dist/esm/components/RegexEditor/visualizer/index.js +17 -0
  133. package/dist/esm/components/RegexEditor/visualizer/types.d.ts +131 -0
  134. package/dist/esm/components/RegexEditor/visualizer/types.js +1 -0
  135. package/dist/esm/components/RegexEditor/visualizer/utils.d.ts +106 -0
  136. package/dist/esm/components/RegexEditor/visualizer/utils.js +256 -0
  137. package/dist/esm/index.d.ts +6 -2
  138. package/dist/esm/index.js +7 -3
  139. package/dist/esm/types/railroad-diagrams.d.ts +59 -0
  140. package/dist/esm/types/regexp-tree.d.ts +175 -0
  141. package/dist/umd/qc-ui.min.css +1 -1
  142. package/dist/umd/qc-ui.min.js +1 -1
  143. package/package.json +23 -7
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FlagsSelector", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _visualizer.FlagsSelector;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "MatchItem", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _visualizer.MatchItem;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "RegexEditor", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _RegexEditor.RegexEditor;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "RegexRailroadDiagram", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _visualizer.RegexRailroadDiagram;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "RegexTester", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _visualizer.RegexTester;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "TemplateCategory", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _types.TemplateCategory;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "TemplateSelector", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _TemplateSelector.TemplateSelector;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "analyzeComplexity", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _complexity.analyzeComplexity;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "clearAllTemplates", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _storage.clearAllTemplates;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "createCustomTemplate", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _templateManager.createCustomTemplate;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "deleteCustomTemplate", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _templateManager.deleteCustomTemplate;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "deleteStoredTemplate", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _storage.deleteCustomTemplate;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "duplicateTemplate", {
79
+ enumerable: true,
80
+ get: function get() {
81
+ return _templateManager.duplicateTemplate;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "exportTemplates", {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _storage.exportTemplates;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "getAllTemplates", {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _templateManager.getAllTemplates;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "getMostUsedTemplates", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _templateManager.getMostUsedTemplates;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "getRecentlyUsedTemplates", {
103
+ enumerable: true,
104
+ get: function get() {
105
+ return _templateManager.getRecentlyUsedTemplates;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "getStorageStats", {
109
+ enumerable: true,
110
+ get: function get() {
111
+ return _storage.getStorageStats;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "getTemplateById", {
115
+ enumerable: true,
116
+ get: function get() {
117
+ return _templateManager.getTemplateById;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "getTemplateStats", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _templateManager.getTemplateStats;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "getTemplatesByCategory", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _templateManager.getTemplatesByCategory;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "importTemplates", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _storage.importTemplates;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "isStorageAvailable", {
139
+ enumerable: true,
140
+ get: function get() {
141
+ return _storage.isStorageAvailable;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "loadCustomTemplates", {
145
+ enumerable: true,
146
+ get: function get() {
147
+ return _storage.loadCustomTemplates;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "parseRegex", {
151
+ enumerable: true,
152
+ get: function get() {
153
+ return _parser.parseRegex;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "saveCustomTemplate", {
157
+ enumerable: true,
158
+ get: function get() {
159
+ return _storage.saveCustomTemplate;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "searchTemplates", {
163
+ enumerable: true,
164
+ get: function get() {
165
+ return _templateManager.searchTemplates;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "traverseAST", {
169
+ enumerable: true,
170
+ get: function get() {
171
+ return _parser.traverseAST;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "updateCustomTemplate", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _templateManager.updateCustomTemplate;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "updateTemplateUsage", {
181
+ enumerable: true,
182
+ get: function get() {
183
+ return _storage.updateTemplateUsage;
184
+ }
185
+ });
186
+ Object.defineProperty(exports, "useRegexValidation", {
187
+ enumerable: true,
188
+ get: function get() {
189
+ return _useRegexValidation.useRegexValidation;
190
+ }
191
+ });
192
+ Object.defineProperty(exports, "useTemplate", {
193
+ enumerable: true,
194
+ get: function get() {
195
+ return _templateManager.useTemplate;
196
+ }
197
+ });
198
+ Object.defineProperty(exports, "useTemplateManager", {
199
+ enumerable: true,
200
+ get: function get() {
201
+ return _useTemplateManager.useTemplateManager;
202
+ }
203
+ });
204
+ Object.defineProperty(exports, "validatePattern", {
205
+ enumerable: true,
206
+ get: function get() {
207
+ return _validator.validatePattern;
208
+ }
209
+ });
210
+ Object.defineProperty(exports, "validateRegex", {
211
+ enumerable: true,
212
+ get: function get() {
213
+ return _validator.validateRegex;
214
+ }
215
+ });
216
+ Object.defineProperty(exports, "validateTemplate", {
217
+ enumerable: true,
218
+ get: function get() {
219
+ return _templateManager.validateTemplate;
220
+ }
221
+ });
222
+ var _RegexEditor = require("./core/RegexEditor");
223
+ var _visualizer = require("./visualizer");
224
+ var _parser = require("./validation/parser");
225
+ var _validator = require("./validation/validator");
226
+ var _complexity = require("./validation/complexity");
227
+ var _useRegexValidation = require("./hooks/useRegexValidation");
228
+ var _useTemplateManager = require("./hooks/useTemplateManager");
229
+ var _templateManager = require("./templates/templateManager");
230
+ var _storage = require("./templates/storage");
231
+ var _TemplateSelector = require("./templates/TemplateSelector");
232
+ var _types = require("./templates/types");
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 模板选择器组件
3
+ *
4
+ * @module RegexEditor/templates/TemplateSelector
5
+ * @description 提供模板选择、搜索、分类筛选等功能的UI组件
6
+ */
7
+ import React from 'react';
8
+ import type { RegexTemplate } from './types';
9
+ /**
10
+ * 模板选择器组件属性
11
+ */
12
+ export interface TemplateSelectorProps {
13
+ /** 可用的模板列表 */
14
+ templates: RegexTemplate[];
15
+ /** 选择模板的回调 */
16
+ onSelect: (template: RegexTemplate) => void;
17
+ /** 当前选中的模板ID */
18
+ selectedId?: string;
19
+ /** 是否显示自定义模板 */
20
+ showCustom?: boolean;
21
+ /** 自定义样式类名 */
22
+ className?: string;
23
+ }
24
+ /**
25
+ * 模板选择器组件
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <TemplateSelector
30
+ * templates={allTemplates}
31
+ * onSelect={(template) => setPattern(template.pattern)}
32
+ * selectedId={currentTemplateId}
33
+ * />
34
+ * ```
35
+ */
36
+ export declare const TemplateSelector: React.FC<TemplateSelectorProps>;
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TemplateSelector = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _antd = require("antd");
9
+ var _icons = require("@ant-design/icons");
10
+ var _types = require("./types");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ 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); }
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ 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); }
21
+ 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; }
22
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
+ 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; }
25
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
26
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
27
+ * 模板选择器组件
28
+ *
29
+ * @module RegexEditor/templates/TemplateSelector
30
+ * @description 提供模板选择、搜索、分类筛选等功能的UI组件
31
+ */
32
+ var Search = _antd.Input.Search;
33
+ var Option = _antd.Select.Option;
34
+ var Text = _antd.Typography.Text,
35
+ Paragraph = _antd.Typography.Paragraph;
36
+
37
+ /**
38
+ * 模板选择器组件属性
39
+ */
40
+
41
+ /**
42
+ * 分类显示名称映射
43
+ */
44
+ var CATEGORY_LABELS = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, _types.TemplateCategory.BUSINESS, '业务模板'), _types.TemplateCategory.COMMON, '通用模式'), _types.TemplateCategory.DATE_TIME, '日期时间'), _types.TemplateCategory.NUMBER, '数字格式'), _types.TemplateCategory.TEXT, '文本格式'), _types.TemplateCategory.VALIDATION, '数据验证'), _types.TemplateCategory.EXTRACTION, '数据提取'), _types.TemplateCategory.CUSTOM, '自定义');
45
+
46
+ /**
47
+ * 复杂度标签配置
48
+ */
49
+ var COMPLEXITY_CONFIG = {
50
+ simple: {
51
+ label: '简单',
52
+ color: 'success'
53
+ },
54
+ medium: {
55
+ label: '中等',
56
+ color: 'warning'
57
+ },
58
+ complex: {
59
+ label: '复杂',
60
+ color: 'error'
61
+ }
62
+ };
63
+
64
+ /**
65
+ * 模板选择器组件
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * <TemplateSelector
70
+ * templates={allTemplates}
71
+ * onSelect={(template) => setPattern(template.pattern)}
72
+ * selectedId={currentTemplateId}
73
+ * />
74
+ * ```
75
+ */
76
+ var TemplateSelector = exports.TemplateSelector = function TemplateSelector(_ref) {
77
+ var templates = _ref.templates,
78
+ onSelect = _ref.onSelect,
79
+ selectedId = _ref.selectedId,
80
+ _ref$showCustom = _ref.showCustom,
81
+ showCustom = _ref$showCustom === void 0 ? true : _ref$showCustom,
82
+ className = _ref.className;
83
+ var _useState = (0, _react.useState)(''),
84
+ _useState2 = _slicedToArray(_useState, 2),
85
+ searchKeyword = _useState2[0],
86
+ setSearchKeyword = _useState2[1];
87
+ var _useState3 = (0, _react.useState)('all'),
88
+ _useState4 = _slicedToArray(_useState3, 2),
89
+ selectedCategory = _useState4[0],
90
+ setSelectedCategory = _useState4[1];
91
+ var _useState5 = (0, _react.useState)('default'),
92
+ _useState6 = _slicedToArray(_useState5, 2),
93
+ sortBy = _useState6[0],
94
+ setSortBy = _useState6[1];
95
+
96
+ /**
97
+ * 过滤和排序后的模板列表
98
+ */
99
+ var filteredTemplates = (0, _react.useMemo)(function () {
100
+ var result = templates;
101
+
102
+ // 分类筛选
103
+ if (selectedCategory !== 'all') {
104
+ result = result.filter(function (t) {
105
+ return t.category === selectedCategory;
106
+ });
107
+ }
108
+
109
+ // 隐藏自定义模板(如果需要)
110
+ if (!showCustom) {
111
+ result = result.filter(function (t) {
112
+ return !t.isCustom;
113
+ });
114
+ }
115
+
116
+ // 关键字搜索
117
+ if (searchKeyword) {
118
+ var keyword = searchKeyword.toLowerCase();
119
+ result = result.filter(function (t) {
120
+ return t.name.toLowerCase().includes(keyword) || t.description.toLowerCase().includes(keyword) || t.tags.some(function (tag) {
121
+ return tag.toLowerCase().includes(keyword);
122
+ }) || t.pattern.toLowerCase().includes(keyword);
123
+ });
124
+ }
125
+
126
+ // 排序
127
+ if (sortBy === 'popular') {
128
+ result = _toConsumableArray(result).sort(function (a, b) {
129
+ return (b.useCount || 0) - (a.useCount || 0);
130
+ });
131
+ } else if (sortBy === 'recent') {
132
+ result = _toConsumableArray(result).sort(function (a, b) {
133
+ var _a$lastUsed, _b$lastUsed;
134
+ var aTime = ((_a$lastUsed = a.lastUsed) === null || _a$lastUsed === void 0 ? void 0 : _a$lastUsed.getTime()) || 0;
135
+ var bTime = ((_b$lastUsed = b.lastUsed) === null || _b$lastUsed === void 0 ? void 0 : _b$lastUsed.getTime()) || 0;
136
+ return bTime - aTime;
137
+ });
138
+ }
139
+ return result;
140
+ }, [templates, selectedCategory, searchKeyword, sortBy, showCustom]);
141
+
142
+ /**
143
+ * 渲染模板卡片
144
+ */
145
+ var renderTemplateCard = function renderTemplateCard(template) {
146
+ var isSelected = template.id === selectedId;
147
+ var complexityConfig = COMPLEXITY_CONFIG[template.complexity];
148
+ return /*#__PURE__*/_react.default.createElement(_antd.Card, {
149
+ key: template.id,
150
+ size: "small",
151
+ hoverable: true,
152
+ className: "template-card ".concat(isSelected ? 'template-card-selected' : ''),
153
+ onClick: function onClick() {
154
+ return onSelect(template);
155
+ },
156
+ style: {
157
+ marginBottom: 12,
158
+ borderColor: isSelected ? '#1890ff' : undefined,
159
+ backgroundColor: isSelected ? '#e6f7ff' : undefined
160
+ }
161
+ }, /*#__PURE__*/_react.default.createElement(_antd.Space, {
162
+ direction: "vertical",
163
+ size: 4,
164
+ style: {
165
+ width: '100%'
166
+ }
167
+ }, /*#__PURE__*/_react.default.createElement("div", {
168
+ style: {
169
+ display: 'flex',
170
+ justifyContent: 'space-between',
171
+ alignItems: 'center'
172
+ }
173
+ }, /*#__PURE__*/_react.default.createElement(Text, {
174
+ strong: true
175
+ }, template.name), /*#__PURE__*/_react.default.createElement(_antd.Space, {
176
+ size: 4
177
+ }, template.isCustom && /*#__PURE__*/_react.default.createElement(_antd.Tag, {
178
+ color: "purple",
179
+ icon: /*#__PURE__*/_react.default.createElement(_icons.StarOutlined, null)
180
+ }, "\u81EA\u5B9A\u4E49"), /*#__PURE__*/_react.default.createElement(_antd.Tag, {
181
+ color: complexityConfig.color
182
+ }, complexityConfig.label))), /*#__PURE__*/_react.default.createElement(Paragraph, {
183
+ type: "secondary",
184
+ style: {
185
+ margin: 0,
186
+ fontSize: 12
187
+ },
188
+ ellipsis: {
189
+ rows: 2,
190
+ tooltip: template.description
191
+ }
192
+ }, template.description), /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
193
+ title: "\u70B9\u51FB\u5E94\u7528\u6B64\u6A21\u677F"
194
+ }, /*#__PURE__*/_react.default.createElement("code", {
195
+ style: {
196
+ display: 'block',
197
+ padding: '4px 8px',
198
+ backgroundColor: '#f5f5f5',
199
+ borderRadius: 4,
200
+ fontSize: 12,
201
+ overflow: 'hidden',
202
+ textOverflow: 'ellipsis',
203
+ whiteSpace: 'nowrap'
204
+ }
205
+ }, template.pattern)), /*#__PURE__*/_react.default.createElement("div", {
206
+ style: {
207
+ display: 'flex',
208
+ justifyContent: 'space-between',
209
+ alignItems: 'center'
210
+ }
211
+ }, /*#__PURE__*/_react.default.createElement(_antd.Space, {
212
+ size: 4,
213
+ wrap: true
214
+ }, template.tags.slice(0, 3).map(function (tag) {
215
+ return /*#__PURE__*/_react.default.createElement(_antd.Tag, {
216
+ key: tag,
217
+ style: {
218
+ margin: 0,
219
+ fontSize: 11
220
+ }
221
+ }, tag);
222
+ }), template.tags.length > 3 && /*#__PURE__*/_react.default.createElement(_antd.Tag, {
223
+ style: {
224
+ margin: 0,
225
+ fontSize: 11
226
+ }
227
+ }, "+", template.tags.length - 3)), /*#__PURE__*/_react.default.createElement(_antd.Space, {
228
+ size: 8,
229
+ style: {
230
+ fontSize: 11,
231
+ color: '#999'
232
+ }
233
+ }, template.useCount !== undefined && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_icons.FireOutlined, null), " ", template.useCount), template.lastUsed && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_icons.ClockCircleOutlined, null), " ", formatDate(template.lastUsed))))));
234
+ };
235
+ return /*#__PURE__*/_react.default.createElement("div", {
236
+ className: className,
237
+ style: {
238
+ height: '100%',
239
+ display: 'flex',
240
+ flexDirection: 'column'
241
+ }
242
+ }, /*#__PURE__*/_react.default.createElement(_antd.Space, {
243
+ direction: "vertical",
244
+ size: 12,
245
+ style: {
246
+ marginBottom: 16
247
+ }
248
+ }, /*#__PURE__*/_react.default.createElement(Search, {
249
+ placeholder: "\u641C\u7D22\u6A21\u677F\u540D\u79F0\u3001\u63CF\u8FF0\u6216\u6807\u7B7E...",
250
+ allowClear: true,
251
+ prefix: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
252
+ value: searchKeyword,
253
+ onChange: function onChange(e) {
254
+ return setSearchKeyword(e.target.value);
255
+ }
256
+ }), /*#__PURE__*/_react.default.createElement(_antd.Space, {
257
+ size: 8,
258
+ style: {
259
+ width: '100%'
260
+ }
261
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select, {
262
+ style: {
263
+ flex: 1
264
+ },
265
+ value: selectedCategory,
266
+ onChange: setSelectedCategory,
267
+ placeholder: "\u9009\u62E9\u5206\u7C7B"
268
+ }, /*#__PURE__*/_react.default.createElement(Option, {
269
+ value: "all"
270
+ }, "\u5168\u90E8\u5206\u7C7B"), Object.entries(CATEGORY_LABELS).map(function (_ref2) {
271
+ var _ref3 = _slicedToArray(_ref2, 2),
272
+ value = _ref3[0],
273
+ label = _ref3[1];
274
+ return /*#__PURE__*/_react.default.createElement(Option, {
275
+ key: value,
276
+ value: value
277
+ }, label);
278
+ })), /*#__PURE__*/_react.default.createElement(_antd.Select, {
279
+ style: {
280
+ width: 100
281
+ },
282
+ value: sortBy,
283
+ onChange: setSortBy
284
+ }, /*#__PURE__*/_react.default.createElement(Option, {
285
+ value: "default"
286
+ }, "\u9ED8\u8BA4"), /*#__PURE__*/_react.default.createElement(Option, {
287
+ value: "popular"
288
+ }, "\u6700\u70ED\u95E8"), /*#__PURE__*/_react.default.createElement(Option, {
289
+ value: "recent"
290
+ }, "\u6700\u8FD1\u4F7F\u7528")))), /*#__PURE__*/_react.default.createElement("div", {
291
+ style: {
292
+ flex: 1,
293
+ overflowY: 'auto'
294
+ }
295
+ }, filteredTemplates.length > 0 ? filteredTemplates.map(renderTemplateCard) : /*#__PURE__*/_react.default.createElement(_antd.Empty, {
296
+ description: searchKeyword || selectedCategory !== 'all' ? '没有找到匹配的模板' : '暂无可用模板'
297
+ })), /*#__PURE__*/_react.default.createElement("div", {
298
+ style: {
299
+ marginTop: 12,
300
+ paddingTop: 12,
301
+ borderTop: '1px solid #f0f0f0',
302
+ fontSize: 12,
303
+ color: '#999',
304
+ textAlign: 'center'
305
+ }
306
+ }, "\u5171 ", filteredTemplates.length, " \u4E2A\u6A21\u677F", searchKeyword && " (\u641C\u7D22: \"".concat(searchKeyword, "\")")));
307
+ };
308
+
309
+ /**
310
+ * 格式化日期显示
311
+ */
312
+ function formatDate(date) {
313
+ var now = new Date();
314
+ var diff = now.getTime() - date.getTime();
315
+ var days = Math.floor(diff / (1000 * 60 * 60 * 24));
316
+ if (days === 0) return '今天';
317
+ if (days === 1) return '昨天';
318
+ if (days < 7) return "".concat(days, "\u5929\u524D");
319
+ if (days < 30) return "".concat(Math.floor(days / 7), "\u5468\u524D");
320
+ if (days < 365) return "".concat(Math.floor(days / 30), "\u6708\u524D");
321
+ return "".concat(Math.floor(days / 365), "\u5E74\u524D");
322
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 内置正则表达式模板库
3
+ *
4
+ * @module RegexEditor/templates/builtinTemplates
5
+ * @description 提供20+个精心设计的内置正则表达式模板,覆盖常见业务场景
6
+ */
7
+ import { RegexTemplate, TemplateCategory } from './types';
8
+ /**
9
+ * 内置模板库
10
+ *
11
+ * @description
12
+ * 包含以下分类:
13
+ * - 业务相关: 批次号、订单号、产品编码等
14
+ * - 通用模式: 邮箱、电话、URL、IP地址等
15
+ * - 日期时间: 各种日期时间格式
16
+ * - 数字格式: 整数、小数、货币等
17
+ * - 文本格式: 中文、英文、Unicode等
18
+ * - 数据验证: 长度、范围、格式验证
19
+ */
20
+ export declare const BUILTIN_TEMPLATES: RegexTemplate[];
21
+ /**
22
+ * 获取所有内置模板
23
+ */
24
+ export declare const getAllBuiltinTemplates: () => RegexTemplate[];
25
+ /**
26
+ * 按分类获取模板
27
+ */
28
+ export declare const getTemplatesByCategory: (category: TemplateCategory) => RegexTemplate[];
29
+ /**
30
+ * 按ID获取模板
31
+ */
32
+ export declare const getTemplateById: (id: string) => RegexTemplate | undefined;
33
+ /**
34
+ * 搜索模板(按名称、描述、标签)
35
+ */
36
+ export declare const searchTemplates: (keyword: string) => RegexTemplate[];