react-state-form
Version:
The inspiration to build this plugin is: - The developer doesn't have to worry about the basic input-change and data management of form. - Form syntax should be as close as possible to HTML native forms. - The form should provide basic validation ru
1 lines • 27.8 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define("reactStateForm",["React"],t):"object"==typeof exports?exports.reactStateForm=t(require("react")):e.reactStateForm=t(e.React)}(window,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}([function(e,t,n){e.exports=n(2)()},function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(3);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,s){if(s!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";n.r(t);var r=n(1),a=n.n(r),o=n(0),s=n.n(o),l={email:{rule:function(){return/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i},formatter:function(e){return"".concat(e," is not valid email")}},required:{rule:function(){return/\S/},formatter:function(e){return"".concat(e," is required.")}},numeric:{rule:function(){return/^\d+$/},formatter:function(e){return"".concat(e," should contain only numbers.")}},alphaNumeric:{rule:function(){return/^[a-z0-9]+$/i},formatter:function(e){return"".concat(e," should not contain special characters, please use only alphabets and numbers.")}},alphabetic:{rule:function(){return/^[a-z]+$/i},formatter:function(e){return"".concat(e," should contain only alphabets.")}},maxLength:{rule:function(e){return{test:function(t){return t.length<=e}}},formatter:function(e,t){return t?"".concat(e," can contain maximum ").concat(t," characters."):"".concat(e," contains more characters than expected.")}},minLength:{rule:function(e){return{test:function(t){return t.length>=e}}},formatter:function(e,t){return t?"".concat(e," should contain minimum ").concat(t," characters."):"".concat(e," contains less characters than expected.")}}};function i(e){return(i="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 u(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(n,!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e){return function(e){if(Array.isArray(e))return e}(e)||d(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function d(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=function(e){function t(e){var n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=b(t).call(this,e),n=!a||"object"!==i(a)&&"function"!=typeof a?v(r):a,m(v(n),"validateField",(function(e){var t=e.id,r=e.value,a=e.validate,o=e.displayName,s=e.customRules,i=void 0===s?{}:s,u="",c=a?a.split("|"):"";if(c.length){for(var d in c){var y=p(c[d].split("-")),b=y[0],v=y.slice(1),h=l[b]||i[b];try{if(""!==(u=n.validateRule({id:t,value:r,displayName:o,ruleValue:b,ruleArgs:v,validation:h})))break}catch(e){throw e}}n.setState((function(e){return f({},e,{errors:f({},e.errors,m({},t,u))})}))}}));var o=n.props,s=o.isDisabled,u=void 0!==s&&s,c=o.shouldValidateForm,d=o.defaultClasses;return n.state={shouldValidateForm:c,defaultClasses:d,isDisabled:u,errors:{},isFetching:!1},n}var n,r,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&&h(e,t)}(t,e),n=t,(r=[{key:"getChildContext",value:function(){var e=this;return{setFieldValue:function(t,n){var r=t.event,a=t.field,o=t.value,s=t.isMultipleValues,l=t.id,i=void 0===l?"value":l,u=a.id,c=function(t,r){e.setState((function(e){return f({},e,{fields:f({},e.fields,m({},u,f({},e.fields[t],m({shouldValidateField:!0},i,r))))})}),n)};if(o||""===o)if(s){var p=f({},e.state);for(var d in o)p.fields[d].shouldValidateField=!0,p.fields[d][i]=o[d];e.setState((function(e){return f({},e,{},p)}))}else c(u,o);else c(u,r.currentTarget.value);return e.state},addField:function(t){if(!t.id)throw'please add "id" property to field: '.concat(JSON.stringify(t));e.setState((function(e){return f({},e,{errors:f({},e.errors,m({},t.id,"")),fields:f({},e.fields,m({},t.id,f({},t)))})}))},setFormData:function(t){e.setState((function(e){return f({},e,{},t)}))},validateForm:function(t){var n=e.state,r=n.shouldValidateForm,a=n.fields,o=a[t];if(r){if(o)return void(o.shouldValidateField&&e.validateField(o));for(var s in a){var l=a[s];l&&e.validateField(l)}}},formData:this.state}}},{key:"render",value:function(){var e=this.props.children;return a.a.createElement("form",{action:""},e)}},{key:"validateRule",value:function(e){var t=e.id,n=e.value,r=e.displayName,a=e.ruleValue,o=e.ruleArgs,s=e.validation;if(!s)throw"invalid validation rule: ".concat(a,", please use an existing validation rule name or pass a custom function with same name through 'customRules' prop in Input: ").concat(t,". Rule value should be an object with keys: 'rule' as an Regex and 'formatter' as a function, that formats the value.");var l=n.toString();return"required"!==a&&!l||s.rule.apply(null,o).test(n.toString())?"":s.formatter.apply(null,[r||t].concat(u(o)))}}])&&y(n.prototype,r),o&&y(n,o),t}(r.Component);function C(e){var t=e.shouldUseDefaultClasses,n=e.classes,r=e.content,o=e.defaultClasses;return r?a.a.createElement("div",{className:"col-12 ".concat(n," ").concat(t&&o)},r):""}function O(e){return(O="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 j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(n,!0).forEach((function(t){F(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function D(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}m(g,"defaultProps",{errors:{},children:a.a.createElement("div",null),isDisabled:!1,shouldValidateForm:!0,defaultClasses:{contClass:"",fieldClass:"",errorClass:"",labelClass:""}}),m(g,"propTypes",{children:s.a.node,isDisabled:s.a.bool,shouldValidateForm:s.a.bool,defaultClasses:s.a.shape({labelClass:s.a.string,contClass:s.a.string,errorClass:s.a.string,fieldClass:s.a.string})}),m(g,"childContextTypes",{addField:s.a.func,setFieldValue:s.a.func,validateForm:s.a.func,formData:s.a.object,setFormData:s.a.func});var E=function(e){function t(){var e,n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,l=new Array(s),i=0;i<s;i++)l[i]=arguments[i];return r=this,o=(e=S(t)).call.apply(e,[this].concat(l)),n=!o||"object"!==O(o)&&"function"!=typeof o?D(r):o,F(D(n),"handleInputBlur",(function(e){var t=e.evt,r=e.field,a=n.props.id,o=r.value,s=r.events,l=r.shouldValidateField,i=n.context,u=i.validateForm,c=i.setFieldValue,f=w({},t);t.persist(),l?u(a):c({event:f,field:r,value:o.toString().length>0,id:"shouldValidateField"}),s.onBlur&&O(s.onBlur)&&s.onBlur(r)})),F(D(n),"handleInputChange",(function(e){var t=e.evt,r=e.field,a=w({},t),o=r.events.onChange,s=n.context.setFieldValue;t.persist(),s({event:a,field:r}),o&&"function"==typeof o&&o(a,r,s)})),F(D(n),"selectInputElement",(function(e){var t=e.type,n=e.props;return"textarea"===t?a.a.createElement("textarea",n):a.a.createElement("input",n)})),F(D(n),"getInputClassName",(function(e){var t=e.fieldClass,n=e.shouldUseDefaultClasses,r=e.defaultInputClass;return"".concat(t," ").concat(n?r:""," col-12")})),F(D(n),"selectField",(function(e){var t=e.fields,n=e.id;return t?t[n]:{}})),n}var n,r,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&&x(e,t)}(t,e),n=t,(r=[{key:"render",value:function(){var e=this,t=this.props.id,n=this.context.formData,r=n.fields,o=n.defaultClasses,s=n.errors;if(!r||!r[t])return a.a.createElement("div",null);var l=o.contClass,i=o.fieldClass,u=o.errorClass,c=o.labelClass,f=this.selectField({fields:r,id:t}),p=f.value,d=f.name,y=f.type,b=f.rows,v=f.label,h=f.events,m=f.placeholder,g=f.shouldUseDefaultClasses,O=f.classes,j=O.contClass,P=O.fieldClass,S=O.errorClass,D=O.labelClass,x=s&&s[t],F=w({},h,{name:d,type:y,placeholder:m,value:p,className:this.getInputClassName({fieldClass:P,shouldUseDefaultClasses:g,defaultInputClass:i}),onBlur:function(t){return e.handleInputBlur({evt:t,field:f})},onChange:function(t){return e.handleInputChange({evt:t,field:f})}});"textarea"===y&&(delete F.type,delete F.value,F.defaultValue=p,F.rows=b||2);var E=this.selectInputElement({type:y,props:F});return a.a.createElement("div",{className:"".concat(j," ").concat(g?l:""," input-cont col-12 grid")},C({shouldUseDefaultClasses:g,classes:"".concat(D," label"),content:v,defaultClasses:c}),E,C({shouldUseDefaultClasses:g,classes:S,content:x,defaultClasses:u}))}},{key:"componentWillMount",value:function(){this.context.addField(this.props)}}])&&P(n.prototype,r),o&&P(n,o),t}(r.Component);function _(e){return(_="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 k(){return(k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function T(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function V(e,t){return!t||"object"!==_(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 q(e,t){return(q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}F(E,"contextTypes",{addField:s.a.func.isRequired,setFieldValue:s.a.func.isRequired,validateForm:s.a.func.isRequired,formData:s.a.object.isRequired}),F(E,"propTypes",{id:s.a.string.isRequired,name:s.a.string,value:s.a.string,label:s.a.string,validate:s.a.string,placeholder:s.a.string,displayName:s.a.string,shouldUseDefaultClasses:s.a.bool,shouldValidateField:s.a.bool,type:s.a.oneOf(["email","text","number","tel","password","textarea"]),events:s.a.shape({onBlur:s.a.func,onChange:s.a.func}),classes:s.a.shape({labelClass:s.a.string,contClass:s.a.string,errorClass:s.a.string,fieldClass:s.a.string})}),F(E,"defaultProps",{type:"text",name:"",value:"",label:"",placeholder:"",validate:"",displayName:"",shouldValidateField:!1,shouldUseDefaultClasses:!0,events:{onChange:null,onBlur:null},classes:{labelClass:"",contClass:"",errorClass:"",fieldClass:""}});var I=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),V(this,N(t).apply(this,arguments))}var n,r,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&&q(e,t)}(t,e),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.displayName,n=e.events,r=e.classes,o=e.loadingClass,s=e.loadingText,l=e.shouldUseDefaultClasses,i=this.context,u=i.validateForm,c=i.formData,f=void 0===c?{}:c,p=i.setFormData,d=n.onClick,y=T(n,["onClick"]),b=f.defaultClasses,v=f.isFetching,h=f.errors,m=b.contClass,g=r.buttonClass,C=r.contClass,O=function(e){var t=e.apiErrors;p({apiErrors:t,isFetching:!1})};return a.a.createElement("div",{className:"col-12 grid input-cont ".concat(l&&m," ").concat(C)},a.a.createElement("input",k({className:"".concat(g," submit ").concat(v&&o)},y,{type:"submit",value:"".concat(v?s||"loading...":t),onClick:function(e){e.preventDefault(),v||(u(),h&&0===Object.values(h).join("").length&&(p({isFetching:!0}),d({formData:f,finishRequest:O})))}})))}}])&&R(n.prototype,r),o&&R(n,o),t}(r.Component);function U(e){return(U="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 B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function L(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(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 M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function W(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $(e,t){return($=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J(e){var t=e.props,n=e.context,r=t.id;return n.formData.fields[r]}A(I,"propTypes",{displayName:s.a.string.isRequired,loadingClass:s.a.string,shouldUseDefaultClasses:s.a.bool,events:s.a.shape({onClick:s.a.func}),classes:s.a.shape({buttonClass:s.a.string,contClass:s.a.string})}),A(I,"defaultProps",{events:{},classes:{buttonClass:"",contClass:""},loadingClass:"",shouldUseDefaultClasses:!0}),A(I,"contextTypes",{validateForm:s.a.func.isRequired,setFormData:s.a.func.isRequired,formData:s.a.shape({defaultClasses:s.a.shape({labelClass:"",contClass:"",errorClass:"",fieldClass:""}),isFetching:s.a.bool,errors:s.a.object})});var Y=function(e){function t(e,n){var r,o,s;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o=this,s=z(t).call(this,e),r=!s||"object"!==U(s)&&"function"!=typeof s?W(o):s,H(W(r),"drawSelectedValue",(function(){var e=J({props:r.props,context:r.context}),t=e.placeholder,n=e.options,o=e.value,s=e.classes.displayValueClass,l=o?function(e,t,n){return e.filter((function(e){return e[t]===n}))[0]}(n,"value",o).displayName:t;return a.a.createElement("div",{className:"col-12 field-value ".concat(s," select-value")},l)})),H(W(r),"drawOptions",(function(e){var t=e.optionClass,n=J({props:r.props,context:r.context}),o=n.options,s=n.value,l=n.placeholder,i=n.classes,u=a.a.createElement("div",{key:"default",role:"button",onClick:function(){r.updateSelect()},className:"".concat(t," option default")},l),c=o.map((function(e){var n=e.id,o=e.displayName,l=e.isDisabled,u=void 0!==l&&l,c=e.value;return a.a.createElement("div",{key:n,role:"button",onClick:function(){r.updateSelect(e)},className:"".concat(t," option ").concat(s===c&&i.selectedOptionClass," ").concat(u?"disabled-option":"")},o)}));return[u].concat(L(c))})),n.addField(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(n,!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e)),r}var n,r,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&&$(e,t)}(t,e),n=t,(r=[{key:"updateSelect",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{value:""},t=e.value,n=J({props:this.props,context:this.context}),r=n.id,a=n.events,o=this.context,s=o.setFieldValue,l=o.validateForm,i=o.formData,u=void 0===i?{}:i;s({field:n,event:{},value:t},(function(){l(r)})),a&&a.onChange&&!u.errors[r].length&&a.onChange({formData:u,setFieldValue:s})}},{key:"render",value:function(){var e=this.context.formData,t=void 0===e?{}:e,n=t.fields,r=t.defaultClasses,o=t.errors,s=this.props.id;if(n&&n[s]){var l=n[s],i=l.label,u=l.classes,c=l.shouldUseDefaultClasses,f=u.contClass,p=u.labelClass,d=u.errorClass,y=u.optionsContClass,b=u.optionClass,v=r.contClass,h=r.errorClass,m=r.labelClass,g=o[s];return a.a.createElement("div",{className:"select-box ".concat(f," ").concat(c&&v," grid col-12 input-cont")},C({shouldUseDefaultClasses:c,classes:"".concat(p," label"),content:i,defaultClasses:m}),a.a.createElement("div",{className:"select"},this.drawSelectedValue(),a.a.createElement("div",{className:"grid options ".concat(y)},this.drawOptions({optionClass:b}))),C({shouldUseDefaultClasses:c,classes:"".concat(d," error"),content:g,defaultClasses:h}))}return a.a.createElement("div",null)}}])&&M(n.prototype,r),o&&M(n,o),t}(r.Component);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 K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Q(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(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 X(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z(e){return(Z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ee(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function te(e,t){return(te=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}H(Y,"defaultProps",{value:"",label:"",events:{},validate:"",placeholder:"Select",displayName:"",shouldValidateField:!0,shouldUseDefaultClasses:!0,classes:{contClass:"",labelClass:"",fieldClass:"",errorClass:"",optionClass:"",selectedOptionClass:""}}),H(Y,"propTypes",{id:s.a.string.isRequired,value:s.a.string,label:s.a.string,validate:s.a.string,shouldValidateField:s.a.bool,shouldUseDefaultClasses:s.a.bool,placeholder:s.a.string,displayName:s.a.string,options:s.a.array.isRequired,classes:s.a.shape({contClass:s.a.string,labelClass:s.a.string,fieldClass:s.a.string,errorClass:s.a.string,optionClass:s.a.string,selectedOptionClass:s.a.string}),events:s.a.shape({onChange:s.a.func})}),H(Y,"contextTypes",{addField:s.a.func.isRequired,setFieldValue:s.a.func.isRequired,validateForm:s.a.func.isRequired,formData:s.a.object.isRequired});var re=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,s=new Array(o),l=0;l<o;l++)s[l]=arguments[l];return r=this,a=(e=Z(t)).call.apply(e,[this].concat(s)),n=!a||"object"!==G(a)&&"function"!=typeof a?ee(r):a,ne(ee(n),"getChecboxNewValue",(function(e){var t=e.event,n=e.field,r=e.isChecked,a=n.value||[],o=t.currentTarget.value;return!0===r?[].concat(Q(a),[o]):function(){var e=Q(a),t=e.indexOf(o);return e.splice(t,1),e}()})),ne(ee(n),"handleInputChange",(function(e){var t=e.event,r=n.props.id,a=n.context,o=a.formData.fields,s=a.setFieldValue,l=a.validateForm,i=o[r],u=i.type,c=t.currentTarget.value,f=t.currentTarget.checked,p="checkbox"===u?n.getChecboxNewValue({event:t,field:i,isChecked:f}):c;s({event:t,field:i,value:p},(function(){if(l(r),i.events.onChange&&"function"==typeof i.events.onChange){var e=n.context.formData;i.events.onChange({formData:e,setFieldValue:s})}}))})),n}var n,r,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&&te(e,t)}(t,e),n=t,(r=[{key:"drawOptions",value:function(e){var t=this,n=e.optionClass,r=e.optionContClass,o=e.optionLabelClass,s=this.props,l=s.options,i=s.id,u=s.type,c=this.context.formData.fields[i],f=Array.isArray(c.value)?c.value:[c.value];return l.map((function(e){var s=e.id,l=e.value,c=e.displayName;return a.a.createElement("div",{key:s,className:r},a.a.createElement("input",{id:s,value:l,name:i,type:u,className:n,defaultChecked:f.includes(l),onChange:function(e){var n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(n,!0).forEach((function(t){ne(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e);e.persist(),t.handleInputChange({event:n})}}),a.a.createElement("label",{htmlFor:s,className:o},c))}))}},{key:"render",value:function(){var e=this.props,t=e.id,n=e.label,r=e.classes,o=e.shouldUseDefaultClasses,s=r.contClass,l=r.labelClass,i=r.errorClass,u=r.optionClass,c=r.optionContClass,f=r.optionLabelClass,p=this.context.formData,d=void 0===p?{}:p,y=d.defaultClasses,b=d.errors,v=y.contClass,h=y.errorClass,m=y.labelClass,g=b[t];return a.a.createElement("div",{className:"input-cont ".concat(o&&v," ").concat(s)},C({shouldUseDefaultClasses:o,defaultClasses:m,classes:"".concat(l," label"),content:n}),d.fields&&d.fields[t]?this.drawOptions({optionClass:u,optionContClass:c,optionLabelClass:f}):"",C({shouldUseDefaultClasses:o,defaultClasses:h,classes:i,content:g}))}},{key:"componentDidMount",value:function(){this.context.addField(this.props)}}])&&X(n.prototype,r),o&&X(n,o),t}(r.Component);ne(re,"defaultProps",{displayName:"",label:"",events:{},validate:"",shouldValidateField:!0,shouldUseDefaultClasses:!0,classes:{contClass:"",labelClass:"",fieldClass:"",errorClass:"",optionClass:"",selectedOptionClass:""}}),ne(re,"propTypes",{id:s.a.string.isRequired,label:s.a.string,validate:s.a.string,shouldValidateField:s.a.bool,shouldUseDefaultClasses:s.a.bool,displayName:s.a.string,options:s.a.array.isRequired,type:s.a.oneOf(["checkbox","radio"]).isRequired,events:s.a.shape({onChange:s.a.func}),classes:s.a.shape({contClass:s.a.string,labelClass:s.a.string,fieldClass:s.a.string,errorClass:s.a.string,optionClass:s.a.string,selectedOptionClass:s.a.string}),value:s.a.oneOfType([s.a.array,s.a.string]).isRequired}),ne(re,"contextTypes",{addField:s.a.func.isRequired,setFieldValue:s.a.func.isRequired,validateForm:s.a.func.isRequired,formData:s.a.object.isRequired}),n.d(t,"Input",(function(){return E})),n.d(t,"Select",(function(){return Y})),n.d(t,"Submit",(function(){return I})),n.d(t,"Option",(function(){return re}));var ae=g;t.default=ae}])}));