From a20da5b7cd9ad1fb461d962b4d4a523659a8e257 Mon Sep 17 00:00:00 2001 From: Aesop Wolf Date: Thu, 15 Jun 2017 20:10:13 -0700 Subject: [PATCH] Migrate from React.PropTypes to prop-types --- package.json | 5 +++-- release/formsy-react.js | 2 +- release/formsy-react.js.map | 2 +- src/Mixin.js | 3 ++- src/main.js | 3 ++- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 225ce693..ac359eba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formsy-react", - "version": "0.19.2", + "version": "0.19.3", "description": "A form input builder and validator for React JS", "repository": { "type": "git", @@ -8,7 +8,7 @@ }, "main": "lib/main.js", "scripts": { - "deploy": "NODE_ENV=production webpack -p --config webpack.production.config.js", + "build": "NODE_ENV=production webpack -p --config webpack.production.config.js", "test": "babel-node testrunner", "examples": "webpack-dev-server --config examples/webpack.config.js --content-base examples", "prepublish": "babel ./src/ -d ./lib/" @@ -33,6 +33,7 @@ "babel-preset-stage-2": "^6.5.0", "jsdom": "^6.5.1", "nodeunit": "^0.9.1", + "prop-types": "^15.5.10", "react": "^15.0.0", "react-addons-pure-render-mixin": "^15.0.0", "react-addons-test-utils": "^15.0.0", diff --git a/release/formsy-react.js b/release/formsy-react.js index 7d6acbf3..b01174e3 100644 --- a/release/formsy-react.js +++ b/release/formsy-react.js @@ -1,2 +1,2 @@ -!function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i(require("react")):"function"==typeof define&&define.amd?define(["react"],i):"object"==typeof exports?exports.Formsy=i(require("react")):t.Formsy=i(t.react)}(this,function(t){return function(t){function i(r){if(e[r])return e[r].exports;var n=e[r]={exports:{},id:r,loaded:!1};return t[r].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}var e={};return i.m=t,i.c=e,i.p="",i(0)}([function(t,i,e){(function(i){"use strict";function r(t,i){var e={};for(var r in t)i.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}var n=Object.assign||function(t){for(var i=1;i0&&this.setInputValidationErrors(this.props.validationErrors);var t=this.inputs.map(function(t){return t.props.name});d.arraysDiffer(this.prevInputNames,t)&&this.validateForm()},reset:function(t){this.setFormPristine(!0),this.resetModel(t)},submit:function(t){t&&t.preventDefault(),this.setFormPristine(!1);var i=this.getModel();this.props.onSubmit(i,this.resetModel,this.updateInputsWithError),this.state.isValid?this.props.onValidSubmit(i,this.resetModel,this.updateInputsWithError):this.props.onInvalidSubmit(i,this.resetModel,this.updateInputsWithError)},mapModel:function(t){return this.props.mapping?this.props.mapping(t):l.toObj(Object.keys(t).reduce(function(i,e){for(var r=e.split("."),n=i;r.length;){var s=r.shift();n=n[s]=r.length?n[s]||{}:t[e]}return i},{}))},getModel:function(){var t=this.getCurrentValues();return this.mapModel(t)},resetModel:function(t){this.inputs.forEach(function(i){var e=i.props.name;t&&t.hasOwnProperty(e)?i.setValue(t[e]):i.resetValue()}),this.validateForm()},setInputValidationErrors:function(t){this.inputs.forEach(function(i){var e=i.props.name,r=[{_isValid:!(e in t),_validationError:"string"==typeof t[e]?[t[e]]:t[e]}];i.setState.apply(i,r)})},isChanged:function(){return!d.isSame(this.getPristineValues(),this.getCurrentValues())},getPristineValues:function(){return this.inputs.reduce(function(t,i){var e=i.props.name;return t[e]=i.props.value,t},{})},updateInputsWithError:function(t){var i=this;Object.keys(t).forEach(function(e,r){var n=d.find(i.inputs,function(t){return t.props.name===e});if(!n)throw new Error("You are trying to update an input that does not exist. Verify errors object with input names. "+JSON.stringify(t));var s=[{_isValid:i.props.preventExternalInvalidation||!1,_externalError:"string"==typeof t[e]?[t[e]]:t[e]}];n.setState.apply(n,s)})},isFormDisabled:function(){return this.props.disabled},getCurrentValues:function(){return this.inputs.reduce(function(t,i){var e=i.props.name;return t[e]=i.state._value,t},{})},setFormPristine:function(t){this.setState({_formSubmitted:!t}),this.inputs.forEach(function(i,e){i.setState({_formSubmitted:!t,_isPristine:t})})},validate:function(t){this.state.canChange&&this.props.onChange(this.getCurrentValues(),this.isChanged());var i=this.runValidation(t);t.setState({_isValid:i.isValid,_isRequired:i.isRequired,_validationError:i.error,_externalError:null},this.validateForm)},runValidation:function(t,i){var e=this.getCurrentValues(),r=t.props.validationErrors,n=t.props.validationError;i=2===arguments.length?i:t.state._value;var s=this.runRules(i,e,t._validations),o=this.runRules(i,e,t._requiredValidations);"function"==typeof t.validate&&(s.failed=t.validate()?[]:["failed"]);var u=!!Object.keys(t._requiredValidations).length&&!!o.success.length,a=!(s.failed.length||this.props.validationErrors&&this.props.validationErrors[t.props.name]);return{isRequired:u,isValid:!u&&a,error:function(){if(a&&!u)return p;if(s.errors.length)return s.errors;if(this.props.validationErrors&&this.props.validationErrors[t.props.name])return"string"==typeof this.props.validationErrors[t.props.name]?[this.props.validationErrors[t.props.name]]:this.props.validationErrors[t.props.name];if(u){var i=r[o.success[0]];return i?[i]:null}return s.failed.length?s.failed.map(function(t){return r[t]?r[t]:n}).filter(function(t,i,e){return e.indexOf(t)===i}):void 0}.call(this)}},runRules:function(t,i,e){var r={errors:[],failed:[],success:[]};return Object.keys(e).length&&Object.keys(e).forEach(function(n){if(a[n]&&"function"==typeof e[n])throw new Error("Formsy does not allow you to override default validations: "+n);if(!a[n]&&"function"!=typeof e[n])throw new Error("Formsy does not have the validation rule: "+n);if("function"==typeof e[n]){var s=e[n](i,t);return void("string"==typeof s?(r.errors.push(s),r.failed.push(n)):s||r.failed.push(n))}if("function"!=typeof e[n]){var s=a[n](i,t,e[n]);return void("string"==typeof s?(r.errors.push(s),r.failed.push(n)):s?r.success.push(n):r.failed.push(n))}return r.success.push(n)}),r},validateForm:function(){var t=this,i=function(){var t=this.inputs.every(function(t){return t.state._isValid});this.setState({isValid:t}),t?this.props.onValid():this.props.onInvalid(),this.setState({canChange:!0})}.bind(this);this.inputs.forEach(function(e,r){var n=t.runValidation(e);n.isValid&&e.state._externalError&&(n.isValid=!1),e.setState({_isValid:n.isValid,_isRequired:n.isRequired,_validationError:n.error,_externalError:!n.isValid&&e.state._externalError?e.state._externalError:null},r===t.inputs.length-1?i:null)}),!this.inputs.length&&this.isMounted()&&this.setState({canChange:!0})},attachToForm:function(t){this.inputs.indexOf(t)===-1&&this.inputs.push(t),this.validate(t)},detachFromForm:function(t){var i=this.inputs.indexOf(t);i!==-1&&(this.inputs=this.inputs.slice(0,i).concat(this.inputs.slice(i+1))),this.validateForm()},render:function(){var t=this.props,i=(t.mapping,t.validationErrors,t.onSubmit,t.onValid,t.onValidSubmit,t.onInvalid,t.onInvalidSubmit,t.onChange,t.reset,t.preventExternalInvalidation,t.onSuccess,t.onError,r(t,["mapping","validationErrors","onSubmit","onValid","onValidSubmit","onInvalid","onInvalidSubmit","onChange","reset","preventExternalInvalidation","onSuccess","onError"]));return o.createElement("form",n({},i,{onSubmit:this.submit}),this.props.children)}}),i.exports||i.module||i.define&&i.define.amd||(i.Formsy=u),t.exports=u}).call(i,function(){return this}())},function(i,e){i.exports=t},function(t,i,e){(function(i){"use strict";var r=e(3),n=i.React||e(1),s=function(t){return"string"==typeof t?t.split(/\,(?![^{\[]*[}\]])/g).reduce(function(t,i){var e=i.split(":"),r=e.shift();if(e=e.map(function(t){try{return JSON.parse(t)}catch(i){return t}}),e.length>1)throw new Error("Formsy does not support multiple args on string validations. Use object format of validations instead.");return t[r]=!e.length||e[0],t},{}):t||{}};t.exports={getInitialState:function(){return{_value:this.props.value,_isRequired:!1,_isValid:!0,_isPristine:!0,_pristineValue:this.props.value,_validationError:[],_externalError:null,_formSubmitted:!1}},contextTypes:{formsy:n.PropTypes.object},getDefaultProps:function(){return{validationError:"",validationErrors:{}}},componentWillMount:function(){var t=function(){this.setValidations(this.props.validations,this.props.required),this.context.formsy.attachToForm(this)}.bind(this);if(!this.props.name)throw new Error("Form Input requires a name property when used");t()},componentWillReceiveProps:function(t){this.setValidations(t.validations,t.required)},componentDidUpdate:function(t){r.isSame(this.props.value,t.value)||this.setValue(this.props.value),r.isSame(this.props.validations,t.validations)&&r.isSame(this.props.required,t.required)||this.context.formsy.validate(this)},componentWillUnmount:function(){this.context.formsy.detachFromForm(this)},setValidations:function(t,i){this._validations=s(t)||{},this._requiredValidations=i===!0?{isDefaultRequiredValue:!0}:s(i)},setValue:function(t){this.setState({_value:t,_isPristine:!1},function(){this.context.formsy.validate(this)}.bind(this))},resetValue:function(){this.setState({_value:this.state._pristineValue,_isPristine:!0},function(){this.context.formsy.validate(this)})},getValue:function(){return this.state._value},hasValue:function(){return""!==this.state._value},getErrorMessage:function(){var t=this.getErrorMessages();return t.length?t[0]:null},getErrorMessages:function(){return!this.isValid()||this.showRequired()?this.state._externalError||this.state._validationError||[]:[]},isFormDisabled:function(){return this.context.formsy.isFormDisabled()},isValid:function(){return this.state._isValid},isPristine:function(){return this.state._isPristine},isFormSubmitted:function(){return this.state._formSubmitted},isRequired:function(){return!!this.props.required},showRequired:function(){return this.state._isRequired},showError:function(){return!this.showRequired()&&!this.isValid()},isValidValue:function(t){return this.context.formsy.isValidValue.call(null,this,t)}}}).call(i,function(){return this}())},function(t,i){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports={arraysDiffer:function(t,i){var e=!1;return t.length!==i.length?e=!0:t.forEach(function(t,r){this.isSame(t,i[r])||(e=!0)},this),e},objectsDiffer:function(t,i){var e=!1;return Object.keys(t).length!==Object.keys(i).length?e=!0:Object.keys(t).forEach(function(r){this.isSame(t[r],i[r])||(e=!0)},this),e},isSame:function(t,i){return("undefined"==typeof t?"undefined":e(t))===("undefined"==typeof i?"undefined":e(i))&&(Array.isArray(t)&&Array.isArray(i)?!this.arraysDiffer(t,i):"function"==typeof t?t.toString()===i.toString():"object"===("undefined"==typeof t?"undefined":e(t))&&null!==t&&null!==i?!this.objectsDiffer(t,i):t===i)},find:function(t,i){for(var e=0,r=t.length;e=n}};t.exports=n},function(t,i){function e(t){return Object.keys(t).reduce(function(i,e){var r=e.match(/[^\[]*/i),n=e.match(/\[.*?\]/g)||[];n=[r[0]].concat(n).map(function(t){return t.replace(/\[|\]/g,"")});for(var s=i;n.length;){var o=n.shift();o in s?s=s[o]:(s[o]=n.length?isNaN(n[0])?{}:[]:t[e],s=s[o])}return i},{})}function r(t){function i(t,e,r){return Array.isArray(r)||"[object Object]"===Object.prototype.toString.call(r)?(Object.keys(r).forEach(function(n){i(t,e+"["+n+"]",r[n])}),t):(t[e]=r,t)}var e=Object.keys(t);return e.reduce(function(e,r){return i(e,r,t[r])},{})}t.exports={fromObj:r,toObj:e}}])}); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports.Formsy=e(require("react")):t.Formsy=e(t.react)}(this,function(t){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){(function(e){"use strict";function n(t,e){var r={};for(var n in t)e.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r}var i=Object.assign||function(t){for(var e=1;e0&&this.setInputValidationErrors(this.props.validationErrors);var t=this.inputs.map(function(t){return t.props.name});f.arraysDiffer(this.prevInputNames,t)&&this.validateForm()},reset:function(t){this.setFormPristine(!0),this.resetModel(t)},submit:function(t){t&&t.preventDefault(),this.setFormPristine(!1);var e=this.getModel();this.props.onSubmit(e,this.resetModel,this.updateInputsWithError),this.state.isValid?this.props.onValidSubmit(e,this.resetModel,this.updateInputsWithError):this.props.onInvalidSubmit(e,this.resetModel,this.updateInputsWithError)},mapModel:function(t){return this.props.mapping?this.props.mapping(t):l.toObj(Object.keys(t).reduce(function(e,r){for(var n=r.split("."),i=e;n.length;){var o=n.shift();i=i[o]=n.length?i[o]||{}:t[r]}return e},{}))},getModel:function(){var t=this.getCurrentValues();return this.mapModel(t)},resetModel:function(t){this.inputs.forEach(function(e){var r=e.props.name;t&&t.hasOwnProperty(r)?e.setValue(t[r]):e.resetValue()}),this.validateForm()},setInputValidationErrors:function(t){this.inputs.forEach(function(e){var r=e.props.name,n=[{_isValid:!(r in t),_validationError:"string"==typeof t[r]?[t[r]]:t[r]}];e.setState.apply(e,n)})},isChanged:function(){return!f.isSame(this.getPristineValues(),this.getCurrentValues())},getPristineValues:function(){return this.inputs.reduce(function(t,e){var r=e.props.name;return t[r]=e.props.value,t},{})},updateInputsWithError:function(t){var e=this;Object.keys(t).forEach(function(r,n){var i=f.find(e.inputs,function(t){return t.props.name===r});if(!i)throw new Error("You are trying to update an input that does not exist. Verify errors object with input names. "+JSON.stringify(t));var o=[{_isValid:e.props.preventExternalInvalidation||!1,_externalError:"string"==typeof t[r]?[t[r]]:t[r]}];i.setState.apply(i,o)})},isFormDisabled:function(){return this.props.disabled},getCurrentValues:function(){return this.inputs.reduce(function(t,e){var r=e.props.name;return t[r]=e.state._value,t},{})},setFormPristine:function(t){this.setState({_formSubmitted:!t}),this.inputs.forEach(function(e,r){e.setState({_formSubmitted:!t,_isPristine:t})})},validate:function(t){this.state.canChange&&this.props.onChange(this.getCurrentValues(),this.isChanged());var e=this.runValidation(t);t.setState({_isValid:e.isValid,_isRequired:e.isRequired,_validationError:e.error,_externalError:null},this.validateForm)},runValidation:function(t,e){var r=this.getCurrentValues(),n=t.props.validationErrors,i=t.props.validationError;e=2===arguments.length?e:t.state._value;var o=this.runRules(e,r,t._validations),u=this.runRules(e,r,t._requiredValidations);"function"==typeof t.validate&&(o.failed=t.validate()?[]:["failed"]);var s=!!Object.keys(t._requiredValidations).length&&!!u.success.length,a=!(o.failed.length||this.props.validationErrors&&this.props.validationErrors[t.props.name]);return{isRequired:s,isValid:!s&&a,error:function(){if(a&&!s)return m;if(o.errors.length)return o.errors;if(this.props.validationErrors&&this.props.validationErrors[t.props.name])return"string"==typeof this.props.validationErrors[t.props.name]?[this.props.validationErrors[t.props.name]]:this.props.validationErrors[t.props.name];if(s){var e=n[u.success[0]];return e?[e]:null}return o.failed.length?o.failed.map(function(t){return n[t]?n[t]:i}).filter(function(t,e,r){return r.indexOf(t)===e}):void 0}.call(this)}},runRules:function(t,e,r){var n={errors:[],failed:[],success:[]};return Object.keys(r).length&&Object.keys(r).forEach(function(i){if(c[i]&&"function"==typeof r[i])throw new Error("Formsy does not allow you to override default validations: "+i);if(!c[i]&&"function"!=typeof r[i])throw new Error("Formsy does not have the validation rule: "+i);if("function"==typeof r[i]){var o=r[i](e,t);return void("string"==typeof o?(n.errors.push(o),n.failed.push(i)):o||n.failed.push(i))}if("function"!=typeof r[i]){var o=c[i](e,t,r[i]);return void("string"==typeof o?(n.errors.push(o),n.failed.push(i)):o?n.success.push(i):n.failed.push(i))}return n.success.push(i)}),n},validateForm:function(){var t=this,e=function(){var t=this.inputs.every(function(t){return t.state._isValid});this.setState({isValid:t}),t?this.props.onValid():this.props.onInvalid(),this.setState({canChange:!0})}.bind(this);this.inputs.forEach(function(r,n){var i=t.runValidation(r);i.isValid&&r.state._externalError&&(i.isValid=!1),r.setState({_isValid:i.isValid,_isRequired:i.isRequired,_validationError:i.error,_externalError:!i.isValid&&r.state._externalError?r.state._externalError:null},n===t.inputs.length-1?e:null)}),!this.inputs.length&&this.isMounted()&&this.setState({canChange:!0})},attachToForm:function(t){this.inputs.indexOf(t)===-1&&this.inputs.push(t),this.validate(t)},detachFromForm:function(t){var e=this.inputs.indexOf(t);e!==-1&&(this.inputs=this.inputs.slice(0,e).concat(this.inputs.slice(e+1))),this.validateForm()},render:function(){var t=this.props,e=(t.mapping,t.validationErrors,t.onSubmit,t.onValid,t.onValidSubmit,t.onInvalid,t.onInvalidSubmit,t.onChange,t.reset,t.preventExternalInvalidation,t.onSuccess,t.onError,n(t,["mapping","validationErrors","onSubmit","onValid","onValidSubmit","onInvalid","onInvalidSubmit","onChange","reset","preventExternalInvalidation","onSuccess","onError"]));return s.createElement("form",i({},e,{onSubmit:this.submit}),this.props.children)}}),e.exports||e.module||e.define&&e.define.amd||(e.Formsy=a),t.exports=a}).call(e,function(){return this}())},function(t,e){function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===r||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(f===clearTimeout)return clearTimeout(t);if((f===n||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function u(){F&&d&&(F=!1,d.length?h=d.concat(h):m=-1,h.length&&s())}function s(){if(!F){var t=i(u);F=!0;for(var e=h.length;e;){for(d=h,h=[];++m1)for(var r=1;r1)throw new Error("Formsy does not support multiple args on string validations. Use object format of validations instead.");return t[n]=!r.length||r[0],t},{}):t||{}});t.exports={getInitialState:function(){return{_value:this.props.value,_isRequired:!1,_isValid:!0,_isPristine:!0,_pristineValue:this.props.value,_validationError:[],_externalError:null,_formSubmitted:!1}},contextTypes:{formsy:n.object},getDefaultProps:function(){return{validationError:"",validationErrors:{}}},componentWillMount:function(){var t=function(){this.setValidations(this.props.validations,this.props.required),this.context.formsy.attachToForm(this)}.bind(this);if(!this.props.name)throw new Error("Form Input requires a name property when used");t()},componentWillReceiveProps:function(t){this.setValidations(t.validations,t.required)},componentDidUpdate:function(t){i.isSame(this.props.value,t.value)||this.setValue(this.props.value),i.isSame(this.props.validations,t.validations)&&i.isSame(this.props.required,t.required)||this.context.formsy.validate(this)},componentWillUnmount:function(){this.context.formsy.detachFromForm(this)},setValidations:function(t,e){this._validations=o(t)||{},this._requiredValidations=e===!0?{isDefaultRequiredValue:!0}:o(e)},setValue:function(t){this.setState({_value:t,_isPristine:!1},function(){this.context.formsy.validate(this)}.bind(this))},resetValue:function(){this.setState({_value:this.state._pristineValue,_isPristine:!0},function(){this.context.formsy.validate(this)})},getValue:function(){return this.state._value},hasValue:function(){return""!==this.state._value},getErrorMessage:function(){var t=this.getErrorMessages();return t.length?t[0]:null},getErrorMessages:function(){return!this.isValid()||this.showRequired()?this.state._externalError||this.state._validationError||[]:[]},isFormDisabled:function(){return this.context.formsy.isFormDisabled()},isValid:function(){return this.state._isValid},isPristine:function(){return this.state._isPristine},isFormSubmitted:function(){return this.state._formSubmitted},isRequired:function(){return!!this.props.required},showRequired:function(){return this.state._isRequired},showError:function(){return!this.showRequired()&&!this.isValid()},isValidValue:function(t){return this.context.formsy.isValidValue.call(null,this,t)}}}).call(e,function(){return this}())},function(t,e){"use strict";function r(t){return function(){return t}}var n=function(){};n.thatReturns=r,n.thatReturnsFalse=r(!1),n.thatReturnsTrue=r(!0),n.thatReturnsNull=r(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(t){return t},t.exports=n},function(t,e,r){(function(e){"use strict";function r(t,e,r,i,o,u,s,a){if(n(e),!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,i,o,u,s,a],f=0;c=new Error(e.replace(/%s/g,function(){return l[f++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var n=function(t){};"production"!==e.env.NODE_ENV&&(n=function(t){if(void 0===t)throw new Error("invariant requires an error message argument")}),t.exports=r}).call(e,r(1))},function(t,e){"use strict";var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";t.exports=r},function(t,e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports={arraysDiffer:function(t,e){var r=!1;return t.length!==e.length?r=!0:t.forEach(function(t,n){this.isSame(t,e[n])||(r=!0)},this),r},objectsDiffer:function(t,e){var r=!1;return Object.keys(t).length!==Object.keys(e).length?r=!0:Object.keys(t).forEach(function(n){this.isSame(t[n],e[n])||(r=!0)},this),r},isSame:function(t,e){return("undefined"==typeof t?"undefined":r(t))===("undefined"==typeof e?"undefined":r(e))&&(Array.isArray(t)&&Array.isArray(e)?!this.arraysDiffer(t,e):"function"==typeof t?t.toString()===e.toString():"object"===("undefined"==typeof t?"undefined":r(t))&&null!==t&&null!==e?!this.objectsDiffer(t,e):t===e)},find:function(t,e){for(var r=0,n=t.length;r1?e-1:0),n=1;n2?n-2:0),o=2;o=i}};t.exports=i},function(t,e){function r(t){return Object.keys(t).reduce(function(e,r){var n=r.match(/[^\[]*/i),i=r.match(/\[.*?\]/g)||[];i=[n[0]].concat(i).map(function(t){return t.replace(/\[|\]/g,"")});for(var o=e;i.length;){var u=i.shift();u in o?o=o[u]:(o[u]=i.length?isNaN(i[0])?{}:[]:t[r],o=o[u])}return e},{})}function n(t){function e(t,r,n){return Array.isArray(n)||"[object Object]"===Object.prototype.toString.call(n)?(Object.keys(n).forEach(function(i){e(t,r+"["+i+"]",n[i])}),t):(t[r]=n,t)}var r=Object.keys(t);return r.reduce(function(r,n){return e(r,n,t[n])},{})}t.exports={fromObj:n,toObj:r}},function(t,e,r){(function(e){"use strict";function n(t,r,n,a,c){if("production"!==e.env.NODE_ENV)for(var l in t)if(t.hasOwnProperty(l)){var f;try{i("function"==typeof t[l],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",a||"React class",n,l),f=t[l](r,l,a,n,null,u)}catch(t){f=t}if(o(!f||f instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",a||"React class",n,l,typeof f),f instanceof Error&&!(f.message in s)){s[f.message]=!0;var p=c?c():"";o(!1,"Failed %s type: %s%s",n,f.message,null!=p?p:"")}}}if("production"!==e.env.NODE_ENV)var i=r(5),o=r(8),u=r(6),s={};t.exports=n}).call(e,r(1))},function(t,e,r){"use strict";var n=r(4),i=r(5),o=r(6);t.exports=function(){function t(t,e,r,n,u,s){s!==o&&i(!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 e(){return t}t.isRequired=t;var r={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e};return r.checkPropTypes=n,r.PropTypes=r,r}},function(t,e,r){(function(e){"use strict";var n=r(4),i=r(5),o=r(8),u=r(6),s=r(14);t.exports=function(t,r){function a(t){var e=t&&(O&&t[O]||t[R]);if("function"==typeof e)return e}function c(t,e){return t===e?0!==t||1/t===1/e:t!==t&&e!==e}function l(t){this.message=t,this.stack=""}function f(t){function n(n,c,f,p,d,h,F){if(p=p||T,h=h||f,F!==u)if(r)i(!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");else if("production"!==e.env.NODE_ENV&&"undefined"!=typeof console){var m=p+":"+f;!s[m]&&a<3&&(o(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",h,p),s[m]=!0,a++)}return null==c[f]?n?new l(null===c[f]?"The "+d+" `"+h+"` is marked as required "+("in `"+p+"`, but its value is `null`."):"The "+d+" `"+h+"` is marked as required in "+("`"+p+"`, but its value is `undefined`.")):null:t(c,f,p,d,h)}if("production"!==e.env.NODE_ENV)var s={},a=0;var c=n.bind(null,!1);return c.isRequired=n.bind(null,!0),c}function p(t){function e(e,r,n,i,o,u){var s=e[r],a=V(s);if(a!==t){var c=S(s);return new l("Invalid "+i+" `"+o+"` of type "+("`"+c+"` supplied to `"+n+"`, expected ")+("`"+t+"`."))}return null}return f(e)}function d(){return f(n.thatReturnsNull)}function h(t){function e(e,r,n,i,o){if("function"!=typeof t)return new l("Property `"+o+"` of component `"+n+"` has invalid PropType notation inside arrayOf.");var s=e[r];if(!Array.isArray(s)){var a=V(s);return new l("Invalid "+i+" `"+o+"` of type "+("`"+a+"` supplied to `"+n+"`, expected an array."))}for(var c=0;c= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar React = global.React || __webpack_require__(1);\n\tvar Formsy = {};\n\tvar validationRules = __webpack_require__(6);\n\tvar formDataToObject = __webpack_require__(7);\n\tvar utils = __webpack_require__(3);\n\tvar Mixin = __webpack_require__(2);\n\tvar HOC = __webpack_require__(5);\n\tvar Decorator = __webpack_require__(4);\n\tvar options = {};\n\tvar emptyArray = [];\n\t\n\tFormsy.Mixin = Mixin;\n\tFormsy.HOC = HOC;\n\tFormsy.Decorator = Decorator;\n\t\n\tFormsy.defaults = function (passedOptions) {\n\t options = passedOptions;\n\t};\n\t\n\tFormsy.addValidationRule = function (name, func) {\n\t validationRules[name] = func;\n\t};\n\t\n\tFormsy.Form = React.createClass({\n\t displayName: 'Formsy',\n\t getInitialState: function getInitialState() {\n\t return {\n\t isValid: true,\n\t isSubmitting: false,\n\t canChange: false\n\t };\n\t },\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t onSuccess: function onSuccess() {},\n\t onError: function onError() {},\n\t onSubmit: function onSubmit() {},\n\t onValidSubmit: function onValidSubmit() {},\n\t onInvalidSubmit: function onInvalidSubmit() {},\n\t onValid: function onValid() {},\n\t onInvalid: function onInvalid() {},\n\t onChange: function onChange() {},\n\t validationErrors: null,\n\t preventExternalInvalidation: false\n\t };\n\t },\n\t\n\t childContextTypes: {\n\t formsy: React.PropTypes.object\n\t },\n\t getChildContext: function getChildContext() {\n\t var _this = this;\n\t\n\t return {\n\t formsy: {\n\t attachToForm: this.attachToForm,\n\t detachFromForm: this.detachFromForm,\n\t validate: this.validate,\n\t isFormDisabled: this.isFormDisabled,\n\t isValidValue: function isValidValue(component, value) {\n\t return _this.runValidation(component, value).isValid;\n\t }\n\t }\n\t };\n\t },\n\t\n\t // Add a map to store the inputs of the form, a model to store\n\t // the values of the form and register child inputs\n\t componentWillMount: function componentWillMount() {\n\t this.inputs = [];\n\t },\n\t\n\t componentDidMount: function componentDidMount() {\n\t this.validateForm();\n\t },\n\t\n\t componentWillUpdate: function componentWillUpdate() {\n\t // Keep a reference to input names before form updates,\n\t // to check if inputs has changed after render\n\t this.prevInputNames = this.inputs.map(function (component) {\n\t return component.props.name;\n\t });\n\t },\n\t\n\t componentDidUpdate: function componentDidUpdate() {\n\t\n\t if (this.props.validationErrors && _typeof(this.props.validationErrors) === 'object' && Object.keys(this.props.validationErrors).length > 0) {\n\t this.setInputValidationErrors(this.props.validationErrors);\n\t }\n\t\n\t var newInputNames = this.inputs.map(function (component) {\n\t return component.props.name;\n\t });\n\t if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n\t this.validateForm();\n\t }\n\t },\n\t\n\t // Allow resetting to specified data\n\t reset: function reset(data) {\n\t this.setFormPristine(true);\n\t this.resetModel(data);\n\t },\n\t\n\t // Update model, submit to url prop and send the model\n\t submit: function submit(event) {\n\t\n\t event && event.preventDefault();\n\t\n\t // Trigger form as not pristine.\n\t // If any inputs have not been touched yet this will make them dirty\n\t // so validation becomes visible (if based on isPristine)\n\t this.setFormPristine(false);\n\t var model = this.getModel();\n\t this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n\t this.state.isValid ? this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError) : this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\n\t },\n\t\n\t mapModel: function mapModel(model) {\n\t\n\t if (this.props.mapping) {\n\t return this.props.mapping(model);\n\t } else {\n\t return formDataToObject.toObj(Object.keys(model).reduce(function (mappedModel, key) {\n\t\n\t var keyArray = key.split('.');\n\t var base = mappedModel;\n\t while (keyArray.length) {\n\t var currentKey = keyArray.shift();\n\t base = base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n\t }\n\t\n\t return mappedModel;\n\t }, {}));\n\t }\n\t },\n\t\n\t getModel: function getModel() {\n\t var currentValues = this.getCurrentValues();\n\t return this.mapModel(currentValues);\n\t },\n\t\n\t // Reset each key in the model to the original / initial / specified value\n\t resetModel: function resetModel(data) {\n\t this.inputs.forEach(function (component) {\n\t var name = component.props.name;\n\t if (data && data.hasOwnProperty(name)) {\n\t component.setValue(data[name]);\n\t } else {\n\t component.resetValue();\n\t }\n\t });\n\t this.validateForm();\n\t },\n\t\n\t setInputValidationErrors: function setInputValidationErrors(errors) {\n\t this.inputs.forEach(function (component) {\n\t var name = component.props.name;\n\t var args = [{\n\t _isValid: !(name in errors),\n\t _validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n\t }];\n\t component.setState.apply(component, args);\n\t });\n\t },\n\t\n\t // Checks if the values have changed from their initial value\n\t isChanged: function isChanged() {\n\t return !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\t },\n\t\n\t getPristineValues: function getPristineValues() {\n\t return this.inputs.reduce(function (data, component) {\n\t var name = component.props.name;\n\t data[name] = component.props.value;\n\t return data;\n\t }, {});\n\t },\n\t\n\t // Go through errors from server and grab the components\n\t // stored in the inputs map. Change their state to invalid\n\t // and set the serverError message\n\t updateInputsWithError: function updateInputsWithError(errors) {\n\t var _this2 = this;\n\t\n\t Object.keys(errors).forEach(function (name, index) {\n\t var component = utils.find(_this2.inputs, function (component) {\n\t return component.props.name === name;\n\t });\n\t if (!component) {\n\t throw new Error('You are trying to update an input that does not exist. ' + 'Verify errors object with input names. ' + JSON.stringify(errors));\n\t }\n\t var args = [{\n\t _isValid: _this2.props.preventExternalInvalidation || false,\n\t _externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n\t }];\n\t component.setState.apply(component, args);\n\t });\n\t },\n\t\n\t isFormDisabled: function isFormDisabled() {\n\t return this.props.disabled;\n\t },\n\t\n\t getCurrentValues: function getCurrentValues() {\n\t return this.inputs.reduce(function (data, component) {\n\t var name = component.props.name;\n\t data[name] = component.state._value;\n\t return data;\n\t }, {});\n\t },\n\t\n\t setFormPristine: function setFormPristine(isPristine) {\n\t this.setState({\n\t _formSubmitted: !isPristine\n\t });\n\t\n\t // Iterate through each component and set it as pristine\n\t // or \"dirty\".\n\t this.inputs.forEach(function (component, index) {\n\t component.setState({\n\t _formSubmitted: !isPristine,\n\t _isPristine: isPristine\n\t });\n\t });\n\t },\n\t\n\t // Use the binded values and the actual input value to\n\t // validate the input and set its state. Then check the\n\t // state of the form itself\n\t validate: function validate(component) {\n\t\n\t // Trigger onChange\n\t if (this.state.canChange) {\n\t this.props.onChange(this.getCurrentValues(), this.isChanged());\n\t }\n\t\n\t var validation = this.runValidation(component);\n\t // Run through the validations, split them up and call\n\t // the validator IF there is a value or it is required\n\t component.setState({\n\t _isValid: validation.isValid,\n\t _isRequired: validation.isRequired,\n\t _validationError: validation.error,\n\t _externalError: null\n\t }, this.validateForm);\n\t },\n\t\n\t // Checks validation on current value or a passed value\n\t runValidation: function runValidation(component, value) {\n\t\n\t var currentValues = this.getCurrentValues();\n\t var validationErrors = component.props.validationErrors;\n\t var validationError = component.props.validationError;\n\t value = arguments.length === 2 ? value : component.state._value;\n\t\n\t var validationResults = this.runRules(value, currentValues, component._validations);\n\t var requiredResults = this.runRules(value, currentValues, component._requiredValidations);\n\t\n\t // the component defines an explicit validate function\n\t if (typeof component.validate === \"function\") {\n\t validationResults.failed = component.validate() ? [] : ['failed'];\n\t }\n\t\n\t var isRequired = Object.keys(component._requiredValidations).length ? !!requiredResults.success.length : false;\n\t var isValid = !validationResults.failed.length && !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\t\n\t return {\n\t isRequired: isRequired,\n\t isValid: isRequired ? false : isValid,\n\t error: function () {\n\t\n\t if (isValid && !isRequired) {\n\t return emptyArray;\n\t }\n\t\n\t if (validationResults.errors.length) {\n\t return validationResults.errors;\n\t }\n\t\n\t if (this.props.validationErrors && this.props.validationErrors[component.props.name]) {\n\t return typeof this.props.validationErrors[component.props.name] === 'string' ? [this.props.validationErrors[component.props.name]] : this.props.validationErrors[component.props.name];\n\t }\n\t\n\t if (isRequired) {\n\t var error = validationErrors[requiredResults.success[0]];\n\t return error ? [error] : null;\n\t }\n\t\n\t if (validationResults.failed.length) {\n\t return validationResults.failed.map(function (failed) {\n\t return validationErrors[failed] ? validationErrors[failed] : validationError;\n\t }).filter(function (x, pos, arr) {\n\t // Remove duplicates\n\t return arr.indexOf(x) === pos;\n\t });\n\t }\n\t }.call(this)\n\t };\n\t },\n\t\n\t runRules: function runRules(value, currentValues, validations) {\n\t\n\t var results = {\n\t errors: [],\n\t failed: [],\n\t success: []\n\t };\n\t if (Object.keys(validations).length) {\n\t Object.keys(validations).forEach(function (validationMethod) {\n\t\n\t if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') {\n\t throw new Error('Formsy does not allow you to override default validations: ' + validationMethod);\n\t }\n\t\n\t if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') {\n\t throw new Error('Formsy does not have the validation rule: ' + validationMethod);\n\t }\n\t\n\t if (typeof validations[validationMethod] === 'function') {\n\t var validation = validations[validationMethod](currentValues, value);\n\t if (typeof validation === 'string') {\n\t results.errors.push(validation);\n\t results.failed.push(validationMethod);\n\t } else if (!validation) {\n\t results.failed.push(validationMethod);\n\t }\n\t return;\n\t } else if (typeof validations[validationMethod] !== 'function') {\n\t var validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n\t if (typeof validation === 'string') {\n\t results.errors.push(validation);\n\t results.failed.push(validationMethod);\n\t } else if (!validation) {\n\t results.failed.push(validationMethod);\n\t } else {\n\t results.success.push(validationMethod);\n\t }\n\t return;\n\t }\n\t\n\t return results.success.push(validationMethod);\n\t });\n\t }\n\t\n\t return results;\n\t },\n\t\n\t // Validate the form by going through all child input components\n\t // and check their state\n\t validateForm: function validateForm() {\n\t var _this3 = this;\n\t\n\t // We need a callback as we are validating all inputs again. This will\n\t // run when the last component has set its state\n\t var onValidationComplete = function () {\n\t var allIsValid = this.inputs.every(function (component) {\n\t return component.state._isValid;\n\t });\n\t\n\t this.setState({\n\t isValid: allIsValid\n\t });\n\t\n\t if (allIsValid) {\n\t this.props.onValid();\n\t } else {\n\t this.props.onInvalid();\n\t }\n\t\n\t // Tell the form that it can start to trigger change events\n\t this.setState({\n\t canChange: true\n\t });\n\t }.bind(this);\n\t\n\t // Run validation again in case affected by other inputs. The\n\t // last component validated will run the onValidationComplete callback\n\t this.inputs.forEach(function (component, index) {\n\t var validation = _this3.runValidation(component);\n\t if (validation.isValid && component.state._externalError) {\n\t validation.isValid = false;\n\t }\n\t component.setState({\n\t _isValid: validation.isValid,\n\t _isRequired: validation.isRequired,\n\t _validationError: validation.error,\n\t _externalError: !validation.isValid && component.state._externalError ? component.state._externalError : null\n\t }, index === _this3.inputs.length - 1 ? onValidationComplete : null);\n\t });\n\t\n\t // If there are no inputs, set state where form is ready to trigger\n\t // change event. New inputs might be added later\n\t if (!this.inputs.length && this.isMounted()) {\n\t this.setState({\n\t canChange: true\n\t });\n\t }\n\t },\n\t\n\t // Method put on each input component to register\n\t // itself to the form\n\t attachToForm: function attachToForm(component) {\n\t\n\t if (this.inputs.indexOf(component) === -1) {\n\t this.inputs.push(component);\n\t }\n\t\n\t this.validate(component);\n\t },\n\t\n\t // Method put on each input component to unregister\n\t // itself from the form\n\t detachFromForm: function detachFromForm(component) {\n\t var componentPos = this.inputs.indexOf(component);\n\t\n\t if (componentPos !== -1) {\n\t this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n\t }\n\t\n\t this.validateForm();\n\t },\n\t render: function render() {\n\t var _props = this.props,\n\t mapping = _props.mapping,\n\t validationErrors = _props.validationErrors,\n\t onSubmit = _props.onSubmit,\n\t onValid = _props.onValid,\n\t onValidSubmit = _props.onValidSubmit,\n\t onInvalid = _props.onInvalid,\n\t onInvalidSubmit = _props.onInvalidSubmit,\n\t onChange = _props.onChange,\n\t reset = _props.reset,\n\t preventExternalInvalidation = _props.preventExternalInvalidation,\n\t onSuccess = _props.onSuccess,\n\t onError = _props.onError,\n\t nonFormsyProps = _objectWithoutProperties(_props, ['mapping', 'validationErrors', 'onSubmit', 'onValid', 'onValidSubmit', 'onInvalid', 'onInvalidSubmit', 'onChange', 'reset', 'preventExternalInvalidation', 'onSuccess', 'onError']);\n\t\n\t return React.createElement(\n\t 'form',\n\t _extends({}, nonFormsyProps, { onSubmit: this.submit }),\n\t this.props.children\n\t );\n\t }\n\t});\n\t\n\tif (!global.exports && !global.module && (!global.define || !global.define.amd)) {\n\t global.Formsy = Formsy;\n\t}\n\t\n\tmodule.exports = Formsy;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar utils = __webpack_require__(3);\n\tvar React = global.React || __webpack_require__(1);\n\t\n\tvar convertValidationsToObject = function convertValidationsToObject(validations) {\n\t\n\t if (typeof validations === 'string') {\n\t\n\t return validations.split(/\\,(?![^{\\[]*[}\\]])/g).reduce(function (validations, validation) {\n\t var args = validation.split(':');\n\t var validateMethod = args.shift();\n\t\n\t args = args.map(function (arg) {\n\t try {\n\t return JSON.parse(arg);\n\t } catch (e) {\n\t return arg; // It is a string if it can not parse it\n\t }\n\t });\n\t\n\t if (args.length > 1) {\n\t throw new Error('Formsy does not support multiple args on string validations. Use object format of validations instead.');\n\t }\n\t\n\t validations[validateMethod] = args.length ? args[0] : true;\n\t return validations;\n\t }, {});\n\t }\n\t\n\t return validations || {};\n\t};\n\t\n\tmodule.exports = {\n\t getInitialState: function getInitialState() {\n\t return {\n\t _value: this.props.value,\n\t _isRequired: false,\n\t _isValid: true,\n\t _isPristine: true,\n\t _pristineValue: this.props.value,\n\t _validationError: [],\n\t _externalError: null,\n\t _formSubmitted: false\n\t };\n\t },\n\t contextTypes: {\n\t formsy: React.PropTypes.object // What about required?\n\t },\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t validationError: '',\n\t validationErrors: {}\n\t };\n\t },\n\t\n\t componentWillMount: function componentWillMount() {\n\t var configure = function () {\n\t this.setValidations(this.props.validations, this.props.required);\n\t\n\t // Pass a function instead?\n\t this.context.formsy.attachToForm(this);\n\t //this.props._attachToForm(this);\n\t }.bind(this);\n\t\n\t if (!this.props.name) {\n\t throw new Error('Form Input requires a name property when used');\n\t }\n\t\n\t /*\n\t if (!this.props._attachToForm) {\n\t return setTimeout(function () {\n\t if (!this.isMounted()) return;\n\t if (!this.props._attachToForm) {\n\t throw new Error('Form Mixin requires component to be nested in a Form');\n\t }\n\t configure();\n\t }.bind(this), 0);\n\t }\n\t */\n\t configure();\n\t },\n\t\n\t // We have to make the validate method is kept when new props are added\n\t componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n\t this.setValidations(nextProps.validations, nextProps.required);\n\t },\n\t\n\t componentDidUpdate: function componentDidUpdate(prevProps) {\n\t\n\t // If the value passed has changed, set it. If value is not passed it will\n\t // internally update, and this will never run\n\t if (!utils.isSame(this.props.value, prevProps.value)) {\n\t this.setValue(this.props.value);\n\t }\n\t\n\t // If validations or required is changed, run a new validation\n\t if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) {\n\t this.context.formsy.validate(this);\n\t }\n\t },\n\t\n\t // Detach it when component unmounts\n\t componentWillUnmount: function componentWillUnmount() {\n\t this.context.formsy.detachFromForm(this);\n\t //this.props._detachFromForm(this);\n\t },\n\t\n\t setValidations: function setValidations(validations, required) {\n\t\n\t // Add validations to the store itself as the props object can not be modified\n\t this._validations = convertValidationsToObject(validations) || {};\n\t this._requiredValidations = required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n\t },\n\t\n\t // We validate after the value has been set\n\t setValue: function setValue(value) {\n\t this.setState({\n\t _value: value,\n\t _isPristine: false\n\t }, function () {\n\t this.context.formsy.validate(this);\n\t //this.props._validate(this);\n\t }.bind(this));\n\t },\n\t resetValue: function resetValue() {\n\t this.setState({\n\t _value: this.state._pristineValue,\n\t _isPristine: true\n\t }, function () {\n\t this.context.formsy.validate(this);\n\t //this.props._validate(this);\n\t });\n\t },\n\t getValue: function getValue() {\n\t return this.state._value;\n\t },\n\t hasValue: function hasValue() {\n\t return this.state._value !== '';\n\t },\n\t getErrorMessage: function getErrorMessage() {\n\t var messages = this.getErrorMessages();\n\t return messages.length ? messages[0] : null;\n\t },\n\t getErrorMessages: function getErrorMessages() {\n\t return !this.isValid() || this.showRequired() ? this.state._externalError || this.state._validationError || [] : [];\n\t },\n\t isFormDisabled: function isFormDisabled() {\n\t return this.context.formsy.isFormDisabled();\n\t //return this.props._isFormDisabled();\n\t },\n\t isValid: function isValid() {\n\t return this.state._isValid;\n\t },\n\t isPristine: function isPristine() {\n\t return this.state._isPristine;\n\t },\n\t isFormSubmitted: function isFormSubmitted() {\n\t return this.state._formSubmitted;\n\t },\n\t isRequired: function isRequired() {\n\t return !!this.props.required;\n\t },\n\t showRequired: function showRequired() {\n\t return this.state._isRequired;\n\t },\n\t showError: function showError() {\n\t return !this.showRequired() && !this.isValid();\n\t },\n\t isValidValue: function isValidValue(value) {\n\t return this.context.formsy.isValidValue.call(null, this, value);\n\t //return this.props._isValidValue.call(null, this, value);\n\t }\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tmodule.exports = {\n\t arraysDiffer: function arraysDiffer(a, b) {\n\t var isDifferent = false;\n\t if (a.length !== b.length) {\n\t isDifferent = true;\n\t } else {\n\t a.forEach(function (item, index) {\n\t if (!this.isSame(item, b[index])) {\n\t isDifferent = true;\n\t }\n\t }, this);\n\t }\n\t return isDifferent;\n\t },\n\t\n\t objectsDiffer: function objectsDiffer(a, b) {\n\t var isDifferent = false;\n\t if (Object.keys(a).length !== Object.keys(b).length) {\n\t isDifferent = true;\n\t } else {\n\t Object.keys(a).forEach(function (key) {\n\t if (!this.isSame(a[key], b[key])) {\n\t isDifferent = true;\n\t }\n\t }, this);\n\t }\n\t return isDifferent;\n\t },\n\t\n\t isSame: function isSame(a, b) {\n\t if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) !== (typeof b === 'undefined' ? 'undefined' : _typeof(b))) {\n\t return false;\n\t } else if (Array.isArray(a) && Array.isArray(b)) {\n\t return !this.arraysDiffer(a, b);\n\t } else if (typeof a === 'function') {\n\t return a.toString() === b.toString();\n\t } else if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object' && a !== null && b !== null) {\n\t return !this.objectsDiffer(a, b);\n\t }\n\t\n\t return a === b;\n\t },\n\t\n\t find: function find(collection, fn) {\n\t for (var i = 0, l = collection.length; i < l; i++) {\n\t var item = collection[i];\n\t if (fn(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t }\n\t};\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar React = global.React || __webpack_require__(1);\n\tvar Mixin = __webpack_require__(2);\n\tmodule.exports = function () {\n\t return function (Component) {\n\t return React.createClass({\n\t mixins: [Mixin],\n\t render: function render() {\n\t return React.createElement(Component, _extends({\n\t setValidations: this.setValidations,\n\t setValue: this.setValue,\n\t resetValue: this.resetValue,\n\t getValue: this.getValue,\n\t hasValue: this.hasValue,\n\t getErrorMessage: this.getErrorMessage,\n\t getErrorMessages: this.getErrorMessages,\n\t isFormDisabled: this.isFormDisabled,\n\t isValid: this.isValid,\n\t isPristine: this.isPristine,\n\t isFormSubmitted: this.isFormSubmitted,\n\t isRequired: this.isRequired,\n\t showRequired: this.showRequired,\n\t showError: this.showError,\n\t isValidValue: this.isValidValue\n\t }, this.props));\n\t }\n\t });\n\t };\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar React = global.React || __webpack_require__(1);\n\tvar Mixin = __webpack_require__(2);\n\tmodule.exports = function (Component) {\n\t return React.createClass({\n\t displayName: 'Formsy(' + getDisplayName(Component) + ')',\n\t mixins: [Mixin],\n\t\n\t render: function render() {\n\t var innerRef = this.props.innerRef;\n\t\n\t var propsForElement = _extends({\n\t setValidations: this.setValidations,\n\t setValue: this.setValue,\n\t resetValue: this.resetValue,\n\t getValue: this.getValue,\n\t hasValue: this.hasValue,\n\t getErrorMessage: this.getErrorMessage,\n\t getErrorMessages: this.getErrorMessages,\n\t isFormDisabled: this.isFormDisabled,\n\t isValid: this.isValid,\n\t isPristine: this.isPristine,\n\t isFormSubmitted: this.isFormSubmitted,\n\t isRequired: this.isRequired,\n\t showRequired: this.showRequired,\n\t showError: this.showError,\n\t isValidValue: this.isValidValue\n\t }, this.props);\n\t\n\t if (innerRef) {\n\t propsForElement.ref = innerRef;\n\t }\n\t return React.createElement(Component, propsForElement);\n\t }\n\t });\n\t};\n\t\n\tfunction getDisplayName(Component) {\n\t return Component.displayName || Component.name || (typeof Component === 'string' ? Component : 'Component');\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _isExisty = function _isExisty(value) {\n\t return value !== null && value !== undefined;\n\t};\n\t\n\tvar isEmpty = function isEmpty(value) {\n\t return value === '';\n\t};\n\t\n\tvar validations = {\n\t isDefaultRequiredValue: function isDefaultRequiredValue(values, value) {\n\t return value === undefined || value === '';\n\t },\n\t isExisty: function isExisty(values, value) {\n\t return _isExisty(value);\n\t },\n\t matchRegexp: function matchRegexp(values, value, regexp) {\n\t return !_isExisty(value) || isEmpty(value) || regexp.test(value);\n\t },\n\t isUndefined: function isUndefined(values, value) {\n\t return value === undefined;\n\t },\n\t isEmptyString: function isEmptyString(values, value) {\n\t return isEmpty(value);\n\t },\n\t isEmail: function isEmail(values, value) {\n\t return validations.matchRegexp(values, value, /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i);\n\t },\n\t isUrl: function isUrl(values, value) {\n\t return validations.matchRegexp(values, value, /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i);\n\t },\n\t isTrue: function isTrue(values, value) {\n\t return value === true;\n\t },\n\t isFalse: function isFalse(values, value) {\n\t return value === false;\n\t },\n\t isNumeric: function isNumeric(values, value) {\n\t if (typeof value === 'number') {\n\t return true;\n\t }\n\t return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n\t },\n\t isAlpha: function isAlpha(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n\t },\n\t isAlphanumeric: function isAlphanumeric(values, value) {\n\t return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n\t },\n\t isInt: function isInt(values, value) {\n\t return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n\t },\n\t isFloat: function isFloat(values, value) {\n\t return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/);\n\t },\n\t isWords: function isWords(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n\t },\n\t isSpecialWords: function isSpecialWords(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n\t },\n\t isLength: function isLength(values, value, length) {\n\t return !_isExisty(value) || isEmpty(value) || value.length === length;\n\t },\n\t equals: function equals(values, value, eql) {\n\t return !_isExisty(value) || isEmpty(value) || value == eql;\n\t },\n\t equalsField: function equalsField(values, value, field) {\n\t return value == values[field];\n\t },\n\t maxLength: function maxLength(values, value, length) {\n\t return !_isExisty(value) || value.length <= length;\n\t },\n\t minLength: function minLength(values, value, length) {\n\t return !_isExisty(value) || isEmpty(value) || value.length >= length;\n\t }\n\t};\n\t\n\tmodule.exports = validations;\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tfunction toObj(source) {\n\t return Object.keys(source).reduce(function (output, key) {\n\t var parentKey = key.match(/[^\\[]*/i);\n\t var paths = key.match(/\\[.*?\\]/g) || [];\n\t paths = [parentKey[0]].concat(paths).map(function (key) {\n\t return key.replace(/\\[|\\]/g, '');\n\t });\n\t var currentPath = output;\n\t while (paths.length) {\n\t var pathKey = paths.shift();\n\t\n\t if (pathKey in currentPath) {\n\t currentPath = currentPath[pathKey];\n\t } else {\n\t currentPath[pathKey] = paths.length ? isNaN(paths[0]) ? {} : [] : source[key];\n\t currentPath = currentPath[pathKey];\n\t }\n\t }\n\t\n\t return output;\n\t }, {});\n\t}\n\t\n\tfunction fromObj(obj) {\n\t function recur(newObj, propName, currVal) {\n\t if (Array.isArray(currVal) || Object.prototype.toString.call(currVal) === '[object Object]') {\n\t Object.keys(currVal).forEach(function(v) {\n\t recur(newObj, propName + \"[\" + v + \"]\", currVal[v]);\n\t });\n\t return newObj;\n\t }\n\t\n\t newObj[propName] = currVal;\n\t return newObj;\n\t }\n\t\n\t var keys = Object.keys(obj);\n\t return keys.reduce(function(newObj, propName) {\n\t return recur(newObj, propName, obj[propName]);\n\t }, {});\n\t}\n\t\n\tmodule.exports = {\n\t fromObj: fromObj,\n\t toObj: toObj\n\t}\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// formsy-react.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ca57d84d15d913bab0aa","var React = global.React || require('react');\nvar Formsy = {};\nvar validationRules = require('./validationRules.js');\nvar formDataToObject = require('form-data-to-object');\nvar utils = require('./utils.js');\nvar Mixin = require('./Mixin.js');\nvar HOC = require('./HOC.js');\nvar Decorator = require('./Decorator.js');\nvar options = {};\nvar emptyArray = [];\n\nFormsy.Mixin = Mixin;\nFormsy.HOC = HOC;\nFormsy.Decorator = Decorator;\n\nFormsy.defaults = function (passedOptions) {\n options = passedOptions;\n};\n\nFormsy.addValidationRule = function (name, func) {\n validationRules[name] = func;\n};\n\nFormsy.Form = React.createClass({\n displayName: 'Formsy',\n getInitialState: function () {\n return {\n isValid: true,\n isSubmitting: false,\n canChange: false\n };\n },\n getDefaultProps: function () {\n return {\n onSuccess: function () {},\n onError: function () {},\n onSubmit: function () {},\n onValidSubmit: function () {},\n onInvalidSubmit: function () {},\n onValid: function () {},\n onInvalid: function () {},\n onChange: function () {},\n validationErrors: null,\n preventExternalInvalidation: false\n };\n },\n\n childContextTypes: {\n formsy: React.PropTypes.object\n },\n getChildContext: function () {\n return {\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n validate: this.validate,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => {\n return this.runValidation(component, value).isValid;\n }\n }\n }\n },\n\n // Add a map to store the inputs of the form, a model to store\n // the values of the form and register child inputs\n componentWillMount: function () {\n this.inputs = [];\n },\n\n componentDidMount: function () {\n this.validateForm();\n },\n\n componentWillUpdate: function () {\n // Keep a reference to input names before form updates,\n // to check if inputs has changed after render\n this.prevInputNames = this.inputs.map(component => component.props.name);\n },\n\n componentDidUpdate: function () {\n\n if (this.props.validationErrors && typeof this.props.validationErrors === 'object' && Object.keys(this.props.validationErrors).length > 0) {\n this.setInputValidationErrors(this.props.validationErrors);\n }\n\n var newInputNames = this.inputs.map(component => component.props.name);\n if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n\n },\n\n // Allow resetting to specified data\n reset: function (data) {\n this.setFormPristine(true);\n this.resetModel(data);\n },\n\n // Update model, submit to url prop and send the model\n submit: function (event) {\n\n event && event.preventDefault();\n\n // Trigger form as not pristine.\n // If any inputs have not been touched yet this will make them dirty\n // so validation becomes visible (if based on isPristine)\n this.setFormPristine(false);\n var model = this.getModel();\n this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n this.state.isValid ? this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError) : this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\n\n },\n\n mapModel: function (model) {\n\n if (this.props.mapping) {\n return this.props.mapping(model)\n } else {\n return formDataToObject.toObj(Object.keys(model).reduce((mappedModel, key) => {\n\n var keyArray = key.split('.');\n var base = mappedModel;\n while (keyArray.length) {\n var currentKey = keyArray.shift();\n base = (base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key]);\n }\n\n return mappedModel;\n\n }, {}));\n }\n },\n\n getModel: function () {\n var currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n },\n\n // Reset each key in the model to the original / initial / specified value\n resetModel: function (data) {\n this.inputs.forEach(component => {\n var name = component.props.name;\n if (data && data.hasOwnProperty(name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n },\n\n setInputValidationErrors: function (errors) {\n this.inputs.forEach(component => {\n var name = component.props.name;\n var args = [{\n _isValid: !(name in errors),\n _validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n }];\n component.setState.apply(component, args);\n });\n },\n\n // Checks if the values have changed from their initial value\n isChanged: function() {\n return !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n },\n\n getPristineValues: function() {\n return this.inputs.reduce((data, component) => {\n var name = component.props.name;\n data[name] = component.props.value;\n return data;\n }, {});\n },\n\n // Go through errors from server and grab the components\n // stored in the inputs map. Change their state to invalid\n // and set the serverError message\n updateInputsWithError: function (errors) {\n Object.keys(errors).forEach((name, index) => {\n var component = utils.find(this.inputs, component => component.props.name === name);\n if (!component) {\n throw new Error('You are trying to update an input that does not exist. ' +\n 'Verify errors object with input names. ' + JSON.stringify(errors));\n }\n var args = [{\n _isValid: this.props.preventExternalInvalidation || false,\n _externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n }];\n component.setState.apply(component, args);\n });\n },\n\n isFormDisabled: function () {\n return this.props.disabled;\n },\n\n getCurrentValues: function () {\n return this.inputs.reduce((data, component) => {\n var name = component.props.name;\n data[name] = component.state._value;\n return data;\n }, {});\n },\n\n setFormPristine: function (isPristine) {\n this.setState({\n _formSubmitted: !isPristine\n });\n\n // Iterate through each component and set it as pristine\n // or \"dirty\".\n this.inputs.forEach((component, index) => {\n component.setState({\n _formSubmitted: !isPristine,\n _isPristine: isPristine\n });\n });\n },\n\n // Use the binded values and the actual input value to\n // validate the input and set its state. Then check the\n // state of the form itself\n validate: function (component) {\n\n // Trigger onChange\n if (this.state.canChange) {\n this.props.onChange(this.getCurrentValues(), this.isChanged());\n }\n\n var validation = this.runValidation(component);\n // Run through the validations, split them up and call\n // the validator IF there is a value or it is required\n component.setState({\n _isValid: validation.isValid,\n _isRequired: validation.isRequired,\n _validationError: validation.error,\n _externalError: null\n }, this.validateForm);\n\n },\n\n // Checks validation on current value or a passed value\n runValidation: function (component, value) {\n\n var currentValues = this.getCurrentValues();\n var validationErrors = component.props.validationErrors;\n var validationError = component.props.validationError;\n value = arguments.length === 2 ? value : component.state._value;\n\n var validationResults = this.runRules(value, currentValues, component._validations);\n var requiredResults = this.runRules(value, currentValues, component._requiredValidations);\n\n // the component defines an explicit validate function\n if (typeof component.validate === \"function\") {\n validationResults.failed = component.validate() ? [] : ['failed'];\n }\n\n var isRequired = Object.keys(component._requiredValidations).length ? !!requiredResults.success.length : false;\n var isValid = !validationResults.failed.length && !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\n return {\n isRequired: isRequired,\n isValid: isRequired ? false : isValid,\n error: (function () {\n\n if (isValid && !isRequired) {\n return emptyArray;\n }\n\n if (validationResults.errors.length) {\n return validationResults.errors;\n }\n\n if (this.props.validationErrors && this.props.validationErrors[component.props.name]) {\n return typeof this.props.validationErrors[component.props.name] === 'string' ? [this.props.validationErrors[component.props.name]] : this.props.validationErrors[component.props.name];\n }\n\n if (isRequired) {\n var error = validationErrors[requiredResults.success[0]];\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed.map(function(failed) {\n return validationErrors[failed] ? validationErrors[failed] : validationError;\n }).filter(function(x, pos, arr) {\n // Remove duplicates\n return arr.indexOf(x) === pos;\n });\n }\n\n }.call(this))\n };\n\n },\n\n runRules: function (value, currentValues, validations) {\n\n var results = {\n errors: [],\n failed: [],\n success: []\n };\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(function (validationMethod) {\n\n if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') {\n throw new Error('Formsy does not allow you to override default validations: ' + validationMethod);\n }\n\n if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') {\n throw new Error('Formsy does not have the validation rule: ' + validationMethod);\n }\n\n if (typeof validations[validationMethod] === 'function') {\n var validation = validations[validationMethod](currentValues, value);\n if (typeof validation === 'string') {\n results.errors.push(validation);\n results.failed.push(validationMethod);\n } else if (!validation) {\n results.failed.push(validationMethod);\n }\n return;\n\n } else if (typeof validations[validationMethod] !== 'function') {\n var validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n if (typeof validation === 'string') {\n results.errors.push(validation);\n results.failed.push(validationMethod);\n } else if (!validation) {\n results.failed.push(validationMethod);\n } else {\n results.success.push(validationMethod);\n }\n return;\n\n }\n\n return results.success.push(validationMethod);\n\n });\n }\n\n return results;\n\n },\n\n // Validate the form by going through all child input components\n // and check their state\n validateForm: function () {\n\n // We need a callback as we are validating all inputs again. This will\n // run when the last component has set its state\n var onValidationComplete = function () {\n var allIsValid = this.inputs.every(component => {\n return component.state._isValid;\n });\n\n this.setState({\n isValid: allIsValid\n });\n\n if (allIsValid) {\n this.props.onValid();\n } else {\n this.props.onInvalid();\n }\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true\n });\n\n }.bind(this);\n\n // Run validation again in case affected by other inputs. The\n // last component validated will run the onValidationComplete callback\n this.inputs.forEach((component, index) => {\n var validation = this.runValidation(component);\n if (validation.isValid && component.state._externalError) {\n validation.isValid = false;\n }\n component.setState({\n _isValid: validation.isValid,\n _isRequired: validation.isRequired,\n _validationError: validation.error,\n _externalError: !validation.isValid && component.state._externalError ? component.state._externalError : null\n }, index === this.inputs.length - 1 ? onValidationComplete : null);\n });\n\n // If there are no inputs, set state where form is ready to trigger\n // change event. New inputs might be added later\n if (!this.inputs.length && this.isMounted()) {\n this.setState({\n canChange: true\n });\n }\n },\n\n // Method put on each input component to register\n // itself to the form\n attachToForm: function (component) {\n\n if (this.inputs.indexOf(component) === -1) {\n this.inputs.push(component);\n }\n\n this.validate(component);\n },\n\n // Method put on each input component to unregister\n // itself from the form\n detachFromForm: function (component) {\n var componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos)\n .concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n },\n render: function () {\n var {\n mapping,\n validationErrors,\n onSubmit,\n onValid,\n onValidSubmit,\n onInvalid,\n onInvalidSubmit,\n onChange,\n reset,\n preventExternalInvalidation,\n onSuccess,\n onError,\n ...nonFormsyProps\n } = this.props;\n\n return (\n
\n {this.props.children}\n
\n );\n\n }\n});\n\nif (!global.exports && !global.module && (!global.define || !global.define.amd)) {\n global.Formsy = Formsy;\n}\n\nmodule.exports = Formsy;\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","var utils = require('./utils.js');\nvar React = global.React || require('react');\n\nvar convertValidationsToObject = function (validations) {\n\n if (typeof validations === 'string') {\n\n return validations.split(/\\,(?![^{\\[]*[}\\]])/g).reduce(function (validations, validation) {\n var args = validation.split(':');\n var validateMethod = args.shift();\n\n args = args.map(function (arg) {\n try {\n return JSON.parse(arg);\n } catch (e) {\n return arg; // It is a string if it can not parse it\n }\n });\n\n if (args.length > 1) {\n throw new Error('Formsy does not support multiple args on string validations. Use object format of validations instead.');\n }\n\n validations[validateMethod] = args.length ? args[0] : true;\n return validations;\n }, {});\n\n }\n\n return validations || {};\n};\n\nmodule.exports = {\n getInitialState: function () {\n return {\n _value: this.props.value,\n _isRequired: false,\n _isValid: true,\n _isPristine: true,\n _pristineValue: this.props.value,\n _validationError: [],\n _externalError: null,\n _formSubmitted: false\n };\n },\n contextTypes: {\n formsy: React.PropTypes.object // What about required?\n },\n getDefaultProps: function () {\n return {\n validationError: '',\n validationErrors: {}\n };\n },\n\n componentWillMount: function () {\n var configure = function () {\n this.setValidations(this.props.validations, this.props.required);\n\n // Pass a function instead?\n this.context.formsy.attachToForm(this);\n //this.props._attachToForm(this);\n }.bind(this);\n\n if (!this.props.name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n /*\n if (!this.props._attachToForm) {\n return setTimeout(function () {\n if (!this.isMounted()) return;\n if (!this.props._attachToForm) {\n throw new Error('Form Mixin requires component to be nested in a Form');\n }\n configure();\n }.bind(this), 0);\n }\n */\n configure();\n },\n\n // We have to make the validate method is kept when new props are added\n componentWillReceiveProps: function (nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n\n },\n\n componentDidUpdate: function (prevProps) {\n\n // If the value passed has changed, set it. If value is not passed it will\n // internally update, and this will never run\n if (!utils.isSame(this.props.value, prevProps.value)) {\n this.setValue(this.props.value);\n }\n\n // If validations or required is changed, run a new validation\n if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) {\n this.context.formsy.validate(this);\n }\n },\n\n // Detach it when component unmounts\n componentWillUnmount: function () {\n this.context.formsy.detachFromForm(this);\n //this.props._detachFromForm(this);\n },\n\n setValidations: function (validations, required) {\n\n // Add validations to the store itself as the props object can not be modified\n this._validations = convertValidationsToObject(validations) || {};\n this._requiredValidations = required === true ? {isDefaultRequiredValue: true} : convertValidationsToObject(required);\n\n },\n\n // We validate after the value has been set\n setValue: function (value) {\n this.setState({\n _value: value,\n _isPristine: false\n }, function () {\n this.context.formsy.validate(this);\n //this.props._validate(this);\n }.bind(this));\n },\n resetValue: function () {\n this.setState({\n _value: this.state._pristineValue,\n _isPristine: true\n }, function () {\n this.context.formsy.validate(this);\n //this.props._validate(this);\n });\n },\n getValue: function () {\n return this.state._value;\n },\n hasValue: function () {\n return this.state._value !== '';\n },\n getErrorMessage: function () {\n var messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n },\n getErrorMessages: function () {\n return !this.isValid() || this.showRequired() ? (this.state._externalError || this.state._validationError || []) : [];\n },\n isFormDisabled: function () {\n return this.context.formsy.isFormDisabled();\n //return this.props._isFormDisabled();\n },\n isValid: function () {\n return this.state._isValid;\n },\n isPristine: function () {\n return this.state._isPristine;\n },\n isFormSubmitted: function () {\n return this.state._formSubmitted;\n },\n isRequired: function () {\n return !!this.props.required;\n },\n showRequired: function () {\n return this.state._isRequired;\n },\n showError: function () {\n return !this.showRequired() && !this.isValid();\n },\n isValidValue: function (value) {\n return this.context.formsy.isValidValue.call(null, this, value);\n //return this.props._isValidValue.call(null, this, value);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Mixin.js","module.exports = {\n arraysDiffer: function (a, b) {\n var isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach(function (item, index) {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer: function (a, b) {\n var isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(function (key) {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame: function (a, b) {\n if (typeof a !== typeof b) {\n return false;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n } else if (typeof a === 'function') {\n return a.toString() === b.toString();\n } else if (typeof a === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find: function (collection, fn) {\n for (var i = 0, l = collection.length; i < l; i++) {\n var item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","var React = global.React || require('react');\nvar Mixin = require('./Mixin.js');\nmodule.exports = function () {\n return function (Component) {\n return React.createClass({\n mixins: [Mixin],\n render: function () {\n return React.createElement(Component, {\n setValidations: this.setValidations,\n setValue: this.setValue,\n resetValue: this.resetValue,\n getValue: this.getValue,\n hasValue: this.hasValue,\n getErrorMessage: this.getErrorMessage,\n getErrorMessages: this.getErrorMessages,\n isFormDisabled: this.isFormDisabled,\n isValid: this.isValid,\n isPristine: this.isPristine,\n isFormSubmitted: this.isFormSubmitted,\n isRequired: this.isRequired,\n showRequired: this.showRequired,\n showError: this.showError,\n isValidValue: this.isValidValue,\n ...this.props\n });\n }\n });\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Decorator.js","var React = global.React || require('react');\nvar Mixin = require('./Mixin.js');\nmodule.exports = function (Component) {\n return React.createClass({\n displayName: 'Formsy(' + getDisplayName(Component) + ')',\n mixins: [Mixin],\n\n render: function () {\n const { innerRef } = this.props;\n const propsForElement = {\n setValidations: this.setValidations,\n setValue: this.setValue,\n resetValue: this.resetValue,\n getValue: this.getValue,\n hasValue: this.hasValue,\n getErrorMessage: this.getErrorMessage,\n getErrorMessages: this.getErrorMessages,\n isFormDisabled: this.isFormDisabled,\n isValid: this.isValid,\n isPristine: this.isPristine,\n isFormSubmitted: this.isFormSubmitted,\n isRequired: this.isRequired,\n showRequired: this.showRequired,\n showError: this.showError,\n isValidValue: this.isValidValue,\n ...this.props\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n return React.createElement(Component, propsForElement);\n }\n });\n};\n\nfunction getDisplayName(Component) {\n return (\n Component.displayName ||\n Component.name ||\n (typeof Component === 'string' ? Component : 'Component')\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/HOC.js","var isExisty = function (value) {\n return value !== null && value !== undefined;\n};\n\nvar isEmpty = function (value) {\n return value === '';\n};\n\nvar validations = {\n isDefaultRequiredValue: function (values, value) {\n return value === undefined || value === '';\n },\n isExisty: function (values, value) {\n return isExisty(value);\n },\n matchRegexp: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined: function (values, value) {\n return value === undefined;\n },\n isEmptyString: function (values, value) {\n return isEmpty(value);\n },\n isEmail: function (values, value) {\n return validations.matchRegexp(values, value, /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i);\n },\n isUrl: function (values, value) {\n return validations.matchRegexp(values, value, /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i);\n },\n isTrue: function (values, value) {\n return value === true;\n },\n isFalse: function (values, value) {\n return value === false;\n },\n isNumeric: function (values, value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric: function (values, value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/);\n },\n isWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals: function (values, value, eql) {\n return !isExisty(value) || isEmpty(value) || value == eql;\n },\n equalsField: function (values, value, field) {\n return value == values[field];\n },\n maxLength: function (values, value, length) {\n return !isExisty(value) || value.length <= length;\n },\n minLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n }\n};\n\nmodule.exports = validations;\n\n\n\n// WEBPACK FOOTER //\n// ./src/validationRules.js","function toObj(source) {\n return Object.keys(source).reduce(function (output, key) {\n var parentKey = key.match(/[^\\[]*/i);\n var paths = key.match(/\\[.*?\\]/g) || [];\n paths = [parentKey[0]].concat(paths).map(function (key) {\n return key.replace(/\\[|\\]/g, '');\n });\n var currentPath = output;\n while (paths.length) {\n var pathKey = paths.shift();\n\n if (pathKey in currentPath) {\n currentPath = currentPath[pathKey];\n } else {\n currentPath[pathKey] = paths.length ? isNaN(paths[0]) ? {} : [] : source[key];\n currentPath = currentPath[pathKey];\n }\n }\n\n return output;\n }, {});\n}\n\nfunction fromObj(obj) {\n function recur(newObj, propName, currVal) {\n if (Array.isArray(currVal) || Object.prototype.toString.call(currVal) === '[object Object]') {\n Object.keys(currVal).forEach(function(v) {\n recur(newObj, propName + \"[\" + v + \"]\", currVal[v]);\n });\n return newObj;\n }\n\n newObj[propName] = currVal;\n return newObj;\n }\n\n var keys = Object.keys(obj);\n return keys.reduce(function(newObj, propName) {\n return recur(newObj, propName, obj[propName]);\n }, {});\n}\n\nmodule.exports = {\n fromObj: fromObj,\n toObj: toObj\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/form-data-to-object/index.js\n// module id = 7\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///formsy-react.js","webpack:///webpack/bootstrap a6e22942c9248b68a63d","webpack:///./src/main.js","webpack:///./~/process/browser.js","webpack:///external \"react\"","webpack:///./src/Mixin.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./src/utils.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/prop-types/index.js","webpack:///./src/Decorator.js","webpack:///./src/HOC.js","webpack:///./src/validationRules.js","webpack:///./~/form-data-to-object/index.js","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithThrowingShims.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","global","_objectWithoutProperties","obj","keys","target","i","indexOf","Object","prototype","hasOwnProperty","_extends","assign","arguments","length","source","key","_typeof","Symbol","iterator","constructor","PropTypes","React","Formsy","validationRules","formDataToObject","utils","Mixin","HOC","Decorator","options","emptyArray","defaults","passedOptions","addValidationRule","name","func","Form","createClass","displayName","getInitialState","isValid","isSubmitting","canChange","getDefaultProps","onSuccess","onError","onSubmit","onValidSubmit","onInvalidSubmit","onValid","onInvalid","onChange","validationErrors","preventExternalInvalidation","childContextTypes","formsy","object","getChildContext","_this","attachToForm","detachFromForm","validate","isFormDisabled","isValidValue","component","value","runValidation","componentWillMount","inputs","componentDidMount","validateForm","componentWillUpdate","prevInputNames","map","props","componentDidUpdate","setInputValidationErrors","newInputNames","arraysDiffer","reset","data","setFormPristine","resetModel","submit","event","preventDefault","model","getModel","updateInputsWithError","state","mapModel","mapping","toObj","reduce","mappedModel","keyArray","split","base","currentKey","shift","currentValues","getCurrentValues","forEach","setValue","resetValue","errors","args","_isValid","_validationError","setState","apply","isChanged","isSame","getPristineValues","_this2","index","find","Error","JSON","stringify","_externalError","disabled","_value","isPristine","_formSubmitted","_isPristine","validation","_isRequired","isRequired","error","validationError","validationResults","runRules","_validations","requiredResults","_requiredValidations","failed","success","filter","x","pos","arr","validations","results","validationMethod","push","_this3","onValidationComplete","allIsValid","every","bind","isMounted","componentPos","slice","concat","render","_props","nonFormsyProps","createElement","children","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","e","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","len","run","Item","array","noop","process","nextTick","Array","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","convertValidationsToObject","validateMethod","arg","parse","_pristineValue","contextTypes","configure","setValidations","required","context","componentWillReceiveProps","nextProps","prevProps","componentWillUnmount","isDefaultRequiredValue","getValue","hasValue","getErrorMessage","messages","getErrorMessages","showRequired","isFormSubmitted","showError","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","invariant","condition","format","a","b","d","f","validateFormat","undefined","argIndex","replace","framesToPop","NODE_ENV","ReactPropTypesSecret","isDifferent","item","objectsDiffer","isArray","toString","collection","fn","l","warning","printWarning","_len","_key","message","console","_len2","_key2","REACT_ELEMENT_TYPE","for","isValidElement","$$typeof","throwOnDirectAccess","Component","mixins","getDisplayName","innerRef","propsForElement","ref","isExisty","isEmpty","values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","output","parentKey","match","paths","currentPath","pathKey","isNaN","fromObj","recur","newObj","propName","currVal","v","checkPropTypes","typeSpecs","location","componentName","getStack","typeSpecName","ex","loggedTypeFailures","stack","shim","propFullName","secret","getShim","ReactPropTypes","bool","number","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","getIteratorFn","maybeIterable","iteratorFn","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","is","y","PropTypeError","createChainableTypeChecker","checkType","ANONYMOUS","cacheKey","manualPropTypeCallCache","manualPropTypeWarningCount","chainedCheckType","createPrimitiveTypeChecker","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","createAnyTypeChecker","createArrayOfTypeChecker","typeChecker","createElementTypeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","actualClassName","getClassName","createEnumTypeChecker","expectedValues","valuesString","createObjectOfTypeChecker","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createNodeChecker","isNode","createShapeTypeChecker","shapeTypes","step","entries","next","done","entry","isSymbol","RegExp","Date","type"],"mappings":"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","file":"formsy-react.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Formsy\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Formsy\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Formsy\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Formsy\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar PropTypes = __webpack_require__(9);\n\tvar React = global.React || __webpack_require__(2);\n\tvar Formsy = {};\n\tvar validationRules = __webpack_require__(12);\n\tvar formDataToObject = __webpack_require__(13);\n\tvar utils = __webpack_require__(7);\n\tvar Mixin = __webpack_require__(3);\n\tvar HOC = __webpack_require__(11);\n\tvar Decorator = __webpack_require__(10);\n\tvar options = {};\n\tvar emptyArray = [];\n\t\n\tFormsy.Mixin = Mixin;\n\tFormsy.HOC = HOC;\n\tFormsy.Decorator = Decorator;\n\t\n\tFormsy.defaults = function (passedOptions) {\n\t options = passedOptions;\n\t};\n\t\n\tFormsy.addValidationRule = function (name, func) {\n\t validationRules[name] = func;\n\t};\n\t\n\tFormsy.Form = React.createClass({\n\t displayName: 'Formsy',\n\t getInitialState: function getInitialState() {\n\t return {\n\t isValid: true,\n\t isSubmitting: false,\n\t canChange: false\n\t };\n\t },\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t onSuccess: function onSuccess() {},\n\t onError: function onError() {},\n\t onSubmit: function onSubmit() {},\n\t onValidSubmit: function onValidSubmit() {},\n\t onInvalidSubmit: function onInvalidSubmit() {},\n\t onValid: function onValid() {},\n\t onInvalid: function onInvalid() {},\n\t onChange: function onChange() {},\n\t validationErrors: null,\n\t preventExternalInvalidation: false\n\t };\n\t },\n\t\n\t childContextTypes: {\n\t formsy: PropTypes.object\n\t },\n\t getChildContext: function getChildContext() {\n\t var _this = this;\n\t\n\t return {\n\t formsy: {\n\t attachToForm: this.attachToForm,\n\t detachFromForm: this.detachFromForm,\n\t validate: this.validate,\n\t isFormDisabled: this.isFormDisabled,\n\t isValidValue: function isValidValue(component, value) {\n\t return _this.runValidation(component, value).isValid;\n\t }\n\t }\n\t };\n\t },\n\t\n\t // Add a map to store the inputs of the form, a model to store\n\t // the values of the form and register child inputs\n\t componentWillMount: function componentWillMount() {\n\t this.inputs = [];\n\t },\n\t\n\t componentDidMount: function componentDidMount() {\n\t this.validateForm();\n\t },\n\t\n\t componentWillUpdate: function componentWillUpdate() {\n\t // Keep a reference to input names before form updates,\n\t // to check if inputs has changed after render\n\t this.prevInputNames = this.inputs.map(function (component) {\n\t return component.props.name;\n\t });\n\t },\n\t\n\t componentDidUpdate: function componentDidUpdate() {\n\t\n\t if (this.props.validationErrors && _typeof(this.props.validationErrors) === 'object' && Object.keys(this.props.validationErrors).length > 0) {\n\t this.setInputValidationErrors(this.props.validationErrors);\n\t }\n\t\n\t var newInputNames = this.inputs.map(function (component) {\n\t return component.props.name;\n\t });\n\t if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n\t this.validateForm();\n\t }\n\t },\n\t\n\t // Allow resetting to specified data\n\t reset: function reset(data) {\n\t this.setFormPristine(true);\n\t this.resetModel(data);\n\t },\n\t\n\t // Update model, submit to url prop and send the model\n\t submit: function submit(event) {\n\t\n\t event && event.preventDefault();\n\t\n\t // Trigger form as not pristine.\n\t // If any inputs have not been touched yet this will make them dirty\n\t // so validation becomes visible (if based on isPristine)\n\t this.setFormPristine(false);\n\t var model = this.getModel();\n\t this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n\t this.state.isValid ? this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError) : this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\n\t },\n\t\n\t mapModel: function mapModel(model) {\n\t\n\t if (this.props.mapping) {\n\t return this.props.mapping(model);\n\t } else {\n\t return formDataToObject.toObj(Object.keys(model).reduce(function (mappedModel, key) {\n\t\n\t var keyArray = key.split('.');\n\t var base = mappedModel;\n\t while (keyArray.length) {\n\t var currentKey = keyArray.shift();\n\t base = base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n\t }\n\t\n\t return mappedModel;\n\t }, {}));\n\t }\n\t },\n\t\n\t getModel: function getModel() {\n\t var currentValues = this.getCurrentValues();\n\t return this.mapModel(currentValues);\n\t },\n\t\n\t // Reset each key in the model to the original / initial / specified value\n\t resetModel: function resetModel(data) {\n\t this.inputs.forEach(function (component) {\n\t var name = component.props.name;\n\t if (data && data.hasOwnProperty(name)) {\n\t component.setValue(data[name]);\n\t } else {\n\t component.resetValue();\n\t }\n\t });\n\t this.validateForm();\n\t },\n\t\n\t setInputValidationErrors: function setInputValidationErrors(errors) {\n\t this.inputs.forEach(function (component) {\n\t var name = component.props.name;\n\t var args = [{\n\t _isValid: !(name in errors),\n\t _validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n\t }];\n\t component.setState.apply(component, args);\n\t });\n\t },\n\t\n\t // Checks if the values have changed from their initial value\n\t isChanged: function isChanged() {\n\t return !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\t },\n\t\n\t getPristineValues: function getPristineValues() {\n\t return this.inputs.reduce(function (data, component) {\n\t var name = component.props.name;\n\t data[name] = component.props.value;\n\t return data;\n\t }, {});\n\t },\n\t\n\t // Go through errors from server and grab the components\n\t // stored in the inputs map. Change their state to invalid\n\t // and set the serverError message\n\t updateInputsWithError: function updateInputsWithError(errors) {\n\t var _this2 = this;\n\t\n\t Object.keys(errors).forEach(function (name, index) {\n\t var component = utils.find(_this2.inputs, function (component) {\n\t return component.props.name === name;\n\t });\n\t if (!component) {\n\t throw new Error('You are trying to update an input that does not exist. ' + 'Verify errors object with input names. ' + JSON.stringify(errors));\n\t }\n\t var args = [{\n\t _isValid: _this2.props.preventExternalInvalidation || false,\n\t _externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n\t }];\n\t component.setState.apply(component, args);\n\t });\n\t },\n\t\n\t isFormDisabled: function isFormDisabled() {\n\t return this.props.disabled;\n\t },\n\t\n\t getCurrentValues: function getCurrentValues() {\n\t return this.inputs.reduce(function (data, component) {\n\t var name = component.props.name;\n\t data[name] = component.state._value;\n\t return data;\n\t }, {});\n\t },\n\t\n\t setFormPristine: function setFormPristine(isPristine) {\n\t this.setState({\n\t _formSubmitted: !isPristine\n\t });\n\t\n\t // Iterate through each component and set it as pristine\n\t // or \"dirty\".\n\t this.inputs.forEach(function (component, index) {\n\t component.setState({\n\t _formSubmitted: !isPristine,\n\t _isPristine: isPristine\n\t });\n\t });\n\t },\n\t\n\t // Use the binded values and the actual input value to\n\t // validate the input and set its state. Then check the\n\t // state of the form itself\n\t validate: function validate(component) {\n\t\n\t // Trigger onChange\n\t if (this.state.canChange) {\n\t this.props.onChange(this.getCurrentValues(), this.isChanged());\n\t }\n\t\n\t var validation = this.runValidation(component);\n\t // Run through the validations, split them up and call\n\t // the validator IF there is a value or it is required\n\t component.setState({\n\t _isValid: validation.isValid,\n\t _isRequired: validation.isRequired,\n\t _validationError: validation.error,\n\t _externalError: null\n\t }, this.validateForm);\n\t },\n\t\n\t // Checks validation on current value or a passed value\n\t runValidation: function runValidation(component, value) {\n\t\n\t var currentValues = this.getCurrentValues();\n\t var validationErrors = component.props.validationErrors;\n\t var validationError = component.props.validationError;\n\t value = arguments.length === 2 ? value : component.state._value;\n\t\n\t var validationResults = this.runRules(value, currentValues, component._validations);\n\t var requiredResults = this.runRules(value, currentValues, component._requiredValidations);\n\t\n\t // the component defines an explicit validate function\n\t if (typeof component.validate === \"function\") {\n\t validationResults.failed = component.validate() ? [] : ['failed'];\n\t }\n\t\n\t var isRequired = Object.keys(component._requiredValidations).length ? !!requiredResults.success.length : false;\n\t var isValid = !validationResults.failed.length && !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\t\n\t return {\n\t isRequired: isRequired,\n\t isValid: isRequired ? false : isValid,\n\t error: function () {\n\t\n\t if (isValid && !isRequired) {\n\t return emptyArray;\n\t }\n\t\n\t if (validationResults.errors.length) {\n\t return validationResults.errors;\n\t }\n\t\n\t if (this.props.validationErrors && this.props.validationErrors[component.props.name]) {\n\t return typeof this.props.validationErrors[component.props.name] === 'string' ? [this.props.validationErrors[component.props.name]] : this.props.validationErrors[component.props.name];\n\t }\n\t\n\t if (isRequired) {\n\t var error = validationErrors[requiredResults.success[0]];\n\t return error ? [error] : null;\n\t }\n\t\n\t if (validationResults.failed.length) {\n\t return validationResults.failed.map(function (failed) {\n\t return validationErrors[failed] ? validationErrors[failed] : validationError;\n\t }).filter(function (x, pos, arr) {\n\t // Remove duplicates\n\t return arr.indexOf(x) === pos;\n\t });\n\t }\n\t }.call(this)\n\t };\n\t },\n\t\n\t runRules: function runRules(value, currentValues, validations) {\n\t\n\t var results = {\n\t errors: [],\n\t failed: [],\n\t success: []\n\t };\n\t if (Object.keys(validations).length) {\n\t Object.keys(validations).forEach(function (validationMethod) {\n\t\n\t if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') {\n\t throw new Error('Formsy does not allow you to override default validations: ' + validationMethod);\n\t }\n\t\n\t if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') {\n\t throw new Error('Formsy does not have the validation rule: ' + validationMethod);\n\t }\n\t\n\t if (typeof validations[validationMethod] === 'function') {\n\t var validation = validations[validationMethod](currentValues, value);\n\t if (typeof validation === 'string') {\n\t results.errors.push(validation);\n\t results.failed.push(validationMethod);\n\t } else if (!validation) {\n\t results.failed.push(validationMethod);\n\t }\n\t return;\n\t } else if (typeof validations[validationMethod] !== 'function') {\n\t var validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n\t if (typeof validation === 'string') {\n\t results.errors.push(validation);\n\t results.failed.push(validationMethod);\n\t } else if (!validation) {\n\t results.failed.push(validationMethod);\n\t } else {\n\t results.success.push(validationMethod);\n\t }\n\t return;\n\t }\n\t\n\t return results.success.push(validationMethod);\n\t });\n\t }\n\t\n\t return results;\n\t },\n\t\n\t // Validate the form by going through all child input components\n\t // and check their state\n\t validateForm: function validateForm() {\n\t var _this3 = this;\n\t\n\t // We need a callback as we are validating all inputs again. This will\n\t // run when the last component has set its state\n\t var onValidationComplete = function () {\n\t var allIsValid = this.inputs.every(function (component) {\n\t return component.state._isValid;\n\t });\n\t\n\t this.setState({\n\t isValid: allIsValid\n\t });\n\t\n\t if (allIsValid) {\n\t this.props.onValid();\n\t } else {\n\t this.props.onInvalid();\n\t }\n\t\n\t // Tell the form that it can start to trigger change events\n\t this.setState({\n\t canChange: true\n\t });\n\t }.bind(this);\n\t\n\t // Run validation again in case affected by other inputs. The\n\t // last component validated will run the onValidationComplete callback\n\t this.inputs.forEach(function (component, index) {\n\t var validation = _this3.runValidation(component);\n\t if (validation.isValid && component.state._externalError) {\n\t validation.isValid = false;\n\t }\n\t component.setState({\n\t _isValid: validation.isValid,\n\t _isRequired: validation.isRequired,\n\t _validationError: validation.error,\n\t _externalError: !validation.isValid && component.state._externalError ? component.state._externalError : null\n\t }, index === _this3.inputs.length - 1 ? onValidationComplete : null);\n\t });\n\t\n\t // If there are no inputs, set state where form is ready to trigger\n\t // change event. New inputs might be added later\n\t if (!this.inputs.length && this.isMounted()) {\n\t this.setState({\n\t canChange: true\n\t });\n\t }\n\t },\n\t\n\t // Method put on each input component to register\n\t // itself to the form\n\t attachToForm: function attachToForm(component) {\n\t\n\t if (this.inputs.indexOf(component) === -1) {\n\t this.inputs.push(component);\n\t }\n\t\n\t this.validate(component);\n\t },\n\t\n\t // Method put on each input component to unregister\n\t // itself from the form\n\t detachFromForm: function detachFromForm(component) {\n\t var componentPos = this.inputs.indexOf(component);\n\t\n\t if (componentPos !== -1) {\n\t this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n\t }\n\t\n\t this.validateForm();\n\t },\n\t render: function render() {\n\t var _props = this.props,\n\t mapping = _props.mapping,\n\t validationErrors = _props.validationErrors,\n\t onSubmit = _props.onSubmit,\n\t onValid = _props.onValid,\n\t onValidSubmit = _props.onValidSubmit,\n\t onInvalid = _props.onInvalid,\n\t onInvalidSubmit = _props.onInvalidSubmit,\n\t onChange = _props.onChange,\n\t reset = _props.reset,\n\t preventExternalInvalidation = _props.preventExternalInvalidation,\n\t onSuccess = _props.onSuccess,\n\t onError = _props.onError,\n\t nonFormsyProps = _objectWithoutProperties(_props, ['mapping', 'validationErrors', 'onSubmit', 'onValid', 'onValidSubmit', 'onInvalid', 'onInvalidSubmit', 'onChange', 'reset', 'preventExternalInvalidation', 'onSuccess', 'onError']);\n\t\n\t return React.createElement(\n\t 'form',\n\t _extends({}, nonFormsyProps, { onSubmit: this.submit }),\n\t this.props.children\n\t );\n\t }\n\t});\n\t\n\tif (!global.exports && !global.module && (!global.define || !global.define.amd)) {\n\t global.Formsy = Formsy;\n\t}\n\t\n\tmodule.exports = Formsy;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar PropTypes = __webpack_require__(9);\n\tvar utils = __webpack_require__(7);\n\tvar React = global.React || __webpack_require__(2);\n\t\n\tvar convertValidationsToObject = function convertValidationsToObject(validations) {\n\t\n\t if (typeof validations === 'string') {\n\t\n\t return validations.split(/\\,(?![^{\\[]*[}\\]])/g).reduce(function (validations, validation) {\n\t var args = validation.split(':');\n\t var validateMethod = args.shift();\n\t\n\t args = args.map(function (arg) {\n\t try {\n\t return JSON.parse(arg);\n\t } catch (e) {\n\t return arg; // It is a string if it can not parse it\n\t }\n\t });\n\t\n\t if (args.length > 1) {\n\t throw new Error('Formsy does not support multiple args on string validations. Use object format of validations instead.');\n\t }\n\t\n\t validations[validateMethod] = args.length ? args[0] : true;\n\t return validations;\n\t }, {});\n\t }\n\t\n\t return validations || {};\n\t};\n\t\n\tmodule.exports = {\n\t getInitialState: function getInitialState() {\n\t return {\n\t _value: this.props.value,\n\t _isRequired: false,\n\t _isValid: true,\n\t _isPristine: true,\n\t _pristineValue: this.props.value,\n\t _validationError: [],\n\t _externalError: null,\n\t _formSubmitted: false\n\t };\n\t },\n\t contextTypes: {\n\t formsy: PropTypes.object // What about required?\n\t },\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t validationError: '',\n\t validationErrors: {}\n\t };\n\t },\n\t\n\t componentWillMount: function componentWillMount() {\n\t var configure = function () {\n\t this.setValidations(this.props.validations, this.props.required);\n\t\n\t // Pass a function instead?\n\t this.context.formsy.attachToForm(this);\n\t //this.props._attachToForm(this);\n\t }.bind(this);\n\t\n\t if (!this.props.name) {\n\t throw new Error('Form Input requires a name property when used');\n\t }\n\t\n\t /*\n\t if (!this.props._attachToForm) {\n\t return setTimeout(function () {\n\t if (!this.isMounted()) return;\n\t if (!this.props._attachToForm) {\n\t throw new Error('Form Mixin requires component to be nested in a Form');\n\t }\n\t configure();\n\t }.bind(this), 0);\n\t }\n\t */\n\t configure();\n\t },\n\t\n\t // We have to make the validate method is kept when new props are added\n\t componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n\t this.setValidations(nextProps.validations, nextProps.required);\n\t },\n\t\n\t componentDidUpdate: function componentDidUpdate(prevProps) {\n\t\n\t // If the value passed has changed, set it. If value is not passed it will\n\t // internally update, and this will never run\n\t if (!utils.isSame(this.props.value, prevProps.value)) {\n\t this.setValue(this.props.value);\n\t }\n\t\n\t // If validations or required is changed, run a new validation\n\t if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) {\n\t this.context.formsy.validate(this);\n\t }\n\t },\n\t\n\t // Detach it when component unmounts\n\t componentWillUnmount: function componentWillUnmount() {\n\t this.context.formsy.detachFromForm(this);\n\t //this.props._detachFromForm(this);\n\t },\n\t\n\t setValidations: function setValidations(validations, required) {\n\t\n\t // Add validations to the store itself as the props object can not be modified\n\t this._validations = convertValidationsToObject(validations) || {};\n\t this._requiredValidations = required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n\t },\n\t\n\t // We validate after the value has been set\n\t setValue: function setValue(value) {\n\t this.setState({\n\t _value: value,\n\t _isPristine: false\n\t }, function () {\n\t this.context.formsy.validate(this);\n\t //this.props._validate(this);\n\t }.bind(this));\n\t },\n\t resetValue: function resetValue() {\n\t this.setState({\n\t _value: this.state._pristineValue,\n\t _isPristine: true\n\t }, function () {\n\t this.context.formsy.validate(this);\n\t //this.props._validate(this);\n\t });\n\t },\n\t getValue: function getValue() {\n\t return this.state._value;\n\t },\n\t hasValue: function hasValue() {\n\t return this.state._value !== '';\n\t },\n\t getErrorMessage: function getErrorMessage() {\n\t var messages = this.getErrorMessages();\n\t return messages.length ? messages[0] : null;\n\t },\n\t getErrorMessages: function getErrorMessages() {\n\t return !this.isValid() || this.showRequired() ? this.state._externalError || this.state._validationError || [] : [];\n\t },\n\t isFormDisabled: function isFormDisabled() {\n\t return this.context.formsy.isFormDisabled();\n\t //return this.props._isFormDisabled();\n\t },\n\t isValid: function isValid() {\n\t return this.state._isValid;\n\t },\n\t isPristine: function isPristine() {\n\t return this.state._isPristine;\n\t },\n\t isFormSubmitted: function isFormSubmitted() {\n\t return this.state._formSubmitted;\n\t },\n\t isRequired: function isRequired() {\n\t return !!this.props.required;\n\t },\n\t showRequired: function showRequired() {\n\t return this.state._isRequired;\n\t },\n\t showError: function showError() {\n\t return !this.showRequired() && !this.isValid();\n\t },\n\t isValidValue: function isValidValue(value) {\n\t return this.context.formsy.isValidValue.call(null, this, value);\n\t //return this.props._isValidValue.call(null, this, value);\n\t }\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * \n\t */\n\t\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\t\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\t\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\t\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar validateFormat = function validateFormat(format) {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\t\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tmodule.exports = {\n\t arraysDiffer: function arraysDiffer(a, b) {\n\t var isDifferent = false;\n\t if (a.length !== b.length) {\n\t isDifferent = true;\n\t } else {\n\t a.forEach(function (item, index) {\n\t if (!this.isSame(item, b[index])) {\n\t isDifferent = true;\n\t }\n\t }, this);\n\t }\n\t return isDifferent;\n\t },\n\t\n\t objectsDiffer: function objectsDiffer(a, b) {\n\t var isDifferent = false;\n\t if (Object.keys(a).length !== Object.keys(b).length) {\n\t isDifferent = true;\n\t } else {\n\t Object.keys(a).forEach(function (key) {\n\t if (!this.isSame(a[key], b[key])) {\n\t isDifferent = true;\n\t }\n\t }, this);\n\t }\n\t return isDifferent;\n\t },\n\t\n\t isSame: function isSame(a, b) {\n\t if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) !== (typeof b === 'undefined' ? 'undefined' : _typeof(b))) {\n\t return false;\n\t } else if (Array.isArray(a) && Array.isArray(b)) {\n\t return !this.arraysDiffer(a, b);\n\t } else if (typeof a === 'function') {\n\t return a.toString() === b.toString();\n\t } else if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object' && a !== null && b !== null) {\n\t return !this.objectsDiffer(a, b);\n\t }\n\t\n\t return a === b;\n\t },\n\t\n\t find: function find(collection, fn) {\n\t for (var i = 0, l = collection.length; i < l; i++) {\n\t var item = collection[i];\n\t if (fn(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t }\n\t};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(4);\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = emptyFunction;\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t (function () {\n\t var printWarning = function printWarning(format) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var argIndex = 0;\n\t var message = 'Warning: ' + format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // --- Welcome to debugging React ---\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch (x) {}\n\t };\n\t\n\t warning = function warning(condition, format) {\n\t if (format === undefined) {\n\t throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n\t }\n\t\n\t if (format.indexOf('Failed Composite propType: ') === 0) {\n\t return; // Ignore CompositeComponent proptype check.\n\t }\n\t\n\t if (!condition) {\n\t for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t args[_key2 - 2] = arguments[_key2];\n\t }\n\t\n\t printWarning.apply(undefined, [format].concat(args));\n\t }\n\t };\n\t })();\n\t}\n\t\n\tmodule.exports = warning;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\t\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\t\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = __webpack_require__(16)(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(15)();\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar React = global.React || __webpack_require__(2);\n\tvar Mixin = __webpack_require__(3);\n\tmodule.exports = function () {\n\t return function (Component) {\n\t return React.createClass({\n\t mixins: [Mixin],\n\t render: function render() {\n\t return React.createElement(Component, _extends({\n\t setValidations: this.setValidations,\n\t setValue: this.setValue,\n\t resetValue: this.resetValue,\n\t getValue: this.getValue,\n\t hasValue: this.hasValue,\n\t getErrorMessage: this.getErrorMessage,\n\t getErrorMessages: this.getErrorMessages,\n\t isFormDisabled: this.isFormDisabled,\n\t isValid: this.isValid,\n\t isPristine: this.isPristine,\n\t isFormSubmitted: this.isFormSubmitted,\n\t isRequired: this.isRequired,\n\t showRequired: this.showRequired,\n\t showError: this.showError,\n\t isValidValue: this.isValidValue\n\t }, this.props));\n\t }\n\t });\n\t };\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar React = global.React || __webpack_require__(2);\n\tvar Mixin = __webpack_require__(3);\n\tmodule.exports = function (Component) {\n\t return React.createClass({\n\t displayName: 'Formsy(' + getDisplayName(Component) + ')',\n\t mixins: [Mixin],\n\t\n\t render: function render() {\n\t var innerRef = this.props.innerRef;\n\t\n\t var propsForElement = _extends({\n\t setValidations: this.setValidations,\n\t setValue: this.setValue,\n\t resetValue: this.resetValue,\n\t getValue: this.getValue,\n\t hasValue: this.hasValue,\n\t getErrorMessage: this.getErrorMessage,\n\t getErrorMessages: this.getErrorMessages,\n\t isFormDisabled: this.isFormDisabled,\n\t isValid: this.isValid,\n\t isPristine: this.isPristine,\n\t isFormSubmitted: this.isFormSubmitted,\n\t isRequired: this.isRequired,\n\t showRequired: this.showRequired,\n\t showError: this.showError,\n\t isValidValue: this.isValidValue\n\t }, this.props);\n\t\n\t if (innerRef) {\n\t propsForElement.ref = innerRef;\n\t }\n\t return React.createElement(Component, propsForElement);\n\t }\n\t });\n\t};\n\t\n\tfunction getDisplayName(Component) {\n\t return Component.displayName || Component.name || (typeof Component === 'string' ? Component : 'Component');\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar _isExisty = function _isExisty(value) {\n\t return value !== null && value !== undefined;\n\t};\n\t\n\tvar isEmpty = function isEmpty(value) {\n\t return value === '';\n\t};\n\t\n\tvar validations = {\n\t isDefaultRequiredValue: function isDefaultRequiredValue(values, value) {\n\t return value === undefined || value === '';\n\t },\n\t isExisty: function isExisty(values, value) {\n\t return _isExisty(value);\n\t },\n\t matchRegexp: function matchRegexp(values, value, regexp) {\n\t return !_isExisty(value) || isEmpty(value) || regexp.test(value);\n\t },\n\t isUndefined: function isUndefined(values, value) {\n\t return value === undefined;\n\t },\n\t isEmptyString: function isEmptyString(values, value) {\n\t return isEmpty(value);\n\t },\n\t isEmail: function isEmail(values, value) {\n\t return validations.matchRegexp(values, value, /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i);\n\t },\n\t isUrl: function isUrl(values, value) {\n\t return validations.matchRegexp(values, value, /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i);\n\t },\n\t isTrue: function isTrue(values, value) {\n\t return value === true;\n\t },\n\t isFalse: function isFalse(values, value) {\n\t return value === false;\n\t },\n\t isNumeric: function isNumeric(values, value) {\n\t if (typeof value === 'number') {\n\t return true;\n\t }\n\t return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n\t },\n\t isAlpha: function isAlpha(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n\t },\n\t isAlphanumeric: function isAlphanumeric(values, value) {\n\t return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n\t },\n\t isInt: function isInt(values, value) {\n\t return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n\t },\n\t isFloat: function isFloat(values, value) {\n\t return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/);\n\t },\n\t isWords: function isWords(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n\t },\n\t isSpecialWords: function isSpecialWords(values, value) {\n\t return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n\t },\n\t isLength: function isLength(values, value, length) {\n\t return !_isExisty(value) || isEmpty(value) || value.length === length;\n\t },\n\t equals: function equals(values, value, eql) {\n\t return !_isExisty(value) || isEmpty(value) || value == eql;\n\t },\n\t equalsField: function equalsField(values, value, field) {\n\t return value == values[field];\n\t },\n\t maxLength: function maxLength(values, value, length) {\n\t return !_isExisty(value) || value.length <= length;\n\t },\n\t minLength: function minLength(values, value, length) {\n\t return !_isExisty(value) || isEmpty(value) || value.length >= length;\n\t }\n\t};\n\t\n\tmodule.exports = validations;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n\tfunction toObj(source) {\n\t return Object.keys(source).reduce(function (output, key) {\n\t var parentKey = key.match(/[^\\[]*/i);\n\t var paths = key.match(/\\[.*?\\]/g) || [];\n\t paths = [parentKey[0]].concat(paths).map(function (key) {\n\t return key.replace(/\\[|\\]/g, '');\n\t });\n\t var currentPath = output;\n\t while (paths.length) {\n\t var pathKey = paths.shift();\n\t\n\t if (pathKey in currentPath) {\n\t currentPath = currentPath[pathKey];\n\t } else {\n\t currentPath[pathKey] = paths.length ? isNaN(paths[0]) ? {} : [] : source[key];\n\t currentPath = currentPath[pathKey];\n\t }\n\t }\n\t\n\t return output;\n\t }, {});\n\t}\n\t\n\tfunction fromObj(obj) {\n\t function recur(newObj, propName, currVal) {\n\t if (Array.isArray(currVal) || Object.prototype.toString.call(currVal) === '[object Object]') {\n\t Object.keys(currVal).forEach(function(v) {\n\t recur(newObj, propName + \"[\" + v + \"]\", currVal[v]);\n\t });\n\t return newObj;\n\t }\n\t\n\t newObj[propName] = currVal;\n\t return newObj;\n\t }\n\t\n\t var keys = Object.keys(obj);\n\t return keys.reduce(function(newObj, propName) {\n\t return recur(newObj, propName, obj[propName]);\n\t }, {});\n\t}\n\t\n\tmodule.exports = {\n\t fromObj: fromObj,\n\t toObj: toObj\n\t}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var invariant = __webpack_require__(5);\n\t var warning = __webpack_require__(8);\n\t var ReactPropTypesSecret = __webpack_require__(6);\n\t var loggedTypeFailures = {};\n\t}\n\t\n\t/**\n\t * Assert that the values match with the type specs.\n\t * Error messages are memorized and will only be shown once.\n\t *\n\t * @param {object} typeSpecs Map of name to a ReactPropType\n\t * @param {object} values Runtime values that need to be type-checked\n\t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n\t * @param {string} componentName Name of the component for error messages.\n\t * @param {?Function} getStack Returns the component stack.\n\t * @private\n\t */\n\tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t for (var typeSpecName in typeSpecs) {\n\t if (typeSpecs.hasOwnProperty(typeSpecName)) {\n\t var error;\n\t // Prop type validation may throw. In case they do, we don't want to\n\t // fail the render phase where it didn't fail before. So we log it.\n\t // After these have been cleaned up, we'll let them throw.\n\t try {\n\t // This is intentionally an invariant that gets caught. It's the same\n\t // behavior as without this statement except with a better message.\n\t invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n\t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t } catch (ex) {\n\t error = ex;\n\t }\n\t warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n\t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n\t // Only monitor this failure once because there tends to be a lot of the\n\t // same error.\n\t loggedTypeFailures[error.message] = true;\n\t\n\t var stack = getStack ? getStack() : '';\n\t\n\t warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n\t }\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = checkPropTypes;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(4);\n\tvar invariant = __webpack_require__(5);\n\tvar ReactPropTypesSecret = __webpack_require__(6);\n\t\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\t\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(4);\n\tvar invariant = __webpack_require__(5);\n\tvar warning = __webpack_require__(8);\n\t\n\tvar ReactPropTypesSecret = __webpack_require__(6);\n\tvar checkPropTypes = __webpack_require__(14);\n\t\n\tmodule.exports = function(isValidElement, throwOnDirectAccess) {\n\t /* global Symbol */\n\t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\t\n\t /**\n\t * Returns the iterator method function contained on the iterable object.\n\t *\n\t * Be sure to invoke the function with the iterable as context:\n\t *\n\t * var iteratorFn = getIteratorFn(myIterable);\n\t * if (iteratorFn) {\n\t * var iterator = iteratorFn.call(myIterable);\n\t * ...\n\t * }\n\t *\n\t * @param {?object} maybeIterable\n\t * @return {?function}\n\t */\n\t function getIteratorFn(maybeIterable) {\n\t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\t if (typeof iteratorFn === 'function') {\n\t return iteratorFn;\n\t }\n\t }\n\t\n\t /**\n\t * Collection of methods that allow declaration and validation of props that are\n\t * supplied to React components. Example usage:\n\t *\n\t * var Props = require('ReactPropTypes');\n\t * var MyArticle = React.createClass({\n\t * propTypes: {\n\t * // An optional string prop named \"description\".\n\t * description: Props.string,\n\t *\n\t * // A required enum prop named \"category\".\n\t * category: Props.oneOf(['News','Photos']).isRequired,\n\t *\n\t * // A prop named \"dialog\" that requires an instance of Dialog.\n\t * dialog: Props.instanceOf(Dialog).isRequired\n\t * },\n\t * render: function() { ... }\n\t * });\n\t *\n\t * A more formal specification of how these methods are used:\n\t *\n\t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n\t * decl := ReactPropTypes.{type}(.isRequired)?\n\t *\n\t * Each and every declaration produces a function with the same signature. This\n\t * allows the creation of custom validation functions. For example:\n\t *\n\t * var MyLink = React.createClass({\n\t * propTypes: {\n\t * // An optional string or URI prop named \"href\".\n\t * href: function(props, propName, componentName) {\n\t * var propValue = props[propName];\n\t * if (propValue != null && typeof propValue !== 'string' &&\n\t * !(propValue instanceof URI)) {\n\t * return new Error(\n\t * 'Expected a string or an URI for ' + propName + ' in ' +\n\t * componentName\n\t * );\n\t * }\n\t * }\n\t * },\n\t * render: function() {...}\n\t * });\n\t *\n\t * @internal\n\t */\n\t\n\t var ANONYMOUS = '<>';\n\t\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\t var ReactPropTypes = {\n\t array: createPrimitiveTypeChecker('array'),\n\t bool: createPrimitiveTypeChecker('boolean'),\n\t func: createPrimitiveTypeChecker('function'),\n\t number: createPrimitiveTypeChecker('number'),\n\t object: createPrimitiveTypeChecker('object'),\n\t string: createPrimitiveTypeChecker('string'),\n\t symbol: createPrimitiveTypeChecker('symbol'),\n\t\n\t any: createAnyTypeChecker(),\n\t arrayOf: createArrayOfTypeChecker,\n\t element: createElementTypeChecker(),\n\t instanceOf: createInstanceTypeChecker,\n\t node: createNodeChecker(),\n\t objectOf: createObjectOfTypeChecker,\n\t oneOf: createEnumTypeChecker,\n\t oneOfType: createUnionTypeChecker,\n\t shape: createShapeTypeChecker\n\t };\n\t\n\t /**\n\t * inlined Object.is polyfill to avoid requiring consumers ship their own\n\t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\t */\n\t /*eslint-disable no-self-compare*/\n\t function is(x, y) {\n\t // SameValue algorithm\n\t if (x === y) {\n\t // Steps 1-5, 7-10\n\t // Steps 6.b-6.e: +0 != -0\n\t return x !== 0 || 1 / x === 1 / y;\n\t } else {\n\t // Step 6.a: NaN == NaN\n\t return x !== x && y !== y;\n\t }\n\t }\n\t /*eslint-enable no-self-compare*/\n\t\n\t /**\n\t * We use an Error-like object for backward compatibility as people may call\n\t * PropTypes directly and inspect their output. However, we don't use real\n\t * Errors anymore. We don't inspect their stack anyway, and creating them\n\t * is prohibitively expensive if they are created too often, such as what\n\t * happens in oneOfType() for any type before the one that matched.\n\t */\n\t function PropTypeError(message) {\n\t this.message = message;\n\t this.stack = '';\n\t }\n\t // Make `instanceof Error` still work for returned errors.\n\t PropTypeError.prototype = Error.prototype;\n\t\n\t function createChainableTypeChecker(validate) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var manualPropTypeCallCache = {};\n\t var manualPropTypeWarningCount = 0;\n\t }\n\t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n\t componentName = componentName || ANONYMOUS;\n\t propFullName = propFullName || propName;\n\t\n\t if (secret !== ReactPropTypesSecret) {\n\t if (throwOnDirectAccess) {\n\t // New behavior only for users of `prop-types` package\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n\t // Old behavior for people using React.PropTypes\n\t var cacheKey = componentName + ':' + propName;\n\t if (\n\t !manualPropTypeCallCache[cacheKey] &&\n\t // Avoid spamming the console because they are often not actionable except for lib authors\n\t manualPropTypeWarningCount < 3\n\t ) {\n\t warning(\n\t false,\n\t 'You are manually calling a React.PropTypes validation ' +\n\t 'function for the `%s` prop on `%s`. This is deprecated ' +\n\t 'and will throw in the standalone `prop-types` package. ' +\n\t 'You may be seeing this warning due to a third-party PropTypes ' +\n\t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n\t propFullName,\n\t componentName\n\t );\n\t manualPropTypeCallCache[cacheKey] = true;\n\t manualPropTypeWarningCount++;\n\t }\n\t }\n\t }\n\t if (props[propName] == null) {\n\t if (isRequired) {\n\t if (props[propName] === null) {\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n\t }\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n\t }\n\t return null;\n\t } else {\n\t return validate(props, propName, componentName, location, propFullName);\n\t }\n\t }\n\t\n\t var chainedCheckType = checkType.bind(null, false);\n\t chainedCheckType.isRequired = checkType.bind(null, true);\n\t\n\t return chainedCheckType;\n\t }\n\t\n\t function createPrimitiveTypeChecker(expectedType) {\n\t function validate(props, propName, componentName, location, propFullName, secret) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== expectedType) {\n\t // `propValue` being instance of, say, date/regexp, pass the 'object'\n\t // check, but we can offer a more precise error message here rather than\n\t // 'of type `object`'.\n\t var preciseType = getPreciseType(propValue);\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createAnyTypeChecker() {\n\t return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n\t }\n\t\n\t function createArrayOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n\t }\n\t var propValue = props[propName];\n\t if (!Array.isArray(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n\t }\n\t for (var i = 0; i < propValue.length; i++) {\n\t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createElementTypeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t if (!isValidElement(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createInstanceTypeChecker(expectedClass) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!(props[propName] instanceof expectedClass)) {\n\t var expectedClassName = expectedClass.name || ANONYMOUS;\n\t var actualClassName = getClassName(props[propName]);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createEnumTypeChecker(expectedValues) {\n\t if (!Array.isArray(expectedValues)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t for (var i = 0; i < expectedValues.length; i++) {\n\t if (is(propValue, expectedValues[i])) {\n\t return null;\n\t }\n\t }\n\t\n\t var valuesString = JSON.stringify(expectedValues);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createObjectOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n\t }\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n\t }\n\t for (var key in propValue) {\n\t if (propValue.hasOwnProperty(key)) {\n\t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createUnionTypeChecker(arrayOfTypeCheckers) {\n\t if (!Array.isArray(arrayOfTypeCheckers)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (typeof checker !== 'function') {\n\t warning(\n\t false,\n\t 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n\t 'received %s at index %s.',\n\t getPostfixForTypeWarning(checker),\n\t i\n\t );\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n\t return null;\n\t }\n\t }\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createNodeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!isNode(props[propName])) {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t for (var key in shapeTypes) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t continue;\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function isNode(propValue) {\n\t switch (typeof propValue) {\n\t case 'number':\n\t case 'string':\n\t case 'undefined':\n\t return true;\n\t case 'boolean':\n\t return !propValue;\n\t case 'object':\n\t if (Array.isArray(propValue)) {\n\t return propValue.every(isNode);\n\t }\n\t if (propValue === null || isValidElement(propValue)) {\n\t return true;\n\t }\n\t\n\t var iteratorFn = getIteratorFn(propValue);\n\t if (iteratorFn) {\n\t var iterator = iteratorFn.call(propValue);\n\t var step;\n\t if (iteratorFn !== propValue.entries) {\n\t while (!(step = iterator.next()).done) {\n\t if (!isNode(step.value)) {\n\t return false;\n\t }\n\t }\n\t } else {\n\t // Iterator will provide entry [k,v] tuples rather than values.\n\t while (!(step = iterator.next()).done) {\n\t var entry = step.value;\n\t if (entry) {\n\t if (!isNode(entry[1])) {\n\t return false;\n\t }\n\t }\n\t }\n\t }\n\t } else {\n\t return false;\n\t }\n\t\n\t return true;\n\t default:\n\t return false;\n\t }\n\t }\n\t\n\t function isSymbol(propType, propValue) {\n\t // Native Symbol.\n\t if (propType === 'symbol') {\n\t return true;\n\t }\n\t\n\t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\t if (propValue['@@toStringTag'] === 'Symbol') {\n\t return true;\n\t }\n\t\n\t // Fallback for non-spec compliant Symbols which are polyfilled.\n\t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n\t return true;\n\t }\n\t\n\t return false;\n\t }\n\t\n\t // Equivalent of `typeof` but with special handling for array and regexp.\n\t function getPropType(propValue) {\n\t var propType = typeof propValue;\n\t if (Array.isArray(propValue)) {\n\t return 'array';\n\t }\n\t if (propValue instanceof RegExp) {\n\t // Old webkits (at least until Android 4.0) return 'function' rather than\n\t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n\t // passes PropTypes.object.\n\t return 'object';\n\t }\n\t if (isSymbol(propType, propValue)) {\n\t return 'symbol';\n\t }\n\t return propType;\n\t }\n\t\n\t // This handles more types than `getPropType`. Only used for error messages.\n\t // See `createPrimitiveTypeChecker`.\n\t function getPreciseType(propValue) {\n\t if (typeof propValue === 'undefined' || propValue === null) {\n\t return '' + propValue;\n\t }\n\t var propType = getPropType(propValue);\n\t if (propType === 'object') {\n\t if (propValue instanceof Date) {\n\t return 'date';\n\t } else if (propValue instanceof RegExp) {\n\t return 'regexp';\n\t }\n\t }\n\t return propType;\n\t }\n\t\n\t // Returns a string that is postfixed to a warning about an invalid type.\n\t // For example, \"undefined\" or \"of type array\"\n\t function getPostfixForTypeWarning(value) {\n\t var type = getPreciseType(value);\n\t switch (type) {\n\t case 'array':\n\t case 'object':\n\t return 'an ' + type;\n\t case 'boolean':\n\t case 'date':\n\t case 'regexp':\n\t return 'a ' + type;\n\t default:\n\t return type;\n\t }\n\t }\n\t\n\t // Returns class name of the object, if any.\n\t function getClassName(propValue) {\n\t if (!propValue.constructor || !propValue.constructor.name) {\n\t return ANONYMOUS;\n\t }\n\t return propValue.constructor.name;\n\t }\n\t\n\t ReactPropTypes.checkPropTypes = checkPropTypes;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// formsy-react.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a6e22942c9248b68a63d","var PropTypes = require('prop-types');\nvar React = global.React || require('react');\nvar Formsy = {};\nvar validationRules = require('./validationRules.js');\nvar formDataToObject = require('form-data-to-object');\nvar utils = require('./utils.js');\nvar Mixin = require('./Mixin.js');\nvar HOC = require('./HOC.js');\nvar Decorator = require('./Decorator.js');\nvar options = {};\nvar emptyArray = [];\n\nFormsy.Mixin = Mixin;\nFormsy.HOC = HOC;\nFormsy.Decorator = Decorator;\n\nFormsy.defaults = function (passedOptions) {\n options = passedOptions;\n};\n\nFormsy.addValidationRule = function (name, func) {\n validationRules[name] = func;\n};\n\nFormsy.Form = React.createClass({\n displayName: 'Formsy',\n getInitialState: function () {\n return {\n isValid: true,\n isSubmitting: false,\n canChange: false\n };\n },\n getDefaultProps: function () {\n return {\n onSuccess: function () {},\n onError: function () {},\n onSubmit: function () {},\n onValidSubmit: function () {},\n onInvalidSubmit: function () {},\n onValid: function () {},\n onInvalid: function () {},\n onChange: function () {},\n validationErrors: null,\n preventExternalInvalidation: false\n };\n },\n\n childContextTypes: {\n formsy: PropTypes.object\n },\n getChildContext: function () {\n return {\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n validate: this.validate,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => {\n return this.runValidation(component, value).isValid;\n }\n }\n }\n },\n\n // Add a map to store the inputs of the form, a model to store\n // the values of the form and register child inputs\n componentWillMount: function () {\n this.inputs = [];\n },\n\n componentDidMount: function () {\n this.validateForm();\n },\n\n componentWillUpdate: function () {\n // Keep a reference to input names before form updates,\n // to check if inputs has changed after render\n this.prevInputNames = this.inputs.map(component => component.props.name);\n },\n\n componentDidUpdate: function () {\n\n if (this.props.validationErrors && typeof this.props.validationErrors === 'object' && Object.keys(this.props.validationErrors).length > 0) {\n this.setInputValidationErrors(this.props.validationErrors);\n }\n\n var newInputNames = this.inputs.map(component => component.props.name);\n if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n\n },\n\n // Allow resetting to specified data\n reset: function (data) {\n this.setFormPristine(true);\n this.resetModel(data);\n },\n\n // Update model, submit to url prop and send the model\n submit: function (event) {\n\n event && event.preventDefault();\n\n // Trigger form as not pristine.\n // If any inputs have not been touched yet this will make them dirty\n // so validation becomes visible (if based on isPristine)\n this.setFormPristine(false);\n var model = this.getModel();\n this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n this.state.isValid ? this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError) : this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\n\n },\n\n mapModel: function (model) {\n\n if (this.props.mapping) {\n return this.props.mapping(model)\n } else {\n return formDataToObject.toObj(Object.keys(model).reduce((mappedModel, key) => {\n\n var keyArray = key.split('.');\n var base = mappedModel;\n while (keyArray.length) {\n var currentKey = keyArray.shift();\n base = (base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key]);\n }\n\n return mappedModel;\n\n }, {}));\n }\n },\n\n getModel: function () {\n var currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n },\n\n // Reset each key in the model to the original / initial / specified value\n resetModel: function (data) {\n this.inputs.forEach(component => {\n var name = component.props.name;\n if (data && data.hasOwnProperty(name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n },\n\n setInputValidationErrors: function (errors) {\n this.inputs.forEach(component => {\n var name = component.props.name;\n var args = [{\n _isValid: !(name in errors),\n _validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n }];\n component.setState.apply(component, args);\n });\n },\n\n // Checks if the values have changed from their initial value\n isChanged: function() {\n return !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n },\n\n getPristineValues: function() {\n return this.inputs.reduce((data, component) => {\n var name = component.props.name;\n data[name] = component.props.value;\n return data;\n }, {});\n },\n\n // Go through errors from server and grab the components\n // stored in the inputs map. Change their state to invalid\n // and set the serverError message\n updateInputsWithError: function (errors) {\n Object.keys(errors).forEach((name, index) => {\n var component = utils.find(this.inputs, component => component.props.name === name);\n if (!component) {\n throw new Error('You are trying to update an input that does not exist. ' +\n 'Verify errors object with input names. ' + JSON.stringify(errors));\n }\n var args = [{\n _isValid: this.props.preventExternalInvalidation || false,\n _externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name]\n }];\n component.setState.apply(component, args);\n });\n },\n\n isFormDisabled: function () {\n return this.props.disabled;\n },\n\n getCurrentValues: function () {\n return this.inputs.reduce((data, component) => {\n var name = component.props.name;\n data[name] = component.state._value;\n return data;\n }, {});\n },\n\n setFormPristine: function (isPristine) {\n this.setState({\n _formSubmitted: !isPristine\n });\n\n // Iterate through each component and set it as pristine\n // or \"dirty\".\n this.inputs.forEach((component, index) => {\n component.setState({\n _formSubmitted: !isPristine,\n _isPristine: isPristine\n });\n });\n },\n\n // Use the binded values and the actual input value to\n // validate the input and set its state. Then check the\n // state of the form itself\n validate: function (component) {\n\n // Trigger onChange\n if (this.state.canChange) {\n this.props.onChange(this.getCurrentValues(), this.isChanged());\n }\n\n var validation = this.runValidation(component);\n // Run through the validations, split them up and call\n // the validator IF there is a value or it is required\n component.setState({\n _isValid: validation.isValid,\n _isRequired: validation.isRequired,\n _validationError: validation.error,\n _externalError: null\n }, this.validateForm);\n\n },\n\n // Checks validation on current value or a passed value\n runValidation: function (component, value) {\n\n var currentValues = this.getCurrentValues();\n var validationErrors = component.props.validationErrors;\n var validationError = component.props.validationError;\n value = arguments.length === 2 ? value : component.state._value;\n\n var validationResults = this.runRules(value, currentValues, component._validations);\n var requiredResults = this.runRules(value, currentValues, component._requiredValidations);\n\n // the component defines an explicit validate function\n if (typeof component.validate === \"function\") {\n validationResults.failed = component.validate() ? [] : ['failed'];\n }\n\n var isRequired = Object.keys(component._requiredValidations).length ? !!requiredResults.success.length : false;\n var isValid = !validationResults.failed.length && !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\n return {\n isRequired: isRequired,\n isValid: isRequired ? false : isValid,\n error: (function () {\n\n if (isValid && !isRequired) {\n return emptyArray;\n }\n\n if (validationResults.errors.length) {\n return validationResults.errors;\n }\n\n if (this.props.validationErrors && this.props.validationErrors[component.props.name]) {\n return typeof this.props.validationErrors[component.props.name] === 'string' ? [this.props.validationErrors[component.props.name]] : this.props.validationErrors[component.props.name];\n }\n\n if (isRequired) {\n var error = validationErrors[requiredResults.success[0]];\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed.map(function(failed) {\n return validationErrors[failed] ? validationErrors[failed] : validationError;\n }).filter(function(x, pos, arr) {\n // Remove duplicates\n return arr.indexOf(x) === pos;\n });\n }\n\n }.call(this))\n };\n\n },\n\n runRules: function (value, currentValues, validations) {\n\n var results = {\n errors: [],\n failed: [],\n success: []\n };\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(function (validationMethod) {\n\n if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') {\n throw new Error('Formsy does not allow you to override default validations: ' + validationMethod);\n }\n\n if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') {\n throw new Error('Formsy does not have the validation rule: ' + validationMethod);\n }\n\n if (typeof validations[validationMethod] === 'function') {\n var validation = validations[validationMethod](currentValues, value);\n if (typeof validation === 'string') {\n results.errors.push(validation);\n results.failed.push(validationMethod);\n } else if (!validation) {\n results.failed.push(validationMethod);\n }\n return;\n\n } else if (typeof validations[validationMethod] !== 'function') {\n var validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n if (typeof validation === 'string') {\n results.errors.push(validation);\n results.failed.push(validationMethod);\n } else if (!validation) {\n results.failed.push(validationMethod);\n } else {\n results.success.push(validationMethod);\n }\n return;\n\n }\n\n return results.success.push(validationMethod);\n\n });\n }\n\n return results;\n\n },\n\n // Validate the form by going through all child input components\n // and check their state\n validateForm: function () {\n\n // We need a callback as we are validating all inputs again. This will\n // run when the last component has set its state\n var onValidationComplete = function () {\n var allIsValid = this.inputs.every(component => {\n return component.state._isValid;\n });\n\n this.setState({\n isValid: allIsValid\n });\n\n if (allIsValid) {\n this.props.onValid();\n } else {\n this.props.onInvalid();\n }\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true\n });\n\n }.bind(this);\n\n // Run validation again in case affected by other inputs. The\n // last component validated will run the onValidationComplete callback\n this.inputs.forEach((component, index) => {\n var validation = this.runValidation(component);\n if (validation.isValid && component.state._externalError) {\n validation.isValid = false;\n }\n component.setState({\n _isValid: validation.isValid,\n _isRequired: validation.isRequired,\n _validationError: validation.error,\n _externalError: !validation.isValid && component.state._externalError ? component.state._externalError : null\n }, index === this.inputs.length - 1 ? onValidationComplete : null);\n });\n\n // If there are no inputs, set state where form is ready to trigger\n // change event. New inputs might be added later\n if (!this.inputs.length && this.isMounted()) {\n this.setState({\n canChange: true\n });\n }\n },\n\n // Method put on each input component to register\n // itself to the form\n attachToForm: function (component) {\n\n if (this.inputs.indexOf(component) === -1) {\n this.inputs.push(component);\n }\n\n this.validate(component);\n },\n\n // Method put on each input component to unregister\n // itself from the form\n detachFromForm: function (component) {\n var componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos)\n .concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n },\n render: function () {\n var {\n mapping,\n validationErrors,\n onSubmit,\n onValid,\n onValidSubmit,\n onInvalid,\n onInvalidSubmit,\n onChange,\n reset,\n preventExternalInvalidation,\n onSuccess,\n onError,\n ...nonFormsyProps\n } = this.props;\n\n return (\n
\n {this.props.children}\n
\n );\n\n }\n});\n\nif (!global.exports && !global.module && (!global.define || !global.define.amd)) {\n global.Formsy = Formsy;\n}\n\nmodule.exports = Formsy;\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 1\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 2\n// module chunks = 0","var PropTypes = require('prop-types');\nvar utils = require('./utils.js');\nvar React = global.React || require('react');\n\nvar convertValidationsToObject = function (validations) {\n\n if (typeof validations === 'string') {\n\n return validations.split(/\\,(?![^{\\[]*[}\\]])/g).reduce(function (validations, validation) {\n var args = validation.split(':');\n var validateMethod = args.shift();\n\n args = args.map(function (arg) {\n try {\n return JSON.parse(arg);\n } catch (e) {\n return arg; // It is a string if it can not parse it\n }\n });\n\n if (args.length > 1) {\n throw new Error('Formsy does not support multiple args on string validations. Use object format of validations instead.');\n }\n\n validations[validateMethod] = args.length ? args[0] : true;\n return validations;\n }, {});\n\n }\n\n return validations || {};\n};\n\nmodule.exports = {\n getInitialState: function () {\n return {\n _value: this.props.value,\n _isRequired: false,\n _isValid: true,\n _isPristine: true,\n _pristineValue: this.props.value,\n _validationError: [],\n _externalError: null,\n _formSubmitted: false\n };\n },\n contextTypes: {\n formsy: PropTypes.object // What about required?\n },\n getDefaultProps: function () {\n return {\n validationError: '',\n validationErrors: {}\n };\n },\n\n componentWillMount: function () {\n var configure = function () {\n this.setValidations(this.props.validations, this.props.required);\n\n // Pass a function instead?\n this.context.formsy.attachToForm(this);\n //this.props._attachToForm(this);\n }.bind(this);\n\n if (!this.props.name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n /*\n if (!this.props._attachToForm) {\n return setTimeout(function () {\n if (!this.isMounted()) return;\n if (!this.props._attachToForm) {\n throw new Error('Form Mixin requires component to be nested in a Form');\n }\n configure();\n }.bind(this), 0);\n }\n */\n configure();\n },\n\n // We have to make the validate method is kept when new props are added\n componentWillReceiveProps: function (nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n\n },\n\n componentDidUpdate: function (prevProps) {\n\n // If the value passed has changed, set it. If value is not passed it will\n // internally update, and this will never run\n if (!utils.isSame(this.props.value, prevProps.value)) {\n this.setValue(this.props.value);\n }\n\n // If validations or required is changed, run a new validation\n if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) {\n this.context.formsy.validate(this);\n }\n },\n\n // Detach it when component unmounts\n componentWillUnmount: function () {\n this.context.formsy.detachFromForm(this);\n //this.props._detachFromForm(this);\n },\n\n setValidations: function (validations, required) {\n\n // Add validations to the store itself as the props object can not be modified\n this._validations = convertValidationsToObject(validations) || {};\n this._requiredValidations = required === true ? {isDefaultRequiredValue: true} : convertValidationsToObject(required);\n\n },\n\n // We validate after the value has been set\n setValue: function (value) {\n this.setState({\n _value: value,\n _isPristine: false\n }, function () {\n this.context.formsy.validate(this);\n //this.props._validate(this);\n }.bind(this));\n },\n resetValue: function () {\n this.setState({\n _value: this.state._pristineValue,\n _isPristine: true\n }, function () {\n this.context.formsy.validate(this);\n //this.props._validate(this);\n });\n },\n getValue: function () {\n return this.state._value;\n },\n hasValue: function () {\n return this.state._value !== '';\n },\n getErrorMessage: function () {\n var messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n },\n getErrorMessages: function () {\n return !this.isValid() || this.showRequired() ? (this.state._externalError || this.state._validationError || []) : [];\n },\n isFormDisabled: function () {\n return this.context.formsy.isFormDisabled();\n //return this.props._isFormDisabled();\n },\n isValid: function () {\n return this.state._isValid;\n },\n isPristine: function () {\n return this.state._isPristine;\n },\n isFormSubmitted: function () {\n return this.state._formSubmitted;\n },\n isRequired: function () {\n return !!this.props.required;\n },\n showRequired: function () {\n return this.state._isRequired;\n },\n showError: function () {\n return !this.showRequired() && !this.isValid();\n },\n isValidValue: function (value) {\n return this.context.formsy.isValidValue.call(null, this, value);\n //return this.props._isValidValue.call(null, this, value);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Mixin.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 5\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 6\n// module chunks = 0","module.exports = {\n arraysDiffer: function (a, b) {\n var isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach(function (item, index) {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer: function (a, b) {\n var isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(function (key) {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame: function (a, b) {\n if (typeof a !== typeof b) {\n return false;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n } else if (typeof a === 'function') {\n return a.toString() === b.toString();\n } else if (typeof a === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find: function (collection, fn) {\n for (var i = 0, l = collection.length; i < l; i++) {\n var item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 9\n// module chunks = 0","var React = global.React || require('react');\nvar Mixin = require('./Mixin.js');\nmodule.exports = function () {\n return function (Component) {\n return React.createClass({\n mixins: [Mixin],\n render: function () {\n return React.createElement(Component, {\n setValidations: this.setValidations,\n setValue: this.setValue,\n resetValue: this.resetValue,\n getValue: this.getValue,\n hasValue: this.hasValue,\n getErrorMessage: this.getErrorMessage,\n getErrorMessages: this.getErrorMessages,\n isFormDisabled: this.isFormDisabled,\n isValid: this.isValid,\n isPristine: this.isPristine,\n isFormSubmitted: this.isFormSubmitted,\n isRequired: this.isRequired,\n showRequired: this.showRequired,\n showError: this.showError,\n isValidValue: this.isValidValue,\n ...this.props\n });\n }\n });\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Decorator.js","var React = global.React || require('react');\nvar Mixin = require('./Mixin.js');\nmodule.exports = function (Component) {\n return React.createClass({\n displayName: 'Formsy(' + getDisplayName(Component) + ')',\n mixins: [Mixin],\n\n render: function () {\n const { innerRef } = this.props;\n const propsForElement = {\n setValidations: this.setValidations,\n setValue: this.setValue,\n resetValue: this.resetValue,\n getValue: this.getValue,\n hasValue: this.hasValue,\n getErrorMessage: this.getErrorMessage,\n getErrorMessages: this.getErrorMessages,\n isFormDisabled: this.isFormDisabled,\n isValid: this.isValid,\n isPristine: this.isPristine,\n isFormSubmitted: this.isFormSubmitted,\n isRequired: this.isRequired,\n showRequired: this.showRequired,\n showError: this.showError,\n isValidValue: this.isValidValue,\n ...this.props\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n return React.createElement(Component, propsForElement);\n }\n });\n};\n\nfunction getDisplayName(Component) {\n return (\n Component.displayName ||\n Component.name ||\n (typeof Component === 'string' ? Component : 'Component')\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/HOC.js","var isExisty = function (value) {\n return value !== null && value !== undefined;\n};\n\nvar isEmpty = function (value) {\n return value === '';\n};\n\nvar validations = {\n isDefaultRequiredValue: function (values, value) {\n return value === undefined || value === '';\n },\n isExisty: function (values, value) {\n return isExisty(value);\n },\n matchRegexp: function (values, value, regexp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined: function (values, value) {\n return value === undefined;\n },\n isEmptyString: function (values, value) {\n return isEmpty(value);\n },\n isEmail: function (values, value) {\n return validations.matchRegexp(values, value, /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i);\n },\n isUrl: function (values, value) {\n return validations.matchRegexp(values, value, /^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i);\n },\n isTrue: function (values, value) {\n return value === true;\n },\n isFalse: function (values, value) {\n return value === false;\n },\n isNumeric: function (values, value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric: function (values, value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat: function (values, value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][\\+\\-]?(?:\\d+))?$/);\n },\n isWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords: function (values, value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals: function (values, value, eql) {\n return !isExisty(value) || isEmpty(value) || value == eql;\n },\n equalsField: function (values, value, field) {\n return value == values[field];\n },\n maxLength: function (values, value, length) {\n return !isExisty(value) || value.length <= length;\n },\n minLength: function (values, value, length) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n }\n};\n\nmodule.exports = validations;\n\n\n\n// WEBPACK FOOTER //\n// ./src/validationRules.js","function toObj(source) {\n return Object.keys(source).reduce(function (output, key) {\n var parentKey = key.match(/[^\\[]*/i);\n var paths = key.match(/\\[.*?\\]/g) || [];\n paths = [parentKey[0]].concat(paths).map(function (key) {\n return key.replace(/\\[|\\]/g, '');\n });\n var currentPath = output;\n while (paths.length) {\n var pathKey = paths.shift();\n\n if (pathKey in currentPath) {\n currentPath = currentPath[pathKey];\n } else {\n currentPath[pathKey] = paths.length ? isNaN(paths[0]) ? {} : [] : source[key];\n currentPath = currentPath[pathKey];\n }\n }\n\n return output;\n }, {});\n}\n\nfunction fromObj(obj) {\n function recur(newObj, propName, currVal) {\n if (Array.isArray(currVal) || Object.prototype.toString.call(currVal) === '[object Object]') {\n Object.keys(currVal).forEach(function(v) {\n recur(newObj, propName + \"[\" + v + \"]\", currVal[v]);\n });\n return newObj;\n }\n\n newObj[propName] = currVal;\n return newObj;\n }\n\n var keys = Object.keys(obj);\n return keys.reduce(function(newObj, propName) {\n return recur(newObj, propName, obj[propName]);\n }, {});\n}\n\nmodule.exports = {\n fromObj: fromObj,\n toObj: toObj\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/form-data-to-object/index.js\n// module id = 13\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 15\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 16\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/src/Mixin.js b/src/Mixin.js index d615fc7a..b8be8be2 100644 --- a/src/Mixin.js +++ b/src/Mixin.js @@ -1,3 +1,4 @@ +var PropTypes = require('prop-types'); var utils = require('./utils.js'); var React = global.React || require('react'); @@ -44,7 +45,7 @@ module.exports = { }; }, contextTypes: { - formsy: React.PropTypes.object // What about required? + formsy: PropTypes.object // What about required? }, getDefaultProps: function () { return { diff --git a/src/main.js b/src/main.js index f7b5e8eb..bde5fc83 100644 --- a/src/main.js +++ b/src/main.js @@ -1,3 +1,4 @@ +var PropTypes = require('prop-types'); var React = global.React || require('react'); var Formsy = {}; var validationRules = require('./validationRules.js'); @@ -46,7 +47,7 @@ Formsy.Form = React.createClass({ }, childContextTypes: { - formsy: React.PropTypes.object + formsy: PropTypes.object }, getChildContext: function () { return {