react-inform
Version:
Simple controlled forms with validations in react
1 lines • 13.9 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.reactInform=t(require("react")):e.reactInform=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FeedbackFormSubmit=t.DisabledFormSubmit=t.ResetFormButton=t.from=t.createValidate=t.form=void 0;var o=n(6),u=r(o),i=n(3),a=r(i),c=n(7),s=r(c),l=n(9),f=r(l),d=n(4),p=r(d),h=n(5),v=r(h);t.default=u.default,t.form=u.default,t.createValidate=a.default,t.from=s.default,t.ResetFormButton=f.default,t.DisabledFormSubmit=p.default,t.FeedbackFormSubmit=v.default},function(e,t,n){e.exports=n(12)()},function(t,n){t.exports=e},function(e,t){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object.keys(e);return{keys:r,index:t,key:r[t],value:e[r[t]],next:function(){return n(e,t+1,r)},done:t>=r.length}}function r(e,t,n){if(!n.done){var o=n.value(e,t);return u(o)?o.then(function(o){return o?r(e,t,n.next()):n.key}):o?r(e,t,n.next()):n.key}}function o(e){return function(t){var o={},i=[];return Object.keys(e).forEach(function(a){var c=e[a],s=t[a],l=r(s,t,n(c));u(l)?i.push(l.then(function(e){void 0!==e&&(o[a]=e)})):void 0!==l&&(o[a]=l)}),0===i.length?o:Promise.all(i).then(function(){return o})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=function(e){return!!e&&e.then instanceof Function}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){return s.default.createElement("input",u({type:"submit",disabled:!t.form.isValid()},e))}Object.defineProperty(t,"__esModule",{value:!0});var u=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};t.default=o;var i=n(1),a=r(i),c=n(2),s=r(c);o.contextTypes={form:a.default.object.isRequired}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,c,s=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},l=function(){function e(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)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),f=n(1),d=r(f),p=n(2),h=r(p),v=(c=a=function(e){function t(){return o(this,t),u(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),l(t,[{key:"handleClick",value:function(e){this.context.form.isValid()||(e.preventDefault(),this.context.form.forceValidate(),this.props.onInvalid&&this.props.onInvalid(e)),this.props.onClick&&this.props.onClick(e)}},{key:"render",value:function(){var e=this;return h.default.createElement("input",s({type:"submit"},this.props,{onClick:function(t){return e.handleClick(t)}}))}}]),t}(p.Component),a.propTypes={onInvalid:d.default.func,onClick:d.default.func},a.contextTypes={form:d.default.object.isRequired},c);t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return void 0===e?"":e}function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.fields,n=void 0===t?[]:t,r=e.validate,l=void 0===r?function(){return{}}:r;return function(e){var t,r;return r=t=function(t){function n(){var e,t,r,o;i(this,n);for(var u=arguments.length,c=Array(u),s=0;s<u;s++)c[s]=arguments[s];return t=r=a(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(c))),r.state={errors:{},valid:void 0},r.broadcastChange=function(e){r.props.onChange&&r.props.onChange(e)},r.broadcastTouched=function(e){r.props.onTouch&&r.props.onTouch(e)},o=t,a(r,o)}return c(n,t),d(n,[{key:"componentWillMount",value:function(){var e=this.props.value||{};this.setState({values:e});var t=this.props.touched||{};this.setState({touched:t}),this.handleValidate(e)}},{key:"componentWillReceiveProps",value:function(e){if(void 0!==e.value){var t=e.value;this.setState({values:t}),this.handleValidate(t,e.validate)}else void 0!==e.validate&&this.handleValidate(this.state.values,e.validate);if(void 0!==e.touched){var n=e.touched;this.setState({touched:n})}}},{key:"setValues",value:function(e){var t=this;void 0!==e&&(void 0!==this.props.value?this.broadcastChange(e):(this.setState({values:e},function(){return t.broadcastChange(e)}),this.handleValidate(e)))}},{key:"setErrors",value:function(e){var t=0===Object.keys(e).length;t!==this.state.valid&&(this.setState({valid:t}),this.props.onValidate&&this.props.onValidate(t)),this.setState({errors:e})}},{key:"handleValidate",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props.validate,r=n(e);r.then instanceof Function?r.then(function(e){return t.setErrors(e)}):this.setErrors(r)}},{key:"handleChange",value:function(e,t){var n=(0,m.default)(t),r=f({},this.state.values,u({},e,n));n!==this.state.values[e]&&this.setValues(r)}},{key:"updateTouched",value:function(e){var t=this;void 0!==this.props.touched?this.broadcastTouched(e):this.setState({touched:e},function(){return t.broadcastTouched(e)})}},{key:"touch",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.filter(function(e){return t.props.fields.indexOf(e)!==-1}),o=r.reduce(function(e,r){return e&&t.state.touched[r]===n},!0);if(!o){var i=r.reduce(function(e,t){return f({},e,u({},t,n))},this.state.touched);this.updateTouched(i)}}},{key:"formProps",value:function(){var e=this;return{isValid:function(){return e.state.valid},touch:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.touch(t)},forceValidate:function(){return e.touch(e.props.fields)},untouch:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.touch(t,!1)},resetTouched:function(){return e.touch(e.props.fields,!1)},values:function(){return e.state.values},onValues:function(t){e.setValues(t)}}}},{key:"baseProps",value:function(e){var t=this,n=this.state.values;return{onChange:function(n){return t.handleChange(e,n)},onBlur:function(){return t.touch([e])},value:s(n[e]),checked:"boolean"==typeof n[e]?n[e]:void 0}}},{key:"makeField",value:function(e){var t=this.state,n=t.errors,r=t.touched,o=this.baseProps(e);return f({},o,{error:r[e]?n[e]:void 0,props:o})}},{key:"makeFields",value:function(){var e=this;return this.props.fields.reduce(function(t,n){return f({},t,u({},n,e.makeField(n)))},{})}},{key:"generatedProps",value:function(){return{form:this.formProps(),fields:this.makeFields()}}},{key:"getChildContext",value:function(){return this.generatedProps()}},{key:"render",value:function(){var t=this.props,n=(t.value,t.onChange,t.onValidate,t.validate,t.fields,o(t,["value","onChange","onValidate","validate","fields"]));return y.default.createElement(e,f({},n,this.generatedProps()))}}]),n}(v.Component),t.defaultProps={fields:n,validate:l},t.childContextTypes={form:h.default.object,fields:h.default.object},t.propTypes={fields:h.default.array,validate:h.default.func,value:h.default.object,touched:h.default.object,onTouch:h.default.func,onChange:h.default.func,onValidate:h.default.func},r}}Object.defineProperty(t,"__esModule",{value:!0});var f=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},d=function(){function e(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)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=l;var p=n(1),h=r(p),v=n(2),y=r(v),b=n(8),m=r(b)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){return{fields:Object.keys(e),validate:(0,i.default)(e)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(3),i=r(u)},function(e,t){"use strict";function n(e){if(u(e)){var t=e.target,n=t.type,i=t.value,a=t.checked,c=t.files,s=e.dataTransfer;return"checkbox"===n?a:"file"===n?c||s&&s.files:"select-multiple"===n?o(e.target.options):i}return e&&"object"===("undefined"==typeof e?"undefined":r(e))&&void 0!==e.value?e.value:e}Object.defineProperty(t,"__esModule",{value:!0});var r="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};t.default=n;var o=function(e){var t=[];if(e)for(var n=0;n<e.length;n+=1){var r=e[n];r.selected&&t.push(r.value)}return t},u=function(e){return!!(e&&e.stopPropagation&&e.preventDefault)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var c,s,l=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},f=function(){function e(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)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),d=n(1),p=r(d),h=n(2),v=r(h),y=(s=c=function(e){function t(){return u(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),f(t,[{key:"handleClick",value:function(e){e.preventDefault(),this.context.form.onValues({}),this.props.resetTouched&&this.context.form.resetTouched()}},{key:"render",value:function(){var e=this,t=this.props,n=t.children,r=(t.resetTouched,o(t,["children","resetTouched"]));return v.default.createElement("button",l({},r,{onClick:function(t){return e.handleClick(t)}}),n||"Reset")}}]),t}(h.Component),c.propTypes={children:p.default.string,resetTouched:p.default.boolean},c.contextTypes={form:p.default.object.isRequired},s);t.default=y},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,u,i,a,c){if(o(t),!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,u,i,a,c],f=0;s=new Error(t.replace(/%s/g,function(){return l[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";var r=n(10),o=n(11),u=n(13);e.exports=function(){function e(e,t,n,r,i,a){a!==u&&o(!1,"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")}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,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n}])});