@danderson00/react-forms 0.0.37 → 0.0.39

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ErrorMessage.js"],"names":["extractErrorMessage","error","hasOwnProperty","message","className","children"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,KAAK;AAAA,SAAIA,KAAK,GAC5CA,KAAK,CAACC,cAAN,CAAqB,OAArB,KAAiCD,KAAK,CAACC,cAAN,CAAqB,SAArB,CAAlC,GACED,KAAK,CAACE,OAAN,IAAiB,mBADnB,GAEEF,KAH2C,GAI7C,mBAJoC;AAAA,CAAjC;;;;eAMQ;AAAA,MAAGA,KAAH,QAAGA,KAAH;AAAA,sBAAe,0BAAc,KAAd,EAAqB;AACjDG,IAAAA,SAAS,EAAE,mBADsC;AAEjDC,IAAAA,QAAQ,EAAEL,mBAAmB,CAACC,KAAD;AAFoB,GAArB,CAAf;AAAA,C","sourcesContent":["import { createElement } from 'react'\n\nexport const extractErrorMessage = error => error\n ? (error.hasOwnProperty('stack') || error.hasOwnProperty('message'))\n ? error.message || 'An error occurred'\n : error\n : 'An error occurred'\n\nexport default ({ error }) => createElement('div', {\n className: 'react-forms-error',\n children: extractErrorMessage(error)\n})"],"file":"ErrorMessage.js"}
1
+ {"version":3,"file":"ErrorMessage.js","names":["extractErrorMessage","error","hasOwnProperty","message","createElement","className","children"],"sources":["../src/ErrorMessage.js"],"sourcesContent":["import { createElement } from 'react'\n\nexport const extractErrorMessage = error => error\n ? (error.hasOwnProperty('stack') || error.hasOwnProperty('message'))\n ? error.message || 'An error occurred'\n : error\n : 'An error occurred'\n\nexport default ({ error }) => createElement('div', {\n className: 'react-forms-error',\n children: extractErrorMessage(error)\n})"],"mappings":";;;;;;;AAAA;;AAEO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,KAAK;EAAA,OAAIA,KAAK,GAC5CA,KAAK,CAACC,cAAN,CAAqB,OAArB,KAAiCD,KAAK,CAACC,cAAN,CAAqB,SAArB,CAAlC,GACED,KAAK,CAACE,OAAN,IAAiB,mBADnB,GAEEF,KAH2C,GAI7C,mBAJoC;AAAA,CAAjC;;;;eAMQ;EAAA,IAAGA,KAAH,QAAGA,KAAH;EAAA,oBAAe,IAAAG,oBAAA,EAAc,KAAd,EAAqB;IACjDC,SAAS,EAAE,mBADsC;IAEjDC,QAAQ,EAAEN,mBAAmB,CAACC,KAAD;EAFoB,CAArB,CAAf;AAAA,C"}
package/dist/Form.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Form.js"],"names":["Form","ContextProvider","additionalContext","ErrorMessage","resetOnSubmit","row","gap","props","values","fieldValues","setFieldValues","validators","validator","fieldValidators","registerFieldValidator","error","setError","valid","setValid","form","current","checkValidity","getFieldValue","path","getFieldValues","mapFieldValues","target","Object","keys","reduce","name","setFieldValue","value","previousValues","onSubmit","e","additionalValues","validate","forEach","setFieldValidated","undefined","interactiveElements","querySelectorAll","setFormDisabled","disabled","x","reset","checkResultForError","result","success","message","then","preventDefault","stopPropagation","classNames","className","push","mergedAdditionalContext","property","join","noValidate","ref","style","children","key","type","visibility","position"],"mappings":"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","sourcesContent":["import { createElement, createRef, useEffect, useReducer, useState } from 'react'\nimport { get, set } from 'object-path-immutable'\n\nconst Form = (ContextProvider, additionalContext = {}, ErrorMessage) => (\n ({ resetOnSubmit, row, gap, ...props }) => {\n const [fieldValues, setFieldValues] = useState(props.values || {})\n const [fieldValidators, registerFieldValidator] = useReducer((validators, validator) => [...validators, validator], [])\n const [error, setError] = useState()\n const [valid, setValid] = useState()\n const form = createRef()\n\n useEffect(() => {\n if(form.current) {\n setValid(form.current.checkValidity())\n }\n }, [form.current])\n\n const getFieldValue = path => get(fieldValues, path)\n const getFieldValues = () => fieldValues\n const mapFieldValues = target => Object.keys(target).reduce(\n (values, name) => set(values, name, target[name]),\n {}\n )\n\n const setFieldValue = (path, value) => {\n setFieldValues(previousValues => set(previousValues, path, value))\n if(form.current) {\n setValid(form.current.checkValidity())\n }\n }\n\n const onSubmit = (e, { additionalValues, validate } = {}) => {\n if(validate !== false) {\n fieldValidators.forEach(setFieldValidated => setFieldValidated())\n }\n\n if((validate === false || form.current.checkValidity()) && props.onSubmit) {\n setError(undefined)\n\n const interactiveElements = form.current.querySelectorAll('input,button,textarea,select')\n const setFormDisabled = disabled => interactiveElements.forEach(x => x.disabled = disabled)\n\n const reset = () => {\n if(resetOnSubmit) {\n setFieldValues(props.values || {})\n }\n }\n\n try {\n const checkResultForError = result => {\n if(result && (result.success === false || result.error)) {\n setError(result.error || result.message || 'Form submission failed')\n } else {\n reset()\n }\n return result\n }\n\n const result = props.onSubmit(mapFieldValues({ ...fieldValues, ...additionalValues }))\n if(result && typeof result.then === 'function') {\n setFormDisabled(true)\n result\n .then(checkResultForError)\n .catch(setError)\n .finally(() => setFormDisabled(false))\n } else {\n reset()\n }\n } catch(error) {\n setError(error)\n }\n }\n\n e && e.preventDefault && e.preventDefault()\n e && e.stopPropagation && e.stopPropagation()\n }\n\n const classNames = ['react-forms', props.className]\n if(row) {\n classNames.push('react-forms-row')\n }\n\n const mergedAdditionalContext = Object.keys(additionalContext).reduce(\n (result, property) => ({ ...result, [property]: props[property] || additionalContext[property] }),\n {}\n )\n\n return (\n createElement('form', {\n ...props,\n className: classNames.join(' '),\n noValidate: true,\n onSubmit: onSubmit,\n ref: form,\n ...(gap && { style: { gap } }),\n children: [\n createElement(ContextProvider, {\n ...props,\n key: 'context',\n value: {\n registerFieldValidator,\n setFieldValue,\n getFieldValue,\n getFieldValues,\n onSubmit,\n valid,\n ...mergedAdditionalContext\n }\n }),\n error && createElement(ErrorMessage, { key: 'error', error }),\n createElement('input', {\n key: 'submit',\n type: 'submit',\n style: {\n visibility: 'hidden',\n position: 'absolute'\n }\n }),\n ]\n })\n )\n }\n)\nexport default Form"],"file":"Form.js"}
1
+ {"version":3,"file":"Form.js","names":["Form","ContextProvider","additionalContext","ErrorMessage","resetOnSubmit","row","gap","props","useState","values","fieldValues","setFieldValues","useReducer","validators","validator","fieldValidators","registerFieldValidator","error","setError","valid","setValid","form","createRef","useEffect","current","checkValidity","getFieldValue","path","get","getFieldValues","mapFieldValues","target","Object","keys","reduce","name","set","setFieldValue","value","previousValues","onSubmit","e","additionalValues","validate","forEach","setFieldValidated","undefined","interactiveElements","querySelectorAll","setFormDisabled","disabled","x","reset","checkResultForError","result","success","message","then","preventDefault","stopPropagation","classNames","className","push","mergedAdditionalContext","property","createElement","join","noValidate","ref","style","children","key","type","visibility","position"],"sources":["../src/Form.js"],"sourcesContent":["import { createElement, createRef, useEffect, useReducer, useState } from 'react'\nimport { get, set } from 'object-path-immutable'\n\nconst Form = (ContextProvider, additionalContext = {}, ErrorMessage) => (\n ({ resetOnSubmit, row, gap, ...props }) => {\n const [fieldValues, setFieldValues] = useState(props.values || {})\n const [fieldValidators, registerFieldValidator] = useReducer((validators, validator) => [...validators, validator], [])\n const [error, setError] = useState()\n const [valid, setValid] = useState()\n const form = createRef()\n\n useEffect(() => {\n if(form.current) {\n setValid(form.current.checkValidity())\n }\n }, [form.current])\n\n const getFieldValue = path => get(fieldValues, path)\n const getFieldValues = () => fieldValues\n const mapFieldValues = target => Object.keys(target).reduce(\n (values, name) => set(values, name, target[name]),\n {}\n )\n\n const setFieldValue = (path, value) => {\n setFieldValues(previousValues => set(previousValues, path, value))\n if(form.current) {\n setValid(form.current.checkValidity())\n }\n }\n\n const onSubmit = (e, { additionalValues, validate } = {}) => {\n if(validate !== false) {\n fieldValidators.forEach(setFieldValidated => setFieldValidated())\n }\n\n if((validate === false || form.current.checkValidity()) && props.onSubmit) {\n setError(undefined)\n\n const interactiveElements = form.current.querySelectorAll('input,button,textarea,select')\n const setFormDisabled = disabled => interactiveElements.forEach(x => x.disabled = disabled)\n\n const reset = () => {\n if(resetOnSubmit) {\n setFieldValues(props.values || {})\n }\n }\n\n try {\n const checkResultForError = result => {\n if(result && (result.success === false || result.error)) {\n setError(result.error || result.message || 'Form submission failed')\n } else {\n reset()\n }\n return result\n }\n\n const result = props.onSubmit(mapFieldValues({ ...fieldValues, ...additionalValues }))\n if(result && typeof result.then === 'function') {\n setFormDisabled(true)\n result\n .then(checkResultForError)\n .catch(setError)\n .finally(() => setFormDisabled(false))\n } else {\n reset()\n }\n } catch(error) {\n setError(error)\n }\n }\n\n e && e.preventDefault && e.preventDefault()\n e && e.stopPropagation && e.stopPropagation()\n }\n\n const classNames = ['react-forms', props.className]\n if(row) {\n classNames.push('react-forms-row')\n }\n\n const mergedAdditionalContext = Object.keys(additionalContext).reduce(\n (result, property) => ({ ...result, [property]: props[property] || additionalContext[property] }),\n {}\n )\n\n return (\n createElement('form', {\n ...props,\n className: classNames.join(' '),\n noValidate: true,\n onSubmit: onSubmit,\n ref: form,\n ...(gap && { style: { gap } }),\n children: [\n createElement(ContextProvider, {\n ...props,\n key: 'context',\n value: {\n registerFieldValidator,\n setFieldValue,\n getFieldValue,\n getFieldValues,\n onSubmit,\n valid,\n ...mergedAdditionalContext\n }\n }),\n error && createElement(ErrorMessage, { key: 'error', error }),\n createElement('input', {\n key: 'submit',\n type: 'submit',\n style: {\n visibility: 'hidden',\n position: 'absolute'\n }\n }),\n ]\n })\n )\n }\n)\nexport default Form"],"mappings":"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"}
package/dist/Group.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Group.js"],"names":["Group","formContext","name","props","Error","groups","context","Provider","value","concat"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAAAC,WAAW;AAAA,SAAI,gBAAwB;AAAA,QAArBC,IAAqB,QAArBA,IAAqB;AAAA,QAAZC,KAAY;;AACnD,QAAI,CAACD,IAAL,EAAW,MAAM,IAAIE,KAAJ,CAAU,iDAAV,CAAN;;AACX,sBAAoC,uBAAWH,WAAX,CAApC;AAAA,yCAAQI,MAAR;AAAA,QAAQA,MAAR,mCAAiB,EAAjB;AAAA,QAAwBC,OAAxB;;AAEA,wBAAO,0BAAcL,WAAW,CAACM,QAA1B,kCACFJ,KADE;AAELK,MAAAA,KAAK,kCACAF,OADA;AAEHD,QAAAA,MAAM,EAAEA,MAAM,CAACI,MAAP,CAAcP,IAAd;AAFL;AAFA,OAAP;AAOD,GAXwB;AAAA,CAAzB;;eAYeF,K","sourcesContent":["import { createElement, useContext } from 'react'\n\nconst Group = formContext => ({ name, ...props }) => {\n if (!name) throw new Error(\"You must provide a name prop to form components\")\n const { groups = [], ...context } = useContext(formContext)\n\n return createElement(formContext.Provider, {\n ...props,\n value: {\n ...context,\n groups: groups.concat(name)\n }\n })\n}\nexport default Group"],"file":"Group.js"}
1
+ {"version":3,"file":"Group.js","names":["Group","formContext","name","props","Error","useContext","groups","context","createElement","Provider","value","concat"],"sources":["../src/Group.js"],"sourcesContent":["import { createElement, useContext } from 'react'\n\nconst Group = formContext => ({ name, ...props }) => {\n if (!name) throw new Error(\"You must provide a name prop to form components\")\n const { groups = [], ...context } = useContext(formContext)\n\n return createElement(formContext.Provider, {\n ...props,\n value: {\n ...context,\n groups: groups.concat(name)\n }\n })\n}\nexport default Group"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,CAAAC,WAAW;EAAA,OAAI,gBAAwB;IAAA,IAArBC,IAAqB,QAArBA,IAAqB;IAAA,IAAZC,KAAY;;IACnD,IAAI,CAACD,IAAL,EAAW,MAAM,IAAIE,KAAJ,CAAU,iDAAV,CAAN;;IACX,kBAAoC,IAAAC,iBAAA,EAAWJ,WAAX,CAApC;IAAA,qCAAQK,MAAR;IAAA,IAAQA,MAAR,mCAAiB,EAAjB;IAAA,IAAwBC,OAAxB;;IAEA,oBAAO,IAAAC,oBAAA,EAAcP,WAAW,CAACQ,QAA1B,kCACFN,KADE;MAELO,KAAK,kCACAH,OADA;QAEHD,MAAM,EAAEA,MAAM,CAACK,MAAP,CAAcT,IAAd;MAFL;IAFA,GAAP;EAOD,CAXwB;AAAA,CAAzB;;eAYeF,K"}
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "FormProvider", {
10
10
  return _Form["default"];
11
11
  }
12
12
  });
