@codegateinc/react-form-builder-v2
Advanced tools
Comparing version 1.2.5 to 1.2.6
@@ -54,3 +54,3 @@ 'use strict'; | ||
var _useState2 = react.useState({ | ||
value: localInitialValue || '', | ||
value: localInitialValue != null ? localInitialValue : '', | ||
isPristine: true, | ||
@@ -201,3 +201,3 @@ errorMessage: '', | ||
var generateField = function generateField(fieldConfig, prevStateRef, setState, parentKey) { | ||
var _prevStateRef$current, _prevStateRef$current2, _prevStateRef$current3, _prevStateRef$current4; | ||
var _prevStateRef$current, _prevStateRef$current2, _fieldConfig$initialV, _prevStateRef$current3, _prevStateRef$current4; | ||
@@ -255,3 +255,3 @@ if (parentKey === void 0) { | ||
validateOnBlur: fieldConfig.validateOnBlur || false, | ||
localInitialValue: fieldConfig.initialValue || '', | ||
localInitialValue: (_fieldConfig$initialV = fieldConfig.initialValue) != null ? _fieldConfig$initialV : '', | ||
errorMessage: (_prevStateRef$current3 = prevStateRef.current) == null ? void 0 : (_prevStateRef$current4 = _prevStateRef$current3[fieldConfig.key]) == null ? void 0 : _prevStateRef$current4.errorMessage, | ||
@@ -258,0 +258,0 @@ onChangeValue: function onChangeValue(value) { |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),e=require("ramda");function n(){return(n=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}var t=function(r){return null!=r},a=function(r,e){return t(r)&&e(r)};exports.useField=function(a){var i=a.key,u=a.label,o=a.initialValue,s=a.validationRules,l=void 0===s?[]:s,c=a.isRequired,v=void 0!==c&&c,f=a.placeholder,d=a.validateOnBlur,h=void 0!==d&&d,g=a.liveParser,M=a.submitParser,y=r.useState(o),E=y[0],k=y[1],b=r.useState({value:E||"",isPristine:!0,errorMessage:"",hasError:!1}),O=b[0],P=b[1],m=function(r,n){if(void 0===n&&(n=!1),!n&&O.isPristine||!l)return{errorMessage:"",hasError:!1};var a,i=t(r)?r:O.value;if(v&&e.isEmpty(i))return{errorMessage:null==(a=l[0])?void 0:a.errorMessage,hasError:!0};if(!v&&!Boolean(i)&&!l)return{errorMessage:"",hasError:!1};var u=l.find((function(r){return!r.validate(i)}));return{errorMessage:u?u.errorMessage:"",hasError:Boolean(null==u?void 0:u.errorMessage)}};return{key:i,label:u,isRequired:v,placeholder:f,submitParser:M,parentKey:"",hasError:O.hasError,value:O.value,hasChange:O.value!==E,errorMessage:O.errorMessage,onBlur:function(){if(h){var r=m(void 0,!0),e=r.errorMessage,t=r.hasError;P((function(r){return n({},r,{isPristine:!1,errorMessage:e,hasError:t})}))}},onChangeValue:function(r){var e=m(r,!h),t=e.hasError,a=e.errorMessage;P((function(e){return n({},e,{value:g?g(r):r,isPristine:e.isPristine?h:e.isPristine,errorMessage:a,hasError:t})}))},onChangeInitialValue:function(r){O.value===E&&P((function(e){return n({},e,{value:r})})),k(r)},validateOnSubmit:function(){var r=m(void 0,!0),e=r.hasError,t=r.errorMessage;return P((function(r){return n({},r,{errorMessage:t,hasError:e})})),{hasError:e,errorMessage:t}},setError:function(r){return P((function(e){return n({},e,{errorMessage:r})}))},resetState:function(){return P((function(r){return n({},r,{isPristine:!0,errorMessage:"",value:o||""})}))},validate:function(){var r=m(void 0,!0),e=r.hasError,t=r.errorMessage;P((function(r){return n({},r,{errorMessage:t,hasError:e})}))}}},exports.useForm=function(i,u){var o=Object.entries(i).reduce((function(r,e){var t;return n({},r,((t={})[e[0]]=e[1],t))}),{}),s=r.useState({}),l=s[0],c=s[1],v=r.useRef(l),f=n({},o,Object.entries(l).reduce((function(r,e){var t,a=e[0],i=e[1],u=i.parentKey.split(".").filter(Boolean);if(u.length>0){var o=u.reduce((function(e,t,a){var o,s;return n({},r,e,((s={})[t]=n({},r[t],e[t]||{},a===u.length-1?{children:[].concat((null==(o=e[t])?void 0:o.children)||[],[i])}:{}),s))}),{}),s=Object.keys(o).filter((function(r){return Object.keys(o[r]).length})).reduce((function(r,e){var t;return n({},r,((t={})[e]=o[e],t))}),{});return n({},r,s)}return n({},r,((t={})[a]=i,t))}),{})),d=Object.values(f).filter((function(r){return r.isRequired})).some((function(r){return Boolean(r.errorMessage)}));return r.useEffect((function(){v.current=l}),[l]),{form:f,hasError:d,isFilled:Object.values(f).filter((function(r){return r.isRequired})).every((function(r){return!e.isEmpty(r.value)})),formHasChanges:function(){return Object.values(f).some((function(r){return r.hasChange}))},setError:function(r,e){f[r].setError(e),a(u.onError,(function(n){var t;return n(((t={})[r]=e,t))}))},setFieldValue:function(r,e){f[r].onChangeValue(e)},setFieldInitialValue:function(r,e){f[r].onChangeInitialValue(e)},addFields:function(r){return c((function(a){return n({},a,r.reduce((function(r,a){return n({},r,function r(a,i){var u;return a.children?a.children.reduce((function(e,t){return n({},e,r(t,i+"."+a.key))}),{}):((u={})[a.key]=function(r,a,i,u){var o,s,l,c;void 0===u&&(u="");var v=function(r,n,a){if(void 0===a&&(a=!1),!a&&r.isPristine||!r.validationRules)return{errorMessage:"",hasError:!1};var i,u=t(n)?n:r.value;if(r.isRequired&&e.isEmpty(u))return{errorMessage:null==(i=r.validationRules[0])?void 0:i.errorMessage,hasError:!0};if(!r.isRequired&&!Boolean(u)&&!r.validationRules)return{errorMessage:"",hasError:!1};var o=r.validationRules.find((function(r){return!r.validate(u)}));return{errorMessage:o?o.errorMessage:"",hasError:Boolean(null==o?void 0:o.errorMessage)}};return n({},r,{value:"",hasChange:!1,isPristine:!0,parentKey:u,hasError:null==(o=a.current)||null==(s=o[r.key])?void 0:s.hasError,isRequired:r.isRequired||!1,validateOnBlur:r.validateOnBlur||!1,localInitialValue:r.initialValue||"",errorMessage:null==(l=a.current)||null==(c=l[r.key])?void 0:c.errorMessage,onChangeValue:function(e){return i((function(t){var a,i,u,o=n({},t[r.key],{value:r.liveParser?r.liveParser(e):e,hasChange:e!==(null==(a=t[r.key])?void 0:a.localInitialValue),isPristine:null!=(i=t[r.key])&&i.isPristine?r.validateOnBlur||!1:t[r.key].isPristine}),s=v(o,e);return n({},t,((u={})[r.key]=n({},o,{errorMessage:s.errorMessage,hasError:s.hasError}),u))}))},onBlur:function(){if(r.validateOnBlur){var e,t=v(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.errorMessage,o=t.hasError;i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{isPristine:!1,errorMessage:u,hasError:o}),t))}))}},validateOnSubmit:function(){var e,t=v(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.errorMessage,o=t.hasError;return i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{errorMessage:u,hasError:o}),t))})),{errorMessage:u,hasError:o}},onChangeInitialValue:function(e){var t,u;(null==(t=a.current)?void 0:t.value)===(null==(u=a.current)?void 0:u.localInitialValue)&&i((function(t){var a;return n({},t,((a={})[r.key]=n({},t[r.key],{value:e,localInitialValue:e}),a))}))},setError:function(e){return i((function(t){var a;return n({},t,((a={})[r.key]=n({},t[r.key],{errorMessage:e}),a))}))},resetState:function(){return i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{isPristine:!0,errorMessage:"",value:r.initialValue||""}),t))}))},validate:function(){var e,t=v(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.hasError,o=t.errorMessage;i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{errorMessage:o,hasError:u}),t))}))}})}(a,v,c,i),u)}(a,""))}),{}))}))},removeFieldIds:function(r){return c((function(e){return Object.keys(e).reduce((function(t,a){var i;return r.includes(a)?t:n({},t,((i={})[a]=e[a],i))}),{})}))},resetForm:function(){return Object.keys(f).forEach((function(r){return f[r].resetState()}))},submit:function(){var r=Object.values(f).map((function(r){var e=r.validateOnSubmit();return{key:r.key,errorMessage:e.errorMessage||(e.hasError?"This field is required":"")}})).filter((function(r){return Boolean(r.errorMessage)})).reduce((function(r,e){var t;return n({},r,((t={})[e.key]=e.errorMessage,t))}),{});if(Object.values(r).length>0)return a(u.onError,(function(e){return e(r)}));var e=Object.values(f).reduce((function(r,e){var t,a=e.value,i=e.submitParser;return n({},r,((t={})[e.key]=i?i(a):a,t))}),{});u.onSuccess(e)},validateAll:function(){return Object.values(f).forEach((function(r){return r.validate()}))}}}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react"),e=require("ramda");function n(){return(n=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}var t=function(r){return null!=r},a=function(r,e){return t(r)&&e(r)};exports.useField=function(a){var i=a.key,u=a.label,o=a.initialValue,s=a.validationRules,l=void 0===s?[]:s,c=a.isRequired,v=void 0!==c&&c,f=a.placeholder,d=a.validateOnBlur,h=void 0!==d&&d,g=a.liveParser,M=a.submitParser,y=r.useState(o),E=y[0],k=y[1],b=r.useState({value:null!=E?E:"",isPristine:!0,errorMessage:"",hasError:!1}),O=b[0],P=b[1],m=function(r,n){if(void 0===n&&(n=!1),!n&&O.isPristine||!l)return{errorMessage:"",hasError:!1};var a,i=t(r)?r:O.value;if(v&&e.isEmpty(i))return{errorMessage:null==(a=l[0])?void 0:a.errorMessage,hasError:!0};if(!v&&!Boolean(i)&&!l)return{errorMessage:"",hasError:!1};var u=l.find((function(r){return!r.validate(i)}));return{errorMessage:u?u.errorMessage:"",hasError:Boolean(null==u?void 0:u.errorMessage)}};return{key:i,label:u,isRequired:v,placeholder:f,submitParser:M,parentKey:"",hasError:O.hasError,value:O.value,hasChange:O.value!==E,errorMessage:O.errorMessage,onBlur:function(){if(h){var r=m(void 0,!0),e=r.errorMessage,t=r.hasError;P((function(r){return n({},r,{isPristine:!1,errorMessage:e,hasError:t})}))}},onChangeValue:function(r){var e=m(r,!h),t=e.hasError,a=e.errorMessage;P((function(e){return n({},e,{value:g?g(r):r,isPristine:e.isPristine?h:e.isPristine,errorMessage:a,hasError:t})}))},onChangeInitialValue:function(r){O.value===E&&P((function(e){return n({},e,{value:r})})),k(r)},validateOnSubmit:function(){var r=m(void 0,!0),e=r.hasError,t=r.errorMessage;return P((function(r){return n({},r,{errorMessage:t,hasError:e})})),{hasError:e,errorMessage:t}},setError:function(r){return P((function(e){return n({},e,{errorMessage:r})}))},resetState:function(){return P((function(r){return n({},r,{isPristine:!0,errorMessage:"",value:o||""})}))},validate:function(){var r=m(void 0,!0),e=r.hasError,t=r.errorMessage;P((function(r){return n({},r,{errorMessage:t,hasError:e})}))}}},exports.useForm=function(i,u){var o=Object.entries(i).reduce((function(r,e){var t;return n({},r,((t={})[e[0]]=e[1],t))}),{}),s=r.useState({}),l=s[0],c=s[1],v=r.useRef(l),f=n({},o,Object.entries(l).reduce((function(r,e){var t,a=e[0],i=e[1],u=i.parentKey.split(".").filter(Boolean);if(u.length>0){var o=u.reduce((function(e,t,a){var o,s;return n({},r,e,((s={})[t]=n({},r[t],e[t]||{},a===u.length-1?{children:[].concat((null==(o=e[t])?void 0:o.children)||[],[i])}:{}),s))}),{}),s=Object.keys(o).filter((function(r){return Object.keys(o[r]).length})).reduce((function(r,e){var t;return n({},r,((t={})[e]=o[e],t))}),{});return n({},r,s)}return n({},r,((t={})[a]=i,t))}),{})),d=Object.values(f).filter((function(r){return r.isRequired})).some((function(r){return Boolean(r.errorMessage)}));return r.useEffect((function(){v.current=l}),[l]),{form:f,hasError:d,isFilled:Object.values(f).filter((function(r){return r.isRequired})).every((function(r){return!e.isEmpty(r.value)})),formHasChanges:function(){return Object.values(f).some((function(r){return r.hasChange}))},setError:function(r,e){f[r].setError(e),a(u.onError,(function(n){var t;return n(((t={})[r]=e,t))}))},setFieldValue:function(r,e){f[r].onChangeValue(e)},setFieldInitialValue:function(r,e){f[r].onChangeInitialValue(e)},addFields:function(r){return c((function(a){return n({},a,r.reduce((function(r,a){return n({},r,function r(a,i){var u;return a.children?a.children.reduce((function(e,t){return n({},e,r(t,i+"."+a.key))}),{}):((u={})[a.key]=function(r,a,i,u){var o,s,l,c,v;void 0===u&&(u="");var f=function(r,n,a){if(void 0===a&&(a=!1),!a&&r.isPristine||!r.validationRules)return{errorMessage:"",hasError:!1};var i,u=t(n)?n:r.value;if(r.isRequired&&e.isEmpty(u))return{errorMessage:null==(i=r.validationRules[0])?void 0:i.errorMessage,hasError:!0};if(!r.isRequired&&!Boolean(u)&&!r.validationRules)return{errorMessage:"",hasError:!1};var o=r.validationRules.find((function(r){return!r.validate(u)}));return{errorMessage:o?o.errorMessage:"",hasError:Boolean(null==o?void 0:o.errorMessage)}};return n({},r,{value:"",hasChange:!1,isPristine:!0,parentKey:u,hasError:null==(o=a.current)||null==(s=o[r.key])?void 0:s.hasError,isRequired:r.isRequired||!1,validateOnBlur:r.validateOnBlur||!1,localInitialValue:null!=(l=r.initialValue)?l:"",errorMessage:null==(c=a.current)||null==(v=c[r.key])?void 0:v.errorMessage,onChangeValue:function(e){return i((function(t){var a,i,u,o=n({},t[r.key],{value:r.liveParser?r.liveParser(e):e,hasChange:e!==(null==(a=t[r.key])?void 0:a.localInitialValue),isPristine:null!=(i=t[r.key])&&i.isPristine?r.validateOnBlur||!1:t[r.key].isPristine}),s=f(o,e);return n({},t,((u={})[r.key]=n({},o,{errorMessage:s.errorMessage,hasError:s.hasError}),u))}))},onBlur:function(){if(r.validateOnBlur){var e,t=f(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.errorMessage,o=t.hasError;i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{isPristine:!1,errorMessage:u,hasError:o}),t))}))}},validateOnSubmit:function(){var e,t=f(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.errorMessage,o=t.hasError;return i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{errorMessage:u,hasError:o}),t))})),{errorMessage:u,hasError:o}},onChangeInitialValue:function(e){var t,u;(null==(t=a.current)?void 0:t.value)===(null==(u=a.current)?void 0:u.localInitialValue)&&i((function(t){var a;return n({},t,((a={})[r.key]=n({},t[r.key],{value:e,localInitialValue:e}),a))}))},setError:function(e){return i((function(t){var a;return n({},t,((a={})[r.key]=n({},t[r.key],{errorMessage:e}),a))}))},resetState:function(){return i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{isPristine:!0,errorMessage:"",value:r.initialValue||""}),t))}))},validate:function(){var e,t=f(null==(e=a.current)?void 0:e[r.key],void 0,!0),u=t.hasError,o=t.errorMessage;i((function(e){var t;return n({},e,((t={})[r.key]=n({},e[r.key],{errorMessage:o,hasError:u}),t))}))}})}(a,v,c,i),u)}(a,""))}),{}))}))},removeFieldIds:function(r){return c((function(e){return Object.keys(e).reduce((function(t,a){var i;return r.includes(a)?t:n({},t,((i={})[a]=e[a],i))}),{})}))},resetForm:function(){return Object.keys(f).forEach((function(r){return f[r].resetState()}))},submit:function(){var r=Object.values(f).map((function(r){var e=r.validateOnSubmit();return{key:r.key,errorMessage:e.errorMessage||(e.hasError?"This field is required":"")}})).filter((function(r){return Boolean(r.errorMessage)})).reduce((function(r,e){var t;return n({},r,((t={})[e.key]=e.errorMessage,t))}),{});if(Object.values(r).length>0)return a(u.onError,(function(e){return e(r)}));var e=Object.values(f).reduce((function(r,e){var t,a=e.value,i=e.submitParser;return n({},r,((t={})[e.key]=i?i(a):a,t))}),{});u.onSuccess(e)},validateAll:function(){return Object.values(f).forEach((function(r){return r.validate()}))}}}; | ||
//# sourceMappingURL=react-form-builder-v2.cjs.production.min.js.map |
@@ -50,3 +50,3 @@ import { useState, useRef, useEffect } from 'react'; | ||
var _useState2 = useState({ | ||
value: localInitialValue || '', | ||
value: localInitialValue != null ? localInitialValue : '', | ||
isPristine: true, | ||
@@ -197,3 +197,3 @@ errorMessage: '', | ||
var generateField = function generateField(fieldConfig, prevStateRef, setState, parentKey) { | ||
var _prevStateRef$current, _prevStateRef$current2, _prevStateRef$current3, _prevStateRef$current4; | ||
var _prevStateRef$current, _prevStateRef$current2, _fieldConfig$initialV, _prevStateRef$current3, _prevStateRef$current4; | ||
@@ -251,3 +251,3 @@ if (parentKey === void 0) { | ||
validateOnBlur: fieldConfig.validateOnBlur || false, | ||
localInitialValue: fieldConfig.initialValue || '', | ||
localInitialValue: (_fieldConfig$initialV = fieldConfig.initialValue) != null ? _fieldConfig$initialV : '', | ||
errorMessage: (_prevStateRef$current3 = prevStateRef.current) == null ? void 0 : (_prevStateRef$current4 = _prevStateRef$current3[fieldConfig.key]) == null ? void 0 : _prevStateRef$current4.errorMessage, | ||
@@ -254,0 +254,0 @@ onChangeValue: function onChangeValue(value) { |
@@ -53,3 +53,3 @@ (function (global, factory) { | ||
var _useState2 = react.useState({ | ||
value: localInitialValue || '', | ||
value: localInitialValue != null ? localInitialValue : '', | ||
isPristine: true, | ||
@@ -200,3 +200,3 @@ errorMessage: '', | ||
var generateField = function generateField(fieldConfig, prevStateRef, setState, parentKey) { | ||
var _prevStateRef$current, _prevStateRef$current2, _prevStateRef$current3, _prevStateRef$current4; | ||
var _prevStateRef$current, _prevStateRef$current2, _fieldConfig$initialV, _prevStateRef$current3, _prevStateRef$current4; | ||
@@ -254,3 +254,3 @@ if (parentKey === void 0) { | ||
validateOnBlur: fieldConfig.validateOnBlur || false, | ||
localInitialValue: fieldConfig.initialValue || '', | ||
localInitialValue: (_fieldConfig$initialV = fieldConfig.initialValue) != null ? _fieldConfig$initialV : '', | ||
errorMessage: (_prevStateRef$current3 = prevStateRef.current) == null ? void 0 : (_prevStateRef$current4 = _prevStateRef$current3[fieldConfig.key]) == null ? void 0 : _prevStateRef$current4.errorMessage, | ||
@@ -257,0 +257,0 @@ onChangeValue: function onChangeValue(value) { |
@@ -1,2 +0,2 @@ | ||
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("ramda")):"function"==typeof define&&define.amd?define(["exports","react","ramda"],e):e((r=r||self)["@codegateinc/react-form-builder-v2"]={},r.React,r.ramda)}(this,(function(r,e,n){"use strict";function t(){return(t=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}var a=function(r){return null!=r},i=function(r,e){return a(r)&&e(r)};r.useField=function(r){var i=r.key,u=r.label,o=r.initialValue,s=r.validationRules,l=void 0===s?[]:s,c=r.isRequired,v=void 0!==c&&c,f=r.placeholder,d=r.validateOnBlur,h=void 0!==d&&d,g=r.liveParser,y=r.submitParser,M=e.useState(o),E=M[0],k=M[1],b=e.useState({value:E||"",isPristine:!0,errorMessage:"",hasError:!1}),O=b[0],m=b[1],p=function(r,e){if(void 0===e&&(e=!1),!e&&O.isPristine||!l)return{errorMessage:"",hasError:!1};var t,i=a(r)?r:O.value;if(v&&n.isEmpty(i))return{errorMessage:null==(t=l[0])?void 0:t.errorMessage,hasError:!0};if(!v&&!Boolean(i)&&!l)return{errorMessage:"",hasError:!1};var u=l.find((function(r){return!r.validate(i)}));return{errorMessage:u?u.errorMessage:"",hasError:Boolean(null==u?void 0:u.errorMessage)}};return{key:i,label:u,isRequired:v,placeholder:f,submitParser:y,parentKey:"",hasError:O.hasError,value:O.value,hasChange:O.value!==E,errorMessage:O.errorMessage,onBlur:function(){if(h){var r=p(void 0,!0),e=r.errorMessage,n=r.hasError;m((function(r){return t({},r,{isPristine:!1,errorMessage:e,hasError:n})}))}},onChangeValue:function(r){var e=p(r,!h),n=e.hasError,a=e.errorMessage;m((function(e){return t({},e,{value:g?g(r):r,isPristine:e.isPristine?h:e.isPristine,errorMessage:a,hasError:n})}))},onChangeInitialValue:function(r){O.value===E&&m((function(e){return t({},e,{value:r})})),k(r)},validateOnSubmit:function(){var r=p(void 0,!0),e=r.hasError,n=r.errorMessage;return m((function(r){return t({},r,{errorMessage:n,hasError:e})})),{hasError:e,errorMessage:n}},setError:function(r){return m((function(e){return t({},e,{errorMessage:r})}))},resetState:function(){return m((function(r){return t({},r,{isPristine:!0,errorMessage:"",value:o||""})}))},validate:function(){var r=p(void 0,!0),e=r.hasError,n=r.errorMessage;m((function(r){return t({},r,{errorMessage:n,hasError:e})}))}}},r.useForm=function(r,u){var o=Object.entries(r).reduce((function(r,e){var n;return t({},r,((n={})[e[0]]=e[1],n))}),{}),s=e.useState({}),l=s[0],c=s[1],v=e.useRef(l),f=t({},o,Object.entries(l).reduce((function(r,e){var n,a=e[0],i=e[1],u=i.parentKey.split(".").filter(Boolean);if(u.length>0){var o=u.reduce((function(e,n,a){var o,s;return t({},r,e,((s={})[n]=t({},r[n],e[n]||{},a===u.length-1?{children:[].concat((null==(o=e[n])?void 0:o.children)||[],[i])}:{}),s))}),{}),s=Object.keys(o).filter((function(r){return Object.keys(o[r]).length})).reduce((function(r,e){var n;return t({},r,((n={})[e]=o[e],n))}),{});return t({},r,s)}return t({},r,((n={})[a]=i,n))}),{})),d=Object.values(f).filter((function(r){return r.isRequired})).some((function(r){return Boolean(r.errorMessage)}));return e.useEffect((function(){v.current=l}),[l]),{form:f,hasError:d,isFilled:Object.values(f).filter((function(r){return r.isRequired})).every((function(r){return!n.isEmpty(r.value)})),formHasChanges:function(){return Object.values(f).some((function(r){return r.hasChange}))},setError:function(r,e){f[r].setError(e),i(u.onError,(function(n){var t;return n(((t={})[r]=e,t))}))},setFieldValue:function(r,e){f[r].onChangeValue(e)},setFieldInitialValue:function(r,e){f[r].onChangeInitialValue(e)},addFields:function(r){return c((function(e){return t({},e,r.reduce((function(r,e){return t({},r,function r(e,i){var u;return e.children?e.children.reduce((function(n,a){return t({},n,r(a,i+"."+e.key))}),{}):((u={})[e.key]=function(r,e,i,u){var o,s,l,c;void 0===u&&(u="");var v=function(r,e,t){if(void 0===t&&(t=!1),!t&&r.isPristine||!r.validationRules)return{errorMessage:"",hasError:!1};var i,u=a(e)?e:r.value;if(r.isRequired&&n.isEmpty(u))return{errorMessage:null==(i=r.validationRules[0])?void 0:i.errorMessage,hasError:!0};if(!r.isRequired&&!Boolean(u)&&!r.validationRules)return{errorMessage:"",hasError:!1};var o=r.validationRules.find((function(r){return!r.validate(u)}));return{errorMessage:o?o.errorMessage:"",hasError:Boolean(null==o?void 0:o.errorMessage)}};return t({},r,{value:"",hasChange:!1,isPristine:!0,parentKey:u,hasError:null==(o=e.current)||null==(s=o[r.key])?void 0:s.hasError,isRequired:r.isRequired||!1,validateOnBlur:r.validateOnBlur||!1,localInitialValue:r.initialValue||"",errorMessage:null==(l=e.current)||null==(c=l[r.key])?void 0:c.errorMessage,onChangeValue:function(e){return i((function(n){var a,i,u,o=t({},n[r.key],{value:r.liveParser?r.liveParser(e):e,hasChange:e!==(null==(a=n[r.key])?void 0:a.localInitialValue),isPristine:null!=(i=n[r.key])&&i.isPristine?r.validateOnBlur||!1:n[r.key].isPristine}),s=v(o,e);return t({},n,((u={})[r.key]=t({},o,{errorMessage:s.errorMessage,hasError:s.hasError}),u))}))},onBlur:function(){if(r.validateOnBlur){var n,a=v(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.errorMessage,o=a.hasError;i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{isPristine:!1,errorMessage:u,hasError:o}),n))}))}},validateOnSubmit:function(){var n,a=v(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.errorMessage,o=a.hasError;return i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{errorMessage:u,hasError:o}),n))})),{errorMessage:u,hasError:o}},onChangeInitialValue:function(n){var a,u;(null==(a=e.current)?void 0:a.value)===(null==(u=e.current)?void 0:u.localInitialValue)&&i((function(e){var a;return t({},e,((a={})[r.key]=t({},e[r.key],{value:n,localInitialValue:n}),a))}))},setError:function(e){return i((function(n){var a;return t({},n,((a={})[r.key]=t({},n[r.key],{errorMessage:e}),a))}))},resetState:function(){return i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{isPristine:!0,errorMessage:"",value:r.initialValue||""}),n))}))},validate:function(){var n,a=v(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.hasError,o=a.errorMessage;i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{errorMessage:o,hasError:u}),n))}))}})}(e,v,c,i),u)}(e,""))}),{}))}))},removeFieldIds:function(r){return c((function(e){return Object.keys(e).reduce((function(n,a){var i;return r.includes(a)?n:t({},n,((i={})[a]=e[a],i))}),{})}))},resetForm:function(){return Object.keys(f).forEach((function(r){return f[r].resetState()}))},submit:function(){var r=Object.values(f).map((function(r){var e=r.validateOnSubmit();return{key:r.key,errorMessage:e.errorMessage||(e.hasError?"This field is required":"")}})).filter((function(r){return Boolean(r.errorMessage)})).reduce((function(r,e){var n;return t({},r,((n={})[e.key]=e.errorMessage,n))}),{});if(Object.values(r).length>0)return i(u.onError,(function(e){return e(r)}));var e=Object.values(f).reduce((function(r,e){var n,a=e.value,i=e.submitParser;return t({},r,((n={})[e.key]=i?i(a):a,n))}),{});u.onSuccess(e)},validateAll:function(){return Object.values(f).forEach((function(r){return r.validate()}))}}},Object.defineProperty(r,"__esModule",{value:!0})})); | ||
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("ramda")):"function"==typeof define&&define.amd?define(["exports","react","ramda"],e):e((r=r||self)["@codegateinc/react-form-builder-v2"]={},r.React,r.ramda)}(this,(function(r,e,n){"use strict";function t(){return(t=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}var a=function(r){return null!=r},i=function(r,e){return a(r)&&e(r)};r.useField=function(r){var i=r.key,u=r.label,o=r.initialValue,s=r.validationRules,l=void 0===s?[]:s,c=r.isRequired,v=void 0!==c&&c,f=r.placeholder,d=r.validateOnBlur,h=void 0!==d&&d,g=r.liveParser,y=r.submitParser,M=e.useState(o),E=M[0],k=M[1],b=e.useState({value:null!=E?E:"",isPristine:!0,errorMessage:"",hasError:!1}),O=b[0],m=b[1],p=function(r,e){if(void 0===e&&(e=!1),!e&&O.isPristine||!l)return{errorMessage:"",hasError:!1};var t,i=a(r)?r:O.value;if(v&&n.isEmpty(i))return{errorMessage:null==(t=l[0])?void 0:t.errorMessage,hasError:!0};if(!v&&!Boolean(i)&&!l)return{errorMessage:"",hasError:!1};var u=l.find((function(r){return!r.validate(i)}));return{errorMessage:u?u.errorMessage:"",hasError:Boolean(null==u?void 0:u.errorMessage)}};return{key:i,label:u,isRequired:v,placeholder:f,submitParser:y,parentKey:"",hasError:O.hasError,value:O.value,hasChange:O.value!==E,errorMessage:O.errorMessage,onBlur:function(){if(h){var r=p(void 0,!0),e=r.errorMessage,n=r.hasError;m((function(r){return t({},r,{isPristine:!1,errorMessage:e,hasError:n})}))}},onChangeValue:function(r){var e=p(r,!h),n=e.hasError,a=e.errorMessage;m((function(e){return t({},e,{value:g?g(r):r,isPristine:e.isPristine?h:e.isPristine,errorMessage:a,hasError:n})}))},onChangeInitialValue:function(r){O.value===E&&m((function(e){return t({},e,{value:r})})),k(r)},validateOnSubmit:function(){var r=p(void 0,!0),e=r.hasError,n=r.errorMessage;return m((function(r){return t({},r,{errorMessage:n,hasError:e})})),{hasError:e,errorMessage:n}},setError:function(r){return m((function(e){return t({},e,{errorMessage:r})}))},resetState:function(){return m((function(r){return t({},r,{isPristine:!0,errorMessage:"",value:o||""})}))},validate:function(){var r=p(void 0,!0),e=r.hasError,n=r.errorMessage;m((function(r){return t({},r,{errorMessage:n,hasError:e})}))}}},r.useForm=function(r,u){var o=Object.entries(r).reduce((function(r,e){var n;return t({},r,((n={})[e[0]]=e[1],n))}),{}),s=e.useState({}),l=s[0],c=s[1],v=e.useRef(l),f=t({},o,Object.entries(l).reduce((function(r,e){var n,a=e[0],i=e[1],u=i.parentKey.split(".").filter(Boolean);if(u.length>0){var o=u.reduce((function(e,n,a){var o,s;return t({},r,e,((s={})[n]=t({},r[n],e[n]||{},a===u.length-1?{children:[].concat((null==(o=e[n])?void 0:o.children)||[],[i])}:{}),s))}),{}),s=Object.keys(o).filter((function(r){return Object.keys(o[r]).length})).reduce((function(r,e){var n;return t({},r,((n={})[e]=o[e],n))}),{});return t({},r,s)}return t({},r,((n={})[a]=i,n))}),{})),d=Object.values(f).filter((function(r){return r.isRequired})).some((function(r){return Boolean(r.errorMessage)}));return e.useEffect((function(){v.current=l}),[l]),{form:f,hasError:d,isFilled:Object.values(f).filter((function(r){return r.isRequired})).every((function(r){return!n.isEmpty(r.value)})),formHasChanges:function(){return Object.values(f).some((function(r){return r.hasChange}))},setError:function(r,e){f[r].setError(e),i(u.onError,(function(n){var t;return n(((t={})[r]=e,t))}))},setFieldValue:function(r,e){f[r].onChangeValue(e)},setFieldInitialValue:function(r,e){f[r].onChangeInitialValue(e)},addFields:function(r){return c((function(e){return t({},e,r.reduce((function(r,e){return t({},r,function r(e,i){var u;return e.children?e.children.reduce((function(n,a){return t({},n,r(a,i+"."+e.key))}),{}):((u={})[e.key]=function(r,e,i,u){var o,s,l,c,v;void 0===u&&(u="");var f=function(r,e,t){if(void 0===t&&(t=!1),!t&&r.isPristine||!r.validationRules)return{errorMessage:"",hasError:!1};var i,u=a(e)?e:r.value;if(r.isRequired&&n.isEmpty(u))return{errorMessage:null==(i=r.validationRules[0])?void 0:i.errorMessage,hasError:!0};if(!r.isRequired&&!Boolean(u)&&!r.validationRules)return{errorMessage:"",hasError:!1};var o=r.validationRules.find((function(r){return!r.validate(u)}));return{errorMessage:o?o.errorMessage:"",hasError:Boolean(null==o?void 0:o.errorMessage)}};return t({},r,{value:"",hasChange:!1,isPristine:!0,parentKey:u,hasError:null==(o=e.current)||null==(s=o[r.key])?void 0:s.hasError,isRequired:r.isRequired||!1,validateOnBlur:r.validateOnBlur||!1,localInitialValue:null!=(l=r.initialValue)?l:"",errorMessage:null==(c=e.current)||null==(v=c[r.key])?void 0:v.errorMessage,onChangeValue:function(e){return i((function(n){var a,i,u,o=t({},n[r.key],{value:r.liveParser?r.liveParser(e):e,hasChange:e!==(null==(a=n[r.key])?void 0:a.localInitialValue),isPristine:null!=(i=n[r.key])&&i.isPristine?r.validateOnBlur||!1:n[r.key].isPristine}),s=f(o,e);return t({},n,((u={})[r.key]=t({},o,{errorMessage:s.errorMessage,hasError:s.hasError}),u))}))},onBlur:function(){if(r.validateOnBlur){var n,a=f(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.errorMessage,o=a.hasError;i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{isPristine:!1,errorMessage:u,hasError:o}),n))}))}},validateOnSubmit:function(){var n,a=f(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.errorMessage,o=a.hasError;return i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{errorMessage:u,hasError:o}),n))})),{errorMessage:u,hasError:o}},onChangeInitialValue:function(n){var a,u;(null==(a=e.current)?void 0:a.value)===(null==(u=e.current)?void 0:u.localInitialValue)&&i((function(e){var a;return t({},e,((a={})[r.key]=t({},e[r.key],{value:n,localInitialValue:n}),a))}))},setError:function(e){return i((function(n){var a;return t({},n,((a={})[r.key]=t({},n[r.key],{errorMessage:e}),a))}))},resetState:function(){return i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{isPristine:!0,errorMessage:"",value:r.initialValue||""}),n))}))},validate:function(){var n,a=f(null==(n=e.current)?void 0:n[r.key],void 0,!0),u=a.hasError,o=a.errorMessage;i((function(e){var n;return t({},e,((n={})[r.key]=t({},e[r.key],{errorMessage:o,hasError:u}),n))}))}})}(e,v,c,i),u)}(e,""))}),{}))}))},removeFieldIds:function(r){return c((function(e){return Object.keys(e).reduce((function(n,a){var i;return r.includes(a)?n:t({},n,((i={})[a]=e[a],i))}),{})}))},resetForm:function(){return Object.keys(f).forEach((function(r){return f[r].resetState()}))},submit:function(){var r=Object.values(f).map((function(r){var e=r.validateOnSubmit();return{key:r.key,errorMessage:e.errorMessage||(e.hasError?"This field is required":"")}})).filter((function(r){return Boolean(r.errorMessage)})).reduce((function(r,e){var n;return t({},r,((n={})[e.key]=e.errorMessage,n))}),{});if(Object.values(r).length>0)return i(u.onError,(function(e){return e(r)}));var e=Object.values(f).reduce((function(r,e){var n,a=e.value,i=e.submitParser;return t({},r,((n={})[e.key]=i?i(a):a,n))}),{});u.onSuccess(e)},validateAll:function(){return Object.values(f).forEach((function(r){return r.validate()}))}}},Object.defineProperty(r,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=react-form-builder-v2.umd.production.min.js.map |
@@ -56,3 +56,3 @@ type VoidFunction = () => void | ||
onSuccess(form: T): void, | ||
onError?(form: T): void | ||
onError?(form: Record<keyof T, string>): void | ||
} | ||
@@ -59,0 +59,0 @@ |
@@ -6,3 +6,3 @@ { | ||
"typings": "index.d.ts", | ||
"version": "1.2.5", | ||
"version": "1.2.6", | ||
"main": "dist/index.js", | ||
@@ -9,0 +9,0 @@ "scripts": { |
@@ -58,3 +58,3 @@ import React from 'react' | ||
validateOnBlur: fieldConfig.validateOnBlur || false, | ||
localInitialValue: (fieldConfig.initialValue || '') as T, | ||
localInitialValue: (fieldConfig.initialValue ?? '') as T, | ||
errorMessage: prevStateRef.current?.[fieldConfig.key]?.errorMessage, | ||
@@ -61,0 +61,0 @@ onChangeValue: (value: T) => setState(prevState => { |
@@ -19,3 +19,3 @@ import { useState } from 'react' | ||
const [field, setField] = useState<GateFieldState<T>>({ | ||
value: localInitialValue || '', | ||
value: localInitialValue ?? '', | ||
isPristine: true, | ||
@@ -22,0 +22,0 @@ errorMessage: '', |
@@ -9,3 +9,3 @@ import { useEffect, useRef, useState } from 'react' | ||
onSuccess(form: T): void, | ||
onError?(form: T): void | ||
onError?(form: Record<keyof T, string>): void | ||
} | ||
@@ -12,0 +12,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
244097