@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
@@ -12,41 +12,41 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
12
12
  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); }
13
13
  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; }
14
14
  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; } }
15
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
16
- * useRegexTester Hook
17
- *
18
- * @module RegexEditor/hooks/useRegexTester
19
- * @description 提供正则测试功能的 React Hook
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
16
+ * useRegexTester Hook
17
+ *
18
+ * @module RegexEditor/hooks/useRegexTester
19
+ * @description 提供正则测试功能的 React Hook
20
20
  */
21
- /**
22
- * Hook 配置选项
21
+ /**
22
+ * Hook 配置选项
23
23
  */
24
24
 
25
- /**
26
- * Hook 返回值
25
+ /**
26
+ * Hook 返回值
27
27
  */
28
28
 
29
- /**
30
- * 正则测试 Hook
31
- *
32
- * @param pattern - 正则表达式模式
33
- * @param options - 配置选项
34
- * @returns Hook 结果
35
- *
36
- * @example
37
- * ```tsx
38
- * const {
39
- * testText,
40
- * setTestText,
41
- * flags,
42
- * setFlags,
43
- * matches,
44
- * isValid,
45
- * } = useRegexTester(pattern, {
46
- * initialTestText: 'test@example.com',
47
- * initialFlags: { global: true },
48
- * });
49
- * ```
29
+ /**
30
+ * 正则测试 Hook
31
+ *
32
+ * @param pattern - 正则表达式模式
33
+ * @param options - 配置选项
34
+ * @returns Hook 结果
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const {
39
+ * testText,
40
+ * setTestText,
41
+ * flags,
42
+ * setFlags,
43
+ * matches,
44
+ * isValid,
45
+ * } = useRegexTester(pattern, {
46
+ * initialTestText: 'test@example.com',
47
+ * initialFlags: { global: true },
48
+ * });
49
+ * ```
50
50
  */
51
51
  function useRegexTester(pattern) {
52
52
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -178,24 +178,24 @@ function useRegexTester(pattern) {
178
178
  };
179
179
  }
180
180
 
181
- /**
182
- * 替换预览 Hook
183
- *
184
- * @param pattern - 正则表达式模式
185
- * @param text - 原始文本
186
- * @param replaceText - 替换文本
187
- * @param flags - 标志
188
- * @returns 替换结果和错误
189
- *
190
- * @example
191
- * ```tsx
192
- * const { result, error } = useReplacePreview(
193
- * '(\\d+)',
194
- * 'abc 123 def',
195
- * 'NUM:$1',
196
- * { global: true }
197
- * );
198
- * ```
181
+ /**
182
+ * 替换预览 Hook
183
+ *
184
+ * @param pattern - 正则表达式模式
185
+ * @param text - 原始文本
186
+ * @param replaceText - 替换文本
187
+ * @param flags - 标志
188
+ * @returns 替换结果和错误
189
+ *
190
+ * @example
191
+ * ```tsx
192
+ * const { result, error } = useReplacePreview(
193
+ * '(\\d+)',
194
+ * 'abc 123 def',
195
+ * 'NUM:$1',
196
+ * { global: true }
197
+ * );
198
+ * ```
199
199
  */
200
200
  function useReplacePreview(pattern, text, replaceText, flags) {
201
201
  return (0, _react.useMemo)(function () {
@@ -19,63 +19,63 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
19
19
  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); }
20
20
  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; }
21
21
  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; } }