13
- exports.wrapSubmit = exports.wrapInput = exports.useFormValues = exports.createRawConsumer = exports.context = exports.Textarea = exports.Submit = exports.Select = exports.Input = exports.Group = void 0;
13
+ exports.wrapSubmit = exports.wrapInput = exports.useFormValues = exports.useForm = exports.createRawConsumer = exports.context = exports.Textarea = exports.Submit = exports.Select = exports.Input = exports.Group = void 0;
14
14
 
15
15
  var _react = require("react");
16
16
 
@@ -26,6 +26,8 @@ var _input = _interopRequireDefault(require("./input"));
26
26
 
27
27
  var _useFormValues = _interopRequireDefault(require("./useFormValues"));
28
28
 
29
+ var _useForm = _interopRequireDefault(require("./useForm"));
30
+
29
31
  require("./styles");
30
32
 
31
33
  var _excluded = ["registerFieldValidator", "setFieldValue", "getFieldValue"];
@@ -111,4 +113,6 @@ var wrapSubmit = function wrapSubmit(component) {
111
113
  exports.wrapSubmit = wrapSubmit;
112
114
  var useFormValues = (0, _useFormValues["default"])(context);
113
115
  exports.useFormValues = useFormValues;
116
+ var useForm = (0, _useForm["default"])(context);
117
+ exports.useForm = useForm;
114
118
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["context","createConsumer","ConsumerComponent","props","Consumer","children","createRawConsumer","registerFieldValidator","setFieldValue","getFieldValue","Form","Provider","ErrorMessage","Group","Submit","Input","Textarea","Select","type","wrapInput","component","options","wrapSubmit","useFormValues"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEO,IAAMA,OAAO,gBAAG,0BAAc,EAAd,CAAhB;;;AAEP,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,iBAAiB;AAAA,SAAI,UAAAC,KAAK;AAAA,wBAAI,0BACnDH,OAAO,CAACI,QAD2C,EAEnD;AAAEC,MAAAA,QAAQ,EAAE,kBAAAL,OAAO;AAAA,4BAAI,0BAAcE,iBAAd,kCAAsCF,OAAtC,GAAkDG,KAAlD,EAAJ;AAAA;AAAnB,KAFmD,CAAJ;AAAA,GAAT;AAAA,CAAxC;;AAKO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAJ,iBAAiB;AAAA,SAChD,UAAAC,KAAK;AAAA,wBAAI,0BACPH,OAAO,CAACI,QADD,EAEP;AAAEC,MAAAA,QAAQ,EAAE;AAAA,YAAGE,sBAAH,QAAGA,sBAAH;AAAA,YAA2BC,aAA3B,QAA2BA,aAA3B;AAAA,YAA0CC,aAA1C,QAA0CA,aAA1C;AAAA,YAA4DT,OAA5D;;AAAA,4BACV,0BAAcE,iBAAd,kCAAsCF,OAAtC,GAAkDG,KAAlD,EADU;AAAA;AAAZ,KAFO,CAAJ;AAAA,GAD2C;AAAA,CAA3C;;;AASA,IAAMO,IAAI,GAAG,sBAAaV,OAAO,CAACW,QAArB,EAA+B,EAA/B,EAAmCC,wBAAnC,CAAb;;AACA,IAAMC,KAAK,GAAG,uBAAcb,OAAd,CAAd;;AACA,IAAMc,MAAM,GAAGb,cAAc,CAAC,wBAAO,UAAAE,KAAK;AAAA,sBAAI,0BAAc,QAAd,EAAwBA,KAAxB,CAAJ;AAAA,CAAZ,CAAD,CAA7B;;AAEA,IAAMY,KAAK,GAAGd,cAAc,CAAC,uBAAM,UAAAE,KAAK;AAAA,sBAAI,0BAAc,OAAd,EAAuBA,KAAvB,CAAJ;AAAA,CAAX,CAAD,CAA5B;;AACA,IAAMa,QAAQ,GAAGf,cAAc,CAAC,uBAAM,UAAAE,KAAK;AAAA,sBAAI,0BAAc,UAAd,EAA0BA,KAA1B,CAAJ;AAAA,CAAX,CAAD,CAA/B;;AACA,IAAMc,MAAM,GAAGhB,cAAc,CAAC,uBAAM,UAAAE,KAAK;AAAA,sBAAI,0BAAc,QAAd,EAAwBA,KAAxB,CAAJ;AAAA,CAAX,EAA+C;AAAEe,EAAAA,IAAI,EAAE;AAAR,CAA/C,CAAD,CAA7B;;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,SAAD,EAAYC,OAAZ;AAAA,SAAwBpB,cAAc,CAAC,uBAAM,UAAAE,KAAK;AAAA,wBAAI,0BAAciB,SAAd,EAAyBjB,KAAzB,CAAJ;AAAA,GAAX,EAAgDkB,OAAhD,CAAD,CAAtC;AAAA,CAAlB;;;;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAF,SAAS;AAAA,SAAInB,cAAc,CAAC,wBAAO,UAAAE,KAAK;AAAA,wBAAI,0BAAciB,SAAd,EAAyBjB,KAAzB,CAAJ;AAAA,GAAZ,CAAD,CAAlB;AAAA,CAA5B;;;AAEA,IAAMoB,aAAa,GAAG,+BAAkBvB,OAAlB,CAAtB","sourcesContent":["import { createContext, createElement } from 'react'\nimport FormProvider from './Form'\nimport GroupProvider from './Group'\nimport ErrorMessage from './ErrorMessage'\nimport submit from './submit'\nimport input from './input'\nimport useFormValuesImpl from './useFormValues'\nimport './styles'\n\nexport const context = createContext({})\n\nconst createConsumer = ConsumerComponent => props => createElement(\n context.Consumer,\n { children: context => createElement(ConsumerComponent, { ...context, ...props }) }\n)\n\nexport const createRawConsumer = ConsumerComponent => (\n props => createElement(\n context.Consumer,\n { children: ({ registerFieldValidator, setFieldValue, getFieldValue, ...context }) => (\n createElement(ConsumerComponent, { ...context, ...props })\n )}\n )\n)\n\nexport const Form = FormProvider(context.Provider, {}, ErrorMessage)\nexport const Group = GroupProvider(context)\nexport const Submit = createConsumer(submit(props => createElement('button', props)))\n\nexport const Input = createConsumer(input(props => createElement('input', props)))\nexport const Textarea = createConsumer(input(props => createElement('textarea', props)))\nexport const Select = createConsumer(input(props => createElement('select', props), { type: 'select' }))\n\nexport const wrapInput = (component, options) => createConsumer(input(props => createElement(component, props), options))\nexport const wrapSubmit = component => createConsumer(submit(props => createElement(component, props)))\n\nexport const useFormValues = useFormValuesImpl(context)\n\nexport { FormProvider }"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["context","createContext","createConsumer","ConsumerComponent","props","createElement","Consumer","children","createRawConsumer","registerFieldValidator","setFieldValue","getFieldValue","Form","FormProvider","Provider","ErrorMessage","Group","GroupProvider","Submit","submit","Input","input","Textarea","Select","type","wrapInput","component","options","wrapSubmit","useFormValues","useFormValuesImpl","useForm","useFormImpl"],"sources":["../src/index.js"],"sourcesContent":["import { createContext, createElement } from 'react'\nimport FormProvider from './Form'\nimport GroupProvider from './Group'\nimport ErrorMessage from './ErrorMessage'\nimport submit from './submit'\nimport input from './input'\nimport useFormValuesImpl from './useFormValues'\nimport useFormImpl from './useForm'\nimport './styles'\n\nexport const context = createContext({})\n\nconst createConsumer = ConsumerComponent => props => createElement(\n context.Consumer,\n { children: context => createElement(ConsumerComponent, { ...context, ...props }) }\n)\n\nexport const createRawConsumer = ConsumerComponent => (\n props => createElement(\n context.Consumer,\n { children: ({ registerFieldValidator, setFieldValue, getFieldValue, ...context }) => (\n createElement(ConsumerComponent, { ...context, ...props })\n )}\n )\n)\n\nexport const Form = FormProvider(context.Provider, {}, ErrorMessage)\nexport const Group = GroupProvider(context)\nexport const Submit = createConsumer(submit(props => createElement('button', props)))\n\nexport const Input = createConsumer(input(props => createElement('input', props)))\nexport const Textarea = createConsumer(input(props => createElement('textarea', props)))\nexport const Select = createConsumer(input(props => createElement('select', props), { type: 'select' }))\n\nexport const wrapInput = (component, options) => createConsumer(input(props => createElement(component, props), options))\nexport const wrapSubmit = component => createConsumer(submit(props => createElement(component, props)))\n\nexport const useFormValues = useFormValuesImpl(context)\nexport const useForm = useFormImpl(context)\n\nexport { FormProvider }"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEO,IAAMA,OAAO,gBAAG,IAAAC,oBAAA,EAAc,EAAd,CAAhB;;;AAEP,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,iBAAiB;EAAA,OAAI,UAAAC,KAAK;IAAA,oBAAI,IAAAC,oBAAA,EACnDL,OAAO,CAACM,QAD2C,EAEnD;MAAEC,QAAQ,EAAE,kBAAAP,OAAO;QAAA,oBAAI,IAAAK,oBAAA,EAAcF,iBAAd,kCAAsCH,OAAtC,GAAkDI,KAAlD,EAAJ;MAAA;IAAnB,CAFmD,CAAJ;EAAA,CAAT;AAAA,CAAxC;;AAKO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAL,iBAAiB;EAAA,OAChD,UAAAC,KAAK;IAAA,oBAAI,IAAAC,oBAAA,EACPL,OAAO,CAACM,QADD,EAEP;MAAEC,QAAQ,EAAE;QAAA,IAAGE,sBAAH,QAAGA,sBAAH;QAAA,IAA2BC,aAA3B,QAA2BA,aAA3B;QAAA,IAA0CC,aAA1C,QAA0CA,aAA1C;QAAA,IAA4DX,OAA5D;;QAAA,oBACV,IAAAK,oBAAA,EAAcF,iBAAd,kCAAsCH,OAAtC,GAAkDI,KAAlD,EADU;MAAA;IAAZ,CAFO,CAAJ;EAAA,CAD2C;AAAA,CAA3C;;;AASA,IAAMQ,IAAI,GAAG,IAAAC,gBAAA,EAAab,OAAO,CAACc,QAArB,EAA+B,EAA/B,EAAmCC,wBAAnC,CAAb;;AACA,IAAMC,KAAK,GAAG,IAAAC,iBAAA,EAAcjB,OAAd,CAAd;;AACA,IAAMkB,MAAM,GAAGhB,cAAc,CAAC,IAAAiB,kBAAA,EAAO,UAAAf,KAAK;EAAA,oBAAI,IAAAC,oBAAA,EAAc,QAAd,EAAwBD,KAAxB,CAAJ;AAAA,CAAZ,CAAD,CAA7B;;AAEA,IAAMgB,KAAK,GAAGlB,cAAc,CAAC,IAAAmB,iBAAA,EAAM,UAAAjB,KAAK;EAAA,oBAAI,IAAAC,oBAAA,EAAc,OAAd,EAAuBD,KAAvB,CAAJ;AAAA,CAAX,CAAD,CAA5B;;AACA,IAAMkB,QAAQ,GAAGpB,cAAc,CAAC,IAAAmB,iBAAA,EAAM,UAAAjB,KAAK;EAAA,oBAAI,IAAAC,oBAAA,EAAc,UAAd,EAA0BD,KAA1B,CAAJ;AAAA,CAAX,CAAD,CAA/B;;AACA,IAAMmB,MAAM,GAAGrB,cAAc,CAAC,IAAAmB,iBAAA,EAAM,UAAAjB,KAAK;EAAA,oBAAI,IAAAC,oBAAA,EAAc,QAAd,EAAwBD,KAAxB,CAAJ;AAAA,CAAX,EAA+C;EAAEoB,IAAI,EAAE;AAAR,CAA/C,CAAD,CAA7B;;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,SAAD,EAAYC,OAAZ;EAAA,OAAwBzB,cAAc,CAAC,IAAAmB,iBAAA,EAAM,UAAAjB,KAAK;IAAA,oBAAI,IAAAC,oBAAA,EAAcqB,SAAd,EAAyBtB,KAAzB,CAAJ;EAAA,CAAX,EAAgDuB,OAAhD,CAAD,CAAtC;AAAA,CAAlB;;;;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAF,SAAS;EAAA,OAAIxB,cAAc,CAAC,IAAAiB,kBAAA,EAAO,UAAAf,KAAK;IAAA,oBAAI,IAAAC,oBAAA,EAAcqB,SAAd,EAAyBtB,KAAzB,CAAJ;EAAA,CAAZ,CAAD,CAAlB;AAAA,CAA5B;;;AAEA,IAAMyB,aAAa,GAAG,IAAAC,yBAAA,EAAkB9B,OAAlB,CAAtB;;AACA,IAAM+B,OAAO,GAAG,IAAAC,mBAAA,EAAYhC,OAAZ,CAAhB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/injectCss.js"],"names":["injectCss","id","css","document","querySelector","head","getElementsByTagName","style","createElement","type","appendChild","styleSheet","cssText","createTextNode"],"mappings":";;;;;;;AAAe,SAASA,SAAT,CAAmBC,EAAnB,EAAuBC,GAAvB,EAA4B;AACzC,MAAI,CAACA,GAAD,IAAQ,OAAOC,QAAP,KAAoB,WAA5B,IAA2CA,QAAQ,CAACC,aAAT,YAA2BH,EAA3B,EAA/C,EAAiF;AAEjF,MAAMI,IAAI,GAAGF,QAAQ,CAACE,IAAT,IAAiBF,QAAQ,CAACG,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAA9B;AACA,MAAMC,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAuB,OAAvB,CAAd;AACAD,EAAAA,KAAK,CAACN,EAAN,GAAWA,EAAX;AACAM,EAAAA,KAAK,CAACE,IAAN,GAAa,UAAb;AAEAJ,EAAAA,IAAI,CAACK,WAAL,CAAiBH,KAAjB;;AAEA,MAAIA,KAAK,CAACI,UAAV,EAAsB;AACpBJ,IAAAA,KAAK,CAACI,UAAN,CAAiBC,OAAjB,GAA2BV,GAA3B;AACD,GAFD,MAEO;AACLK,IAAAA,KAAK,CAACG,WAAN,CAAkBP,QAAQ,CAACU,cAAT,CAAwBX,GAAxB,CAAlB;AACD;AACF","sourcesContent":["export default function injectCss(id, css) {\n if (!css || typeof document === 'undefined' || document.querySelector(`#${id}`)) return\n\n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n head.appendChild(style)\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n}"],"file":"injectCss.js"}
1
+ {"version":3,"file":"injectCss.js","names":["injectCss","id","css","document","querySelector","head","getElementsByTagName","style","createElement","type","appendChild","styleSheet","cssText","createTextNode"],"sources":["../src/injectCss.js"],"sourcesContent":["export default function injectCss(id, css) {\n if (!css || typeof document === 'undefined' || document.querySelector(`#${id}`)) return\n\n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n head.appendChild(style)\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n}"],"mappings":";;;;;;;AAAe,SAASA,SAAT,CAAmBC,EAAnB,EAAuBC,GAAvB,EAA4B;EACzC,IAAI,CAACA,GAAD,IAAQ,OAAOC,QAAP,KAAoB,WAA5B,IAA2CA,QAAQ,CAACC,aAAT,YAA2BH,EAA3B,EAA/C,EAAiF;EAEjF,IAAMI,IAAI,GAAGF,QAAQ,CAACE,IAAT,IAAiBF,QAAQ,CAACG,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAA9B;EACA,IAAMC,KAAK,GAAGJ,QAAQ,CAACK,aAAT,CAAuB,OAAvB,CAAd;EACAD,KAAK,CAACN,EAAN,GAAWA,EAAX;EACAM,KAAK,CAACE,IAAN,GAAa,UAAb;EAEAJ,IAAI,CAACK,WAAL,CAAiBH,KAAjB;;EAEA,IAAIA,KAAK,CAACI,UAAV,EAAsB;IACpBJ,KAAK,CAACI,UAAN,CAAiBC,OAAjB,GAA2BV,GAA3B;EACD,CAFD,MAEO;IACLK,KAAK,CAACG,WAAN,CAAkBP,QAAQ,CAACU,cAAT,CAAwBX,GAAxB,CAAlB;EACD;AACF"}
package/dist/input.js CHANGED
@@ -15,7 +15,7 @@ var _inputTypes = _interopRequireDefault(require("./inputTypes"));
15
15
 
