diff --git a/dist/Wrapper.d.ts b/dist/Wrapper.d.ts index db2b0439..c7e1295d 100644 --- a/dist/Wrapper.d.ts +++ b/dist/Wrapper.d.ts @@ -1,5 +1,6 @@ -import PropTypes from 'prop-types'; import React from 'react'; +import PropTypes from 'prop-types'; +import { Validations, RequiredValidation, Value } from './interfaces'; declare const propTypes: { innerRef: PropTypes.Requireable<(...args: any[]) => any>; name: PropTypes.Validator; @@ -7,5 +8,46 @@ declare const propTypes: { validations: PropTypes.Requireable; value: PropTypes.Requireable; }; +export interface WrapperProps { + innerRef?: (ref: any) => void; + name: string; + required: RequiredValidation; + validationError: any; + validationErrors: any; + validations: Validations | string; + value: any; +} +export interface WrapperState { + [key: string]: unknown; + externalError: null; + formSubmitted: boolean; + isPristine: boolean; + isRequired: boolean; + isValid: boolean; + pristineValue: any; + validationError: any[]; + value: any; +} +export interface PassDownProps { + errorMessage: any; + errorMessages: any; + hasValue: boolean; + isFormDisabled: boolean; + isFormSubmitted: boolean; + isPristine: boolean; + isRequired: boolean; + isValid: boolean; + isValidValue: (value: Value) => boolean; + name: string; + ref?: any; + resetValue: any; + setValidations: any; + setValue: (value: Value) => void; + showError: boolean; + showRequired: boolean; + validationError: any; + validationErrors: any; + value: Value; +} export { propTypes }; export default function (WrappedComponent: React.ComponentClass): React.ComponentClass; diff --git a/dist/formsy-react.cjs.js b/dist/formsy-react.cjs.js index a6d1e762..72b4a268 100644 --- a/dist/formsy-react.cjs.js +++ b/dist/formsy-react.cjs.js @@ -1400,7 +1400,7 @@ var utils = { return !this.arraysDiffer(a, b); } - if (typeof a === 'function') { + if (typeof a === 'function' && typeof b === 'function') { return a.toString() === b.toString(); } @@ -1408,7 +1408,7 @@ var utils = { return a.toString() === b.toString(); } - if (_typeof(a) === 'object' && a !== null && b !== null) { + if (_typeof(a) === 'object' && _typeof(b) === 'object' && a !== null && b !== null) { return !this.objectsDiffer(a, b); } @@ -1416,10 +1416,10 @@ var utils = { }, find: function find(collection, fn) { for (var i = 0, l = collection.length; i < l; i += 1) { - var item = collection[i]; + var _item = collection[i]; - if (fn(item)) { - return item; + if (fn(_item)) { + return _item; } } @@ -1434,16 +1434,19 @@ var utils = { if (Object.keys(validations).length) { Object.keys(validations).forEach(function (validationMethod) { - if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') { + var validationsVal = validations[validationMethod]; + var validationRulesVal = validationRules[validationMethod]; + + if (validationRulesVal && typeof validationsVal === 'function') { throw new Error("Formsy does not allow you to override default validations: ".concat(validationMethod)); } - if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') { + if (!validationRulesVal && typeof validationsVal !== 'function') { throw new Error("Formsy does not have the validation rule: ".concat(validationMethod)); } - if (typeof validations[validationMethod] === 'function') { - var validation = validations[validationMethod](currentValues, value); + if (typeof validationsVal === 'function') { + var validation = validationsVal(currentValues, value); if (typeof validation === 'string') { results.errors.push(validation); @@ -1455,8 +1458,8 @@ var utils = { return; } - if (typeof validations[validationMethod] !== 'function') { - var _validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]); + if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') { + var _validation = validationRulesVal(currentValues, value, validationsVal); if (typeof _validation === 'string') { results.errors.push(_validation); @@ -1558,12 +1561,16 @@ var validations = { }; /* eslint-disable react/default-props-match-prop-types */ - var convertValidationsToObject = function convertValidationsToObject(validations) { if (typeof validations === 'string') { return validations.split(/,(?![^{[]*[}\]])/g).reduce(function (validationsAccumulator, validation) { var args = validation.split(':'); var validateMethod = args.shift(); + + if (typeof validateMethod !== 'string') { + throw new Error('Formsy encountered unexpected problem parsing validation string'); + } + args = args.map(function (arg) { try { return JSON.parse(arg); @@ -1623,8 +1630,12 @@ function Wrapper (WrappedComponent) { }; _this.getErrorMessages = function () { + var _this$state = _this.state, + externalError = _this$state.externalError, + validationError = _this$state.validationError; + if (!_this.isValid() || _this.showRequired()) { - return _this.state.externalError || _this.state.validationError || []; + return externalError || validationError || []; } return []; @@ -1644,6 +1655,7 @@ function Wrapper (WrappedComponent) { _this.setValue = function (value) { var validate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var formsy = _this.context.formsy; if (!validate) { _this.setState({ @@ -1654,7 +1666,7 @@ function Wrapper (WrappedComponent) { value: value, isPristine: false }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); } }; @@ -1688,11 +1700,14 @@ function Wrapper (WrappedComponent) { }; _this.resetValue = function () { + var pristineValue = _this.state.pristineValue; + var formsy = _this.context.formsy; + _this.setState({ - value: _this.state.pristineValue, + value: pristineValue, isPristine: true }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); }; @@ -1705,14 +1720,14 @@ function Wrapper (WrappedComponent) { }; _this.state = { - value: props.value, + externalError: null, + formSubmitted: false, + isPristine: true, isRequired: false, isValid: true, - isPristine: true, pristineValue: props.value, validationError: [], - externalError: null, - formSubmitted: false + value: props.value }; return _this; } @@ -1722,14 +1737,20 @@ function Wrapper (WrappedComponent) { value: function componentWillMount() { var _this2 = this; + var _this$props = this.props, + validations = _this$props.validations, + required = _this$props.required, + name = _this$props.name; + var formsy = this.context.formsy; + var configure = function configure() { - _this2.setValidations(_this2.props.validations, _this2.props.required); // Pass a function instead? + _this2.setValidations(validations, required); // Pass a function instead? - _this2.context.formsy.attachToForm(_this2); + formsy.attachToForm(_this2); }; - if (!this.props.name) { + if (!name) { throw new Error('Form Input requires a name property when used'); } @@ -1746,9 +1767,11 @@ function Wrapper (WrappedComponent) { value: function shouldComponentUpdate(nextProps, nextState) { var _this3 = this; + // eslint-disable-next-line react/destructuring-assignment var isPropsChanged = Object.keys(this.props).some(function (k) { return _this3.props[k] !== nextProps[k]; - }); + }); // eslint-disable-next-line react/destructuring-assignment + var isStateChanged = Object.keys(this.state).some(function (k) { return _this3.state[k] !== nextState[k]; }); @@ -1757,22 +1780,28 @@ function Wrapper (WrappedComponent) { }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { - // If the value passed has changed, set it. If value is not passed it will + var _this$props2 = this.props, + value = _this$props2.value, + validations = _this$props2.validations, + required = _this$props2.required; + var formsy = this.context.formsy; // If the value passed has changed, set it. If value is not passed it will // internally update, and this will never run - if (!utils.isSame(this.props.value, prevProps.value)) { - this.setValue(this.props.value); + + if (!utils.isSame(value, prevProps.value)) { + this.setValue(value); } // If validations or required is changed, run a new validation - if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) { - this.context.formsy.validate(this); + if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) { + formsy.validate(this); } } // Detach it when component unmounts }, { key: "componentWillUnmount", value: function componentWillUnmount() { - this.context.formsy.detachFromForm(this); + var formsy = this.context.formsy; + formsy.detachFromForm(this); } }, { key: "render", @@ -1819,8 +1848,6 @@ function Wrapper (WrappedComponent) { }, _class.propTypes = propTypes$1, _temp; } -/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */ - var Formsy = /*#__PURE__*/ function (_React$Component) { @@ -1834,18 +1861,18 @@ function (_React$Component) { _this = _possibleConstructorReturn(this, _getPrototypeOf(Formsy).call(this, props)); _this.inputs = void 0; _this.emptyArray = void 0; - _this.prevInputNames = void 0; + _this.prevInputNames = null; _this.getChildContext = function () { return { formsy: { attachToForm: _this.attachToForm, detachFromForm: _this.detachFromForm, - validate: _this.validate, isFormDisabled: _this.isFormDisabled, isValidValue: function isValidValue(component, value) { return _this.runValidation(component, value).isValid; - } + }, + validate: _this.validate } }; }; @@ -1863,15 +1890,17 @@ function (_React$Component) { }; _this.componentDidUpdate = function () { - if (_this.props.validationErrors && _typeof(_this.props.validationErrors) === 'object' && Object.keys(_this.props.validationErrors).length > 0) { - _this.setInputValidationErrors(_this.props.validationErrors); + var validationErrors = _this.props.validationErrors; + + if (validationErrors && _typeof(validationErrors) === 'object' && Object.keys(validationErrors).length > 0) { + _this.setInputValidationErrors(validationErrors); } var newInputNames = _this.inputs.map(function (component) { return component.props.name; }); - if (utils.arraysDiffer(_this.prevInputNames, newInputNames)) { + if (_this.prevInputNames && utils.arraysDiffer(_this.prevInputNames, newInputNames)) { _this.validateForm(); } }; @@ -1917,6 +1946,9 @@ function (_React$Component) { }; _this.setInputValidationErrors = function (errors) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; + _this.inputs.forEach(function (component) { var name = component.props.name; var args = [{ @@ -1926,20 +1958,24 @@ function (_React$Component) { component.setState.apply(component, args); }); - if (!_this.props.preventExternalInvalidation && _this.state.isValid) { + if (!preventExternalInvalidation && isValid) { _this.setFormValidState(false); } }; _this.setFormValidState = function (allIsValid) { + var _this$props = _this.props, + onValid = _this$props.onValid, + onInvalid = _this$props.onInvalid; + _this.setState({ isValid: allIsValid }); if (allIsValid) { - _this.props.onValid(); + onValid(); } else { - _this.props.onInvalid(); + onInvalid(); } }; @@ -1948,8 +1984,10 @@ function (_React$Component) { }; _this.mapModel = function (model) { - if (_this.props.mapping) { - return _this.props.mapping(model); + var mapping = _this.props.mapping; + + if (mapping) { + return mapping(model); } return formDataToObject.toObj(Object.keys(model).reduce(function (mappedModel, key) { @@ -1973,12 +2011,13 @@ function (_React$Component) { }; _this.resetInternal = function (event) { + var onReset = _this.props.onReset; event.preventDefault(); _this.reset(); - if (_this.props.onReset) { - _this.props.onReset(); + if (onReset) { + onReset(); } }; @@ -1998,16 +2037,14 @@ function (_React$Component) { _this.runValidation = function (component) { var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : component.state.value; + var validationErrors = _this.props.validationErrors; var currentValues = _this.getCurrentValues(); - var _component$props = component.props, - validationError = _component$props.validationError, - validationErrors = _component$props.validationErrors; var validationResults = utils.runRules(value, currentValues, component.validations, validations); var requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validations); var isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false; - var isValid = !validationResults.failed.length && !(_this.props.validationErrors && _this.props.validationErrors[component.props.name]); + var isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]); return { isRequired: isRequired, isValid: isRequired ? false : isValid, @@ -2020,18 +2057,18 @@ function (_React$Component) { return validationResults.errors; } - if (_this.props.validationErrors && _this.props.validationErrors[component.props.name]) { - return typeof _this.props.validationErrors[component.props.name] === 'string' ? [_this.props.validationErrors[component.props.name]] : _this.props.validationErrors[component.props.name]; + if (validationErrors && validationErrors[component.props.name]) { + return typeof validationErrors[component.props.name] === 'string' ? [validationErrors[component.props.name]] : validationErrors[component.props.name]; } if (isRequired) { - var error = validationErrors[requiredResults.success[0]] || validationError; + var error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError; return error ? [error] : null; } if (validationResults.failed.length) { return validationResults.failed.map(function (failed) { - return validationErrors[failed] ? validationErrors[failed] : validationError; + return component.props.validationErrors[failed] ? component.props.validationErrors[failed] : component.props.validationError; }).filter(function (x, pos, arr) { return arr.indexOf(x) === pos; }); // remove duplicates @@ -2065,6 +2102,12 @@ function (_React$Component) { }; _this.submit = function (event) { + var _this$props2 = _this.props, + onSubmit = _this$props2.onSubmit, + onValidSubmit = _this$props2.onValidSubmit, + onInvalidSubmit = _this$props2.onInvalidSubmit; + var isValid = _this.state.isValid; + if (event && event.preventDefault) { event.preventDefault(); } // Trigger form as not pristine. @@ -2076,16 +2119,18 @@ function (_React$Component) { var model = _this.getModel(); - _this.props.onSubmit(model, _this.resetModel, _this.updateInputsWithError); + onSubmit(model, _this.resetModel, _this.updateInputsWithError); - if (_this.state.isValid) { - _this.props.onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); + if (isValid) { + onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); } else { - _this.props.onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); + onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); } }; _this.updateInputsWithError = function (errors, invalidate) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; Object.keys(errors).forEach(function (name) { var component = utils.find(_this.inputs, function (input) { return input.props.name === name; @@ -2096,21 +2141,23 @@ function (_React$Component) { } var args = [{ - isValid: _this.props.preventExternalInvalidation, + isValid: preventExternalInvalidation, externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name] }]; component.setState.apply(component, args); }); - if (invalidate && _this.state.isValid) { + if (invalidate && isValid) { _this.setFormValidState(false); } }; _this.validate = function (component) { - // Trigger onChange - if (_this.state.canChange) { - _this.props.onChange(_this.getModel(), _this.isChanged()); + var onChange = _this.props.onChange; + var canChange = _this.state.canChange; // Trigger onChange + + if (canChange) { + onChange(_this.getModel(), _this.isChanged()); } var validation = _this.runValidation(component); // Run through the validations, split them up and call @@ -2118,10 +2165,10 @@ function (_React$Component) { component.setState({ - isValid: validation.isValid, + externalError: null, isRequired: validation.isRequired, - validationError: validation.error, - externalError: null + isValid: validation.isValid, + validationError: validation.error }, _this.validateForm); }; @@ -2168,46 +2215,47 @@ function (_React$Component) { }; _this.render = function () { - var _this$props = _this.props, - getErrorMessage = _this$props.getErrorMessage, - getErrorMessages = _this$props.getErrorMessages, - getValue = _this$props.getValue, - hasValue = _this$props.hasValue, - isFormDisabled = _this$props.isFormDisabled, - isFormSubmitted = _this$props.isFormSubmitted, - isPristine = _this$props.isPristine, - isRequired = _this$props.isRequired, - isValid = _this$props.isValid, - isValidValue = _this$props.isValidValue, - mapping = _this$props.mapping, - onChange = _this$props.onChange, - onInvalidSubmit = _this$props.onInvalidSubmit, - onInvalid = _this$props.onInvalid, - onReset = _this$props.onReset, - onSubmit = _this$props.onSubmit, - onValid = _this$props.onValid, - onValidSubmit = _this$props.onValidSubmit, - preventExternalInvalidation = _this$props.preventExternalInvalidation, - resetValue = _this$props.resetValue, - setValidations = _this$props.setValidations, - setValue = _this$props.setValue, - showError = _this$props.showError, - showRequired = _this$props.showRequired, - validationErrors = _this$props.validationErrors, - nonFormsyProps = _objectWithoutProperties(_this$props, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalidSubmit", "onInvalid", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); + var _this$props3 = _this.props, + getErrorMessage = _this$props3.getErrorMessage, + getErrorMessages = _this$props3.getErrorMessages, + getValue = _this$props3.getValue, + hasValue = _this$props3.hasValue, + isFormDisabled = _this$props3.isFormDisabled, + isFormSubmitted = _this$props3.isFormSubmitted, + isPristine = _this$props3.isPristine, + isRequired = _this$props3.isRequired, + isValid = _this$props3.isValid, + isValidValue = _this$props3.isValidValue, + mapping = _this$props3.mapping, + onChange = _this$props3.onChange, + onInvalid = _this$props3.onInvalid, + onInvalidSubmit = _this$props3.onInvalidSubmit, + onReset = _this$props3.onReset, + onSubmit = _this$props3.onSubmit, + onValid = _this$props3.onValid, + onValidSubmit = _this$props3.onValidSubmit, + preventExternalInvalidation = _this$props3.preventExternalInvalidation, + resetValue = _this$props3.resetValue, + setValidations = _this$props3.setValidations, + setValue = _this$props3.setValue, + showError = _this$props3.showError, + showRequired = _this$props3.showRequired, + validationErrors = _this$props3.validationErrors, + nonFormsyProps = _objectWithoutProperties(_this$props3, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalid", "onInvalidSubmit", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); return React.createElement('form', _objectSpread({ onReset: _this.resetInternal, onSubmit: _this.submit }, nonFormsyProps, { disabled: false - }), _this.props.children); + }), // eslint-disable-next-line react/destructuring-assignment + _this.props.children); }; _this.state = { - isValid: true, + canChange: false, isSubmitting: false, - canChange: false + isValid: true }; _this.inputs = []; _this.emptyArray = []; @@ -2219,7 +2267,6 @@ function (_React$Component) { Formsy.displayName = 'Formsy'; Formsy.defaultProps = { - children: null, disabled: false, getErrorMessage: function getErrorMessage() {}, getErrorMessages: function getErrorMessages() {}, @@ -2249,7 +2296,6 @@ Formsy.defaultProps = { validationErrors: null }; Formsy.propTypes = { - children: propTypes.node, disabled: propTypes.bool, getErrorMessage: propTypes.func, getErrorMessages: propTypes.func, diff --git a/dist/formsy-react.cjs.js.map b/dist/formsy-react.cjs.js.map index 7559ea77..13b2bda8 100644 --- a/dist/formsy-react.cjs.js.map +++ b/dist/formsy-react.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"formsy-react.cjs.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","export default {\n arraysDiffer(a, b) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a, b) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n if (typeof a === 'function') {\n return a.toString() === b.toString();\n }\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n if (typeof a === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection, fn) {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value, currentValues, validations, validationRules) {\n const results = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\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 const 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 if (typeof validations[validationMethod] !== 'function') {\n const validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { IValidationFunction, IValue, IValues } from './interfaces';\n\nconst isExisty = (value: IValue) => value !== null && value !== undefined;\nconst isEmpty = (value: IValue) => value === '';\n\nconst validations: { [key: string]: IValidationFunction } = {\n isDefaultRequiredValue(_values: IValues, value: IValue) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: IValues, value: IValue) {\n return isExisty(value);\n },\n matchRegexp(_values: IValues, value: IValue, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: IValues, value: IValue) {\n return value === undefined;\n },\n isEmptyString(_values: IValues, value: IValue) {\n return isEmpty(value);\n },\n isEmail(values: IValues, value: IValue) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: IValues, value: IValue) {\n return value === true;\n },\n isFalse(_values: IValues, value: IValue) {\n return value === false;\n },\n isNumeric(values: IValues, value: IValue) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: IValues, value: IValue, eql: IValue) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: IValues, value: IValue, field: string) {\n return value === values[field];\n },\n maxLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport utils from './utils';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\ninterface IProps {\n innerRef?: (ref: any) => void;\n name: string;\n required?: string | object | boolean;\n validations?: string | object;\n value?: any;\n}\n\ninterface IState {\n externalError: null | any;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component) {\n return component.displayName || component.name || (typeof component === 'string' ? component : 'Component');\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n private validations: any;\n\n private requiredValidations: any;\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n isRequired: false,\n isValid: true,\n isPristine: true,\n pristineValue: props.value,\n validationError: [],\n externalError: null,\n formSubmitted: false,\n };\n }\n\n componentWillMount() {\n const configure = () => {\n this.setValidations(this.props.validations, this.props.required);\n\n // Pass a function instead?\n this.context.formsy.attachToForm(this);\n };\n\n if (!this.props.name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n componentDidUpdate(prevProps) {\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 (\n !utils.isSame(this.props.validations, prevProps.validations) ||\n !utils.isSame(this.props.required, prevProps.required)\n ) {\n this.context.formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n componentWillUnmount() {\n this.context.formsy.detachFromForm(this);\n }\n\n getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n getErrorMessages = () => {\n if (!this.isValid() || this.showRequired()) {\n return this.state.externalError || this.state.validationError || [];\n }\n return [];\n };\n\n getValue = () => this.state.value;\n\n setValidations = (validations, required) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n setValue = (value, validate = true) => {\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n }\n };\n\n hasValue = () => this.state.value !== '';\n\n isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n isFormSubmitted = () => this.state.formSubmitted;\n\n isPristine = () => this.state.isPristine;\n\n isRequired = () => !!this.props.required;\n\n isValid = () => this.state.isValid;\n\n isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n resetValue = () => {\n this.setState(\n {\n value: this.state.pristineValue,\n isPristine: true,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n };\n\n showError = () => !this.showRequired() && !this.isValid();\n\n showRequired = () => this.state.isRequired;\n\n render() {\n const { innerRef } = this.props;\n const propsForElement: any = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement);\n }\n\n public static displayName: any = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes: any = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\n\nclass Formsy extends React.Component {\n private inputs: any;\n\n private emptyArray: any[];\n\n private prevInputNames: any;\n\n constructor(props) {\n super(props);\n this.state = {\n isValid: true,\n isSubmitting: false,\n canChange: false,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n validate: this.validate,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n },\n });\n\n componentDidMount = () => {\n this.validateForm();\n };\n\n componentWillUpdate = () => {\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 = () => {\n if (\n this.props.validationErrors &&\n typeof this.props.validationErrors === 'object' &&\n Object.keys(this.props.validationErrors).length > 0\n ) {\n this.setInputValidationErrors(this.props.validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n setFormPristine = 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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n setInputValidationErrors = errors => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!this.props.preventExternalInvalidation && this.state.isValid) {\n this.setFormValidState(false);\n }\n };\n\n setFormValidState = allIsValid => {\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n this.props.onValid();\n } else {\n this.props.onInvalid();\n }\n };\n\n isFormDisabled = () => this.props.disabled;\n\n mapModel = model => {\n if (this.props.mapping) {\n return this.props.mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift();\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n reset = (data?: any) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n resetInternal = event => {\n event.preventDefault();\n this.reset();\n if (this.props.onReset) {\n this.props.onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n resetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n runValidation = (component, value = component.state.value) => {\n const currentValues = this.getCurrentValues();\n const { validationError, validationErrors } = component.props;\n\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid =\n !validationResults.failed.length &&\n !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.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'\n ? [this.props.validationErrors[component.props.name]]\n : this.props.validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = validationErrors[requiredResults.success[0]] || validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed => (validationErrors[failed] ? validationErrors[failed] : validationError))\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n attachToForm = component => {\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 = component => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n submit = event => {\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (this.state.isValid) {\n this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 = (errors, invalidate) => {\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: this.props.preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && this.state.isValid) {\n this.setFormValidState(false);\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 = component => {\n // Trigger onChange\n if (this.state.canChange) {\n this.props.onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: null,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n render = () => {\n const {\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n // onError,\n onInvalidSubmit,\n onInvalid,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n // reset,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n this.props.children,\n );\n };\n\n public static displayName = 'Formsy';\n\n public static defaultProps = {\n children: null,\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n}\n\nconst addValidationRule = (name, func) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","isValid","showRequired","state","externalError","validationError","getValue","setValidations","setValue","validate","setState","isPristine","context","formsy","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","preventDefault","onReset","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","updateInputsWithError","onValidSubmit","onInvalidSubmit","invalidate","input","stringify","canChange","onChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","node","childContextTypes","addValidationRule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"formsy-react.cjs.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","import { Validations, Value, Values } from './interfaces';\n\nexport default {\n arraysDiffer(a: unknown[], b: unknown[]) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a: object, b: object) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a: unknown, b: unknown) {\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n\n if (typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n\n if (typeof a === 'object' && typeof b === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection: T[], fn: (item: T) => boolean): T {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value: Value, currentValues: Values, validations: Validations, validationRules: Validations) {\n const results: {\n errors: string[];\n failed: string[];\n success: string[];\n } = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\n const validationsVal = validations[validationMethod];\n const validationRulesVal = validationRules[validationMethod];\n\n if (validationRulesVal && typeof validationsVal === 'function') {\n throw new Error(`Formsy does not allow you to override default validations: ${validationMethod}`);\n }\n\n if (!validationRulesVal && typeof validationsVal !== 'function') {\n throw new Error(`Formsy does not have the validation rule: ${validationMethod}`);\n }\n\n if (typeof validationsVal === 'function') {\n const validation = validationsVal(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 if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') {\n const validation = validationRulesVal(currentValues, value, validationsVal);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { ValidationFunction, Value, Values } from './interfaces';\n\nconst isExisty = (value: Value) => value !== null && value !== undefined;\nconst isEmpty = (value: Value) => value === '';\n\nconst validations: { [key: string]: ValidationFunction } = {\n isDefaultRequiredValue(_values: Values, value: Value) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: Values, value: Value) {\n return isExisty(value);\n },\n matchRegexp(_values: Values, value: Value, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: Values, value: Value) {\n return value === undefined;\n },\n isEmptyString(_values: Values, value: Value) {\n return isEmpty(value);\n },\n isEmail(values: Values, value: Value) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: Values, value: Value) {\n return value === true;\n },\n isFalse(_values: Values, value: Value) {\n return value === false;\n },\n isNumeric(values: Values, value: Value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: Values, value: Value, eql: Value) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: Values, value: Value, field: string) {\n return value === values[field];\n },\n maxLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport utils from './utils';\nimport { Validations, WrappedComponentClass, RequiredValidation, Value } from './interfaces';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = (validations: string | Validations): Validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n if (typeof validateMethod !== 'string') {\n throw new Error('Formsy encountered unexpected problem parsing validation string');\n }\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy: Validations = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\nexport interface WrapperProps {\n innerRef?: (ref: any) => void;\n name: string;\n required: RequiredValidation;\n validationError: any;\n validationErrors: any;\n validations: Validations | string;\n value: any;\n}\n\nexport interface WrapperState {\n [key: string]: unknown;\n externalError: null;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport interface PassDownProps {\n errorMessage: any;\n errorMessages: any;\n hasValue: boolean;\n isFormDisabled: boolean;\n isFormSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n isValidValue: (value: Value) => boolean;\n name: string;\n ref?: any;\n resetValue: any;\n setValidations: any;\n setValue: (value: Value) => void;\n showError: boolean;\n showRequired: boolean;\n validationError: any;\n validationErrors: any;\n value: Value;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component: WrappedComponentClass) {\n return (\n (component as { displayName?: string }).displayName ||\n component.name ||\n (typeof component === 'string' ? component : 'Component')\n );\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n public validations?: Validations;\n\n public requiredValidations?: Validations;\n\n public static displayName = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n\n public constructor(props) {\n super(props);\n this.state = {\n externalError: null,\n formSubmitted: false,\n isPristine: true,\n isRequired: false,\n isValid: true,\n pristineValue: props.value,\n validationError: [],\n value: props.value,\n };\n }\n\n public componentWillMount() {\n const { validations, required, name } = this.props;\n const { formsy } = this.context;\n\n const configure = () => {\n this.setValidations(validations, required);\n\n // Pass a function instead?\n formsy.attachToForm(this);\n };\n\n if (!name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n public componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n public shouldComponentUpdate(nextProps, nextState) {\n // eslint-disable-next-line react/destructuring-assignment\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n\n // eslint-disable-next-line react/destructuring-assignment\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n public componentDidUpdate(prevProps) {\n const { value, validations, required } = this.props;\n const { formsy } = this.context;\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(value, prevProps.value)) {\n this.setValue(value);\n }\n\n // If validations or required is changed, run a new validation\n if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) {\n formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n public componentWillUnmount() {\n const { formsy } = this.context;\n formsy.detachFromForm(this);\n }\n\n public getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n public getErrorMessages = () => {\n const { externalError, validationError } = this.state;\n\n if (!this.isValid() || this.showRequired()) {\n return externalError || validationError || [];\n }\n return [];\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public getValue = () => this.state.value;\n\n public setValidations = (validations: string | Validations, required: RequiredValidation) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n public setValue = (value, validate = true) => {\n const { formsy } = this.context;\n\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n formsy.validate(this);\n },\n );\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public hasValue = () => this.state.value !== '';\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormSubmitted = () => this.state.formSubmitted;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isPristine = () => this.state.isPristine;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isRequired = () => !!this.props.required;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValid = () => this.state.isValid;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n public resetValue = () => {\n const { pristineValue } = this.state;\n const { formsy } = this.context;\n\n this.setState(\n {\n value: pristineValue,\n isPristine: true,\n },\n () => {\n formsy.validate(this);\n },\n );\n };\n\n public showError = () => !this.showRequired() && !this.isValid();\n\n // eslint-disable-next-line react/destructuring-assignment\n public showRequired = () => this.state.isRequired;\n\n public render() {\n const { innerRef } = this.props;\n const propsForElement: PassDownProps = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement as any);\n }\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\nimport { IData, IModel, InputComponent, IResetModel, IUpdateInputsWithError, ValidationFunction } from './interfaces';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\nexport interface FormsyProps {\n disabled: boolean;\n getErrorMessage: any;\n getErrorMessages: any;\n getValue: any;\n hasValue: any;\n isFormDisabled: any;\n isFormSubmitted: any;\n isPristine: any;\n isRequired: any;\n isValid: any;\n isValidValue: any;\n mapping: null | ((model: IModel) => IModel);\n onChange: (model: IModel, isChanged: boolean) => void;\n onError: any;\n onInvalid: () => void;\n onInvalidSubmit: any;\n onReset?: () => void;\n onSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n onValid: () => void;\n onValidSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n preventExternalInvalidation?: boolean;\n resetValue: any;\n setValidations: any;\n setValue: any;\n showError: any;\n showRequired: any;\n validationErrors?: null | object;\n}\n\nexport interface FormsyState {\n canChange: boolean;\n formSubmitted?: boolean;\n isPristine?: boolean;\n isSubmitting: boolean;\n isValid: boolean;\n}\n\nclass Formsy extends React.Component {\n public inputs: any[];\n\n public emptyArray: any[];\n\n public prevInputNames: any[] | null = null;\n\n public static displayName = 'Formsy';\n\n public static defaultProps: Partial = {\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n\n public constructor(props: FormsyProps) {\n super(props);\n this.state = {\n canChange: false,\n isSubmitting: false,\n isValid: true,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n public getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n validate: this.validate,\n },\n });\n\n public componentDidMount = () => {\n this.validateForm();\n };\n\n public componentWillUpdate = () => {\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 public componentDidUpdate = () => {\n const { validationErrors } = this.props;\n\n if (validationErrors && typeof validationErrors === 'object' && Object.keys(validationErrors).length > 0) {\n this.setInputValidationErrors(validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (this.prevInputNames && utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n public getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n public getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n public getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n public setFormPristine = (isPristine: boolean) => {\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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n public setInputValidationErrors = errors => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!preventExternalInvalidation && isValid) {\n this.setFormValidState(false);\n }\n };\n\n public setFormValidState = (allIsValid: boolean) => {\n const { onValid, onInvalid } = this.props;\n\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n onValid();\n } else {\n onInvalid();\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.props.disabled;\n\n public mapModel = (model: IModel) => {\n const { mapping } = this.props;\n\n if (mapping) {\n return mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base: IModel = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift() as string;\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n public reset = (data?: IData) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n public resetInternal = event => {\n const { onReset } = this.props;\n\n event.preventDefault();\n this.reset();\n if (onReset) {\n onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n public resetModel: IResetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n public runValidation = (component: InputComponent, value = component.state.value) => {\n const { validationErrors } = this.props;\n const currentValues = this.getCurrentValues();\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.emptyArray;\n }\n\n if (validationResults.errors.length) {\n return validationResults.errors;\n }\n\n if (validationErrors && validationErrors[component.props.name]) {\n return typeof validationErrors[component.props.name] === 'string'\n ? [validationErrors[component.props.name]]\n : validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed =>\n component.props.validationErrors[failed]\n ? component.props.validationErrors[failed]\n : component.props.validationError,\n )\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n public attachToForm = component => {\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 public detachFromForm = (component: InputComponent) => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n public isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n public submit = event => {\n const { onSubmit, onValidSubmit, onInvalidSubmit } = this.props;\n const { isValid } = this.state;\n\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (isValid) {\n onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 public updateInputsWithError: IUpdateInputsWithError = (errors, invalidate) => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && isValid) {\n this.setFormValidState(false);\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 public validate = (component: InputComponent) => {\n const { onChange } = this.props;\n const { canChange } = this.state;\n\n // Trigger onChange\n if (canChange) {\n onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n externalError: null,\n isRequired: validation.isRequired,\n isValid: validation.isValid,\n validationError: validation.error,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n public validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n public render = () => {\n const {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n onInvalid,\n onInvalidSubmit,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n // eslint-disable-next-line react/destructuring-assignment\n this.props.children,\n );\n };\n}\n\nconst addValidationRule = (name: string, func: ValidationFunction) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","validationsVal","validationRulesVal","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","state","externalError","validationError","isValid","showRequired","getValue","setValidations","setValue","validate","formsy","context","setState","isPristine","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","onReset","preventDefault","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","onValidSubmit","onInvalidSubmit","updateInputsWithError","invalidate","input","stringify","onChange","canChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","childContextTypes","addValidationRule"],"mappings":"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"} \ No newline at end of file diff --git a/dist/formsy-react.esm.js b/dist/formsy-react.esm.js index c532f0c3..03fe90c1 100644 --- a/dist/formsy-react.esm.js +++ b/dist/formsy-react.esm.js @@ -1394,7 +1394,7 @@ var utils = { return !this.arraysDiffer(a, b); } - if (typeof a === 'function') { + if (typeof a === 'function' && typeof b === 'function') { return a.toString() === b.toString(); } @@ -1402,7 +1402,7 @@ var utils = { return a.toString() === b.toString(); } - if (_typeof(a) === 'object' && a !== null && b !== null) { + if (_typeof(a) === 'object' && _typeof(b) === 'object' && a !== null && b !== null) { return !this.objectsDiffer(a, b); } @@ -1410,10 +1410,10 @@ var utils = { }, find: function find(collection, fn) { for (var i = 0, l = collection.length; i < l; i += 1) { - var item = collection[i]; + var _item = collection[i]; - if (fn(item)) { - return item; + if (fn(_item)) { + return _item; } } @@ -1428,16 +1428,19 @@ var utils = { if (Object.keys(validations).length) { Object.keys(validations).forEach(function (validationMethod) { - if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') { + var validationsVal = validations[validationMethod]; + var validationRulesVal = validationRules[validationMethod]; + + if (validationRulesVal && typeof validationsVal === 'function') { throw new Error("Formsy does not allow you to override default validations: ".concat(validationMethod)); } - if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') { + if (!validationRulesVal && typeof validationsVal !== 'function') { throw new Error("Formsy does not have the validation rule: ".concat(validationMethod)); } - if (typeof validations[validationMethod] === 'function') { - var validation = validations[validationMethod](currentValues, value); + if (typeof validationsVal === 'function') { + var validation = validationsVal(currentValues, value); if (typeof validation === 'string') { results.errors.push(validation); @@ -1449,8 +1452,8 @@ var utils = { return; } - if (typeof validations[validationMethod] !== 'function') { - var _validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]); + if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') { + var _validation = validationRulesVal(currentValues, value, validationsVal); if (typeof _validation === 'string') { results.errors.push(_validation); @@ -1552,12 +1555,16 @@ var validations = { }; /* eslint-disable react/default-props-match-prop-types */ - var convertValidationsToObject = function convertValidationsToObject(validations) { if (typeof validations === 'string') { return validations.split(/,(?![^{[]*[}\]])/g).reduce(function (validationsAccumulator, validation) { var args = validation.split(':'); var validateMethod = args.shift(); + + if (typeof validateMethod !== 'string') { + throw new Error('Formsy encountered unexpected problem parsing validation string'); + } + args = args.map(function (arg) { try { return JSON.parse(arg); @@ -1617,8 +1624,12 @@ function Wrapper (WrappedComponent) { }; _this.getErrorMessages = function () { + var _this$state = _this.state, + externalError = _this$state.externalError, + validationError = _this$state.validationError; + if (!_this.isValid() || _this.showRequired()) { - return _this.state.externalError || _this.state.validationError || []; + return externalError || validationError || []; } return []; @@ -1638,6 +1649,7 @@ function Wrapper (WrappedComponent) { _this.setValue = function (value) { var validate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var formsy = _this.context.formsy; if (!validate) { _this.setState({ @@ -1648,7 +1660,7 @@ function Wrapper (WrappedComponent) { value: value, isPristine: false }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); } }; @@ -1682,11 +1694,14 @@ function Wrapper (WrappedComponent) { }; _this.resetValue = function () { + var pristineValue = _this.state.pristineValue; + var formsy = _this.context.formsy; + _this.setState({ - value: _this.state.pristineValue, + value: pristineValue, isPristine: true }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); }; @@ -1699,14 +1714,14 @@ function Wrapper (WrappedComponent) { }; _this.state = { - value: props.value, + externalError: null, + formSubmitted: false, + isPristine: true, isRequired: false, isValid: true, - isPristine: true, pristineValue: props.value, validationError: [], - externalError: null, - formSubmitted: false + value: props.value }; return _this; } @@ -1716,14 +1731,20 @@ function Wrapper (WrappedComponent) { value: function componentWillMount() { var _this2 = this; + var _this$props = this.props, + validations = _this$props.validations, + required = _this$props.required, + name = _this$props.name; + var formsy = this.context.formsy; + var configure = function configure() { - _this2.setValidations(_this2.props.validations, _this2.props.required); // Pass a function instead? + _this2.setValidations(validations, required); // Pass a function instead? - _this2.context.formsy.attachToForm(_this2); + formsy.attachToForm(_this2); }; - if (!this.props.name) { + if (!name) { throw new Error('Form Input requires a name property when used'); } @@ -1740,9 +1761,11 @@ function Wrapper (WrappedComponent) { value: function shouldComponentUpdate(nextProps, nextState) { var _this3 = this; + // eslint-disable-next-line react/destructuring-assignment var isPropsChanged = Object.keys(this.props).some(function (k) { return _this3.props[k] !== nextProps[k]; - }); + }); // eslint-disable-next-line react/destructuring-assignment + var isStateChanged = Object.keys(this.state).some(function (k) { return _this3.state[k] !== nextState[k]; }); @@ -1751,22 +1774,28 @@ function Wrapper (WrappedComponent) { }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { - // If the value passed has changed, set it. If value is not passed it will + var _this$props2 = this.props, + value = _this$props2.value, + validations = _this$props2.validations, + required = _this$props2.required; + var formsy = this.context.formsy; // If the value passed has changed, set it. If value is not passed it will // internally update, and this will never run - if (!utils.isSame(this.props.value, prevProps.value)) { - this.setValue(this.props.value); + + if (!utils.isSame(value, prevProps.value)) { + this.setValue(value); } // If validations or required is changed, run a new validation - if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) { - this.context.formsy.validate(this); + if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) { + formsy.validate(this); } } // Detach it when component unmounts }, { key: "componentWillUnmount", value: function componentWillUnmount() { - this.context.formsy.detachFromForm(this); + var formsy = this.context.formsy; + formsy.detachFromForm(this); } }, { key: "render", @@ -1813,8 +1842,6 @@ function Wrapper (WrappedComponent) { }, _class.propTypes = propTypes$1, _temp; } -/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */ - var Formsy = /*#__PURE__*/ function (_React$Component) { @@ -1828,18 +1855,18 @@ function (_React$Component) { _this = _possibleConstructorReturn(this, _getPrototypeOf(Formsy).call(this, props)); _this.inputs = void 0; _this.emptyArray = void 0; - _this.prevInputNames = void 0; + _this.prevInputNames = null; _this.getChildContext = function () { return { formsy: { attachToForm: _this.attachToForm, detachFromForm: _this.detachFromForm, - validate: _this.validate, isFormDisabled: _this.isFormDisabled, isValidValue: function isValidValue(component, value) { return _this.runValidation(component, value).isValid; - } + }, + validate: _this.validate } }; }; @@ -1857,15 +1884,17 @@ function (_React$Component) { }; _this.componentDidUpdate = function () { - if (_this.props.validationErrors && _typeof(_this.props.validationErrors) === 'object' && Object.keys(_this.props.validationErrors).length > 0) { - _this.setInputValidationErrors(_this.props.validationErrors); + var validationErrors = _this.props.validationErrors; + + if (validationErrors && _typeof(validationErrors) === 'object' && Object.keys(validationErrors).length > 0) { + _this.setInputValidationErrors(validationErrors); } var newInputNames = _this.inputs.map(function (component) { return component.props.name; }); - if (utils.arraysDiffer(_this.prevInputNames, newInputNames)) { + if (_this.prevInputNames && utils.arraysDiffer(_this.prevInputNames, newInputNames)) { _this.validateForm(); } }; @@ -1911,6 +1940,9 @@ function (_React$Component) { }; _this.setInputValidationErrors = function (errors) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; + _this.inputs.forEach(function (component) { var name = component.props.name; var args = [{ @@ -1920,20 +1952,24 @@ function (_React$Component) { component.setState.apply(component, args); }); - if (!_this.props.preventExternalInvalidation && _this.state.isValid) { + if (!preventExternalInvalidation && isValid) { _this.setFormValidState(false); } }; _this.setFormValidState = function (allIsValid) { + var _this$props = _this.props, + onValid = _this$props.onValid, + onInvalid = _this$props.onInvalid; + _this.setState({ isValid: allIsValid }); if (allIsValid) { - _this.props.onValid(); + onValid(); } else { - _this.props.onInvalid(); + onInvalid(); } }; @@ -1942,8 +1978,10 @@ function (_React$Component) { }; _this.mapModel = function (model) { - if (_this.props.mapping) { - return _this.props.mapping(model); + var mapping = _this.props.mapping; + + if (mapping) { + return mapping(model); } return formDataToObject.toObj(Object.keys(model).reduce(function (mappedModel, key) { @@ -1967,12 +2005,13 @@ function (_React$Component) { }; _this.resetInternal = function (event) { + var onReset = _this.props.onReset; event.preventDefault(); _this.reset(); - if (_this.props.onReset) { - _this.props.onReset(); + if (onReset) { + onReset(); } }; @@ -1992,16 +2031,14 @@ function (_React$Component) { _this.runValidation = function (component) { var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : component.state.value; + var validationErrors = _this.props.validationErrors; var currentValues = _this.getCurrentValues(); - var _component$props = component.props, - validationError = _component$props.validationError, - validationErrors = _component$props.validationErrors; var validationResults = utils.runRules(value, currentValues, component.validations, validations); var requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validations); var isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false; - var isValid = !validationResults.failed.length && !(_this.props.validationErrors && _this.props.validationErrors[component.props.name]); + var isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]); return { isRequired: isRequired, isValid: isRequired ? false : isValid, @@ -2014,18 +2051,18 @@ function (_React$Component) { return validationResults.errors; } - if (_this.props.validationErrors && _this.props.validationErrors[component.props.name]) { - return typeof _this.props.validationErrors[component.props.name] === 'string' ? [_this.props.validationErrors[component.props.name]] : _this.props.validationErrors[component.props.name]; + if (validationErrors && validationErrors[component.props.name]) { + return typeof validationErrors[component.props.name] === 'string' ? [validationErrors[component.props.name]] : validationErrors[component.props.name]; } if (isRequired) { - var error = validationErrors[requiredResults.success[0]] || validationError; + var error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError; return error ? [error] : null; } if (validationResults.failed.length) { return validationResults.failed.map(function (failed) { - return validationErrors[failed] ? validationErrors[failed] : validationError; + return component.props.validationErrors[failed] ? component.props.validationErrors[failed] : component.props.validationError; }).filter(function (x, pos, arr) { return arr.indexOf(x) === pos; }); // remove duplicates @@ -2059,6 +2096,12 @@ function (_React$Component) { }; _this.submit = function (event) { + var _this$props2 = _this.props, + onSubmit = _this$props2.onSubmit, + onValidSubmit = _this$props2.onValidSubmit, + onInvalidSubmit = _this$props2.onInvalidSubmit; + var isValid = _this.state.isValid; + if (event && event.preventDefault) { event.preventDefault(); } // Trigger form as not pristine. @@ -2070,16 +2113,18 @@ function (_React$Component) { var model = _this.getModel(); - _this.props.onSubmit(model, _this.resetModel, _this.updateInputsWithError); + onSubmit(model, _this.resetModel, _this.updateInputsWithError); - if (_this.state.isValid) { - _this.props.onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); + if (isValid) { + onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); } else { - _this.props.onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); + onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); } }; _this.updateInputsWithError = function (errors, invalidate) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; Object.keys(errors).forEach(function (name) { var component = utils.find(_this.inputs, function (input) { return input.props.name === name; @@ -2090,21 +2135,23 @@ function (_React$Component) { } var args = [{ - isValid: _this.props.preventExternalInvalidation, + isValid: preventExternalInvalidation, externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name] }]; component.setState.apply(component, args); }); - if (invalidate && _this.state.isValid) { + if (invalidate && isValid) { _this.setFormValidState(false); } }; _this.validate = function (component) { - // Trigger onChange - if (_this.state.canChange) { - _this.props.onChange(_this.getModel(), _this.isChanged()); + var onChange = _this.props.onChange; + var canChange = _this.state.canChange; // Trigger onChange + + if (canChange) { + onChange(_this.getModel(), _this.isChanged()); } var validation = _this.runValidation(component); // Run through the validations, split them up and call @@ -2112,10 +2159,10 @@ function (_React$Component) { component.setState({ - isValid: validation.isValid, + externalError: null, isRequired: validation.isRequired, - validationError: validation.error, - externalError: null + isValid: validation.isValid, + validationError: validation.error }, _this.validateForm); }; @@ -2162,46 +2209,47 @@ function (_React$Component) { }; _this.render = function () { - var _this$props = _this.props, - getErrorMessage = _this$props.getErrorMessage, - getErrorMessages = _this$props.getErrorMessages, - getValue = _this$props.getValue, - hasValue = _this$props.hasValue, - isFormDisabled = _this$props.isFormDisabled, - isFormSubmitted = _this$props.isFormSubmitted, - isPristine = _this$props.isPristine, - isRequired = _this$props.isRequired, - isValid = _this$props.isValid, - isValidValue = _this$props.isValidValue, - mapping = _this$props.mapping, - onChange = _this$props.onChange, - onInvalidSubmit = _this$props.onInvalidSubmit, - onInvalid = _this$props.onInvalid, - onReset = _this$props.onReset, - onSubmit = _this$props.onSubmit, - onValid = _this$props.onValid, - onValidSubmit = _this$props.onValidSubmit, - preventExternalInvalidation = _this$props.preventExternalInvalidation, - resetValue = _this$props.resetValue, - setValidations = _this$props.setValidations, - setValue = _this$props.setValue, - showError = _this$props.showError, - showRequired = _this$props.showRequired, - validationErrors = _this$props.validationErrors, - nonFormsyProps = _objectWithoutProperties(_this$props, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalidSubmit", "onInvalid", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); + var _this$props3 = _this.props, + getErrorMessage = _this$props3.getErrorMessage, + getErrorMessages = _this$props3.getErrorMessages, + getValue = _this$props3.getValue, + hasValue = _this$props3.hasValue, + isFormDisabled = _this$props3.isFormDisabled, + isFormSubmitted = _this$props3.isFormSubmitted, + isPristine = _this$props3.isPristine, + isRequired = _this$props3.isRequired, + isValid = _this$props3.isValid, + isValidValue = _this$props3.isValidValue, + mapping = _this$props3.mapping, + onChange = _this$props3.onChange, + onInvalid = _this$props3.onInvalid, + onInvalidSubmit = _this$props3.onInvalidSubmit, + onReset = _this$props3.onReset, + onSubmit = _this$props3.onSubmit, + onValid = _this$props3.onValid, + onValidSubmit = _this$props3.onValidSubmit, + preventExternalInvalidation = _this$props3.preventExternalInvalidation, + resetValue = _this$props3.resetValue, + setValidations = _this$props3.setValidations, + setValue = _this$props3.setValue, + showError = _this$props3.showError, + showRequired = _this$props3.showRequired, + validationErrors = _this$props3.validationErrors, + nonFormsyProps = _objectWithoutProperties(_this$props3, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalid", "onInvalidSubmit", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); return React.createElement('form', _objectSpread({ onReset: _this.resetInternal, onSubmit: _this.submit }, nonFormsyProps, { disabled: false - }), _this.props.children); + }), // eslint-disable-next-line react/destructuring-assignment + _this.props.children); }; _this.state = { - isValid: true, + canChange: false, isSubmitting: false, - canChange: false + isValid: true }; _this.inputs = []; _this.emptyArray = []; @@ -2213,7 +2261,6 @@ function (_React$Component) { Formsy.displayName = 'Formsy'; Formsy.defaultProps = { - children: null, disabled: false, getErrorMessage: function getErrorMessage() {}, getErrorMessages: function getErrorMessages() {}, @@ -2243,7 +2290,6 @@ Formsy.defaultProps = { validationErrors: null }; Formsy.propTypes = { - children: propTypes.node, disabled: propTypes.bool, getErrorMessage: propTypes.func, getErrorMessages: propTypes.func, diff --git a/dist/formsy-react.esm.js.map b/dist/formsy-react.esm.js.map index 29916078..70e3bc70 100644 --- a/dist/formsy-react.esm.js.map +++ b/dist/formsy-react.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"formsy-react.esm.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","export default {\n arraysDiffer(a, b) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a, b) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n if (typeof a === 'function') {\n return a.toString() === b.toString();\n }\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n if (typeof a === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection, fn) {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value, currentValues, validations, validationRules) {\n const results = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\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 const 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 if (typeof validations[validationMethod] !== 'function') {\n const validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { IValidationFunction, IValue, IValues } from './interfaces';\n\nconst isExisty = (value: IValue) => value !== null && value !== undefined;\nconst isEmpty = (value: IValue) => value === '';\n\nconst validations: { [key: string]: IValidationFunction } = {\n isDefaultRequiredValue(_values: IValues, value: IValue) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: IValues, value: IValue) {\n return isExisty(value);\n },\n matchRegexp(_values: IValues, value: IValue, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: IValues, value: IValue) {\n return value === undefined;\n },\n isEmptyString(_values: IValues, value: IValue) {\n return isEmpty(value);\n },\n isEmail(values: IValues, value: IValue) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: IValues, value: IValue) {\n return value === true;\n },\n isFalse(_values: IValues, value: IValue) {\n return value === false;\n },\n isNumeric(values: IValues, value: IValue) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: IValues, value: IValue, eql: IValue) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: IValues, value: IValue, field: string) {\n return value === values[field];\n },\n maxLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport utils from './utils';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\ninterface IProps {\n innerRef?: (ref: any) => void;\n name: string;\n required?: string | object | boolean;\n validations?: string | object;\n value?: any;\n}\n\ninterface IState {\n externalError: null | any;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component) {\n return component.displayName || component.name || (typeof component === 'string' ? component : 'Component');\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n private validations: any;\n\n private requiredValidations: any;\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n isRequired: false,\n isValid: true,\n isPristine: true,\n pristineValue: props.value,\n validationError: [],\n externalError: null,\n formSubmitted: false,\n };\n }\n\n componentWillMount() {\n const configure = () => {\n this.setValidations(this.props.validations, this.props.required);\n\n // Pass a function instead?\n this.context.formsy.attachToForm(this);\n };\n\n if (!this.props.name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n componentDidUpdate(prevProps) {\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 (\n !utils.isSame(this.props.validations, prevProps.validations) ||\n !utils.isSame(this.props.required, prevProps.required)\n ) {\n this.context.formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n componentWillUnmount() {\n this.context.formsy.detachFromForm(this);\n }\n\n getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n getErrorMessages = () => {\n if (!this.isValid() || this.showRequired()) {\n return this.state.externalError || this.state.validationError || [];\n }\n return [];\n };\n\n getValue = () => this.state.value;\n\n setValidations = (validations, required) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n setValue = (value, validate = true) => {\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n }\n };\n\n hasValue = () => this.state.value !== '';\n\n isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n isFormSubmitted = () => this.state.formSubmitted;\n\n isPristine = () => this.state.isPristine;\n\n isRequired = () => !!this.props.required;\n\n isValid = () => this.state.isValid;\n\n isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n resetValue = () => {\n this.setState(\n {\n value: this.state.pristineValue,\n isPristine: true,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n };\n\n showError = () => !this.showRequired() && !this.isValid();\n\n showRequired = () => this.state.isRequired;\n\n render() {\n const { innerRef } = this.props;\n const propsForElement: any = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement);\n }\n\n public static displayName: any = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes: any = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\n\nclass Formsy extends React.Component {\n private inputs: any;\n\n private emptyArray: any[];\n\n private prevInputNames: any;\n\n constructor(props) {\n super(props);\n this.state = {\n isValid: true,\n isSubmitting: false,\n canChange: false,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n validate: this.validate,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n },\n });\n\n componentDidMount = () => {\n this.validateForm();\n };\n\n componentWillUpdate = () => {\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 = () => {\n if (\n this.props.validationErrors &&\n typeof this.props.validationErrors === 'object' &&\n Object.keys(this.props.validationErrors).length > 0\n ) {\n this.setInputValidationErrors(this.props.validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n setFormPristine = 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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n setInputValidationErrors = errors => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!this.props.preventExternalInvalidation && this.state.isValid) {\n this.setFormValidState(false);\n }\n };\n\n setFormValidState = allIsValid => {\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n this.props.onValid();\n } else {\n this.props.onInvalid();\n }\n };\n\n isFormDisabled = () => this.props.disabled;\n\n mapModel = model => {\n if (this.props.mapping) {\n return this.props.mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift();\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n reset = (data?: any) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n resetInternal = event => {\n event.preventDefault();\n this.reset();\n if (this.props.onReset) {\n this.props.onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n resetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n runValidation = (component, value = component.state.value) => {\n const currentValues = this.getCurrentValues();\n const { validationError, validationErrors } = component.props;\n\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid =\n !validationResults.failed.length &&\n !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.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'\n ? [this.props.validationErrors[component.props.name]]\n : this.props.validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = validationErrors[requiredResults.success[0]] || validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed => (validationErrors[failed] ? validationErrors[failed] : validationError))\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n attachToForm = component => {\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 = component => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n submit = event => {\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (this.state.isValid) {\n this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 = (errors, invalidate) => {\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: this.props.preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && this.state.isValid) {\n this.setFormValidState(false);\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 = component => {\n // Trigger onChange\n if (this.state.canChange) {\n this.props.onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: null,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n render = () => {\n const {\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n // onError,\n onInvalidSubmit,\n onInvalid,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n // reset,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n this.props.children,\n );\n };\n\n public static displayName = 'Formsy';\n\n public static defaultProps = {\n children: null,\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n}\n\nconst addValidationRule = (name, func) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","isValid","showRequired","state","externalError","validationError","getValue","setValidations","setValue","validate","setState","isPristine","context","formsy","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","preventDefault","onReset","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","updateInputsWithError","onValidSubmit","onInvalidSubmit","invalidate","input","stringify","canChange","onChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","node","childContextTypes","addValidationRule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"formsy-react.esm.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","import { Validations, Value, Values } from './interfaces';\n\nexport default {\n arraysDiffer(a: unknown[], b: unknown[]) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a: object, b: object) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a: unknown, b: unknown) {\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n\n if (typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n\n if (typeof a === 'object' && typeof b === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection: T[], fn: (item: T) => boolean): T {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value: Value, currentValues: Values, validations: Validations, validationRules: Validations) {\n const results: {\n errors: string[];\n failed: string[];\n success: string[];\n } = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\n const validationsVal = validations[validationMethod];\n const validationRulesVal = validationRules[validationMethod];\n\n if (validationRulesVal && typeof validationsVal === 'function') {\n throw new Error(`Formsy does not allow you to override default validations: ${validationMethod}`);\n }\n\n if (!validationRulesVal && typeof validationsVal !== 'function') {\n throw new Error(`Formsy does not have the validation rule: ${validationMethod}`);\n }\n\n if (typeof validationsVal === 'function') {\n const validation = validationsVal(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 if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') {\n const validation = validationRulesVal(currentValues, value, validationsVal);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { ValidationFunction, Value, Values } from './interfaces';\n\nconst isExisty = (value: Value) => value !== null && value !== undefined;\nconst isEmpty = (value: Value) => value === '';\n\nconst validations: { [key: string]: ValidationFunction } = {\n isDefaultRequiredValue(_values: Values, value: Value) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: Values, value: Value) {\n return isExisty(value);\n },\n matchRegexp(_values: Values, value: Value, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: Values, value: Value) {\n return value === undefined;\n },\n isEmptyString(_values: Values, value: Value) {\n return isEmpty(value);\n },\n isEmail(values: Values, value: Value) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: Values, value: Value) {\n return value === true;\n },\n isFalse(_values: Values, value: Value) {\n return value === false;\n },\n isNumeric(values: Values, value: Value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: Values, value: Value, eql: Value) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: Values, value: Value, field: string) {\n return value === values[field];\n },\n maxLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport utils from './utils';\nimport { Validations, WrappedComponentClass, RequiredValidation, Value } from './interfaces';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = (validations: string | Validations): Validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n if (typeof validateMethod !== 'string') {\n throw new Error('Formsy encountered unexpected problem parsing validation string');\n }\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy: Validations = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\nexport interface WrapperProps {\n innerRef?: (ref: any) => void;\n name: string;\n required: RequiredValidation;\n validationError: any;\n validationErrors: any;\n validations: Validations | string;\n value: any;\n}\n\nexport interface WrapperState {\n [key: string]: unknown;\n externalError: null;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport interface PassDownProps {\n errorMessage: any;\n errorMessages: any;\n hasValue: boolean;\n isFormDisabled: boolean;\n isFormSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n isValidValue: (value: Value) => boolean;\n name: string;\n ref?: any;\n resetValue: any;\n setValidations: any;\n setValue: (value: Value) => void;\n showError: boolean;\n showRequired: boolean;\n validationError: any;\n validationErrors: any;\n value: Value;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component: WrappedComponentClass) {\n return (\n (component as { displayName?: string }).displayName ||\n component.name ||\n (typeof component === 'string' ? component : 'Component')\n );\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n public validations?: Validations;\n\n public requiredValidations?: Validations;\n\n public static displayName = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n\n public constructor(props) {\n super(props);\n this.state = {\n externalError: null,\n formSubmitted: false,\n isPristine: true,\n isRequired: false,\n isValid: true,\n pristineValue: props.value,\n validationError: [],\n value: props.value,\n };\n }\n\n public componentWillMount() {\n const { validations, required, name } = this.props;\n const { formsy } = this.context;\n\n const configure = () => {\n this.setValidations(validations, required);\n\n // Pass a function instead?\n formsy.attachToForm(this);\n };\n\n if (!name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n public componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n public shouldComponentUpdate(nextProps, nextState) {\n // eslint-disable-next-line react/destructuring-assignment\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n\n // eslint-disable-next-line react/destructuring-assignment\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n public componentDidUpdate(prevProps) {\n const { value, validations, required } = this.props;\n const { formsy } = this.context;\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(value, prevProps.value)) {\n this.setValue(value);\n }\n\n // If validations or required is changed, run a new validation\n if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) {\n formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n public componentWillUnmount() {\n const { formsy } = this.context;\n formsy.detachFromForm(this);\n }\n\n public getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n public getErrorMessages = () => {\n const { externalError, validationError } = this.state;\n\n if (!this.isValid() || this.showRequired()) {\n return externalError || validationError || [];\n }\n return [];\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public getValue = () => this.state.value;\n\n public setValidations = (validations: string | Validations, required: RequiredValidation) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n public setValue = (value, validate = true) => {\n const { formsy } = this.context;\n\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n formsy.validate(this);\n },\n );\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public hasValue = () => this.state.value !== '';\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormSubmitted = () => this.state.formSubmitted;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isPristine = () => this.state.isPristine;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isRequired = () => !!this.props.required;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValid = () => this.state.isValid;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n public resetValue = () => {\n const { pristineValue } = this.state;\n const { formsy } = this.context;\n\n this.setState(\n {\n value: pristineValue,\n isPristine: true,\n },\n () => {\n formsy.validate(this);\n },\n );\n };\n\n public showError = () => !this.showRequired() && !this.isValid();\n\n // eslint-disable-next-line react/destructuring-assignment\n public showRequired = () => this.state.isRequired;\n\n public render() {\n const { innerRef } = this.props;\n const propsForElement: PassDownProps = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement as any);\n }\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\nimport { IData, IModel, InputComponent, IResetModel, IUpdateInputsWithError, ValidationFunction } from './interfaces';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\nexport interface FormsyProps {\n disabled: boolean;\n getErrorMessage: any;\n getErrorMessages: any;\n getValue: any;\n hasValue: any;\n isFormDisabled: any;\n isFormSubmitted: any;\n isPristine: any;\n isRequired: any;\n isValid: any;\n isValidValue: any;\n mapping: null | ((model: IModel) => IModel);\n onChange: (model: IModel, isChanged: boolean) => void;\n onError: any;\n onInvalid: () => void;\n onInvalidSubmit: any;\n onReset?: () => void;\n onSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n onValid: () => void;\n onValidSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n preventExternalInvalidation?: boolean;\n resetValue: any;\n setValidations: any;\n setValue: any;\n showError: any;\n showRequired: any;\n validationErrors?: null | object;\n}\n\nexport interface FormsyState {\n canChange: boolean;\n formSubmitted?: boolean;\n isPristine?: boolean;\n isSubmitting: boolean;\n isValid: boolean;\n}\n\nclass Formsy extends React.Component {\n public inputs: any[];\n\n public emptyArray: any[];\n\n public prevInputNames: any[] | null = null;\n\n public static displayName = 'Formsy';\n\n public static defaultProps: Partial = {\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n\n public constructor(props: FormsyProps) {\n super(props);\n this.state = {\n canChange: false,\n isSubmitting: false,\n isValid: true,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n public getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n validate: this.validate,\n },\n });\n\n public componentDidMount = () => {\n this.validateForm();\n };\n\n public componentWillUpdate = () => {\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 public componentDidUpdate = () => {\n const { validationErrors } = this.props;\n\n if (validationErrors && typeof validationErrors === 'object' && Object.keys(validationErrors).length > 0) {\n this.setInputValidationErrors(validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (this.prevInputNames && utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n public getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n public getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n public getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n public setFormPristine = (isPristine: boolean) => {\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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n public setInputValidationErrors = errors => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!preventExternalInvalidation && isValid) {\n this.setFormValidState(false);\n }\n };\n\n public setFormValidState = (allIsValid: boolean) => {\n const { onValid, onInvalid } = this.props;\n\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n onValid();\n } else {\n onInvalid();\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.props.disabled;\n\n public mapModel = (model: IModel) => {\n const { mapping } = this.props;\n\n if (mapping) {\n return mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base: IModel = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift() as string;\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n public reset = (data?: IData) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n public resetInternal = event => {\n const { onReset } = this.props;\n\n event.preventDefault();\n this.reset();\n if (onReset) {\n onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n public resetModel: IResetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n public runValidation = (component: InputComponent, value = component.state.value) => {\n const { validationErrors } = this.props;\n const currentValues = this.getCurrentValues();\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.emptyArray;\n }\n\n if (validationResults.errors.length) {\n return validationResults.errors;\n }\n\n if (validationErrors && validationErrors[component.props.name]) {\n return typeof validationErrors[component.props.name] === 'string'\n ? [validationErrors[component.props.name]]\n : validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed =>\n component.props.validationErrors[failed]\n ? component.props.validationErrors[failed]\n : component.props.validationError,\n )\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n public attachToForm = component => {\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 public detachFromForm = (component: InputComponent) => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n public isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n public submit = event => {\n const { onSubmit, onValidSubmit, onInvalidSubmit } = this.props;\n const { isValid } = this.state;\n\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (isValid) {\n onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 public updateInputsWithError: IUpdateInputsWithError = (errors, invalidate) => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && isValid) {\n this.setFormValidState(false);\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 public validate = (component: InputComponent) => {\n const { onChange } = this.props;\n const { canChange } = this.state;\n\n // Trigger onChange\n if (canChange) {\n onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n externalError: null,\n isRequired: validation.isRequired,\n isValid: validation.isValid,\n validationError: validation.error,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n public validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n public render = () => {\n const {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n onInvalid,\n onInvalidSubmit,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n // eslint-disable-next-line react/destructuring-assignment\n this.props.children,\n );\n };\n}\n\nconst addValidationRule = (name: string, func: ValidationFunction) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","validationsVal","validationRulesVal","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","state","externalError","validationError","isValid","showRequired","getValue","setValidations","setValue","validate","formsy","context","setState","isPristine","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","onReset","preventDefault","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","onValidSubmit","onInvalidSubmit","updateInputsWithError","invalidate","input","stringify","onChange","canChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","childContextTypes","addValidationRule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,AASa,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;AACjgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC1e,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnf,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpd,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdhD;;;AAaA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;EACzC,CAAC,WAAW;AACd;AAEA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;AAI9D,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC;;AAE3D,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;AAC1E,IAAI,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;AACxE,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5E,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5E,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5E,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;AAC1E,IAAI,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;AAChF,IAAI,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;AAC1F,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;AAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;AAC5E,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;AACpE,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;;AAEpE,SAAS,kBAAkB,CAAC,IAAI,EAAE;EAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;;EAE7D,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,mBAAmB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,CAAC,CAAC;CAC9Z;;;;;;;;;;;;;;;;AAgBD,IAAI,kBAAkB,GAAG,YAAY,EAAE,CAAC;;AAExC;EACE,IAAI,YAAY,GAAG,UAAU,MAAM,EAAE;IACnC,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;MACtG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;KAClC;;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;MAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KACzB,CAAC,CAAC;IACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;MAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IACD,IAAI;;;;MAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;GACf,CAAC;;EAEF,kBAAkB,GAAG,UAAU,SAAS,EAAE,MAAM,EAAE;IAChD,IAAI,MAAM,KAAK,SAAS,EAAE;MACxB,MAAM,IAAI,KAAK,CAAC,sEAAsE,GAAG,kBAAkB,CAAC,CAAC;KAC9G;IACD,IAAI,CAAC,SAAS,EAAE;MACd,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7G,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;OACpC;;MAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KACtD;GACF,CAAC;CACH;;AAED,IAAI,oBAAoB,GAAG,kBAAkB,CAAC;;AAE9C,SAAS,MAAM,CAAC,MAAM,EAAE;EACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;IACjD,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/B,QAAQ,QAAQ;MACd,KAAK,kBAAkB;QACrB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;;QAEvB,QAAQ,IAAI;UACV,KAAK,qBAAqB,CAAC;UAC3B,KAAK,0BAA0B,CAAC;UAChC,KAAK,mBAAmB,CAAC;UACzB,KAAK,mBAAmB,CAAC;UACzB,KAAK,sBAAsB,CAAC;UAC5B,KAAK,mBAAmB;YACtB,OAAO,IAAI,CAAC;UACd;YACE,IAAI,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;;YAEzC,QAAQ,YAAY;cAClB,KAAK,kBAAkB,CAAC;cACxB,KAAK,sBAAsB,CAAC;cAC5B,KAAK,mBAAmB;gBACtB,OAAO,YAAY,CAAC;cACtB;gBACE,OAAO,QAAQ,CAAC;aACnB;SACJ;MACH,KAAK,eAAe,CAAC;MACrB,KAAK,eAAe,CAAC;MACrB,KAAK,iBAAiB;QACpB,OAAO,QAAQ,CAAC;KACnB;GACF;;EAED,OAAO,SAAS,CAAC;CAClB;;;AAGD,IAAI,SAAS,GAAG,qBAAqB,CAAC;AACtC,IAAI,cAAc,GAAG,0BAA0B,CAAC;AAChD,IAAI,eAAe,GAAG,kBAAkB,CAAC;AACzC,IAAI,eAAe,GAAG,mBAAmB,CAAC;AAC1C,IAAI,OAAO,GAAG,kBAAkB,CAAC;AACjC,IAAI,UAAU,GAAG,sBAAsB,CAAC;AACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;AACnC,IAAI,IAAI,GAAG,eAAe,CAAC;AAC3B,IAAI,IAAI,GAAG,eAAe,CAAC;AAC3B,IAAI,MAAM,GAAG,iBAAiB,CAAC;AAC/B,IAAI,QAAQ,GAAG,mBAAmB,CAAC;AACnC,IAAI,UAAU,GAAG,sBAAsB,CAAC;AACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;;AAEnC,IAAI,mCAAmC,GAAG,KAAK,CAAC;;;AAGhD,SAAS,WAAW,CAAC,MAAM,EAAE;EAC3B;IACE,IAAI,CAAC,mCAAmC,EAAE;MACxC,mCAAmC,GAAG,IAAI,CAAC;MAC3C,oBAAoB,CAAC,KAAK,EAAE,uDAAuD,GAAG,4DAA4D,GAAG,gEAAgE,CAAC,CAAC;KACxN;GACF;EACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC;CAC7E;AACD,SAAS,gBAAgB,CAAC,MAAM,EAAE;EAChC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,0BAA0B,CAAC;CACtD;AACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;EACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC;CAC9C;AACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;EACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;CAC/C;AACD,SAAS,SAAS,CAAC,MAAM,EAAE;EACzB,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC;CAChG;AACD,SAAS,YAAY,CAAC,MAAM,EAAE;EAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;CAClD;AACD,SAAS,UAAU,CAAC,MAAM,EAAE;EAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;CAC/C;AACD,SAAS,MAAM,CAAC,MAAM,EAAE;EACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;CAC3C;AACD,SAAS,MAAM,CAAC,MAAM,EAAE;EACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;CAC3C;AACD,SAAS,QAAQ,CAAC,MAAM,EAAE;EACxB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAC;CAC7C;AACD,SAAS,UAAU,CAAC,MAAM,EAAE;EAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;CAC/C;AACD,SAAS,YAAY,CAAC,MAAM,EAAE;EAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;CAClD;AACD,SAAS,UAAU,CAAC,MAAM,EAAE;EAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;CAC/C;;AAED,cAAc,GAAG,MAAM,CAAC;AACxB,iBAAiB,GAAG,SAAS,CAAC;AAC9B,sBAAsB,GAAG,cAAc,CAAC;AACxC,uBAAuB,GAAG,eAAe,CAAC;AAC1C,uBAAuB,GAAG,eAAe,CAAC;AAC1C,eAAe,GAAG,OAAO,CAAC;AAC1B,kBAAkB,GAAG,UAAU,CAAC;AAChC,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,YAAY,GAAG,IAAI,CAAC;AACpB,YAAY,GAAG,IAAI,CAAC;AACpB,cAAc,GAAG,MAAM,CAAC;AACxB,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,kBAAkB,GAAG,UAAU,CAAC;AAChC,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,mBAAmB,GAAG,WAAW,CAAC;AAClC,wBAAwB,GAAG,gBAAgB,CAAC;AAC5C,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,iBAAiB,GAAG,SAAS,CAAC;AAC9B,oBAAoB,GAAG,YAAY,CAAC;AACpC,kBAAkB,GAAG,UAAU,CAAC;AAChC,cAAc,GAAG,MAAM,CAAC;AACxB,cAAc,GAAG,MAAM,CAAC;AACxB,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,kBAAkB,GAAG,UAAU,CAAC;AAChC,oBAAoB,GAAG,YAAY,CAAC;AACpC,kBAAkB,GAAG,UAAU,CAAC;GAC7B,GAAG,CAAC;CACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOD;AAEA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;EACzC,cAAc,GAAGA,sBAA2C,CAAC;CAC9D,MAAM;EACL,cAAc,GAAGC,mBAAwC,CAAC;CAC3D;;;ACND;;;;;;AAQA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACzD,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;AAE7D,SAAS,QAAQ,CAAC,GAAG,EAAE;CACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;EACtC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;EAC7E;;CAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;CACnB;;AAED,SAAS,eAAe,GAAG;CAC1B,IAAI;EACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;GACnB,OAAO,KAAK,CAAC;GACb;;;;;EAKD,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;EAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;EAChB,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;GACjD,OAAO,KAAK,CAAC;GACb;;;EAGD,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;GAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;GACxC;EACD,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;GAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;GAChB,CAAC,CAAC;EACH,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;GACrC,OAAO,KAAK,CAAC;GACb;;;EAGD,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;GAC1D,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;GACvB,CAAC,CAAC;EACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAChD,sBAAsB,EAAE;GACzB,OAAO,KAAK,CAAC;GACb;;EAED,OAAO,IAAI,CAAC;EACZ,CAAC,OAAO,GAAG,EAAE;;EAEb,OAAO,KAAK,CAAC;EACb;CACD;;AAED,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;CAC9E,IAAI,IAAI,CAAC;CACT,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC1B,IAAI,OAAO,CAAC;;CAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE5B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;GACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB;GACD;;EAED,IAAI,qBAAqB,EAAE;GAC1B,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;GACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAClC;IACD;GACD;EACD;;CAED,OAAO,EAAE,CAAC;CACV,CAAC;;ACzFF;;;;;;;AASA,IAAI,oBAAoB,GAAG,8CAA8C,CAAC;;AAE1E,0BAAc,GAAG,oBAAoB,CAAC;;ACFtC,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;EACzC,IAAIC,sBAAoB,GAAGF,sBAAqC,CAAC;EACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;EAC5B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;EAE9D,YAAY,GAAG,SAAS,IAAI,EAAE;IAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;MAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,IAAI;;;;MAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;GACf,CAAC;CACH;;;;;;;;;;;;;AAaD,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;EAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;IACzC,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;MAClC,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;QAChC,IAAI,KAAK,CAAC;;;;QAIV,IAAI;;;UAGF,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;YACjD,IAAI,GAAG,GAAG,KAAK;cACb,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB;cAChG,8EAA8E,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;aACvH,CAAC;YACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;YACjC,MAAM,GAAG,CAAC;WACX;UACD,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAEE,sBAAoB,CAAC,CAAC;SAC5G,CAAC,OAAO,EAAE,EAAE;UACX,KAAK,GAAG,EAAE,CAAC;SACZ;QACD,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;UACtC,YAAY;YACV,CAAC,aAAa,IAAI,aAAa,IAAI,0BAA0B;YAC7D,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,iCAAiC;YAClE,2DAA2D,GAAG,OAAO,KAAK,GAAG,IAAI;YACjF,iEAAiE;YACjE,gEAAgE;YAChE,iCAAiC;WAClC,CAAC;SACH;QACD,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;;;UAGpE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;UAEzC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;;UAEvC,YAAY;YACV,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;WAChF,CAAC;SACH;OACF;KACF;GACF;CACF;;;;;;;AAOD,cAAc,CAAC,iBAAiB,GAAG,WAAW;EAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;IACzC,kBAAkB,GAAG,EAAE,CAAC;GACzB;EACF;;AAED,oBAAc,GAAG,cAAc,CAAC;;ACtFhC,IAAIC,KAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAC9D,IAAIC,cAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;EACzCA,cAAY,GAAG,SAAS,IAAI,EAAE;IAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;MAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,IAAI;;;;MAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;GACf,CAAC;CACH;;AAED,SAAS,4BAA4B,GAAG;EACtC,OAAO,IAAI,CAAC;CACb;;AAED,2BAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;;EAE7D,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC;EACtE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;EAgBxC,SAAS,aAAa,CAAC,aAAa,EAAE;IACpC,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC7H,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;MACpC,OAAO,UAAU,CAAC;KACnB;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDD,IAAI,SAAS,GAAG,eAAe,CAAC;;;;EAIhC,IAAI,cAAc,GAAG;IACnB,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;IAC1C,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;IAC3C,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;IAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;IAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;IAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;IAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;IAE5C,GAAG,EAAE,oBAAoB,EAAE;IAC3B,OAAO,EAAE,wBAAwB;IACjC,OAAO,EAAE,wBAAwB,EAAE;IACnC,WAAW,EAAE,4BAA4B,EAAE;IAC3C,UAAU,EAAE,yBAAyB;IACrC,IAAI,EAAE,iBAAiB,EAAE;IACzB,QAAQ,EAAE,yBAAyB;IACnC,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,sBAAsB;IACjC,KAAK,EAAE,sBAAsB;IAC7B,KAAK,EAAE,4BAA4B;GACpC,CAAC;;;;;;;EAOF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;;IAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;;;MAGX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACnC,MAAM;;MAEL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;GACF;;;;;;;;;;EAUD,SAAS,aAAa,CAAC,OAAO,EAAE;IAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;GACjB;;EAED,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;EAE1C,SAAS,0BAA0B,CAAC,QAAQ,EAAE;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;MACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;KACpC;IACD,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;MAC7F,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;MAC3C,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;;MAExC,IAAI,MAAM,KAAKF,sBAAoB,EAAE;QACnC,IAAI,mBAAmB,EAAE;;UAEvB,IAAI,GAAG,GAAG,IAAI,KAAK;YACjB,sFAAsF;YACtF,iDAAiD;YACjD,gDAAgD;WACjD,CAAC;UACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;UACjC,MAAM,GAAG,CAAC;SACX,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;;UAElF,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;UAC9C;YACE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;YAElC,0BAA0B,GAAG,CAAC;YAC9B;YACAE,cAAY;cACV,wDAAwD;cACxD,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,IAAI,wBAAwB;cAC/F,yDAAyD;cACzD,gEAAgE;cAChE,+DAA+D,GAAG,cAAc;aACjF,CAAC;YACF,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzC,0BAA0B,EAAE,CAAC;WAC9B;SACF;OACF;MACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;QAC3B,IAAI,UAAU,EAAE;UACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAC;WAC3J;UACD,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAC;SAChK;QACD,OAAO,IAAI,CAAC;OACb,MAAM;QACL,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;OACzE;KACF;;IAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;IAEzD,OAAO,gBAAgB,CAAC;GACzB;;EAED,SAAS,0BAA0B,CAAC,YAAY,EAAE;IAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;MAChF,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,YAAY,EAAE;;;;QAI7B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;;QAE5C,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;OAC/L;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,oBAAoB,GAAG;IAC9B,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;GACjE;;EAED,SAAS,wBAAwB,CAAC,WAAW,EAAE;IAC7C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;QACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAC;OAChJ;MACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC7B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;OACvK;MACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAEF,sBAAoB,CAAC,CAAC;QACnH,IAAI,KAAK,YAAY,KAAK,EAAE;UAC1B,OAAO,KAAK,CAAC;SACd;OACF;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,wBAAwB,GAAG;IAClC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;QAC9B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAC;OACpL;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,4BAA4B,GAAG;IACtC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,CAACG,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;QAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,yCAAyC,CAAC,CAAC,CAAC;OACzL;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,yBAAyB,CAAC,aAAa,EAAE;IAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;QAC/C,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;QACxD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;OACpN;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,qBAAqB,CAAC,cAAc,EAAE;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;MAClC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;UACxBD,cAAY;YACV,8DAA8D,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc;YAClG,0EAA0E;WAC3E,CAAC;SACH,MAAM;UACLA,cAAY,CAAC,wDAAwD,CAAC,CAAC;SACxE;OACF;MACD,OAAO,4BAA4B,CAAC;KACrC;;IAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;UACpC,OAAO,IAAI,CAAC;SACb;OACF;;MAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;QAC9E,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,QAAQ,EAAE;UACrB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;OACd,CAAC,CAAC;MACH,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;KACpM;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,yBAAyB,CAAC,WAAW,EAAE;IAC9C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;QACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAC;OACjJ;MACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC;OACxK;MACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;QACzB,IAAID,KAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;UACvB,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAED,sBAAoB,CAAC,CAAC;UACjH,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,KAAK,CAAC;WACd;SACF;OACF;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;MACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,GAAGE,cAAY,CAAC,wEAAwE,CAAC,GAAG,KAAK,CAAC,CAAC;MACxI,OAAO,4BAA4B,CAAC;KACrC;;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;MACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;QACjCA,cAAY;UACV,oFAAoF;UACpF,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,GAAG;SACzE,CAAC;QACF,OAAO,4BAA4B,CAAC;OACrC;KACF;;IAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAEF,sBAAoB,CAAC,IAAI,IAAI,EAAE;UACjG,OAAO,IAAI,CAAC;SACb;OACF;;MAED,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;KACzH;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,iBAAiB,GAAG;IAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC;OAC/I;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,sBAAsB,CAAC,UAAU,EAAE;IAC1C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;OACvK;MACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;QAC1B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE;UACZ,SAAS;SACV;QACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEA,sBAAoB,CAAC,CAAC;QAC7G,IAAI,KAAK,EAAE;UACT,OAAO,KAAK,CAAC;SACd;OACF;MACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,4BAA4B,CAAC,UAAU,EAAE;IAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;MACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;MAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;OACvK;;;MAGD,IAAI,OAAO,GAAGI,YAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;MACtD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;QACvB,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE;UACZ,OAAO,IAAI,aAAa;YACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;YACxG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;YAC9D,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;WACxE,CAAC;SACH;QACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEJ,sBAAoB,CAAC,CAAC;QAC7G,IAAI,KAAK,EAAE;UACT,OAAO,KAAK,CAAC;SACd;OACF;MACD,OAAO,IAAI,CAAC;KACb;;IAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;GAC7C;;EAED,SAAS,MAAM,CAAC,SAAS,EAAE;IACzB,QAAQ,OAAO,SAAS;MACtB,KAAK,QAAQ,CAAC;MACd,KAAK,QAAQ,CAAC;MACd,KAAK,WAAW;QACd,OAAO,IAAI,CAAC;MACd,KAAK,SAAS;QACZ,OAAO,CAAC,SAAS,CAAC;MACpB,KAAK,QAAQ;QACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;UAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;UACnD,OAAO,IAAI,CAAC;SACb;;QAED,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE;UACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;UAC1C,IAAI,IAAI,CAAC;UACT,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;YACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;cACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAC;eACd;aACF;WACF,MAAM;;YAEL,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;cACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;cACvB,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;kBACrB,OAAO,KAAK,CAAC;iBACd;eACF;aACF;WACF;SACF,MAAM;UACL,OAAO,KAAK,CAAC;SACd;;QAED,OAAO,IAAI,CAAC;MACd;QACE,OAAO,KAAK,CAAC;KAChB;GACF;;EAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;;IAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE;MACzB,OAAO,IAAI,CAAC;KACb;;;IAGD,IAAI,CAAC,SAAS,EAAE;MACd,OAAO,KAAK,CAAC;KACd;;;IAGD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;MAC3C,OAAO,IAAI,CAAC;KACb;;;IAGD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;MAC/D,OAAO,IAAI,CAAC;KACb;;IAED,OAAO,KAAK,CAAC;GACd;;;EAGD,SAAS,WAAW,CAAC,SAAS,EAAE;IAC9B,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;MAC5B,OAAO,OAAO,CAAC;KAChB;IACD,IAAI,SAAS,YAAY,MAAM,EAAE;;;;MAI/B,OAAO,QAAQ,CAAC;KACjB;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;MACjC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,QAAQ,CAAC;GACjB;;;;EAID,SAAS,cAAc,CAAC,SAAS,EAAE;IACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;MAC1D,OAAO,EAAE,GAAG,SAAS,CAAC;KACvB;IACD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;MACzB,IAAI,SAAS,YAAY,IAAI,EAAE;QAC7B,OAAO,MAAM,CAAC;OACf,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;QACtC,OAAO,QAAQ,CAAC;OACjB;KACF;IACD,OAAO,QAAQ,CAAC;GACjB;;;;EAID,SAAS,wBAAwB,CAAC,KAAK,EAAE;IACvC,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,IAAI;MACV,KAAK,OAAO,CAAC;MACb,KAAK,QAAQ;QACX,OAAO,KAAK,GAAG,IAAI,CAAC;MACtB,KAAK,SAAS,CAAC;MACf,KAAK,MAAM,CAAC;MACZ,KAAK,QAAQ;QACX,OAAO,IAAI,GAAG,IAAI,CAAC;MACrB;QACE,OAAO,IAAI,CAAC;KACf;GACF;;;EAGD,SAAS,YAAY,CAAC,SAAS,EAAE;IAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;MACzD,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;GACnC;;EAED,cAAc,CAAC,cAAc,GAAGK,gBAAc,CAAC;EAC/C,cAAc,CAAC,iBAAiB,GAAGA,gBAAc,CAAC,iBAAiB,CAAC;EACpE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;EAE1C,OAAO,cAAc,CAAC;CACvB,CAAC;;ACnkBF,SAAS,aAAa,GAAG,EAAE;AAC3B,SAAS,sBAAsB,GAAG,EAAE;AACpC,sBAAsB,CAAC,iBAAiB,GAAG,aAAa,CAAC;;AAEzD,4BAAc,GAAG,WAAW;EAC1B,SAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;IAC5E,IAAI,MAAM,KAAKL,sBAAoB,EAAE;;MAEnC,OAAO;KACR;IACD,IAAI,GAAG,GAAG,IAAI,KAAK;MACjB,sFAAsF;MACtF,+CAA+C;MAC/C,gDAAgD;KACjD,CAAC;IACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACjC,MAAM,GAAG,CAAC;GACX,EACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EACvB,SAAS,OAAO,GAAG;IACjB,OAAO,IAAI,CAAC;GACb;;EAGD,IAAI,cAAc,GAAG;IACnB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;;IAEZ,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;;IAEd,cAAc,EAAE,sBAAsB;IACtC,iBAAiB,EAAE,aAAa;GACjC,CAAC;;EAEF,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;EAE1C,OAAO,cAAc,CAAC;CACvB,CAAC;;;;;;;;;;ACxDF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;EACzC,IAAI,OAAO,GAAGF,OAAmB,CAAC;;;;EAIlC,IAAI,mBAAmB,GAAG,IAAI,CAAC;EAC/B,cAAc,GAAGC,uBAAoC,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;CAC/F,MAAM;;;EAGL,cAAc,GAAGO,wBAAqC,EAAE,CAAC;CAC1D;;;AClBD,SAAS,KAAK,CAAC,MAAM,EAAE;EACrB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,MAAM,EAAE,GAAG,EAAE;IACvD,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACxC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;MACtD,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,OAAO,KAAK,CAAC,MAAM,EAAE;MACnB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;;MAE5B,IAAI,OAAO,IAAI,WAAW,EAAE;QAC1B,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;OACpC,MAAM;QACL,WAAW,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9E,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;OACpC;KACF;;IAED,OAAO,MAAM,CAAC;GACf,EAAE,EAAE,CAAC,CAAC;CACR;;AAED,SAAS,OAAO,CAAC,GAAG,EAAE;EACpB,SAAS,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,iBAAiB,EAAE;MAC3F,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACvC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;OACrD,CAAC,CAAC;MACH,OAAO,MAAM,CAAC;KACf;;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IAC3B,OAAO,MAAM,CAAC;GACf;;EAED,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE;IAC5C,OAAO,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;GAC/C,EAAE,EAAE,CAAC,CAAC;CACR;;AAED,oBAAc,GAAG;EACf,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,KAAK;;;AC1Cd,YAAe;EACbC,YADa,wBACAC,CADA,EACcC,CADd,EAC4B;;;QACnCC,WAAW,GAAG,KAAlB;;QACIF,CAAC,CAACG,MAAF,KAAaF,CAAC,CAACE,MAAnB,EAA2B;MACzBD,WAAW,GAAG,IAAd;KADF,MAEO;MACLF,CAAC,CAACI,OAAF,CAAU,UAACC,IAAD,EAAOC,KAAP,EAAiB;YACrB,CAAC,KAAI,CAACC,MAAL,CAAYF,IAAZ,EAAkBJ,CAAC,CAACK,KAAD,CAAnB,CAAL,EAAkC;UAChCJ,WAAW,GAAG,IAAd;;OAFJ,EAIG,IAJH;;;WAMKA,WAAP;GAZW;EAebM,aAfa,yBAeCR,CAfD,EAeYC,CAfZ,EAeuB;;;QAC9BC,WAAW,GAAG,KAAlB;;QACIO,MAAM,CAACC,IAAP,CAAYV,CAAZ,EAAeG,MAAf,KAA0BM,MAAM,CAACC,IAAP,CAAYT,CAAZ,EAAeE,MAA7C,EAAqD;MACnDD,WAAW,GAAG,IAAd;KADF,MAEO;MACLO,MAAM,CAACC,IAAP,CAAYV,CAAZ,EAAeI,OAAf,CAAuB,UAAAO,GAAG,EAAI;YACxB,CAAC,MAAI,CAACJ,MAAL,CAAYP,CAAC,CAACW,GAAD,CAAb,EAAoBV,CAAC,CAACU,GAAD,CAArB,CAAL,EAAkC;UAChCT,WAAW,GAAG,IAAd;;OAFJ,EAIG,IAJH;;;WAMKA,WAAP;GA1BW;EA6BbK,MA7Ba,kBA6BNP,CA7BM,EA6BMC,CA7BN,EA6BkB;QACzB,QAAOD,CAAP,cAAoBC,CAApB,CAAJ,EAA2B;aAClB,KAAP;;;QAGEW,KAAK,CAACC,OAAN,CAAcb,CAAd,KAAoBY,KAAK,CAACC,OAAN,CAAcZ,CAAd,CAAxB,EAA0C;aACjC,CAAC,KAAKF,YAAL,CAAkBC,CAAlB,EAAqBC,CAArB,CAAR;;;QAGE,OAAOD,CAAP,KAAa,UAAb,IAA2B,OAAOC,CAAP,KAAa,UAA5C,EAAwD;aAC/CD,CAAC,CAACc,QAAF,OAAiBb,CAAC,CAACa,QAAF,EAAxB;;;QAGEd,CAAC,KAAK,IAAN,IAAcC,CAAC,KAAK,IAApB,IAA4BD,CAAC,YAAYe,IAAzC,IAAiDd,CAAC,YAAYc,IAAlE,EAAwE;aAC/Df,CAAC,CAACc,QAAF,OAAiBb,CAAC,CAACa,QAAF,EAAxB;;;QAGE,QAAOd,CAAP,MAAa,QAAb,IAAyB,QAAOC,CAAP,MAAa,QAAtC,IAAkDD,CAAC,KAAK,IAAxD,IAAgEC,CAAC,KAAK,IAA1E,EAAgF;aACvE,CAAC,KAAKO,aAAL,CAAmBR,CAAnB,EAAsBC,CAAtB,CAAR;;;WAGKD,CAAC,KAAKC,CAAb;GAlDW;EAqDbe,IArDa,gBAqDLC,UArDK,EAqDYC,EArDZ,EAqDyC;SAC/C,IAAIC,CAAC,GAAG,CAAR,EAAWC,CAAC,GAAGH,UAAU,CAACd,MAA/B,EAAuCgB,CAAC,GAAGC,CAA3C,EAA8CD,CAAC,IAAI,CAAnD,EAAsD;UAC9Cd,KAAI,GAAGY,UAAU,CAACE,CAAD,CAAvB;;UACID,EAAE,CAACb,KAAD,CAAN,EAAc;eACLA,KAAP;;;;WAGG,IAAP;GA5DW;EA+DbgB,QA/Da,oBA+DJC,KA/DI,EA+DUC,aA/DV,EA+DiCC,WA/DjC,EA+D2DC,eA/D3D,EA+DyF;QAC9FC,OAIL,GAAG;MACFC,MAAM,EAAE,EADN;MAEFC,MAAM,EAAE,EAFN;MAGFC,OAAO,EAAE;KAPX;;QAUIpB,MAAM,CAACC,IAAP,CAAYc,WAAZ,EAAyBrB,MAA7B,EAAqC;MACnCM,MAAM,CAACC,IAAP,CAAYc,WAAZ,EAAyBpB,OAAzB,CAAiC,UAAA0B,gBAAgB,EAAI;YAC7CC,cAAc,GAAGP,WAAW,CAACM,gBAAD,CAAlC;YACME,kBAAkB,GAAGP,eAAe,CAACK,gBAAD,CAA1C;;YAEIE,kBAAkB,IAAI,OAAOD,cAAP,KAA0B,UAApD,EAAgE;gBACxD,IAAIE,KAAJ,sEAAwEH,gBAAxE,EAAN;;;YAGE,CAACE,kBAAD,IAAuB,OAAOD,cAAP,KAA0B,UAArD,EAAiE;gBACzD,IAAIE,KAAJ,qDAAuDH,gBAAvD,EAAN;;;YAGE,OAAOC,cAAP,KAA0B,UAA9B,EAA0C;cAClCG,UAAU,GAAGH,cAAc,CAACR,aAAD,EAAgBD,KAAhB,CAAjC;;cACI,OAAOY,UAAP,KAAsB,QAA1B,EAAoC;YAClCR,OAAO,CAACC,MAAR,CAAeQ,IAAf,CAAoBD,UAApB;YACAR,OAAO,CAACE,MAAR,CAAeO,IAAf,CAAoBL,gBAApB;WAFF,MAGO,IAAI,CAACI,UAAL,EAAiB;YACtBR,OAAO,CAACE,MAAR,CAAeO,IAAf,CAAoBL,gBAApB;;;;;;YAIA,OAAOC,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,kBAAP,KAA8B,UAA1E,EAAsF;cAC9EE,WAAU,GAAGF,kBAAkB,CAACT,aAAD,EAAgBD,KAAhB,EAAuBS,cAAvB,CAArC;;cAEI,OAAOG,WAAP,KAAsB,QAA1B,EAAoC;YAClCR,OAAO,CAACC,MAAR,CAAeQ,IAAf,CAAoBD,WAApB;YACAR,OAAO,CAACE,MAAR,CAAeO,IAAf,CAAoBL,gBAApB;WAFF,MAGO,IAAI,CAACI,WAAL,EAAiB;YACtBR,OAAO,CAACE,MAAR,CAAeO,IAAf,CAAoBL,gBAApB;WADK,MAEA;YACLJ,OAAO,CAACG,OAAR,CAAgBM,IAAhB,CAAqBL,gBAArB;;;;;;QAKJJ,OAAO,CAACG,OAAR,CAAgBM,IAAhB,CAAqBL,gBAArB;OApCF;;;WAwCKJ,OAAP;;CAnHJ;;ACAA,IAAMU,SAAQ,GAAG,SAAXA,QAAW,CAACd,KAAD;SAAkBA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKe,SAA9C;CAAjB;;AACA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAChB,KAAD;SAAkBA,KAAK,KAAK,EAA5B;CAAhB;;AAEA,IAAME,WAAkD,GAAG;EACzDe,sBADyD,kCAClCC,OADkC,EACjBlB,KADiB,EACH;WAC7CA,KAAK,KAAKe,SAAV,IAAuBf,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;GAFuD;EAIzDc,QAJyD,oBAIhDI,OAJgD,EAI/BlB,KAJ+B,EAIjB;WAC/Bc,SAAQ,CAACd,KAAD,CAAf;GALuD;EAOzDmB,WAPyD,uBAO7CD,OAP6C,EAO5BlB,KAP4B,EAOdoB,MAPc,EAOE;WAClD,CAACN,SAAQ,CAACd,KAAD,CAAT,IAAoBgB,OAAO,CAAChB,KAAD,CAA3B,IAAsCoB,MAAM,CAACC,IAAP,CAAYrB,KAAZ,CAA7C;GARuD;EAUzDsB,WAVyD,uBAU7CJ,OAV6C,EAU5BlB,KAV4B,EAUd;WAClCA,KAAK,KAAKe,SAAjB;GAXuD;EAazDQ,aAbyD,yBAa3CL,OAb2C,EAa1BlB,KAb0B,EAaZ;WACpCgB,OAAO,CAAChB,KAAD,CAAd;GAduD;EAgBzDwB,OAhByD,mBAgBjDC,MAhBiD,EAgBjCzB,KAhBiC,EAgBnB;;WAE7BE,WAAW,CAACiB,WAAZ,CACLM,MADK,EAELzB,KAFK,EAGL,uJAHK,CAAP;GAlBuD;EAwBzD0B,KAxByD,iBAwBnDD,MAxBmD,EAwBnCzB,KAxBmC,EAwBrB;WAC3BE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,sDAAvC,CAAP;GAzBuD;EA2BzD2B,MA3ByD,kBA2BlDT,OA3BkD,EA2BjClB,KA3BiC,EA2BnB;WAC7BA,KAAK,KAAK,IAAjB;GA5BuD;EA8BzD4B,OA9ByD,mBA8BjDV,OA9BiD,EA8BhClB,KA9BgC,EA8BlB;WAC9BA,KAAK,KAAK,KAAjB;GA/BuD;EAiCzD6B,SAjCyD,qBAiC/CJ,MAjC+C,EAiC/BzB,KAjC+B,EAiCjB;QAClC,OAAOA,KAAP,KAAiB,QAArB,EAA+B;aACtB,IAAP;;;WAEKE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,uBAAvC,CAAP;GArCuD;EAuCzD8B,OAvCyD,mBAuCjDL,MAvCiD,EAuCjCzB,KAvCiC,EAuCnB;WAC7BE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,WAAvC,CAAP;GAxCuD;EA0CzD+B,cA1CyD,0BA0C1CN,MA1C0C,EA0C1BzB,KA1C0B,EA0CZ;WACpCE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,cAAvC,CAAP;GA3CuD;EA6CzDgC,KA7CyD,iBA6CnDP,MA7CmD,EA6CnCzB,KA7CmC,EA6CrB;WAC3BE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,2BAAvC,CAAP;GA9CuD;EAgDzDiC,OAhDyD,mBAgDjDR,MAhDiD,EAgDjCzB,KAhDiC,EAgDnB;WAC7BE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,oDAAvC,CAAP;GAjDuD;EAmDzDkC,OAnDyD,mBAmDjDT,MAnDiD,EAmDjCzB,KAnDiC,EAmDnB;WAC7BE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,aAAvC,CAAP;GApDuD;EAsDzDmC,cAtDyD,0BAsD1CV,MAtD0C,EAsD1BzB,KAtD0B,EAsDZ;WACpCE,WAAW,CAACiB,WAAZ,CAAwBM,MAAxB,EAAgCzB,KAAhC,EAAuC,0BAAvC,CAAP;GAvDuD;EAyDzDoC,QAzDyD,oBAyDhDlB,OAzDgD,EAyD/BlB,KAzD+B,EAyDjBnB,MAzDiB,EAyDD;WAC/C,CAACiC,SAAQ,CAACd,KAAD,CAAT,IAAoBgB,OAAO,CAAChB,KAAD,CAA3B,IAAsCA,KAAK,CAACnB,MAAN,KAAiBA,MAA9D;GA1DuD;EA4DzDwD,MA5DyD,kBA4DlDnB,OA5DkD,EA4DjClB,KA5DiC,EA4DnBsC,GA5DmB,EA4DP;WACzC,CAACxB,SAAQ,CAACd,KAAD,CAAT,IAAoBgB,OAAO,CAAChB,KAAD,CAA3B,IAAsCA,KAAK,KAAKsC,GAAvD;GA7DuD;EA+DzDC,WA/DyD,uBA+D7Cd,MA/D6C,EA+D7BzB,KA/D6B,EA+DfwC,KA/De,EA+DA;WAChDxC,KAAK,KAAKyB,MAAM,CAACe,KAAD,CAAvB;GAhEuD;EAkEzDC,SAlEyD,qBAkE/CvB,OAlE+C,EAkE9BlB,KAlE8B,EAkEhBnB,MAlEgB,EAkEA;WAChD,CAACiC,SAAQ,CAACd,KAAD,CAAT,IAAoBA,KAAK,CAACnB,MAAN,IAAgBA,MAA3C;GAnEuD;EAqEzD6D,SArEyD,qBAqE/CxB,OArE+C,EAqE9BlB,KArE8B,EAqEhBnB,MArEgB,EAqEA;WAChD,CAACiC,SAAQ,CAACd,KAAD,CAAT,IAAoBgB,OAAO,CAAChB,KAAD,CAA3B,IAAsCA,KAAK,CAACnB,MAAN,IAAgBA,MAA7D;;CAtEJ;;ACCA;AAEA,IAAM8D,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACzC,WAAD,EAAoD;MACjF,OAAOA,WAAP,KAAuB,QAA3B,EAAqC;WAC5BA,WAAW,CAAC0C,KAAZ,CAAkB,mBAAlB,EAAuCC,MAAvC,CAA8C,UAACC,sBAAD,EAAyBlC,UAAzB,EAAwC;UACvFmC,IAAI,GAAGnC,UAAU,CAACgC,KAAX,CAAiB,GAAjB,CAAX;UACMI,cAAc,GAAGD,IAAI,CAACE,KAAL,EAAvB;;UAEI,OAAOD,cAAP,KAA0B,QAA9B,EAAwC;cAChC,IAAIrC,KAAJ,CAAU,iEAAV,CAAN;;;MAGFoC,IAAI,GAAGA,IAAI,CAACG,GAAL,CAAS,UAAAC,GAAG,EAAI;YACjB;iBACKC,IAAI,CAACC,KAAL,CAAWF,GAAX,CAAP;SADF,CAEE,OAAOG,CAAP,EAAU;iBACHH,GAAP,CADU;;OAHP,CAAP;;UAQIJ,IAAI,CAAClE,MAAL,GAAc,CAAlB,EAAqB;cACb,IAAI8B,KAAJ,CACJ,wGADI,CAAN;OAjByF;;;UAuBrF4C,0BAAuC,GAAGpE,MAAM,CAACb,MAAP,CAAc,EAAd,EAAkBwE,sBAAlB,CAAhD;MACAS,0BAA0B,CAACP,cAAD,CAA1B,GAA6CD,IAAI,CAAClE,MAAL,GAAckE,IAAI,CAAC,CAAD,CAAlB,GAAwB,IAArE;aACOQ,0BAAP;KAzBK,EA0BJ,EA1BI,CAAP;;;SA6BKrD,WAAW,IAAI,EAAtB;CA/BF;;AAkCA,IAAMsD,WAAS,GAAG;EAChBC,QAAQ,EAAEC,SAAS,CAACC,IADJ;EAEhBC,IAAI,EAAEF,SAAS,CAACG,MAAV,CAAiBC,UAFP;EAGhBC,QAAQ,EAAEL,SAAS,CAACM,SAAV,CAAoB,CAACN,SAAS,CAACO,IAAX,EAAiBP,SAAS,CAACQ,MAA3B,EAAmCR,SAAS,CAACG,MAA7C,CAApB,CAHM;EAIhB3D,WAAW,EAAEwD,SAAS,CAACM,SAAV,CAAoB,CAACN,SAAS,CAACQ,MAAX,EAAmBR,SAAS,CAACG,MAA7B,CAApB,CAJG;EAKhB7D,KAAK,EAAE0D,SAAS,CAACS,GALD;;CAAlB;AAoDA;AAEA,SAASC,cAAT,CAAwBC,SAAxB,EAA0D;SAErDA,SAAD,CAAwCC,WAAxC,IACAD,SAAS,CAACT,IADV,KAEC,OAAOS,SAAP,KAAqB,QAArB,GAAgCA,SAAhC,GAA4C,WAF7C,CADF;;;AAOF,AAAe,kBACbE,gBADa,EAEwB;;;;;;;;oBAuBhBC,KAAnB,EAA0B;;;;;kFAClBA,KAAN;YAtBKtE,WAqBmB;YAnBnBuE,mBAmBmB;;YAqEnBC,eArEmB,GAqED,YAAM;YACvBC,QAAQ,GAAG,MAAKC,gBAAL,EAAjB;;eACOD,QAAQ,CAAC9F,MAAT,GAAkB8F,QAAQ,CAAC,CAAD,CAA1B,GAAgC,IAAvC;OAvEwB;;YA0EnBC,gBA1EmB,GA0EA,YAAM;0BACa,MAAKC,KADlB;YACtBC,aADsB,eACtBA,aADsB;YACPC,eADO,eACPA,eADO;;YAG1B,CAAC,MAAKC,OAAL,EAAD,IAAmB,MAAKC,YAAL,EAAvB,EAA4C;iBACnCH,aAAa,IAAIC,eAAjB,IAAoC,EAA3C;;;eAEK,EAAP;OAhFwB;;YAoFnBG,QApFmB,GAoFR;eAAM,MAAKL,KAAL,CAAW7E,KAAjB;OApFQ;;YAsFnBmF,cAtFmB,GAsFF,UAACjF,WAAD,EAAoC6D,QAApC,EAAqE;;cAEtF7D,WAAL,GAAmByC,0BAA0B,CAACzC,WAAD,CAA1B,IAA2C,EAA9D;cACKuE,mBAAL,GACEV,QAAQ,KAAK,IAAb,GAAoB;UAAE9C,sBAAsB,EAAE;SAA9C,GAAuD0B,0BAA0B,CAACoB,QAAD,CADnF;OAzFwB;;YA+FnBqB,QA/FmB,GA+FR,UAACpF,KAAD,EAA4B;YAApBqF,QAAoB,uEAAT,IAAS;YACpCC,MADoC,GACzB,MAAKC,OADoB,CACpCD,MADoC;;YAGxC,CAACD,QAAL,EAAe;gBACRG,QAAL,CAAc;YACZxF,KAAK,EAALA;WADF;SADF,MAIO;gBACAwF,QAAL,CACE;YACExF,KAAK,EAALA,KADF;YAEEyF,UAAU,EAAE;WAHhB,EAKE,YAAM;YACJH,MAAM,CAACD,QAAP;WANJ;;OAvGsB;;YAoHnBK,QApHmB,GAoHR;eAAM,MAAKb,KAAL,CAAW7E,KAAX,KAAqB,EAA3B;OApHQ;;YAuHnB2F,cAvHmB,GAuHF;eAAM,MAAKJ,OAAL,CAAaD,MAAb,CAAoBK,cAApB,EAAN;OAvHE;;YA0HnBC,eA1HmB,GA0HD;eAAM,MAAKf,KAAL,CAAWgB,aAAjB;OA1HC;;YA6HnBJ,UA7HmB,GA6HN;eAAM,MAAKZ,KAAL,CAAWY,UAAjB;OA7HM;;YAgInB3B,UAhImB,GAgIN;eAAM,CAAC,CAAC,MAAKU,KAAL,CAAWT,QAAnB;OAhIM;;YAmInBiB,OAnImB,GAmIT;eAAM,MAAKH,KAAL,CAAWG,OAAjB;OAnIS;;YAsInBc,YAtImB,GAsIJ,UAAA9F,KAAK;eAAI,MAAKuF,OAAL,CAAaD,MAAb,CAAoBQ,YAApB,CAAiCC,IAAjC,CAAsC,IAAtC,iCAAkD/F,KAAlD,CAAJ;OAtID;;YAwInBgG,UAxImB,GAwIN,YAAM;YAChBC,aADgB,GACE,MAAKpB,KADP,CAChBoB,aADgB;YAEhBX,MAFgB,GAEL,MAAKC,OAFA,CAEhBD,MAFgB;;cAInBE,QAAL,CACE;UACExF,KAAK,EAAEiG,aADT;UAEER,UAAU,EAAE;SAHhB,EAKE,YAAM;UACJH,MAAM,CAACD,QAAP;SANJ;OA5IwB;;YAuJnBa,SAvJmB,GAuJP;eAAM,CAAC,MAAKjB,YAAL,EAAD,IAAwB,CAAC,MAAKD,OAAL,EAA/B;OAvJO;;YA0JnBC,YA1JmB,GA0JJ;eAAM,MAAKJ,KAAL,CAAWf,UAAjB;OA1JI;;YAEnBe,KAAL,GAAa;QACXC,aAAa,EAAE,IADJ;QAEXe,aAAa,EAAE,KAFJ;QAGXJ,UAAU,EAAE,IAHD;QAIX3B,UAAU,EAAE,KAJD;QAKXkB,OAAO,EAAE,IALE;QAMXiB,aAAa,EAAEzB,KAAK,CAACxE,KANV;QAOX+E,eAAe,EAAE,EAPN;QAQX/E,KAAK,EAAEwE,KAAK,CAACxE;OARf;;;;;;2CAY0B;;;0BACc,KAAKwE,KADnB;YAClBtE,WADkB,eAClBA,WADkB;YACL6D,QADK,eACLA,QADK;YACKH,IADL,eACKA,IADL;YAElB0B,MAFkB,GAEP,KAAKC,OAFE,CAElBD,MAFkB;;YAIpBa,SAAS,GAAG,SAAZA,SAAY,GAAM;UACtB,MAAI,CAAChB,cAAL,CAAoBjF,WAApB,EAAiC6D,QAAjC,EADsB;;;UAItBuB,MAAM,CAACc,YAAP,CAAoB,MAApB;SAJF;;YAOI,CAACxC,IAAL,EAAW;gBACH,IAAIjD,KAAJ,CAAU,+CAAV,CAAN;;;QAGFwF,SAAS;OAnDb;;;;gDAuDmCE,SAvDnC,EAuD8C;aACrClB,cAAL,CAAoBkB,SAAS,CAACnG,WAA9B,EAA2CmG,SAAS,CAACtC,QAArD;;;;4CAG2BsC,SA3D/B,EA2D0CC,SA3D1C,EA2DqD;;;;YAE3CC,cAAc,GAAGpH,MAAM,CAACC,IAAP,CAAY,KAAKoF,KAAjB,EAAwBgC,IAAxB,CAA6B,UAAAC,CAAC;iBAAI,MAAI,CAACjC,KAAL,CAAWiC,CAAX,MAAkBJ,SAAS,CAACI,CAAD,CAA/B;SAA9B,CAAvB,CAFiD;;YAK3CC,cAAc,GAAGvH,MAAM,CAACC,IAAP,CAAY,KAAKyF,KAAjB,EAAwB2B,IAAxB,CAA6B,UAAAC,CAAC;iBAAI,MAAI,CAAC5B,KAAL,CAAW4B,CAAX,MAAkBH,SAAS,CAACG,CAAD,CAA/B;SAA9B,CAAvB;eAEOF,cAAc,IAAIG,cAAzB;;;;yCAGwBC,SArE5B,EAqEuC;2BACM,KAAKnC,KADX;YAC3BxE,KAD2B,gBAC3BA,KAD2B;YACpBE,WADoB,gBACpBA,WADoB;YACP6D,QADO,gBACPA,QADO;YAE3BuB,MAF2B,GAEhB,KAAKC,OAFW,CAE3BD,MAF2B;;;YAM/B,CAACsB,KAAK,CAAC3H,MAAN,CAAae,KAAb,EAAoB2G,SAAS,CAAC3G,KAA9B,CAAL,EAA2C;eACpCoF,QAAL,CAAcpF,KAAd;SAPiC;;;YAW/B,CAAC4G,KAAK,CAAC3H,MAAN,CAAaiB,WAAb,EAA0ByG,SAAS,CAACzG,WAApC,CAAD,IAAqD,CAAC0G,KAAK,CAAC3H,MAAN,CAAa8E,QAAb,EAAuB4C,SAAS,CAAC5C,QAAjC,CAA1D,EAAsG;UACpGuB,MAAM,CAACD,QAAP,CAAgB,IAAhB;;OAjFN;;;;6CAsFgC;YACpBC,MADoB,GACT,KAAKC,OADI,CACpBD,MADoB;QAE5BA,MAAM,CAACuB,cAAP,CAAsB,IAAtB;;;;+BA0Fc;YACNpD,QADM,GACO,KAAKe,KADZ,CACNf,QADM;;YAERqD,eAA8B,qBAC/B,KAAKtC,KAD0B;UAElCuC,YAAY,EAAE,KAAKrC,eAAL,EAFoB;UAGlCsC,aAAa,EAAE,KAAKpC,gBAAL,EAHmB;UAIlCc,QAAQ,EAAE,KAAKA,QAAL,EAJwB;UAKlCC,cAAc,EAAE,KAAKA,cAAL,EALkB;UAMlCC,eAAe,EAAE,KAAKA,eAAL,EANiB;UAOlCH,UAAU,EAAE,KAAKA,UAAL,EAPsB;UAQlC3B,UAAU,EAAE,KAAKA,UAAL,EARsB;UASlCkB,OAAO,EAAE,KAAKA,OAAL,EATyB;UAUlCc,YAAY,EAAE,KAAKA,YAVe;UAWlCE,UAAU,EAAE,KAAKA,UAXiB;UAYlCb,cAAc,EAAE,KAAKA,cAZa;UAalCC,QAAQ,EAAE,KAAKA,QAbmB;UAclCc,SAAS,EAAE,KAAKA,SAAL,EAduB;UAelCjB,YAAY,EAAE,KAAKA,YAAL,EAfoB;UAgBlCjF,KAAK,EAAE,KAAKkF,QAAL;UAhBT;;YAmBIzB,QAAJ,EAAc;UACZqD,eAAe,CAACG,GAAhB,GAAsBxD,QAAtB;;;eAGKyD,KAAK,CAACC,aAAN,CAAoB5C,gBAApB,EAAsCuC,eAAtC,CAAP;;;;;IA3MiBI,KAAK,CAACE,SAA3B,UAKgB9C,WALhB,oBAKwCF,cAAc,CAACG,gBAAD,CALtD,eAOgB8C,YAPhB,GAO+B;IAC3B/B,MAAM,EAAE5B,SAAS,CAACQ,MADS;;GAP/B,SAWgBoD,YAXhB,GAWoC;IAChC7D,QAAQ,EAAE,IADsB;IAEhCM,QAAQ,EAAE,KAFsB;IAGhCgB,eAAe,EAAE,EAHe;IAIhCwC,gBAAgB,EAAE,EAJc;IAKhCrH,WAAW,EAAE,IALmB;IAMhCF,KAAK,EAAGuE,gBAAD,CAA0BiD;GAjBrC,SAoBgBhE,SApBhB,GAoBiCA,WApBjC;;;IC1DIiE;;;;;kBAwEejD,KAAnB,EAAuC;;;;;gFAC/BA,KAAN;UAxEKkD,MAuEgC;UArEhCC,UAqEgC;UAnEhCC,cAmEgC,GAnED,IAmEC;;UAWhCC,eAXgC,GAWd;aAAO;QAC9BvC,MAAM,EAAE;UACNc,YAAY,EAAE,MAAKA,YADb;UAENS,cAAc,EAAE,MAAKA,cAFf;UAGNlB,cAAc,EAAE,MAAKA,cAHf;UAING,YAAY,EAAE,sBAACzB,SAAD,EAAYrE,KAAZ;mBAAsB,MAAK8H,aAAL,CAAmBzD,SAAnB,EAA8BrE,KAA9B,EAAqCgF,OAA3D;WAJR;UAKNK,QAAQ,EAAE,MAAKA;;OANM;KAXc;;UAqBhC0C,iBArBgC,GAqBZ,YAAM;YAC1BC,YAAL;KAtBqC;;UAyBhCC,mBAzBgC,GAyBV,YAAM;;;YAG5BL,cAAL,GAAsB,MAAKF,MAAL,CAAYxE,GAAZ,CAAgB,UAAAmB,SAAS;eAAIA,SAAS,CAACG,KAAV,CAAgBZ,IAApB;OAAzB,CAAtB;KA5BqC;;UA+BhCsE,kBA/BgC,GA+BX,YAAM;UACxBX,gBADwB,GACH,MAAK/C,KADF,CACxB+C,gBADwB;;UAG5BA,gBAAgB,IAAI,QAAOA,gBAAP,MAA4B,QAAhD,IAA4DpI,MAAM,CAACC,IAAP,CAAYmI,gBAAZ,EAA8B1I,MAA9B,GAAuC,CAAvG,EAA0G;cACnGsJ,wBAAL,CAA8BZ,gBAA9B;;;UAGIa,aAAa,GAAG,MAAKV,MAAL,CAAYxE,GAAZ,CAAgB,UAAAmB,SAAS;eAAIA,SAAS,CAACG,KAAV,CAAgBZ,IAApB;OAAzB,CAAtB;;UACI,MAAKgE,cAAL,IAAuBhB,KAAK,CAACnI,YAAN,CAAmB,MAAKmJ,cAAxB,EAAwCQ,aAAxC,CAA3B,EAAmF;cAC5EJ,YAAL;;KAxCmC;;UA4ChCK,gBA5CgC,GA4Cb;aACxB,MAAKX,MAAL,CAAY7E,MAAZ,CAAmB,UAACyF,IAAD,EAAOjE,SAAP,EAAqB;YAChCkE,QAAQ,GAAG,QAAOlE,SAAS,CAACQ,KAAV,CAAgB7E,KAAvB,MAAiC,QAAjC,GAA4Cb,MAAM,CAACb,MAAP,CAAc,EAAd,EAAkBgK,IAAlB,CAA5C,GAAsEA,IAAvF,CADsC;;QAEtCC,QAAQ,CAAClE,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAAR,GAAiCS,SAAS,CAACQ,KAAV,CAAgB7E,KAAjD;eACOuI,QAAP;OAHF,EAIG,EAJH,CADwB;KA5Ca;;UAmDhCC,QAnDgC,GAmDrB,YAAM;UAChBvI,aAAa,GAAG,MAAKoI,gBAAL,EAAtB;;aACO,MAAKI,QAAL,CAAcxI,aAAd,CAAP;KArDqC;;UAwDhCyI,iBAxDgC,GAwDZ;aACzB,MAAKhB,MAAL,CAAY7E,MAAZ,CAAmB,UAACyF,IAAD,EAAOjE,SAAP,EAAqB;YAC9BT,IAD8B,GACrBS,SAAS,CAACG,KADW,CAC9BZ,IAD8B;YAEhC2E,QAAQ,GAAG,QAAOlE,SAAS,CAACQ,KAAV,CAAgB7E,KAAvB,MAAiC,QAAjC,GAA4Cb,MAAM,CAACb,MAAP,CAAc,EAAd,EAAkBgK,IAAlB,CAA5C,GAAsEA,IAAvF,CAFsC;;QAGtCC,QAAQ,CAAC3E,IAAD,CAAR,GAAiBS,SAAS,CAACG,KAAV,CAAgBxE,KAAjC;eACOuI,QAAP;OAJF,EAKG,EALH,CADyB;KAxDY;;UAgEhCI,eAhEgC,GAgEd,UAAClD,UAAD,EAAyB;YAC3CD,QAAL,CAAc;QACZK,aAAa,EAAE,CAACJ;OADlB,EADgD;;;;YAO3CiC,MAAL,CAAY5I,OAAZ,CAAoB,UAAAuF,SAAS,EAAI;QAC/BA,SAAS,CAACmB,QAAV,CAAmB;UACjBK,aAAa,EAAE,CAACJ,UADC;UAEjBA,UAAU,EAAVA;SAFF;OADF;KAvEqC;;UA+EhC0C,wBA/EgC,GA+EL,UAAA9H,MAAM,EAAI;UAClCuI,2BADkC,GACF,MAAKpE,KADH,CAClCoE,2BADkC;UAElC5D,OAFkC,GAEtB,MAAKH,KAFiB,CAElCG,OAFkC;;YAIrC0C,MAAL,CAAY5I,OAAZ,CAAoB,UAAAuF,SAAS,EAAI;YACvBT,IADuB,GACdS,SAAS,CAACG,KADI,CACvBZ,IADuB;YAEzBb,IAAI,GAAG,CACX;UACEiC,OAAO,EAAE,EAAEpB,IAAI,IAAIvD,MAAV,CADX;UAEE0E,eAAe,EAAE,OAAO1E,MAAM,CAACuD,IAAD,CAAb,KAAwB,QAAxB,GAAmC,CAACvD,MAAM,CAACuD,IAAD,CAAP,CAAnC,GAAoDvD,MAAM,CAACuD,IAAD;SAHlE,CAAb;QAMAS,SAAS,CAACmB,QAAV,OAAAnB,SAAS,EAAatB,IAAb,CAAT;OARF;;UAUI,CAAC6F,2BAAD,IAAgC5D,OAApC,EAA6C;cACtC6D,iBAAL,CAAuB,KAAvB;;KA9FmC;;UAkGhCA,iBAlGgC,GAkGZ,UAACC,UAAD,EAAyB;wBACnB,MAAKtE,KADc;UAC1CuE,OAD0C,eAC1CA,OAD0C;UACjCC,SADiC,eACjCA,SADiC;;YAG7CxD,QAAL,CAAc;QACZR,OAAO,EAAE8D;OADX;;UAIIA,UAAJ,EAAgB;QACdC,OAAO;OADT,MAEO;QACLC,SAAS;;KA5G0B;;UAiHhCrD,cAjHgC,GAiHf;aAAM,MAAKnB,KAAL,CAAWyE,QAAjB;KAjHe;;UAmHhCR,QAnHgC,GAmHrB,UAACS,KAAD,EAAmB;UAC3BC,OAD2B,GACf,MAAK3E,KADU,CAC3B2E,OAD2B;;UAG/BA,OAAJ,EAAa;eACJA,OAAO,CAACD,KAAD,CAAd;;;aAGKE,gBAAgB,CAACC,KAAjB,CACLlK,MAAM,CAACC,IAAP,CAAY8J,KAAZ,EAAmBrG,MAAnB,CAA0B,UAACyG,WAAD,EAAcjK,GAAd,EAAsB;YACxCkK,QAAQ,GAAGlK,GAAG,CAACuD,KAAJ,CAAU,GAAV,CAAjB;YACI4G,IAAY,GAAGF,WAAnB;;eACOC,QAAQ,CAAC1K,MAAhB,EAAwB;cAChB4K,UAAU,GAAGF,QAAQ,CAACtG,KAAT,EAAnB;UACAuG,IAAI,CAACC,UAAD,CAAJ,GAAmBF,QAAQ,CAAC1K,MAAT,GAAkB2K,IAAI,CAACC,UAAD,CAAJ,IAAoB,EAAtC,GAA2CP,KAAK,CAAC7J,GAAD,CAAnE;UACAmK,IAAI,GAAGA,IAAI,CAACC,UAAD,CAAX;;;eAEKH,WAAP;OARF,EASG,EATH,CADK,CAAP;KA1HqC;;UAwIhCI,KAxIgC,GAwIxB,UAACpB,IAAD,EAAkB;YAC1BK,eAAL,CAAqB,IAArB;;YACKgB,UAAL,CAAgBrB,IAAhB;KA1IqC;;UA6IhCsB,aA7IgC,GA6IhB,UAAAC,KAAK,EAAI;UACtBC,OADsB,GACV,MAAKtF,KADK,CACtBsF,OADsB;MAG9BD,KAAK,CAACE,cAAN;;YACKL,KAAL;;UACII,OAAJ,EAAa;QACXA,OAAO;;KAnJ4B;;UAwJhCH,UAxJgC,GAwJN,UAAArB,IAAI,EAAI;YAClCZ,MAAL,CAAY5I,OAAZ,CAAoB,UAAAuF,SAAS,EAAI;YACvBT,IADuB,GACdS,SAAS,CAACG,KADI,CACvBZ,IADuB;;YAE3B0E,IAAI,IAAInJ,MAAM,CAAC6K,SAAP,CAAiBC,cAAjB,CAAgClE,IAAhC,CAAqCuC,IAArC,EAA2C1E,IAA3C,CAAZ,EAA8D;UAC5DS,SAAS,CAACe,QAAV,CAAmBkD,IAAI,CAAC1E,IAAD,CAAvB;SADF,MAEO;UACLS,SAAS,CAAC2B,UAAV;;OALJ;;YAQKgC,YAAL;KAjKqC;;UAqKhCF,aArKgC,GAqKhB,UAACzD,SAAD,EAA8D;UAAlCrE,KAAkC,uEAA1BqE,SAAS,CAACQ,KAAV,CAAgB7E,KAAU;UAC3EuH,gBAD2E,GACtD,MAAK/C,KADiD,CAC3E+C,gBAD2E;;UAE7EtH,aAAa,GAAG,MAAKoI,gBAAL,EAAtB;;UACM6B,iBAAiB,GAAGtD,KAAK,CAAC7G,QAAN,CAAeC,KAAf,EAAsBC,aAAtB,EAAqCoE,SAAS,CAACnE,WAA/C,EAA4DC,WAA5D,CAA1B;UACMgK,eAAe,GAAGvD,KAAK,CAAC7G,QAAN,CAAeC,KAAf,EAAsBC,aAAtB,EAAqCoE,SAAS,CAACI,mBAA/C,EAAoEtE,WAApE,CAAxB;UACM2D,UAAU,GAAG3E,MAAM,CAACC,IAAP,CAAYiF,SAAS,CAACI,mBAAtB,EAA2C5F,MAA3C,GAAoD,CAAC,CAACsL,eAAe,CAAC5J,OAAhB,CAAwB1B,MAA9E,GAAuF,KAA1G;UACMmG,OAAO,GAAG,CAACkF,iBAAiB,CAAC5J,MAAlB,CAAyBzB,MAA1B,IAAoC,EAAE0I,gBAAgB,IAAIA,gBAAgB,CAAClD,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAAtC,CAApD;aAEO;QACLE,UAAU,EAAVA,UADK;QAELkB,OAAO,EAAElB,UAAU,GAAG,KAAH,GAAWkB,OAFzB;QAGLoF,KAAK,EAAG,YAAM;cACRpF,OAAO,IAAI,CAAClB,UAAhB,EAA4B;mBACnB,MAAK6D,UAAZ;;;cAGEuC,iBAAiB,CAAC7J,MAAlB,CAAyBxB,MAA7B,EAAqC;mBAC5BqL,iBAAiB,CAAC7J,MAAzB;;;cAGEkH,gBAAgB,IAAIA,gBAAgB,CAAClD,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAAxC,EAAgE;mBACvD,OAAO2D,gBAAgB,CAAClD,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAAvB,KAAkD,QAAlD,GACH,CAAC2D,gBAAgB,CAAClD,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAAjB,CADG,GAEH2D,gBAAgB,CAAClD,SAAS,CAACG,KAAV,CAAgBZ,IAAjB,CAFpB;;;cAKEE,UAAJ,EAAgB;gBACRsG,KAAK,GAAG/F,SAAS,CAACG,KAAV,CAAgB+C,gBAAhB,CAAiC4C,eAAe,CAAC5J,OAAhB,CAAwB,CAAxB,CAAjC,KAAgE8D,SAAS,CAACG,KAAV,CAAgBO,eAA9F;mBACOqF,KAAK,GAAG,CAACA,KAAD,CAAH,GAAa,IAAzB;;;cAGEF,iBAAiB,CAAC5J,MAAlB,CAAyBzB,MAA7B,EAAqC;mBAC5BqL,iBAAiB,CAAC5J,MAAlB,CACJ4C,GADI,CACA,UAAA5C,MAAM;qBACT+D,SAAS,CAACG,KAAV,CAAgB+C,gBAAhB,CAAiCjH,MAAjC,IACI+D,SAAS,CAACG,KAAV,CAAgB+C,gBAAhB,CAAiCjH,MAAjC,CADJ,GAEI+D,SAAS,CAACG,KAAV,CAAgBO,eAHX;aADN,EAMJsF,MANI,CAMG,UAACC,CAAD,EAAIC,GAAJ,EAASC,GAAT;qBAAiBA,GAAG,CAACC,OAAJ,CAAYH,CAAZ,MAAmBC,GAApC;aANH,CAAP,CADmC;;;iBAU9BxJ,SAAP;SA9BK;OAHT;KA7KqC;;UAqNhCqF,YArNgC,GAqNjB,UAAA/B,SAAS,EAAI;UAC7B,MAAKqD,MAAL,CAAY+C,OAAZ,CAAoBpG,SAApB,MAAmC,CAAC,CAAxC,EAA2C;cACpCqD,MAAL,CAAY7G,IAAZ,CAAiBwD,SAAjB;;;YAGGgB,QAAL,CAAchB,SAAd;KA1NqC;;UA+NhCwC,cA/NgC,GA+Nf,UAACxC,SAAD,EAA+B;UAC/CqG,YAAY,GAAG,MAAKhD,MAAL,CAAY+C,OAAZ,CAAoBpG,SAApB,CAArB;;UAEIqG,YAAY,KAAK,CAAC,CAAtB,EAAyB;cAClBhD,MAAL,GAAc,MAAKA,MAAL,CAAYiD,KAAZ,CAAkB,CAAlB,EAAqBD,YAArB,EAAmCE,MAAnC,CAA0C,MAAKlD,MAAL,CAAYiD,KAAZ,CAAkBD,YAAY,GAAG,CAAjC,CAA1C,CAAd;;;YAGG1C,YAAL;KAtOqC;;UA0OhC6C,SA1OgC,GA0OpB;aAAM,CAACjE,KAAK,CAAC3H,MAAN,CAAa,MAAKyJ,iBAAL,EAAb,EAAuC,MAAKL,gBAAL,EAAvC,CAAP;KA1OoB;;UA6OhCyC,MA7OgC,GA6OvB,UAAAjB,KAAK,EAAI;yBAC8B,MAAKrF,KADnC;UACfuG,QADe,gBACfA,QADe;UACLC,aADK,gBACLA,aADK;UACUC,eADV,gBACUA,eADV;UAEfjG,OAFe,GAEH,MAAKH,KAFF,CAEfG,OAFe;;UAInB6E,KAAK,IAAIA,KAAK,CAACE,cAAnB,EAAmC;QACjCF,KAAK,CAACE,cAAN;OALqB;;;;;YAWlBpB,eAAL,CAAqB,KAArB;;UACMO,KAAK,GAAG,MAAKV,QAAL,EAAd;;MACAuC,QAAQ,CAAC7B,KAAD,EAAQ,MAAKS,UAAb,EAAyB,MAAKuB,qBAA9B,CAAR;;UACIlG,OAAJ,EAAa;QACXgG,aAAa,CAAC9B,KAAD,EAAQ,MAAKS,UAAb,EAAyB,MAAKuB,qBAA9B,CAAb;OADF,MAEO;QACLD,eAAe,CAAC/B,KAAD,EAAQ,MAAKS,UAAb,EAAyB,MAAKuB,qBAA9B,CAAf;;KA9PmC;;UAqQhCA,qBArQgC,GAqQgB,UAAC7K,MAAD,EAAS8K,UAAT,EAAwB;UACrEvC,2BADqE,GACrC,MAAKpE,KADgC,CACrEoE,2BADqE;UAErE5D,OAFqE,GAEzD,MAAKH,KAFoD,CAErEG,OAFqE;MAI7E7F,MAAM,CAACC,IAAP,CAAYiB,MAAZ,EAAoBvB,OAApB,CAA4B,UAAA8E,IAAI,EAAI;YAC5BS,SAAS,GAAGuC,KAAK,CAAClH,IAAN,CAAW,MAAKgI,MAAhB,EAAwB,UAAA0D,KAAK;iBAAIA,KAAK,CAAC5G,KAAN,CAAYZ,IAAZ,KAAqBA,IAAzB;SAA7B,CAAlB;;YACI,CAACS,SAAL,EAAgB;gBACR,IAAI1D,KAAJ,yGAC6FyC,IAAI,CAACiI,SAAL,CAC/FhL,MAD+F,CAD7F,EAAN;;;YAMI0C,IAAI,GAAG,CACX;UACEiC,OAAO,EAAE4D,2BADX;UAEE9D,aAAa,EAAE,OAAOzE,MAAM,CAACuD,IAAD,CAAb,KAAwB,QAAxB,GAAmC,CAACvD,MAAM,CAACuD,IAAD,CAAP,CAAnC,GAAoDvD,MAAM,CAACuD,IAAD;SAHhE,CAAb;QAMAS,SAAS,CAACmB,QAAV,OAAAnB,SAAS,EAAatB,IAAb,CAAT;OAfF;;UAiBIoI,UAAU,IAAInG,OAAlB,EAA2B;cACpB6D,iBAAL,CAAuB,KAAvB;;KA3RmC;;UAkShCxD,QAlSgC,GAkSrB,UAAChB,SAAD,EAA+B;UACvCiH,QADuC,GAC1B,MAAK9G,KADqB,CACvC8G,QADuC;UAEvCC,SAFuC,GAEzB,MAAK1G,KAFoB,CAEvC0G,SAFuC;;UAK3CA,SAAJ,EAAe;QACbD,QAAQ,CAAC,MAAK9C,QAAL,EAAD,EAAkB,MAAKqC,SAAL,EAAlB,CAAR;;;UAGIjK,UAAU,GAAG,MAAKkH,aAAL,CAAmBzD,SAAnB,CAAnB,CAT+C;;;;MAY/CA,SAAS,CAACmB,QAAV,CACE;QACEV,aAAa,EAAE,IADjB;QAEEhB,UAAU,EAAElD,UAAU,CAACkD,UAFzB;QAGEkB,OAAO,EAAEpE,UAAU,CAACoE,OAHtB;QAIED,eAAe,EAAEnE,UAAU,CAACwJ;OALhC,EAOE,MAAKpC,YAPP;KA9SqC;;UA2ThCA,YA3TgC,GA2TjB,YAAM;;;UAGpBwD,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;YAC3B1C,UAAU,GAAG,MAAKpB,MAAL,CAAY+D,KAAZ,CAAkB,UAAApH,SAAS;iBAAIA,SAAS,CAACQ,KAAV,CAAgBG,OAApB;SAA3B,CAAnB;;cAEK6D,iBAAL,CAAuBC,UAAvB,EAHiC;;;cAM5BtD,QAAL,CAAc;UACZ+F,SAAS,EAAE;SADb;OANF,CAH0B;;;;YAgBrB7D,MAAL,CAAY5I,OAAZ,CAAoB,UAACuF,SAAD,EAAYrF,KAAZ,EAAsB;YAClC4B,UAAU,GAAG,MAAKkH,aAAL,CAAmBzD,SAAnB,CAAnB;;YACIzD,UAAU,CAACoE,OAAX,IAAsBX,SAAS,CAACQ,KAAV,CAAgBC,aAA1C,EAAyD;UACvDlE,UAAU,CAACoE,OAAX,GAAqB,KAArB;;;QAEFX,SAAS,CAACmB,QAAV,CACE;UACER,OAAO,EAAEpE,UAAU,CAACoE,OADtB;UAEElB,UAAU,EAAElD,UAAU,CAACkD,UAFzB;UAGEiB,eAAe,EAAEnE,UAAU,CAACwJ,KAH9B;UAIEtF,aAAa,EAAE,CAAClE,UAAU,CAACoE,OAAZ,IAAuBX,SAAS,CAACQ,KAAV,CAAgBC,aAAvC,GAAuDT,SAAS,CAACQ,KAAV,CAAgBC,aAAvE,GAAuF;SAL1G,EAOE9F,KAAK,KAAK,MAAK0I,MAAL,CAAY7I,MAAZ,GAAqB,CAA/B,GAAmC2M,oBAAnC,GAA0D,IAP5D;OALF,EAhB0B;;;;UAkCtB,CAAC,MAAK9D,MAAL,CAAY7I,MAAjB,EAAyB;cAClB2G,QAAL,CAAc;UACZ+F,SAAS,EAAE;SADb;;KA9VmC;;UAoWhCG,MApWgC,GAoWvB,YAAM;yBA8BhB,MAAKlH,KA9BW;UAGlBE,eAHkB,gBAGlBA,eAHkB;UAIlBE,gBAJkB,gBAIlBA,gBAJkB;UAKlBM,QALkB,gBAKlBA,QALkB;UAMlBQ,QANkB,gBAMlBA,QANkB;UAOlBC,cAPkB,gBAOlBA,cAPkB;UAQlBC,eARkB,gBAQlBA,eARkB;UASlBH,UATkB,gBASlBA,UATkB;UAUlB3B,UAVkB,gBAUlBA,UAVkB;UAWlBkB,OAXkB,gBAWlBA,OAXkB;UAYlBc,YAZkB,gBAYlBA,YAZkB;UAalBqD,OAbkB,gBAalBA,OAbkB;UAclBmC,QAdkB,gBAclBA,QAdkB;UAelBtC,SAfkB,gBAelBA,SAfkB;UAgBlBiC,eAhBkB,gBAgBlBA,eAhBkB;UAiBlBnB,OAjBkB,gBAiBlBA,OAjBkB;UAkBlBiB,QAlBkB,gBAkBlBA,QAlBkB;UAmBlBhC,OAnBkB,gBAmBlBA,OAnBkB;UAoBlBiC,aApBkB,gBAoBlBA,aApBkB;UAqBlBpC,2BArBkB,gBAqBlBA,2BArBkB;UAsBlB5C,UAtBkB,gBAsBlBA,UAtBkB;UAuBlBb,cAvBkB,gBAuBlBA,cAvBkB;UAwBlBC,QAxBkB,gBAwBlBA,QAxBkB;UAyBlBc,SAzBkB,gBAyBlBA,SAzBkB;UA0BlBjB,YA1BkB,gBA0BlBA,YA1BkB;UA2BlBsC,gBA3BkB,gBA2BlBA,gBA3BkB;UA6BfoE,cA7Be;;aAgCbzE,KAAK,CAACC,aAAN,CACL,MADK;QAGH2C,OAAO,EAAE,MAAKF,aAHX;QAIHmB,QAAQ,EAAE,MAAKD;SACZa,cALA;QAMH1C,QAAQ,EAAE;;YAGPzE,KAAL,CAAWoH,QATN,CAAP;KApYqC;;UAEhC/G,KAAL,GAAa;MACX0G,SAAS,EAAE,KADA;MAEXM,YAAY,EAAE,KAFH;MAGX7G,OAAO,EAAE;KAHX;UAKK0C,MAAL,GAAc,EAAd;UACKC,UAAL,GAAkB,EAAlB;;;;;EAhFiBT,KAAK,CAACE;;AAArBK,OAOUnD,cAAc;AAPxBmD,OASUH,eAAqC;EACjD2B,QAAQ,EAAE,KADuC;EAEjDvE,eAAe,EAAE,2BAAM,EAF0B;EAGjDE,gBAAgB,EAAE,4BAAM,EAHyB;EAIjDM,QAAQ,EAAE,oBAAM,EAJiC;EAKjDQ,QAAQ,EAAE,oBAAM,EALiC;EAMjDC,cAAc,EAAE,0BAAM,EAN2B;EAOjDC,eAAe,EAAE,2BAAM,EAP0B;EAQjDH,UAAU,EAAE,sBAAM,EAR+B;EASjD3B,UAAU,EAAE,sBAAM,EAT+B;EAUjDkB,OAAO,EAAE,mBAAM,EAVkC;EAWjDc,YAAY,EAAE,wBAAM,EAX6B;EAYjDqD,OAAO,EAAE,IAZwC;EAajDmC,QAAQ,EAAE,oBAAM,EAbiC;EAcjDQ,OAAO,EAAE,mBAAM,EAdkC;EAejD9C,SAAS,EAAE,qBAAM,EAfgC;EAgBjDiC,eAAe,EAAE,2BAAM,EAhB0B;EAiBjDnB,OAAO,EAAE,mBAAM,EAjBkC;EAkBjDiB,QAAQ,EAAE,oBAAM,EAlBiC;EAmBjDhC,OAAO,EAAE,mBAAM,EAnBkC;EAoBjDiC,aAAa,EAAE,yBAAM,EApB4B;EAqBjDpC,2BAA2B,EAAE,KArBoB;EAsBjD5C,UAAU,EAAE,sBAAM,EAtB+B;EAuBjDb,cAAc,EAAE,0BAAM,EAvB2B;EAwBjDC,QAAQ,EAAE,oBAAM,EAxBiC;EAyBjDc,SAAS,EAAE,qBAAM,EAzBgC;EA0BjDjB,YAAY,EAAE,wBAAM,EA1B6B;EA2BjDsC,gBAAgB,EAAE;;AApChBE,OAuCUjE,YAAY;EACxByF,QAAQ,EAAEvF,SAAS,CAACO,IADI;EAExBS,eAAe,EAAEhB,SAAS,CAACC,IAFH;EAGxBiB,gBAAgB,EAAElB,SAAS,CAACC,IAHJ;EAIxBuB,QAAQ,EAAExB,SAAS,CAACC,IAJI;EAKxB+B,QAAQ,EAAEhC,SAAS,CAACC,IALI;EAMxBgC,cAAc,EAAEjC,SAAS,CAACC,IANF;EAOxBiC,eAAe,EAAElC,SAAS,CAACC,IAPH;EAQxB8B,UAAU,EAAE/B,SAAS,CAACC,IARE;EASxBG,UAAU,EAAEJ,SAAS,CAACC,IATE;EAUxBqB,OAAO,EAAEtB,SAAS,CAACC,IAVK;EAWxBmC,YAAY,EAAEpC,SAAS,CAACC,IAXA;EAYxBwF,OAAO,EAAEzF,SAAS,CAACC,IAZK;EAaxB2H,QAAQ,EAAE5H,SAAS,CAACC,IAbI;EAcxBqF,SAAS,EAAEtF,SAAS,CAACC,IAdG;EAexBsH,eAAe,EAAEvH,SAAS,CAACC,IAfH;EAgBxBmG,OAAO,EAAEpG,SAAS,CAACC,IAhBK;EAiBxBoH,QAAQ,EAAErH,SAAS,CAACC,IAjBI;EAkBxBoF,OAAO,EAAErF,SAAS,CAACC,IAlBK;EAmBxBqH,aAAa,EAAEtH,SAAS,CAACC,IAnBD;EAoBxBiF,2BAA2B,EAAElF,SAAS,CAACO,IApBf;EAqBxB+B,UAAU,EAAEtC,SAAS,CAACC,IArBE;EAsBxBwB,cAAc,EAAEzB,SAAS,CAACC,IAtBF;EAuBxByB,QAAQ,EAAE1B,SAAS,CAACC,IAvBI;EAwBxBuC,SAAS,EAAExC,SAAS,CAACC,IAxBG;EAyBxBsB,YAAY,EAAEvB,SAAS,CAACC,IAzBA;EA0BxB4D,gBAAgB,EAAE7D,SAAS,CAACQ,MA1BJ;;;AAvCtBuD,OAoEUsE,oBAAoB;EAChCzG,MAAM,EAAE5B,SAAS,CAACQ;;;AAqZtB,IAAM8H,iBAAiB,GAAG,SAApBA,iBAAoB,CAACpI,IAAD,EAAeD,IAAf,EAA4C;EACpExD,WAAe,CAACyD,IAAD,CAAf,GAAwBD,IAAxB;CADF;;;;;"} \ No newline at end of file diff --git a/dist/formsy-react.umd.js b/dist/formsy-react.umd.js index 5a783473..4d3e685b 100644 --- a/dist/formsy-react.umd.js +++ b/dist/formsy-react.umd.js @@ -1400,7 +1400,7 @@ return !this.arraysDiffer(a, b); } - if (typeof a === 'function') { + if (typeof a === 'function' && typeof b === 'function') { return a.toString() === b.toString(); } @@ -1408,7 +1408,7 @@ return a.toString() === b.toString(); } - if (_typeof(a) === 'object' && a !== null && b !== null) { + if (_typeof(a) === 'object' && _typeof(b) === 'object' && a !== null && b !== null) { return !this.objectsDiffer(a, b); } @@ -1416,10 +1416,10 @@ }, find: function find(collection, fn) { for (var i = 0, l = collection.length; i < l; i += 1) { - var item = collection[i]; + var _item = collection[i]; - if (fn(item)) { - return item; + if (fn(_item)) { + return _item; } } @@ -1434,16 +1434,19 @@ if (Object.keys(validations).length) { Object.keys(validations).forEach(function (validationMethod) { - if (validationRules[validationMethod] && typeof validations[validationMethod] === 'function') { + var validationsVal = validations[validationMethod]; + var validationRulesVal = validationRules[validationMethod]; + + if (validationRulesVal && typeof validationsVal === 'function') { throw new Error("Formsy does not allow you to override default validations: ".concat(validationMethod)); } - if (!validationRules[validationMethod] && typeof validations[validationMethod] !== 'function') { + if (!validationRulesVal && typeof validationsVal !== 'function') { throw new Error("Formsy does not have the validation rule: ".concat(validationMethod)); } - if (typeof validations[validationMethod] === 'function') { - var validation = validations[validationMethod](currentValues, value); + if (typeof validationsVal === 'function') { + var validation = validationsVal(currentValues, value); if (typeof validation === 'string') { results.errors.push(validation); @@ -1455,8 +1458,8 @@ return; } - if (typeof validations[validationMethod] !== 'function') { - var _validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]); + if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') { + var _validation = validationRulesVal(currentValues, value, validationsVal); if (typeof _validation === 'string') { results.errors.push(_validation); @@ -1558,12 +1561,16 @@ }; /* eslint-disable react/default-props-match-prop-types */ - var convertValidationsToObject = function convertValidationsToObject(validations) { if (typeof validations === 'string') { return validations.split(/,(?![^{[]*[}\]])/g).reduce(function (validationsAccumulator, validation) { var args = validation.split(':'); var validateMethod = args.shift(); + + if (typeof validateMethod !== 'string') { + throw new Error('Formsy encountered unexpected problem parsing validation string'); + } + args = args.map(function (arg) { try { return JSON.parse(arg); @@ -1623,8 +1630,12 @@ }; _this.getErrorMessages = function () { + var _this$state = _this.state, + externalError = _this$state.externalError, + validationError = _this$state.validationError; + if (!_this.isValid() || _this.showRequired()) { - return _this.state.externalError || _this.state.validationError || []; + return externalError || validationError || []; } return []; @@ -1644,6 +1655,7 @@ _this.setValue = function (value) { var validate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var formsy = _this.context.formsy; if (!validate) { _this.setState({ @@ -1654,7 +1666,7 @@ value: value, isPristine: false }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); } }; @@ -1688,11 +1700,14 @@ }; _this.resetValue = function () { + var pristineValue = _this.state.pristineValue; + var formsy = _this.context.formsy; + _this.setState({ - value: _this.state.pristineValue, + value: pristineValue, isPristine: true }, function () { - _this.context.formsy.validate(_assertThisInitialized(_this)); + formsy.validate(_assertThisInitialized(_this)); }); }; @@ -1705,14 +1720,14 @@ }; _this.state = { - value: props.value, + externalError: null, + formSubmitted: false, + isPristine: true, isRequired: false, isValid: true, - isPristine: true, pristineValue: props.value, validationError: [], - externalError: null, - formSubmitted: false + value: props.value }; return _this; } @@ -1722,14 +1737,20 @@ value: function componentWillMount() { var _this2 = this; + var _this$props = this.props, + validations = _this$props.validations, + required = _this$props.required, + name = _this$props.name; + var formsy = this.context.formsy; + var configure = function configure() { - _this2.setValidations(_this2.props.validations, _this2.props.required); // Pass a function instead? + _this2.setValidations(validations, required); // Pass a function instead? - _this2.context.formsy.attachToForm(_this2); + formsy.attachToForm(_this2); }; - if (!this.props.name) { + if (!name) { throw new Error('Form Input requires a name property when used'); } @@ -1746,9 +1767,11 @@ value: function shouldComponentUpdate(nextProps, nextState) { var _this3 = this; + // eslint-disable-next-line react/destructuring-assignment var isPropsChanged = Object.keys(this.props).some(function (k) { return _this3.props[k] !== nextProps[k]; - }); + }); // eslint-disable-next-line react/destructuring-assignment + var isStateChanged = Object.keys(this.state).some(function (k) { return _this3.state[k] !== nextState[k]; }); @@ -1757,22 +1780,28 @@ }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { - // If the value passed has changed, set it. If value is not passed it will + var _this$props2 = this.props, + value = _this$props2.value, + validations = _this$props2.validations, + required = _this$props2.required; + var formsy = this.context.formsy; // If the value passed has changed, set it. If value is not passed it will // internally update, and this will never run - if (!utils.isSame(this.props.value, prevProps.value)) { - this.setValue(this.props.value); + + if (!utils.isSame(value, prevProps.value)) { + this.setValue(value); } // If validations or required is changed, run a new validation - if (!utils.isSame(this.props.validations, prevProps.validations) || !utils.isSame(this.props.required, prevProps.required)) { - this.context.formsy.validate(this); + if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) { + formsy.validate(this); } } // Detach it when component unmounts }, { key: "componentWillUnmount", value: function componentWillUnmount() { - this.context.formsy.detachFromForm(this); + var formsy = this.context.formsy; + formsy.detachFromForm(this); } }, { key: "render", @@ -1819,8 +1848,6 @@ }, _class.propTypes = propTypes$1, _temp; } - /* eslint-disable react/no-unused-state, react/default-props-match-prop-types */ - var Formsy = /*#__PURE__*/ function (_React$Component) { @@ -1834,18 +1861,18 @@ _this = _possibleConstructorReturn(this, _getPrototypeOf(Formsy).call(this, props)); _this.inputs = void 0; _this.emptyArray = void 0; - _this.prevInputNames = void 0; + _this.prevInputNames = null; _this.getChildContext = function () { return { formsy: { attachToForm: _this.attachToForm, detachFromForm: _this.detachFromForm, - validate: _this.validate, isFormDisabled: _this.isFormDisabled, isValidValue: function isValidValue(component, value) { return _this.runValidation(component, value).isValid; - } + }, + validate: _this.validate } }; }; @@ -1863,15 +1890,17 @@ }; _this.componentDidUpdate = function () { - if (_this.props.validationErrors && _typeof(_this.props.validationErrors) === 'object' && Object.keys(_this.props.validationErrors).length > 0) { - _this.setInputValidationErrors(_this.props.validationErrors); + var validationErrors = _this.props.validationErrors; + + if (validationErrors && _typeof(validationErrors) === 'object' && Object.keys(validationErrors).length > 0) { + _this.setInputValidationErrors(validationErrors); } var newInputNames = _this.inputs.map(function (component) { return component.props.name; }); - if (utils.arraysDiffer(_this.prevInputNames, newInputNames)) { + if (_this.prevInputNames && utils.arraysDiffer(_this.prevInputNames, newInputNames)) { _this.validateForm(); } }; @@ -1917,6 +1946,9 @@ }; _this.setInputValidationErrors = function (errors) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; + _this.inputs.forEach(function (component) { var name = component.props.name; var args = [{ @@ -1926,20 +1958,24 @@ component.setState.apply(component, args); }); - if (!_this.props.preventExternalInvalidation && _this.state.isValid) { + if (!preventExternalInvalidation && isValid) { _this.setFormValidState(false); } }; _this.setFormValidState = function (allIsValid) { + var _this$props = _this.props, + onValid = _this$props.onValid, + onInvalid = _this$props.onInvalid; + _this.setState({ isValid: allIsValid }); if (allIsValid) { - _this.props.onValid(); + onValid(); } else { - _this.props.onInvalid(); + onInvalid(); } }; @@ -1948,8 +1984,10 @@ }; _this.mapModel = function (model) { - if (_this.props.mapping) { - return _this.props.mapping(model); + var mapping = _this.props.mapping; + + if (mapping) { + return mapping(model); } return formDataToObject.toObj(Object.keys(model).reduce(function (mappedModel, key) { @@ -1973,12 +2011,13 @@ }; _this.resetInternal = function (event) { + var onReset = _this.props.onReset; event.preventDefault(); _this.reset(); - if (_this.props.onReset) { - _this.props.onReset(); + if (onReset) { + onReset(); } }; @@ -1998,16 +2037,14 @@ _this.runValidation = function (component) { var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : component.state.value; + var validationErrors = _this.props.validationErrors; var currentValues = _this.getCurrentValues(); - var _component$props = component.props, - validationError = _component$props.validationError, - validationErrors = _component$props.validationErrors; var validationResults = utils.runRules(value, currentValues, component.validations, validations); var requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validations); var isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false; - var isValid = !validationResults.failed.length && !(_this.props.validationErrors && _this.props.validationErrors[component.props.name]); + var isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]); return { isRequired: isRequired, isValid: isRequired ? false : isValid, @@ -2020,18 +2057,18 @@ return validationResults.errors; } - if (_this.props.validationErrors && _this.props.validationErrors[component.props.name]) { - return typeof _this.props.validationErrors[component.props.name] === 'string' ? [_this.props.validationErrors[component.props.name]] : _this.props.validationErrors[component.props.name]; + if (validationErrors && validationErrors[component.props.name]) { + return typeof validationErrors[component.props.name] === 'string' ? [validationErrors[component.props.name]] : validationErrors[component.props.name]; } if (isRequired) { - var error = validationErrors[requiredResults.success[0]] || validationError; + var error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError; return error ? [error] : null; } if (validationResults.failed.length) { return validationResults.failed.map(function (failed) { - return validationErrors[failed] ? validationErrors[failed] : validationError; + return component.props.validationErrors[failed] ? component.props.validationErrors[failed] : component.props.validationError; }).filter(function (x, pos, arr) { return arr.indexOf(x) === pos; }); // remove duplicates @@ -2065,6 +2102,12 @@ }; _this.submit = function (event) { + var _this$props2 = _this.props, + onSubmit = _this$props2.onSubmit, + onValidSubmit = _this$props2.onValidSubmit, + onInvalidSubmit = _this$props2.onInvalidSubmit; + var isValid = _this.state.isValid; + if (event && event.preventDefault) { event.preventDefault(); } // Trigger form as not pristine. @@ -2076,16 +2119,18 @@ var model = _this.getModel(); - _this.props.onSubmit(model, _this.resetModel, _this.updateInputsWithError); + onSubmit(model, _this.resetModel, _this.updateInputsWithError); - if (_this.state.isValid) { - _this.props.onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); + if (isValid) { + onValidSubmit(model, _this.resetModel, _this.updateInputsWithError); } else { - _this.props.onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); + onInvalidSubmit(model, _this.resetModel, _this.updateInputsWithError); } }; _this.updateInputsWithError = function (errors, invalidate) { + var preventExternalInvalidation = _this.props.preventExternalInvalidation; + var isValid = _this.state.isValid; Object.keys(errors).forEach(function (name) { var component = utils.find(_this.inputs, function (input) { return input.props.name === name; @@ -2096,21 +2141,23 @@ } var args = [{ - isValid: _this.props.preventExternalInvalidation, + isValid: preventExternalInvalidation, externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name] }]; component.setState.apply(component, args); }); - if (invalidate && _this.state.isValid) { + if (invalidate && isValid) { _this.setFormValidState(false); } }; _this.validate = function (component) { - // Trigger onChange - if (_this.state.canChange) { - _this.props.onChange(_this.getModel(), _this.isChanged()); + var onChange = _this.props.onChange; + var canChange = _this.state.canChange; // Trigger onChange + + if (canChange) { + onChange(_this.getModel(), _this.isChanged()); } var validation = _this.runValidation(component); // Run through the validations, split them up and call @@ -2118,10 +2165,10 @@ component.setState({ - isValid: validation.isValid, + externalError: null, isRequired: validation.isRequired, - validationError: validation.error, - externalError: null + isValid: validation.isValid, + validationError: validation.error }, _this.validateForm); }; @@ -2168,46 +2215,47 @@ }; _this.render = function () { - var _this$props = _this.props, - getErrorMessage = _this$props.getErrorMessage, - getErrorMessages = _this$props.getErrorMessages, - getValue = _this$props.getValue, - hasValue = _this$props.hasValue, - isFormDisabled = _this$props.isFormDisabled, - isFormSubmitted = _this$props.isFormSubmitted, - isPristine = _this$props.isPristine, - isRequired = _this$props.isRequired, - isValid = _this$props.isValid, - isValidValue = _this$props.isValidValue, - mapping = _this$props.mapping, - onChange = _this$props.onChange, - onInvalidSubmit = _this$props.onInvalidSubmit, - onInvalid = _this$props.onInvalid, - onReset = _this$props.onReset, - onSubmit = _this$props.onSubmit, - onValid = _this$props.onValid, - onValidSubmit = _this$props.onValidSubmit, - preventExternalInvalidation = _this$props.preventExternalInvalidation, - resetValue = _this$props.resetValue, - setValidations = _this$props.setValidations, - setValue = _this$props.setValue, - showError = _this$props.showError, - showRequired = _this$props.showRequired, - validationErrors = _this$props.validationErrors, - nonFormsyProps = _objectWithoutProperties(_this$props, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalidSubmit", "onInvalid", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); + var _this$props3 = _this.props, + getErrorMessage = _this$props3.getErrorMessage, + getErrorMessages = _this$props3.getErrorMessages, + getValue = _this$props3.getValue, + hasValue = _this$props3.hasValue, + isFormDisabled = _this$props3.isFormDisabled, + isFormSubmitted = _this$props3.isFormSubmitted, + isPristine = _this$props3.isPristine, + isRequired = _this$props3.isRequired, + isValid = _this$props3.isValid, + isValidValue = _this$props3.isValidValue, + mapping = _this$props3.mapping, + onChange = _this$props3.onChange, + onInvalid = _this$props3.onInvalid, + onInvalidSubmit = _this$props3.onInvalidSubmit, + onReset = _this$props3.onReset, + onSubmit = _this$props3.onSubmit, + onValid = _this$props3.onValid, + onValidSubmit = _this$props3.onValidSubmit, + preventExternalInvalidation = _this$props3.preventExternalInvalidation, + resetValue = _this$props3.resetValue, + setValidations = _this$props3.setValidations, + setValue = _this$props3.setValue, + showError = _this$props3.showError, + showRequired = _this$props3.showRequired, + validationErrors = _this$props3.validationErrors, + nonFormsyProps = _objectWithoutProperties(_this$props3, ["getErrorMessage", "getErrorMessages", "getValue", "hasValue", "isFormDisabled", "isFormSubmitted", "isPristine", "isRequired", "isValid", "isValidValue", "mapping", "onChange", "onInvalid", "onInvalidSubmit", "onReset", "onSubmit", "onValid", "onValidSubmit", "preventExternalInvalidation", "resetValue", "setValidations", "setValue", "showError", "showRequired", "validationErrors"]); return React.createElement('form', _objectSpread({ onReset: _this.resetInternal, onSubmit: _this.submit }, nonFormsyProps, { disabled: false - }), _this.props.children); + }), // eslint-disable-next-line react/destructuring-assignment + _this.props.children); }; _this.state = { - isValid: true, + canChange: false, isSubmitting: false, - canChange: false + isValid: true }; _this.inputs = []; _this.emptyArray = []; @@ -2219,7 +2267,6 @@ Formsy.displayName = 'Formsy'; Formsy.defaultProps = { - children: null, disabled: false, getErrorMessage: function getErrorMessage() {}, getErrorMessages: function getErrorMessages() {}, @@ -2249,7 +2296,6 @@ validationErrors: null }; Formsy.propTypes = { - children: propTypes.node, disabled: propTypes.bool, getErrorMessage: propTypes.func, getErrorMessages: propTypes.func, diff --git a/dist/formsy-react.umd.js.map b/dist/formsy-react.umd.js.map index 4a0fd169..1af8b6ae 100644 --- a/dist/formsy-react.umd.js.map +++ b/dist/formsy-react.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"formsy-react.umd.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","export default {\n arraysDiffer(a, b) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a, b) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a, b) {\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n if (typeof a === 'function') {\n return a.toString() === b.toString();\n }\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n if (typeof a === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection, fn) {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value, currentValues, validations, validationRules) {\n const results = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\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 const 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 if (typeof validations[validationMethod] !== 'function') {\n const validation = validationRules[validationMethod](currentValues, value, validations[validationMethod]);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { IValidationFunction, IValue, IValues } from './interfaces';\n\nconst isExisty = (value: IValue) => value !== null && value !== undefined;\nconst isEmpty = (value: IValue) => value === '';\n\nconst validations: { [key: string]: IValidationFunction } = {\n isDefaultRequiredValue(_values: IValues, value: IValue) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: IValues, value: IValue) {\n return isExisty(value);\n },\n matchRegexp(_values: IValues, value: IValue, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: IValues, value: IValue) {\n return value === undefined;\n },\n isEmptyString(_values: IValues, value: IValue) {\n return isEmpty(value);\n },\n isEmail(values: IValues, value: IValue) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: IValues, value: IValue) {\n return value === true;\n },\n isFalse(_values: IValues, value: IValue) {\n return value === false;\n },\n isNumeric(values: IValues, value: IValue) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: IValues, value: IValue) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: IValues, value: IValue, eql: IValue) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: IValues, value: IValue, field: string) {\n return value === values[field];\n },\n maxLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: IValues, value: IValue, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport utils from './utils';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\ninterface IProps {\n innerRef?: (ref: any) => void;\n name: string;\n required?: string | object | boolean;\n validations?: string | object;\n value?: any;\n}\n\ninterface IState {\n externalError: null | any;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component) {\n return component.displayName || component.name || (typeof component === 'string' ? component : 'Component');\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n private validations: any;\n\n private requiredValidations: any;\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n isRequired: false,\n isValid: true,\n isPristine: true,\n pristineValue: props.value,\n validationError: [],\n externalError: null,\n formSubmitted: false,\n };\n }\n\n componentWillMount() {\n const configure = () => {\n this.setValidations(this.props.validations, this.props.required);\n\n // Pass a function instead?\n this.context.formsy.attachToForm(this);\n };\n\n if (!this.props.name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n componentDidUpdate(prevProps) {\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 (\n !utils.isSame(this.props.validations, prevProps.validations) ||\n !utils.isSame(this.props.required, prevProps.required)\n ) {\n this.context.formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n componentWillUnmount() {\n this.context.formsy.detachFromForm(this);\n }\n\n getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n getErrorMessages = () => {\n if (!this.isValid() || this.showRequired()) {\n return this.state.externalError || this.state.validationError || [];\n }\n return [];\n };\n\n getValue = () => this.state.value;\n\n setValidations = (validations, required) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n setValue = (value, validate = true) => {\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n }\n };\n\n hasValue = () => this.state.value !== '';\n\n isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n isFormSubmitted = () => this.state.formSubmitted;\n\n isPristine = () => this.state.isPristine;\n\n isRequired = () => !!this.props.required;\n\n isValid = () => this.state.isValid;\n\n isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n resetValue = () => {\n this.setState(\n {\n value: this.state.pristineValue,\n isPristine: true,\n },\n () => {\n this.context.formsy.validate(this);\n },\n );\n };\n\n showError = () => !this.showRequired() && !this.isValid();\n\n showRequired = () => this.state.isRequired;\n\n render() {\n const { innerRef } = this.props;\n const propsForElement: any = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement);\n }\n\n public static displayName: any = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes: any = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\n\nclass Formsy extends React.Component {\n private inputs: any;\n\n private emptyArray: any[];\n\n private prevInputNames: any;\n\n constructor(props) {\n super(props);\n this.state = {\n isValid: true,\n isSubmitting: false,\n canChange: false,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n validate: this.validate,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n },\n });\n\n componentDidMount = () => {\n this.validateForm();\n };\n\n componentWillUpdate = () => {\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 = () => {\n if (\n this.props.validationErrors &&\n typeof this.props.validationErrors === 'object' &&\n Object.keys(this.props.validationErrors).length > 0\n ) {\n this.setInputValidationErrors(this.props.validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n setFormPristine = 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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n setInputValidationErrors = errors => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!this.props.preventExternalInvalidation && this.state.isValid) {\n this.setFormValidState(false);\n }\n };\n\n setFormValidState = allIsValid => {\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n this.props.onValid();\n } else {\n this.props.onInvalid();\n }\n };\n\n isFormDisabled = () => this.props.disabled;\n\n mapModel = model => {\n if (this.props.mapping) {\n return this.props.mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift();\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n reset = (data?: any) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n resetInternal = event => {\n event.preventDefault();\n this.reset();\n if (this.props.onReset) {\n this.props.onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n resetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n runValidation = (component, value = component.state.value) => {\n const currentValues = this.getCurrentValues();\n const { validationError, validationErrors } = component.props;\n\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid =\n !validationResults.failed.length &&\n !(this.props.validationErrors && this.props.validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.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'\n ? [this.props.validationErrors[component.props.name]]\n : this.props.validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = validationErrors[requiredResults.success[0]] || validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed => (validationErrors[failed] ? validationErrors[failed] : validationError))\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n attachToForm = component => {\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 = component => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n submit = event => {\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (this.state.isValid) {\n this.props.onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n this.props.onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 = (errors, invalidate) => {\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: this.props.preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && this.state.isValid) {\n this.setFormValidState(false);\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 = component => {\n // Trigger onChange\n if (this.state.canChange) {\n this.props.onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: null,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n render = () => {\n const {\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n // onError,\n onInvalidSubmit,\n onInvalid,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n // reset,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n this.props.children,\n );\n };\n\n public static displayName = 'Formsy';\n\n public static defaultProps = {\n children: null,\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n}\n\nconst addValidationRule = (name, func) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","isValid","showRequired","state","externalError","validationError","getValue","setValidations","setValue","validate","setState","isPristine","context","formsy","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","preventDefault","onReset","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","updateInputsWithError","onValidSubmit","onInvalidSubmit","invalidate","input","stringify","canChange","onChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","node","childContextTypes","addValidationRule"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"formsy-react.umd.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/form-data-to-object/index.js","../src/utils.ts","../src/validationRules.ts","../src/Wrapper.ts","../src/index.ts"],"sourcesContent":["/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","/** @license React v16.8.6\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\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 lowPriorityWarning = function () {};\n\n{\n var printWarning = function (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.warn(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 lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\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\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\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 (has(typeSpecs, 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 if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\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 printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\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\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\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 elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. 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 );\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(emptyFunctionThatReturnsNull);\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 createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\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 if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\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, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(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 (has(propValue, 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' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\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 createStrictShapeTypeChecker(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 // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\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\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 // falsy value can't be a Symbol\n if (!propValue) {\n return false;\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.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\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 var err = new Error(\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 err.name = 'Invariant Violation';\n throw err;\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 elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\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')(ReactIs.isElement, 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","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}","import { Validations, Value, Values } from './interfaces';\n\nexport default {\n arraysDiffer(a: unknown[], b: unknown[]) {\n let isDifferent = false;\n if (a.length !== b.length) {\n isDifferent = true;\n } else {\n a.forEach((item, index) => {\n if (!this.isSame(item, b[index])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n objectsDiffer(a: object, b: object) {\n let isDifferent = false;\n if (Object.keys(a).length !== Object.keys(b).length) {\n isDifferent = true;\n } else {\n Object.keys(a).forEach(key => {\n if (!this.isSame(a[key], b[key])) {\n isDifferent = true;\n }\n }, this);\n }\n return isDifferent;\n },\n\n isSame(a: unknown, b: unknown) {\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n return !this.arraysDiffer(a, b);\n }\n\n if (typeof a === 'function' && typeof b === 'function') {\n return a.toString() === b.toString();\n }\n\n if (a !== null && b !== null && a instanceof Date && b instanceof Date) {\n return a.toString() === b.toString();\n }\n\n if (typeof a === 'object' && typeof b === 'object' && a !== null && b !== null) {\n return !this.objectsDiffer(a, b);\n }\n\n return a === b;\n },\n\n find(collection: T[], fn: (item: T) => boolean): T {\n for (let i = 0, l = collection.length; i < l; i += 1) {\n const item = collection[i];\n if (fn(item)) {\n return item;\n }\n }\n return null;\n },\n\n runRules(value: Value, currentValues: Values, validations: Validations, validationRules: Validations) {\n const results: {\n errors: string[];\n failed: string[];\n success: string[];\n } = {\n errors: [],\n failed: [],\n success: [],\n };\n\n if (Object.keys(validations).length) {\n Object.keys(validations).forEach(validationMethod => {\n const validationsVal = validations[validationMethod];\n const validationRulesVal = validationRules[validationMethod];\n\n if (validationRulesVal && typeof validationsVal === 'function') {\n throw new Error(`Formsy does not allow you to override default validations: ${validationMethod}`);\n }\n\n if (!validationRulesVal && typeof validationsVal !== 'function') {\n throw new Error(`Formsy does not have the validation rule: ${validationMethod}`);\n }\n\n if (typeof validationsVal === 'function') {\n const validation = validationsVal(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 if (typeof validationsVal !== 'function' && typeof validationRulesVal === 'function') {\n const validation = validationRulesVal(currentValues, value, validationsVal);\n\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 results.success.push(validationMethod);\n });\n }\n\n return results;\n },\n};\n","import { ValidationFunction, Value, Values } from './interfaces';\n\nconst isExisty = (value: Value) => value !== null && value !== undefined;\nconst isEmpty = (value: Value) => value === '';\n\nconst validations: { [key: string]: ValidationFunction } = {\n isDefaultRequiredValue(_values: Values, value: Value) {\n return value === undefined || value === null || value === '';\n },\n isExisty(_values: Values, value: Value) {\n return isExisty(value);\n },\n matchRegexp(_values: Values, value: Value, regexp: RegExp) {\n return !isExisty(value) || isEmpty(value) || regexp.test(value);\n },\n isUndefined(_values: Values, value: Value) {\n return value === undefined;\n },\n isEmptyString(_values: Values, value: Value) {\n return isEmpty(value);\n },\n isEmail(values: Values, value: Value) {\n // Regex from http://emailregex.com/\n return validations.matchRegexp(\n values,\n value,\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i,\n );\n },\n isUrl(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:\\w+:)?\\/\\/([^\\s.]+\\.\\S{2}|localhost[:?\\d]*)\\S*$/i);\n },\n isTrue(_values: Values, value: Value) {\n return value === true;\n },\n isFalse(_values: Values, value: Value) {\n return value === false;\n },\n isNumeric(values: Values, value: Value) {\n if (typeof value === 'number') {\n return true;\n }\n return validations.matchRegexp(values, value, /^[-+]?(?:\\d*[.])?\\d+$/);\n },\n isAlpha(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z]+$/i);\n },\n isAlphanumeric(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[0-9A-Z]+$/i);\n },\n isInt(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:0|[1-9]\\d*))$/);\n },\n isFloat(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^(?:[-+]?(?:\\d+))?(?:\\.\\d*)?(?:[eE][+-]?(?:\\d+))?$/);\n },\n isWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s]+$/i);\n },\n isSpecialWords(values: Values, value: Value) {\n return validations.matchRegexp(values, value, /^[A-Z\\s\\u00C0-\\u017F]+$/i);\n },\n isLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length === length;\n },\n equals(_values: Values, value: Value, eql: Value) {\n return !isExisty(value) || isEmpty(value) || value === eql;\n },\n equalsField(values: Values, value: Value, field: string) {\n return value === values[field];\n },\n maxLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || value.length <= length;\n },\n minLength(_values: Values, value: Value, length: number) {\n return !isExisty(value) || isEmpty(value) || value.length >= length;\n },\n};\n\nexport default validations;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport utils from './utils';\nimport { Validations, WrappedComponentClass, RequiredValidation, Value } from './interfaces';\n\n/* eslint-disable react/default-props-match-prop-types */\n\nconst convertValidationsToObject = (validations: string | Validations): Validations => {\n if (typeof validations === 'string') {\n return validations.split(/,(?![^{[]*[}\\]])/g).reduce((validationsAccumulator, validation) => {\n let args = validation.split(':');\n const validateMethod = args.shift();\n\n if (typeof validateMethod !== 'string') {\n throw new Error('Formsy encountered unexpected problem parsing validation string');\n }\n\n args = args.map(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(\n 'Formsy does not support multiple args on string validations. Use object format of validations instead.',\n );\n }\n\n // Avoid parameter reassignment\n const validationsAccumulatorCopy: Validations = Object.assign({}, validationsAccumulator);\n validationsAccumulatorCopy[validateMethod] = args.length ? args[0] : true;\n return validationsAccumulatorCopy;\n }, {});\n }\n\n return validations || {};\n};\n\nconst propTypes = {\n innerRef: PropTypes.func,\n name: PropTypes.string.isRequired,\n required: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.string]),\n validations: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n value: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n};\n\nexport interface WrapperProps {\n innerRef?: (ref: any) => void;\n name: string;\n required: RequiredValidation;\n validationError: any;\n validationErrors: any;\n validations: Validations | string;\n value: any;\n}\n\nexport interface WrapperState {\n [key: string]: unknown;\n externalError: null;\n formSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n pristineValue: any;\n validationError: any[];\n value: any;\n}\n\nexport interface PassDownProps {\n errorMessage: any;\n errorMessages: any;\n hasValue: boolean;\n isFormDisabled: boolean;\n isFormSubmitted: boolean;\n isPristine: boolean;\n isRequired: boolean;\n isValid: boolean;\n isValidValue: (value: Value) => boolean;\n name: string;\n ref?: any;\n resetValue: any;\n setValidations: any;\n setValue: (value: Value) => void;\n showError: boolean;\n showRequired: boolean;\n validationError: any;\n validationErrors: any;\n value: Value;\n}\n\nexport { propTypes };\n\nfunction getDisplayName(component: WrappedComponentClass) {\n return (\n (component as { displayName?: string }).displayName ||\n component.name ||\n (typeof component === 'string' ? component : 'Component')\n );\n}\n\nexport default function(\n WrappedComponent: React.ComponentClass,\n): React.ComponentClass {\n return class extends React.Component {\n public validations?: Validations;\n\n public requiredValidations?: Validations;\n\n public static displayName = `Formsy(${getDisplayName(WrappedComponent)})`;\n\n public static contextTypes = {\n formsy: PropTypes.object, // What about required?\n };\n\n public static defaultProps: any = {\n innerRef: null,\n required: false,\n validationError: '',\n validationErrors: {},\n validations: null,\n value: (WrappedComponent as any).defaultValue,\n };\n\n public static propTypes: any = propTypes;\n\n public constructor(props) {\n super(props);\n this.state = {\n externalError: null,\n formSubmitted: false,\n isPristine: true,\n isRequired: false,\n isValid: true,\n pristineValue: props.value,\n validationError: [],\n value: props.value,\n };\n }\n\n public componentWillMount() {\n const { validations, required, name } = this.props;\n const { formsy } = this.context;\n\n const configure = () => {\n this.setValidations(validations, required);\n\n // Pass a function instead?\n formsy.attachToForm(this);\n };\n\n if (!name) {\n throw new Error('Form Input requires a name property when used');\n }\n\n configure();\n }\n\n // We have to make sure the validate method is kept when new props are added\n public componentWillReceiveProps(nextProps) {\n this.setValidations(nextProps.validations, nextProps.required);\n }\n\n public shouldComponentUpdate(nextProps, nextState) {\n // eslint-disable-next-line react/destructuring-assignment\n const isPropsChanged = Object.keys(this.props).some(k => this.props[k] !== nextProps[k]);\n\n // eslint-disable-next-line react/destructuring-assignment\n const isStateChanged = Object.keys(this.state).some(k => this.state[k] !== nextState[k]);\n\n return isPropsChanged || isStateChanged;\n }\n\n public componentDidUpdate(prevProps) {\n const { value, validations, required } = this.props;\n const { formsy } = this.context;\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(value, prevProps.value)) {\n this.setValue(value);\n }\n\n // If validations or required is changed, run a new validation\n if (!utils.isSame(validations, prevProps.validations) || !utils.isSame(required, prevProps.required)) {\n formsy.validate(this);\n }\n }\n\n // Detach it when component unmounts\n public componentWillUnmount() {\n const { formsy } = this.context;\n formsy.detachFromForm(this);\n }\n\n public getErrorMessage = () => {\n const messages = this.getErrorMessages();\n return messages.length ? messages[0] : null;\n };\n\n public getErrorMessages = () => {\n const { externalError, validationError } = this.state;\n\n if (!this.isValid() || this.showRequired()) {\n return externalError || validationError || [];\n }\n return [];\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public getValue = () => this.state.value;\n\n public setValidations = (validations: string | Validations, required: RequiredValidation) => {\n // Add validations to the store itself as the props object can not be modified\n this.validations = convertValidationsToObject(validations) || {};\n this.requiredValidations =\n required === true ? { isDefaultRequiredValue: true } : convertValidationsToObject(required);\n };\n\n // By default, we validate after the value has been set.\n // A user can override this and pass a second parameter of `false` to skip validation.\n public setValue = (value, validate = true) => {\n const { formsy } = this.context;\n\n if (!validate) {\n this.setState({\n value,\n });\n } else {\n this.setState(\n {\n value,\n isPristine: false,\n },\n () => {\n formsy.validate(this);\n },\n );\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public hasValue = () => this.state.value !== '';\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.context.formsy.isFormDisabled();\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormSubmitted = () => this.state.formSubmitted;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isPristine = () => this.state.isPristine;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isRequired = () => !!this.props.required;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValid = () => this.state.isValid;\n\n // eslint-disable-next-line react/destructuring-assignment\n public isValidValue = value => this.context.formsy.isValidValue.call(null, this, value);\n\n public resetValue = () => {\n const { pristineValue } = this.state;\n const { formsy } = this.context;\n\n this.setState(\n {\n value: pristineValue,\n isPristine: true,\n },\n () => {\n formsy.validate(this);\n },\n );\n };\n\n public showError = () => !this.showRequired() && !this.isValid();\n\n // eslint-disable-next-line react/destructuring-assignment\n public showRequired = () => this.state.isRequired;\n\n public render() {\n const { innerRef } = this.props;\n const propsForElement: PassDownProps = {\n ...this.props,\n errorMessage: this.getErrorMessage(),\n errorMessages: this.getErrorMessages(),\n hasValue: this.hasValue(),\n isFormDisabled: this.isFormDisabled(),\n isFormSubmitted: this.isFormSubmitted(),\n isPristine: this.isPristine(),\n isRequired: this.isRequired(),\n isValid: this.isValid(),\n isValidValue: this.isValidValue,\n resetValue: this.resetValue,\n setValidations: this.setValidations,\n setValue: this.setValue,\n showError: this.showError(),\n showRequired: this.showRequired(),\n value: this.getValue(),\n };\n\n if (innerRef) {\n propsForElement.ref = innerRef;\n }\n\n return React.createElement(WrappedComponent, propsForElement as any);\n }\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formDataToObject from 'form-data-to-object';\n\nimport utils from './utils';\nimport validationRules from './validationRules';\nimport Wrapper, { propTypes } from './Wrapper';\n\nimport { IData, IModel, InputComponent, IResetModel, IUpdateInputsWithError, ValidationFunction } from './interfaces';\n\n/* eslint-disable react/no-unused-state, react/default-props-match-prop-types */\nexport interface FormsyProps {\n disabled: boolean;\n getErrorMessage: any;\n getErrorMessages: any;\n getValue: any;\n hasValue: any;\n isFormDisabled: any;\n isFormSubmitted: any;\n isPristine: any;\n isRequired: any;\n isValid: any;\n isValidValue: any;\n mapping: null | ((model: IModel) => IModel);\n onChange: (model: IModel, isChanged: boolean) => void;\n onError: any;\n onInvalid: () => void;\n onInvalidSubmit: any;\n onReset?: () => void;\n onSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n onValid: () => void;\n onValidSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void;\n preventExternalInvalidation?: boolean;\n resetValue: any;\n setValidations: any;\n setValue: any;\n showError: any;\n showRequired: any;\n validationErrors?: null | object;\n}\n\nexport interface FormsyState {\n canChange: boolean;\n formSubmitted?: boolean;\n isPristine?: boolean;\n isSubmitting: boolean;\n isValid: boolean;\n}\n\nclass Formsy extends React.Component {\n public inputs: any[];\n\n public emptyArray: any[];\n\n public prevInputNames: any[] | null = null;\n\n public static displayName = 'Formsy';\n\n public static defaultProps: Partial = {\n disabled: false,\n getErrorMessage: () => {},\n getErrorMessages: () => {},\n getValue: () => {},\n hasValue: () => {},\n isFormDisabled: () => {},\n isFormSubmitted: () => {},\n isPristine: () => {},\n isRequired: () => {},\n isValid: () => {},\n isValidValue: () => {},\n mapping: null,\n onChange: () => {},\n onError: () => {},\n onInvalid: () => {},\n onInvalidSubmit: () => {},\n onReset: () => {},\n onSubmit: () => {},\n onValid: () => {},\n onValidSubmit: () => {},\n preventExternalInvalidation: false,\n resetValue: () => {},\n setValidations: () => {},\n setValue: () => {},\n showError: () => {},\n showRequired: () => {},\n validationErrors: null,\n };\n\n public static propTypes = {\n disabled: PropTypes.bool,\n getErrorMessage: PropTypes.func,\n getErrorMessages: PropTypes.func,\n getValue: PropTypes.func,\n hasValue: PropTypes.func,\n isFormDisabled: PropTypes.func,\n isFormSubmitted: PropTypes.func,\n isPristine: PropTypes.func,\n isRequired: PropTypes.func,\n isValid: PropTypes.func,\n isValidValue: PropTypes.func,\n mapping: PropTypes.func,\n onChange: PropTypes.func,\n onInvalid: PropTypes.func,\n onInvalidSubmit: PropTypes.func,\n onReset: PropTypes.func,\n onSubmit: PropTypes.func,\n onValid: PropTypes.func,\n onValidSubmit: PropTypes.func,\n preventExternalInvalidation: PropTypes.bool,\n resetValue: PropTypes.func,\n setValidations: PropTypes.func,\n setValue: PropTypes.func,\n showError: PropTypes.func,\n showRequired: PropTypes.func,\n validationErrors: PropTypes.object, // eslint-disable-line\n };\n\n public static childContextTypes = {\n formsy: PropTypes.object,\n };\n\n public constructor(props: FormsyProps) {\n super(props);\n this.state = {\n canChange: false,\n isSubmitting: false,\n isValid: true,\n };\n this.inputs = [];\n this.emptyArray = [];\n }\n\n public getChildContext = () => ({\n formsy: {\n attachToForm: this.attachToForm,\n detachFromForm: this.detachFromForm,\n isFormDisabled: this.isFormDisabled,\n isValidValue: (component, value) => this.runValidation(component, value).isValid,\n validate: this.validate,\n },\n });\n\n public componentDidMount = () => {\n this.validateForm();\n };\n\n public componentWillUpdate = () => {\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 public componentDidUpdate = () => {\n const { validationErrors } = this.props;\n\n if (validationErrors && typeof validationErrors === 'object' && Object.keys(validationErrors).length > 0) {\n this.setInputValidationErrors(validationErrors);\n }\n\n const newInputNames = this.inputs.map(component => component.props.name);\n if (this.prevInputNames && utils.arraysDiffer(this.prevInputNames, newInputNames)) {\n this.validateForm();\n }\n };\n\n public getCurrentValues = () =>\n this.inputs.reduce((data, component) => {\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[component.props.name] = component.state.value;\n return dataCopy;\n }, {});\n\n public getModel = () => {\n const currentValues = this.getCurrentValues();\n return this.mapModel(currentValues);\n };\n\n public getPristineValues = () =>\n this.inputs.reduce((data, component) => {\n const { name } = component.props;\n const dataCopy = typeof component.state.value === 'object' ? Object.assign({}, data) : data; // avoid param reassignment\n dataCopy[name] = component.props.value;\n return dataCopy;\n }, {});\n\n public setFormPristine = (isPristine: boolean) => {\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 => {\n component.setState({\n formSubmitted: !isPristine,\n isPristine,\n });\n });\n };\n\n public setInputValidationErrors = errors => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n this.inputs.forEach(component => {\n const { name } = component.props;\n const args = [\n {\n isValid: !(name in errors),\n validationError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (!preventExternalInvalidation && isValid) {\n this.setFormValidState(false);\n }\n };\n\n public setFormValidState = (allIsValid: boolean) => {\n const { onValid, onInvalid } = this.props;\n\n this.setState({\n isValid: allIsValid,\n });\n\n if (allIsValid) {\n onValid();\n } else {\n onInvalid();\n }\n };\n\n // eslint-disable-next-line react/destructuring-assignment\n public isFormDisabled = () => this.props.disabled;\n\n public mapModel = (model: IModel) => {\n const { mapping } = this.props;\n\n if (mapping) {\n return mapping(model);\n }\n\n return formDataToObject.toObj(\n Object.keys(model).reduce((mappedModel, key) => {\n const keyArray = key.split('.');\n let base: IModel = mappedModel;\n while (keyArray.length) {\n const currentKey = keyArray.shift() as string;\n base[currentKey] = keyArray.length ? base[currentKey] || {} : model[key];\n base = base[currentKey];\n }\n return mappedModel;\n }, {}),\n );\n };\n\n public reset = (data?: IData) => {\n this.setFormPristine(true);\n this.resetModel(data);\n };\n\n public resetInternal = event => {\n const { onReset } = this.props;\n\n event.preventDefault();\n this.reset();\n if (onReset) {\n onReset();\n }\n };\n\n // Reset each key in the model to the original / initial / specified value\n public resetModel: IResetModel = data => {\n this.inputs.forEach(component => {\n const { name } = component.props;\n if (data && Object.prototype.hasOwnProperty.call(data, name)) {\n component.setValue(data[name]);\n } else {\n component.resetValue();\n }\n });\n this.validateForm();\n };\n\n // Checks validation on current value or a passed value\n public runValidation = (component: InputComponent, value = component.state.value) => {\n const { validationErrors } = this.props;\n const currentValues = this.getCurrentValues();\n const validationResults = utils.runRules(value, currentValues, component.validations, validationRules);\n const requiredResults = utils.runRules(value, currentValues, component.requiredValidations, validationRules);\n const isRequired = Object.keys(component.requiredValidations).length ? !!requiredResults.success.length : false;\n const isValid = !validationResults.failed.length && !(validationErrors && validationErrors[component.props.name]);\n\n return {\n isRequired,\n isValid: isRequired ? false : isValid,\n error: (() => {\n if (isValid && !isRequired) {\n return this.emptyArray;\n }\n\n if (validationResults.errors.length) {\n return validationResults.errors;\n }\n\n if (validationErrors && validationErrors[component.props.name]) {\n return typeof validationErrors[component.props.name] === 'string'\n ? [validationErrors[component.props.name]]\n : validationErrors[component.props.name];\n }\n\n if (isRequired) {\n const error = component.props.validationErrors[requiredResults.success[0]] || component.props.validationError;\n return error ? [error] : null;\n }\n\n if (validationResults.failed.length) {\n return validationResults.failed\n .map(failed =>\n component.props.validationErrors[failed]\n ? component.props.validationErrors[failed]\n : component.props.validationError,\n )\n .filter((x, pos, arr) => arr.indexOf(x) === pos); // remove duplicates\n }\n\n return undefined;\n })(),\n };\n };\n\n // Method put on each input component to register\n // itself to the form\n public attachToForm = component => {\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 public detachFromForm = (component: InputComponent) => {\n const componentPos = this.inputs.indexOf(component);\n\n if (componentPos !== -1) {\n this.inputs = this.inputs.slice(0, componentPos).concat(this.inputs.slice(componentPos + 1));\n }\n\n this.validateForm();\n };\n\n // Checks if the values have changed from their initial value\n public isChanged = () => !utils.isSame(this.getPristineValues(), this.getCurrentValues());\n\n // Update model, submit to url prop and send the model\n public submit = event => {\n const { onSubmit, onValidSubmit, onInvalidSubmit } = this.props;\n const { isValid } = this.state;\n\n if (event && event.preventDefault) {\n event.preventDefault();\n }\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 const model = this.getModel();\n onSubmit(model, this.resetModel, this.updateInputsWithError);\n if (isValid) {\n onValidSubmit(model, this.resetModel, this.updateInputsWithError);\n } else {\n onInvalidSubmit(model, this.resetModel, this.updateInputsWithError);\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 public updateInputsWithError: IUpdateInputsWithError = (errors, invalidate) => {\n const { preventExternalInvalidation } = this.props;\n const { isValid } = this.state;\n\n Object.keys(errors).forEach(name => {\n const component = utils.find(this.inputs, input => input.props.name === name);\n if (!component) {\n throw new Error(\n `You are trying to update an input that does not exist. Verify errors object with input names. ${JSON.stringify(\n errors,\n )}`,\n );\n }\n const args = [\n {\n isValid: preventExternalInvalidation,\n externalError: typeof errors[name] === 'string' ? [errors[name]] : errors[name],\n },\n ];\n component.setState(...args);\n });\n if (invalidate && isValid) {\n this.setFormValidState(false);\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 public validate = (component: InputComponent) => {\n const { onChange } = this.props;\n const { canChange } = this.state;\n\n // Trigger onChange\n if (canChange) {\n onChange(this.getModel(), this.isChanged());\n }\n\n const 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 {\n externalError: null,\n isRequired: validation.isRequired,\n isValid: validation.isValid,\n validationError: validation.error,\n },\n this.validateForm,\n );\n };\n\n // Validate the form by going through all child input components\n // and check their state\n public validateForm = () => {\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 const onValidationComplete = () => {\n const allIsValid = this.inputs.every(component => component.state.isValid);\n\n this.setFormValidState(allIsValid);\n\n // Tell the form that it can start to trigger change events\n this.setState({\n canChange: true,\n });\n };\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 const validation = this.runValidation(component);\n if (validation.isValid && component.state.externalError) {\n validation.isValid = false;\n }\n component.setState(\n {\n isValid: validation.isValid,\n isRequired: validation.isRequired,\n validationError: validation.error,\n externalError: !validation.isValid && component.state.externalError ? component.state.externalError : null,\n },\n index === this.inputs.length - 1 ? onValidationComplete : null,\n );\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) {\n this.setState({\n canChange: true,\n });\n }\n };\n\n public render = () => {\n const {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n getErrorMessage,\n getErrorMessages,\n getValue,\n hasValue,\n isFormDisabled,\n isFormSubmitted,\n isPristine,\n isRequired,\n isValid,\n isValidValue,\n mapping,\n onChange,\n onInvalid,\n onInvalidSubmit,\n onReset,\n onSubmit,\n onValid,\n onValidSubmit,\n preventExternalInvalidation,\n resetValue,\n setValidations,\n setValue,\n showError,\n showRequired,\n validationErrors,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...nonFormsyProps\n } = this.props;\n\n return React.createElement(\n 'form',\n {\n onReset: this.resetInternal,\n onSubmit: this.submit,\n ...nonFormsyProps,\n disabled: false,\n },\n // eslint-disable-next-line react/destructuring-assignment\n this.props.children,\n );\n };\n}\n\nconst addValidationRule = (name: string, func: ValidationFunction) => {\n validationRules[name] = func;\n};\n\nexport { addValidationRule, propTypes, validationRules, Wrapper as withFormsy };\n\nexport default Formsy;\n"],"names":["require$$0","require$$1","ReactPropTypesSecret","has","printWarning","ReactIs","assign","checkPropTypes","require$$2","arraysDiffer","a","b","isDifferent","length","forEach","item","index","isSame","objectsDiffer","Object","keys","key","Array","isArray","toString","Date","find","collection","fn","i","l","runRules","value","currentValues","validations","validationRules","results","errors","failed","success","validationMethod","validationsVal","validationRulesVal","Error","validation","push","isExisty","undefined","isEmpty","isDefaultRequiredValue","_values","matchRegexp","regexp","test","isUndefined","isEmptyString","isEmail","values","isUrl","isTrue","isFalse","isNumeric","isAlpha","isAlphanumeric","isInt","isFloat","isWords","isSpecialWords","isLength","equals","eql","equalsField","field","maxLength","minLength","convertValidationsToObject","split","reduce","validationsAccumulator","args","validateMethod","shift","map","arg","JSON","parse","e","validationsAccumulatorCopy","propTypes","innerRef","PropTypes","func","name","string","isRequired","required","oneOfType","bool","object","any","getDisplayName","component","displayName","WrappedComponent","props","requiredValidations","getErrorMessage","messages","getErrorMessages","state","externalError","validationError","isValid","showRequired","getValue","setValidations","setValue","validate","formsy","context","setState","isPristine","hasValue","isFormDisabled","isFormSubmitted","formSubmitted","isValidValue","call","resetValue","pristineValue","showError","configure","attachToForm","nextProps","nextState","isPropsChanged","some","k","isStateChanged","prevProps","utils","detachFromForm","propsForElement","errorMessage","errorMessages","ref","React","createElement","Component","contextTypes","defaultProps","validationErrors","defaultValue","Formsy","inputs","emptyArray","prevInputNames","getChildContext","runValidation","componentDidMount","validateForm","componentWillUpdate","componentDidUpdate","setInputValidationErrors","newInputNames","getCurrentValues","data","dataCopy","getModel","mapModel","getPristineValues","setFormPristine","preventExternalInvalidation","setFormValidState","allIsValid","onValid","onInvalid","disabled","model","mapping","formDataToObject","toObj","mappedModel","keyArray","base","currentKey","reset","resetModel","resetInternal","event","onReset","preventDefault","prototype","hasOwnProperty","validationResults","requiredResults","error","filter","x","pos","arr","indexOf","componentPos","slice","concat","isChanged","submit","onSubmit","onValidSubmit","onInvalidSubmit","updateInputsWithError","invalidate","input","stringify","onChange","canChange","onValidationComplete","every","render","nonFormsyProps","children","isSubmitting","onError","childContextTypes","addValidationRule"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index d9f391d5..3aaf3cf5 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -2,85 +2,50 @@ import React from 'react'; import PropTypes from 'prop-types'; import validationRules from './validationRules'; import Wrapper, { propTypes } from './Wrapper'; -declare class Formsy extends React.Component { - private inputs; - private emptyArray; - private prevInputNames; - constructor(props: any); - getChildContext: () => { - formsy: { - attachToForm: (component: any) => void; - detachFromForm: (component: any) => void; - validate: (component: any) => void; - isFormDisabled: () => any; - isValidValue: (component: any, value: any) => boolean; - }; - }; - componentDidMount: () => void; - componentWillUpdate: () => void; - componentDidUpdate: () => void; - getCurrentValues: () => any; - getModel: () => any; - getPristineValues: () => any; - setFormPristine: (isPristine: any) => void; - setInputValidationErrors: (errors: any) => void; - setFormValidState: (allIsValid: any) => void; - isFormDisabled: () => any; - mapModel: (model: any) => any; - reset: (data?: any) => void; - resetInternal: (event: any) => void; - resetModel: (data: any) => void; - runValidation: (component: any, value?: any) => { - isRequired: boolean; - isValid: boolean; - error: any; - }; - attachToForm: (component: any) => void; - detachFromForm: (component: any) => void; - isChanged: () => boolean; - submit: (event: any) => void; - updateInputsWithError: (errors: any, invalidate: any) => void; - validate: (component: any) => void; - validateForm: () => void; - render: () => React.DetailedReactHTMLElement<{ - disabled: boolean; - children?: React.ReactNode; - onReset: (event: any) => void; - onSubmit: (event: any) => void; - }, HTMLElement>; +import { IModel, InputComponent, IResetModel, IUpdateInputsWithError, ValidationFunction } from './interfaces'; +export interface FormsyProps { + disabled: boolean; + getErrorMessage: any; + getErrorMessages: any; + getValue: any; + hasValue: any; + isFormDisabled: any; + isFormSubmitted: any; + isPristine: any; + isRequired: any; + isValid: any; + isValidValue: any; + mapping: null | ((model: IModel) => IModel); + onChange: (model: IModel, isChanged: boolean) => void; + onError: any; + onInvalid: () => void; + onInvalidSubmit: any; + onReset?: () => void; + onSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void; + onValid: () => void; + onValidSubmit?: (model: IModel, resetModel: IResetModel, updateInputsWithError: IUpdateInputsWithError) => void; + preventExternalInvalidation?: boolean; + resetValue: any; + setValidations: any; + setValue: any; + showError: any; + showRequired: any; + validationErrors?: null | object; +} +export interface FormsyState { + canChange: boolean; + formSubmitted?: boolean; + isPristine?: boolean; + isSubmitting: boolean; + isValid: boolean; +} +declare class Formsy extends React.Component { + inputs: any[]; + emptyArray: any[]; + prevInputNames: any[] | null; static displayName: string; - static defaultProps: { - children: any; - disabled: boolean; - getErrorMessage: () => void; - getErrorMessages: () => void; - getValue: () => void; - hasValue: () => void; - isFormDisabled: () => void; - isFormSubmitted: () => void; - isPristine: () => void; - isRequired: () => void; - isValid: () => void; - isValidValue: () => void; - mapping: any; - onChange: () => void; - onError: () => void; - onInvalid: () => void; - onInvalidSubmit: () => void; - onReset: () => void; - onSubmit: () => void; - onValid: () => void; - onValidSubmit: () => void; - preventExternalInvalidation: boolean; - resetValue: () => void; - setValidations: () => void; - setValue: () => void; - showError: () => void; - showRequired: () => void; - validationErrors: any; - }; + static defaultProps: Partial; static propTypes: { - children: PropTypes.Requireable; disabled: PropTypes.Requireable; getErrorMessage: PropTypes.Requireable<(...args: any[]) => any>; getErrorMessages: PropTypes.Requireable<(...args: any[]) => any>; @@ -111,7 +76,50 @@ declare class Formsy extends React.Component { static childContextTypes: { formsy: PropTypes.Requireable; }; + constructor(props: FormsyProps); + getChildContext: () => { + formsy: { + attachToForm: (component: any) => void; + detachFromForm: (component: InputComponent) => void; + isFormDisabled: () => boolean; + isValidValue: (component: any, value: any) => boolean; + validate: (component: InputComponent) => void; + }; + }; + componentDidMount: () => void; + componentWillUpdate: () => void; + componentDidUpdate: () => void; + getCurrentValues: () => any; + getModel: () => any; + getPristineValues: () => any; + setFormPristine: (isPristine: boolean) => void; + setInputValidationErrors: (errors: any) => void; + setFormValidState: (allIsValid: boolean) => void; + isFormDisabled: () => boolean; + mapModel: (model: any) => any; + reset: (data?: any) => void; + resetInternal: (event: any) => void; + resetModel: IResetModel; + runValidation: (component: InputComponent, value?: any) => { + isRequired: boolean; + isValid: boolean; + error: any; + }; + attachToForm: (component: any) => void; + detachFromForm: (component: InputComponent) => void; + isChanged: () => boolean; + submit: (event: any) => void; + updateInputsWithError: IUpdateInputsWithError; + validate: (component: InputComponent) => void; + validateForm: () => void; + render: () => React.DetailedReactHTMLElement<{ + disabled: boolean; + onError: any; + children?: React.ReactNode; + onReset: (event: any) => void; + onSubmit: (event: any) => void; + }, HTMLElement>; } -declare const addValidationRule: (name: any, func: any) => void; +declare const addValidationRule: (name: string, func: ValidationFunction) => void; export { addValidationRule, propTypes, validationRules, Wrapper as withFormsy }; export default Formsy; diff --git a/dist/interfaces.d.ts b/dist/interfaces.d.ts index 541be557..e1e2f406 100644 --- a/dist/interfaces.d.ts +++ b/dist/interfaces.d.ts @@ -1,5 +1,25 @@ -export declare type IValue = any; -export interface IValues { - [key: string]: IValue; +import React, { ComponentClass } from 'react'; +import { WrapperProps, WrapperState } from './Wrapper'; +export declare type Value = any; +export interface Values { + [key: string]: Value; +} +export declare type IModel = any; +export declare type IData = any; +export declare type IResetModel = (model?: IModel) => void; +export declare type IUpdateInputsWithError = (errors: any, invalidate: boolean) => void; +export declare type ValidationFunction = (values: Values, value: Value, extra?: any) => boolean; +export declare type Validation = string | true | ValidationFunction; +export interface Validations { + [key: string]: Validation; +} +export declare type RequiredValidation = string | true | Validations; +export interface ComponentWithStaticAttributes extends ComponentClass { + string?: any; + defaultValue?: any; +} +export declare type WrappedComponentClass = React.FC | ComponentWithStaticAttributes; +export interface InputComponent extends React.Component { + validations?: Validations; + requiredValidations?: Validations; } -export declare type IValidationFunction = (values: IValues, value: IValue, extra?: any) => boolean; diff --git a/dist/utils.d.ts b/dist/utils.d.ts index f2bd7dfd..e5311fae 100644 --- a/dist/utils.d.ts +++ b/dist/utils.d.ts @@ -1,12 +1,13 @@ +import { Validations, Values } from './interfaces'; declare const _default: { - arraysDiffer(a: any, b: any): boolean; - objectsDiffer(a: any, b: any): boolean; - isSame(a: any, b: any): boolean; - find(collection: any, fn: any): any; - runRules(value: any, currentValues: any, validations: any, validationRules: any): { - errors: any[]; - failed: any[]; - success: any[]; + arraysDiffer(a: unknown[], b: unknown[]): boolean; + objectsDiffer(a: object, b: object): boolean; + isSame(a: unknown, b: unknown): boolean; + find(collection: T[], fn: (item: T) => boolean): T; + runRules(value: any, currentValues: Values, validations: Validations, validationRules: Validations): { + errors: string[]; + failed: string[]; + success: string[]; }; }; export default _default; diff --git a/dist/validationRules.d.ts b/dist/validationRules.d.ts index fe8162bf..9963df4a 100644 --- a/dist/validationRules.d.ts +++ b/dist/validationRules.d.ts @@ -1,5 +1,5 @@ -import { IValidationFunction } from './interfaces'; +import { ValidationFunction } from './interfaces'; declare const validations: { - [key: string]: IValidationFunction; + [key: string]: ValidationFunction; }; export default validations; diff --git a/package.json b/package.json index 2638eb21..1ad7e81a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formsy-react", - "version": "2.0.0-beta.2", + "version": "2.0.0-beta.3", "description": "A form input builder and validator for React", "keywords": [ "form",