22
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
23
- * useRegexValidation Hook
24
- *
25
- * @description
26
- * React Hook 用于正则表达式验证,集成解析、验证、复杂度分析。
27
- * 提供去抖优化和完整的状态管理。
28
- *
29
- * @example
30
- * ```tsx
31
- * const { validationResult, complexity, isValidating } = useRegexValidation(pattern);
32
- *
33
- * if (validationResult?.valid) {
34
- * console.log('验证通过');
35
- * } else {
36
- * console.error('错误:', validationResult?.errors);
37
- * }
38
- *
39
- * if (complexity?.backtrackingRisk === 'high') {
40
- * console.warn('高回溯风险:', complexity.suggestions);
41
- * }
42
- * ```
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
23
+ * useRegexValidation Hook
24
+ *
25
+ * @description
26
+ * React Hook 用于正则表达式验证,集成解析、验证、复杂度分析。
27
+ * 提供去抖优化和完整的状态管理。
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * const { validationResult, complexity, isValidating } = useRegexValidation(pattern);
32
+ *
33
+ * if (validationResult?.valid) {
34
+ * console.log('验证通过');
35
+ * } else {
36
+ * console.error('错误:', validationResult?.errors);
37
+ * }
38
+ *
39
+ * if (complexity?.backtrackingRisk === 'high') {
40
+ * console.warn('高回溯风险:', complexity.suggestions);
41
+ * }
42
+ * ```
43
43
  */
44
- /**
45
- * useRegexValidation Hook 返回值
44
+ /**
45
+ * useRegexValidation Hook 返回值
46
46
  */
47
47
 
48
- /**
49
- * 正则表达式验证 Hook
50
- *
51
- * @param pattern - 正则表达式字符串
52
- * @param options - 配置选项
53
- * @param options.debounceMs - 去抖延迟时间(默认 300ms)
54
- * @returns {UseRegexValidationResult} 验证结果和方法
55
- *
56
- * @remarks
57
- * 该 Hook 提供以下功能:
58
- * - 自动验证: 监听 pattern 变化并自动触发验证
59
- * - 去抖优化: 300ms 防抖延迟,避免频繁验证
60
- * - 完整状态: validationResult, complexity, isValidating
61
- * - 手动验证: 提供 validate 方法支持手动触发
62
- *
63
- * @example
64
- * ```tsx
65
- * function MyComponent() {
66
- * const [pattern, setPattern] = useState('');
67
- * const { validationResult, complexity, isValidating } = useRegexValidation(pattern);
68
- *
69
- * return (
70
- * <div>
71
- * <input value={pattern} onChange={e => setPattern(e.target.value)} />
72
- * {isValidating && <Spin />}
73
- * {validationResult?.errors.map(err => <Alert key={err.type} message={err.message} />)}
74
- * {complexity && <Badge>性能评分: {complexity.performanceScore}</Badge>}
75
- * </div>
76
- * );
77
- * }
78
- * ```
48
+ /**
49
+ * 正则表达式验证 Hook
50
+ *
51
+ * @param pattern - 正则表达式字符串
52
+ * @param options - 配置选项
53
+ * @param options.debounceMs - 去抖延迟时间(默认 300ms)
54
+ * @returns {UseRegexValidationResult} 验证结果和方法
55
+ *
56
+ * @remarks
57
+ * 该 Hook 提供以下功能:
58
+ * - 自动验证: 监听 pattern 变化并自动触发验证
59
+ * - 去抖优化: 300ms 防抖延迟,避免频繁验证
60
+ * - 完整状态: validationResult, complexity, isValidating
61
+ * - 手动验证: 提供 validate 方法支持手动触发
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * function MyComponent() {
66
+ * const [pattern, setPattern] = useState('');
67
+ * const { validationResult, complexity, isValidating } = useRegexValidation(pattern);
68
+ *
69
+ * return (
70
+ * <div>
71
+ * <input value={pattern} onChange={e => setPattern(e.target.value)} />
72
+ * {isValidating && <Spin />}
73
+ * {validationResult?.errors.map(err => <Alert key={err.type} message={err.message} />)}
74
+ * {complexity && <Badge>性能评分: {complexity.performanceScore}</Badge>}
75
+ * </div>
76
+ * );
77
+ * }
78
+ * ```
79
79
  */
80
80
  var useRegexValidation = exports.useRegexValidation = function useRegexValidation(pattern) {
81
81
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -21,12 +21,12 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
21
21
  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); }
22
22
  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; }
23
23
  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; } }
