@danderson00/react-forms 0.0.41 → 0.0.43
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/ErrorMessage.js +0 -5
- package/dist/ErrorMessage.js.map +1 -1
- package/dist/Form.js +26 -69
- package/dist/Form.js.map +1 -1
- package/dist/Group.js +5 -17
- package/dist/Group.js.map +1 -1
- package/dist/index.js +3 -28
- package/dist/index.js.map +1 -1
- package/dist/injectCss.js +0 -2
- package/dist/injectCss.js.map +1 -1
- package/dist/input.js +73 -118
- package/dist/input.js.map +1 -1
- package/dist/inputTypes.js +7 -17
- package/dist/inputTypes.js.map +1 -1
- package/dist/styles.js +0 -2
- package/dist/styles.js.map +1 -1
- package/dist/submit.js +14 -37
- package/dist/submit.js.map +1 -1
- package/dist/throttle.js +0 -3
- package/dist/throttle.js.map +1 -1
- package/dist/useForm.js +2 -6
- package/dist/useForm.js.map +1 -1
- package/dist/useFormValues.js +0 -3
- package/dist/useFormValues.js.map +1 -1
- package/dist/usePrevious.js +0 -2
- package/dist/usePrevious.js.map +1 -1
- package/dist/useUpdate.js +0 -2
- package/dist/useUpdate.js.map +1 -1
- package/package.json +3 -3
- package/src/Form.js +6 -6
- package/src/input.js +24 -16
package/dist/input.js
CHANGED
|
@@ -4,93 +4,70 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _usePrevious = _interopRequireDefault(require("./usePrevious"));
|
|
11
|
-
|
|
12
9
|
var _useUpdate = _interopRequireDefault(require("./useUpdate"));
|
|
13
|
-
|
|
14
10
|
var _inputTypes = _interopRequireDefault(require("./inputTypes"));
|
|
15
|
-
|
|
16
11
|
var _throttle2 = _interopRequireDefault(require("./throttle"));
|
|
17
|
-
|
|
18
|
-
var _excluded = ["type", "value", "checked", "defaultValue", "numeric", "onSubmit", "registerFieldValidator", "setFieldValue", "getFieldValue", "getFieldValues", "submitOnChange", "submitOnBlur", "selectOnFocus", "throttle", "valid", "onValidated"];
|
|
19
|
-
|
|
12
|
+
var _excluded = ["type", "value", "checked", "defaultValue", "numeric", "getValidationMessage", "onSubmit", "registerFieldValidator", "setFieldValue", "getFieldValue", "getFieldValues", "submitOnChange", "submitOnBlur", "selectOnFocus", "throttle", "valid", "onValidated"];
|
|
20
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
-
|
|
22
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
-
|
|
24
15
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
|
-
|
|
26
16
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
27
|
-
|
|
28
17
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
29
|
-
|
|
30
18
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
|
-
|
|
32
19
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
33
|
-
|
|
34
20
|
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."); }
|
|
35
|
-
|
|
36
21
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
37
|
-
|
|
38
22
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
39
|
-
|
|
40
23
|
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
41
|
-
|
|
42
24
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
43
|
-
|
|
44
25
|
var nextElementId = function (id) {
|
|
45
26
|
return function () {
|
|
46
27
|
return "react-forms-".concat(++id);
|
|
47
28
|
};
|
|
48
29
|
}(0);
|
|
49
|
-
|
|
50
30
|
var _default = function _default(render) {
|
|
51
31
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
52
32
|
return function Input(props) {
|
|
53
33
|
if (!props.name) throw new Error("You must provide a name prop to form components");
|
|
54
34
|
if (!props.setFieldValue) throw new Error("Input components must be contained within a Form component");
|
|
55
|
-
|
|
56
35
|
var _useState = (0, _react.useState)(false),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
fieldValidated = _useState2[0],
|
|
38
|
+
setFieldValidated = _useState2[1];
|
|
61
39
|
var _useState3 = (0, _react.useState)(false),
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
40
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
41
|
+
error = _useState4[0],
|
|
42
|
+
setError = _useState4[1];
|
|
66
43
|
var _useState5 = (0, _react.useState)(props.id || nextElementId()),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var previousValueProp = (0, _usePrevious["default"])(props.value); // this is currently broken :-\
|
|
44
|
+
_useState6 = _slicedToArray(_useState5, 1),
|
|
45
|
+
id = _useState6[0];
|
|
46
|
+
var previousValueProp = (0, _usePrevious["default"])(props.value);
|
|
71
47
|
|
|
48
|
+
// this is currently broken :-\
|
|
72
49
|
var _props$groups = props.groups,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
50
|
+
groups = _props$groups === void 0 ? [] : _props$groups,
|
|
51
|
+
throttle = props.throttle,
|
|
52
|
+
onSubmit = props.onSubmit;
|
|
76
53
|
var name = groups.map(function (group) {
|
|
77
54
|
return group + '.';
|
|
78
55
|
}) + props.name;
|
|
79
56
|
var submitHandler = throttle && onSubmit ? (0, _throttle2["default"])(onSubmit, isNaN(throttle) ? 200 : throttle) : onSubmit;
|
|
80
57
|
(0, _react.useEffect)(function () {
|
|
81
58
|
var getFieldValue = props.getFieldValue,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
59
|
+
setFieldValue = props.setFieldValue,
|
|
60
|
+
registerFieldValidator = props.registerFieldValidator;
|
|
85
61
|
var _types = (0, _inputTypes["default"])(props, options),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
62
|
+
setInitialValue = _types.setInitialValue,
|
|
63
|
+
applyValueTransforms = _types.applyValueTransforms;
|
|
89
64
|
|
|
65
|
+
// don't override values that were set from passing a values prop to the form
|
|
90
66
|
if (getFieldValue(name) === undefined) {
|
|
91
67
|
// TODO: change setter to a getter and return a private `UNSET` symbol to indicate not to call the field setter
|
|
92
|
-
//
|
|
93
|
-
//
|
|
68
|
+
// this allows us to set the default value with useState above and not have an initial render cycle without the default value
|
|
69
|
+
// BUT... to get the default value of a select list, we need to render it first? dilemma....
|
|
70
|
+
|
|
94
71
|
setInitialValue({
|
|
95
72
|
// pass a setter function - radio buttons do not always want to set a value!
|
|
96
73
|
set: function set(value) {
|
|
@@ -99,52 +76,61 @@ var _default = function _default(render) {
|
|
|
99
76
|
element: document.querySelector("#".concat(id))
|
|
100
77
|
});
|
|
101
78
|
}
|
|
79
|
+
registerFieldValidator(updateValidationState);
|
|
102
80
|
|
|
103
|
-
|
|
104
|
-
}, []);
|
|
105
|
-
// this probably introduces some redundancy with the onChange handler below
|
|
81
|
+
// TODO: need to unregister in case of dynamic form elements
|
|
82
|
+
}, []);
|
|
106
83
|
|
|
84
|
+
// ensure form values are updated to reflect passed `value` prop
|
|
85
|
+
// this probably introduces some redundancy with the onChange handler below
|
|
107
86
|
(0, _useUpdate["default"])(function () {
|
|
108
87
|
var value = props.value,
|
|
109
|
-
|
|
110
|
-
|
|
88
|
+
setFieldValue = props.setFieldValue;
|
|
111
89
|
var _types2 = (0, _inputTypes["default"])(props, options),
|
|
112
|
-
|
|
113
|
-
|
|
90
|
+
applyValueTransforms = _types2.applyValueTransforms;
|
|
114
91
|
if (value !== previousValueProp) {
|
|
115
92
|
setFieldValue(name, applyValueTransforms(value));
|
|
116
93
|
}
|
|
117
|
-
}, [props]);
|
|
94
|
+
}, [props]);
|
|
95
|
+
var updateValidationState = (0, _react.useCallback)(function (newValue, oldValues) {
|
|
96
|
+
var getValidationMessage = props.getValidationMessage,
|
|
97
|
+
getFieldValue = props.getFieldValue,
|
|
98
|
+
getFieldValues = props.getFieldValues;
|
|
99
|
+
var element = document.querySelector("#".concat(id));
|
|
100
|
+
var validationMessage = getValidationMessage && getValidationMessage(newValue === undefined ? getFieldValue(name) : newValue, oldValues || getFieldValues());
|
|
101
|
+
element.setCustomValidity(validationMessage || "");
|
|
102
|
+
setFieldValidated(true);
|
|
103
|
+
// this is a little hacky, but the simplest way I could think of to determine the
|
|
104
|
+
// validity of the actual input element. :invalid is also not supported by enzyme
|
|
105
|
+
var invalid = !!validationMessage || Boolean(document.querySelector("#".concat(id, ":invalid")));
|
|
106
|
+
setError(invalid);
|
|
107
|
+
props.onValidated && props.onValidated(!invalid);
|
|
108
|
+
}, [props]);
|
|
118
109
|
|
|
119
|
-
|
|
110
|
+
// TODO: refactor bubbling to prop pattern
|
|
111
|
+
var onChange = (0, _react.useCallback)(function () {
|
|
120
112
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
121
113
|
args[_key] = arguments[_key];
|
|
122
114
|
}
|
|
123
|
-
|
|
124
115
|
var event = args[0];
|
|
125
116
|
var setFieldValue = props.setFieldValue,
|
|
126
|
-
|
|
127
|
-
|
|
117
|
+
onChange = props.onChange,
|
|
118
|
+
submitOnChange = props.submitOnChange;
|
|
128
119
|
var valueFromEvent = options.valueFromEvent;
|
|
129
|
-
|
|
130
120
|
var _types3 = (0, _inputTypes["default"])(props, options),
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
121
|
+
getOutputValue = _types3.getOutputValue,
|
|
122
|
+
applyValueTransforms = _types3.applyValueTransforms;
|
|
134
123
|
var elementValue = valueFromEvent ? valueFromEvent.apply(null, args) : getOutputValue({
|
|
135
124
|
event: event
|
|
136
125
|
});
|
|
137
126
|
setFieldValue(name, applyValueTransforms(elementValue));
|
|
138
|
-
|
|
139
127
|
if (event && event.target && event.target.checkValidity) {
|
|
140
128
|
event.target.checkValidity();
|
|
141
|
-
updateValidationState();
|
|
129
|
+
updateValidationState(applyValueTransforms(elementValue));
|
|
142
130
|
}
|
|
143
|
-
|
|
144
131
|
if (onChange) {
|
|
145
132
|
onChange.apply(event.target, args);
|
|
146
133
|
}
|
|
147
|
-
|
|
148
134
|
if (submitOnChange && submitHandler) {
|
|
149
135
|
// the setFieldValue above sets state on the Form component, used in the onSubmit handler
|
|
150
136
|
// setting state requires an additional render cycle - we need to pass in the new value so it's set correctly
|
|
@@ -152,108 +138,80 @@ var _default = function _default(render) {
|
|
|
152
138
|
additionalValues: _defineProperty({}, name, applyValueTransforms(elementValue))
|
|
153
139
|
});
|
|
154
140
|
}
|
|
155
|
-
};
|
|
156
|
-
|
|
141
|
+
}, [props.setFieldValue, props.onChange, props.submitOnChange, props.setFieldValue, updateValidationState]);
|
|
157
142
|
var onBlur = function onBlur() {
|
|
158
143
|
var submitOnBlur = props.submitOnBlur,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
144
|
+
onSubmit = props.onSubmit,
|
|
145
|
+
onBlur = props.onBlur;
|
|
162
146
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
163
147
|
args[_key2] = arguments[_key2];
|
|
164
148
|
}
|
|
165
|
-
|
|
166
149
|
var event = args[0];
|
|
167
|
-
|
|
168
150
|
if (submitOnBlur) {
|
|
169
151
|
onSubmit();
|
|
170
152
|
}
|
|
171
|
-
|
|
172
153
|
if (onBlur) {
|
|
173
154
|
onBlur.apply(event.target, args);
|
|
174
155
|
}
|
|
175
156
|
};
|
|
176
|
-
|
|
177
157
|
var onFocus = function onFocus() {
|
|
178
158
|
var selectOnFocus = props.selectOnFocus,
|
|
179
|
-
|
|
180
|
-
|
|
159
|
+
onFocus = props.onFocus;
|
|
181
160
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
182
161
|
args[_key3] = arguments[_key3];
|
|
183
162
|
}
|
|
184
|
-
|
|
185
163
|
var event = args[0];
|
|
186
164
|
var element = event.target;
|
|
187
|
-
|
|
188
165
|
var selectText = function selectText() {
|
|
189
166
|
element.selectionStart = 0;
|
|
190
167
|
element.selectionEnd = element.value.length;
|
|
191
168
|
};
|
|
192
|
-
|
|
193
169
|
if (selectOnFocus) {
|
|
194
170
|
selectText();
|
|
195
171
|
setTimeout(selectText);
|
|
196
172
|
}
|
|
197
|
-
|
|
198
173
|
if (onFocus) {
|
|
199
174
|
onFocus.apply(element, args);
|
|
200
175
|
}
|
|
201
176
|
};
|
|
202
|
-
|
|
203
177
|
var onKeyDown = function onKeyDown() {
|
|
204
178
|
var onKeyDown = props.onKeyDown;
|
|
205
|
-
|
|
206
179
|
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
207
180
|
args[_key4] = arguments[_key4];
|
|
208
181
|
}
|
|
209
|
-
|
|
210
182
|
var event = args[0];
|
|
211
183
|
var element = event.target;
|
|
212
|
-
|
|
213
184
|
if (props.numeric && !/[0-9-]/.exec(event.key) && ![null, 0, 8, 9, 13, 27, 35, 36, 37, 39, 46].includes(event.keyCode)) {
|
|
214
185
|
event.preventDefault();
|
|
215
186
|
}
|
|
216
|
-
|
|
217
187
|
if (onKeyDown) {
|
|
218
188
|
onKeyDown.apply(element, args);
|
|
219
189
|
}
|
|
220
190
|
};
|
|
221
191
|
|
|
222
|
-
var updateValidationState = function updateValidationState() {
|
|
223
|
-
setFieldValidated(true); // this is a little hacky, but the simplest way I could think of to determine the
|
|
224
|
-
// validity of the actual input element. :invalid is also not supported by enzyme
|
|
225
|
-
|
|
226
|
-
var invalid = Boolean(document.querySelector("#".concat(id, ":invalid")));
|
|
227
|
-
setError(invalid);
|
|
228
|
-
props.onValidated && props.onValidated(!invalid);
|
|
229
|
-
};
|
|
230
192
|
/* render */
|
|
231
|
-
|
|
232
|
-
|
|
233
193
|
{
|
|
234
194
|
var passErrorProp = options.passErrorProp;
|
|
235
|
-
|
|
236
195
|
var _types4 = (0, _inputTypes["default"])(props, options),
|
|
237
|
-
|
|
238
|
-
|
|
196
|
+
getValueProps = _types4.getValueProps;
|
|
239
197
|
var type = props.type,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
198
|
+
value = props.value,
|
|
199
|
+
checked = props.checked,
|
|
200
|
+
defaultValue = props.defaultValue,
|
|
201
|
+
numeric = props.numeric,
|
|
202
|
+
getValidationMessage = props.getValidationMessage,
|
|
203
|
+
_onSubmit = props.onSubmit,
|
|
204
|
+
registerFieldValidator = props.registerFieldValidator,
|
|
205
|
+
setFieldValue = props.setFieldValue,
|
|
206
|
+
getFieldValue = props.getFieldValue,
|
|
207
|
+
getFieldValues = props.getFieldValues,
|
|
208
|
+
submitOnChange = props.submitOnChange,
|
|
209
|
+
submitOnBlur = props.submitOnBlur,
|
|
210
|
+
selectOnFocus = props.selectOnFocus,
|
|
211
|
+
_throttle = props.throttle,
|
|
212
|
+
valid = props.valid,
|
|
213
|
+
onValidated = props.onValidated,
|
|
214
|
+
passThroughProps = _objectWithoutProperties(props, _excluded);
|
|
257
215
|
var valueProps = getValueProps({
|
|
258
216
|
currentValue: getFieldValue(name)
|
|
259
217
|
});
|
|
@@ -267,7 +225,6 @@ var _default = function _default(render) {
|
|
|
267
225
|
error: error
|
|
268
226
|
};
|
|
269
227
|
var className = (fieldValidated ? 'validated ' : '') + (props.className || '') || undefined;
|
|
270
|
-
|
|
271
228
|
var finalProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
272
229
|
id: id,
|
|
273
230
|
name: name,
|
|
@@ -278,11 +235,9 @@ var _default = function _default(render) {
|
|
|
278
235
|
onBlur: onBlur,
|
|
279
236
|
onKeyDown: onKeyDown
|
|
280
237
|
});
|
|
281
|
-
|
|
282
238
|
return render(finalProps);
|
|
283
239
|
}
|
|
284
240
|
};
|
|
285
241
|
};
|
|
286
|
-
|
|
287
242
|
exports["default"] = _default;
|
|
288
243
|
//# sourceMappingURL=input.js.map
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","names":["nextElementId","id","render","options","Input","props","name","Error","setFieldValue","useState","fieldValidated","setFieldValidated","error","setError","previousValueProp","usePrevious","value","groups","throttle","onSubmit","map","group","submitHandler","createThrottled","isNaN","useEffect","getFieldValue","registerFieldValidator","types","setInitialValue","applyValueTransforms","undefined","set","element","document","querySelector","updateValidationState","useUpdate","onChange","args","event","submitOnChange","valueFromEvent","getOutputValue","elementValue","apply","target","checkValidity","additionalValues","onBlur","submitOnBlur","onFocus","selectOnFocus","selectText","selectionStart","selectionEnd","length","setTimeout","onKeyDown","numeric","exec","key","includes","keyCode","preventDefault","invalid","Boolean","onValidated","passErrorProp","getValueProps","type","checked","defaultValue","getFieldValues","valid","passThroughProps","valueProps","currentValue","numericProps","typeProps","errorProps","className","finalProps"],"sources":["../src/input.js"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport usePrevious from './usePrevious'\nimport useUpdate from './useUpdate'\nimport types from './inputTypes'\nimport createThrottled from './throttle'\n\nconst nextElementId = (id => () => `react-forms-${++id}`)(0)\n\nexport default (render, options = {}) => function Input(props) {\n if (!props.name) throw new Error(\"You must provide a name prop to form components\")\n if (!props.setFieldValue) throw new Error(\"Input components must be contained within a Form component\")\n\n const [fieldValidated, setFieldValidated] = useState(false)\n const [error, setError] = useState(false)\n const [id] = useState(props.id || nextElementId())\n const previousValueProp = usePrevious(props.value)\n\n // this is currently broken :-\\\n const { groups = [], throttle, onSubmit } = props\n const name = groups.map(group => group + '.') + props.name\n const submitHandler = (throttle && onSubmit) ? createThrottled(onSubmit, isNaN(throttle) ? 200 : throttle) : onSubmit\n\n useEffect(() => {\n const { getFieldValue, setFieldValue, registerFieldValidator } = props\n const { setInitialValue, applyValueTransforms } = types(props, options)\n\n // don't override values that were set from passing a values prop to the form\n if(getFieldValue(name) === undefined) {\n // TODO: change setter to a getter and return a private `UNSET` symbol to indicate not to call the field setter\n // this allows us to set the default value with useState above and not have an initial render cycle without the default value\n // BUT... to get the default value of a select list, we need to render it first? dilemma....\n\n setInitialValue({\n // pass a setter function - radio buttons do not always want to set a value!\n set: value => setFieldValue(name, applyValueTransforms(value)),\n element: document.querySelector(`#${id}`)\n })\n }\n registerFieldValidator(updateValidationState)\n\n // TODO: need to unregister in case of dynamic form elements\n }, [])\n\n // ensure form values are updated to reflect passed `value` prop\n // this probably introduces some redundancy with the onChange handler below\n useUpdate(() => {\n const { value, setFieldValue } = props\n const { applyValueTransforms } = types(props, options)\n\n if(value !== previousValueProp) {\n setFieldValue(name, applyValueTransforms(value))\n }\n }, [props])\n\n // TODO: refactor bubbling to prop pattern\n const onChange = (...args) => {\n const [event] = args\n const { setFieldValue, onChange, submitOnChange } = props\n const { valueFromEvent } = options\n const { getOutputValue, applyValueTransforms } = types(props, options)\n\n const elementValue = valueFromEvent\n ? valueFromEvent.apply(null, args)\n : getOutputValue({ event })\n\n setFieldValue(name, applyValueTransforms(elementValue))\n\n if(event && event.target && event.target.checkValidity) {\n event.target.checkValidity()\n updateValidationState()\n }\n\n if(onChange) {\n onChange.apply(event.target, args)\n }\n\n if(submitOnChange && submitHandler) {\n // the setFieldValue above sets state on the Form component, used in the onSubmit handler\n // setting state requires an additional render cycle - we need to pass in the new value so it's set correctly\n submitHandler(undefined, { additionalValues: { [name]: applyValueTransforms(elementValue) } })\n }\n }\n\n const onBlur = (...args) => {\n const { submitOnBlur, onSubmit, onBlur } = props\n const [event] = args\n\n if(submitOnBlur) {\n onSubmit()\n }\n if(onBlur) {\n onBlur.apply(event.target, args)\n }\n }\n\n const onFocus = (...args) => {\n const { selectOnFocus, onFocus } = props\n const [event] = args\n const element = event.target\n\n const selectText = () => {\n element.selectionStart = 0\n element.selectionEnd = element.value.length\n }\n\n if(selectOnFocus) {\n selectText()\n setTimeout(selectText)\n }\n if(onFocus) {\n onFocus.apply(element, args)\n }\n }\n\n const onKeyDown = (...args) => {\n const { onKeyDown } = props\n const [event] = args\n const element = event.target\n \n if(props.numeric && !/[0-9-]/.exec(event.key) && ![null, 0, 8, 9, 13, 27, 35, 36, 37, 39, 46].includes(event.keyCode)) {\n event.preventDefault()\n }\n\n if(onKeyDown) {\n onKeyDown.apply(element, args)\n }\n }\n\n const updateValidationState = () => {\n setFieldValidated(true)\n // this is a little hacky, but the simplest way I could think of to determine the\n // validity of the actual input element. :invalid is also not supported by enzyme\n const invalid = Boolean(document.querySelector(`#${id}:invalid`))\n setError(invalid)\n props.onValidated && props.onValidated(!invalid)\n }\n\n /* render */ {\n const { passErrorProp } = options\n const { getValueProps } = types(props, options)\n\n const {\n type, value, checked, defaultValue, numeric,\n onSubmit, registerFieldValidator, setFieldValue, getFieldValue, getFieldValues,\n submitOnChange, submitOnBlur, selectOnFocus, throttle, valid, onValidated,\n ...passThroughProps\n } = props\n const valueProps = getValueProps({ currentValue: getFieldValue(name) })\n const numericProps = (numeric && { type: 'number' })\n const typeProps = (type && { type })\n const errorProps = (passErrorProp && { error })\n const className = ((fieldValidated ? 'validated ' : '') + (props.className || '') || undefined)\n\n const finalProps = {\n id, name, className,\n ...passThroughProps, ...valueProps, ...numericProps, ...typeProps, ...errorProps,\n onChange, onFocus, onBlur, onKeyDown\n }\n\n return render(finalProps)\n }\n}"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,aAAa,GAAI,UAAAC,EAAE;EAAA,OAAI;IAAA,6BAAqB,EAAEA,EAAvB;EAAA,CAAJ;AAAA,CAAH,CAAoC,CAApC,CAAtB;;eAEe,kBAACC,MAAD;EAAA,IAASC,OAAT,uEAAmB,EAAnB;EAAA,OAA0B,SAASC,KAAT,CAAeC,KAAf,EAAsB;IAC7D,IAAI,CAACA,KAAK,CAACC,IAAX,EAAiB,MAAM,IAAIC,KAAJ,CAAU,iDAAV,CAAN;IACjB,IAAI,CAACF,KAAK,CAACG,aAAX,EAA0B,MAAM,IAAID,KAAJ,CAAU,4DAAV,CAAN;;IAE1B,gBAA4C,IAAAE,eAAA,EAAS,KAAT,CAA5C;IAAA;IAAA,IAAOC,cAAP;IAAA,IAAuBC,iBAAvB;;IACA,iBAA0B,IAAAF,eAAA,EAAS,KAAT,CAA1B;IAAA;IAAA,IAAOG,KAAP;IAAA,IAAcC,QAAd;;IACA,iBAAa,IAAAJ,eAAA,EAASJ,KAAK,CAACJ,EAAN,IAAYD,aAAa,EAAlC,CAAb;IAAA;IAAA,IAAOC,EAAP;;IACA,IAAMa,iBAAiB,GAAG,IAAAC,uBAAA,EAAYV,KAAK,CAACW,KAAlB,CAA1B,CAP6D,CAS7D;;IACA,oBAA4CX,KAA5C,CAAQY,MAAR;IAAA,IAAQA,MAAR,8BAAiB,EAAjB;IAAA,IAAqBC,QAArB,GAA4Cb,KAA5C,CAAqBa,QAArB;IAAA,IAA+BC,QAA/B,GAA4Cd,KAA5C,CAA+Bc,QAA/B;IACA,IAAMb,IAAI,GAAGW,MAAM,CAACG,GAAP,CAAW,UAAAC,KAAK;MAAA,OAAIA,KAAK,GAAG,GAAZ;IAAA,CAAhB,IAAmChB,KAAK,CAACC,IAAtD;IACA,IAAMgB,aAAa,GAAIJ,QAAQ,IAAIC,QAAb,GAAyB,IAAAI,qBAAA,EAAgBJ,QAAhB,EAA0BK,KAAK,CAACN,QAAD,CAAL,GAAkB,GAAlB,GAAwBA,QAAlD,CAAzB,GAAuFC,QAA7G;IAEA,IAAAM,gBAAA,EAAU,YAAM;MACd,IAAQC,aAAR,GAAiErB,KAAjE,CAAQqB,aAAR;MAAA,IAAuBlB,aAAvB,GAAiEH,KAAjE,CAAuBG,aAAvB;MAAA,IAAsCmB,sBAAtC,GAAiEtB,KAAjE,CAAsCsB,sBAAtC;;MACA,aAAkD,IAAAC,sBAAA,EAAMvB,KAAN,EAAaF,OAAb,CAAlD;MAAA,IAAQ0B,eAAR,UAAQA,eAAR;MAAA,IAAyBC,oBAAzB,UAAyBA,oBAAzB,CAFc,CAId;;;MACA,IAAGJ,aAAa,CAACpB,IAAD,CAAb,KAAwByB,SAA3B,EAAsC;QACpC;QACA;QACA;QAEAF,eAAe,CAAC;UACd;UACAG,GAAG,EAAE,aAAAhB,KAAK;YAAA,OAAIR,aAAa,CAACF,IAAD,EAAOwB,oBAAoB,CAACd,KAAD,CAA3B,CAAjB;UAAA,CAFI;UAGdiB,OAAO,EAAEC,QAAQ,CAACC,aAAT,YAA2BlC,EAA3B;QAHK,CAAD,CAAf;MAKD;;MACD0B,sBAAsB,CAACS,qBAAD,CAAtB,CAhBc,CAkBd;IACD,CAnBD,EAmBG,EAnBH,EAd6D,CAmC7D;IACA;;IACA,IAAAC,qBAAA,EAAU,YAAM;MACd,IAAQrB,KAAR,GAAiCX,KAAjC,CAAQW,KAAR;MAAA,IAAeR,aAAf,GAAiCH,KAAjC,CAAeG,aAAf;;MACA,cAAiC,IAAAoB,sBAAA,EAAMvB,KAAN,EAAaF,OAAb,CAAjC;MAAA,IAAQ2B,oBAAR,WAAQA,oBAAR;;MAEA,IAAGd,KAAK,KAAKF,iBAAb,EAAgC;QAC9BN,aAAa,CAACF,IAAD,EAAOwB,oBAAoB,CAACd,KAAD,CAA3B,CAAb;MACD;IACF,CAPD,EAOG,CAACX,KAAD,CAPH,EArC6D,CA8C7D;;IACA,IAAMiC,QAAQ,GAAG,oBAAa;MAAA,kCAATC,IAAS;QAATA,IAAS;MAAA;;MAC5B,IAAOC,KAAP,GAAgBD,IAAhB;MACA,IAAQ/B,aAAR,GAAoDH,KAApD,CAAQG,aAAR;MAAA,IAAuB8B,QAAvB,GAAoDjC,KAApD,CAAuBiC,QAAvB;MAAA,IAAiCG,cAAjC,GAAoDpC,KAApD,CAAiCoC,cAAjC;MACA,IAAQC,cAAR,GAA2BvC,OAA3B,CAAQuC,cAAR;;MACA,cAAiD,IAAAd,sBAAA,EAAMvB,KAAN,EAAaF,OAAb,CAAjD;MAAA,IAAQwC,cAAR,WAAQA,cAAR;MAAA,IAAwBb,oBAAxB,WAAwBA,oBAAxB;;MAEA,IAAMc,YAAY,GAAGF,cAAc,GAC/BA,cAAc,CAACG,KAAf,CAAqB,IAArB,EAA2BN,IAA3B,CAD+B,GAE/BI,cAAc,CAAC;QAAEH,KAAK,EAALA;MAAF,CAAD,CAFlB;MAIAhC,aAAa,CAACF,IAAD,EAAOwB,oBAAoB,CAACc,YAAD,CAA3B,CAAb;;MAEA,IAAGJ,KAAK,IAAIA,KAAK,CAACM,MAAf,IAAyBN,KAAK,CAACM,MAAN,CAAaC,aAAzC,EAAwD;QACtDP,KAAK,CAACM,MAAN,CAAaC,aAAb;QACAX,qBAAqB;MACtB;;MAED,IAAGE,QAAH,EAAa;QACXA,QAAQ,CAACO,KAAT,CAAeL,KAAK,CAACM,MAArB,EAA6BP,IAA7B;MACD;;MAED,IAAGE,cAAc,IAAInB,aAArB,EAAoC;QAClC;QACA;QACAA,aAAa,CAACS,SAAD,EAAY;UAAEiB,gBAAgB,sBAAK1C,IAAL,EAAYwB,oBAAoB,CAACc,YAAD,CAAhC;QAAlB,CAAZ,CAAb;MACD;IACF,CA1BD;;IA4BA,IAAMK,MAAM,GAAG,kBAAa;MAC1B,IAAQC,YAAR,GAA2C7C,KAA3C,CAAQ6C,YAAR;MAAA,IAAsB/B,QAAtB,GAA2Cd,KAA3C,CAAsBc,QAAtB;MAAA,IAAgC8B,MAAhC,GAA2C5C,KAA3C,CAAgC4C,MAAhC;;MAD0B,mCAATV,IAAS;QAATA,IAAS;MAAA;;MAE1B,IAAOC,KAAP,GAAgBD,IAAhB;;MAEA,IAAGW,YAAH,EAAiB;QACf/B,QAAQ;MACT;;MACD,IAAG8B,MAAH,EAAW;QACTA,MAAM,CAACJ,KAAP,CAAaL,KAAK,CAACM,MAAnB,EAA2BP,IAA3B;MACD;IACF,CAVD;;IAYA,IAAMY,OAAO,GAAG,mBAAa;MAC3B,IAAQC,aAAR,GAAmC/C,KAAnC,CAAQ+C,aAAR;MAAA,IAAuBD,OAAvB,GAAmC9C,KAAnC,CAAuB8C,OAAvB;;MAD2B,mCAATZ,IAAS;QAATA,IAAS;MAAA;;MAE3B,IAAOC,KAAP,GAAgBD,IAAhB;MACA,IAAMN,OAAO,GAAGO,KAAK,CAACM,MAAtB;;MAEA,IAAMO,UAAU,GAAG,SAAbA,UAAa,GAAM;QACvBpB,OAAO,CAACqB,cAAR,GAAyB,CAAzB;QACArB,OAAO,CAACsB,YAAR,GAAuBtB,OAAO,CAACjB,KAAR,CAAcwC,MAArC;MACD,CAHD;;MAKA,IAAGJ,aAAH,EAAkB;QAChBC,UAAU;QACVI,UAAU,CAACJ,UAAD,CAAV;MACD;;MACD,IAAGF,OAAH,EAAY;QACVA,OAAO,CAACN,KAAR,CAAcZ,OAAd,EAAuBM,IAAvB;MACD;IACF,CAjBD;;IAmBA,IAAMmB,SAAS,GAAG,qBAAa;MAC7B,IAAQA,SAAR,GAAsBrD,KAAtB,CAAQqD,SAAR;;MAD6B,mCAATnB,IAAS;QAATA,IAAS;MAAA;;MAE7B,IAAOC,KAAP,GAAgBD,IAAhB;MACA,IAAMN,OAAO,GAAGO,KAAK,CAACM,MAAtB;;MAEA,IAAGzC,KAAK,CAACsD,OAAN,IAAiB,CAAC,SAASC,IAAT,CAAcpB,KAAK,CAACqB,GAApB,CAAlB,IAA8C,CAAC,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,EAAhB,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,EAA5B,EAAgC,EAAhC,EAAoC,EAApC,EAAwC,EAAxC,EAA4CC,QAA5C,CAAqDtB,KAAK,CAACuB,OAA3D,CAAlD,EAAuH;QACrHvB,KAAK,CAACwB,cAAN;MACD;;MAED,IAAGN,SAAH,EAAc;QACZA,SAAS,CAACb,KAAV,CAAgBZ,OAAhB,EAAyBM,IAAzB;MACD;IACF,CAZD;;IAcA,IAAMH,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;MAClCzB,iBAAiB,CAAC,IAAD,CAAjB,CADkC,CAElC;MACA;;MACA,IAAMsD,OAAO,GAAGC,OAAO,CAAChC,QAAQ,CAACC,aAAT,YAA2BlC,EAA3B,cAAD,CAAvB;MACAY,QAAQ,CAACoD,OAAD,CAAR;MACA5D,KAAK,CAAC8D,WAAN,IAAqB9D,KAAK,CAAC8D,WAAN,CAAkB,CAACF,OAAnB,CAArB;IACD,CAPD;IASA;;;IAAa;MACX,IAAQG,aAAR,GAA0BjE,OAA1B,CAAQiE,aAAR;;MACA,cAA0B,IAAAxC,sBAAA,EAAMvB,KAAN,EAAaF,OAAb,CAA1B;MAAA,IAAQkE,aAAR,WAAQA,aAAR;;MAEA,IACEC,IADF,GAKIjE,KALJ,CACEiE,IADF;MAAA,IACQtD,KADR,GAKIX,KALJ,CACQW,KADR;MAAA,IACeuD,OADf,GAKIlE,KALJ,CACekE,OADf;MAAA,IACwBC,YADxB,GAKInE,KALJ,CACwBmE,YADxB;MAAA,IACsCb,OADtC,GAKItD,KALJ,CACsCsD,OADtC;MAAA,IAEExC,SAFF,GAKId,KALJ,CAEEc,QAFF;MAAA,IAEYQ,sBAFZ,GAKItB,KALJ,CAEYsB,sBAFZ;MAAA,IAEoCnB,aAFpC,GAKIH,KALJ,CAEoCG,aAFpC;MAAA,IAEmDkB,aAFnD,GAKIrB,KALJ,CAEmDqB,aAFnD;MAAA,IAEkE+C,cAFlE,GAKIpE,KALJ,CAEkEoE,cAFlE;MAAA,IAGEhC,cAHF,GAKIpC,KALJ,CAGEoC,cAHF;MAAA,IAGkBS,YAHlB,GAKI7C,KALJ,CAGkB6C,YAHlB;MAAA,IAGgCE,aAHhC,GAKI/C,KALJ,CAGgC+C,aAHhC;MAAA,IAG+ClC,SAH/C,GAKIb,KALJ,CAG+Ca,QAH/C;MAAA,IAGyDwD,KAHzD,GAKIrE,KALJ,CAGyDqE,KAHzD;MAAA,IAGgEP,WAHhE,GAKI9D,KALJ,CAGgE8D,WAHhE;MAAA,IAIKQ,gBAJL,4BAKItE,KALJ;;MAMA,IAAMuE,UAAU,GAAGP,aAAa,CAAC;QAAEQ,YAAY,EAAEnD,aAAa,CAACpB,IAAD;MAA7B,CAAD,CAAhC;MACA,IAAMwE,YAAY,GAAInB,OAAO,IAAI;QAAEW,IAAI,EAAE;MAAR,CAAjC;MACA,IAAMS,SAAS,GAAIT,IAAI,IAAI;QAAEA,IAAI,EAAJA;MAAF,CAA3B;MACA,IAAMU,UAAU,GAAIZ,aAAa,IAAI;QAAExD,KAAK,EAALA;MAAF,CAArC;MACA,IAAMqE,SAAS,GAAI,CAACvE,cAAc,GAAG,YAAH,GAAkB,EAAjC,KAAwCL,KAAK,CAAC4E,SAAN,IAAmB,EAA3D,KAAkElD,SAArF;;MAEA,IAAMmD,UAAU;QACdjF,EAAE,EAAFA,EADc;QACVK,IAAI,EAAJA,IADU;QACJ2E,SAAS,EAATA;MADI,GAEXN,gBAFW,GAEUC,UAFV,GAEyBE,YAFzB,GAE0CC,SAF1C,GAEwDC,UAFxD;QAGd1C,QAAQ,EAARA,QAHc;QAGJa,OAAO,EAAPA,OAHI;QAGKF,MAAM,EAANA,MAHL;QAGaS,SAAS,EAATA;MAHb,EAAhB;;MAMA,OAAOxD,MAAM,CAACgF,UAAD,CAAb;IACD;EACF,CAzJc;AAAA,C"}
|
|
1
|
+
{"version":3,"file":"input.js","names":["nextElementId","id","render","options","Input","props","name","Error","setFieldValue","useState","fieldValidated","setFieldValidated","error","setError","previousValueProp","usePrevious","value","groups","throttle","onSubmit","map","group","submitHandler","createThrottled","isNaN","useEffect","getFieldValue","registerFieldValidator","types","setInitialValue","applyValueTransforms","undefined","set","element","document","querySelector","updateValidationState","useUpdate","useCallback","newValue","oldValues","getValidationMessage","getFieldValues","validationMessage","setCustomValidity","invalid","Boolean","onValidated","onChange","args","event","submitOnChange","valueFromEvent","getOutputValue","elementValue","apply","target","checkValidity","additionalValues","onBlur","submitOnBlur","onFocus","selectOnFocus","selectText","selectionStart","selectionEnd","length","setTimeout","onKeyDown","numeric","exec","key","includes","keyCode","preventDefault","passErrorProp","getValueProps","type","checked","defaultValue","valid","passThroughProps","valueProps","currentValue","numericProps","typeProps","errorProps","className","finalProps"],"sources":["../src/input.js"],"sourcesContent":["import { useCallback, useState, useEffect } from 'react'\nimport usePrevious from './usePrevious'\nimport useUpdate from './useUpdate'\nimport types from './inputTypes'\nimport createThrottled from './throttle'\n\nconst nextElementId = (id => () => `react-forms-${++id}`)(0)\n\nexport default (render, options = {}) => function Input(props) {\n if (!props.name) throw new Error(\"You must provide a name prop to form components\")\n if (!props.setFieldValue) throw new Error(\"Input components must be contained within a Form component\")\n\n const [fieldValidated, setFieldValidated] = useState(false)\n const [error, setError] = useState(false)\n const [id] = useState(props.id || nextElementId())\n const previousValueProp = usePrevious(props.value)\n\n // this is currently broken :-\\\n const { groups = [], throttle, onSubmit } = props\n const name = groups.map(group => group + '.') + props.name\n const submitHandler = (throttle && onSubmit) ? createThrottled(onSubmit, isNaN(throttle) ? 200 : throttle) : onSubmit\n\n useEffect(() => {\n const { getFieldValue, setFieldValue, registerFieldValidator } = props\n const { setInitialValue, applyValueTransforms } = types(props, options)\n\n // don't override values that were set from passing a values prop to the form\n if(getFieldValue(name) === undefined) {\n // TODO: change setter to a getter and return a private `UNSET` symbol to indicate not to call the field setter\n // this allows us to set the default value with useState above and not have an initial render cycle without the default value\n // BUT... to get the default value of a select list, we need to render it first? dilemma....\n\n setInitialValue({\n // pass a setter function - radio buttons do not always want to set a value!\n set: value => setFieldValue(name, applyValueTransforms(value)),\n element: document.querySelector(`#${id}`)\n })\n }\n registerFieldValidator(updateValidationState)\n\n // TODO: need to unregister in case of dynamic form elements\n }, [])\n\n // ensure form values are updated to reflect passed `value` prop\n // this probably introduces some redundancy with the onChange handler below\n useUpdate(() => {\n const { value, setFieldValue } = props\n const { applyValueTransforms } = types(props, options)\n\n if(value !== previousValueProp) {\n setFieldValue(name, applyValueTransforms(value))\n }\n }, [props])\n\n const updateValidationState = useCallback((newValue, oldValues) => {\n const { getValidationMessage, getFieldValue, getFieldValues } = props\n const element = document.querySelector(`#${id}`)\n const validationMessage = getValidationMessage && getValidationMessage(\n newValue === undefined ? getFieldValue(name) : newValue,\n oldValues || getFieldValues()\n )\n element.setCustomValidity(validationMessage || \"\")\n\n setFieldValidated(true)\n // this is a little hacky, but the simplest way I could think of to determine the\n // validity of the actual input element. :invalid is also not supported by enzyme\n const invalid = !!validationMessage || Boolean(document.querySelector(`#${id}:invalid`))\n setError(invalid)\n props.onValidated && props.onValidated(!invalid)\n }, [props])\n\n // TODO: refactor bubbling to prop pattern\n const onChange = useCallback((...args) => {\n const [event] = args\n const { setFieldValue, onChange, submitOnChange } = props\n const { valueFromEvent } = options\n const { getOutputValue, applyValueTransforms } = types(props, options)\n\n const elementValue = valueFromEvent\n ? valueFromEvent.apply(null, args)\n : getOutputValue({ event })\n\n setFieldValue(name, applyValueTransforms(elementValue))\n\n if(event && event.target && event.target.checkValidity) {\n event.target.checkValidity()\n updateValidationState(applyValueTransforms(elementValue))\n }\n\n if(onChange) {\n onChange.apply(event.target, args)\n }\n\n if(submitOnChange && submitHandler) {\n // the setFieldValue above sets state on the Form component, used in the onSubmit handler\n // setting state requires an additional render cycle - we need to pass in the new value so it's set correctly\n submitHandler(undefined, { additionalValues: { [name]: applyValueTransforms(elementValue) } })\n }\n }, [props.setFieldValue, props.onChange, props.submitOnChange, props.setFieldValue, updateValidationState])\n\n const onBlur = (...args) => {\n const { submitOnBlur, onSubmit, onBlur } = props\n const [event] = args\n\n if(submitOnBlur) {\n onSubmit()\n }\n if(onBlur) {\n onBlur.apply(event.target, args)\n }\n }\n\n const onFocus = (...args) => {\n const { selectOnFocus, onFocus } = props\n const [event] = args\n const element = event.target\n\n const selectText = () => {\n element.selectionStart = 0\n element.selectionEnd = element.value.length\n }\n\n if(selectOnFocus) {\n selectText()\n setTimeout(selectText)\n }\n if(onFocus) {\n onFocus.apply(element, args)\n }\n }\n\n const onKeyDown = (...args) => {\n const { onKeyDown } = props\n const [event] = args\n const element = event.target\n \n if(props.numeric && !/[0-9-]/.exec(event.key) && ![null, 0, 8, 9, 13, 27, 35, 36, 37, 39, 46].includes(event.keyCode)) {\n event.preventDefault()\n }\n\n if(onKeyDown) {\n onKeyDown.apply(element, args)\n }\n }\n\n /* render */ {\n const { passErrorProp } = options\n const { getValueProps } = types(props, options)\n\n const {\n type, value, checked, defaultValue, numeric, getValidationMessage,\n onSubmit, registerFieldValidator, setFieldValue, getFieldValue, getFieldValues,\n submitOnChange, submitOnBlur, selectOnFocus, throttle, valid, onValidated,\n ...passThroughProps\n } = props\n const valueProps = getValueProps({ currentValue: getFieldValue(name) })\n const numericProps = (numeric && { type: 'number' })\n const typeProps = (type && { type })\n const errorProps = (passErrorProp && { error })\n const className = ((fieldValidated ? 'validated ' : '') + (props.className || '') || undefined)\n\n const finalProps = {\n id, name, className,\n ...passThroughProps, ...valueProps, ...numericProps, ...typeProps, ...errorProps,\n onChange, onFocus, onBlur, onKeyDown\n }\n\n return render(finalProps)\n }\n}"],"mappings":"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"}
|
package/dist/inputTypes.js
CHANGED
|
@@ -4,31 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
-
|
|
10
8
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
-
|
|
12
9
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
|
|
14
10
|
var resolveValue = function resolveValue(value, args) {
|
|
15
11
|
return typeof value === 'function' ? value.apply(null, args) : value;
|
|
16
12
|
};
|
|
17
|
-
|
|
18
13
|
var _default = function _default(props, options) {
|
|
19
14
|
var type = props.type,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
checked = props.checked,
|
|
16
|
+
value = props.value,
|
|
17
|
+
defaultValue = props.defaultValue;
|
|
24
18
|
var applyValueTransforms = function applyValueTransforms(value) {
|
|
25
19
|
return (props.type === 'number' || props.numeric) && !isNaN(+value) && value !== '' ? +value : value;
|
|
26
20
|
};
|
|
27
|
-
|
|
28
21
|
var defaultType = {
|
|
29
22
|
setInitialValue: function setInitialValue(_ref) {
|
|
30
23
|
var set = _ref.set;
|
|
31
|
-
|
|
32
24
|
if (value !== undefined) {
|
|
33
25
|
set(value);
|
|
34
26
|
} else if (defaultValue !== undefined) {
|
|
@@ -41,7 +33,6 @@ var _default = function _default(props, options) {
|
|
|
41
33
|
},
|
|
42
34
|
getOutputValue: function getOutputValue(_ref2) {
|
|
43
35
|
var event = _ref2.event;
|
|
44
|
-
|
|
45
36
|
if (event.target && event.target.value !== undefined) {
|
|
46
37
|
return event.target.value;
|
|
47
38
|
} else if (event.value !== undefined) {
|
|
@@ -57,11 +48,9 @@ var _default = function _default(props, options) {
|
|
|
57
48
|
};
|
|
58
49
|
}
|
|
59
50
|
};
|
|
60
|
-
|
|
61
51
|
var checkboxValue = function checkboxValue(checked, value) {
|
|
62
52
|
return value === undefined ? Boolean(checked) : checked ? value : undefined;
|
|
63
53
|
};
|
|
64
|
-
|
|
65
54
|
var types = {
|
|
66
55
|
text: defaultType,
|
|
67
56
|
radio: {
|
|
@@ -98,17 +87,18 @@ var _default = function _default(props, options) {
|
|
|
98
87
|
select: _objectSpread(_objectSpread({}, defaultType), {}, {
|
|
99
88
|
setInitialValue: function setInitialValue(_ref9) {
|
|
100
89
|
var set = _ref9.set,
|
|
101
|
-
|
|
102
|
-
set(value || defaultValue || props.options && props.options.length > 0 && props.options[0] ||
|
|
90
|
+
element = _ref9.element;
|
|
91
|
+
set(value || defaultValue || props.options && props.options.length > 0 && props.options[0] ||
|
|
92
|
+
// this probably should come out - is it the right behavior for all browsers? it's here to keep 1 unit test happy?
|
|
103
93
|
element && element.value || '' // this *should* work in all browsers (except jsdom)...
|
|
104
94
|
);
|
|
105
95
|
}
|
|
106
96
|
})
|
|
107
97
|
};
|
|
98
|
+
|
|
108
99
|
return _objectSpread(_objectSpread({}, types[options.type || type] || types.text), {}, {
|
|
109
100
|
applyValueTransforms: applyValueTransforms
|
|
110
101
|
});
|
|
111
102
|
};
|
|
112
|
-
|
|
113
103
|
exports["default"] = _default;
|
|
114
104
|
//# sourceMappingURL=inputTypes.js.map
|
package/dist/inputTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputTypes.js","names":["resolveValue","value","args","apply","props","options","type","checked","defaultValue","applyValueTransforms","numeric","isNaN","defaultType","setInitialValue","set","undefined","getOutputValue","event","target","Error","getValueProps","currentValue","checkboxValue","Boolean","types","text","radio","checkbox","select","element","length"],"sources":["../src/inputTypes.js"],"sourcesContent":["const resolveValue = (value, args) => typeof value === 'function' ? value.apply(null, args) : value\n\nexport default (props, options) => {\n const { type, checked, value, defaultValue } = props\n\n const applyValueTransforms = value => ((props.type === 'number' || props.numeric) && !isNaN(+value) && value !== '') ? +value : value\n\n const defaultType = {\n setInitialValue: ({ set }) => {\n if(value !== undefined) {\n set(value)\n } else if (defaultValue !== undefined) {\n set(defaultValue)\n } else if (options.defaultValue !== undefined) {\n set(resolveValue(options.defaultValue, [props]))\n } else {\n set(undefined)\n }\n },\n getOutputValue: ({ event }) => {\n if (event.target && event.target.value !== undefined) {\n return event.target.value\n } else if (event.value !== undefined) {\n return event.value\n } else {\n throw new Error(\"Unable to determine input value from event\")\n }\n },\n getValueProps: ({ currentValue }) => ({\n value: currentValue === undefined ? '' : currentValue\n })\n }\n\n const checkboxValue = (checked, value) => (value === undefined\n ? Boolean(checked)\n : checked ? value : undefined\n )\n\n const types = {\n text: defaultType,\n radio: {\n setInitialValue: ({ set }) => checked && set(value),\n getOutputValue: () => value,\n getValueProps: ({ currentValue }) => ({ checked: applyValueTransforms(value) === currentValue })\n },\n checkbox: {\n setInitialValue: ({ set }) => set(checkboxValue(checked, value)),\n getOutputValue: ({ event }) => checkboxValue(event.target.checked, value),\n getValueProps: ({ currentValue }) => ({ checked: Boolean(currentValue) })\n },\n select: {\n ...defaultType,\n setInitialValue: ({ set, element }) => {\n set(value || defaultValue ||\n (props.options && props.options.length > 0 && props.options[0]) || // this probably should come out - is it the right behavior for all browsers? it's here to keep 1 unit test happy?\n element && element.value || '' // this *should* work in all browsers (except jsdom)...\n )\n }\n }\n }\n\n return { ...(types[options.type || type] || types.text), applyValueTransforms }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputTypes.js","names":["resolveValue","value","args","apply","props","options","type","checked","defaultValue","applyValueTransforms","numeric","isNaN","defaultType","setInitialValue","set","undefined","getOutputValue","event","target","Error","getValueProps","currentValue","checkboxValue","Boolean","types","text","radio","checkbox","select","element","length"],"sources":["../src/inputTypes.js"],"sourcesContent":["const resolveValue = (value, args) => typeof value === 'function' ? value.apply(null, args) : value\n\nexport default (props, options) => {\n const { type, checked, value, defaultValue } = props\n\n const applyValueTransforms = value => ((props.type === 'number' || props.numeric) && !isNaN(+value) && value !== '') ? +value : value\n\n const defaultType = {\n setInitialValue: ({ set }) => {\n if(value !== undefined) {\n set(value)\n } else if (defaultValue !== undefined) {\n set(defaultValue)\n } else if (options.defaultValue !== undefined) {\n set(resolveValue(options.defaultValue, [props]))\n } else {\n set(undefined)\n }\n },\n getOutputValue: ({ event }) => {\n if (event.target && event.target.value !== undefined) {\n return event.target.value\n } else if (event.value !== undefined) {\n return event.value\n } else {\n throw new Error(\"Unable to determine input value from event\")\n }\n },\n getValueProps: ({ currentValue }) => ({\n value: currentValue === undefined ? '' : currentValue\n })\n }\n\n const checkboxValue = (checked, value) => (value === undefined\n ? Boolean(checked)\n : checked ? value : undefined\n )\n\n const types = {\n text: defaultType,\n radio: {\n setInitialValue: ({ set }) => checked && set(value),\n getOutputValue: () => value,\n getValueProps: ({ currentValue }) => ({ checked: applyValueTransforms(value) === currentValue })\n },\n checkbox: {\n setInitialValue: ({ set }) => set(checkboxValue(checked, value)),\n getOutputValue: ({ event }) => checkboxValue(event.target.checked, value),\n getValueProps: ({ currentValue }) => ({ checked: Boolean(currentValue) })\n },\n select: {\n ...defaultType,\n setInitialValue: ({ set, element }) => {\n set(value || defaultValue ||\n (props.options && props.options.length > 0 && props.options[0]) || // this probably should come out - is it the right behavior for all browsers? it's here to keep 1 unit test happy?\n element && element.value || '' // this *should* work in all browsers (except jsdom)...\n )\n }\n }\n }\n\n return { ...(types[options.type || type] || types.text), applyValueTransforms }\n}\n"],"mappings":"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"}
|
package/dist/styles.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _injectCss = _interopRequireDefault(require("./injectCss"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
6
|
-
|
|
7
5
|
(0, _injectCss["default"])('react-forms-styles', "\n.react-forms {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.react-forms-row {\n flex-direction: row;\n align-items: flex-start;\n}\n\n.react-forms-error {\n color: #f44336;\n}\n");
|
|
8
6
|
//# sourceMappingURL=styles.js.map
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["injectCss"],"sources":["../src/styles.js"],"sourcesContent":["import injectCss from './injectCss'\n\ninjectCss('react-forms-styles', `\n.react-forms {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.react-forms-row {\n flex-direction: row;\n align-items: flex-start;\n}\n\n.react-forms-error {\n color: #f44336;\n}\n`)\n\n\n"],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"styles.js","names":["injectCss"],"sources":["../src/styles.js"],"sourcesContent":["import injectCss from './injectCss'\n\ninjectCss('react-forms-styles', `\n.react-forms {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.react-forms-row {\n flex-direction: row;\n align-items: flex-start;\n}\n\n.react-forms-error {\n color: #f44336;\n}\n`)\n\n\n"],"mappings":";;AAAA;AAAmC;AAEnC,IAAAA,qBAAS,EAAC,oBAAoB,8NAe5B"}
|