@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,74 @@
1
+ /**
2
+ * 单值输入组件
3
+ *
4
+ * 根据字段数据类型渲染对应的输入控件:
5
+ * - string: Input
6
+ * - number: InputNumber
7
+ * - date: DatePicker
8
+ * - boolean: Switch
9
+ */
10
+
11
+ import React from 'react';
12
+ import { Input, InputNumber, DatePicker, Switch } from 'antd';
13
+ import dayjs from 'dayjs';
14
+ export var SingleValueInput = function SingleValueInput(_ref) {
15
+ var value = _ref.value,
16
+ _onChange = _ref.onChange,
17
+ dataType = _ref.dataType,
18
+ _ref$disabled = _ref.disabled,
19
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
20
+ _ref$size = _ref.size,
21
+ size = _ref$size === void 0 ? 'middle' : _ref$size;
22
+ // 根据数据类型渲染不同的输入组件
23
+ switch (dataType) {
24
+ case 'string':
25
+ return /*#__PURE__*/React.createElement(Input, {
26
+ value: value,
27
+ onChange: function onChange(e) {
28
+ return _onChange(e.target.value);
29
+ },
30
+ disabled: disabled,
31
+ size: size,
32
+ placeholder: "\u8BF7\u8F93\u5165\u503C",
33
+ style: {
34
+ width: 200
35
+ }
36
+ });
37
+ case 'number':
38
+ return /*#__PURE__*/React.createElement(InputNumber, {
39
+ value: value,
40
+ onChange: _onChange,
41
+ disabled: disabled,
42
+ size: size,
43
+ placeholder: "\u8BF7\u8F93\u5165\u6570\u503C",
44
+ style: {
45
+ width: 200
46
+ }
47
+ });
48
+ case 'date':
49
+ return /*#__PURE__*/React.createElement(DatePicker, {
50
+ value: value ? dayjs(value) : null,
51
+ onChange: function onChange(date) {
52
+ return _onChange(date === null || date === void 0 ? void 0 : date.format('YYYY-MM-DD'));
53
+ },
54
+ disabled: disabled,
55
+ size: size,
56
+ placeholder: "\u8BF7\u9009\u62E9\u65E5\u671F",
57
+ style: {
58
+ width: 200
59
+ }
60
+ });
61
+ case 'boolean':
62
+ return /*#__PURE__*/React.createElement(Switch, {
63
+ checked: value,
64
+ onChange: _onChange,
65
+ disabled: disabled,
66
+ size: size === 'small' ? 'small' : 'default',
67
+ checkedChildren: "\u662F",
68
+ unCheckedChildren: "\u5426"
69
+ });
70
+ default:
71
+ return null;
72
+ }
73
+ };
74
+ export default SingleValueInput;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 值输入分发组件
3
+ *
4
+ * 根据操作符类型自动选择合适的输入组件:
5
+ * - IsNull/IsNotNull: 不渲染任何输入
6
+ * - Between: 渲染 BetweenValueInput
7
+ * - In/NotIn: 渲染 MultiValueInput
8
+ * - 其他: 渲染 SingleValueInput
9
+ */
10
+ import React from 'react';
11
+ import type { MatchOperator, FieldDataType } from '../types';
12
+ export interface ValueInputProps {
13
+ /** 操作符 */
14
+ operator: MatchOperator;
15
+ /** 字段数据类型 */
16
+ dataType: FieldDataType;
17
+ /** 主值 */
18
+ value: any;
19
+ /** 第二个值(用于 Between) */
20
+ value2?: any;
21
+ /** 值变更回调 */
22
+ onChange: (value: any, value2?: any) => void;
23
+ /** 是否禁用 */
24
+ disabled?: boolean;
25
+ /** 尺寸 */
26
+ size?: 'small' | 'middle' | 'large';
27
+ }
28
+ export declare const ValueInput: React.FC<ValueInputProps>;
29
+ export default ValueInput;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * 值输入分发组件
3
+ *
4
+ * 根据操作符类型自动选择合适的输入组件:
5
+ * - IsNull/IsNotNull: 不渲染任何输入
6
+ * - Between: 渲染 BetweenValueInput
7
+ * - In/NotIn: 渲染 MultiValueInput
8
+ * - 其他: 渲染 SingleValueInput
9
+ */
10
+
11
+ import React from 'react';
12
+ import { operatorRequiresValue, operatorRequiresValue2, operatorRequiresMultiValue } from "../constants/operators";
13
+ import SingleValueInput from "./SingleValueInput";
14
+ import BetweenValueInput from "./BetweenValueInput";
15
+ import MultiValueInput from "./MultiValueInput";
16
+ export var ValueInput = function ValueInput(_ref) {
17
+ var operator = _ref.operator,
18
+ dataType = _ref.dataType,
19
+ value = _ref.value,
20
+ value2 = _ref.value2,
21
+ _onChange = _ref.onChange,
22
+ _ref$disabled = _ref.disabled,
23
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
24
+ _ref$size = _ref.size,
25
+ size = _ref$size === void 0 ? 'middle' : _ref$size;
26
+ // 不需要值输入的操作符(IsNull/IsNotNull)
27
+ if (!operatorRequiresValue(operator) && !operatorRequiresValue2(operator) && !operatorRequiresMultiValue(operator)) {
28
+ return null;
29
+ }
30
+
31
+ // Between 操作符:渲染区间输入
32
+ if (operatorRequiresValue2(operator)) {
33
+ if (dataType !== 'number' && dataType !== 'date') {
34
+ return null; // Between 只支持数值和日期
35
+ }
36
+ return /*#__PURE__*/React.createElement(BetweenValueInput, {
37
+ value: value,
38
+ value2: value2,
39
+ onChange: _onChange,
40
+ dataType: dataType,
41
+ disabled: disabled,
42
+ size: size
43
+ });
44
+ }
45
+
46
+ // In/NotIn 操作符:渲染多值输入
47
+ if (operatorRequiresMultiValue(operator)) {
48
+ if (dataType !== 'string' && dataType !== 'number') {
49
+ return null; // In/NotIn 只支持字符串和数值
50
+ }
51
+ return /*#__PURE__*/React.createElement(MultiValueInput, {
52
+ values: Array.isArray(value) ? value : [],
53
+ onChange: function onChange(values) {
54
+ return _onChange(values);
55
+ },
56
+ dataType: dataType,
57
+ disabled: disabled,
58
+ size: size
59
+ });
60
+ }
61
+
62
+ // 其他操作符:渲染单值输入
63
+ return /*#__PURE__*/React.createElement(SingleValueInput, {
64
+ value: value,
65
+ onChange: function onChange(val) {
66
+ return _onChange(val);
67
+ },
68
+ dataType: dataType,
69
+ disabled: disabled,
70
+ size: size
71
+ });
72
+ };
73
+ export default ValueInput;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 字段选择器组件
3
+ * 用于选择规则匹配的字段
4
+ */
5
+ import React from 'react';
6
+ import type { FieldDefinition } from '../types';
7
+ export interface FieldSelectorProps {
8
+ /** 当前选中的字段名 */
9
+ value?: string;
10
+ /** 值变更回调 */
11
+ onChange?: (fieldName: string) => void;
12
+ /** 字段定义列表 */
13
+ fields: FieldDefinition[];
14
+ /** 是否禁用 */
15
+ disabled?: boolean;
16
+ /** 尺寸 */
17
+ size?: 'small' | 'middle' | 'large';
18
+ }
19
+ /**
20
+ * 字段选择器
21
+ */
22
+ export declare const FieldSelector: React.FC<FieldSelectorProps>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 字段选择器组件
3
+ * 用于选择规则匹配的字段
4
+ */
5
+
6
+ import React from 'react';
7
+ import { Select } from 'antd';
8
+ /**
9
+ * 字段选择器
10
+ */
11
+ export var FieldSelector = function FieldSelector(_ref) {
12
+ var value = _ref.value,
13
+ onChange = _ref.onChange,
14
+ fields = _ref.fields,
15
+ _ref$disabled = _ref.disabled,
16
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
17
+ _ref$size = _ref.size,
18
+ size = _ref$size === void 0 ? 'middle' : _ref$size;
19
+ return /*#__PURE__*/React.createElement(Select, {
20
+ value: value,
21
+ onChange: onChange,
22
+ placeholder: "\u8BF7\u9009\u62E9\u5B57\u6BB5",
23
+ disabled: disabled,
24
+ size: size,
25
+ showSearch: true,
26
+ optionFilterProp: "label",
27
+ style: {
28
+ width: '100%'
29
+ },
30
+ options: fields.map(function (field) {
31
+ return {
32
+ value: field.name,
33
+ label: field.displayName,
34
+ title: field.description // 鼠标悬停时显示字段说明
35
+ };
36
+ })
37
+ });
38
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 操作符选择器组件
3
+ * 根据字段数据类型动态显示可用的操作符
4
+ */
5
+ import React from 'react';
6
+ import type { MatchOperator, FieldDataType } from '../types';
7
+ export interface OperatorSelectorProps {
8
+ /** 当前选中的操作符 */
9
+ value?: MatchOperator;
10
+ /** 值变更回调 */
11
+ onChange?: (operator: MatchOperator) => void;
12
+ /** 字段数据类型(用于过滤可用操作符) */
13
+ dataType?: FieldDataType;
14
+ /** 是否禁用 */
15
+ disabled?: boolean;
16
+ /** 尺寸 */
17
+ size?: 'small' | 'middle' | 'large';
18
+ }
19
+ /**
20
+ * 操作符选择器
21
+ */
22
+ export declare const OperatorSelector: React.FC<OperatorSelectorProps>;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 操作符选择器组件
3
+ * 根据字段数据类型动态显示可用的操作符
4
+ */
5
+
6
+ import React from 'react';
7
+ import { Select } from 'antd';
8
+ import { getOperatorsByDataType, getOperatorInfo, OPERATOR_INFO_MAP } from "../constants/operators";
9
+ /**
10
+ * 操作符选择器
11
+ */
12
+ export var OperatorSelector = function OperatorSelector(_ref) {
13
+ var value = _ref.value,
14
+ onChange = _ref.onChange,
15
+ dataType = _ref.dataType,
16
+ _ref$disabled = _ref.disabled,
17
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
18
+ _ref$size = _ref.size,
19
+ size = _ref$size === void 0 ? 'middle' : _ref$size;
20
+ // 根据数据类型获取可用操作符
21
+ var availableOperators = dataType ? getOperatorsByDataType(dataType) : Object.keys(OPERATOR_INFO_MAP).map(Number);
22
+ return /*#__PURE__*/React.createElement(Select, {
23
+ value: value,
24
+ onChange: onChange,
25
+ placeholder: "\u8BF7\u9009\u62E9\u64CD\u4F5C\u7B26",
26
+ disabled: disabled,
27
+ size: size,
28
+ style: {
29
+ width: '100%'
30
+ },
31
+ options: availableOperators.map(function (operator) {
32
+ var info = getOperatorInfo(operator);
33
+ return {
34
+ value: operator,
35
+ label: /*#__PURE__*/React.createElement("span", null, info.label, " ", /*#__PURE__*/React.createElement("span", {
36
+ style: {
37
+ color: '#999'
38
+ }
39
+ }, "(", info.symbol, ")")),
40
+ title: info.description // 鼠标悬停时显示操作符说明
41
+ };
42
+ })
43
+ });
44
+ };