@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/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
- _useState2 = _slicedToArray(_useState, 2),
58
- fieldValidated = _useState2[0],
59
- setFieldValidated = _useState2[1];
60
-
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ fieldValidated = _useState2[0],
38
+ setFieldValidated = _useState2[1];
61
39
  var _useState3 = (0, _react.useState)(false),
62
- _useState4 = _slicedToArray(_useState3, 2),
63
- error = _useState4[0],
64
- setError = _useState4[1];
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
- _useState6 = _slicedToArray(_useState5, 1),
68
- id = _useState6[0];
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
- groups = _props$groups === void 0 ? [] : _props$groups,
74
- throttle = props.throttle,
75
- onSubmit = props.onSubmit;
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
- setFieldValue = props.setFieldValue,
83
- registerFieldValidator = props.registerFieldValidator;
84
-
59
+ setFieldValue = props.setFieldValue,
60
+ registerFieldValidator = props.registerFieldValidator;
85
61
  var _types = (0, _inputTypes["default"])(props, options),
86
- setInitialValue = _types.setInitialValue,
87
- applyValueTransforms = _types.applyValueTransforms; // don't override values that were set from passing a values prop to the form
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
- // this allows us to set the default value with useState above and not have an initial render cycle without the default value
93
- // BUT... to get the default value of a select list, we need to render it first? dilemma....
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
- registerFieldValidator(updateValidationState); // TODO: need to unregister in case of dynamic form elements
104
- }, []); // ensure form values are updated to reflect passed `value` prop
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
- setFieldValue = props.setFieldValue;
110
-
88
+ setFieldValue = props.setFieldValue;
111
89
  var _types2 = (0, _inputTypes["default"])(props, options),
112
- applyValueTransforms = _types2.applyValueTransforms;
113
-
90
+ applyValueTransforms = _types2.applyValueTransforms;
114
91
  if (value !== previousValueProp) {
115
92
  setFieldValue(name, applyValueTransforms(value));
116
93
  }
117
- }, [props]); // TODO: refactor bubbling to prop pattern
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
- var onChange = function onChange() {
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
- onChange = props.onChange,
127
- submitOnChange = props.submitOnChange;
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
- getOutputValue = _types3.getOutputValue,
132
- applyValueTransforms = _types3.applyValueTransforms;
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
- onSubmit = props.onSubmit,
160
- onBlur = props.onBlur;
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
- onFocus = props.onFocus;
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
- getValueProps = _types4.getValueProps;
238
-
196
+ getValueProps = _types4.getValueProps;
239
197
  var type = props.type,
240
- value = props.value,
241
- checked = props.checked,
242
- defaultValue = props.defaultValue,
243
- numeric = props.numeric,
244
- _onSubmit = props.onSubmit,
245
- registerFieldValidator = props.registerFieldValidator,
246
- setFieldValue = props.setFieldValue,
247
- getFieldValue = props.getFieldValue,
248
- getFieldValues = props.getFieldValues,
249
- submitOnChange = props.submitOnChange,
250
- submitOnBlur = props.submitOnBlur,
251
- selectOnFocus = props.selectOnFocus,
252
- _throttle = props.throttle,
253
- valid = props.valid,
254
- onValidated = props.onValidated,
255
- passThroughProps = _objectWithoutProperties(props, _excluded);
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":"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"}
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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"}
@@ -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
- checked = props.checked,
21
- value = props.value,
22
- defaultValue = props.defaultValue;
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
- element = _ref9.element;
102
- set(value || defaultValue || 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?
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
@@ -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":"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"}
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
@@ -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;;;;AAEA,IAAAA,qBAAA,EAAU,oBAAV"}
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"}