@nokecy/qc-ui 1.0.65 → 1.0.66
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.
- package/dist/cjs/RuleBuilder/LogicSelector.d.ts +23 -0
- package/dist/cjs/RuleBuilder/LogicSelector.js +54 -0
- package/dist/cjs/RuleBuilder/RuleBuilderContainer.d.ts +20 -0
- package/dist/cjs/RuleBuilder/RuleBuilderContainer.js +209 -0
- package/dist/cjs/RuleBuilder/RuleCard.d.ts +20 -0
- package/dist/cjs/RuleBuilder/RuleCard.js +196 -0
- package/dist/cjs/RuleBuilder/RuleGroupEditor.d.ts +25 -0
- package/dist/cjs/RuleBuilder/RuleGroupEditor.js +191 -0
- package/dist/cjs/RuleBuilder/constants/operators.d.ts +47 -0
- package/dist/cjs/RuleBuilder/constants/operators.js +172 -0
- package/dist/cjs/RuleBuilder/context/RuleBuilderContext.d.ts +72 -0
- package/dist/cjs/RuleBuilder/context/RuleBuilderContext.js +286 -0
- package/dist/cjs/RuleBuilder/index.d.ts +25 -0
- package/dist/cjs/RuleBuilder/index.js +308 -0
- package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.d.ts +23 -0
- package/dist/cjs/RuleBuilder/inputs/BetweenValueInput.js +80 -0
- package/dist/cjs/RuleBuilder/inputs/MultiValueInput.d.ts +21 -0
- package/dist/cjs/RuleBuilder/inputs/MultiValueInput.js +128 -0
- package/dist/cjs/RuleBuilder/inputs/SingleValueInput.d.ts +25 -0
- package/dist/cjs/RuleBuilder/inputs/SingleValueInput.js +81 -0
- package/dist/cjs/RuleBuilder/inputs/ValueInput.d.ts +29 -0
- package/dist/cjs/RuleBuilder/inputs/ValueInput.js +80 -0
- package/dist/cjs/RuleBuilder/selectors/FieldSelector.d.ts +22 -0
- package/dist/cjs/RuleBuilder/selectors/FieldSelector.js +45 -0
- package/dist/cjs/RuleBuilder/selectors/OperatorSelector.d.ts +22 -0
- package/dist/cjs/RuleBuilder/selectors/OperatorSelector.js +51 -0
- package/dist/cjs/RuleBuilder/styles/index.module.less +443 -0
- package/dist/cjs/RuleBuilder/styles/index.module.less.d.ts +43 -0
- package/dist/cjs/RuleBuilder/types/index.d.ts +232 -0
- package/dist/cjs/RuleBuilder/types/index.js +83 -0
- package/dist/cjs/RuleBuilder/utils/pathHelpers.d.ts +65 -0
- package/dist/cjs/RuleBuilder/utils/pathHelpers.js +241 -0
- package/dist/cjs/RuleBuilder/utils/ruleHelpers.d.ts +47 -0
- package/dist/cjs/RuleBuilder/utils/ruleHelpers.js +154 -0
- package/dist/cjs/RuleBuilder/utils/validation.d.ts +25 -0
- package/dist/cjs/RuleBuilder/utils/validation.js +241 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/standardFormDialog/StandardFormDialog.js +26 -5
- package/dist/esm/RuleBuilder/LogicSelector.d.ts +23 -0
- package/dist/esm/RuleBuilder/LogicSelector.js +47 -0
- package/dist/esm/RuleBuilder/RuleBuilderContainer.d.ts +20 -0
- package/dist/esm/RuleBuilder/RuleBuilderContainer.js +203 -0
- package/dist/esm/RuleBuilder/RuleCard.d.ts +20 -0
- package/dist/esm/RuleBuilder/RuleCard.js +191 -0
- package/dist/esm/RuleBuilder/RuleGroupEditor.d.ts +25 -0
- package/dist/esm/RuleBuilder/RuleGroupEditor.js +184 -0
- package/dist/esm/RuleBuilder/constants/operators.d.ts +47 -0
- package/dist/esm/RuleBuilder/constants/operators.js +169 -0
- package/dist/esm/RuleBuilder/context/RuleBuilderContext.d.ts +72 -0
- package/dist/esm/RuleBuilder/context/RuleBuilderContext.js +271 -0
- package/dist/esm/RuleBuilder/index.d.ts +25 -0
- package/dist/esm/RuleBuilder/index.js +42 -0
- package/dist/esm/RuleBuilder/inputs/BetweenValueInput.d.ts +23 -0
- package/dist/esm/RuleBuilder/inputs/BetweenValueInput.js +73 -0
- package/dist/esm/RuleBuilder/inputs/MultiValueInput.d.ts +21 -0
- package/dist/esm/RuleBuilder/inputs/MultiValueInput.js +121 -0
- package/dist/esm/RuleBuilder/inputs/SingleValueInput.d.ts +25 -0
- package/dist/esm/RuleBuilder/inputs/SingleValueInput.js +74 -0
- package/dist/esm/RuleBuilder/inputs/ValueInput.d.ts +29 -0
- package/dist/esm/RuleBuilder/inputs/ValueInput.js +73 -0
- package/dist/esm/RuleBuilder/selectors/FieldSelector.d.ts +22 -0
- package/dist/esm/RuleBuilder/selectors/FieldSelector.js +38 -0
- package/dist/esm/RuleBuilder/selectors/OperatorSelector.d.ts +22 -0
- package/dist/esm/RuleBuilder/selectors/OperatorSelector.js +44 -0
- package/dist/esm/RuleBuilder/styles/index.module.less +443 -0
- package/dist/esm/RuleBuilder/styles/index.module.less.d.ts +43 -0
- package/dist/esm/RuleBuilder/types/index.d.ts +232 -0
- package/dist/esm/RuleBuilder/types/index.js +91 -0
- package/dist/esm/RuleBuilder/utils/pathHelpers.d.ts +65 -0
- package/dist/esm/RuleBuilder/utils/pathHelpers.js +228 -0
- package/dist/esm/RuleBuilder/utils/ruleHelpers.d.ts +47 -0
- package/dist/esm/RuleBuilder/utils/ruleHelpers.js +145 -0
- package/dist/esm/RuleBuilder/utils/validation.d.ts +25 -0
- package/dist/esm/RuleBuilder/utils/validation.js +236 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/standardFormDialog/StandardFormDialog.js +26 -5
- package/dist/umd/qc-ui.min.css +1 -1
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RuleBuilderProvider = RuleBuilderProvider;
|
|
7
|
+
exports.useFields = useFields;
|
|
8
|
+
exports.useIsDirty = useIsDirty;
|
|
9
|
+
exports.useLoading = useLoading;
|
|
10
|
+
exports.useRuleBuilderContext = useRuleBuilderContext;
|
|
11
|
+
exports.useRuleBuilderDispatch = useRuleBuilderDispatch;
|
|
12
|
+
exports.useRuleBuilderFields = useRuleBuilderFields;
|
|
13
|
+
exports.useRuleBuilderState = useRuleBuilderState;
|
|
14
|
+
exports.useRuleBuilderValidation = useRuleBuilderValidation;
|
|
15
|
+
exports.useRuleGroup = useRuleGroup;
|
|
16
|
+
exports.useValidation = useValidation;
|
|
17
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
18
|
+
var _pathHelpers = require("../utils/pathHelpers");
|
|
19
|
+
var _ruleHelpers = require("../utils/ruleHelpers");
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
22
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
23
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
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); }
|
|
26
|
+
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; }
|
|
27
|
+
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; } }
|
|
28
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
+
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; }
|
|
32
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
33
|
+
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); } /**
|
|
34
|
+
* 规则构建器状态管理 Context
|
|
35
|
+
* 使用 React Context + useReducer 模式实现全局状态管理
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* 初始验证结果
|
|
39
|
+
*/
|
|
40
|
+
var INITIAL_VALIDATION = {
|
|
41
|
+
isValid: true,
|
|
42
|
+
errors: [],
|
|
43
|
+
warnings: []
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 创建初始状态
|
|
48
|
+
*/
|
|
49
|
+
function createInitialState(initialRule) {
|
|
50
|
+
var fields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
51
|
+
return {
|
|
52
|
+
ruleGroup: initialRule || (0, _ruleHelpers.createEmptyRuleGroup)(0),
|
|
53
|
+
// And 逻辑组
|
|
54
|
+
fields: fields,
|
|
55
|
+
loading: false,
|
|
56
|
+
validationResult: INITIAL_VALIDATION,
|
|
57
|
+
isDirty: false
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Reducer 函数
|
|
63
|
+
*/
|
|
64
|
+
function ruleBuilderReducer(state, action) {
|
|
65
|
+
switch (action.type) {
|
|
66
|
+
case 'SET_RULE_GROUP':
|
|
67
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
68
|
+
ruleGroup: action.payload,
|
|
69
|
+
isDirty: false
|
|
70
|
+
});
|
|
71
|
+
case 'SET_FIELDS':
|
|
72
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
73
|
+
fields: action.payload
|
|
74
|
+
});
|
|
75
|
+
case 'SET_LOADING':
|
|
76
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
77
|
+
loading: action.payload
|
|
78
|
+
});
|
|
79
|
+
case 'UPDATE_RULE':
|
|
80
|
+
{
|
|
81
|
+
var _action$payload = action.payload,
|
|
82
|
+
path = _action$payload.path,
|
|
83
|
+
rule = _action$payload.rule;
|
|
84
|
+
var newRuleGroup = (0, _pathHelpers.updateRuleAtPath)(state.ruleGroup, path, rule);
|
|
85
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
86
|
+
ruleGroup: newRuleGroup,
|
|
87
|
+
isDirty: true
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
case 'DELETE_RULE':
|
|
91
|
+
{
|
|
92
|
+
var _path = action.payload.path;
|
|
93
|
+
var _newRuleGroup = (0, _pathHelpers.deleteRuleAtPath)(state.ruleGroup, _path);
|
|
94
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
95
|
+
ruleGroup: _newRuleGroup,
|
|
96
|
+
isDirty: true
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
case 'ADD_RULE':
|
|
100
|
+
{
|
|
101
|
+
var _action$payload2 = action.payload,
|
|
102
|
+
_path2 = _action$payload2.path,
|
|
103
|
+
_rule = _action$payload2.rule;
|
|
104
|
+
var _newRuleGroup2 = (0, _pathHelpers.addRuleAtPath)(state.ruleGroup, _path2, _rule);
|
|
105
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
106
|
+
ruleGroup: _newRuleGroup2,
|
|
107
|
+
isDirty: true
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
case 'UPDATE_RULE_GROUP':
|
|
111
|
+
{
|
|
112
|
+
var _action$payload3 = action.payload,
|
|
113
|
+
_path3 = _action$payload3.path,
|
|
114
|
+
group = _action$payload3.group;
|
|
115
|
+
var _newRuleGroup3 = (0, _pathHelpers.updateRuleGroupAtPath)(state.ruleGroup, _path3, group);
|
|
116
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
117
|
+
ruleGroup: _newRuleGroup3,
|
|
118
|
+
isDirty: true
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
case 'DELETE_RULE_GROUP':
|
|
122
|
+
{
|
|
123
|
+
var _path4 = action.payload.path;
|
|
124
|
+
var _newRuleGroup4 = (0, _pathHelpers.deleteRuleGroupAtPath)(state.ruleGroup, _path4);
|
|
125
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
126
|
+
ruleGroup: _newRuleGroup4,
|
|
127
|
+
isDirty: true
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
case 'ADD_RULE_GROUP':
|
|
131
|
+
{
|
|
132
|
+
var _action$payload4 = action.payload,
|
|
133
|
+
_path5 = _action$payload4.path,
|
|
134
|
+
_group = _action$payload4.group;
|
|
135
|
+
var _newRuleGroup5 = (0, _pathHelpers.addRuleGroupAtPath)(state.ruleGroup, _path5, _group);
|
|
136
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
137
|
+
ruleGroup: _newRuleGroup5,
|
|
138
|
+
isDirty: true
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
case 'SET_VALIDATION_RESULT':
|
|
142
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
143
|
+
validationResult: action.payload
|
|
144
|
+
});
|
|
145
|
+
case 'RESET':
|
|
146
|
+
{
|
|
147
|
+
return createInitialState(undefined, state.fields);
|
|
148
|
+
}
|
|
149
|
+
default:
|
|
150
|
+
return state;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Context 类型定义
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Context 对象
|
|
160
|
+
*/
|
|
161
|
+
var RuleBuilderContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Provider Props
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* RuleBuilder Provider 组件
|
|
169
|
+
*/
|
|
170
|
+
function RuleBuilderProvider(_ref) {
|
|
171
|
+
var children = _ref.children,
|
|
172
|
+
initialRule = _ref.initialRule,
|
|
173
|
+
fields = _ref.fields;
|
|
174
|
+
var _useReducer = (0, _react.useReducer)(ruleBuilderReducer, createInitialState(initialRule, fields)),
|
|
175
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
176
|
+
state = _useReducer2[0],
|
|
177
|
+
dispatch = _useReducer2[1];
|
|
178
|
+
|
|
179
|
+
// 监听fields变化,同步更新到state
|
|
180
|
+
_react.default.useEffect(function () {
|
|
181
|
+
dispatch({
|
|
182
|
+
type: 'SET_FIELDS',
|
|
183
|
+
payload: fields
|
|
184
|
+
});
|
|
185
|
+
}, [fields]);
|
|
186
|
+
|
|
187
|
+
// 使用 useMemo 避免不必要的重渲染
|
|
188
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
189
|
+
return {
|
|
190
|
+
state: state,
|
|
191
|
+
dispatch: dispatch
|
|
192
|
+
};
|
|
193
|
+
}, [state]);
|
|
194
|
+
return /*#__PURE__*/_react.default.createElement(RuleBuilderContext.Provider, {
|
|
195
|
+
value: contextValue
|
|
196
|
+
}, children);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* 使用 RuleBuilder Context 的 Hook
|
|
201
|
+
* @throws {Error} 如果在 Provider 外部使用
|
|
202
|
+
*/
|
|
203
|
+
function useRuleBuilderContext() {
|
|
204
|
+
var context = (0, _react.useContext)(RuleBuilderContext);
|
|
205
|
+
if (context === undefined) {
|
|
206
|
+
throw new Error('useRuleBuilderContext 必须在 RuleBuilderProvider 内部使用');
|
|
207
|
+
}
|
|
208
|
+
return context;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* 便捷 Hook: 获取当前规则组
|
|
213
|
+
*/
|
|
214
|
+
function useRuleGroup() {
|
|
215
|
+
var _useRuleBuilderContex = useRuleBuilderContext(),
|
|
216
|
+
state = _useRuleBuilderContex.state;
|
|
217
|
+
return state.ruleGroup;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* 便捷 Hook: 获取字段列表
|
|
222
|
+
*/
|
|
223
|
+
function useFields() {
|
|
224
|
+
var _useRuleBuilderContex2 = useRuleBuilderContext(),
|
|
225
|
+
state = _useRuleBuilderContex2.state;
|
|
226
|
+
return state.fields;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* 便捷 Hook: 获取加载状态
|
|
231
|
+
*/
|
|
232
|
+
function useLoading() {
|
|
233
|
+
var _useRuleBuilderContex3 = useRuleBuilderContext(),
|
|
234
|
+
state = _useRuleBuilderContex3.state;
|
|
235
|
+
return state.loading;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* 便捷 Hook: 获取验证结果
|
|
240
|
+
*/
|
|
241
|
+
function useValidation() {
|
|
242
|
+
var _useRuleBuilderContex4 = useRuleBuilderContext(),
|
|
243
|
+
state = _useRuleBuilderContex4.state;
|
|
244
|
+
return state.validationResult;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* 便捷 Hook: 获取修改状态
|
|
249
|
+
*/
|
|
250
|
+
function useIsDirty() {
|
|
251
|
+
var _useRuleBuilderContex5 = useRuleBuilderContext(),
|
|
252
|
+
state = _useRuleBuilderContex5.state;
|
|
253
|
+
return state.isDirty;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* 便捷 Hook: 获取 state
|
|
258
|
+
*/
|
|
259
|
+
function useRuleBuilderState() {
|
|
260
|
+
var _useRuleBuilderContex6 = useRuleBuilderContext(),
|
|
261
|
+
state = _useRuleBuilderContex6.state;
|
|
262
|
+
return state;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* 便捷 Hook: 获取 dispatch
|
|
267
|
+
*/
|
|
268
|
+
function useRuleBuilderDispatch() {
|
|
269
|
+
var _useRuleBuilderContex7 = useRuleBuilderContext(),
|
|
270
|
+
dispatch = _useRuleBuilderContex7.dispatch;
|
|
271
|
+
return dispatch;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* 便捷 Hook: 获取字段列表(别名,与 useFields 相同)
|
|
276
|
+
*/
|
|
277
|
+
function useRuleBuilderFields() {
|
|
278
|
+
return useFields();
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* 便捷 Hook: 获取验证结果(别名,与 useValidation 相同)
|
|
283
|
+
*/
|
|
284
|
+
function useRuleBuilderValidation() {
|
|
285
|
+
return useValidation();
|
|
286
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuleBuilder 规则构建器组件
|
|
3
|
+
*
|
|
4
|
+
* 主导出文件 - 导出所有公共 API
|
|
5
|
+
*
|
|
6
|
+
* @module RuleBuilder
|
|
7
|
+
*/
|
|
8
|
+
export { RuleBuilderContainer as RuleBuilder } from './RuleBuilderContainer';
|
|
9
|
+
export { RuleBuilderContainer } from './RuleBuilderContainer';
|
|
10
|
+
export { RuleGroupEditor } from './RuleGroupEditor';
|
|
11
|
+
export { RuleCard } from './RuleCard';
|
|
12
|
+
export { LogicSelector } from './LogicSelector';
|
|
13
|
+
export { FieldSelector } from './selectors/FieldSelector';
|
|
14
|
+
export { OperatorSelector } from './selectors/OperatorSelector';
|
|
15
|
+
export { ValueInput } from './inputs/ValueInput';
|
|
16
|
+
export { SingleValueInput } from './inputs/SingleValueInput';
|
|
17
|
+
export { BetweenValueInput } from './inputs/BetweenValueInput';
|
|
18
|
+
export { MultiValueInput } from './inputs/MultiValueInput';
|
|
19
|
+
export { RuleBuilderProvider, useRuleBuilderContext, useRuleBuilderState, useRuleBuilderDispatch, useRuleBuilderFields, useRuleBuilderValidation, useRuleGroup, useFields, useLoading, useValidation, useIsDirty, } from './context/RuleBuilderContext';
|
|
20
|
+
export { createEmptyRule, createEmptyRuleGroup, generateRuleDescription, cloneRuleGroup, isRuleGroupEmpty, countRules, getMaxDepth, } from './utils/ruleHelpers';
|
|
21
|
+
export { getRuleGroupByPath, getRuleByPath, updateRuleAtPath, deleteRuleAtPath, addRuleAtPath, updateRuleGroupAtPath, deleteRuleGroupAtPath, addRuleGroupAtPath, } from './utils/pathHelpers';
|
|
22
|
+
export { validateRuleGroup, validateRule, isRuleGroupValid, } from './utils/validation';
|
|
23
|
+
export { OPERATOR_INFO_MAP, getOperatorInfo, operatorRequiresValue, operatorRequiresValue2, operatorRequiresMultiValue, getOperatorsByDataType, MAX_NESTING_LEVEL, } from './constants/operators';
|
|
24
|
+
export type { MatchOperator, MatchLogic, FieldDataType, RuleDto, RuleGroupDto, FieldDefinition, ValidationResult, ValidationError, RuleBuilderProps, RuleBuilderConfig, RulePath, RuleBuilderState, RuleBuilderAction, OperatorInfo, } from './types';
|
|
25
|
+
export { RuleBuilderContainer as default } from './RuleBuilderContainer';
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BetweenValueInput", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _BetweenValueInput.BetweenValueInput;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FieldSelector", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _FieldSelector.FieldSelector;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "LogicSelector", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _LogicSelector.LogicSelector;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "MAX_NESTING_LEVEL", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _operators.MAX_NESTING_LEVEL;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "MultiValueInput", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _MultiValueInput.MultiValueInput;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "OPERATOR_INFO_MAP", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _operators.OPERATOR_INFO_MAP;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "OperatorSelector", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _OperatorSelector.OperatorSelector;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "RuleBuilder", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _RuleBuilderContainer.RuleBuilderContainer;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "RuleBuilderContainer", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _RuleBuilderContainer.RuleBuilderContainer;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "RuleBuilderProvider", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _RuleBuilderContext.RuleBuilderProvider;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "RuleCard", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function get() {
|
|
69
|
+
return _RuleCard.RuleCard;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "RuleGroupEditor", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _RuleGroupEditor.RuleGroupEditor;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "SingleValueInput", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _SingleValueInput.SingleValueInput;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "ValueInput", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function get() {
|
|
87
|
+
return _ValueInput.ValueInput;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "addRuleAtPath", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _pathHelpers.addRuleAtPath;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "addRuleGroupAtPath", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function get() {
|
|
99
|
+
return _pathHelpers.addRuleGroupAtPath;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(exports, "cloneRuleGroup", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function get() {
|
|
105
|
+
return _ruleHelpers.cloneRuleGroup;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(exports, "countRules", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function get() {
|
|
111
|
+
return _ruleHelpers.countRules;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(exports, "createEmptyRule", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function get() {
|
|
117
|
+
return _ruleHelpers.createEmptyRule;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
Object.defineProperty(exports, "createEmptyRuleGroup", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function get() {
|
|
123
|
+
return _ruleHelpers.createEmptyRuleGroup;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "default", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function get() {
|
|
129
|
+
return _RuleBuilderContainer.RuleBuilderContainer;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
Object.defineProperty(exports, "deleteRuleAtPath", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
get: function get() {
|
|
135
|
+
return _pathHelpers.deleteRuleAtPath;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(exports, "deleteRuleGroupAtPath", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function get() {
|
|
141
|
+
return _pathHelpers.deleteRuleGroupAtPath;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
Object.defineProperty(exports, "generateRuleDescription", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
get: function get() {
|
|
147
|
+
return _ruleHelpers.generateRuleDescription;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
Object.defineProperty(exports, "getMaxDepth", {
|
|
151
|
+
enumerable: true,
|
|
152
|
+
get: function get() {
|
|
153
|
+
return _ruleHelpers.getMaxDepth;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
Object.defineProperty(exports, "getOperatorInfo", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function get() {
|
|
159
|
+
return _operators.getOperatorInfo;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
Object.defineProperty(exports, "getOperatorsByDataType", {
|
|
163
|
+
enumerable: true,
|
|
164
|
+
get: function get() {
|
|
165
|
+
return _operators.getOperatorsByDataType;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
Object.defineProperty(exports, "getRuleByPath", {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
get: function get() {
|
|
171
|
+
return _pathHelpers.getRuleByPath;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
Object.defineProperty(exports, "getRuleGroupByPath", {
|
|
175
|
+
enumerable: true,
|
|
176
|
+
get: function get() {
|
|
177
|
+
return _pathHelpers.getRuleGroupByPath;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
Object.defineProperty(exports, "isRuleGroupEmpty", {
|
|
181
|
+
enumerable: true,
|
|
182
|
+
get: function get() {
|
|
183
|
+
return _ruleHelpers.isRuleGroupEmpty;
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
Object.defineProperty(exports, "isRuleGroupValid", {
|
|
187
|
+
enumerable: true,
|
|
188
|
+
get: function get() {
|
|
189
|
+
return _validation.isRuleGroupValid;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
Object.defineProperty(exports, "operatorRequiresMultiValue", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function get() {
|
|
195
|
+
return _operators.operatorRequiresMultiValue;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "operatorRequiresValue", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function get() {
|
|
201
|
+
return _operators.operatorRequiresValue;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
Object.defineProperty(exports, "operatorRequiresValue2", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function get() {
|
|
207
|
+
return _operators.operatorRequiresValue2;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
Object.defineProperty(exports, "updateRuleAtPath", {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
get: function get() {
|
|
213
|
+
return _pathHelpers.updateRuleAtPath;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
Object.defineProperty(exports, "updateRuleGroupAtPath", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function get() {
|
|
219
|
+
return _pathHelpers.updateRuleGroupAtPath;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
Object.defineProperty(exports, "useFields", {
|
|
223
|
+
enumerable: true,
|
|
224
|
+
get: function get() {
|
|
225
|
+
return _RuleBuilderContext.useFields;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
Object.defineProperty(exports, "useIsDirty", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function get() {
|
|
231
|
+
return _RuleBuilderContext.useIsDirty;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
Object.defineProperty(exports, "useLoading", {
|
|
235
|
+
enumerable: true,
|
|
236
|
+
get: function get() {
|
|
237
|
+
return _RuleBuilderContext.useLoading;
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
Object.defineProperty(exports, "useRuleBuilderContext", {
|
|
241
|
+
enumerable: true,
|
|
242
|
+
get: function get() {
|
|
243
|
+
return _RuleBuilderContext.useRuleBuilderContext;
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
Object.defineProperty(exports, "useRuleBuilderDispatch", {
|
|
247
|
+
enumerable: true,
|
|
248
|
+
get: function get() {
|
|
249
|
+
return _RuleBuilderContext.useRuleBuilderDispatch;
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
Object.defineProperty(exports, "useRuleBuilderFields", {
|
|
253
|
+
enumerable: true,
|
|
254
|
+
get: function get() {
|
|
255
|
+
return _RuleBuilderContext.useRuleBuilderFields;
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
Object.defineProperty(exports, "useRuleBuilderState", {
|
|
259
|
+
enumerable: true,
|
|
260
|
+
get: function get() {
|
|
261
|
+
return _RuleBuilderContext.useRuleBuilderState;
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
Object.defineProperty(exports, "useRuleBuilderValidation", {
|
|
265
|
+
enumerable: true,
|
|
266
|
+
get: function get() {
|
|
267
|
+
return _RuleBuilderContext.useRuleBuilderValidation;
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
Object.defineProperty(exports, "useRuleGroup", {
|
|
271
|
+
enumerable: true,
|
|
272
|
+
get: function get() {
|
|
273
|
+
return _RuleBuilderContext.useRuleGroup;
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
Object.defineProperty(exports, "useValidation", {
|
|
277
|
+
enumerable: true,
|
|
278
|
+
get: function get() {
|
|
279
|
+
return _RuleBuilderContext.useValidation;
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
Object.defineProperty(exports, "validateRule", {
|
|
283
|
+
enumerable: true,
|
|
284
|
+
get: function get() {
|
|
285
|
+
return _validation.validateRule;
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
Object.defineProperty(exports, "validateRuleGroup", {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function get() {
|
|
291
|
+
return _validation.validateRuleGroup;
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
var _RuleBuilderContainer = require("./RuleBuilderContainer");
|
|
295
|
+
var _RuleGroupEditor = require("./RuleGroupEditor");
|
|
296
|
+
var _RuleCard = require("./RuleCard");
|
|
297
|
+
var _LogicSelector = require("./LogicSelector");
|
|
298
|
+
var _FieldSelector = require("./selectors/FieldSelector");
|
|
299
|
+
var _OperatorSelector = require("./selectors/OperatorSelector");
|
|
300
|
+
var _ValueInput = require("./inputs/ValueInput");
|
|
301
|
+
var _SingleValueInput = require("./inputs/SingleValueInput");
|
|
302
|
+
var _BetweenValueInput = require("./inputs/BetweenValueInput");
|
|
303
|
+
var _MultiValueInput = require("./inputs/MultiValueInput");
|
|
304
|
+
var _RuleBuilderContext = require("./context/RuleBuilderContext");
|
|
305
|
+
var _ruleHelpers = require("./utils/ruleHelpers");
|
|
306
|
+
var _pathHelpers = require("./utils/pathHelpers");
|
|
307
|
+
var _validation = require("./utils/validation");
|
|
308
|
+
var _operators = require("./constants/operators");
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 区间值输入组件
|
|
3
|
+
*
|
|
4
|
+
* 用于 Between 操作符,渲染两个输入框(最小值和最大值)
|
|
5
|
+
* 支持数值和日期类型
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
export interface BetweenValueInputProps {
|
|
9
|
+
/** 最小值 */
|
|
10
|
+
value: any;
|
|
11
|
+
/** 最大值 */
|
|
12
|
+
value2: any;
|
|
13
|
+
/** 值变更回调 */
|
|
14
|
+
onChange: (value: any, value2: any) => void;
|
|
15
|
+
/** 字段数据类型 */
|
|
16
|
+
dataType: 'number' | 'date';
|
|
17
|
+
/** 是否禁用 */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** 尺寸 */
|
|
20
|
+
size?: 'small' | 'middle' | 'large';
|
|
21
|
+
}
|
|
22
|
+
export declare const BetweenValueInput: React.FC<BetweenValueInputProps>;
|
|
23
|
+
export default BetweenValueInput;
|