16
16
  var _throttle2 = _interopRequireDefault(require("./throttle"));
17
17
 
18
- var _excluded = ["type", "value", "checked", "defaultValue", "numeric", "onSubmit", "registerFieldValidator", "setFieldValue", "getFieldValue", "getFieldValues", "submitOnChange", "submitOnBlur", "selectOnFocus", "throttle", "valid"];
18
+ var _excluded = ["type", "value", "checked", "defaultValue", "numeric", "onSubmit", "registerFieldValidator", "setFieldValue", "getFieldValue", "getFieldValues", "submitOnChange", "submitOnBlur", "selectOnFocus", "throttle", "valid", "onValidated"];
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
21
 
@@ -251,6 +251,7 @@ var _default = function _default(render) {
251
251
  selectOnFocus = props.selectOnFocus,
252
252
  _throttle = props.throttle,
253
253
  valid = props.valid,
254
+ onValidated = props.onValidated,
254
255
  passThroughProps = _objectWithoutProperties(props, _excluded);
255
256
 
256
257
  var valueProps = getValueProps({
package/dist/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/input.js"],"names":["nextElementId","id","render","options","Input","props","name","Error","setFieldValue","fieldValidated","setFieldValidated","error","setError","previousValueProp","value","groups","throttle","onSubmit","map","group","submitHandler","isNaN","getFieldValue","registerFieldValidator","setInitialValue","applyValueTransforms","undefined","set","element","document","querySelector","updateValidationState","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"],"mappings":"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","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,\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}"],"file":"input.js"}
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 +1 @@
1
- {"version":3,"sources":["../src/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"],"mappings":"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","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"],"file":"inputTypes.js"}
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":";;;;;;;;;;;;;AAAA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQC,IAAR;EAAA,OAAiB,OAAOD,KAAP,KAAiB,UAAjB,GAA8BA,KAAK,CAACE,KAAN,CAAY,IAAZ,EAAkBD,IAAlB,CAA9B,GAAwDD,KAAzE;AAAA,CAArB;;eAEe,kBAACG,KAAD,EAAQC,OAAR,EAAoB;EACjC,IAAQC,IAAR,GAA+CF,KAA/C,CAAQE,IAAR;EAAA,IAAcC,OAAd,GAA+CH,KAA/C,CAAcG,OAAd;EAAA,IAAuBN,KAAvB,GAA+CG,KAA/C,CAAuBH,KAAvB;EAAA,IAA8BO,YAA9B,GAA+CJ,KAA/C,CAA8BI,YAA9B;;EAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAR,KAAK;IAAA,OAAK,CAACG,KAAK,CAACE,IAAN,KAAe,QAAf,IAA2BF,KAAK,CAACM,OAAlC,KAA8C,CAACC,KAAK,CAAC,CAACV,KAAF,CAApD,IAAgEA,KAAK,KAAK,EAA3E,GAAiF,CAACA,KAAlF,GAA0FA,KAA9F;EAAA,CAAlC;;EAEA,IAAMW,WAAW,GAAG;IAClBC,eAAe,EAAE,+BAAa;MAAA,IAAVC,GAAU,QAAVA,GAAU;;MAC5B,IAAGb,KAAK,KAAKc,SAAb,EAAwB;QACtBD,GAAG,CAACb,KAAD,CAAH;MACD,CAFD,MAEO,IAAIO,YAAY,KAAKO,SAArB,EAAgC;QACrCD,GAAG,CAACN,YAAD,CAAH;MACD,CAFM,MAEA,IAAIH,OAAO,CAACG,YAAR,KAAyBO,SAA7B,EAAwC;QAC7CD,GAAG,CAACd,YAAY,CAACK,OAAO,CAACG,YAAT,EAAuB,CAACJ,KAAD,CAAvB,CAAb,CAAH;MACD,CAFM,MAEA;QACLU,GAAG,CAACC,SAAD,CAAH;MACD;IACF,CAXiB;IAYlBC,cAAc,EAAE,+BAAe;MAAA,IAAZC,KAAY,SAAZA,KAAY;;MAC7B,IAAIA,KAAK,CAACC,MAAN,IAAgBD,KAAK,CAACC,MAAN,CAAajB,KAAb,KAAuBc,SAA3C,EAAsD;QACpD,OAAOE,KAAK,CAACC,MAAN,CAAajB,KAApB;MACD,CAFD,MAEO,IAAIgB,KAAK,CAAChB,KAAN,KAAgBc,SAApB,EAA+B;QACpC,OAAOE,KAAK,CAAChB,KAAb;MACD,CAFM,MAEA;QACL,MAAM,IAAIkB,KAAJ,CAAU,4CAAV,CAAN;MACD;IACF,CApBiB;IAqBlBC,aAAa,EAAE;MAAA,IAAGC,YAAH,SAAGA,YAAH;MAAA,OAAuB;QACpCpB,KAAK,EAAEoB,YAAY,KAAKN,SAAjB,GAA6B,EAA7B,GAAkCM;MADL,CAAvB;IAAA;EArBG,CAApB;;EA0BA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACf,OAAD,EAAUN,KAAV;IAAA,OAAqBA,KAAK,KAAKc,SAAV,GACrCQ,OAAO,CAAChB,OAAD,CAD8B,GAErCA,OAAO,GAAGN,KAAH,GAAWc,SAFF;EAAA,CAAtB;;EAKA,IAAMS,KAAK,GAAG;IACZC,IAAI,EAAEb,WADM;IAEZc,KAAK,EAAE;MACLb,eAAe,EAAE;QAAA,IAAGC,GAAH,SAAGA,GAAH;QAAA,OAAaP,OAAO,IAAIO,GAAG,CAACb,KAAD,CAA3B;MAAA,CADZ;MAELe,cAAc,EAAE;QAAA,OAAMf,KAAN;MAAA,CAFX;MAGLmB,aAAa,EAAE;QAAA,IAAGC,YAAH,SAAGA,YAAH;QAAA,OAAuB;UAAEd,OAAO,EAAEE,oBAAoB,CAACR,KAAD,CAApB,KAAgCoB;QAA3C,CAAvB;MAAA;IAHV,CAFK;IAOZM,QAAQ,EAAE;MACRd,eAAe,EAAE;QAAA,IAAGC,GAAH,SAAGA,GAAH;QAAA,OAAaA,GAAG,CAACQ,aAAa,CAACf,OAAD,EAAUN,KAAV,CAAd,CAAhB;MAAA,CADT;MAERe,cAAc,EAAE;QAAA,IAAGC,KAAH,SAAGA,KAAH;QAAA,OAAeK,aAAa,CAACL,KAAK,CAACC,MAAN,CAAaX,OAAd,EAAuBN,KAAvB,CAA5B;MAAA,CAFR;MAGRmB,aAAa,EAAE;QAAA,IAAGC,YAAH,SAAGA,YAAH;QAAA,OAAuB;UAAEd,OAAO,EAAEgB,OAAO,CAACF,YAAD;QAAlB,CAAvB;MAAA;IAHP,CAPE;IAYZO,MAAM,kCACDhB,WADC;MAEJC,eAAe,EAAE,gCAAsB;QAAA,IAAnBC,GAAmB,SAAnBA,GAAmB;QAAA,IAAde,OAAc,SAAdA,OAAc;QACrCf,GAAG,CAACb,KAAK,IAAIO,YAAT,IACDJ,KAAK,CAACC,OAAN,IAAiBD,KAAK,CAACC,OAAN,CAAcyB,MAAd,GAAuB,CAAxC,IAA6C1B,KAAK,CAACC,OAAN,CAAc,CAAd,CAD5C,IACiE;QACnEwB,OAAO,IAAIA,OAAO,CAAC5B,KAFjB,IAE0B,EAF3B,CAE8B;QAF9B,CAAH;MAID;IAPG;EAZM,CAAd;EAuBA,uCAAauB,KAAK,CAACnB,OAAO,CAACC,IAAR,IAAgBA,IAAjB,CAAL,IAA+BkB,KAAK,CAACC,IAAlD;IAAyDhB,oBAAoB,EAApBA;EAAzD;AACD,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles.js"],"names":[],"mappings":";;AAAA;;;;AAEA,2BAAU,oBAAV","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"],"file":"styles.js"}
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 +1 @@
1
- {"version":3,"sources":["../src/submit.js"],"names":["render","Submit","props","onSubmit","Error","registerFieldValidator","setFieldValue","getFieldValue","getFieldValues","valid","validate","disableInvalid","values","propsToPass","executing","setExecuting","onClick","e","result","additionalValues","finalProps","disabled"],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAEe,kBAAAA,MAAM;AAAA,SAAI,SAASC,MAAT,CAAgBC,KAAhB,EAAuB;AAC9C,QAAG,CAACA,KAAK,CAACC,QAAV,EAAoB,MAAM,IAAIC,KAAJ,CAAU,6DAAV,CAAN;;AAEpB,QACED,QADF,GAGID,KAHJ,CACEC,QADF;AAAA,QACYE,sBADZ,GAGIH,KAHJ,CACYG,sBADZ;AAAA,QACoCC,aADpC,GAGIJ,KAHJ,CACoCI,aADpC;AAAA,QACmDC,aADnD,GAGIL,KAHJ,CACmDK,aADnD;AAAA,QACkEC,cADlE,GAGIN,KAHJ,CACkEM,cADlE;AAAA,QAEEC,KAFF,GAGIP,KAHJ,CAEEO,KAFF;AAAA,QAESC,QAFT,GAGIR,KAHJ,CAESQ,QAFT;AAAA,QAEmBC,cAFnB,GAGIT,KAHJ,CAEmBS,cAFnB;AAAA,QAEmCC,MAFnC,GAGIV,KAHJ,CAEmCU,MAFnC;AAAA,QAE8CC,WAF9C,4BAGIX,KAHJ,aAH8C,CAQ9C;;;AACA,oBAAkC,qBAAS,KAAT,CAAlC;AAAA;AAAA,QAAOY,SAAP;AAAA,QAAkBC,YAAlB;;AAEA,QAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,CAAC,EAAI;AACnB,UAAMC,MAAM,GAAGf,QAAQ,CAACc,CAAD,EAAI;AAAEP,QAAAA,QAAQ,EAARA,QAAF;AAAYS,QAAAA,gBAAgB,EAAEP;AAA9B,OAAJ,CAAvB;;AACA,UAAGM,MAAM,IAAIA,MAAM,WAAhB,IAA4B,OAAOA,MAAM,WAAb,KAA0B,UAAzD,EAAqE;AACnEH,QAAAA,YAAY,CAAC,IAAD,CAAZ;AACAG,QAAAA,MAAM,WAAN,CAAe;AAAA,iBAAMH,YAAY,CAAC,KAAD,CAAlB;AAAA,SAAf;AACD;AACF,KAND;;AAQA,QAAMK,UAAU,mCACXP,WADW;AAEdG,MAAAA,OAAO,EAAPA,OAFc;AAGdK,MAAAA,QAAQ,EAAEnB,KAAK,CAACmB,QAAN,IAAkBP,SAAlB,IAAgCH,cAAc,IAAI,CAACF;AAH/C,MAAhB;;AAMA,WAAOT,MAAM,CAACoB,UAAD,CAAb;AACD,GA1BoB;AAAA,C","sourcesContent":["import React, { useState } from 'react'\n\nexport default render => function Submit(props) {\n if(!props.onSubmit) throw new Error('Button components must be contained within a Form component')\n\n const {\n onSubmit, registerFieldValidator, setFieldValue, getFieldValue, getFieldValues,\n valid, validate, disableInvalid, values, ...propsToPass\n } = props\n\n // TODO: set executing when form is triggered by enter key\n const [executing, setExecuting] = useState(false)\n\n const onClick = e => {\n const result = onSubmit(e, { validate, additionalValues: values })\n if(result && result.finally && typeof result.finally === 'function') {\n setExecuting(true)\n result.finally(() => setExecuting(false))\n }\n }\n\n const finalProps = {\n ...propsToPass,\n onClick,\n disabled: props.disabled || executing || (disableInvalid && !valid)\n }\n\n return render(finalProps)\n}\n"],"file":"submit.js"}
1
+ {"version":3,"file":"submit.js","names":["render","Submit","props","onSubmit","Error","registerFieldValidator","setFieldValue","getFieldValue","getFieldValues","valid","validate","disableInvalid","values","propsToPass","useState","executing","setExecuting","onClick","e","result","additionalValues","finalProps","disabled"],"sources":["../src/submit.js"],"sourcesContent":["import React, { useState } from 'react'\n\nexport default render => function Submit(props) {\n if(!props.onSubmit) throw new Error('Button components must be contained within a Form component')\n\n const {\n onSubmit, registerFieldValidator, setFieldValue, getFieldValue, getFieldValues,\n valid, validate, disableInvalid, values, ...propsToPass\n } = props\n\n // TODO: set executing when form is triggered by enter key\n const [executing, setExecuting] = useState(false)\n\n const onClick = e => {\n const result = onSubmit(e, { validate, additionalValues: values })\n if(result && result.finally && typeof result.finally === 'function') {\n setExecuting(true)\n result.finally(() => setExecuting(false))\n }\n }\n\n const finalProps = {\n ...propsToPass,\n onClick,\n disabled: props.disabled || executing || (disableInvalid && !valid)\n }\n\n return render(finalProps)\n}\n"],"mappings":";;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAEe,kBAAAA,MAAM;EAAA,OAAI,SAASC,MAAT,CAAgBC,KAAhB,EAAuB;IAC9C,IAAG,CAACA,KAAK,CAACC,QAAV,EAAoB,MAAM,IAAIC,KAAJ,CAAU,6DAAV,CAAN;;IAEpB,IACED,QADF,GAGID,KAHJ,CACEC,QADF;IAAA,IACYE,sBADZ,GAGIH,KAHJ,CACYG,sBADZ;IAAA,IACoCC,aADpC,GAGIJ,KAHJ,CACoCI,aADpC;IAAA,IACmDC,aADnD,GAGIL,KAHJ,CACmDK,aADnD;IAAA,IACkEC,cADlE,GAGIN,KAHJ,CACkEM,cADlE;IAAA,IAEEC,KAFF,GAGIP,KAHJ,CAEEO,KAFF;IAAA,IAESC,QAFT,GAGIR,KAHJ,CAESQ,QAFT;IAAA,IAEmBC,cAFnB,GAGIT,KAHJ,CAEmBS,cAFnB;IAAA,IAEmCC,MAFnC,GAGIV,KAHJ,CAEmCU,MAFnC;IAAA,IAE8CC,WAF9C,4BAGIX,KAHJ,aAH8C,CAQ9C;;;IACA,gBAAkC,IAAAY,eAAA,EAAS,KAAT,CAAlC;IAAA;IAAA,IAAOC,SAAP;IAAA,IAAkBC,YAAlB;;IAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,CAAC,EAAI;MACnB,IAAMC,MAAM,GAAGhB,QAAQ,CAACe,CAAD,EAAI;QAAER,QAAQ,EAARA,QAAF;QAAYU,gBAAgB,EAAER;MAA9B,CAAJ,CAAvB;;MACA,IAAGO,MAAM,IAAIA,MAAM,WAAhB,IAA4B,OAAOA,MAAM,WAAb,KAA0B,UAAzD,EAAqE;QACnEH,YAAY,CAAC,IAAD,CAAZ;QACAG,MAAM,WAAN,CAAe;UAAA,OAAMH,YAAY,CAAC,KAAD,CAAlB;QAAA,CAAf;MACD;IACF,CAND;;IAQA,IAAMK,UAAU,mCACXR,WADW;MAEdI,OAAO,EAAPA,OAFc;MAGdK,QAAQ,EAAEpB,KAAK,CAACoB,QAAN,IAAkBP,SAAlB,IAAgCJ,cAAc,IAAI,CAACF;IAH/C,EAAhB;;IAMA,OAAOT,MAAM,CAACqB,UAAD,CAAb;EACD,CA1BoB;AAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/throttle.js"],"names":["target","delay","timeout","args","clearTimeout","setTimeout"],"mappings":";;;;;;;eAAe,kBAACA,MAAD,EAAyB;AAAA,MAAhBC,KAAgB,uEAAR,GAAQ;AACtC,MAAIC,OAAJ;AAEA,SAAO,YAAa;AAAA,sCAATC,IAAS;AAATA,MAAAA,IAAS;AAAA;;AAClBC,IAAAA,YAAY,CAACF,OAAD,CAAZ;AACAA,IAAAA,OAAO,GAAGG,UAAU,CAClB;AAAA,aAAML,MAAM,MAAN,SAAUG,IAAV,CAAN;AAAA,KADkB,EAElBF,KAFkB,CAApB;AAID,GAND;AAOD,C","sourcesContent":["export default (target, delay = 200) => {\n let timeout\n\n return (...args) => {\n clearTimeout(timeout)\n timeout = setTimeout(\n () => target(...args),\n delay\n )\n }\n}"],"file":"throttle.js"}
1
+ {"version":3,"file":"throttle.js","names":["target","delay","timeout","args","clearTimeout","setTimeout"],"sources":["../src/throttle.js"],"sourcesContent":["export default (target, delay = 200) => {\n let timeout\n\n return (...args) => {\n clearTimeout(timeout)\n timeout = setTimeout(\n () => target(...args),\n delay\n )\n }\n}"],"mappings":";;;;;;;eAAe,kBAACA,MAAD,EAAyB;EAAA,IAAhBC,KAAgB,uEAAR,GAAQ;EACtC,IAAIC,OAAJ;EAEA,OAAO,YAAa;IAAA,kCAATC,IAAS;MAATA,IAAS;IAAA;;IAClBC,YAAY,CAACF,OAAD,CAAZ;IACAA,OAAO,GAAGG,UAAU,CAClB;MAAA,OAAML,MAAM,MAAN,SAAUG,IAAV,CAAN;IAAA,CADkB,EAElBF,KAFkB,CAApB;EAID,CAND;AAOD,C"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _default = function _default(context) {
11
+ return function useFormValues() {
12
+ return {
13
+ submit: function submit(options) {
14
+ return (0, _react.useContext)(context).onSubmit(undefined, options);
15
+ }
16
+ };
17
+ };
18
+ };
19
+
20
+ exports["default"] = _default;
21
+ //# sourceMappingURL=useForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForm.js","names":["context","useFormValues","submit","options","useContext","onSubmit","undefined"],"sources":["../src/useForm.js"],"sourcesContent":["import { useContext } from 'react'\n\nexport default context => function useFormValues() {\n return {\n submit: options => useContext(context).onSubmit(undefined, options)\n }\n}"],"mappings":";;;;;;;AAAA;;eAEe,kBAAAA,OAAO;EAAA,OAAI,SAASC,aAAT,GAAyB;IACjD,OAAO;MACLC,MAAM,EAAE,gBAAAC,OAAO;QAAA,OAAI,IAAAC,iBAAA,EAAWJ,OAAX,EAAoBK,QAApB,CAA6BC,SAA7B,EAAwCH,OAAxC,CAAJ;MAAA;IADV,CAAP;EAGD,CAJqB;AAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/useFormValues.js"],"names":["context","useFormValues","getFieldValues"],"mappings":";;;;;;;AAAA;;eAEe,kBAAAA,OAAO;AAAA,SAAI,SAASC,aAAT,GAAyB;AACjD,WAAO,uBAAWD,OAAX,EAAoBE,cAApB,EAAP;AACD,GAFqB;AAAA,C","sourcesContent":["import { useContext } from 'react'\n\nexport default context => function useFormValues() {\n return useContext(context).getFieldValues()\n}"],"file":"useFormValues.js"}
1
+ {"version":3,"file":"useFormValues.js","names":["context","useFormValues","useContext","getFieldValues"],"sources":["../src/useFormValues.js"],"sourcesContent":["import { useContext } from 'react'\n\nexport default context => function useFormValues() {\n return useContext(context).getFieldValues()\n}"],"mappings":";;;;;;;AAAA;;eAEe,kBAAAA,OAAO;EAAA,OAAI,SAASC,aAAT,GAAyB;IACjD,OAAO,IAAAC,iBAAA,EAAWF,OAAX,EAAoBG,cAApB,EAAP;EACD,CAFqB;AAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/usePrevious.js"],"names":["usePrevious","value","ref","current"],"mappings":";;;;;;;AAAA;;AAEe,SAASA,WAAT,CAAqBC,KAArB,EAA4B;AACzC,MAAMC,GAAG,GAAG,oBAAZ;AACA,wBAAU,YAAM;AACdA,IAAAA,GAAG,CAACC,OAAJ,GAAcF,KAAd;AACD,GAFD;AAGA,SAAOC,GAAG,CAACC,OAAX;AACD","sourcesContent":["import { useRef, useEffect } from 'react'\n\nexport default function usePrevious(value) {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}"],"file":"usePrevious.js"}
1
+ {"version":3,"file":"usePrevious.js","names":["usePrevious","value","ref","useRef","useEffect","current"],"sources":["../src/usePrevious.js"],"sourcesContent":["import { useRef, useEffect } from 'react'\n\nexport default function usePrevious(value) {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}"],"mappings":";;;;;;;AAAA;;AAEe,SAASA,WAAT,CAAqBC,KAArB,EAA4B;EACzC,IAAMC,GAAG,GAAG,IAAAC,aAAA,GAAZ;EACA,IAAAC,gBAAA,EAAU,YAAM;IACdF,GAAG,CAACG,OAAJ,GAAcJ,KAAd;EACD,CAFD;EAGA,OAAOC,GAAG,CAACG,OAAX;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/useUpdate.js"],"names":["useUpdate","hook","inputs","didMountRef","current"],"mappings":";;;;;;;AAAA;;AAEe,SAASA,SAAT,CAAmBC,IAAnB,EAAyBC,MAAzB,EAAiC;AAC9C,MAAMC,WAAW,GAAG,mBAAO,KAAP,CAApB;AAEA,wBAAU,YAAM;AACd,QAAIA,WAAW,CAACC,OAAhB,EACEH,IAAI,GADN,KAGEE,WAAW,CAACC,OAAZ,GAAsB,IAAtB;AACH,GALD,EAKGF,MALH;AAMD","sourcesContent":["import { useRef, useEffect } from 'react'\n\nexport default function useUpdate(hook, inputs) {\n const didMountRef = useRef(false)\n\n useEffect(() => {\n if (didMountRef.current)\n hook()\n else\n didMountRef.current = true\n }, inputs)\n}"],"file":"useUpdate.js"}
1
+ {"version":3,"file":"useUpdate.js","names":["useUpdate","hook","inputs","didMountRef","useRef","useEffect","current"],"sources":["../src/useUpdate.js"],"sourcesContent":["import { useRef, useEffect } from 'react'\n\nexport default function useUpdate(hook, inputs) {\n const didMountRef = useRef(false)\n\n useEffect(() => {\n if (didMountRef.current)\n hook()\n else\n didMountRef.current = true\n }, inputs)\n}"],"mappings":";;;;;;;AAAA;;AAEe,SAASA,SAAT,CAAmBC,IAAnB,EAAyBC,MAAzB,EAAiC;EAC9C,IAAMC,WAAW,GAAG,IAAAC,aAAA,EAAO,KAAP,CAApB;EAEA,IAAAC,gBAAA,EAAU,YAAM;IACd,IAAIF,WAAW,CAACG,OAAhB,EACEL,IAAI,GADN,KAGEE,WAAW,CAACG,OAAZ,GAAsB,IAAtB;EACH,CALD,EAKGJ,MALH;AAMD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danderson00/react-forms",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "description": "Ultra simple, stateless, validated forms for use in React function components",
5
5
  "main": "dist/index.js",
6
6
  "module": "src/index.js",
package/src/index.js CHANGED
@@ -5,6 +5,7 @@ import ErrorMessage from './ErrorMessage'
5
5
  import submit from './submit'
6
6
  import input from './input'
7
7
  import useFormValuesImpl from './useFormValues'
8
+ import useFormImpl from './useForm'
8
9
  import './styles'
9
10
 
10
11
  export const context = createContext({})
@@ -35,5 +36,6 @@ export const wrapInput = (component, options) => createConsumer(input(props => c
35
36
  export const wrapSubmit = component => createConsumer(submit(props => createElement(component, props)))
36
37
 
37
38
  export const useFormValues = useFormValuesImpl(context)
39
+ export const useForm = useFormImpl(context)
38
40
 
39
41
  export { FormProvider }
package/src/input.js CHANGED
@@ -142,7 +142,7 @@ export default (render, options = {}) => function Input(props) {
142
142
  const {
143
143
  type, value, checked, defaultValue, numeric,
144
144
  onSubmit, registerFieldValidator, setFieldValue, getFieldValue, getFieldValues,
145
- submitOnChange, submitOnBlur, selectOnFocus, throttle, valid,
145
+ submitOnChange, submitOnBlur, selectOnFocus, throttle, valid, onValidated,
146
146
  ...passThroughProps
147
147
  } = props
148
148
  const valueProps = getValueProps({ currentValue: getFieldValue(name) })
package/src/useForm.js ADDED
@@ -0,0 +1,7 @@
1
+ import { useContext } from 'react'
2
+
3
+ export default context => function useFormValues() {
4
+ return {
5
+ submit: options => useContext(context).onSubmit(undefined, options)
6
+ }
7
+ }
package/dist/fields.js DELETED
@@ -1,70 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Text = exports.RadioButton = exports.Radio = exports.Checkbox = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _index = require("./index");
11
-
12
- var _excluded = ["label", "className"],
13
- _excluded2 = ["values", "labels"];
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
-
17
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
-
19
- 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; }
20
-
21
- 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; }
22
-
23
- var base = function base(type, render) {
24
- return function (_ref) {
25
- var label = _ref.label,
26
- className = _ref.className,
27
- inputProps = _objectWithoutProperties(_ref, _excluded);
28
-
29
- return /*#__PURE__*/_react["default"].createElement("div", {
30
- className: "".concat(type, " ").concat(className)
31
- }, /*#__PURE__*/_react["default"].createElement("label", null, label), render(inputProps));
32
- };
33
- };
34
-
35
- var Text = base('Text', function (props) {
36
- return props.multiline ? /*#__PURE__*/_react["default"].createElement(_index.Textarea, props) : /*#__PURE__*/_react["default"].createElement(_index.Input, props);
37
- });
38
- exports.Text = Text;
39
- var Checkbox = base('Checkbox', function (props) {
40
- return /*#__PURE__*/_react["default"].createElement(_index.Input, _extends({}, props, {
41
- type: "checkbox"
42
- }));
43
- });
44
- exports.Checkbox = Checkbox;
45
- var RadioButton = base('RadioButton', function (props) {
46
- return /*#__PURE__*/_react["default"].createElement(_index.Input, _extends({}, props, {
47
- type: "radio"
48
- }));
49
- });
50
- exports.RadioButton = RadioButton;
51
- var Radio = base('Radio', function (_ref2) {
52
- var values = _ref2.values,
53
- labels = _ref2.labels,
54
- props = _objectWithoutProperties(_ref2, _excluded2);
55
-
56
- return values.map(function (value, index) {
57
- return /*#__PURE__*/_react["default"].createElement(RadioButton, _extends({}, props, {
58
- value: value,
59
- label: labels && labels[index] || value
60
- }));
61
- });
62
- }); //
63
- // export const Select = base('Select', ({ values, labels, ...props }) =>
64
- // <Select {...props}>
65
- // {values.map((value, index) => <option value={value}>{(labels && labels[index]) || value}</option>)}
66
- // </Select>
67
- // )
68
- //
69
-
70
- exports.Radio = Radio;