24
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
25
- * useTemplateManager Hook
26
- * 提供完整的模板管理功能,包括加载、创建、更新、删除、搜索等
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
25
+ * useTemplateManager Hook
26
+ * 提供完整的模板管理功能,包括加载、创建、更新、删除、搜索等
27
27
  */
28
- /**
29
- * useTemplateManager Hook
28
+ /**
29
+ * useTemplateManager Hook
30
30
  */
31
31
  var useTemplateManager = exports.useTemplateManager = function useTemplateManager() {
32
32
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -23,28 +23,28 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
23
23
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24
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
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组件
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
31
  */
32
32
  var Search = _antd.Input.Search;
33
33
  var Option = _antd.Select.Option;
34
34
  var Text = _antd.Typography.Text,
35
35
  Paragraph = _antd.Typography.Paragraph;
36
36
 
37
- /**
38
- * 模板选择器组件属性
37
+ /**
38
+ * 模板选择器组件属性
39
39
  */
40
40
 
41
- /**
42
- * 分类显示名称映射
41
+ /**
42
+ * 分类显示名称映射
43
43
  */
44
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
45
 
46
- /**
47
- * 复杂度标签配置
46
+ /**
47
+ * 复杂度标签配置
48
48
  */
49
49
  var COMPLEXITY_CONFIG = {
50
50
  simple: {
@@ -61,17 +61,17 @@ var COMPLEXITY_CONFIG = {
61
61
  }
62
62
  };
63
63
 
64
- /**
65
- * 模板选择器组件
66
- *
67
- * @example
68
- * ```tsx
69
- * <TemplateSelector
70
- * templates={allTemplates}
71
- * onSelect={(template) => setPattern(template.pattern)}
72
- * selectedId={currentTemplateId}
73
- * />
74
- * ```
64
+ /**
65
+ * 模板选择器组件
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * <TemplateSelector
70
+ * templates={allTemplates}
71
+ * onSelect={(template) => setPattern(template.pattern)}
72
+ * selectedId={currentTemplateId}
73
+ * />
74
+ * ```
75
75
  */
76
76
  var TemplateSelector = exports.TemplateSelector = function TemplateSelector(_ref) {
77
77
  var templates = _ref.templates,
@@ -93,8 +93,8 @@ var TemplateSelector = exports.TemplateSelector = function TemplateSelector(_ref
93
93
  sortBy = _useState6[0],
94
94
  setSortBy = _useState6[1];
95
95
 
96
- /**
97
- * 过滤和排序后的模板列表
96
+ /**
97
+ * 过滤和排序后的模板列表
98
98
  */
99
99
  var filteredTemplates = (0, _react.useMemo)(function () {
100
100
  var result = templates;
@@ -139,8 +139,8 @@ var TemplateSelector = exports.TemplateSelector = function TemplateSelector(_ref
139
139
  return result;
140
140
  }, [templates, selectedCategory, searchKeyword, sortBy, showCustom]);
141
141
 
142
- /**
143
- * 渲染模板卡片
142
+ /**
143
+ * 渲染模板卡片
144
144
  */
145
145
  var renderTemplateCard = function renderTemplateCard(template) {
146
146
  var isSelected = template.id === selectedId;
@@ -306,8 +306,8 @@ var TemplateSelector = exports.TemplateSelector = function TemplateSelector(_ref
306
306
  }, "\u5171 ", filteredTemplates.length, " \u4E2A\u6A21\u677F", searchKeyword && " (\u641C\u7D22: \"".concat(searchKeyword, "\")")));
307
307
  };
308
308
 
309
- /**
310
- * 格式化日期显示
309
+ /**
310
+ * 格式化日期显示
311
311
  */
312
312
  function formatDate(date) {
313
313
  var now = new Date();
@@ -5,24 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.searchTemplates = exports.getTemplatesByCategory = exports.getTemplateById = exports.getAllBuiltinTemplates = exports.BUILTIN_TEMPLATES = void 0;
7
7
  var _types = require("./types");
8
- /**
9
- * 内置正则表达式模板库
10
- *
11
- * @module RegexEditor/templates/builtinTemplates
12
- * @description 提供20+个精心设计的内置正则表达式模板,覆盖常见业务场景
8
+ /**
9
+ * 内置正则表达式模板库
10
+ *
11
+ * @module RegexEditor/templates/builtinTemplates
12
+ * @description 提供20+个精心设计的内置正则表达式模板,覆盖常见业务场景
13
13
  */
14
14
 
15
- /**
16
- * 内置模板库
17
- *
18
- * @description
19
- * 包含以下分类:
20
- * - 业务相关: 批次号、订单号、产品编码等
21
- * - 通用模式: 邮箱、电话、URL、IP地址等
22
- * - 日期时间: 各种日期时间格式
23
- * - 数字格式: 整数、小数、货币等
24
- * - 文本格式: 中文、英文、Unicode等
25
- * - 数据验证: 长度、范围、格式验证
15
+ /**
16
+ * 内置模板库
17
+ *
18
+ * @description
19
+ * 包含以下分类:
20
+ * - 业务相关: 批次号、订单号、产品编码等
21
+ * - 通用模式: 邮箱、电话、URL、IP地址等
22
+ * - 日期时间: 各种日期时间格式
23
+ * - 数字格式: 整数、小数、货币等
24
+ * - 文本格式: 中文、英文、Unicode等
25
+ * - 数据验证: 长度、范围、格式验证
26
26
  */
27
27
  var BUILTIN_TEMPLATES = exports.BUILTIN_TEMPLATES = [
28
28
  // ==================== 业务相关模板 ====================
@@ -302,15 +302,15 @@ var BUILTIN_TEMPLATES = exports.BUILTIN_TEMPLATES = [
302
302
  complexity: 'simple'
303
303
  }];
304
304
 
305
- /**
306
- * 获取所有内置模板
305
+ /**
306
+ * 获取所有内置模板
307
307
  */
308
308
  var getAllBuiltinTemplates = exports.getAllBuiltinTemplates = function getAllBuiltinTemplates() {
309
309
  return BUILTIN_TEMPLATES;
310
310
  };
311
311
 
312
- /**
313
- * 按分类获取模板
312
+ /**
313
+ * 按分类获取模板
314
314
  */
315
315
  var getTemplatesByCategory = exports.getTemplatesByCategory = function getTemplatesByCategory(category) {
316
316
  return BUILTIN_TEMPLATES.filter(function (t) {
@@ -318,8 +318,8 @@ var getTemplatesByCategory = exports.getTemplatesByCategory = function getTempla
318
318
  });
319
319
  };
320
320
 
321
- /**
322
- * 按ID获取模板
321
+ /**
322
+ * 按ID获取模板
323
323
  */
324
324
  var getTemplateById = exports.getTemplateById = function getTemplateById(id) {
325
325
  return BUILTIN_TEMPLATES.find(function (t) {
@@ -327,8 +327,8 @@ var getTemplateById = exports.getTemplateById = function getTemplateById(id) {
327
327
  });
328
328
  };
329
329
 
330
- /**
331
- * 搜索模板(按名称、描述、标签)
330
+ /**
331
+ * 搜索模板(按名称、描述、标签)
332
332
  */
333
333
  var searchTemplates = exports.searchTemplates = function searchTemplates(keyword) {
334
334
  var lowerKeyword = keyword.toLowerCase();
@@ -19,14 +19,14 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
19
19
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
20
20
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
21
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
22
- 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); } /**
23
- * 自定义模板存储模块
24
- * 使用 LocalStorage 持久化存储用户自定义的正则表达式模板
22
+ 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); } /**
23
+ * 自定义模板存储模块
24
+ * 使用 LocalStorage 持久化存储用户自定义的正则表达式模板
25
25
  */
26
26
  var STORAGE_KEY = 'regex_editor_custom_templates';
27
27
  var STORAGE_VERSION = '1.0';
28
- /**
29
- * 模板存储工具类
28
+ /**
29
+ * 模板存储工具类
30
30
  */
31
31
  var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
32
32
  function TemplateStorage() {
@@ -35,8 +35,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
35
35
  _createClass(TemplateStorage, null, [{
36
36
  key: "loadCustomTemplates",
37
37
  value:
38
- /**
39
- * 加载所有自定义模板
38
+ /**
39
+ * 加载所有自定义模板
40
40
  */
41
41
  function loadCustomTemplates() {
42
42
  try {
@@ -66,8 +66,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
66
66
  }
67
67
  }
68
68
 
69
- /**
70
- * 保存自定义模板
69
+ /**
70
+ * 保存自定义模板
71
71
  */
72
72
  }, {
73
73
  key: "saveCustomTemplate",
@@ -99,8 +99,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
99
99
  }
100
100
  }
101
101
 
102
- /**
103
- * 更新模板使用统计
102
+ /**
103
+ * 更新模板使用统计
104
104
  */
105
105
  }, {
106
106
  key: "updateTemplateUsage",
@@ -123,8 +123,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
123
123
  }
124
124
  }
125
125
 
126
- /**
127
- * 删除自定义模板
126
+ /**
127
+ * 删除自定义模板
128
128
  */
129
129
  }, {
130
130
  key: "deleteCustomTemplate",
@@ -146,8 +146,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
146
146
  }
147
147
  }
148
148
 
149
- /**
150
- * 批量删除自定义模板
149
+ /**
150
+ * 批量删除自定义模板
151
151
  */
152
152
  }, {
153
153
  key: "deleteMultipleTemplates",
@@ -166,8 +166,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
166
166
  }
167
167
  }
