formik-fields
Version:
An extension to the great formik-library
3 lines (2 loc) • 5.18 kB
JavaScript
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react"),require("formik")):"function"==typeof define&&define.amd?define(["exports","react","formik"],r):r(e.FormikFields={},e.React,e.Formik)}(this,function(e,i,t){"use strict";function u(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)0<=r.indexOf(t=i[n])||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)0<=r.indexOf(t=i[n])||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function a(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function n(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,r,t){return r&&n(e.prototype,r),t&&n(e,t),e}function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return(o="function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?function(e){return r(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":r(e)})(e)}function l(e,r){return!r||"object"!==o(r)&&"function"!=typeof r?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):r}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,r){return(s=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function d(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),r&&s(e,r)}var p=function(e,r){return e===r};function m(n,t){var o;void 0===t&&(t=p);var i,u=[],a=!1,f=function(e,r){return t(e,u[r])};return function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return a&&o===this&&r.length===u.length&&r.every(f)||(i=n.apply(this,r),a=!0,o=this,u=r),i}}function y(e){return Object.keys(e.fields)}function h(r){var t={};return y(r).filter(function(e){return r.fields[e].validate}).forEach(function(e){return t[e]=m(r.fields[e].validate)}),t}function v(e){var r={};return y(e).forEach(function(e){return r[e]=(i=e,m(function(e,r,t,n,o){return{name:i,error:r,isTouched:t,value:e,handleChange:function(e){return n(i,e.target.value)},handleBlur:function(){return o(i,!0)},setValue:function(e,r){return n(i,e,r)},setIsTouched:function(e,r){return o(i,e,r)}}}));var i}),r}var b=function(e,r){for(var t in e)if(e[t]!==r[t])return!1;return!0},F=function(e){function r(){return a(this,r),l(this,c(r).apply(this,arguments))}return d(r,i.Component),f(r,[{key:"shouldComponentUpdate",value:function(e){var r=e.formikFields,t=e.errors,n=u(e,["formikFields","errors"]);return!(b(n,this.props)&&b(r,this.props.formikFields)&&b(t,this.props.errors))}},{key:"render",value:function(){var e=this.props,r=e.render,t=e.children,n=e.formikFields,o=u(e,["render","children","formikFields"]);if(r)return r(n,o);if(t)return t(n,o);throw new Error("you have to provide either the children- or the render-prop")}}]),r}(),k=function(r){var t={};return Object.keys(r).filter(function(e){return!!r[e]}).forEach(function(e){return t[e]=r[e]}),t};e.FormikFields=function(e){function o(e){var n,r,t;return a(this,o),(n=l(this,c(o).call(this,e))).initialValues=void 0,n.memoizedValidatorMap=void 0,n.memoizedFormikBagToFormikFieldStateMap=void 0,n.fieldKeys=function(){return y(n.props)},n.validateKey=function(e,r){return!!n.memoizedValidatorMap[e]&&(0,n.memoizedValidatorMap[e])(r[e])},n.validate=function(r){var t={};return n.fieldKeys().filter(function(e){return n.memoizedValidatorMap[e]}).forEach(function(e){return t[e]=n.validateKey(e,r)}),k(n.props.validate?Object.assign(t,n.props.validate(r)):t)},n.formikFieldStateByKey=function(e,r){return n.memoizedFormikBagToFormikFieldStateMap[e](r.values[e],r.errors[e],!!r.touched[e],r.setFieldValue,r.setFieldTouched)},n.getState=function(r){var t={};return n.fieldKeys().forEach(function(e){return t[e]=n.formikFieldStateByKey(e,r)}),t},n.renderCustomFieldsForm=function(e){var r=u(e,["isValidating"]);return i.createElement(F,Object.assign({},r,{render:n.props.render,children:n.props.children,formikFields:n.getState(e)}))},n.initialValues=(t={},y(r=e).forEach(function(e){return t[e]=r.fields[e].initialValue}),t),n.memoizedValidatorMap=h(e),n.memoizedFormikBagToFormikFieldStateMap=v(e),n}return d(o,i.PureComponent),f(o,[{key:"render",value:function(){var e=this.props,r=u(e,["fields","render","children"]);return i.createElement(t.Formik,Object.assign({},r,{initialValues:this.initialValues,validate:this.validate,render:this.renderCustomFieldsForm}))}}]),o}(),Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=formik-fields.umd.min.js.map