@nokecy/qc-ui 1.0.65 → 1.0.67

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 (197) hide show
  1. package/dist/cjs/RuleBuilder/LogicSelector.d.ts +23 -0
  2. package/dist/cjs/RuleBuilder/LogicSelector.js +54 -0
  3. package/dist/cjs/RuleBuilder/RuleBuilderContainer.d.ts +20 -0
  4. package/dist/cjs/RuleBuilder/RuleBuilderContainer.js +209 -0
  5. package/dist/cjs/RuleBuilder/RuleCard.d.ts +20 -0
  6. package/dist/cjs/RuleBuilder/RuleCard.js +196 -0
  7. package/dist/cjs/RuleBuilder/RuleGroupEditor.d.ts +25 -0
  8. package/dist/cjs/RuleBuilder/RuleGroupEditor.js +191 -0
  9. package/dist/cjs/RuleBuilder/constants/operators.d.ts +47 -0
  10. package/dist/cjs/RuleBuilder/constants/operators.js +172 -0
  11. package/dist/cjs/RuleBuilder/context/RuleBuilderContext.d.ts +72 -0
  12. package/dist/cjs/RuleBuilder/context/RuleBuilderContext.js +286 -0
  13. package/dist/cjs/RuleBuilder/index.d.ts +25 -0
  14. package/dist/cjs/RuleBuilder/index.js +308 -0
  15. package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.d.ts +23 -0
  16. package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.js +80 -0
  17. package/dist/cjs/RuleBuilder/inputs/MultiValueInput.d.ts +21 -0
  18. package/dist/cjs/RuleBuilder/inputs/MultiValueInput.js +128 -0
  19. package/dist/cjs/RuleBuilder/inputs/SingleValueInput.d.ts +25 -0
  20. package/dist/cjs/RuleBuilder/inputs/SingleValueInput.js +81 -0
  21. package/dist/cjs/RuleBuilder/inputs/ValueInput.d.ts +29 -0
  22. package/dist/cjs/RuleBuilder/inputs/ValueInput.js +80 -0
  23. package/dist/cjs/RuleBuilder/selectors/FieldSelector.d.ts +22 -0
  24. package/dist/cjs/RuleBuilder/selectors/FieldSelector.js +45 -0
  25. package/dist/cjs/RuleBuilder/selectors/OperatorSelector.d.ts +22 -0
  26. package/dist/cjs/RuleBuilder/selectors/OperatorSelector.js +51 -0
  27. package/dist/cjs/RuleBuilder/styles/index.module.less +443 -0
  28. package/dist/cjs/RuleBuilder/styles/index.module.less.d.ts +43 -0
  29. package/dist/cjs/RuleBuilder/types/index.d.ts +232 -0
  30. package/dist/cjs/RuleBuilder/types/index.js +83 -0
  31. package/dist/cjs/RuleBuilder/utils/pathHelpers.d.ts +65 -0
  32. package/dist/cjs/RuleBuilder/utils/pathHelpers.js +241 -0
  33. package/dist/cjs/RuleBuilder/utils/ruleHelpers.d.ts +47 -0
  34. package/dist/cjs/RuleBuilder/utils/ruleHelpers.js +154 -0
  35. package/dist/cjs/RuleBuilder/utils/validation.d.ts +25 -0
  36. package/dist/cjs/RuleBuilder/utils/validation.js +241 -0
  37. package/dist/cjs/components/RegexEditor/core/RegexEditor.d.ts +34 -0
  38. package/dist/cjs/components/RegexEditor/core/RegexEditor.js +223 -0
  39. package/dist/cjs/components/RegexEditor/core/RegexEditor.less +119 -0
  40. package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.d.ts +49 -0
  41. package/dist/cjs/components/RegexEditor/core/extensions/errorMarker.js +158 -0
  42. package/dist/cjs/components/RegexEditor/core/types.d.ts +79 -0
  43. package/dist/cjs/components/RegexEditor/core/types.js +5 -0
  44. package/dist/cjs/components/RegexEditor/hooks/index.d.ts +9 -0
  45. package/dist/cjs/components/RegexEditor/hooks/index.js +19 -0
  46. package/dist/cjs/components/RegexEditor/hooks/useRegexTester.d.ts +95 -0
  47. package/dist/cjs/components/RegexEditor/hooks/useRegexTester.js +234 -0
  48. package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.d.ts +71 -0
  49. package/dist/cjs/components/RegexEditor/hooks/useRegexValidation.js +215 -0
  50. package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.d.ts +64 -0
  51. package/dist/cjs/components/RegexEditor/hooks/useTemplateManager.js +438 -0
  52. package/dist/cjs/components/RegexEditor/index.d.ts +16 -0
  53. package/dist/cjs/components/RegexEditor/index.js +232 -0
  54. package/dist/cjs/components/RegexEditor/templates/TemplateSelector.d.ts +36 -0
  55. package/dist/cjs/components/RegexEditor/templates/TemplateSelector.js +322 -0
  56. package/dist/cjs/components/RegexEditor/templates/builtinTemplates.d.ts +36 -0
  57. package/dist/cjs/components/RegexEditor/templates/builtinTemplates.js +340 -0
  58. package/dist/cjs/components/RegexEditor/templates/index.d.ts +10 -0
  59. package/dist/cjs/components/RegexEditor/templates/index.js +184 -0
  60. package/dist/cjs/components/RegexEditor/templates/storage.d.ts +74 -0
  61. package/dist/cjs/components/RegexEditor/templates/storage.js +337 -0
  62. package/dist/cjs/components/RegexEditor/templates/templateManager.d.ts +67 -0
  63. package/dist/cjs/components/RegexEditor/templates/templateManager.js +277 -0
  64. package/dist/cjs/components/RegexEditor/templates/types.d.ts +111 -0
  65. package/dist/cjs/components/RegexEditor/templates/types.js +94 -0
  66. package/dist/cjs/components/RegexEditor/testing/types.d.ts +55 -0
  67. package/dist/cjs/components/RegexEditor/testing/types.js +5 -0
  68. package/dist/cjs/components/RegexEditor/validation/complexity.d.ts +22 -0
  69. package/dist/cjs/components/RegexEditor/validation/complexity.js +196 -0
  70. package/dist/cjs/components/RegexEditor/validation/parser.d.ts +53 -0
  71. package/dist/cjs/components/RegexEditor/validation/parser.js +129 -0
  72. package/dist/cjs/components/RegexEditor/validation/types.d.ts +146 -0
  73. package/dist/cjs/components/RegexEditor/validation/types.js +5 -0
  74. package/dist/cjs/components/RegexEditor/validation/validator.d.ts +60 -0
  75. package/dist/cjs/components/RegexEditor/validation/validator.js +218 -0
  76. package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.d.ts +20 -0
  77. package/dist/cjs/components/RegexEditor/visualizer/FlagsSelector.js +98 -0
  78. package/dist/cjs/components/RegexEditor/visualizer/MatchItem.d.ts +25 -0
  79. package/dist/cjs/components/RegexEditor/visualizer/MatchItem.js +201 -0
  80. package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts +32 -0
  81. package/dist/cjs/components/RegexEditor/visualizer/RegexRailroadDiagram.js +192 -0
  82. package/dist/cjs/components/RegexEditor/visualizer/RegexTester.d.ts +22 -0
  83. package/dist/cjs/components/RegexEditor/visualizer/RegexTester.js +255 -0
  84. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.d.ts +19 -0
  85. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +155 -0
  86. package/dist/cjs/components/RegexEditor/visualizer/index.d.ts +12 -0
  87. package/dist/cjs/components/RegexEditor/visualizer/index.js +76 -0
  88. package/dist/cjs/components/RegexEditor/visualizer/types.d.ts +131 -0
  89. package/dist/cjs/components/RegexEditor/visualizer/types.js +5 -0
  90. package/dist/cjs/components/RegexEditor/visualizer/utils.d.ts +106 -0
  91. package/dist/cjs/components/RegexEditor/visualizer/utils.js +268 -0
  92. package/dist/cjs/index.d.ts +5 -1
  93. package/dist/cjs/index.js +62 -0
  94. package/dist/cjs/standardFormDialog/StandardFormDialog.js +26 -5
  95. package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  96. package/dist/cjs/standardFormDialog/withStandardForm.d.ts +2 -2
  97. package/dist/cjs/types/railroad-diagrams.d.ts +59 -0
  98. package/dist/cjs/types/regexp-tree.d.ts +175 -0
  99. package/dist/esm/RuleBuilder/LogicSelector.d.ts +23 -0
  100. package/dist/esm/RuleBuilder/LogicSelector.js +47 -0
  101. package/dist/esm/RuleBuilder/RuleBuilderContainer.d.ts +20 -0
  102. package/dist/esm/RuleBuilder/RuleBuilderContainer.js +203 -0
  103. package/dist/esm/RuleBuilder/RuleCard.d.ts +20 -0
  104. package/dist/esm/RuleBuilder/RuleCard.js +191 -0
  105. package/dist/esm/RuleBuilder/RuleGroupEditor.d.ts +25 -0
  106. package/dist/esm/RuleBuilder/RuleGroupEditor.js +184 -0
  107. package/dist/esm/RuleBuilder/constants/operators.d.ts +47 -0
  108. package/dist/esm/RuleBuilder/constants/operators.js +169 -0
  109. package/dist/esm/RuleBuilder/context/RuleBuilderContext.d.ts +72 -0
  110. package/dist/esm/RuleBuilder/context/RuleBuilderContext.js +271 -0
  111. package/dist/esm/RuleBuilder/index.d.ts +25 -0
  112. package/dist/esm/RuleBuilder/index.js +42 -0
  113. package/dist/esm/RuleBuilder/inputs/BetweenValueInput.d.ts +23 -0
  114. package/dist/esm/RuleBuilder/inputs/BetweenValueInput.js +73 -0
  115. package/dist/esm/RuleBuilder/inputs/MultiValueInput.d.ts +21 -0
  116. package/dist/esm/RuleBuilder/inputs/MultiValueInput.js +121 -0
  117. package/dist/esm/RuleBuilder/inputs/SingleValueInput.d.ts +25 -0
  118. package/dist/esm/RuleBuilder/inputs/SingleValueInput.js +74 -0
  119. package/dist/esm/RuleBuilder/inputs/ValueInput.d.ts +29 -0
  120. package/dist/esm/RuleBuilder/inputs/ValueInput.js +73 -0
  121. package/dist/esm/RuleBuilder/selectors/FieldSelector.d.ts +22 -0
  122. package/dist/esm/RuleBuilder/selectors/FieldSelector.js +38 -0
  123. package/dist/esm/RuleBuilder/selectors/OperatorSelector.d.ts +22 -0
  124. package/dist/esm/RuleBuilder/selectors/OperatorSelector.js +44 -0
  125. package/dist/esm/RuleBuilder/styles/index.module.less +443 -0
  126. package/dist/esm/RuleBuilder/styles/index.module.less.d.ts +43 -0
  127. package/dist/esm/RuleBuilder/types/index.d.ts +232 -0
  128. package/dist/esm/RuleBuilder/types/index.js +91 -0
  129. package/dist/esm/RuleBuilder/utils/pathHelpers.d.ts +65 -0
  130. package/dist/esm/RuleBuilder/utils/pathHelpers.js +228 -0
  131. package/dist/esm/RuleBuilder/utils/ruleHelpers.d.ts +47 -0
  132. package/dist/esm/RuleBuilder/utils/ruleHelpers.js +145 -0
  133. package/dist/esm/RuleBuilder/utils/validation.d.ts +25 -0
  134. package/dist/esm/RuleBuilder/utils/validation.js +236 -0
  135. package/dist/esm/components/RegexEditor/core/RegexEditor.d.ts +34 -0
  136. package/dist/esm/components/RegexEditor/core/RegexEditor.js +214 -0
  137. package/dist/esm/components/RegexEditor/core/RegexEditor.less +119 -0
  138. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.d.ts +49 -0
  139. package/dist/esm/components/RegexEditor/core/extensions/errorMarker.js +154 -0
  140. package/dist/esm/components/RegexEditor/core/types.d.ts +79 -0
  141. package/dist/esm/components/RegexEditor/core/types.js +1 -0
  142. package/dist/esm/components/RegexEditor/hooks/index.d.ts +9 -0
  143. package/dist/esm/components/RegexEditor/hooks/index.js +8 -0
  144. package/dist/esm/components/RegexEditor/hooks/useRegexTester.d.ts +95 -0
  145. package/dist/esm/components/RegexEditor/hooks/useRegexTester.js +230 -0
  146. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.d.ts +71 -0
  147. package/dist/esm/components/RegexEditor/hooks/useRegexValidation.js +211 -0
  148. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.d.ts +64 -0
  149. package/dist/esm/components/RegexEditor/hooks/useTemplateManager.js +430 -0
  150. package/dist/esm/components/RegexEditor/index.d.ts +16 -0
  151. package/dist/esm/components/RegexEditor/index.js +27 -0
  152. package/dist/esm/components/RegexEditor/templates/TemplateSelector.d.ts +36 -0
  153. package/dist/esm/components/RegexEditor/templates/TemplateSelector.js +316 -0
  154. package/dist/esm/components/RegexEditor/templates/builtinTemplates.d.ts +36 -0
  155. package/dist/esm/components/RegexEditor/templates/builtinTemplates.js +335 -0
  156. package/dist/esm/components/RegexEditor/templates/index.d.ts +10 -0
  157. package/dist/esm/components/RegexEditor/templates/index.js +19 -0
  158. package/dist/esm/components/RegexEditor/templates/storage.d.ts +74 -0
  159. package/dist/esm/components/RegexEditor/templates/storage.js +335 -0
  160. package/dist/esm/components/RegexEditor/templates/templateManager.d.ts +67 -0
  161. package/dist/esm/components/RegexEditor/templates/templateManager.js +274 -0
  162. package/dist/esm/components/RegexEditor/templates/types.d.ts +111 -0
  163. package/dist/esm/components/RegexEditor/templates/types.js +90 -0
  164. package/dist/esm/components/RegexEditor/testing/types.d.ts +55 -0
  165. package/dist/esm/components/RegexEditor/testing/types.js +1 -0
  166. package/dist/esm/components/RegexEditor/validation/complexity.d.ts +22 -0
  167. package/dist/esm/components/RegexEditor/validation/complexity.js +190 -0
  168. package/dist/esm/components/RegexEditor/validation/parser.d.ts +53 -0
  169. package/dist/esm/components/RegexEditor/validation/parser.js +123 -0
  170. package/dist/esm/components/RegexEditor/validation/types.d.ts +145 -0
  171. package/dist/esm/components/RegexEditor/validation/types.js +1 -0
  172. package/dist/esm/components/RegexEditor/validation/validator.d.ts +60 -0
  173. package/dist/esm/components/RegexEditor/validation/validator.js +213 -0
  174. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.d.ts +20 -0
  175. package/dist/esm/components/RegexEditor/visualizer/FlagsSelector.js +93 -0
  176. package/dist/esm/components/RegexEditor/visualizer/MatchItem.d.ts +25 -0
  177. package/dist/esm/components/RegexEditor/visualizer/MatchItem.js +194 -0
  178. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.d.ts +32 -0
  179. package/dist/esm/components/RegexEditor/visualizer/RegexRailroadDiagram.js +186 -0
  180. package/dist/esm/components/RegexEditor/visualizer/RegexTester.d.ts +22 -0
  181. package/dist/esm/components/RegexEditor/visualizer/RegexTester.js +248 -0
  182. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.d.ts +18 -0
  183. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +150 -0
  184. package/dist/esm/components/RegexEditor/visualizer/index.d.ts +12 -0
  185. package/dist/esm/components/RegexEditor/visualizer/index.js +17 -0
  186. package/dist/esm/components/RegexEditor/visualizer/types.d.ts +131 -0
  187. package/dist/esm/components/RegexEditor/visualizer/types.js +1 -0
  188. package/dist/esm/components/RegexEditor/visualizer/utils.d.ts +106 -0
  189. package/dist/esm/components/RegexEditor/visualizer/utils.js +256 -0
  190. package/dist/esm/index.d.ts +5 -1
  191. package/dist/esm/index.js +6 -2
  192. package/dist/esm/standardFormDialog/StandardFormDialog.js +26 -5
  193. package/dist/esm/types/railroad-diagrams.d.ts +59 -0
  194. package/dist/esm/types/regexp-tree.d.ts +175 -0
  195. package/dist/umd/qc-ui.min.css +1 -1
  196. package/dist/umd/qc-ui.min.js +1 -1
  197. package/package.json +23 -7
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.searchTemplates = exports.getTemplatesByCategory = exports.getTemplateById = exports.getAllBuiltinTemplates = exports.BUILTIN_TEMPLATES = void 0;
7
+ var _types = require("./types");
8
+ /**
9
+ * 内置正则表达式模板库
10
+ *
11
+ * @module RegexEditor/templates/builtinTemplates
12
+ * @description 提供20+个精心设计的内置正则表达式模板,覆盖常见业务场景
13
+ */
14
+
15
+ /**
16
+ * 内置模板库
17
+ *
18
+ * @description
19
+ * 包含以下分类:
20
+ * - 业务相关: 批次号、订单号、产品编码等
21
+ * - 通用模式: 邮箱、电话、URL、IP地址等
22
+ * - 日期时间: 各种日期时间格式
23
+ * - 数字格式: 整数、小数、货币等
24
+ * - 文本格式: 中文、英文、Unicode等
25
+ * - 数据验证: 长度、范围、格式验证
26
+ */
27
+ var BUILTIN_TEMPLATES = exports.BUILTIN_TEMPLATES = [
28
+ // ==================== 业务相关模板 ====================
29
+ {
30
+ id: 'lot-number',
31
+ name: '批次号',
32
+ pattern: '^LOT\\d{6}$',
33
+ description: '标准批次号格式: LOT + 6位数字',
34
+ category: _types.TemplateCategory.BUSINESS,
35
+ tags: ['批次', 'LOT', '业务', '编号'],
36
+ examples: {
37
+ valid: ['LOT123456', 'LOT000001', 'LOT999999'],
38
+ invalid: ['LOT12345', 'lot123456', 'LOT1234567', 'LOT-123456']
39
+ },
40
+ complexity: 'simple'
41
+ }, {
42
+ id: 'order-number',
43
+ name: '订单号',
44
+ pattern: '^ORD\\d{8,12}$',
45
+ description: '订单号格式: ORD + 8-12位数字',
46
+ category: _types.TemplateCategory.BUSINESS,
47
+ tags: ['订单', 'ORDER', '业务', '编号'],
48
+ examples: {
49
+ valid: ['ORD12345678', 'ORD123456789012'],
50
+ invalid: ['ORD1234567', 'ord12345678', 'ORD-12345678']
51
+ },
52
+ complexity: 'simple'
53
+ }, {
54
+ id: 'product-code',
55
+ name: '产品编码',
56
+ pattern: '^[A-Z]{2,4}\\d{4,8}$',
57
+ description: '产品编码: 2-4位大写字母 + 4-8位数字',
58
+ category: _types.TemplateCategory.BUSINESS,
59
+ tags: ['产品', 'SKU', '编码', '业务'],
60
+ examples: {
61
+ valid: ['AB1234', 'ABCD12345678', 'SKU00001234'],
62
+ invalid: ['ab1234', 'A1234', 'ABCDE123', 'AB-1234']
63
+ },
64
+ complexity: 'simple'
65
+ },
66
+ // ==================== 通用模式模板 ====================
67
+ {
68
+ id: 'email',
69
+ name: '电子邮箱',
70
+ pattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$',
71
+ description: '标准电子邮箱地址格式',
72
+ category: _types.TemplateCategory.COMMON,
73
+ tags: ['邮箱', 'email', '联系方式'],
74
+ examples: {
75
+ valid: ['user@example.com', 'test.user+tag@domain.co.uk'],
76
+ invalid: ['user@', '@example.com', 'user@.com', 'user example.com']
77
+ },
78
+ complexity: 'medium'
79
+ }, {
80
+ id: 'phone-cn',
81
+ name: '中国手机号',
82
+ pattern: '^1[3-9]\\d{9}$',
83
+ description: '中国大陆手机号码: 1开头 + 3-9的第二位 + 9位数字',
84
+ category: _types.TemplateCategory.COMMON,
85
+ tags: ['手机', '电话', '中国', '联系方式'],
86
+ examples: {
87
+ valid: ['13812345678', '18900001234', '19512345678'],
88
+ invalid: ['12345678901', '1381234567', '138-1234-5678']
89
+ },
90
+ complexity: 'simple'
91
+ }, {
92
+ id: 'url',
93
+ name: 'URL地址',
94
+ pattern: '^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$',
95
+ description: 'HTTP/HTTPS URL地址',
96
+ category: _types.TemplateCategory.COMMON,
97
+ tags: ['URL', '链接', '网址'],
98
+ examples: {
99
+ valid: ['https://example.com', 'http://www.example.com/path?query=1'],
100
+ invalid: ['example.com', 'ftp://example.com', 'https://']
101
+ },
102
+ complexity: 'complex'
103
+ }, {
104
+ id: 'ipv4',
105
+ name: 'IPv4地址',
106
+ pattern: '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$',
107
+ description: 'IPv4地址格式 (0.0.0.0 - 255.255.255.255)',
108
+ category: _types.TemplateCategory.COMMON,
109
+ tags: ['IP', 'IPv4', '网络', '地址'],
110
+ examples: {
111
+ valid: ['192.168.1.1', '10.0.0.1', '255.255.255.255', '0.0.0.0'],
112
+ invalid: ['256.1.1.1', '192.168.1', '192.168.1.1.1']
113
+ },
114
+ complexity: 'complex'
115
+ }, {
116
+ id: 'id-card-cn',
117
+ name: '中国身份证号',
118
+ pattern: '^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]$',
119
+ description: '中国大陆18位身份证号码',
120
+ category: _types.TemplateCategory.COMMON,
121
+ tags: ['身份证', '证件', '中国'],
122
+ examples: {
123
+ valid: ['110101199003071234', '44010119900307123X'],
124
+ invalid: ['11010119900307123', '110101199013071234']
125
+ },
126
+ complexity: 'complex'
127
+ },
128
+ // ==================== 日期时间模板 ====================
129
+ {
130
+ id: 'date-iso',
131
+ name: 'ISO日期',
132
+ pattern: '^\\d{4}-\\d{2}-\\d{2}$',
133
+ description: 'ISO 8601日期格式: YYYY-MM-DD',
134
+ category: _types.TemplateCategory.DATE_TIME,
135
+ tags: ['日期', 'ISO', 'YYYY-MM-DD'],
136
+ examples: {
137
+ valid: ['2025-01-27', '2024-12-31', '2000-01-01'],
138
+ invalid: ['2025/01/27', '25-01-27', '2025-1-27']
139
+ },
140
+ complexity: 'simple'
141
+ }, {
142
+ id: 'date-us',
143
+ name: '美式日期',
144
+ pattern: '^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$',
145
+ description: '美式日期格式: MM/DD/YYYY',
146
+ category: _types.TemplateCategory.DATE_TIME,
147
+ tags: ['日期', '美国', 'MM/DD/YYYY'],
148
+ examples: {
149
+ valid: ['01/27/2025', '12/31/2024'],
150
+ invalid: ['13/01/2025', '01/32/2025', '1/27/2025']
151
+ },
152
+ complexity: 'medium'
153
+ }, {
154
+ id: 'time-24h',
155
+ name: '24小时时间',
156
+ pattern: '^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$',
157
+ description: '24小时制时间: HH:MM 或 HH:MM:SS',
158
+ category: _types.TemplateCategory.DATE_TIME,
159
+ tags: ['时间', '24小时', 'HH:MM'],
160
+ examples: {
161
+ valid: ['23:59', '00:00', '12:30:45'],
162
+ invalid: ['24:00', '23:60', '1:30']
163
+ },
164
+ complexity: 'medium'
165
+ }, {
166
+ id: 'datetime-iso',
167
+ name: 'ISO日期时间',
168
+ pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?(Z|[+-]\\d{2}:\\d{2})$',
169
+ description: 'ISO 8601日期时间格式',
170
+ category: _types.TemplateCategory.DATE_TIME,
171
+ tags: ['日期时间', 'ISO', 'timestamp'],
172
+ examples: {
173
+ valid: ['2025-01-27T14:30:00Z', '2025-01-27T14:30:00.123+08:00'],
174
+ invalid: ['2025-01-27 14:30:00', '2025-01-27T14:30']
175
+ },
176
+ complexity: 'complex'
177
+ },
178
+ // ==================== 数字格式模板 ====================
179
+ {
180
+ id: 'integer',
181
+ name: '整数',
182
+ pattern: '^-?\\d+$',
183
+ description: '整数(可选负号)',
184
+ category: _types.TemplateCategory.NUMBER,
185
+ tags: ['数字', '整数', 'integer'],
186
+ examples: {
187
+ valid: ['123', '-456', '0'],
188
+ invalid: ['12.3', '1,234', '1e10']
189
+ },
190
+ complexity: 'simple'
191
+ }, {
192
+ id: 'decimal',
193
+ name: '小数',
194
+ pattern: '^-?\\d+\\.\\d+$',
195
+ description: '小数(必须有小数点和小数部分)',
196
+ category: _types.TemplateCategory.NUMBER,
197
+ tags: ['数字', '小数', 'decimal', 'float'],
198
+ examples: {
199
+ valid: ['12.34', '-0.5', '3.14159'],
200
+ invalid: ['12', '12.', '.5', '12,34']
201
+ },
202
+ complexity: 'simple'
203
+ }, {
204
+ id: 'currency',
205
+ name: '货币金额',
206
+ pattern: '^-?\\d{1,3}(,\\d{3})*(\\.\\d{1,2})?$',
207
+ description: '货币格式(千分位逗号,最多2位小数)',
208
+ category: _types.TemplateCategory.NUMBER,
209
+ tags: ['数字', '货币', '金额', 'money'],
210
+ examples: {
211
+ valid: ['1,234.56', '1,000', '-1,234,567.89'],
212
+ invalid: ['1234.56', '1,234.567', '1,23.45']
213
+ },
214
+ complexity: 'medium'
215
+ }, {
216
+ id: 'percentage',
217
+ name: '百分比',
218
+ pattern: '^-?\\d+(\\.\\d+)?%$',
219
+ description: '百分比格式(数字 + %)',
220
+ category: _types.TemplateCategory.NUMBER,
221
+ tags: ['数字', '百分比', 'percent'],
222
+ examples: {
223
+ valid: ['25%', '99.9%', '-10.5%'],
224
+ invalid: ['25', '%25', '25 %']
225
+ },
226
+ complexity: 'simple'
227
+ },
228
+ // ==================== 文本格式模板 ====================
229
+ {
230
+ id: 'chinese',
231
+ name: '中文字符',
232
+ pattern: "^[\\u4e00-\\u9fa5]+$",
233
+ description: '仅包含中文字符(汉字)',
234
+ category: _types.TemplateCategory.TEXT,
235
+ tags: ['文本', '中文', '汉字', 'chinese'],
236
+ examples: {
237
+ valid: ['你好', '中文测试', '北京'],
238
+ invalid: ['hello', '你好123', '你好!']
239
+ },
240
+ complexity: 'simple'
241
+ }, {
242
+ id: 'english-letters',
243
+ name: '英文字母',
244
+ pattern: '^[a-zA-Z]+$',
245
+ description: '仅包含英文字母(大小写)',
246
+ category: _types.TemplateCategory.TEXT,
247
+ tags: ['文本', '英文', '字母', 'english'],
248
+ examples: {
249
+ valid: ['hello', 'World', 'ABC'],
250
+ invalid: ['hello123', 'hello!', 'hello world']
251
+ },
252
+ complexity: 'simple'
253
+ }, {
254
+ id: 'alphanumeric',
255
+ name: '字母数字',
256
+ pattern: '^[a-zA-Z0-9]+$',
257
+ description: '仅包含字母和数字',
258
+ category: _types.TemplateCategory.TEXT,
259
+ tags: ['文本', '字母数字', 'alphanumeric'],
260
+ examples: {
261
+ valid: ['abc123', 'Test2025'],
262
+ invalid: ['abc-123', 'test_123', 'hello world']
263
+ },
264
+ complexity: 'simple'
265
+ },
266
+ // ==================== 数据验证模板 ====================
267
+ {
268
+ id: 'length-6-20',
269
+ name: '长度6-20字符',
270
+ pattern: '^.{6,20}$',
271
+ description: '任意字符,长度6-20',
272
+ category: _types.TemplateCategory.VALIDATION,
273
+ tags: ['验证', '长度', 'length', '密码'],
274
+ examples: {
275
+ valid: ['123456', 'a'.repeat(20)],
276
+ invalid: ['12345', 'a'.repeat(21)]
277
+ },
278
+ complexity: 'simple'
279
+ }, {
280
+ id: 'password-strong',
281
+ name: '强密码',
282
+ pattern: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$',
283
+ description: '至少8位,包含大小写字母、数字和特殊字符',
284
+ category: _types.TemplateCategory.VALIDATION,
285
+ tags: ['验证', '密码', 'password', '安全'],
286
+ examples: {
287
+ valid: ['Test@123', 'MyP@ssw0rd'],
288
+ invalid: ['test123', 'TEST123', 'Test123', 'short@1']
289
+ },
290
+ complexity: 'complex'
291
+ }, {
292
+ id: 'username',
293
+ name: '用户名',
294
+ pattern: '^[a-zA-Z0-9_]{3,16}$',
295
+ description: '3-16位字母数字下划线',
296
+ category: _types.TemplateCategory.VALIDATION,
297
+ tags: ['验证', '用户名', 'username'],
298
+ examples: {
299
+ valid: ['user123', 'test_user', 'MyUsername'],
300
+ invalid: ['us', 'user-name', 'a'.repeat(17)]
301
+ },
302
+ complexity: 'simple'
303
+ }];
304
+
305
+ /**
306
+ * 获取所有内置模板
307
+ */
308
+ var getAllBuiltinTemplates = exports.getAllBuiltinTemplates = function getAllBuiltinTemplates() {
309
+ return BUILTIN_TEMPLATES;
310
+ };
311
+
312
+ /**
313
+ * 按分类获取模板
314
+ */
315
+ var getTemplatesByCategory = exports.getTemplatesByCategory = function getTemplatesByCategory(category) {
316
+ return BUILTIN_TEMPLATES.filter(function (t) {
317
+ return t.category === category;
318
+ });
319
+ };
320
+
321
+ /**
322
+ * 按ID获取模板
323
+ */
324
+ var getTemplateById = exports.getTemplateById = function getTemplateById(id) {
325
+ return BUILTIN_TEMPLATES.find(function (t) {
326
+ return t.id === id;
327
+ });
328
+ };
329
+
330
+ /**
331
+ * 搜索模板(按名称、描述、标签)
332
+ */
333
+ var searchTemplates = exports.searchTemplates = function searchTemplates(keyword) {
334
+ var lowerKeyword = keyword.toLowerCase();
335
+ return BUILTIN_TEMPLATES.filter(function (t) {
336
+ return t.name.toLowerCase().includes(lowerKeyword) || t.description.toLowerCase().includes(lowerKeyword) || t.tags.some(function (tag) {
337
+ return tag.toLowerCase().includes(lowerKeyword);
338
+ });
339
+ });
340
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 模板系统统一导出
3
+ */
4
+ export type { RegexTemplate } from './types';
5
+ export { TemplateCategory } from './types';
6
+ export { getAllBuiltinTemplates, getTemplatesByCategory as getBuiltinTemplatesByCategory, getTemplateById as getBuiltinTemplateById, searchTemplates as searchBuiltinTemplates, } from './builtinTemplates';
7
+ export { TemplateStorage, loadCustomTemplates, saveCustomTemplate, deleteCustomTemplate, updateTemplateUsage, clearAllTemplates, exportTemplates, importTemplates, getStorageStats, isStorageAvailable, } from './storage';
8
+ export { getAllTemplates, getTemplateById, getTemplatesByCategory, searchTemplates, getMostUsedTemplates, getRecentlyUsedTemplates, createCustomTemplate, updateCustomTemplate, deleteCustomTemplate as deleteCustomTemplateById, duplicateTemplate, useTemplate, getTemplateStats, validateTemplate, } from './templateManager';
9
+ export { TemplateSelector } from './TemplateSelector';
10
+ export type { TemplateSelectorProps } from './TemplateSelector';
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TemplateCategory", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _types.TemplateCategory;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TemplateSelector", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _TemplateSelector.TemplateSelector;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "TemplateStorage", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _storage.TemplateStorage;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "clearAllTemplates", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _storage.clearAllTemplates;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "createCustomTemplate", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _templateManager.createCustomTemplate;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "deleteCustomTemplate", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _storage.deleteCustomTemplate;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "deleteCustomTemplateById", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _templateManager.deleteCustomTemplate;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "duplicateTemplate", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _templateManager.duplicateTemplate;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "exportTemplates", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _storage.exportTemplates;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "getAllBuiltinTemplates", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _builtinTemplates.getAllBuiltinTemplates;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "getAllTemplates", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _templateManager.getAllTemplates;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "getBuiltinTemplateById", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _builtinTemplates.getTemplateById;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "getBuiltinTemplatesByCategory", {
79
+ enumerable: true,
80
+ get: function get() {
81
+ return _builtinTemplates.getTemplatesByCategory;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "getMostUsedTemplates", {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _templateManager.getMostUsedTemplates;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "getRecentlyUsedTemplates", {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _templateManager.getRecentlyUsedTemplates;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "getStorageStats", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _storage.getStorageStats;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "getTemplateById", {
103
+ enumerable: true,
104
+ get: function get() {
105
+ return _templateManager.getTemplateById;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "getTemplateStats", {
109
+ enumerable: true,
110
+ get: function get() {
111
+ return _templateManager.getTemplateStats;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "getTemplatesByCategory", {
115
+ enumerable: true,
116
+ get: function get() {
117
+ return _templateManager.getTemplatesByCategory;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "importTemplates", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _storage.importTemplates;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "isStorageAvailable", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _storage.isStorageAvailable;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "loadCustomTemplates", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _storage.loadCustomTemplates;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "saveCustomTemplate", {
139
+ enumerable: true,
140
+ get: function get() {
141
+ return _storage.saveCustomTemplate;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "searchBuiltinTemplates", {
145
+ enumerable: true,
146
+ get: function get() {
147
+ return _builtinTemplates.searchTemplates;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "searchTemplates", {
151
+ enumerable: true,
152
+ get: function get() {
153
+ return _templateManager.searchTemplates;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "updateCustomTemplate", {
157
+ enumerable: true,
158
+ get: function get() {
159
+ return _templateManager.updateCustomTemplate;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "updateTemplateUsage", {
163
+ enumerable: true,
164
+ get: function get() {
165
+ return _storage.updateTemplateUsage;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "useTemplate", {
169
+ enumerable: true,
170
+ get: function get() {
171
+ return _templateManager.useTemplate;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "validateTemplate", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _templateManager.validateTemplate;
178
+ }
179
+ });
180
+ var _types = require("./types");
181
+ var _builtinTemplates = require("./builtinTemplates");
182
+ var _storage = require("./storage");
183
+ var _templateManager = require("./templateManager");
184
+ var _TemplateSelector = require("./TemplateSelector");
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 自定义模板存储模块
3
+ * 使用 LocalStorage 持久化存储用户自定义的正则表达式模板
4
+ */
5
+ import type { RegexTemplate } from './types';
6
+ /**
7
+ * 模板存储工具类
8
+ */
9
+ export declare class TemplateStorage {
10
+ /**
11
+ * 加载所有自定义模板
12
+ */
13
+ static loadCustomTemplates(): RegexTemplate[];
14
+ /**
15
+ * 保存自定义模板
16
+ */
17
+ static saveCustomTemplate(template: RegexTemplate): boolean;
18
+ /**
19
+ * 更新模板使用统计
20
+ */
21
+ static updateTemplateUsage(templateId: string): boolean;
22
+ /**
23
+ * 删除自定义模板
24
+ */
25
+ static deleteCustomTemplate(templateId: string): boolean;
26
+ /**
27
+ * 批量删除自定义模板
28
+ */
29
+ static deleteMultipleTemplates(templateIds: string[]): boolean;
30
+ /**
31
+ * 清空所有自定义模板
32
+ */
33
+ static clearAllTemplates(): boolean;
34
+ /**
35
+ * 导出所有自定义模板为 JSON
36
+ */
37
+ static exportTemplates(): string;
38
+ /**
39
+ * 从 JSON 导入自定义模板
40
+ */
41
+ static importTemplates(jsonString: string, merge?: boolean): boolean;
42
+ /**
43
+ * 获取存储统计信息
44
+ */
45
+ static getStorageStats(): {
46
+ count: number;
47
+ size: number;
48
+ lastModified: string | null;
49
+ };
50
+ /**
51
+ * 内部方法: 持久化模板数据到 LocalStorage
52
+ */
53
+ private static _persistTemplates;
54
+ /**
55
+ * 检查 LocalStorage 是否可用
56
+ */
57
+ static isStorageAvailable(): boolean;
58
+ }
59
+ /**
60
+ * 便捷函数导出
61
+ */
62
+ export declare const loadCustomTemplates: () => RegexTemplate[];
63
+ export declare const saveCustomTemplate: (template: RegexTemplate) => boolean;
64
+ export declare const deleteCustomTemplate: (templateId: string) => boolean;
65
+ export declare const updateTemplateUsage: (templateId: string) => boolean;
66
+ export declare const clearAllTemplates: () => boolean;
67
+ export declare const exportTemplates: () => string;
68
+ export declare const importTemplates: (jsonString: string, merge?: boolean) => boolean;
69
+ export declare const getStorageStats: () => {
70
+ count: number;
71
+ size: number;
72
+ lastModified: string | null;
73
+ };
74
+ export declare const isStorageAvailable: () => boolean;