168
168
 
169
- /**
170
- * 清空所有自定义模板
169
+ /**
170
+ * 清空所有自定义模板
171
171
  */
172
172
  }, {
173
173
  key: "clearAllTemplates",
@@ -181,8 +181,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
181
181
  }
182
182
  }
183
183
 
184
- /**
185
- * 导出所有自定义模板为 JSON
184
+ /**
185
+ * 导出所有自定义模板为 JSON
186
186
  */
187
187
  }, {
188
188
  key: "exportTemplates",
@@ -196,8 +196,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
196
196
  return JSON.stringify(data, null, 2);
197
197
  }
198
198
 
199
- /**
200
- * 从 JSON 导入自定义模板
199
+ /**
200
+ * 从 JSON 导入自定义模板
201
201
  */
202
202
  }, {
203
203
  key: "importTemplates",
@@ -242,8 +242,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
242
242
  }
243
243
  }
244
244
 
245
- /**
246
- * 获取存储统计信息
245
+ /**
246
+ * 获取存储统计信息
247
247
  */
248
248
  }, {
249
249
  key: "getStorageStats",
@@ -273,8 +273,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
273
273
  }
274
274
  }
275
275
 
276
- /**
277
- * 内部方法: 持久化模板数据到 LocalStorage
276
+ /**
277
+ * 内部方法: 持久化模板数据到 LocalStorage
278
278
  */
279
279
  }, {
280
280
  key: "_persistTemplates",
@@ -287,8 +287,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
287
287
  localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
288
288
  }
289
289
 
290
- /**
291
- * 检查 LocalStorage 是否可用
290
+ /**
291
+ * 检查 LocalStorage 是否可用
292
292
  */
293
293
  }, {
294
294
  key: "isStorageAvailable",
@@ -305,8 +305,8 @@ var TemplateStorage = exports.TemplateStorage = /*#__PURE__*/function () {
305
305
  }]);
306
306
  return TemplateStorage;
307
307
  }();
308
- /**
309
- * 便捷函数导出
308
+ /**
309
+ * 便捷函数导出
310
310
  */
311
311
  var loadCustomTemplates = exports.loadCustomTemplates = function loadCustomTemplates() {
312
312
  return TemplateStorage.loadCustomTemplates();