iglooform 2.5.49 → 2.5.51
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/es/checkbox/index.js +4 -7
- package/es/date-picker/index.d.ts +4 -1
- package/es/date-picker/index.js +2 -2
- package/es/form/element/index.js +3 -2
- package/es/form/hsteps/index.js +40 -21
- package/es/form/steps/index.js +28 -11
- package/es/free-form/step/index.d.ts +0 -1
- package/es/free-form/step/index.js +20 -9
- package/es/types.d.ts +1 -0
- package/es/utils/form-utils.d.ts +3 -3
- package/es/utils/form-utils.js +39 -17
- package/lib/checkbox/index.js +4 -7
- package/lib/date-picker/index.d.ts +4 -1
- package/lib/date-picker/index.js +2 -2
- package/lib/form/element/index.js +3 -2
- package/lib/form/hsteps/index.js +39 -20
- package/lib/form/steps/index.js +27 -10
- package/lib/free-form/step/index.d.ts +0 -1
- package/lib/free-form/step/index.js +19 -8
- package/lib/types.d.ts +1 -0
- package/lib/utils/form-utils.d.ts +3 -3
- package/lib/utils/form-utils.js +39 -17
- package/package.json +1 -1
package/es/checkbox/index.js
CHANGED
|
@@ -42,21 +42,18 @@ import emptyIcon from '../radio/style/empty.svg';
|
|
|
42
42
|
import './style/index.less'; // add disabled attributes to checkbox options based on mutually exclusion config
|
|
43
43
|
|
|
44
44
|
var addDisabledAttr = function addDisabledAttr(options, mutuallyExclusions, checkedValues) {
|
|
45
|
-
if (!mutuallyExclusions || !checkedValues) return options;
|
|
46
|
-
checkedValues = Array.isArray(checkedValues) ? checkedValues : [checkedValues];
|
|
45
|
+
if (!mutuallyExclusions || !Object.keys(mutuallyExclusions).length || !(checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues.length)) return options;
|
|
47
46
|
return options.map(function (_ref) {
|
|
48
|
-
var _checkedValues;
|
|
49
|
-
|
|
50
47
|
var value = _ref.value,
|
|
51
48
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
52
49
|
|
|
53
50
|
return _objectSpread(_objectSpread({}, rest), {}, {
|
|
54
51
|
value: value,
|
|
55
|
-
disabled: !!value &&
|
|
52
|
+
disabled: !!(value && (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues.some(function (v) {
|
|
56
53
|
var _mutuallyExclusions$S, _mutuallyExclusions$v;
|
|
57
54
|
|
|
58
|
-
return ((_mutuallyExclusions$S = mutuallyExclusions[String(v)]) === null || _mutuallyExclusions$S === void 0 ? void 0 : _mutuallyExclusions$S.includes(String(value))) || ((_mutuallyExclusions$v = mutuallyExclusions[value]) === null || _mutuallyExclusions$v === void 0 ? void 0 : _mutuallyExclusions$v.includes(String(v)));
|
|
59
|
-
}))
|
|
55
|
+
return v !== value && (((_mutuallyExclusions$S = mutuallyExclusions[String(v)]) === null || _mutuallyExclusions$S === void 0 ? void 0 : _mutuallyExclusions$S.includes(String(value))) || ((_mutuallyExclusions$v = mutuallyExclusions[value]) === null || _mutuallyExclusions$v === void 0 ? void 0 : _mutuallyExclusions$v.includes(String(v))));
|
|
56
|
+
})))
|
|
60
57
|
});
|
|
61
58
|
});
|
|
62
59
|
};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { DatePickerProps, RangePickerProps, MonthPickerProps, WeekPickerProps } from 'antd/es/date-picker';
|
|
2
2
|
import { FC, IglooComponentProps } from '../types';
|
|
3
|
+
import { Moment } from 'moment';
|
|
3
4
|
import './style/index.less';
|
|
4
5
|
export { default as IglooBuddhistDatePicker } from './buddhist';
|
|
5
|
-
declare type Props = DatePickerProps & IglooComponentProps
|
|
6
|
+
declare type Props = Omit<DatePickerProps, 'value'> & IglooComponentProps & {
|
|
7
|
+
value?: Moment | null | 0;
|
|
8
|
+
};
|
|
6
9
|
declare const IglooDatePicker: FC<Props>;
|
|
7
10
|
export default IglooDatePicker;
|
|
8
11
|
export declare const IglooRangePicker: FC<RangePickerProps & IglooComponentProps>;
|
package/es/date-picker/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var IglooDatePicker = function IglooDatePicker(_ref) {
|
|
|
62
62
|
setFocus = _useState2[1];
|
|
63
63
|
|
|
64
64
|
return _jsx(_DatePicker, _objectSpread(_objectSpread({}, omit(props, formMethods)), {}, {
|
|
65
|
-
value: moment(value),
|
|
65
|
+
value: value || value === 0 ? moment(value) : undefined,
|
|
66
66
|
placeholder: placeholder || dateFormater,
|
|
67
67
|
format: format || dateFormater,
|
|
68
68
|
inputReadOnly: true,
|
|
@@ -89,7 +89,7 @@ IglooDatePicker.formItemPropsHandler = function (_ref2) {
|
|
|
89
89
|
return moment(value).format(format || dateFormater);
|
|
90
90
|
},
|
|
91
91
|
valueFormater: function valueFormater(value) {
|
|
92
|
-
return +moment(value);
|
|
92
|
+
return value ? +moment(value) : value;
|
|
93
93
|
},
|
|
94
94
|
'element-allowClear': false
|
|
95
95
|
};
|
package/es/form/element/index.js
CHANGED
|
@@ -91,7 +91,8 @@ var Element = function Element(_ref) {
|
|
|
91
91
|
subscribedFields = config.subscribedFields,
|
|
92
92
|
disabled = config.disabled,
|
|
93
93
|
extraLabel = config.extraLabel,
|
|
94
|
-
requiredAsserts = config.requiredAsserts
|
|
94
|
+
requiredAsserts = config.requiredAsserts,
|
|
95
|
+
shouldRenderCode = config.shouldRenderCode;
|
|
95
96
|
var dependentField = dependencies || [];
|
|
96
97
|
|
|
97
98
|
if (Array.isArray(subscribedFields)) {
|
|
@@ -123,7 +124,7 @@ var Element = function Element(_ref) {
|
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
126
|
|
|
126
|
-
if ((shouldRender || getOptions || typeof extraLabel === 'function') && !Array.isArray(subscribedFields)) {
|
|
127
|
+
if ((shouldRender || shouldRenderCode || getOptions || typeof extraLabel === 'function') && !Array.isArray(subscribedFields)) {
|
|
127
128
|
dependentField.push('SUBSCRIBE_ALL');
|
|
128
129
|
}
|
|
129
130
|
|
package/es/form/hsteps/index.js
CHANGED
|
@@ -32,7 +32,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
32
32
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
33
33
|
import { useState, useContext, useEffect, useReducer, useRef } from 'react';
|
|
34
34
|
import HStep from '../hstep';
|
|
35
|
-
import { calcNamePath, getRuleValidation } from '../../utils/form-utils';
|
|
35
|
+
import { calcNamePath, getRuleValidation, calcShouldRender } from '../../utils/form-utils';
|
|
36
36
|
import FormContext from '../../form-context';
|
|
37
37
|
import StepContext from '../../form-step-context';
|
|
38
38
|
import './style/index.less';
|
|
@@ -105,26 +105,45 @@ var HSteps = function HSteps(_ref) {
|
|
|
105
105
|
useEffect(function () {
|
|
106
106
|
var subscribe = elements.some(function (_ref2) {
|
|
107
107
|
var shouldRender = _ref2.shouldRender,
|
|
108
|
-
getButtonDisabledState = _ref2.getButtonDisabledState
|
|
109
|
-
|
|
108
|
+
getButtonDisabledState = _ref2.getButtonDisabledState,
|
|
109
|
+
shouldRenderCode = _ref2.shouldRenderCode;
|
|
110
|
+
return Boolean(shouldRender) || Boolean(getButtonDisabledState) || Boolean(shouldRenderCode);
|
|
110
111
|
});
|
|
111
112
|
|
|
112
113
|
if (subscribe) {
|
|
113
114
|
Array.isArray(subscribedFields) ? registerDependencies(subscribedFields, dispatch) : registerDependencies('SUBSCRIBE_ALL', dispatch);
|
|
114
115
|
}
|
|
116
|
+
|
|
117
|
+
var dependentField = [];
|
|
118
|
+
elements.forEach(function (_ref3) {
|
|
119
|
+
var asserts = _ref3.asserts;
|
|
120
|
+
if (!(asserts === null || asserts === void 0 ? void 0 : asserts.length)) return;
|
|
121
|
+
asserts.forEach(function (_ref4) {
|
|
122
|
+
var field = _ref4.field;
|
|
123
|
+
return dependentField.push(field);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
dependentField.length && registerDependencies(dependentField, dispatch);
|
|
115
127
|
}, []);
|
|
116
128
|
useEffect(function () {
|
|
117
129
|
if (currentStep === undefined || currentStep === current) return;
|
|
118
130
|
setCurrent(currentStep);
|
|
119
131
|
}, [currentStep]);
|
|
120
|
-
var renderElements = elements.filter(function (
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
132
|
+
var renderElements = elements.filter(function (_ref5) {
|
|
133
|
+
var type = _ref5.type,
|
|
134
|
+
curName = _ref5.name,
|
|
135
|
+
validationRule = _ref5.validationRule,
|
|
136
|
+
dependencies = _ref5.dependencies,
|
|
137
|
+
asserts = _ref5.asserts,
|
|
138
|
+
shouldRender = _ref5.shouldRender,
|
|
139
|
+
shouldRenderCode = _ref5.shouldRenderCode;
|
|
140
|
+
invariant(type === 'Step', 'Child of steps should be Step');
|
|
141
|
+
invariant(!validationRule || getRuleValidationApi, 'Please provide getRuleValidationApi in Form props');
|
|
142
|
+
return calcShouldRender(calcNamePath(calcNamePath(parentName, name), curName), dependencies, asserts, shouldRender, shouldRenderCode, form);
|
|
124
143
|
});
|
|
125
144
|
|
|
126
145
|
var handleNext = /*#__PURE__*/function () {
|
|
127
|
-
var
|
|
146
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
128
147
|
var _allFields$filter;
|
|
129
148
|
|
|
130
149
|
var allFields, allValues, _renderElements$curre, currentName, handleNext, validationRule, namePath, fields, _iterator, _step, collapseSection, res, errors;
|
|
@@ -137,11 +156,11 @@ var HSteps = function HSteps(_ref) {
|
|
|
137
156
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
138
157
|
_renderElements$curre = renderElements[current], currentName = _renderElements$curre.name, handleNext = _renderElements$curre.handleNext, validationRule = _renderElements$curre.validationRule;
|
|
139
158
|
namePath = calcNamePath(name, currentName);
|
|
140
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
141
|
-
var name =
|
|
159
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref7) {
|
|
160
|
+
var name = _ref7.name;
|
|
142
161
|
return name.join().startsWith(namePath === null || namePath === void 0 ? void 0 : namePath.join());
|
|
143
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (
|
|
144
|
-
var name =
|
|
162
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref8) {
|
|
163
|
+
var name = _ref8.name;
|
|
145
164
|
return name;
|
|
146
165
|
});
|
|
147
166
|
_context.prev = 5;
|
|
@@ -245,7 +264,7 @@ var HSteps = function HSteps(_ref) {
|
|
|
245
264
|
}));
|
|
246
265
|
|
|
247
266
|
return function handleNext() {
|
|
248
|
-
return
|
|
267
|
+
return _ref6.apply(this, arguments);
|
|
249
268
|
};
|
|
250
269
|
}();
|
|
251
270
|
|
|
@@ -392,14 +411,14 @@ var HSteps = function HSteps(_ref) {
|
|
|
392
411
|
margin: 0
|
|
393
412
|
},
|
|
394
413
|
children: _jsx(Confirmation, {})
|
|
395
|
-
}), confirmations && Object.entries(confirmations).map(function (
|
|
396
|
-
var
|
|
397
|
-
key =
|
|
398
|
-
|
|
399
|
-
required =
|
|
400
|
-
|
|
401
|
-
confirmation =
|
|
402
|
-
requiredMessage =
|
|
414
|
+
}), confirmations && Object.entries(confirmations).map(function (_ref9) {
|
|
415
|
+
var _ref10 = _slicedToArray(_ref9, 2),
|
|
416
|
+
key = _ref10[0],
|
|
417
|
+
_ref10$ = _ref10[1],
|
|
418
|
+
required = _ref10$.required,
|
|
419
|
+
_ref10$$confirmation = _ref10$.confirmation,
|
|
420
|
+
confirmation = _ref10$$confirmation === void 0 ? {} : _ref10$$confirmation,
|
|
421
|
+
requiredMessage = _ref10$.requiredMessage;
|
|
403
422
|
|
|
404
423
|
return _jsx(_Form.Item, {
|
|
405
424
|
name: calcNamePath(parentName, key),
|
package/es/form/steps/index.js
CHANGED
|
@@ -19,7 +19,7 @@ import { useState, useContext, useEffect, useReducer, useRef } from 'react';
|
|
|
19
19
|
import invariant from 'invariant';
|
|
20
20
|
import classnames from 'classnames';
|
|
21
21
|
import Step from '../step';
|
|
22
|
-
import { calcNamePath, getRuleValidation } from '../../utils/form-utils';
|
|
22
|
+
import { calcNamePath, getRuleValidation, calcShouldRender } from '../../utils/form-utils';
|
|
23
23
|
import FormContext from '../../form-context';
|
|
24
24
|
import StepContext from '../../form-step-context';
|
|
25
25
|
import { LocaleContext } from '../../locale';
|
|
@@ -74,24 +74,41 @@ var Steps = function Steps(_ref) {
|
|
|
74
74
|
useEffect(function () {
|
|
75
75
|
var subscribe = elements.some(function (_ref2) {
|
|
76
76
|
var shouldRender = _ref2.shouldRender,
|
|
77
|
-
getButtonDisabledState = _ref2.getButtonDisabledState
|
|
78
|
-
|
|
77
|
+
getButtonDisabledState = _ref2.getButtonDisabledState,
|
|
78
|
+
shouldRenderCode = _ref2.shouldRenderCode;
|
|
79
|
+
return Boolean(shouldRender) || Boolean(getButtonDisabledState) || Boolean(shouldRenderCode);
|
|
79
80
|
});
|
|
80
81
|
|
|
81
82
|
if (subscribe) {
|
|
82
83
|
Array.isArray(subscribedFields) ? registerDependencies(subscribedFields, dispatch) : registerDependencies('SUBSCRIBE_ALL', dispatch);
|
|
83
84
|
}
|
|
85
|
+
|
|
86
|
+
var dependentField = [];
|
|
87
|
+
elements.forEach(function (_ref3) {
|
|
88
|
+
var asserts = _ref3.asserts;
|
|
89
|
+
if (!(asserts === null || asserts === void 0 ? void 0 : asserts.length)) return;
|
|
90
|
+
asserts.forEach(function (_ref4) {
|
|
91
|
+
var field = _ref4.field;
|
|
92
|
+
return dependentField.push(field);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
dependentField.length && registerDependencies(dependentField, dispatch);
|
|
84
96
|
}, []);
|
|
85
97
|
useEffect(function () {
|
|
86
98
|
if (currentStep === undefined || currentStep === current) return;
|
|
87
99
|
setCurrent(currentStep);
|
|
88
100
|
}, [currentStep]);
|
|
89
|
-
var renderElements = elements.filter(function (
|
|
90
|
-
|
|
101
|
+
var renderElements = elements.filter(function (_ref5) {
|
|
102
|
+
var curName = _ref5.name,
|
|
103
|
+
dependencies = _ref5.dependencies,
|
|
104
|
+
asserts = _ref5.asserts,
|
|
105
|
+
shouldRender = _ref5.shouldRender,
|
|
106
|
+
shouldRenderCode = _ref5.shouldRenderCode;
|
|
107
|
+
return calcShouldRender(calcNamePath(calcNamePath(parentName, name), curName), dependencies, asserts, shouldRender, shouldRenderCode, form);
|
|
91
108
|
});
|
|
92
109
|
|
|
93
110
|
var handleNext = /*#__PURE__*/function () {
|
|
94
|
-
var
|
|
111
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
95
112
|
var _allFields$filter;
|
|
96
113
|
|
|
97
114
|
var allFields, allValues, _renderElements$curre, currentName, handleNext, validationRule, namePath, fields, res, errors;
|
|
@@ -104,11 +121,11 @@ var Steps = function Steps(_ref) {
|
|
|
104
121
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
105
122
|
_renderElements$curre = renderElements[current], currentName = _renderElements$curre.name, handleNext = _renderElements$curre.handleNext, validationRule = _renderElements$curre.validationRule;
|
|
106
123
|
namePath = calcNamePath(name, currentName);
|
|
107
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
108
|
-
var name =
|
|
124
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref7) {
|
|
125
|
+
var name = _ref7.name;
|
|
109
126
|
return name.join().startsWith(namePath === null || namePath === void 0 ? void 0 : namePath.join());
|
|
110
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (
|
|
111
|
-
var name =
|
|
127
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref8) {
|
|
128
|
+
var name = _ref8.name;
|
|
112
129
|
return name;
|
|
113
130
|
});
|
|
114
131
|
_context.prev = 5;
|
|
@@ -199,7 +216,7 @@ var Steps = function Steps(_ref) {
|
|
|
199
216
|
}));
|
|
200
217
|
|
|
201
218
|
return function handleNext() {
|
|
202
|
-
return
|
|
219
|
+
return _ref6.apply(this, arguments);
|
|
203
220
|
};
|
|
204
221
|
}();
|
|
205
222
|
|
|
@@ -33,7 +33,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
33
33
|
import { useContext, useState, useRef, useEffect, useMemo, useReducer, cloneElement, isValidElement } from 'react';
|
|
34
34
|
import { LocaleContext } from '../../locale';
|
|
35
35
|
import Button from '../../button';
|
|
36
|
-
import { calcNamePath, getRuleValidation } from '../../utils/form-utils';
|
|
36
|
+
import { calcNamePath, getRuleValidation, calcShouldRender } from '../../utils/form-utils';
|
|
37
37
|
import FormContext from '../../form-context';
|
|
38
38
|
import invariant from 'invariant';
|
|
39
39
|
import './style/index.less';
|
|
@@ -63,7 +63,10 @@ var Step = function Step(_ref) {
|
|
|
63
63
|
shouldRender = _ref.shouldRender,
|
|
64
64
|
subscribedFields = _ref.subscribedFields,
|
|
65
65
|
buttonText = _ref.buttonText,
|
|
66
|
-
validationRule = _ref.validationRule
|
|
66
|
+
validationRule = _ref.validationRule,
|
|
67
|
+
asserts = _ref.asserts,
|
|
68
|
+
dependencies = _ref.dependencies,
|
|
69
|
+
shouldRenderCode = _ref.shouldRenderCode;
|
|
67
70
|
|
|
68
71
|
var _useContext = useContext(LocaleContext),
|
|
69
72
|
formatMessage = _useContext.formatMessage,
|
|
@@ -98,6 +101,14 @@ var Step = function Step(_ref) {
|
|
|
98
101
|
if (shouldRender || getButtonDisabledState) {
|
|
99
102
|
registerDependencies(Array.isArray(subscribedFields) ? subscribedFields : 'SUBSCRIBE_ALL', dispatch);
|
|
100
103
|
}
|
|
104
|
+
|
|
105
|
+
if (asserts === null || asserts === void 0 ? void 0 : asserts.length) {
|
|
106
|
+
var dependentField = asserts.map(function (_ref2) {
|
|
107
|
+
var field = _ref2.field;
|
|
108
|
+
return field;
|
|
109
|
+
});
|
|
110
|
+
registerDependencies(dependentField, dispatch);
|
|
111
|
+
}
|
|
101
112
|
}, []);
|
|
102
113
|
var pName = useMemo(function () {
|
|
103
114
|
return calcNamePath(parentName, name);
|
|
@@ -150,7 +161,7 @@ var Step = function Step(_ref) {
|
|
|
150
161
|
};
|
|
151
162
|
|
|
152
163
|
var handleNext = /*#__PURE__*/function () {
|
|
153
|
-
var
|
|
164
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
154
165
|
var _allFields$filter;
|
|
155
166
|
|
|
156
167
|
var allFields, allValues, fields, res, errors;
|
|
@@ -160,11 +171,11 @@ var Step = function Step(_ref) {
|
|
|
160
171
|
case 0:
|
|
161
172
|
allFields = (form === null || form === void 0 ? void 0 : form.getFieldsError()) || [];
|
|
162
173
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
163
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
164
|
-
var name = _ref3.name;
|
|
165
|
-
return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
|
|
166
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref4) {
|
|
174
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref4) {
|
|
167
175
|
var name = _ref4.name;
|
|
176
|
+
return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
|
|
177
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref5) {
|
|
178
|
+
var name = _ref5.name;
|
|
168
179
|
return name;
|
|
169
180
|
});
|
|
170
181
|
_context.prev = 3;
|
|
@@ -249,11 +260,11 @@ var Step = function Step(_ref) {
|
|
|
249
260
|
}));
|
|
250
261
|
|
|
251
262
|
return function handleNext() {
|
|
252
|
-
return
|
|
263
|
+
return _ref3.apply(this, arguments);
|
|
253
264
|
};
|
|
254
265
|
}();
|
|
255
266
|
|
|
256
|
-
if (
|
|
267
|
+
if (!calcShouldRender(pName, dependencies, asserts, shouldRender, shouldRenderCode, form)) {
|
|
257
268
|
return null;
|
|
258
269
|
}
|
|
259
270
|
|
package/es/types.d.ts
CHANGED
|
@@ -123,6 +123,7 @@ export interface FormItemExtraConfig extends FormItemProps {
|
|
|
123
123
|
maxLength?: number;
|
|
124
124
|
idType?: 'KTP' | 'NIK';
|
|
125
125
|
validationRule?: string;
|
|
126
|
+
shouldRenderCode?: string;
|
|
126
127
|
[key: string]: any;
|
|
127
128
|
}
|
|
128
129
|
export interface FormItemConfig extends FormItemExtraConfig {
|
package/es/utils/form-utils.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare const calcFormItemProps: (config: FormItemConfig, extraProps: For
|
|
|
50
50
|
elementProps: {
|
|
51
51
|
[key: string]: any;
|
|
52
52
|
};
|
|
53
|
-
display:
|
|
53
|
+
display: any;
|
|
54
54
|
previewFormater: ((value: any, form?: FormInstance<any> | undefined) => any) | undefined;
|
|
55
55
|
};
|
|
56
56
|
export declare const calcDisabled: (disabled?: boolean | FormItemAssert | FormItemAssert[] | undefined, form?: FormInstance<any> | undefined) => boolean;
|
|
@@ -72,5 +72,5 @@ export declare const calcSelectValue: (selectValue?: FormItemSelectValue[] | und
|
|
|
72
72
|
value: any;
|
|
73
73
|
disabled: boolean | undefined;
|
|
74
74
|
};
|
|
75
|
-
export declare const calcShouldRender: (dependencies?: NamePath[], asserts?: FormItemAssert[], shouldRender?: ((form?: FormInstance<any> | undefined) => boolean) | undefined, form?: FormInstance<any> | undefined) =>
|
|
76
|
-
export declare const getRuleValidation: (url: string, rule: string | string[], values?: any, lang?: string
|
|
75
|
+
export declare const calcShouldRender: (name: NamePath, dependencies?: NamePath[], asserts?: FormItemAssert[], shouldRender?: ((form?: FormInstance<any> | undefined) => boolean) | undefined, shouldRenderCode?: string | undefined, form?: FormInstance<any> | undefined) => any;
|
|
76
|
+
export declare const getRuleValidation: (url: string, rule: string | string[], values?: any, lang?: string) => Promise<any>;
|
package/es/utils/form-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["type", "name", "required", "requiredAsserts", "showOptional", "rules", "initialValue", "normalize", "mergeRules", "getValueFromEvent", "getValueProps", "extra", "help", "label", "previewLabel", "extraLabel", "copyValue", "selectValue", "span", "halfRow", "fullRow", "valuePropName", "dependencies", "asserts", "messageVariables", "requiredMessage", "previewFormater", "disabled", "ignore", "shouldRender", "valueFormater", "antdDependencies", "dateLimitationType", "absoluteRangeEnd", "absoluteRangeStart", "relativeRangeStart", "relativeRangeEnd", "validationCode"],
|
|
1
|
+
var _excluded = ["type", "name", "required", "requiredAsserts", "showOptional", "rules", "initialValue", "normalize", "mergeRules", "getValueFromEvent", "getValueProps", "extra", "help", "label", "previewLabel", "extraLabel", "copyValue", "selectValue", "span", "halfRow", "fullRow", "valuePropName", "dependencies", "asserts", "messageVariables", "requiredMessage", "previewFormater", "disabled", "ignore", "shouldRender", "valueFormater", "antdDependencies", "dateLimitationType", "absoluteRangeEnd", "absoluteRangeStart", "relativeRangeStart", "relativeRangeEnd", "validationCode", "shouldRenderCode"],
|
|
2
2
|
_excluded2 = ["initialValue", "normalize", "rules", "extra", "help", "getValueFromEvent", "span", "valuePropName", "fullRow", "halfRow", "messageVariables", "requiredMessage", "previewFormater", "valueFormater", "required", "requiredMark", "className"];
|
|
3
3
|
|
|
4
4
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
@@ -207,6 +207,7 @@ export var calcFormItemProps = function calcFormItemProps(config, extraProps, fo
|
|
|
207
207
|
relativeRangeEnd = config.relativeRangeEnd,
|
|
208
208
|
_config$validationCod = config.validationCode,
|
|
209
209
|
validationCode = _config$validationCod === void 0 ? [] : _config$validationCod,
|
|
210
|
+
shouldRenderCode = config.shouldRenderCode,
|
|
210
211
|
rest = _objectWithoutProperties(config, _excluded);
|
|
211
212
|
|
|
212
213
|
invariant(nameProp !== undefined || type === 'Divider' || type === 'Section' || type === 'Typography' || !type, "name property is required for form item config (type: ".concat(type, ")"));
|
|
@@ -428,7 +429,7 @@ export var calcFormItemProps = function calcFormItemProps(config, extraProps, fo
|
|
|
428
429
|
dependencies: antdDependencies
|
|
429
430
|
},
|
|
430
431
|
elementProps: elementProps,
|
|
431
|
-
display: !ignore && calcShouldRender(dependencies, asserts, shouldRender, form),
|
|
432
|
+
display: !ignore && calcShouldRender(name, dependencies, asserts, shouldRender, shouldRenderCode, form),
|
|
432
433
|
previewFormater: previewFormater || extraPreviewFormater
|
|
433
434
|
};
|
|
434
435
|
};
|
|
@@ -514,11 +515,12 @@ export var calcSelectValue = function calcSelectValue(selectValue, form) {
|
|
|
514
515
|
selected: false
|
|
515
516
|
};
|
|
516
517
|
};
|
|
517
|
-
export var calcShouldRender = function calcShouldRender() {
|
|
518
|
-
var dependencies = arguments.length >
|
|
519
|
-
var asserts = arguments.length >
|
|
520
|
-
var shouldRender = arguments.length >
|
|
521
|
-
var
|
|
518
|
+
export var calcShouldRender = function calcShouldRender(name) {
|
|
519
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
520
|
+
var asserts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
521
|
+
var shouldRender = arguments.length > 3 ? arguments[3] : undefined;
|
|
522
|
+
var shouldRenderCode = arguments.length > 4 ? arguments[4] : undefined;
|
|
523
|
+
var form = arguments.length > 5 ? arguments[5] : undefined;
|
|
522
524
|
if (!form) return true;
|
|
523
525
|
|
|
524
526
|
var _iterator3 = _createForOfIteratorHelper(dependencies),
|
|
@@ -538,6 +540,26 @@ export var calcShouldRender = function calcShouldRender() {
|
|
|
538
540
|
_iterator3.f();
|
|
539
541
|
}
|
|
540
542
|
|
|
543
|
+
if (typeof shouldRender === 'function') {
|
|
544
|
+
return shouldRender(form);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
if (shouldRenderCode) {
|
|
548
|
+
var fn = eval(shouldRenderCode);
|
|
549
|
+
|
|
550
|
+
if (typeof fn === 'function') {
|
|
551
|
+
try {
|
|
552
|
+
var value = form.getFieldValue(name);
|
|
553
|
+
var values = form.getFieldsValue(true);
|
|
554
|
+
return fn(value, values, {
|
|
555
|
+
moment: moment
|
|
556
|
+
});
|
|
557
|
+
} catch (_unused2) {
|
|
558
|
+
return false;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
541
563
|
var _iterator4 = _createForOfIteratorHelper(asserts),
|
|
542
564
|
_step4;
|
|
543
565
|
|
|
@@ -553,23 +575,23 @@ export var calcShouldRender = function calcShouldRender() {
|
|
|
553
575
|
_iterator4.f();
|
|
554
576
|
}
|
|
555
577
|
|
|
556
|
-
if (typeof shouldRender === 'function' && !shouldRender(form)) {
|
|
557
|
-
return false;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
578
|
return true;
|
|
561
579
|
};
|
|
562
580
|
export var getRuleValidation = /*#__PURE__*/function () {
|
|
563
|
-
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, rule, values
|
|
564
|
-
var
|
|
565
|
-
|
|
566
|
-
|
|
581
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, rule, values) {
|
|
582
|
+
var lang,
|
|
583
|
+
res,
|
|
584
|
+
json,
|
|
585
|
+
_ref4,
|
|
586
|
+
conclusion,
|
|
587
|
+
details,
|
|
588
|
+
_args = arguments;
|
|
567
589
|
|
|
568
590
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
569
591
|
while (1) {
|
|
570
592
|
switch (_context.prev = _context.next) {
|
|
571
593
|
case 0:
|
|
572
|
-
lang =
|
|
594
|
+
lang = _args.length > 3 && _args[3] !== undefined ? _args[3] : 'en-US';
|
|
573
595
|
_context.next = 3;
|
|
574
596
|
return fetch("".concat(url, "?lang=").concat(lang), {
|
|
575
597
|
method: 'post',
|
|
@@ -624,7 +646,7 @@ export var getRuleValidation = /*#__PURE__*/function () {
|
|
|
624
646
|
}, _callee);
|
|
625
647
|
}));
|
|
626
648
|
|
|
627
|
-
return function getRuleValidation(_x, _x2, _x3
|
|
649
|
+
return function getRuleValidation(_x, _x2, _x3) {
|
|
628
650
|
return _ref3.apply(this, arguments);
|
|
629
651
|
};
|
|
630
652
|
}();
|
package/lib/checkbox/index.js
CHANGED
|
@@ -67,21 +67,18 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
67
67
|
|
|
68
68
|
// add disabled attributes to checkbox options based on mutually exclusion config
|
|
69
69
|
var addDisabledAttr = function addDisabledAttr(options, mutuallyExclusions, checkedValues) {
|
|
70
|
-
if (!mutuallyExclusions || !checkedValues) return options;
|
|
71
|
-
checkedValues = Array.isArray(checkedValues) ? checkedValues : [checkedValues];
|
|
70
|
+
if (!mutuallyExclusions || !Object.keys(mutuallyExclusions).length || !(checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues.length)) return options;
|
|
72
71
|
return options.map(function (_ref) {
|
|
73
|
-
var _checkedValues;
|
|
74
|
-
|
|
75
72
|
var value = _ref.value,
|
|
76
73
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
77
74
|
|
|
78
75
|
return _objectSpread(_objectSpread({}, rest), {}, {
|
|
79
76
|
value: value,
|
|
80
|
-
disabled: !!value &&
|
|
77
|
+
disabled: !!(value && (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues.some(function (v) {
|
|
81
78
|
var _mutuallyExclusions$S, _mutuallyExclusions$v;
|
|
82
79
|
|
|
83
|
-
return ((_mutuallyExclusions$S = mutuallyExclusions[String(v)]) === null || _mutuallyExclusions$S === void 0 ? void 0 : _mutuallyExclusions$S.includes(String(value))) || ((_mutuallyExclusions$v = mutuallyExclusions[value]) === null || _mutuallyExclusions$v === void 0 ? void 0 : _mutuallyExclusions$v.includes(String(v)));
|
|
84
|
-
}))
|
|
80
|
+
return v !== value && (((_mutuallyExclusions$S = mutuallyExclusions[String(v)]) === null || _mutuallyExclusions$S === void 0 ? void 0 : _mutuallyExclusions$S.includes(String(value))) || ((_mutuallyExclusions$v = mutuallyExclusions[value]) === null || _mutuallyExclusions$v === void 0 ? void 0 : _mutuallyExclusions$v.includes(String(v))));
|
|
81
|
+
})))
|
|
85
82
|
});
|
|
86
83
|
});
|
|
87
84
|
};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { DatePickerProps, RangePickerProps, MonthPickerProps, WeekPickerProps } from 'antd/es/date-picker';
|
|
2
2
|
import { FC, IglooComponentProps } from '../types';
|
|
3
|
+
import { Moment } from 'moment';
|
|
3
4
|
import './style/index.less';
|
|
4
5
|
export { default as IglooBuddhistDatePicker } from './buddhist';
|
|
5
|
-
declare type Props = DatePickerProps & IglooComponentProps
|
|
6
|
+
declare type Props = Omit<DatePickerProps, 'value'> & IglooComponentProps & {
|
|
7
|
+
value?: Moment | null | 0;
|
|
8
|
+
};
|
|
6
9
|
declare const IglooDatePicker: FC<Props>;
|
|
7
10
|
export default IglooDatePicker;
|
|
8
11
|
export declare const IglooRangePicker: FC<RangePickerProps & IglooComponentProps>;
|
package/lib/date-picker/index.js
CHANGED
|
@@ -89,7 +89,7 @@ var IglooDatePicker = function IglooDatePicker(_ref) {
|
|
|
89
89
|
setFocus = _useState2[1];
|
|
90
90
|
|
|
91
91
|
return (0, _jsxRuntime.jsx)(_datePicker.default, _objectSpread(_objectSpread({}, (0, _omit.default)(props, _formMethods.default)), {}, {
|
|
92
|
-
value: (0, _moment.default)(value),
|
|
92
|
+
value: value || value === 0 ? (0, _moment.default)(value) : undefined,
|
|
93
93
|
placeholder: placeholder || dateFormater,
|
|
94
94
|
format: format || dateFormater,
|
|
95
95
|
inputReadOnly: true,
|
|
@@ -116,7 +116,7 @@ IglooDatePicker.formItemPropsHandler = function (_ref2) {
|
|
|
116
116
|
return (0, _moment.default)(value).format(format || dateFormater);
|
|
117
117
|
},
|
|
118
118
|
valueFormater: function valueFormater(value) {
|
|
119
|
-
return +(0, _moment.default)(value);
|
|
119
|
+
return value ? +(0, _moment.default)(value) : value;
|
|
120
120
|
},
|
|
121
121
|
'element-allowClear': false
|
|
122
122
|
};
|
|
@@ -121,7 +121,8 @@ var Element = function Element(_ref) {
|
|
|
121
121
|
subscribedFields = config.subscribedFields,
|
|
122
122
|
disabled = config.disabled,
|
|
123
123
|
extraLabel = config.extraLabel,
|
|
124
|
-
requiredAsserts = config.requiredAsserts
|
|
124
|
+
requiredAsserts = config.requiredAsserts,
|
|
125
|
+
shouldRenderCode = config.shouldRenderCode;
|
|
125
126
|
var dependentField = dependencies || [];
|
|
126
127
|
|
|
127
128
|
if (Array.isArray(subscribedFields)) {
|
|
@@ -153,7 +154,7 @@ var Element = function Element(_ref) {
|
|
|
153
154
|
});
|
|
154
155
|
}
|
|
155
156
|
|
|
156
|
-
if ((shouldRender || getOptions || typeof extraLabel === 'function') && !Array.isArray(subscribedFields)) {
|
|
157
|
+
if ((shouldRender || shouldRenderCode || getOptions || typeof extraLabel === 'function') && !Array.isArray(subscribedFields)) {
|
|
157
158
|
dependentField.push('SUBSCRIBE_ALL');
|
|
158
159
|
}
|
|
159
160
|
|
package/lib/form/hsteps/index.js
CHANGED
|
@@ -134,26 +134,45 @@ var HSteps = function HSteps(_ref) {
|
|
|
134
134
|
(0, _react.useEffect)(function () {
|
|
135
135
|
var subscribe = elements.some(function (_ref2) {
|
|
136
136
|
var shouldRender = _ref2.shouldRender,
|
|
137
|
-
getButtonDisabledState = _ref2.getButtonDisabledState
|
|
138
|
-
|
|
137
|
+
getButtonDisabledState = _ref2.getButtonDisabledState,
|
|
138
|
+
shouldRenderCode = _ref2.shouldRenderCode;
|
|
139
|
+
return Boolean(shouldRender) || Boolean(getButtonDisabledState) || Boolean(shouldRenderCode);
|
|
139
140
|
});
|
|
140
141
|
|
|
141
142
|
if (subscribe) {
|
|
142
143
|
Array.isArray(subscribedFields) ? registerDependencies(subscribedFields, dispatch) : registerDependencies('SUBSCRIBE_ALL', dispatch);
|
|
143
144
|
}
|
|
145
|
+
|
|
146
|
+
var dependentField = [];
|
|
147
|
+
elements.forEach(function (_ref3) {
|
|
148
|
+
var asserts = _ref3.asserts;
|
|
149
|
+
if (!(asserts === null || asserts === void 0 ? void 0 : asserts.length)) return;
|
|
150
|
+
asserts.forEach(function (_ref4) {
|
|
151
|
+
var field = _ref4.field;
|
|
152
|
+
return dependentField.push(field);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
dependentField.length && registerDependencies(dependentField, dispatch);
|
|
144
156
|
}, []);
|
|
145
157
|
(0, _react.useEffect)(function () {
|
|
146
158
|
if (currentStep === undefined || currentStep === current) return;
|
|
147
159
|
setCurrent(currentStep);
|
|
148
160
|
}, [currentStep]);
|
|
149
|
-
var renderElements = elements.filter(function (
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
161
|
+
var renderElements = elements.filter(function (_ref5) {
|
|
162
|
+
var type = _ref5.type,
|
|
163
|
+
curName = _ref5.name,
|
|
164
|
+
validationRule = _ref5.validationRule,
|
|
165
|
+
dependencies = _ref5.dependencies,
|
|
166
|
+
asserts = _ref5.asserts,
|
|
167
|
+
shouldRender = _ref5.shouldRender,
|
|
168
|
+
shouldRenderCode = _ref5.shouldRenderCode;
|
|
169
|
+
(0, _invariant.default)(type === 'Step', 'Child of steps should be Step');
|
|
170
|
+
(0, _invariant.default)(!validationRule || getRuleValidationApi, 'Please provide getRuleValidationApi in Form props');
|
|
171
|
+
return (0, _formUtils.calcShouldRender)((0, _formUtils.calcNamePath)((0, _formUtils.calcNamePath)(parentName, name), curName), dependencies, asserts, shouldRender, shouldRenderCode, form);
|
|
153
172
|
});
|
|
154
173
|
|
|
155
174
|
var handleNext = /*#__PURE__*/function () {
|
|
156
|
-
var
|
|
175
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
157
176
|
var _allFields$filter;
|
|
158
177
|
|
|
159
178
|
var allFields, allValues, _renderElements$curre, currentName, handleNext, validationRule, namePath, fields, _iterator, _step, collapseSection, res, errors;
|
|
@@ -166,11 +185,11 @@ var HSteps = function HSteps(_ref) {
|
|
|
166
185
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
167
186
|
_renderElements$curre = renderElements[current], currentName = _renderElements$curre.name, handleNext = _renderElements$curre.handleNext, validationRule = _renderElements$curre.validationRule;
|
|
168
187
|
namePath = (0, _formUtils.calcNamePath)(name, currentName);
|
|
169
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
170
|
-
var name =
|
|
188
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref7) {
|
|
189
|
+
var name = _ref7.name;
|
|
171
190
|
return name.join().startsWith(namePath === null || namePath === void 0 ? void 0 : namePath.join());
|
|
172
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (
|
|
173
|
-
var name =
|
|
191
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref8) {
|
|
192
|
+
var name = _ref8.name;
|
|
174
193
|
return name;
|
|
175
194
|
});
|
|
176
195
|
_context.prev = 5;
|
|
@@ -274,7 +293,7 @@ var HSteps = function HSteps(_ref) {
|
|
|
274
293
|
}));
|
|
275
294
|
|
|
276
295
|
return function handleNext() {
|
|
277
|
-
return
|
|
296
|
+
return _ref6.apply(this, arguments);
|
|
278
297
|
};
|
|
279
298
|
}();
|
|
280
299
|
|
|
@@ -421,14 +440,14 @@ var HSteps = function HSteps(_ref) {
|
|
|
421
440
|
margin: 0
|
|
422
441
|
},
|
|
423
442
|
children: (0, _jsxRuntime.jsx)(_confirmation.default, {})
|
|
424
|
-
}), confirmations && Object.entries(confirmations).map(function (
|
|
425
|
-
var
|
|
426
|
-
key =
|
|
427
|
-
|
|
428
|
-
required =
|
|
429
|
-
|
|
430
|
-
confirmation =
|
|
431
|
-
requiredMessage =
|
|
443
|
+
}), confirmations && Object.entries(confirmations).map(function (_ref9) {
|
|
444
|
+
var _ref10 = _slicedToArray(_ref9, 2),
|
|
445
|
+
key = _ref10[0],
|
|
446
|
+
_ref10$ = _ref10[1],
|
|
447
|
+
required = _ref10$.required,
|
|
448
|
+
_ref10$$confirmation = _ref10$.confirmation,
|
|
449
|
+
confirmation = _ref10$$confirmation === void 0 ? {} : _ref10$$confirmation,
|
|
450
|
+
requiredMessage = _ref10$.requiredMessage;
|
|
432
451
|
|
|
433
452
|
return (0, _jsxRuntime.jsx)(_form.default.Item, {
|
|
434
453
|
name: (0, _formUtils.calcNamePath)(parentName, key),
|
package/lib/form/steps/index.js
CHANGED
|
@@ -92,24 +92,41 @@ var Steps = function Steps(_ref) {
|
|
|
92
92
|
(0, _react.useEffect)(function () {
|
|
93
93
|
var subscribe = elements.some(function (_ref2) {
|
|
94
94
|
var shouldRender = _ref2.shouldRender,
|
|
95
|
-
getButtonDisabledState = _ref2.getButtonDisabledState
|
|
96
|
-
|
|
95
|
+
getButtonDisabledState = _ref2.getButtonDisabledState,
|
|
96
|
+
shouldRenderCode = _ref2.shouldRenderCode;
|
|
97
|
+
return Boolean(shouldRender) || Boolean(getButtonDisabledState) || Boolean(shouldRenderCode);
|
|
97
98
|
});
|
|
98
99
|
|
|
99
100
|
if (subscribe) {
|
|
100
101
|
Array.isArray(subscribedFields) ? registerDependencies(subscribedFields, dispatch) : registerDependencies('SUBSCRIBE_ALL', dispatch);
|
|
101
102
|
}
|
|
103
|
+
|
|
104
|
+
var dependentField = [];
|
|
105
|
+
elements.forEach(function (_ref3) {
|
|
106
|
+
var asserts = _ref3.asserts;
|
|
107
|
+
if (!(asserts === null || asserts === void 0 ? void 0 : asserts.length)) return;
|
|
108
|
+
asserts.forEach(function (_ref4) {
|
|
109
|
+
var field = _ref4.field;
|
|
110
|
+
return dependentField.push(field);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
dependentField.length && registerDependencies(dependentField, dispatch);
|
|
102
114
|
}, []);
|
|
103
115
|
(0, _react.useEffect)(function () {
|
|
104
116
|
if (currentStep === undefined || currentStep === current) return;
|
|
105
117
|
setCurrent(currentStep);
|
|
106
118
|
}, [currentStep]);
|
|
107
|
-
var renderElements = elements.filter(function (
|
|
108
|
-
|
|
119
|
+
var renderElements = elements.filter(function (_ref5) {
|
|
120
|
+
var curName = _ref5.name,
|
|
121
|
+
dependencies = _ref5.dependencies,
|
|
122
|
+
asserts = _ref5.asserts,
|
|
123
|
+
shouldRender = _ref5.shouldRender,
|
|
124
|
+
shouldRenderCode = _ref5.shouldRenderCode;
|
|
125
|
+
return (0, _formUtils.calcShouldRender)((0, _formUtils.calcNamePath)((0, _formUtils.calcNamePath)(parentName, name), curName), dependencies, asserts, shouldRender, shouldRenderCode, form);
|
|
109
126
|
});
|
|
110
127
|
|
|
111
128
|
var handleNext = /*#__PURE__*/function () {
|
|
112
|
-
var
|
|
129
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
113
130
|
var _allFields$filter;
|
|
114
131
|
|
|
115
132
|
var allFields, allValues, _renderElements$curre, currentName, handleNext, validationRule, namePath, fields, res, errors;
|
|
@@ -122,11 +139,11 @@ var Steps = function Steps(_ref) {
|
|
|
122
139
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
123
140
|
_renderElements$curre = renderElements[current], currentName = _renderElements$curre.name, handleNext = _renderElements$curre.handleNext, validationRule = _renderElements$curre.validationRule;
|
|
124
141
|
namePath = (0, _formUtils.calcNamePath)(name, currentName);
|
|
125
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
126
|
-
var name =
|
|
142
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref7) {
|
|
143
|
+
var name = _ref7.name;
|
|
127
144
|
return name.join().startsWith(namePath === null || namePath === void 0 ? void 0 : namePath.join());
|
|
128
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (
|
|
129
|
-
var name =
|
|
145
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref8) {
|
|
146
|
+
var name = _ref8.name;
|
|
130
147
|
return name;
|
|
131
148
|
});
|
|
132
149
|
_context.prev = 5;
|
|
@@ -217,7 +234,7 @@ var Steps = function Steps(_ref) {
|
|
|
217
234
|
}));
|
|
218
235
|
|
|
219
236
|
return function handleNext() {
|
|
220
|
-
return
|
|
237
|
+
return _ref6.apply(this, arguments);
|
|
221
238
|
};
|
|
222
239
|
}();
|
|
223
240
|
|
|
@@ -87,7 +87,10 @@ var Step = function Step(_ref) {
|
|
|
87
87
|
shouldRender = _ref.shouldRender,
|
|
88
88
|
subscribedFields = _ref.subscribedFields,
|
|
89
89
|
buttonText = _ref.buttonText,
|
|
90
|
-
validationRule = _ref.validationRule
|
|
90
|
+
validationRule = _ref.validationRule,
|
|
91
|
+
asserts = _ref.asserts,
|
|
92
|
+
dependencies = _ref.dependencies,
|
|
93
|
+
shouldRenderCode = _ref.shouldRenderCode;
|
|
91
94
|
|
|
92
95
|
var _useContext = (0, _react.useContext)(_locale.LocaleContext),
|
|
93
96
|
formatMessage = _useContext.formatMessage,
|
|
@@ -122,6 +125,14 @@ var Step = function Step(_ref) {
|
|
|
122
125
|
if (shouldRender || getButtonDisabledState) {
|
|
123
126
|
registerDependencies(Array.isArray(subscribedFields) ? subscribedFields : 'SUBSCRIBE_ALL', dispatch);
|
|
124
127
|
}
|
|
128
|
+
|
|
129
|
+
if (asserts === null || asserts === void 0 ? void 0 : asserts.length) {
|
|
130
|
+
var dependentField = asserts.map(function (_ref2) {
|
|
131
|
+
var field = _ref2.field;
|
|
132
|
+
return field;
|
|
133
|
+
});
|
|
134
|
+
registerDependencies(dependentField, dispatch);
|
|
135
|
+
}
|
|
125
136
|
}, []);
|
|
126
137
|
var pName = (0, _react.useMemo)(function () {
|
|
127
138
|
return (0, _formUtils.calcNamePath)(parentName, name);
|
|
@@ -174,7 +185,7 @@ var Step = function Step(_ref) {
|
|
|
174
185
|
};
|
|
175
186
|
|
|
176
187
|
var handleNext = /*#__PURE__*/function () {
|
|
177
|
-
var
|
|
188
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
178
189
|
var _allFields$filter;
|
|
179
190
|
|
|
180
191
|
var allFields, allValues, fields, res, errors;
|
|
@@ -184,11 +195,11 @@ var Step = function Step(_ref) {
|
|
|
184
195
|
case 0:
|
|
185
196
|
allFields = (form === null || form === void 0 ? void 0 : form.getFieldsError()) || [];
|
|
186
197
|
allValues = form === null || form === void 0 ? void 0 : form.getFieldsValue(true);
|
|
187
|
-
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (
|
|
188
|
-
var name = _ref3.name;
|
|
189
|
-
return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
|
|
190
|
-
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref4) {
|
|
198
|
+
fields = allFields === null || allFields === void 0 ? void 0 : (_allFields$filter = allFields.filter(function (_ref4) {
|
|
191
199
|
var name = _ref4.name;
|
|
200
|
+
return name.join().startsWith(pName === null || pName === void 0 ? void 0 : pName.join());
|
|
201
|
+
})) === null || _allFields$filter === void 0 ? void 0 : _allFields$filter.map(function (_ref5) {
|
|
202
|
+
var name = _ref5.name;
|
|
192
203
|
return name;
|
|
193
204
|
});
|
|
194
205
|
_context.prev = 3;
|
|
@@ -273,11 +284,11 @@ var Step = function Step(_ref) {
|
|
|
273
284
|
}));
|
|
274
285
|
|
|
275
286
|
return function handleNext() {
|
|
276
|
-
return
|
|
287
|
+
return _ref3.apply(this, arguments);
|
|
277
288
|
};
|
|
278
289
|
}();
|
|
279
290
|
|
|
280
|
-
if (
|
|
291
|
+
if (!(0, _formUtils.calcShouldRender)(pName, dependencies, asserts, shouldRender, shouldRenderCode, form)) {
|
|
281
292
|
return null;
|
|
282
293
|
}
|
|
283
294
|
|
package/lib/types.d.ts
CHANGED
|
@@ -123,6 +123,7 @@ export interface FormItemExtraConfig extends FormItemProps {
|
|
|
123
123
|
maxLength?: number;
|
|
124
124
|
idType?: 'KTP' | 'NIK';
|
|
125
125
|
validationRule?: string;
|
|
126
|
+
shouldRenderCode?: string;
|
|
126
127
|
[key: string]: any;
|
|
127
128
|
}
|
|
128
129
|
export interface FormItemConfig extends FormItemExtraConfig {
|
|
@@ -50,7 +50,7 @@ export declare const calcFormItemProps: (config: FormItemConfig, extraProps: For
|
|
|
50
50
|
elementProps: {
|
|
51
51
|
[key: string]: any;
|
|
52
52
|
};
|
|
53
|
-
display:
|
|
53
|
+
display: any;
|
|
54
54
|
previewFormater: ((value: any, form?: FormInstance<any> | undefined) => any) | undefined;
|
|
55
55
|
};
|
|
56
56
|
export declare const calcDisabled: (disabled?: boolean | FormItemAssert | FormItemAssert[] | undefined, form?: FormInstance<any> | undefined) => boolean;
|
|
@@ -72,5 +72,5 @@ export declare const calcSelectValue: (selectValue?: FormItemSelectValue[] | und
|
|
|
72
72
|
value: any;
|
|
73
73
|
disabled: boolean | undefined;
|
|
74
74
|
};
|
|
75
|
-
export declare const calcShouldRender: (dependencies?: NamePath[], asserts?: FormItemAssert[], shouldRender?: ((form?: FormInstance<any> | undefined) => boolean) | undefined, form?: FormInstance<any> | undefined) =>
|
|
76
|
-
export declare const getRuleValidation: (url: string, rule: string | string[], values?: any, lang?: string
|
|
75
|
+
export declare const calcShouldRender: (name: NamePath, dependencies?: NamePath[], asserts?: FormItemAssert[], shouldRender?: ((form?: FormInstance<any> | undefined) => boolean) | undefined, shouldRenderCode?: string | undefined, form?: FormInstance<any> | undefined) => any;
|
|
76
|
+
export declare const getRuleValidation: (url: string, rule: string | string[], values?: any, lang?: string) => Promise<any>;
|
package/lib/utils/form-utils.js
CHANGED
|
@@ -15,7 +15,7 @@ var _formattedMessage = _interopRequireDefault(require("../locale/formatted-mess
|
|
|
15
15
|
|
|
16
16
|
var _moment = _interopRequireDefault(require("moment"));
|
|
17
17
|
|
|
18
|
-
var _excluded = ["type", "name", "required", "requiredAsserts", "showOptional", "rules", "initialValue", "normalize", "mergeRules", "getValueFromEvent", "getValueProps", "extra", "help", "label", "previewLabel", "extraLabel", "copyValue", "selectValue", "span", "halfRow", "fullRow", "valuePropName", "dependencies", "asserts", "messageVariables", "requiredMessage", "previewFormater", "disabled", "ignore", "shouldRender", "valueFormater", "antdDependencies", "dateLimitationType", "absoluteRangeEnd", "absoluteRangeStart", "relativeRangeStart", "relativeRangeEnd", "validationCode"],
|
|
18
|
+
var _excluded = ["type", "name", "required", "requiredAsserts", "showOptional", "rules", "initialValue", "normalize", "mergeRules", "getValueFromEvent", "getValueProps", "extra", "help", "label", "previewLabel", "extraLabel", "copyValue", "selectValue", "span", "halfRow", "fullRow", "valuePropName", "dependencies", "asserts", "messageVariables", "requiredMessage", "previewFormater", "disabled", "ignore", "shouldRender", "valueFormater", "antdDependencies", "dateLimitationType", "absoluteRangeEnd", "absoluteRangeStart", "relativeRangeStart", "relativeRangeEnd", "validationCode", "shouldRenderCode"],
|
|
19
19
|
_excluded2 = ["initialValue", "normalize", "rules", "extra", "help", "getValueFromEvent", "span", "valuePropName", "fullRow", "halfRow", "messageVariables", "requiredMessage", "previewFormater", "valueFormater", "required", "requiredMark", "className"];
|
|
20
20
|
|
|
21
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -226,6 +226,7 @@ var calcFormItemProps = function calcFormItemProps(config, extraProps, form, par
|
|
|
226
226
|
relativeRangeEnd = config.relativeRangeEnd,
|
|
227
227
|
_config$validationCod = config.validationCode,
|
|
228
228
|
validationCode = _config$validationCod === void 0 ? [] : _config$validationCod,
|
|
229
|
+
shouldRenderCode = config.shouldRenderCode,
|
|
229
230
|
rest = _objectWithoutProperties(config, _excluded);
|
|
230
231
|
|
|
231
232
|
(0, _invariant.default)(nameProp !== undefined || type === 'Divider' || type === 'Section' || type === 'Typography' || !type, "name property is required for form item config (type: ".concat(type, ")"));
|
|
@@ -447,7 +448,7 @@ var calcFormItemProps = function calcFormItemProps(config, extraProps, form, par
|
|
|
447
448
|
dependencies: antdDependencies
|
|
448
449
|
},
|
|
449
450
|
elementProps: elementProps,
|
|
450
|
-
display: !ignore && calcShouldRender(dependencies, asserts, shouldRender, form),
|
|
451
|
+
display: !ignore && calcShouldRender(name, dependencies, asserts, shouldRender, shouldRenderCode, form),
|
|
451
452
|
previewFormater: previewFormater || extraPreviewFormater
|
|
452
453
|
};
|
|
453
454
|
};
|
|
@@ -545,11 +546,12 @@ var calcSelectValue = function calcSelectValue(selectValue, form) {
|
|
|
545
546
|
|
|
546
547
|
exports.calcSelectValue = calcSelectValue;
|
|
547
548
|
|
|
548
|
-
var calcShouldRender = function calcShouldRender() {
|
|
549
|
-
var dependencies = arguments.length >
|
|
550
|
-
var asserts = arguments.length >
|
|
551
|
-
var shouldRender = arguments.length >
|
|
552
|
-
var
|
|
549
|
+
var calcShouldRender = function calcShouldRender(name) {
|
|
550
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
551
|
+
var asserts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
552
|
+
var shouldRender = arguments.length > 3 ? arguments[3] : undefined;
|
|
553
|
+
var shouldRenderCode = arguments.length > 4 ? arguments[4] : undefined;
|
|
554
|
+
var form = arguments.length > 5 ? arguments[5] : undefined;
|
|
553
555
|
if (!form) return true;
|
|
554
556
|
|
|
555
557
|
var _iterator3 = _createForOfIteratorHelper(dependencies),
|
|
@@ -569,6 +571,26 @@ var calcShouldRender = function calcShouldRender() {
|
|
|
569
571
|
_iterator3.f();
|
|
570
572
|
}
|
|
571
573
|
|
|
574
|
+
if (typeof shouldRender === 'function') {
|
|
575
|
+
return shouldRender(form);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
if (shouldRenderCode) {
|
|
579
|
+
var fn = eval(shouldRenderCode);
|
|
580
|
+
|
|
581
|
+
if (typeof fn === 'function') {
|
|
582
|
+
try {
|
|
583
|
+
var value = form.getFieldValue(name);
|
|
584
|
+
var values = form.getFieldsValue(true);
|
|
585
|
+
return fn(value, values, {
|
|
586
|
+
moment: _moment.default
|
|
587
|
+
});
|
|
588
|
+
} catch (_unused2) {
|
|
589
|
+
return false;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
572
594
|
var _iterator4 = _createForOfIteratorHelper(asserts),
|
|
573
595
|
_step4;
|
|
574
596
|
|
|
@@ -584,26 +606,26 @@ var calcShouldRender = function calcShouldRender() {
|
|
|
584
606
|
_iterator4.f();
|
|
585
607
|
}
|
|
586
608
|
|
|
587
|
-
if (typeof shouldRender === 'function' && !shouldRender(form)) {
|
|
588
|
-
return false;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
609
|
return true;
|
|
592
610
|
};
|
|
593
611
|
|
|
594
612
|
exports.calcShouldRender = calcShouldRender;
|
|
595
613
|
|
|
596
614
|
var getRuleValidation = /*#__PURE__*/function () {
|
|
597
|
-
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, rule, values
|
|
598
|
-
var
|
|
599
|
-
|
|
600
|
-
|
|
615
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, rule, values) {
|
|
616
|
+
var lang,
|
|
617
|
+
res,
|
|
618
|
+
json,
|
|
619
|
+
_ref4,
|
|
620
|
+
conclusion,
|
|
621
|
+
details,
|
|
622
|
+
_args = arguments;
|
|
601
623
|
|
|
602
624
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
603
625
|
while (1) {
|
|
604
626
|
switch (_context.prev = _context.next) {
|
|
605
627
|
case 0:
|
|
606
|
-
lang =
|
|
628
|
+
lang = _args.length > 3 && _args[3] !== undefined ? _args[3] : 'en-US';
|
|
607
629
|
_context.next = 3;
|
|
608
630
|
return fetch("".concat(url, "?lang=").concat(lang), {
|
|
609
631
|
method: 'post',
|
|
@@ -658,7 +680,7 @@ var getRuleValidation = /*#__PURE__*/function () {
|
|
|
658
680
|
}, _callee);
|
|
659
681
|
}));
|
|
660
682
|
|
|
661
|
-
return function getRuleValidation(_x, _x2, _x3
|
|
683
|
+
return function getRuleValidation(_x, _x2, _x3) {
|
|
662
684
|
return _ref3.apply(this, arguments);
|
|
663
685
|
};
|
|
664
686
|
}();
|