@danderson00/react-forms 0.0.38 → 0.0.40

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.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, 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}"],"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":"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"}
@@ -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,24 @@
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 useForm() {
12
+ var _useContext = (0, _react.useContext)(context),
13
+ onSubmit = _useContext.onSubmit;
14
+
15
+ return {
16
+ submit: function submit(options) {
17
+ return onSubmit(undefined, options);
18
+ }
19
+ };
20
+ };
21
+ };
22
+
23
+ exports["default"] = _default;
24
+ //# sourceMappingURL=useForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForm.js","names":["context","useForm","useContext","onSubmit","submit","options","undefined"],"sources":["../src/useForm.js"],"sourcesContent":["import { useContext } from 'react'\n\nexport default context => function useForm() {\n const { onSubmit } = useContext(context)\n\n return {\n submit: options => onSubmit(undefined, options)\n }\n}"],"mappings":";;;;;;;AAAA;;eAEe,kBAAAA,OAAO;EAAA,OAAI,SAASC,OAAT,GAAmB;IAC3C,kBAAqB,IAAAC,iBAAA,EAAWF,OAAX,CAArB;IAAA,IAAQG,QAAR,eAAQA,QAAR;;IAEA,OAAO;MACLC,MAAM,EAAE,gBAAAC,OAAO;QAAA,OAAIF,QAAQ,CAACG,SAAD,EAAYD,OAAZ,CAAZ;MAAA;IADV,CAAP;EAGD,CANqB;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.38",
3
+ "version": "0.0.40",
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/useForm.js ADDED
@@ -0,0 +1,9 @@
1
+ import { useContext } from 'react'
2
+
3
+ export default context => function useForm() {
4
+ const { onSubmit } = useContext(context)
5
+
6
+ return {
7
+ submit: options => onSubmit(undefined, options)
8
+ }
9
+ }
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;