Comparing version 1.10.12 to 2.0.0
@@ -0,1 +1,31 @@ | ||
## 2.0.0 (Feb 7, 2019) | ||
### Added | ||
- useFieldApi | ||
- useFieldState | ||
- useFormApi | ||
- useFormState | ||
- useField | ||
- format | ||
- parse | ||
- maintianCursor ( fixes issue where cursor jumps to end on mask ) | ||
- ArrayField ( Check out the docs! this is sick! ) | ||
- Form Level validation ( function that can invalidate the form as a whole ) | ||
- debug prop that allows you to visually view the rendering! | ||
### Changed | ||
- the field `"siblings.1"` now resolves to `values.siblings[1]`, it used to resolve to `values.siblings.1` | ||
- the field `"siblings['2']"` now resolves to `values.siblings[2]`, it used to resolve to `values.siblings.2` | ||
- withFormApi will no longer trigger a rerender if the fomrs state changes. This is a great optimization for those who want to modify but dont care about the form state! | ||
### Removed | ||
- The Field Component | ||
- `fieldExists` not needed | ||
- `setState` will maybe add later but its complex and out of scope ATM | ||
- `setValues` will maybe add later but its complex and out of scope ATM | ||
- `preSubmit` was never needed.. developers can do this themselves | ||
- Async Validation. Async validation led to many issues that overcomplicated `informed`. We determined this is something that the developer could achive on there own for now but we may look into adding this in the future. | ||
## 1.10.12 ( December 4, 2018 ) | ||
@@ -2,0 +32,0 @@ |
@@ -1,2 +0,2 @@ | ||
!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("informed",[],t):"object"==typeof exports?exports.informed=t():e.informed=t()}(this,function(){return function(e){var t={};function __webpack_require__(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,__webpack_require__),n.l=!0,n.exports}return __webpack_require__.m=e,__webpack_require__.c=t,__webpack_require__.d=function(e,t,r){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};return __webpack_require__.d(t,"a",t),t},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=22)}([function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/interopRequireDefault")},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/extends")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/objectWithoutProperties")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/classCallCheck")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/createClass")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/possibleConstructorReturn")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/getPrototypeOf")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/inherits")},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.SelectContext=t.GroupContext=t.FieldContext=t.FormContext=void 0;var a=n(r(1)),u=a.default.createContext();t.FormContext=u;var i=a.default.createContext();t.FieldContext=i;var o=a.default.createContext();t.GroupContext=o;var l=a.default.createContext();t.SelectContext=l},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(1)),i=n(r(19));var o=function asField(e){var t=function getDisplayName(e){return e.displayName||e.name||"Component"}(e);e.displayName="Wrapper";var r=function AsField(t){return u.default.createElement(i.default,(0,a.default)({component:e},t))};return r.displayName=t,r};t.default=o},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/interopRequireWildcard")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/assertThisInitialized")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/objectSpread")},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(1)),i=r(9),o=function withFormApi(e){return u.default.forwardRef(function(t,r){return u.default.createElement(i.FormContext.Consumer,null,function(n){var i=n.formApi;return u.default.createElement(e,(0,a.default)({formApi:i,ref:r},t))})})};t.default=o},function(e,t){e.exports=require("@babel/runtime-corejs2/core-js/map")},function(e,t){e.exports=require("@babel/runtime-corejs2/core-js/json/stringify")},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(1)),i=r(9),o=function withFormState(e){return u.default.forwardRef(function(t,r){return u.default.createElement(i.FormContext.Consumer,null,function(n){var i=n.formState;return u.default.createElement(e,(0,a.default)({formState:i,ref:r},t))})})};t.default=o},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(1)),i=r(9),o=function withController(e){return u.default.forwardRef(function(t,r){return u.default.createElement(i.FormContext.Consumer,null,function(n){var i=n.controller;return u.default.createElement(e,(0,a.default)({controller:i,ref:r},t))})})};t.default=o},function(e,t,r){"use strict";var n=r(11),a=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=a(r(13)),i=a(r(3)),o=a(r(4)),l=a(r(5)),d=a(r(6)),f=a(r(7)),c=a(r(8)),s=n(r(1)),p=r(20),h=function(e){function Field(e){var t;return(0,o.default)(this,Field),(t=(0,d.default)(this,(0,f.default)(Field).call(this,e))).me=s.default.createRef(),t}return(0,c.default)(Field,e),(0,l.default)(Field,[{key:"componentDidMount",value:function componentDidMount(){this.props.register()}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.props.deregister()}},{key:"componentDidUpdate",value:function componentDidUpdate(){var e=this;this.props.debug&&this.me&&(this.me.current.style.backgroundColor="red",setTimeout(function(){e.me.current.style.backgroundColor="white"},500))}},{key:"render",value:function render(){var e=this.props,t=e.fieldApi,r=e.fieldState,n=e.children,a=e.component,render=e.render,o=(e.register,e.deregister,e.forwardedRef),l=e.debug,d=(0,i.default)(e,["fieldApi","fieldState","children","component","render","register","deregister","forwardedRef","debug"]),f=(0,u.default)({fieldApi:t,fieldState:r,forwardedRef:l?this.me:o},d);return a?s.default.createElement(a,f,n):render?render(f):"function"==typeof n?n(f):n}}]),Field}(s.PureComponent),v=(0,p.bindToField)(h);t.default=v},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.bindToField=t.withFieldState=t.withFieldApi=void 0;var a=n(r(4)),u=n(r(5)),i=n(r(6)),o=n(r(7)),l=n(r(8)),d=n(r(12)),f=n(r(2)),c=n(r(3)),s=n(r(1)),p=n(r(14)),h=n(r(18)),v=n(r(35)),g=function buildFieldApi(e,t){return{getValue:function getValue(){return e.getValue(t)},setValue:function setValue(r){return e.setValue(t,r)},getTouched:function getTouched(){return e.getTouched(t)},setTouched:function setTouched(r){return e.setTouched(t,r)},getError:function getError(){return e.getError(t)},setError:function setError(r){return e.setError(t,r)},getAsyncError:function getAsyncError(){return e.getAsyncError(t)}}},m=function buildFieldState(e,t){return{value:e.getValue(t),touched:e.getTouched(t),error:e.getError(t),asyncError:e.getAsyncError(t)}};t.withFieldApi=function withFieldApi(e){return function(t){return(0,p.default)(function(r){var n=r.formApi,a=(0,c.default)(r,["formApi"]);return s.default.createElement(t,(0,f.default)({fieldApi:g(n,e)},a))})}};t.withFieldState=function withFieldState(e){return function(t){return(0,p.default)(function(r){var n=r.formApi,a=(0,c.default)(r,["formApi"]);return s.default.createElement(t,(0,f.default)({fieldState:m(n,e)},a))})}};t.bindToField=function bindToField(e){return(0,h.default)((0,p.default)(function(t){function _class(e){var t;(0,a.default)(this,_class),t=(0,i.default)(this,(0,o.default)(_class).call(this,e));var r=e.formApi,n=e.controller,u=e.field,l=e.mask,f=e.validate,c=e.onValueChange,s=e.asyncValidate,p=e.asyncValidateOnBlur,h=e.validateOnBlur,b=e.validateOnChange,y=e.initialValue,_=e.validateOnMount,C=e.notify;t.state=m(r,u),t.fieldApi=g(r,u);var j=function updateMe(e){e===r.getFullField(u)&&t.setState(m(r,u))},O=function update(){t.setState(m(r,u))};return t.register=function(){n.on("field",j),n.on("update",O),t.fieldController=new v.default(r.getFullField(u),t.fieldApi,{validateOnBlur:h,validateOnChange:b,validate:f,onValueChange:c,asyncValidate:s,asyncValidateOnBlur:p,initialValue:y,validateOnMount:_,notify:C,mask:l}),n.register(r.getFullField(u),t.fieldController)},t.deregister=function(){n.removeListener("field",j),n.removeListener("update",O),n.deregister(r.getFullField(u))},t.register=t.register.bind((0,d.default)((0,d.default)(t))),t.deregister=t.deregister.bind((0,d.default)((0,d.default)(t))),t}return(0,l.default)(_class,t),(0,u.default)(_class,[{key:"componentDidUpdate",value:function componentDidUpdate(e){var t=this.props,r=t.validateOnBlur,n=t.validateOnChange,a=t.validate,u=t.onValueChange,i=t.asyncValidate,o=t.asyncValidateOnBlur,l=t.initialValue,d=t.validateOnMount,f=t.notify,c=t.mask;this.fieldController.updateConfig({validateOnBlur:r,validateOnChange:n,validate:a,onValueChange:u,asyncValidate:i,asyncValidateOnBlur:o,initialValue:l,validateOnMount:d,notify:f,mask:c})}},{key:"render",value:function render(){var t=this.props,r=(t.mask,t.formApi,t.formState,t.controller,t.validate,t.onValueChange,t.asyncValidate,t.asyncValidateOnBlur,t.validateOnBlur,t.validateOnMount,t.validateOnChange,(0,c.default)(t,["mask","formApi","formState","controller","validate","onValueChange","asyncValidate","asyncValidateOnBlur","validateOnBlur","validateOnMount","validateOnChange"]));return s.default.createElement(e,(0,f.default)({register:this.register,deregister:this.deregister,fieldApi:this.fieldApi,fieldState:this.state},r))}}]),_class}(s.default.PureComponent)))}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(1)),i=r(9),o=function withRadioGroup(e){return u.default.forwardRef(function(t,r){return u.default.createElement(i.GroupContext.Consumer,null,function(n){var i=n.radioGroupApi,o=n.radioGroupState;return u.default.createElement(e,(0,a.default)({radioGroupApi:i,radioGroupState:o,ref:r},t))})})};t.default=o},function(e,t,r){"use strict";var n=r(11),a=r(0);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Form",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(t,"Scope",{enumerable:!0,get:function get(){return i.default}}),Object.defineProperty(t,"Field",{enumerable:!0,get:function get(){return o.default}}),Object.defineProperty(t,"withFormApi",{enumerable:!0,get:function get(){return l.default}}),Object.defineProperty(t,"withFormState",{enumerable:!0,get:function get(){return d.default}}),Object.defineProperty(t,"withFieldApi",{enumerable:!0,get:function get(){return f.withFieldApi}}),Object.defineProperty(t,"withFieldState",{enumerable:!0,get:function get(){return f.withFieldState}}),Object.defineProperty(t,"withRadioGroup",{enumerable:!0,get:function get(){return c.default}}),Object.defineProperty(t,"asField",{enumerable:!0,get:function get(){return s.default}}),Object.defineProperty(t,"Text",{enumerable:!0,get:function get(){return p.default}}),Object.defineProperty(t,"BasicText",{enumerable:!0,get:function get(){return p.BasicText}}),Object.defineProperty(t,"Radio",{enumerable:!0,get:function get(){return h.default}}),Object.defineProperty(t,"BasicRadio",{enumerable:!0,get:function get(){return h.BasicRadio}}),Object.defineProperty(t,"TextArea",{enumerable:!0,get:function get(){return v.default}}),Object.defineProperty(t,"BasicTextArea",{enumerable:!0,get:function get(){return v.BasicTextArea}}),Object.defineProperty(t,"Select",{enumerable:!0,get:function get(){return g.default}}),Object.defineProperty(t,"BasicSelect",{enumerable:!0,get:function get(){return g.BasicSelect}}),Object.defineProperty(t,"Option",{enumerable:!0,get:function get(){return m.default}}),Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function get(){return b.default}}),Object.defineProperty(t,"BasicCheckbox",{enumerable:!0,get:function get(){return b.BasicCheckbox}}),Object.defineProperty(t,"RadioGroup",{enumerable:!0,get:function get(){return y.default}}),Object.defineProperty(t,"BasicRadioGroup",{enumerable:!0,get:function get(){return y.BasicRadioGroup}});var u=a(r(23)),i=a(r(34)),o=a(r(19)),l=a(r(14)),d=a(r(17)),f=r(20),c=a(r(21)),s=a(r(10)),p=n(r(36)),h=n(r(37)),v=n(r(38)),g=n(r(39)),m=a(r(41)),b=n(r(42)),y=n(r(43))},function(e,t,r){"use strict";var n=r(11),a=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=a(r(2)),i=a(r(3)),o=a(r(4)),l=a(r(5)),d=a(r(6)),f=a(r(7)),c=a(r(8)),s=n(r(1)),p=r(9),h=a(r(24)),v=function(e){function Form(e){var t;(0,o.default)(this,Form),t=(0,d.default)(this,(0,f.default)(Form).call(this,e));var r=e.onSubmit,n=e.preSubmit,a=e.getApi,u=e.dontPreventDefault,i=e.onSubmitFailure,l=e.initialValues;return t.controller=new h.default({onSubmit:r,getApi:a,preSubmit:n,onSubmitFailure:i},{dontPreventDefault:u,initialValues:l}),t.controller.on("change",function(){return t.forceUpdate()}),t.controller.on("change",function(t){e.onChange&&e.onChange(t)}),t.controller.on("values",function(t){e.onValueChange&&e.onValueChange(t)}),t}return(0,c.default)(Form,e),(0,l.default)(Form,[{key:"render",value:function render(){var e=this.props,t=(e.children,e.component,e.render,e.onSubmit,e.preSubmit,e.getApi,e.dontPreventDefault,e.onSubmitFailure,e.initialValues,e.onValueChange,e.onChange,(0,i.default)(e,["children","component","render","onSubmit","preSubmit","getApi","dontPreventDefault","onSubmitFailure","initialValues","onValueChange","onChange"]));return s.default.createElement(p.FormContext.Provider,{value:this.formContext},s.default.createElement("form",(0,u.default)({},t,{onReset:this.formContext.formApi.reset,onSubmit:this.formContext.formApi.submitForm}),this.content))}},{key:"formContext",get:function get(){return{formApi:this.controller.api,formState:this.controller.state,controller:this.controller}}},{key:"content",get:function get(){var e=this.props,t=e.children,r=e.component,n=e.render,a=this.formContext;return r?s.default.createElement(r,a,t):n?n(a):"function"==typeof t?t(a):t}}]),Form}(s.Component);t.default=v},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(15)),u=n(r(25)),i=n(r(26)),o=n(r(27)),l=n(r(16)),d=n(r(4)),f=n(r(5)),c=n(r(6)),s=n(r(7)),p=n(r(8)),h=n(r(12)),v=n(r(28)),g=n(r(29)),m=function(e){function FormController(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,d.default)(this,FormController),e=(0,c.default)(this,(0,s.default)(FormController).call(this)),(0,v.default)((0,h.default)((0,h.default)(e)),"valid",function(){return e.errors.empty()&&e.asyncErrors.empty()}),(0,v.default)((0,h.default)((0,h.default)(e)),"getFormState",function(){return JSON.parse((0,l.default)(e.state))}),(0,v.default)((0,h.default)((0,h.default)(e)),"setFormState",function(t){e.values.rebuild(t.values),e.touched.rebuild(t.touched),e.errors.rebuild(t.errors),e.asyncErrors.rebuild(),e.emit("change",e.state),e.emit("values",e.state.values),e.emit("update",e.state)}),(0,v.default)((0,h.default)((0,h.default)(e)),"setValues",function(t){e.values.rebuild(t),e.emit("change",e.state),e.emit("values",e.state.values),e.emit("update",e.state)}),(0,v.default)((0,h.default)((0,h.default)(e)),"validateAsync",function(){var t=(0,o.default)(i.default.mark(function _callee(t,r){var n,a,u;return i.default.wrap(function _callee$(i){for(;;)switch(i.prev=i.next){case 0:return n=Math.random(),e.validationPromiseIDs.set(r,n),i.prev=2,a=t.asyncValidate(e.state.values),i.next=6,a;case 6:if(u=i.sent,e.validationPromiseIDs.get(r)===n){i.next=9;break}return i.abrupt("return");case 9:e.asyncErrors.set(r,u),i.next=14;break;case 12:i.prev=12,i.t0=i.catch(2);case 14:e.notify(t.config.notify),e.emit("change",e.state),e.emit("field",r);case 17:case"end":return i.stop()}},_callee,this,[[2,12]])}));return function(e,r){return t.apply(this,arguments)}}()),(0,v.default)((0,h.default)((0,h.default)(e)),"setValue",function(t,r){var n=e.fields.get(t);e.values.set(t,n.config.mask?n.config.mask(r):r),n.config.validateOnChange&&(e.errors.set(t,n.validate(e.state.values)),e.notify(n.config.notify)),e.emit("change",e.state),e.emit("values",e.state.values),e.emit("field",t),n.config.onValueChange&&n.config.onValueChange(e.values.get(t))}),(0,v.default)((0,h.default)((0,h.default)(e)),"setTouched",function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.touched.set(t,r);var n=e.fields.get(t);n.config.validateOnBlur&&(e.errors.set(t,n.validate(e.state.values)),e.notify(n.config.notify)),n.config.asyncValidateOnBlur&&e.validateAsync(n,t),e.emit("change",e.state),e.emit("field",t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"setError",function(t,r){e.errors.set(t,r),e.emit("change",e.state),e.emit("field",t);var n=e.fields.get(t);e.notify(n.config.notify)}),(0,v.default)((0,h.default)((0,h.default)(e)),"getValue",function(t){return e.values.get(t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"getTouched",function(t){return e.touched.get(t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"getError",function(t){return e.errors.get(t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"getAsyncError",function(t){return e.asyncErrors.get(t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"getFullField",function(e){return e}),(0,v.default)((0,h.default)((0,h.default)(e)),"register",function(t,r){e.fields.set(t,r),null!=r.config.initialValue&&e.values.set(t,r.config.initialValue),r.config.validateOnMount&&e.errors.set(t,r.validate(e.state.values)),e.emit("change",e.state),e.emit("field",t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"remove",function(t){e.fields.delete(t),e.values.delete(t),e.touched.delete(t),e.errors.delete(t),e.asyncErrors.delete(t),e.emit("change",e.state)}),(0,v.default)((0,h.default)((0,h.default)(e)),"deregister",function(t){e.remove(t),e.emit("change",e.state),e.emit("field",t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"reset",function(){e.values.rebuild(e.config.initialValues),e.touched.rebuild(),e.errors.rebuild(),e.asyncErrors.rebuild(),e.submits=0,e.fields.forEach(function(t){t.config.initialValue&&e.values.set(t.field,t.config.initialValue)}),e.emit("change",e.state),e.emit("update",e.state)}),(0,v.default)((0,h.default)((0,h.default)(e)),"fieldExists",function(t){return!!e.fields.get(t)}),(0,v.default)((0,h.default)((0,h.default)(e)),"notify",function(t){t&&(t.forEach(function(t){var r=e.fields.get(t);if(!r)throw new Error("Cant notify field ".concat(t," as it does not exist!"));e.errors.set(t,r.validate(e.state.values)),e.emit("field",t)}),e.emit("change",e.state))}),(0,v.default)((0,h.default)((0,h.default)(e)),"submitForm",function(){var t=(0,o.default)(i.default.mark(function _callee2(t){var r;return i.default.wrap(function _callee2$(n){for(;;)switch(n.prev=n.next){case 0:return e.submits=e.submits+1,t&&!e.config.dontPreventDefault&&t.preventDefault(t),r=[],e.fields.forEach(function(t){var n=t.field;e.touched.set(n,!0),e.errors.set(n,t.validate(e.state.values)),t.asyncValidate&&(e.errors.get(n)||r.push(function(){return e.validateAsync(t,n)}))}),n.next=6,u.default.all(r.map(function(e){return e()}));case 6:e.emit("change",e.state),e.emit("update",e.state),e.valid()?(e.hooks.preSubmit&&(e.values.rebuild(e.hooks.preSubmit(JSON.parse((0,l.default)(e.state.values)))),e.emit("change",e.state),e.emit("update",e.state)),e.hooks.onSubmit&&e.hooks.onSubmit(JSON.parse((0,l.default)(e.state.values)))):e.hooks.onSubmitFailure&&e.hooks.onSubmitFailure(JSON.parse((0,l.default)(e.state.errors)),JSON.parse((0,l.default)(e.state.asyncErrors)));case 9:case"end":return n.stop()}},_callee2,this)}));return function(e){return t.apply(this,arguments)}}()),e.setMaxListeners(0),e.hooks=t,e.config=r,e.values=new g.default(r.initialValues),e.touched=new g.default,e.errors=new g.default,e.submits=0,e.asyncErrors=new g.default,e.api={setValue:e.setValue,getValue:e.getValue,setTouched:e.setTouched,getTouched:e.getTouched,setError:e.setError,getError:e.getError,getAsyncError:e.getAsyncError,getFullField:e.getFullField,submitForm:e.submitForm,getState:e.getFormState,setState:e.setFormState,setValues:e.setValues,reset:e.reset,notify:e.notify,fieldExists:e.fieldExists},e.fields=new a.default,e.validationPromiseIDs=new a.default,t.getApi&&t.getApi(e.api),e}return(0,p.default)(FormController,e),(0,f.default)(FormController,[{key:"state",get:function get(){return{values:this.values.object,touched:this.touched.object,errors:this.errors.object,asyncErrors:this.asyncErrors.object,pristine:this.pristine,dirty:this.dirty,invalid:this.invalid,submits:this.submits}}},{key:"pristine",get:function get(){return this.touched.empty()&&this.values.empty()}},{key:"dirty",get:function get(){return!this.pristine}},{key:"invalid",get:function get(){return!this.errors.empty()||!this.asyncErrors.empty()}}]),FormController}(r(33).EventEmitter);t.default=m},function(e,t){e.exports=require("@babel/runtime-corejs2/core-js/promise")},function(e,t){e.exports=require("@babel/runtime-corejs2/regenerator")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/asyncToGenerator")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/defineProperty")},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(16)),u=n(r(4)),i=n(r(5)),o=n(r(30)),l=n(r(15)),d=n(r(31)),f=n(r(32));function isArray(e){return Array.isArray(e)}function isObject(e){return!Array.isArray(e)&&"object"===(0,d.default)(e)&&null!==e}var c=function buildMap(e){if(isObject(e)){var t=new l.default;return(0,o.default)(e).forEach(function(r){var n=buildMap(e[r]);null!=n&&t.set(r,n)}),t}if(isArray(e)){var r=new l.default;return e.forEach(function(e,t){var n=buildMap(e);null!=n&&r.set(t,n)}),r}return e},s=function(){function ObjectMap(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,u.default)(this,ObjectMap),this.object=JSON.parse((0,a.default)(e)),this.map=c(this.object),this.paths=new l.default}return(0,i.default)(ObjectMap,[{key:"empty",value:function empty(){return 0===this.map.size}},{key:"rebuild",value:function rebuild(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.object=JSON.parse((0,a.default)(e)),this.map=c(this.object)}},{key:"get",value:function get(e){var t=this.paths.get(e);t||(t=(0,f.default)(e),this.paths.set(e,t));var get=function get(e,r,n,a){if(null!=e)return null==n?e[r]:get(e[r],t[a+1],t[a+2],a+1)};return get(this.object,t[0],t[1],0)}},{key:"set",value:function set(e,t,r){var n=this.paths.get(e);n||(n=(0,f.default)(e),this.paths.set(e,n));var set=function set(e,a,u,i,o){if(null!=e)if(null!=i){null!=t&&("number"!=typeof i||isArray(e[u])||(e[u]=[],a.set(u,new l.default)),"number"==typeof i||isObject(e[u])||(e[u]={},a.set(u,new l.default)));var d=isObject(e[u])||isArray(e[u])?a.get(u):a;set(e[u],d,n[o+1],n[o+2],o+1),0===d.size&&(delete e[u],a.delete(u))}else null==t?(isArray(e)&&r?e.splice(u,1):delete e[u],a.delete(u)):(e[u]=t,a.set(u,t))};set(this.object,this.map,n[0],n[1],0)}},{key:"delete",value:function _delete(e){this.set(e,null,!0),this.paths.delete(e)}}]),ObjectMap}();t.default=s},function(e,t){e.exports=require("@babel/runtime-corejs2/core-js/object/keys")},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/typeof")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=function makePathArray(e){return e.replace(/\[(\d+)]/g,".__int__$1").replace(/\['([^.]+)']/g,".$1").split(".").map(function(e){return 0===e.indexOf("__int__")?parseInt(e.substring(7),10):e})};t.default=n},function(e,t){e.exports=require("events")},function(e,t,r){"use strict";var n=r(11),a=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=a(r(4)),i=a(r(5)),o=a(r(6)),l=a(r(7)),d=a(r(8)),f=a(r(13)),c=n(r(1)),s=r(9),p=a(r(14)),h=a(r(17)),v=a(r(18)),g=function buildScopedContext(e,t,r,n){return{formApi:(0,f.default)({},t,{getValue:function getValue(r){return t.getValue("".concat(e,".").concat(r))},setValue:function setValue(r,n){return t.setValue("".concat(e,".").concat(r),n)},getTouched:function getTouched(r){return t.getTouched("".concat(e,".").concat(r))},setTouched:function setTouched(r,n){return t.setTouched("".concat(e,".").concat(r),n)},getError:function getError(r){return t.getError("".concat(e,".").concat(r))},setError:function setError(r,n){return t.setError("".concat(e,".").concat(r),n)},getAsyncError:function getAsyncError(r){return t.getAsyncError("".concat(e,".").concat(r))},getFullField:function getFullField(r){return"".concat(t.getFullField(e),".").concat(r)}}),formState:r,controller:n}},m=function(e){function Scope(e){var t;(0,u.default)(this,Scope),t=(0,o.default)(this,(0,l.default)(Scope).call(this,e));var r=e.scope,n=e.formApi,a=e.formState,i=e.controller;return t.formContext=g(r,n,a,i),t}return(0,d.default)(Scope,e),(0,i.default)(Scope,[{key:"render",value:function render(){var e=this.props.children;return c.default.createElement(s.FormContext.Provider,{value:this.formContext},e)}}]),Scope}(c.Component),b=(0,h.default)((0,v.default)((0,p.default)(m)));t.default=b},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(4)),u=n(r(5)),i=function(){function FieldController(e,t,r){(0,a.default)(this,FieldController),this.field=e,this.config=r,this.api=t}return(0,u.default)(FieldController,[{key:"validate",value:function validate(e){if(this.config.validate)return this.config.validate(this.api.getValue(),e)}},{key:"asyncValidate",value:function asyncValidate(e){if(this.config.asyncValidate)return this.config.asyncValidate(this.api.getValue(),e)}},{key:"updateConfig",value:function updateConfig(e){this.config=e}}]),FieldController}();t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicText=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(1)),o=n(r(10)),l=function Text(e){var t=e.fieldApi,r=e.fieldState,n=(0,u.default)(e,["fieldApi","fieldState"]),o=r.value,l=t.setValue,d=t.setTouched,f=n.onChange,c=n.onBlur,s=n.field,p=(n.initialValue,n.forwardedRef),h=(0,u.default)(n,["onChange","onBlur","field","initialValue","forwardedRef"]);return i.default.createElement("input",(0,a.default)({},h,{name:s,ref:p,value:o||0===o?o:"",onChange:function onChange(e){l(e.target.value),f&&f(e)},onBlur:function onBlur(e){d(),c&&c(e)}}))};t.BasicText=l;var d=(0,o.default)(l);t.default=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicRadio=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(1)),o=n(r(21)),l=function Radio(e){var t=e.radioGroupApi,r=e.radioGroupState,n=(0,u.default)(e,["radioGroupApi","radioGroupState"]),o=r.value,l=t.setValue,d=t.setTouched,f=t.onChange,c=t.onBlur,s=n.value,p=n.onChange,h=n.onBlur,v=n.field,g=(n.initialValue,n.forwardedRef),m=(0,u.default)(n,["value","onChange","onBlur","field","initialValue","forwardedRef"]);return i.default.createElement("input",(0,a.default)({},m,{name:v,ref:g,value:s,checked:o===s,onChange:function onChange(e){e.target.checked&&(l(s),p&&p(e),f&&f(e))},onBlur:function onBlur(e){d(),h&&h(e),c&&c(e)},type:"radio"}))};t.BasicRadio=l;var d=(0,o.default)(l);t.default=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicTextArea=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(1)),o=n(r(10)),l=function TextArea(e){var t=e.fieldApi,r=e.fieldState,n=(0,u.default)(e,["fieldApi","fieldState"]),o=r.value,l=t.setValue,d=t.setTouched,f=n.onChange,c=n.onBlur,s=n.field,p=(n.initialValue,n.forwardedRef),h=(0,u.default)(n,["onChange","onBlur","field","initialValue","forwardedRef"]);return i.default.createElement("textarea",(0,a.default)({},h,{name:s,ref:p,value:o||"",onChange:function onChange(e){l(e.target.value),f&&f(e)},onBlur:function onBlur(e){d(),c&&c(e)}}))};t.BasicTextArea=l;var d=(0,o.default)(l);t.default=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicSelect=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(40)),o=n(r(4)),l=n(r(5)),d=n(r(6)),f=n(r(7)),c=n(r(8)),s=n(r(12)),p=n(r(1)),h=n(r(10)),v=function(e){function Select(e){var t;return(0,o.default)(this,Select),(t=(0,d.default)(this,(0,f.default)(Select).call(this,e))).handleChange=t.handleChange.bind((0,s.default)((0,s.default)(t))),t.selectRef=p.default.createRef(),t}return(0,c.default)(Select,e),(0,l.default)(Select,[{key:"handleChange",value:function handleChange(e){var t=(0,i.default)((this.props.forwardedRef||this.selectRef).current).filter(function(e){return e.selected}).map(function(e){return e.value});this.props.fieldApi.setValue(this.props.multiple?t:t[0]||""),this.props.onChange&&this.props.onChange(e)}},{key:"render",value:function render(){var e=this.props,t=e.fieldApi,r=e.fieldState,n=(0,u.default)(e,["fieldApi","fieldState"]),i=r.value,o=(t.setValue,t.setTouched),l=(n.onChange,n.onBlur),d=n.field,f=(n.initialValue,n.forwardedRef),c=n.children,s=n.multiple,h=(0,u.default)(n,["onChange","onBlur","field","initialValue","forwardedRef","children","multiple"]);return p.default.createElement("select",(0,a.default)({},h,{multiple:s,name:d,ref:f||this.selectRef,value:i||(s?[]:""),onChange:this.handleChange,onBlur:function onBlur(e){o(),l&&l(e)}}),c)}}]),Select}(p.default.Component);t.BasicSelect=v;var g=(0,h.default)(v);t.default=g},function(e,t){e.exports=require("@babel/runtime-corejs2/helpers/toConsumableArray")},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(1)),o=function Option(e){var t=e.value,r=e.forwardedRef,n=e.children,o=(0,u.default)(e,["value","forwardedRef","children"]);return i.default.createElement("option",(0,a.default)({ref:r,value:t,key:t},o),n)};t.default=o},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicCheckbox=void 0;var a=n(r(2)),u=n(r(3)),i=n(r(1)),o=n(r(10)),l=function Checkbox(e){var t=e.fieldApi,r=e.fieldState,n=(0,u.default)(e,["fieldApi","fieldState"]),o=r.value,l=t.setValue,d=t.setTouched,f=n.onChange,c=n.onBlur,s=n.field,p=(n.initialValue,n.forwardedRef),h=(0,u.default)(n,["onChange","onBlur","field","initialValue","forwardedRef"]);return i.default.createElement("input",(0,a.default)({},h,{name:s,ref:p,checked:!!o,onChange:function onChange(e){l(e.target.checked),f&&f(e)},onBlur:function onBlur(e){d(),c&&c(e)},type:"checkbox"}))};t.BasicCheckbox=l;var d=(0,o.default)(l);t.default=d},function(e,t,r){"use strict";var n=r(11),a=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.BasicRadioGroup=void 0;var u=a(r(13)),i=a(r(4)),o=a(r(5)),l=a(r(6)),d=a(r(7)),f=a(r(8)),c=n(r(1)),s=r(9),p=a(r(10)),h=function(e){function RadioGroup(){return(0,i.default)(this,RadioGroup),(0,l.default)(this,(0,d.default)(RadioGroup).apply(this,arguments))}return(0,f.default)(RadioGroup,e),(0,o.default)(RadioGroup,[{key:"render",value:function render(){return c.default.createElement(s.GroupContext.Provider,{value:this.groupContext},this.props.children)}},{key:"groupContext",get:function get(){return{radioGroupApi:(0,u.default)({},this.props.fieldApi,{onChange:this.props.onChange,onBlur:this.props.onBlur}),radioGroupState:this.props.fieldState}}}]),RadioGroup}(c.Component);t.BasicRadioGroup=h;var v=(0,p.default)(h);t.default=v}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("informed",[],t):"object"==typeof exports?exports.informed=t():e.informed=t()}(this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="./src/index.js")}({"./src/index.js":function(e,t,r){"use strict";r.r(t);var n=r("react"),o=r.n(n),i=o.a.createContext({register:function(){},deregister:function(){},setValue:function(){},setTouched:function(){},setError:function(){},update:function(){}}),u=o.a.createContext({}),a=o.a.createContext({}),c=o.a.createContext(),l=(o.a.createContext(),r("lodash/setWith")),f=r.n(l),s=r("lodash/unset"),p=r.n(s),d=r("lodash/toPath"),h=r.n(d),y=r("lodash/get"),v=r.n(y),b=r("lodash/values"),g=r.n(b),m=r("lodash/pullAt"),O=r.n(m),j=r("lodash/pull"),w=r.n(j),S=r("debug"),x=r.n(S);function E(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var A=x()("informed:ObjMap\t"),P=function(e){var t=h()(e);return Number.isInteger(+t[t.length-1])};function k(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(0!==t.length){var n=v()(e,t);Array.isArray(n)&&r&&w()(n,void 0),(Array.isArray(n)?n.every(function(e){return null==e}):"{}"===JSON.stringify(n))&&p()(e,t),k(e,t.slice(0,t.length-1))}}var C=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"empty",value:function(e){return 0===g()(e).length}},{key:"get",value:function(e,t){return v()(e,t)}},{key:"set",value:function(t,r,n){if(void 0!==n)f()(t,r,n);else if(P(r)&&void 0!==e.get(t,r)){f()(t,r,void 0);var o=h()(r);k(t,o=o.slice(0,o.length-1),!1)}else P(r)||void 0===e.get(t,r)||e.delete(t,r)}},{key:"delete",value:function(e,t){A("DELETE",t),p()(e,t);var r=h()(t);k(e,r=r.slice(0,r.length-1))}},{key:"pullOut",value:function(e,t,r){var n=h()(t);n=n.slice(0,n.length-1).join(),A("PathArray",n);var o=v()(e,n);A("Array",o),O()(o,r)}}],(r=null)&&E(t.prototype,r),n&&E(t,n),e}(),V=r("events");function T(e){return(T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function M(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var I=x()("informed:Controller\t"),D=function(e){function t(){var e,r,n,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,(e=!(n=_(t).call(this))||"object"!==T(n)&&"function"!=typeof n?M(r):n).options=o,e.fields=new Map,e.state={values:{},touched:{},errors:{},pristine:!0,dirty:!1,invalid:!1,submits:0},e.deregister=e.deregister.bind(M(M(e))),e.register=e.register.bind(M(M(e))),e.setValue=e.setValue.bind(M(M(e))),e.setTouched=e.setTouched.bind(M(M(e))),e.setError=e.setError.bind(M(M(e))),e.submitForm=e.submitForm.bind(M(M(e))),e.reset=e.reset.bind(M(M(e))),e.update=e.update.bind(M(M(e))),e.updater={register:e.register,deregister:e.deregister,setValue:e.setValue,setTouched:e.setTouched,setError:e.setError,update:e.update},e}var r,n,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(t,V["EventEmitter"]),r=t,(n=[{key:"getFormState",value:function(){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){F(e,t,r[t])})}return e}({},this.state,{pristine:this.pristine(),dirty:this.dirty(),invalid:this.invalid()})}},{key:"getFormApi",value:function(){var e=this;return{setValue:function(t,r){return e.fields.get(t).fieldApi.setValue(r)},setTouched:function(t,r){return e.fields.get(t).fieldApi.setTouched(r)},setError:function(t,r){return e.fields.get(t).fieldApi.setError(r)},getValue:function(t){return e.getValue(t)},getTouched:function(t){return e.getTouched(t)},getError:function(t){return e.getError(t)},reset:function(){return e.reset()},submitForm:function(t){return e.submitForm(t)},getState:function(){return e.getFormState()},getValues:function(){return e.getFormState().values}}}},{key:"setValue",value:function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];I("Setting ".concat(e," to ").concat(t)),C.set(this.state.values,e,t),delete this.state.error,this.emit("change"),this.emit("value"),r&&this.notify(e)}},{key:"setTouched",value:function(e,t){C.set(this.state.touched,e,t),this.emit("change")}},{key:"setError",value:function(e,t){C.set(this.state.errors,e,t),this.emit("change")}},{key:"setFormError",value:function(e){this.state.error=e,this.emit("change")}},{key:"notify",value:function(e){var t=this,r=this.fields.get(e);r.notify&&r.notify.forEach(function(e){var r=t.fields.get(e);if(r){I("Notifying",r.field);var n=t.getValue(r.field);r.fieldApi.validate(n)}})}},{key:"getValue",value:function(e){return C.get(this.state.values,e)}},{key:"getTouched",value:function(e){return C.get(this.state.touched,e)}},{key:"getError",value:function(e){return C.get(this.state.errors,e)}},{key:"valid",value:function(){return!(!C.empty(this.state.errors)||this.state.error)}},{key:"invalid",value:function(){return!(C.empty(this.state.errors)&&!this.state.error)}},{key:"pristine",value:function(){return C.empty(this.state.touched)&&C.empty(this.state.values)}},{key:"dirty",value:function(){return!this.pristine()}},{key:"reset",value:function(){var e=this;I("Resetting"),this.fields.forEach(function(t){t.fieldApi.reset();var r=C.get(e.options.initialValues,t.field);r&&e.getFormApi().setValue(t.field,r)}),this.emit("change")}},{key:"submitForm",value:function(e){var t=this;if(this.state.submits=this.state.submits+1,this.options.dontPreventDefault||e.preventDefault(e),this.fields.forEach(function(e,r){var n=t.getValue(r);e.fieldApi.validate(n),e.fieldApi.setTouched(!0)}),this.options.validate){var r=this.options.validate(this.state.values);this.setFormError(r)}this.emit("change"),this.valid()?(I("Submit",this.state),this.emit("submit")):(I("Submit",this.state),this.emit("failure"))}},{key:"register",value:function(e,t,r){if(I("Register",e,t),this.fields.set(e,r),r.keepState){var n=C.get(this.state.values,e);this.getFormApi().setValue(e,n||t.value);var o=C.get(this.state.touched,e);this.getFormApi().setTouched(e,o)}else{var i=C.get(this.options.initialValues,e);i?this.getFormApi().setValue(e,i):this.setValue(e,t.value,!1),this.setTouched(e,t.touched)}this.setError(e,t.error)}},{key:"deregister",value:function(e){I("Deregister",e),this.fields.get(e).keepState||(C.delete(this.state.values,e),C.delete(this.state.touched,e),C.delete(this.state.errors,e)),this.fields.delete(e),this.emit("change")}},{key:"update",value:function(e,t){I("Update",e),this.fields.set(e,t)}}])&&R(r.prototype,n),o&&R(r,o),t}();function G(e){return(G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function q(){return(q=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function L(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function U(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function W(e,t){return!t||"object"!==G(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function N(e){return(N=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var z=x()("informed:Form\t\t"),H=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=W(this,N(t).call(this,e))).controller=new D({dontPreventDefault:e.dontPreventDefault,initialValues:e.initialValues,validate:e.validate}),r.formApi=r.controller.getFormApi(),r.controller.on("change",function(){return r.forceUpdate()}),r.controller.on("change",function(){return r.props.onChange&&r.props.onChange(r.controller.getFormState())}),r.controller.on("submit",function(){return r.props.onSubmit&&r.props.onSubmit(r.controller.getFormState().values)}),r.controller.on("value",function(){return r.props.onValueChange&&r.props.onValueChange(r.controller.getFormState().values)}),r.controller.on("failure",function(){return r.props.onSubmitFailure&&r.props.onSubmitFailure(r.controller.getFormState().errors)}),r.props.getApi&&r.props.getApi(r.controller.getFormApi()),r}var r,n,c;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&J(e,t)}(t,o.a.Component),r=t,(n=[{key:"render",value:function(){z("Render FORM");var e=this.props,t=(e.children,e.getApi,e.onChange,e.onSubmit,e.onValueChange,e.initialValues,e.onSubmitFailure,e.dontPreventDefault,L(e,["children","getApi","onChange","onSubmit","onValueChange","initialValues","onSubmitFailure","dontPreventDefault"])),r=this.controller.getFormState();return o.a.createElement(i.Provider,{value:this.controller.updater},o.a.createElement(a.Provider,{value:this.formApi},o.a.createElement(u.Provider,{value:r},o.a.createElement("form",q({},t,{onReset:this.controller.reset,onSubmit:this.controller.submitForm}),this.content))))}},{key:"content",get:function(){var e=this.props,t=e.children,r=e.component,n=e.render,i={formState:this.controller.getFormState(),formApi:this.controller.getFormApi()};return r?o.a.createElement(r,i,t):n?n(i):"function"==typeof t?t(i):t}}])&&U(r.prototype,n),c&&U(r,c),t}();var K=function(){return Object(n.useContext)(a)};var Q=function(){return Object(n.useContext)(u)};function X(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Y=function(e,t){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){X(e,t,r[t])})}return e}({},t,{getValue:function(r){return t.getValue("".concat(e,".").concat(r))},getTouched:function(r){return t.getTouched("".concat(e,".").concat(r))},getError:function(r){return t.getError("".concat(e,".").concat(r))},setValue:function(r,n){return t.setValue("".concat(e,".").concat(r),n)},setTouched:function(r,n){return t.setTouched("".concat(e,".").concat(r),n)},setError:function(r,n){return t.setError("".concat(e,".").concat(r),n)}})},Z=function(e){var t=e.scope,r=e.children,c=Object(n.useContext)(i),l=K(),f=Q(),s=Object(n.useMemo)(function(){return Y(t,l)},[t]),p=Object(n.useMemo)(function(){return function(e,t){var r=t.register,n=t.deregister,o=t.setValue,i=t.setTouched,u=t.setError,a=t.update;return{register:function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];return r.apply(void 0,["".concat(e,".").concat(t)].concat(o))},deregister:function(t){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return n.apply(void 0,["".concat(e,".").concat(t)].concat(o))},update:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return a.apply(void 0,["".concat(e,".").concat(t)].concat(n))},setValue:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return o.apply(void 0,["".concat(e,".").concat(t)].concat(n))},setTouched:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return i.apply(void 0,["".concat(e,".").concat(t)].concat(n))},setError:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return u.apply(void 0,["".concat(e,".").concat(t)].concat(n))}}}(t,c)},[t]);return o.a.createElement(i.Provider,{value:p},o.a.createElement(a.Provider,{value:s},o.a.createElement(u.Provider,{value:f},r)))};function $(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(n=(u=a.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(o)throw i}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var te=function(e){e.field;var t=e.children,r=ee(Object(n.useState)([]),2),o=r[0],i=r[1];return t({fields:o.map(function(e,t){return{key:e,field:"field[".concat(t,"]"),remove:function(){return function(e){var t=o.slice(0,e).concat(o.slice(e+1,o.length));i(t)}(t)}}}),add:function(){o.push("xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),i($(o))}})};function re(){return(re=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var ne=function(e){return o.a.forwardRef(function(t,r){return o.a.createElement(a.Consumer,null,function(n){return o.a.createElement(e,re({formApi:n,ref:r},t))})})};function oe(){return(oe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var ie=function(e){return o.a.forwardRef(function(t,r){return o.a.createElement(u.Consumer,null,function(n){return o.a.createElement(e,oe({formState:n,ref:r},t))})})},ue=function(e,t){return{getValue:function(){return e.getValue(t)},setValue:function(r){return e.setValue(t,r)},getTouched:function(){return e.getTouched(t)},setTouched:function(r){return e.setTouched(t,r)},getError:function(){return e.getError(t)},setError:function(r){return e.setError(t,r)}}};var ae=function(e){var t=K();return Object(n.useMemo)(function(){return ue(t,e)},[e])},ce=function(e){return{value:e.getValue(),touched:e.getTouched(),error:e.getError()}};var le=function(e){var t=ae(e);return Q(),ce(t)};function fe(){return(fe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var se=function(e){return function(t){return function(r){var n=le(e);return o.a.createElement(t,fe({fieldState:n},r))}}};function pe(){return(pe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var de=function(e){return function(t){return function(r){var n=ae(e);return o.a.createElement(t,pe({fieldApi:n},r))}}};function he(){return(he=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var ye=function(e){return o.a.forwardRef(function(t,r){return o.a.createElement(c.Consumer,null,function(n){var i=n.radioGroupApi,u=n.radioGroupState;return o.a.createElement(e,he({radioGroupApi:i,radioGroupState:u,ref:r},t))})})};function ve(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function be(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(n=(u=a.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==a.return||a.return()}finally{if(o)throw i}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var ge=x()("informed:useField\t");function me(e){var t=Object(n.useRef)(),r=be(Object(n.useState)(e),2),o=r[0],i=r[1];t.current=o;return[o,function(e){t.current=e,i(e)},function(){return t.current}]}var Oe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.validate,o=t.mask,u=t.format,a=t.parse,c=t.initialValue,l=t.validateOnChange,f=t.validateOnBlur,s=t.validateOnMount,p=t.onValueChange,d=t.notify,h=t.keepState,y=t.maintainCursor,v=t.debug,b=t.type,g=be(me(null!=c?c:void 0),3),m=g[0],O=g[1],j=g[2],w=be(Object(n.useState)(s?r(c):void 0),2),S=w[0],x=w[1],E=be(Object(n.useState)(),2),A=E[0],P=E[1],k=be(me(0),3),C=(k[0],k[1]),V=k[2],T=Object(n.useContext)(i),F=K(),R=function(t){x(t),T.setError(e,t)},_=function(t,n){ge("Setting ".concat(e," to ").concat(t)),""===t&&(t=void 0),"number"===b&&void 0!==t&&(t=+t),o&&(t=o(t)),u&&a&&(t=u(a(t))),r&&l&&(ge("Validating after change ".concat(e," ").concat(t)),R(r(t,F.getValues()))),n&&n.target&&n.target.selectionStart&&C(n.target.selectionStart),O(t),p&&p(t),T.setValue(e,t)},B=function(t){r&&f&&(ge("Validating after blur ".concat(e," ").concat(j())),R(r(j()))),P(t),T.setTouched(e,t)},M={setValue:_,setTouched:B,setError:R,reset:function(){_(null!=c?c:void 0),R(void 0),B(void 0)},validate:function(t){r&&(ge("Field validating ".concat(e," ").concat(t)),R(r(t,F.getValues())))}},I={value:m,error:S,touched:A};ge("Render",e,I);var D=Object(n.useRef)(null);Object(n.useLayoutEffect)(function(){return ge("Register",e),T.register(e,I,{field:e,fieldApi:M,fieldState:I,notify:d,keepState:h}),function(){ge("Deregister",e),T.deregister(e)}},[e]),Object(n.useLayoutEffect)(function(){ge("Update",e),T.update(e,{field:e,fieldApi:M,fieldState:I,notify:d,keepState:h})},[r,l,f,p]),Object(n.useLayoutEffect)(function(){y&&null!=D.current&&V()&&(D.current.selectionEnd=V())},[m]),Object(n.useLayoutEffect)(function(){v&&D&&(D.current.style.border="5px solid orange",setTimeout(function(){D.current.style.borderWidth="2px",D.current.style.borderStyle="inset",D.current.style.borderColor="initial",D.current.style.borderImage="initial"},500))});var G=[].concat(ve(Object.values(I)),ve(Object.values(t)),[e]);return{fieldState:I,fieldApi:M,purify:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object(n.useMemo)(function(){return e},[].concat(ve(G),ve(t)))},ref:D}};function je(){return(je=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function we(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Se=function(e){return function(t){var r=t.field,n=t.validate,i=t.initialValue,u=t.validateOnChange,a=t.validateOnBlur,c=t.validateOnMount,l=t.onValueChange,f=t.notify,s=t.keepState,p=t.maintainCursor,d=t.debug,h=t.type,y=t.mask,v=t.format,b=t.parse,g=we(t,["field","validate","initialValue","validateOnChange","validateOnBlur","validateOnMount","onValueChange","notify","keepState","maintainCursor","debug","type","mask","format","parse"]),m=Oe(r,{validate:n,initialValue:i,validateOnChange:u,validateOnBlur:a,onValueChange:l,validateOnMount:c,notify:f,keepState:s,maintainCursor:p,debug:d,type:h,mask:y,format:v,parse:b}),O=m.fieldState,j=m.fieldApi,w=m.purify,S=m.ref;return w(o.a.createElement(e,je({fieldApi:j,fieldState:O,field:r,forwardedRef:S,debug:d,type:h},g)))}};function xe(){return(xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ee(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ae=x()("informed:Text\t"),Pe=function(e){var t=e.fieldApi,r=e.fieldState,i=Ee(e,["fieldApi","fieldState"]),u=r.value,a=t.setValue,c=t.setTouched,l=i.onChange,f=i.onBlur,s=i.field,p=(i.initialValue,i.forwardedRef),d=i.debug,h=Ee(i,["onChange","onBlur","field","initialValue","forwardedRef","debug"]);return Ae("Render",s),Object(n.useLayoutEffect)(function(){d&&p&&(p.current.style.background="red",setTimeout(function(){p.current.style.background="white"},500))}),o.a.createElement("input",xe({},h,{name:s,ref:p,value:u||0===u?u:"",onChange:function(e){a(e.target.value,e),l&&l(e)},onBlur:function(e){c(!0),f&&f(e)}}))},ke=Se(Pe);function Ce(){return(Ce=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ve(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Te=function(e){var t=e.radioGroupApi,r=e.radioGroupState,n=Ve(e,["radioGroupApi","radioGroupState"]),i=r.value,u=t.setValue,a=t.setTouched,c=t.onChange,l=t.onBlur,f=n.value,s=n.onChange,p=n.onBlur,d=n.field,h=(n.initialValue,n.forwardedRef),y=Ve(n,["value","onChange","onBlur","field","initialValue","forwardedRef"]);return o.a.createElement("input",Ce({},y,{name:d,ref:h,value:f,checked:i===f,onChange:function(e){e.target.checked&&(u(f),s&&s(e),c&&c(e))},onBlur:function(e){a(!0),p&&p(e),l&&l(e)},type:"radio"}))},Fe=ye(Te);function Re(){return(Re=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function _e(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Be=function(e){var t=e.fieldApi,r=e.fieldState,i=_e(e,["fieldApi","fieldState"]),u=r.value,a=t.setValue,c=t.setTouched,l=i.onChange,f=i.onBlur,s=i.field,p=(i.initialValue,i.forwardedRef),d=i.debug,h=_e(i,["onChange","onBlur","field","initialValue","forwardedRef","debug"]);return Object(n.useLayoutEffect)(function(){d&&p&&(p.current.style.background="red",setTimeout(function(){p.current.style.background="white"},500))}),o.a.createElement("textarea",Re({},h,{name:s,ref:p,value:u||"",onChange:function(e){a(e.target.value,e),l&&l(e)},onBlur:function(e){c(!0),f&&f(e)}}))},Me=Se(Be);function Ie(e){return(Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function De(){return(De=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ge(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function qe(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function Le(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Ue(e){return(Ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function We(e,t){return(We=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Je=function(e){function t(e){var r,n,i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,(r=!(i=Ue(t).call(this,e))||"object"!==Ie(i)&&"function"!=typeof i?Ne(n):i).handleChange=r.handleChange.bind(Ne(Ne(r))),r.selectRef=o.a.createRef(),r}var r,n,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&We(e,t)}(t,o.a.Component),r=t,(n=[{key:"handleChange",value:function(e){var t=qe((this.props.forwardedRef||this.selectRef).current).filter(function(e){return e.selected}).map(function(e){return e.value});this.props.fieldApi.setValue(this.props.multiple?t:t[0]||""),this.props.onChange&&this.props.onChange(e)}},{key:"componentDidUpdate",value:function(){var e=this;this.props.debug&&this.props.forwardedRef&&(this.props.forwardedRef.current.style.background="red",setTimeout(function(){e.props.forwardedRef.current.style.background="white"},500))}},{key:"render",value:function(){var e=this.props,t=e.fieldApi,r=e.fieldState,n=Ge(e,["fieldApi","fieldState"]),i=r.value,u=(t.setValue,t.setTouched),a=(n.onChange,n.onBlur),c=n.field,l=(n.initialValue,n.forwardedRef),f=(n.debug,n.children),s=n.multiple,p=Ge(n,["onChange","onBlur","field","initialValue","forwardedRef","debug","children","multiple"]);return o.a.createElement("select",De({},p,{multiple:s,name:c,ref:l||this.selectRef,value:i||(s?[]:""),onChange:this.handleChange,onBlur:function(e){u(!0),a&&a(e)}}),f)}}])&&Le(r.prototype,n),i&&Le(r,i),t}(),ze=Se(Je);function He(){return(He=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ke(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Qe=function(e){var t=e.value,r=e.forwardedRef,n=e.children,i=Ke(e,["value","forwardedRef","children"]);return o.a.createElement("option",He({ref:r,value:t,key:t},i),n)};function Xe(){return(Xe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Ye(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ze=function(e){var t=e.fieldApi,r=e.fieldState,n=Ye(e,["fieldApi","fieldState"]),i=r.value,u=t.setValue,a=t.setTouched,c=n.onChange,l=n.onBlur,f=n.field,s=(n.initialValue,n.debug,n.forwardedRef),p=Ye(n,["onChange","onBlur","field","initialValue","debug","forwardedRef"]);return o.a.createElement("input",Xe({},p,{name:f,ref:s,checked:!!i,onChange:function(e){u(e.target.checked),c&&c(e)},onBlur:function(e){a(!0),l&&l(e)},type:"checkbox"}))},$e=Se(Ze);function et(e){return(et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){rt(e,t,r[t])})}return e}function rt(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function nt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function ot(e,t){return!t||"object"!==et(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function it(e){return(it=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ut(e,t){return(ut=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var at=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),ot(this,it(t).apply(this,arguments))}var r,i,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ut(e,t)}(t,n["Component"]),r=t,(i=[{key:"render",value:function(){return o.a.createElement(c.Provider,{value:this.groupContext},this.props.children)}},{key:"groupContext",get:function(){return{radioGroupApi:tt({},this.props.fieldApi,{onChange:this.props.onChange,onBlur:this.props.onBlur}),radioGroupState:this.props.fieldState}}}])&&nt(r.prototype,i),u&&nt(r,u),t}(),ct=Se(at);r.d(t,"Form",function(){return H}),r.d(t,"withFormApi",function(){return ne}),r.d(t,"withFormState",function(){return ie}),r.d(t,"withFieldApi",function(){return de}),r.d(t,"withFieldState",function(){return se}),r.d(t,"withRadioGroup",function(){return ye}),r.d(t,"asField",function(){return Se}),r.d(t,"useField",function(){return Oe}),r.d(t,"useFieldApi",function(){return ae}),r.d(t,"useFieldState",function(){return le}),r.d(t,"useFormApi",function(){return K}),r.d(t,"useFormState",function(){return Q}),r.d(t,"Text",function(){return ke}),r.d(t,"Radio",function(){return Fe}),r.d(t,"TextArea",function(){return Me}),r.d(t,"Select",function(){return ze}),r.d(t,"Option",function(){return Qe}),r.d(t,"Checkbox",function(){return $e}),r.d(t,"RadioGroup",function(){return ct}),r.d(t,"BasicText",function(){return Pe}),r.d(t,"BasicRadio",function(){return Te}),r.d(t,"BasicRadioGroup",function(){return at}),r.d(t,"BasicTextArea",function(){return Be}),r.d(t,"BasicSelect",function(){return Je}),r.d(t,"BasicCheckbox",function(){return Ze}),r.d(t,"Scope",function(){return Z}),r.d(t,"ArrayField",function(){return te})},debug:function(e,t){e.exports=require("debug")},events:function(e,t){e.exports=require("events")},"lodash/get":function(e,t){e.exports=require("lodash/get")},"lodash/pull":function(e,t){e.exports=require("lodash/pull")},"lodash/pullAt":function(e,t){e.exports=require("lodash/pullAt")},"lodash/setWith":function(e,t){e.exports=require("lodash/setWith")},"lodash/toPath":function(e,t){e.exports=require("lodash/toPath")},"lodash/unset":function(e,t){e.exports=require("lodash/unset")},"lodash/values":function(e,t){e.exports=require("lodash/values")},react:function(e,t){e.exports=require("react")}})}); | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "informed", | ||
"version": "1.10.12", | ||
"version": "2.0.0", | ||
"description": "A lightweight framework and utility for building powerful forms in React applications", | ||
"main": "dist/index.js", | ||
"module": "dist/esm/index.js", | ||
"types": "index.d.ts", | ||
@@ -13,6 +14,5 @@ "files": [ | ||
"start": "webpack-dev-server -d --config webpack.dev.config.js --port 4004 --hot", | ||
"build": "webpack -p --config ./config/webpack/webpack.dist.config.js", | ||
"build": "webpack --config ./config/webpack/webpack.dist.config.js && rollup --config", | ||
"test": "mocha-webpack --opts tests/mocha-webpack.opts", | ||
"test:watch": "npm run test -- --watch", | ||
"pretest": "patch-package", | ||
"preversion": "npm run test:coverage", | ||
@@ -42,2 +42,6 @@ "version": "npm run build", | ||
"keywords": [ | ||
"form", | ||
"react-form", | ||
"forms", | ||
"informed", | ||
"react", | ||
@@ -47,9 +51,3 @@ "reactjs", | ||
"react-redux", | ||
"redux-form", | ||
"form", | ||
"react-form", | ||
"async", | ||
"async-form", | ||
"asynchronous-form", | ||
"asynchronous" | ||
"redux-form" | ||
], | ||
@@ -60,3 +58,2 @@ "license": "ISC", | ||
"@babel/plugin-proposal-class-properties": "^7.0.0-rc.1", | ||
"@babel/plugin-transform-runtime": "^7.0.0-rc.1", | ||
"@babel/preset-env": "^7.0.0-rc.1", | ||
@@ -79,3 +76,3 @@ "@babel/preset-react": "^7.0.0-rc.1", | ||
"enzyme": "^3.4.1", | ||
"enzyme-adapter-react-16": "^1.2.0", | ||
"enzyme-adapter-react-16": "^1.9.1", | ||
"eslint": "^5.3.0", | ||
@@ -93,5 +90,9 @@ "eslint-plugin-react": "^7.10.0", | ||
"prettier": "1.14.2", | ||
"react": "^16.4.2", | ||
"react-dom": "^16.4.2", | ||
"react": "^16.8.1", | ||
"react-dom": "^16.8.1", | ||
"react-prism": "^4.3.2", | ||
"rollup": "^1.1.2", | ||
"rollup-plugin-babel": "^4.3.2", | ||
"rollup-plugin-commonjs": "^9.2.0", | ||
"rollup-plugin-node-resolve": "^4.0.0", | ||
"sass-loader": "^7.1.0", | ||
@@ -105,10 +106,12 @@ "sinon": "^6.1.5", | ||
"webpack-cli": "^3.1.0", | ||
"webpack-dev-server": "^3.1.5", | ||
"webpack-dev-server": "^3.1.14", | ||
"webpack-node-externals": "^1.7.2" | ||
}, | ||
"dependencies": { | ||
"@babel/runtime-corejs2": "^7.0.0-rc.1" | ||
"debug": "^4.1.1", | ||
"lodash": "^4.17.11" | ||
}, | ||
"peerDependencies": { | ||
"react": "^16.0.0" | ||
"react": "^16.8.0", | ||
"react-dom": "^16.8.0" | ||
}, | ||
@@ -115,0 +118,0 @@ "nyc": { |
267
README.md
@@ -1,4 +0,4 @@ | ||
# Informed | ||
# Informed | ||
## By the creators of react-form | ||
## We have released V2!!! | ||
@@ -13,4 +13,6 @@ ### Go to [live examples, code and docs](https://joepuzzo.github.io/informed)! | ||
Say hello to the best react form library you have ever used! Informed is an extensive, simple, and efficient solution for creating basic to complex forms in react. Out of the box you get the ability to grab and manipulate values, validate fields, and create custom inputs. | ||
Say hello to the best react form library you have ever used! Informed is an extensive, simple, and efficient solution for creating basic to complex forms in react. Out of the box you get the ability to grab and manipulate values, validate fields, create custom inputs, and much much more!!! | ||
Oh and YES WE USE HOOKS!! | ||
## Getting Started | ||
@@ -28,35 +30,246 @@ | ||
<Form id="simple-form"> | ||
<label htmlFor="name-field">First name:</label> | ||
<Text field="name" id="name-field" /> | ||
<button type="submit"> | ||
Submit | ||
</button> | ||
</Form> | ||
<Form> | ||
<label> | ||
First name: | ||
<Text field="name"/> | ||
</label> | ||
<button type="submit">Submit</button> | ||
</Form>; | ||
``` | ||
#### Create a Simple Form With Validation | ||
```jsx | ||
import { Form, Text } from 'informed'; | ||
const validate = value => { | ||
return !value || value.length < 5 | ||
? 'Field must be at least five characters' | ||
: undefined; | ||
}; | ||
<Form> | ||
<label> | ||
First name: | ||
<Text field="name" validate={validate}/> | ||
</label> | ||
<button type="submit">Submit</button> | ||
</Form>; | ||
``` | ||
#### Create a Complex Form | ||
```jsx | ||
import { Form, Text, Scope } from 'informed'; | ||
import { Form, Text, ArrayField } from 'informed'; | ||
<Form id="complex-form"> | ||
<label htmlFor="complex-name">First name:</label> | ||
<Text field="name" id="complex-name" /> | ||
<Form> | ||
<label>First name:<Text field="name"/></label> | ||
<Scope scope="favorite"> | ||
<label htmlFor="complex-color">Favorite color:</label> | ||
<Text field="color" id="complex-color" /> | ||
<label htmlFor="complex-food">Favorite food:</label> | ||
<Text field="food" id="complex-food" /> | ||
<label>Favorite color:<Text field="color"/></label> | ||
<label>Favorite food:<Text field="food"/></label> | ||
</Scope> | ||
<label htmlFor="complex-friend-0">Friend 1:</label> | ||
<Text field="friends[0]" id="complex-friend-0"/> | ||
<label htmlFor="complex-friend-1">Friend 2:</label> | ||
<Text field="friends[1]" id="complex-friend-1"/> | ||
<label htmlFor="complex-friend-2">Friend 3:</label> | ||
<Text field="friends[2]" id="complex-friend-2"/> | ||
<button type="submit"> | ||
Submit | ||
</button> | ||
<label>Friend 1:<Text field="friends[0]" /></label> | ||
<label>Friend 2:<Text field="friends[1]" /></label> | ||
<label>Friend 3:<Text field="friends[2]" /></label> | ||
<label>Bio:<TextArea field="bio"/></label> | ||
<RadioGroup field="gender"> | ||
<label>Male <Radio value="male"/></label> | ||
<label>Female <Radio value="female"/></label> | ||
</RadioGroup> | ||
<label> | ||
Relationship status: | ||
<Select field="status"> | ||
<Option value="" disabled> | ||
Select One... | ||
</Option> | ||
<Option value="single">Single</Option> | ||
<Option value="relationship">Relationship</Option> | ||
<Option value="complicated">Complicated</Option> | ||
</Select> | ||
</label> | ||
<label> | ||
Colors: | ||
<Select | ||
field="colors" | ||
multiple | ||
<Option value="red">Red</Option> | ||
<Option value="green">Green</Option> | ||
<Option value="blue">Blue</Option> | ||
<Option value="yellow">Yellow</Option> | ||
<Option value="orange">Orange</Option> | ||
<Option value="purple">Purple</Option> | ||
</Select> | ||
</label> | ||
<label>Authorize: <Checkbox field="authorize"/></label> | ||
<button type="submit">Submit</button> | ||
</Form> | ||
``` | ||
#### Access Form State with Hooks! | ||
```jsx | ||
import { Form, Text, useFormState } from 'informed'; | ||
const ComponentUsingFormState = () => { | ||
const formState = useFormState(); | ||
return ( | ||
<pre> | ||
<code>{JSON.stringify(formState, null, 2)}</code> | ||
</pre> | ||
); | ||
}; | ||
<Form> | ||
<label>Name:<Text field="name" /></label> | ||
<button type="submit">Submit</button> | ||
<h5>Component using formState:</h5> | ||
<ComponentUsingFormState /> | ||
</Form> | ||
``` | ||
#### Control Form via FormApi through the use of Hooks!! | ||
```jsx | ||
import { Form, Text, useFormApi } from 'informed'; | ||
const ComponentUsingFormApi = () => { | ||
const formApi = useFormApi(); | ||
return ( | ||
<button type="button" onClick={()=> | ||
formApi.setValue( | ||
'name', | ||
Math.floor(Math.random() * Math.floor(Number.MAX_SAFE_INTEGER)))}> | ||
Random | ||
</button> | ||
); | ||
}; | ||
<Form> | ||
<div> | ||
<label>Name:<Text field="name"/></label> | ||
<button type="submit">Submit</button> | ||
<h5>Component using formApi:</h5> | ||
<ComponentUsingFormApi /> | ||
</div> | ||
</Form> | ||
``` | ||
#### Create custom inputs with built in validation!! | ||
```jsx | ||
import { Form, BasicText, asField } from 'informed'; | ||
const validate = value => { | ||
return !value || value.length < 5 | ||
? 'Field must be at least five characters' | ||
: undefined; | ||
}; | ||
const ErrorText = asField(({ fieldState, ...props }) => ( | ||
<React.Fragment> | ||
<BasicText | ||
fieldState={fieldState} | ||
{...props} | ||
style={fieldState.error ? { border: 'solid 1px red' } : null} | ||
/> | ||
{fieldState.error ? ( | ||
<small style={{ color: 'red' }}>{fieldState.error}</small> | ||
) : null} | ||
</React.Fragment> | ||
)); | ||
<Form> | ||
<label> | ||
First name: | ||
<ErrorText | ||
field="name" | ||
validate={validate} | ||
validateOnChange | ||
validateOnBlur | ||
/> | ||
</label> | ||
<button type="submit">Submit</button> | ||
</Form>; | ||
``` | ||
#### Create dynamic forms | ||
```jsx | ||
import { Form, Text, RadioGroup, Radio } from 'informed'; | ||
<Form> | ||
{({ formState }) => ( | ||
<React.Fragment> | ||
<label>First name:<Text field="name"/></label> | ||
<label>Are you married?</label> | ||
<RadioGroup field="married"> | ||
<label>Yes <Radio value="yes"/></label> | ||
<label>No <Radio value="no"/></label> | ||
</RadioGroup> | ||
{formState.values.married === 'yes' ? ( | ||
<label >Spouse name:<Text field="spouse" /></label> | ||
) : null} | ||
<button type="submit">Submit</button> | ||
</React.Fragment> | ||
)} | ||
</Form> | ||
``` | ||
**WARNING:** writing this in the above way is fine, it works they way we expect and gets us what we need... BUT! There is a better way! | ||
```jsx | ||
import { Form, Text, RadioGroup, Radio, useFieldState } from 'informed'; | ||
const Spouse = () => { | ||
const { value: married } = useFieldState('married'); | ||
return married === 'yes' ? <label >Spouse name:<Text field="spouse" /></label> : null; | ||
}; | ||
<Form> | ||
<label>First name:<Text field="name"/></label> | ||
<label>Are you married?</label> | ||
<RadioGroup field="married"> | ||
<label>Yes <Radio value="yes"/></label> | ||
<label>No <Radio value="no"/></label> | ||
</RadioGroup> | ||
<Spouse /> | ||
<button type="submit">Submit</button> | ||
</Form> | ||
``` | ||
Writing code the second way can typically save excess rendering! And, it looks much cleaner. | ||
#### Create dynamic forms with dynamic arrays !!! Mind Blown!!! | ||
```jsx | ||
import { Form, Text, ArrayField } from 'informed'; | ||
const DynamicArrays = () => { | ||
return ( | ||
<div> | ||
<Form> | ||
<ArrayField field="sibling"> | ||
{({ add, fields }) => ( | ||
<> | ||
<button onClick={add} type="button"> | ||
Add Sibling | ||
</button> | ||
{fields.map(({ field, key, remove }, i) => ( | ||
<label htmlFor={i} key={key}> | ||
Sibling {i}: | ||
<Text field={field} id={i} /> | ||
<button type="button" onClick={remove}> | ||
Remove | ||
</button> | ||
</label> | ||
))} | ||
</> | ||
)} | ||
</ArrayField> | ||
<button type="submit">Submit</button> | ||
<FormState /> | ||
</Form> | ||
</div> | ||
); | ||
}; |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 3 instances in 1 package
270907
8
5038
273
4
49
7
2
+ Addeddebug@^4.1.1
+ Addedlodash@^4.17.11
+ Addeddebug@4.4.0(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedms@2.1.3(transitive)
+ Addedreact-dom@16.14.0(transitive)
+ Addedscheduler@0.19.1(transitive)
- Removed@babel/runtime-corejs2@^7.0.0-rc.1
- Removed@babel/runtime-corejs2@7.26.9(transitive)
- Removedcore-js@2.6.12(transitive)
- Removedregenerator-runtime@0.14.1(transitive)