@inntechcorp/it-design 2.2.84 → 2.2.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -456,6 +456,7 @@ declare function Control({ position, className, children }: ControlProps): react
456
456
 
457
457
  type ItemProps = {
458
458
  name: string;
459
+ id?: string;
459
460
  label?: string;
460
461
  placeholder?: string;
461
462
  error?: string;
@@ -1076,11 +1077,11 @@ type ITDImperativeFuncProps = {
1076
1077
  reset: (update?: boolean, validation?: boolean) => void;
1077
1078
  setValue: (value: any, update?: boolean, validation?: boolean) => void;
1078
1079
  getValue: () => any;
1079
- setError: (message: string) => void;
1080
+ setError?: (message: string) => void;
1080
1081
  setFocus?: () => void;
1081
1082
  setDisabled?: (value: boolean) => void;
1082
1083
  forceUpdate?: () => void;
1083
- clear: () => void;
1084
+ clear?: () => void;
1084
1085
  scrollIntoView?: (options?: ScrollIntoViewOptions | boolean) => void;
1085
1086
  };
1086
1087
 
package/dist/index.esm.js CHANGED
@@ -2382,7 +2382,7 @@ import e from"i18next";import{useTranslation as t,initReactI18next as r}from"rea
2382
2382
  margin-top: 10px;
2383
2383
  gap: 5px;
2384
2384
 
2385
- `;const Wc=new RegExp(/^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),qc=new RegExp(/^[a-zA-Z0-9_.-]+$/),Xc=new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+={};:<>|./?,"'\[\]\\`~\-])[a-zA-Z\d$begin:math:display$$end:math:display$\\`~!@#$%^&*()_+={};:<>|.\/?,"'-]{8,60}$/),Kc=new RegExp(/^[a-z0-9._-]+$/),Jc=new RegExp(/^[a-zA-Z0-9]+$/),Zc=new RegExp(/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/);const Qc=e=>Xc.test(e),eu=e=>Wc.test(e),tu=e=>qc.test(e),ru=(e,t)=>e.length>=t,nu=(e,t)=>e.length<=t,iu=(e,t)=>e===t,ou=(e,t)=>e!==t,au=(e,t)=>e.length===t,lu=e=>Kc.test(e),su=e=>Jc.test(e),du=e=>Zc.test(e),cu=(e,t)=>{if(!Array.isArray(t)||0===t.length)return!0;const r=String(e).trim().toLowerCase();return!t.some(e=>r===String(e).trim().toLowerCase())},uu=e=>function(e){var t,r=0,n=0,i=0;if(11!=e.length)return!1;if(!/^-?\d+$/.test(e))return!1;if(0==Number(e[0]))return!1;if(r=parseInt(e[0])+parseInt(e[2])+parseInt(e[4])+parseInt(e[6])+parseInt(e[8]),t=parseInt(e[1])+parseInt(e[3])+parseInt(e[5])+parseInt(e[7]),r*=7,Math.abs(r-t)%10!=Number(e[9]))return!1;for(i=0;i<10;i++)n+=parseInt(e[i]);return n%10==Number(e[10])}(e),pu=e=>{if(Array.isArray(e)){if(0===e.length)return!1}else{if("object"==typeof e){let t=!0;return Object.keys(e).forEach(r=>{""===e[r]&&(t=!1)}),t}if("string"==typeof e){if(""===e)return!1}else if("boolean"==typeof e&&!1===e)return!1}return!0},fu=m({});fu.displayName="ITDFormContext";const hu=x(({name:e="",label:r="",placeholder:n="",error:i="",rules:o=[],mask:a=null,locked:l=!1,dependency:p="",reset:f=[],query:h="",children:m=null},b)=>{const{t:v}=t("itd"),x=c(null),A=c(""),{register:w,unregister:k,hasField:_,updateField:S,setFieldError:E,getFieldValue:C,getFieldInstance:$,formId:L}=u(fu),[F,N]=s(!1);d(()=>(w({name:e,field:x,valid:D(x.current?.getValue(),!1),query:h,reset:f,error:i}),N(!0),A.current=JSON.stringify(o),()=>{N(!1),k(e)}),[]),d(()=>{const t=JSON.stringify(o);if(F&&x.current&&A.current!==t){const r=()=>{const t=x.current.getValue(),r=o.find(e=>e.hasOwnProperty("required"));if(!r||r.required||""!==t&&null!=t){const r=D(t,!1);_(e)&&S(e,t,!1,r)}else E(e,"",!0),_(e)&&S(e,t,!1,!0)};"development"===process.env.NODE_ENV?requestAnimationFrame(r):r(),A.current=t}},[o,F]),y(b,()=>x.current);const z=(t,r=!0,n=!0)=>{F&&_(e)&&(S(e,t,r,D(t,n)),M())},D=(t,r=!0)=>{const n=function(e,t,r,n){let i=[];return e.forEach(e=>{if(e.hasOwnProperty(U.REQUIRED)&&!pu(t)&&e.required&&i.push(e.message?e.message:n("errors.required")),e.hasOwnProperty(U.TYPE)&&(e.type===G.MIN_LENGTH&&(ru(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.minLength",{length:Number(e.value)}))),e.type===G.MAX_LENGTH&&(nu(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.maxLength",{length:Number(e.value)}))),e.type===G.EXACT_LENGTH&&(au(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.exactLength",{length:Number(e.value)}))),e.type===G.SAME&&(iu(String(t),String(r(String(e.field))))||i.push(e.message?e.message:n("errors.fieldMustBeTheSame",{fields:e.field}))),e.type===G.NOT_SAME&&(ou(String(t),String(r(String(e.field))))||i.push(e.message?e.message:n("errors.fieldMustBeDifferent",{fields:e.field}))),e.type===G.TC_IDENTITY&&(uu(String(t))||i.push(e.message?e.message:n("errors.wrongTCIdentity"))),e.type===G.PASSWORD&&(Qc(String(t))||i.push(e.message?e.message:n("errors.passwordRule"))),e.type===G.EMAIL&&(eu(String(t))||i.push(e.message?e.message:n("errors.invalidEmailAddress"))),e.type===G.USERNAME&&(tu(String(t))||i.push(e.message?e.message:n("errors.usernameRule"))),e.type===G.SITE_USERNAME&&(lu(String(t))||i.push(e.message?e.message:n("errors.siteUsernameRule"))),e.type===G.ADMIN_USERNAME&&(su(String(t))||i.push(e.message?e.message:n("errors.adminUsernameRule"))),e.type===G.URL&&(du(String(t))||i.push(e.message?e.message:n("errors.invalidURL"))),e.type===G.FORBIDDEN_WORDS)){const r=Array.isArray(e.value)?e.value:void 0!==e.value?[e.value]:[];cu(String(t),r)||i.push(e.message?e.message:n("errors.forbiddenWords"))}}),i}(o,t,C,v);return n.length>0?!!(r||""!==t&&null!=t)&&(r&&E(e,n[0],r),!1):(r&&E(e,""),!0)},M=()=>{if(""===p)return;if(""===C(p))return;const e=$(p);e&&e.forceUpdate&&e.forceUpdate()};return(()=>{if(!m)return null;let t=m.props;const i={id:t.id?t.id:L+"_"+e,label:r,placeholder:n,className:t.className?t.className+" itd-form-item":"itd-form-item",onUpdate:z,ref:x};return a&&(i.mask=a),l&&(i.locked=l),g(m,{...t,...i})})()}),gu=x(({name:e="",className:t="",initialValues:r={},useQueryString:i=!1,onUpdate:o,onFinish:a,onFinishFailed:l,onValidated:c,children:p},f)=>{const{updated:h,setInitialValues:g,isFormValid:m,getValues:b,getFields:v,setFieldValueByName:x,resetFields:A}=u(fu),w=me(),{search:k}=z(),_=be(),[S,E]=s([]),[C,$]=s(!1),[L,F]=s([]),[N,D]=s(!1),[M,T]=s(!1);d(()=>{p&&H()},[p]),d(()=>{O(),I()},[N]),d(()=>{N||0!==Object.keys(v()).length&&0!==L.length&&Object.keys(v()).length===L.length&&D(!0)},[v(),L]),d(()=>{I()},[r]),d(()=>{O()},[k]),d(()=>{M&&N&&i&&Object.keys(h).length>0&&V(h)},[h]),d(()=>{c&&m()!==C&&c(m()),$(m())},[m()]);const O=()=>{N&&i&&(j(),M||P())},I=()=>{N&&(i||M||R())},R=()=>{const e=!Object.values(r).some(e=>null!==e&&""!==e);e&&!M&&T(!0),e||M||(g(r,!1),T(!0))},P=()=>{const e=v(),t=!Object.values(e).some(e=>""!==w.get(e.query,""));if(Object.values(e).some(e=>null===e.query||""===e.query)){let t=[];throw Object.keys(e).forEach(r=>{e[r].hasOwnProperty("query")&&null!==e[r].query&&""!==e[r].query||t.push(r)}),new Error(`ITD Form Initial Fields Error: "useQueryString" is activated but "query" value is not passed to whole form elements! Invalid fields are ${t.toString()}`)}if(t&&!M&&T(!0),!t&&!M){let t={};Object.keys(e).forEach(r=>{t[r]=w.get(e[r].query,"")}),g(t,!0,!0),T(!0)}},V=e=>{let t=[],r=[];const n=v();Object.keys(e).forEach(t=>{r.push(e[t])}),Aa(r,S)||(Object.keys(n).forEach(r=>{t.push({type:n[r].query,value:e[r]})}),_.set(t))},j=()=>{let e=[],t=[];const r=v();if(Object.keys(r).forEach(t=>{let n=String(w.get(r[t].query,""));e.push(n)}),Aa(e,S))return;E(e),Object.keys(r).forEach(e=>{t[e]=w.get(r[e].query,"")}),Object.keys(t).forEach(e=>{x(e,t[e],!1,!1)});let n={};Object.keys(t).forEach(e=>{n[e]=t[e]}),o&&o(n)},H=()=>{let e=[];B(p,t=>(t.hasOwnProperty("type")&&t.type===hu&&e.push({[t.props.name]:t}),!0)),F(e)};return y(f,()=>({fieldUpdate(e){console.log("fieldUpdate"),console.log(e)}})),n("form",{id:e,onSubmit:e=>{e&&(e.preventDefault(),e.stopPropagation()),m()?a&&a(b()):l&&l(v())},onReset:e=>{e&&(e.preventDefault(),e.stopPropagation());let t=[];Object.keys(v()).map(e=>{t.push({type:e,value:""})}),_.set(t),A(!0,!1)},autoComplete:"off",className:t,noValidate:!0,children:p})});var mu=f(gu);function bu({name:e="",useQueryString:t=!1,onUpdate:r,onReset:n,onFieldUpdate:i}){const[o,a]=s({}),[l,d]=s(e),[c,u]=s(!1),[p,f]=s({});function h(e){return o.hasOwnProperty(e)&&void 0!==o[e]}function g(e){return h(e)?o[e].field.current:null}function m(){let e={};return Object.keys(o).forEach(t=>{e[t]=y(t)}),e}function v(e,t,r=!0){if(h(e)&&o[e].field.current){if(o[e].valid=!1,o[e].error=t,!o[e].field.current?.hasOwnProperty("setError"))throw new Error(`ITD Reference Error: You must declare the 'setError' function on the field "${e}"`);o[e].field.current?.setError(r?t:"")}}function x(){let e=!0;return Object.keys(o).forEach(t=>{o[t].valid||(e=!1)}),u(e),e}function y(e){if(h(e)){if(o[e].field.current?.hasOwnProperty("getValue"))return o[e].field.current?.getValue();throw new Error(`ITD Reference Error: You must declare the 'getValue' function on the field "${e}"`)}console.error(`ITD Form Error [getFieldValueByName]: There is no field registered with this name: ${e}`)}function A(e,t,r,n){if(h(e)){if(!o[e].field.current?.hasOwnProperty("setValue"))throw new Error(`ITD Reference Error: You must declare the 'setValue' function on the field "${e}"`);{let i=y(e),a=!1;a=Array.isArray(i)&&Array.isArray(t)?Aa(i,t):Array.isArray(i)||Array.isArray(t)?i.toString()===t.toString():i===t,a||o[e].field.current?.setValue(t,r,n)}}else console.error(`ITD Form Error [setFieldValueByName]: There is no field registered with this name: ${e}`)}return{register:function(e){o[e.name]={name:e.name,field:e.field,value:e.field.current?.getValue(),valid:e.valid,query:e.query,reset:e.reset,error:e.error}},unregister:function(e){h(e)?(delete o[e],x()):console.error(`ITD Form Error [unregister]: There is no field registered with this name: ${e}`)},scrollTo:function(e,t){if(!h(e))return console.error(`ITD Form Error [scrollTo]: There is no field registered with this name: ${e}`),!1;const r=g(e);if(r&&"function"==typeof r.scrollIntoView)return r.scrollIntoView(t),!0;if("undefined"!=typeof document){const r=document.getElementById(`${l}_${e}`);if(r&&"function"==typeof r.scrollIntoView)return r.scrollIntoView(void 0!==t?t:{behavior:"smooth",block:"center",inline:"nearest"}),!0}return!1},checkFormIsValid:x,hasField:h,getValues:m,getFieldValue:function(e){return h(e)?(t=o[e].value)instanceof Object?JSON.stringify(t):t:"";var t},getFieldValueByName:y,getFieldInstance:g,getFields:function(){let e={};return Object.keys(o).forEach(t=>{e[t]=o[t]}),e},getFieldsInstance:function(){let e={};return Object.keys(o).forEach(t=>{e[t]=o[t].field.current}),e},setName:function(e){d(e)},setInitialValues:function(e,n=!0,i=!1){Object.keys(e).forEach(t=>{A(t,e[t],n,i)});let o={};return Object.keys(e).forEach(t=>{o[t]=e[t]}),n&&(t&&f(o),r&&r(o)),x(),o},setInvalidField:function(e="",t=""){v(e,t),x()},setInvalidFields:function(e=[],t=""){e.forEach(e=>{v(e,t)}),x()},setFieldValue:function(e,t){h(e)?o[e].field.current?.setValue(t,!0,!0):console.error(`ITD Form Error [setFieldValue]: There is no field registered with this name: ${e}`)},setFieldValueByName:A,setFieldError:v,removeFieldError:function(e){if(h(e)){if(o[e].valid=!0,o[e].error="",!o[e].field.current?.hasOwnProperty("setError"))throw new Error(`ITD Reference Error: You must declare the 'setError' function on the field "${e}"`);o[e].field.current?.setError("")}else console.error(`ITD Form Error [removeFieldError]: There is no field registered with this name: ${e}`)},updateField:function(e,n,a,l){if(h(e)){if(o[e].value=n,o[e].valid=l,a){i&&i({name:e,value:n,valid:l}),o[e].reset.length>0&&o[e].reset.forEach(e=>{o[e].value="",o[e].valid=!1,o[e].field.current?.reset(!1)});let a={...m(),[e]:n};o[e].reset.length>0&&o[e].reset.forEach(e=>{a[e]=""}),t&&l&&f(a),r&&r(a)}x()}else console.error(`ITD Form Error [updateField]: There is no field registered with this name: ${e}`)},isFormValid:b(()=>c,[c]),isFieldsValid:function(e){let t=!0;return e.forEach(e=>{o[e].valid||(t=!1)}),t},isFieldValid:function(e){return o[e].valid},resetFields:function(e=!1,t=!1){Object.keys(o).forEach(r=>{if(!o[r].field.current?.hasOwnProperty("reset"))throw new Error(`ITD Reference Error: You must declare the 'reset' function on the field "${r}"`);o[r].field.current?.reset(e,t)}),n&&n()},removeFields:function(){a({})},formId:l,updated:p}}const vu=x(({initialValues:e,children:t,onUpdate:r,onReset:i,onFinish:o,onFinishFailed:a,onFieldUpdate:l,onValidated:s,useQueryString:u,className:p,name:f},h)=>{const g=c(null);d(()=>()=>{g.current=null},[]),g.current=bu({name:f,onUpdate:r,onReset:i,onFieldUpdate:l,useQueryString:u}),y(h,()=>g.current);return n(fu.Provider,{value:g.current,children:n(mu,{initialValues:e,useQueryString:u,onUpdate:r,onFinish:o,onFinishFailed:a,onValidated:s,name:f,className:(()=>{let e="itd-form";return f&&(e+=" "+f),p&&(e+=" "+p),e})(),children:t})})});vu.Item=hu,vu.Group=function({gap:e=15,horizontal:t=!1,className:r,children:i}){return n(Gc,{className:(()=>{let e="itd-form-group";return r&&(e+=" "+r),e})(),$gap:e,$horizontal:t,children:i})},vu.Control=function({position:e="end",className:t,children:r}){return n(Yc,{className:(()=>{let e="itd-form-control";return t&&(e+=" "+t),e})(),$position:e,children:r})},vu.useForm=()=>u(fu),vu.useFormAPI=()=>{const e=u(fu);if(!e)throw new Error("useFormAPI must be used within a FormContext.Provider");return e};const xu=M.div`
2385
+ `;const Wc=new RegExp(/^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/),qc=new RegExp(/^[a-zA-Z0-9_.-]+$/),Xc=new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+={};:<>|./?,"'\[\]\\`~\-])[a-zA-Z\d$begin:math:display$$end:math:display$\\`~!@#$%^&*()_+={};:<>|.\/?,"'-]{8,60}$/),Kc=new RegExp(/^[a-z0-9._-]+$/),Jc=new RegExp(/^[a-zA-Z0-9]+$/),Zc=new RegExp(/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/);const Qc=e=>Xc.test(e),eu=e=>Wc.test(e),tu=e=>qc.test(e),ru=(e,t)=>e.length>=t,nu=(e,t)=>e.length<=t,iu=(e,t)=>e===t,ou=(e,t)=>e!==t,au=(e,t)=>e.length===t,lu=e=>Kc.test(e),su=e=>Jc.test(e),du=e=>Zc.test(e),cu=(e,t)=>{if(!Array.isArray(t)||0===t.length)return!0;const r=String(e).trim().toLowerCase();return!t.some(e=>r===String(e).trim().toLowerCase())},uu=e=>function(e){var t,r=0,n=0,i=0;if(11!=e.length)return!1;if(!/^-?\d+$/.test(e))return!1;if(0==Number(e[0]))return!1;if(r=parseInt(e[0])+parseInt(e[2])+parseInt(e[4])+parseInt(e[6])+parseInt(e[8]),t=parseInt(e[1])+parseInt(e[3])+parseInt(e[5])+parseInt(e[7]),r*=7,Math.abs(r-t)%10!=Number(e[9]))return!1;for(i=0;i<10;i++)n+=parseInt(e[i]);return n%10==Number(e[10])}(e),pu=e=>{if(Array.isArray(e)){if(0===e.length)return!1}else{if("object"==typeof e){let t=!0;return Object.keys(e).forEach(r=>{""===e[r]&&(t=!1)}),t}if("string"==typeof e){if(""===e)return!1}else if("boolean"==typeof e&&!1===e)return!1}return!0},fu=m({});fu.displayName="ITDFormContext";const hu=x(({name:e="",id:r="",label:n="",placeholder:i="",error:o="",rules:a=[],mask:l=null,locked:p=!1,dependency:f="",reset:h=[],query:m="",children:b=null},v)=>{const{t:x}=t("itd"),A=c(null),w=c(""),{register:k,unregister:_,hasField:S,updateField:E,setFieldError:C,getFieldValue:$,getFieldInstance:L,formId:F}=u(fu),[N,z]=s(!1);d(()=>(k({name:e,field:A,valid:M(A.current?.getValue(),!1),query:m,reset:h,error:o}),z(!0),w.current=JSON.stringify(a),()=>{z(!1),_(e)}),[]),d(()=>{const t=JSON.stringify(a);if(N&&A.current&&w.current!==t){const r=()=>{const t=A.current.getValue(),r=a.find(e=>e.hasOwnProperty("required"));if(!r||r.required||""!==t&&null!=t){const r=M(t,!1);S(e)&&E(e,t,!1,r)}else C(e,"",!0),S(e)&&E(e,t,!1,!0)};"development"===process.env.NODE_ENV?requestAnimationFrame(r):r(),w.current=t}},[a,N]),y(v,()=>A.current);const D=(t,r=!0,n=!0)=>{N&&S(e)&&(E(e,t,r,M(t,n)),T())},M=(t,r=!0)=>{const n=function(e,t,r,n){let i=[];return e.forEach(e=>{if(e.hasOwnProperty(U.REQUIRED)&&!pu(t)&&e.required&&i.push(e.message?e.message:n("errors.required")),e.hasOwnProperty(U.TYPE)&&(e.type===G.MIN_LENGTH&&(ru(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.minLength",{length:Number(e.value)}))),e.type===G.MAX_LENGTH&&(nu(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.maxLength",{length:Number(e.value)}))),e.type===G.EXACT_LENGTH&&(au(String(t),Number(e.value))||i.push(e.message?e.message:n("errors.exactLength",{length:Number(e.value)}))),e.type===G.SAME&&(iu(String(t),String(r(String(e.field))))||i.push(e.message?e.message:n("errors.fieldMustBeTheSame",{fields:e.field}))),e.type===G.NOT_SAME&&(ou(String(t),String(r(String(e.field))))||i.push(e.message?e.message:n("errors.fieldMustBeDifferent",{fields:e.field}))),e.type===G.TC_IDENTITY&&(uu(String(t))||i.push(e.message?e.message:n("errors.wrongTCIdentity"))),e.type===G.PASSWORD&&(Qc(String(t))||i.push(e.message?e.message:n("errors.passwordRule"))),e.type===G.EMAIL&&(eu(String(t))||i.push(e.message?e.message:n("errors.invalidEmailAddress"))),e.type===G.USERNAME&&(tu(String(t))||i.push(e.message?e.message:n("errors.usernameRule"))),e.type===G.SITE_USERNAME&&(lu(String(t))||i.push(e.message?e.message:n("errors.siteUsernameRule"))),e.type===G.ADMIN_USERNAME&&(su(String(t))||i.push(e.message?e.message:n("errors.adminUsernameRule"))),e.type===G.URL&&(du(String(t))||i.push(e.message?e.message:n("errors.invalidURL"))),e.type===G.FORBIDDEN_WORDS)){const r=Array.isArray(e.value)?e.value:void 0!==e.value?[e.value]:[];cu(String(t),r)||i.push(e.message?e.message:n("errors.forbiddenWords"))}}),i}(a,t,$,x);return n.length>0?!!(r||""!==t&&null!=t)&&(r&&C(e,n[0],r),!1):(r&&C(e,""),!0)},T=()=>{if(""===f)return;if(""===$(f))return;const e=L(f);e&&e.forceUpdate&&e.forceUpdate()};return(()=>{if(!b)return null;let t=b.props;const o={id:t.id?t.id:r||F+"_"+e,label:n,placeholder:i,className:t.className?t.className+" itd-form-item":"itd-form-item",onUpdate:D,ref:A};return l&&(o.mask=l),p&&(o.locked=p),g(b,{...t,...o})})()}),gu=x(({name:e="",className:t="",initialValues:r={},useQueryString:i=!1,onUpdate:o,onFinish:a,onFinishFailed:l,onValidated:c,children:p},f)=>{const{updated:h,setInitialValues:g,isFormValid:m,getValues:b,getFields:v,setFieldValueByName:x,resetFields:A}=u(fu),w=me(),{search:k}=z(),_=be(),[S,E]=s([]),[C,$]=s(!1),[L,F]=s([]),[N,D]=s(!1),[M,T]=s(!1);d(()=>{p&&H()},[p]),d(()=>{O(),I()},[N]),d(()=>{N||0!==Object.keys(v()).length&&0!==L.length&&Object.keys(v()).length===L.length&&D(!0)},[v(),L]),d(()=>{I()},[r]),d(()=>{O()},[k]),d(()=>{M&&N&&i&&Object.keys(h).length>0&&V(h)},[h]),d(()=>{c&&m()!==C&&c(m()),$(m())},[m()]);const O=()=>{N&&i&&(j(),M||P())},I=()=>{N&&(i||M||R())},R=()=>{const e=!Object.values(r).some(e=>null!==e&&""!==e);e&&!M&&T(!0),e||M||(g(r,!1),T(!0))},P=()=>{const e=v(),t=!Object.values(e).some(e=>""!==w.get(e.query,""));if(Object.values(e).some(e=>null===e.query||""===e.query)){let t=[];throw Object.keys(e).forEach(r=>{e[r].hasOwnProperty("query")&&null!==e[r].query&&""!==e[r].query||t.push(r)}),new Error(`ITD Form Initial Fields Error: "useQueryString" is activated but "query" value is not passed to whole form elements! Invalid fields are ${t.toString()}`)}if(t&&!M&&T(!0),!t&&!M){let t={};Object.keys(e).forEach(r=>{t[r]=w.get(e[r].query,"")}),g(t,!0,!0),T(!0)}},V=e=>{let t=[],r=[];const n=v();Object.keys(e).forEach(t=>{r.push(e[t])}),Aa(r,S)||(Object.keys(n).forEach(r=>{t.push({type:n[r].query,value:e[r]})}),_.set(t))},j=()=>{let e=[],t=[];const r=v();if(Object.keys(r).forEach(t=>{let n=String(w.get(r[t].query,""));e.push(n)}),Aa(e,S))return;E(e),Object.keys(r).forEach(e=>{t[e]=w.get(r[e].query,"")}),Object.keys(t).forEach(e=>{x(e,t[e],!1,!1)});let n={};Object.keys(t).forEach(e=>{n[e]=t[e]}),o&&o(n)},H=()=>{let e=[];B(p,t=>(t.hasOwnProperty("type")&&t.type===hu&&e.push({[t.props.name]:t}),!0)),F(e)};return y(f,()=>({fieldUpdate(e){console.log("fieldUpdate"),console.log(e)}})),n("form",{id:e,onSubmit:e=>{e&&(e.preventDefault(),e.stopPropagation()),m()?a&&a(b()):l&&l(v())},onReset:e=>{e&&(e.preventDefault(),e.stopPropagation());let t=[];Object.keys(v()).map(e=>{t.push({type:e,value:""})}),_.set(t),A(!0,!1)},autoComplete:"off",className:t,noValidate:!0,children:p})});var mu=f(gu);function bu({name:e="",useQueryString:t=!1,onUpdate:r,onReset:n,onFieldUpdate:i}){const[o,a]=s({}),[l,d]=s(e),[c,u]=s(!1),[p,f]=s({});function h(e){return o.hasOwnProperty(e)&&void 0!==o[e]}function g(e){return h(e)?o[e].field.current:null}function m(){let e={};return Object.keys(o).forEach(t=>{e[t]=y(t)}),e}function v(e,t,r=!0){if(h(e)&&o[e].field.current){if(o[e].valid=!1,o[e].error=t,!o[e].field.current?.hasOwnProperty("setError"))throw new Error(`ITD Reference Error: You must declare the 'setError' function on the field "${e}"`);o[e].field.current?.setError?.(r?t:"")}}function x(){let e=!0;return Object.keys(o).forEach(t=>{o[t].valid||(e=!1)}),u(e),e}function y(e){if(h(e)){if(o[e].field.current?.hasOwnProperty("getValue"))return o[e].field.current?.getValue();throw new Error(`ITD Reference Error: You must declare the 'getValue' function on the field "${e}"`)}console.error(`ITD Form Error [getFieldValueByName]: There is no field registered with this name: ${e}`)}function A(e,t,r,n){if(h(e)){if(!o[e].field.current?.hasOwnProperty("setValue"))throw new Error(`ITD Reference Error: You must declare the 'setValue' function on the field "${e}"`);{let i=y(e),a=!1;a=Array.isArray(i)&&Array.isArray(t)?Aa(i,t):Array.isArray(i)||Array.isArray(t)?i.toString()===t.toString():i===t,a||o[e].field.current?.setValue(t,r,n)}}else console.error(`ITD Form Error [setFieldValueByName]: There is no field registered with this name: ${e}`)}return{register:function(e){o[e.name]={name:e.name,field:e.field,value:e.field.current?.getValue(),valid:e.valid,query:e.query,reset:e.reset,error:e.error}},unregister:function(e){h(e)?(delete o[e],x()):console.error(`ITD Form Error [unregister]: There is no field registered with this name: ${e}`)},scrollTo:function(e,t){if(h(e)){const r=g(e);if(r&&"function"==typeof r.scrollIntoView)return r.scrollIntoView(t),!0}if("undefined"!=typeof document){const r=document.getElementById(l);if(r){const n=r.querySelector(`#${e}`);if(n&&"function"==typeof n.scrollIntoView)return n.scrollIntoView(void 0!==t?t:{behavior:"smooth",block:"center",inline:"nearest"}),!0}const n=document.getElementById(e);if(n&&"function"==typeof n.scrollIntoView)return n.scrollIntoView(void 0!==t?t:{behavior:"smooth",block:"center",inline:"nearest"}),!0}return console.error(`ITD Form Error [scrollTo]: Could not find element in form '${l}' by name/id '${e}'`),!1},checkFormIsValid:x,hasField:h,getValues:m,getFieldValue:function(e){return h(e)?(t=o[e].value)instanceof Object?JSON.stringify(t):t:"";var t},getFieldValueByName:y,getFieldInstance:g,getFields:function(){let e={};return Object.keys(o).forEach(t=>{e[t]=o[t]}),e},getFieldsInstance:function(){let e={};return Object.keys(o).forEach(t=>{e[t]=o[t].field.current}),e},setName:function(e){d(e)},setInitialValues:function(e,n=!0,i=!1){Object.keys(e).forEach(t=>{A(t,e[t],n,i)});let o={};return Object.keys(e).forEach(t=>{o[t]=e[t]}),n&&(t&&f(o),r&&r(o)),x(),o},setInvalidField:function(e="",t=""){v(e,t),x()},setInvalidFields:function(e=[],t=""){e.forEach(e=>{v(e,t)}),x()},setFieldValue:function(e,t){h(e)?o[e].field.current?.setValue(t,!0,!0):console.error(`ITD Form Error [setFieldValue]: There is no field registered with this name: ${e}`)},setFieldValueByName:A,setFieldError:v,removeFieldError:function(e){if(h(e)){if(o[e].valid=!0,o[e].error="",!o[e].field.current?.hasOwnProperty("setError"))throw new Error(`ITD Reference Error: You must declare the 'setError' function on the field "${e}"`);o[e].field.current?.setError?.("")}else console.error(`ITD Form Error [removeFieldError]: There is no field registered with this name: ${e}`)},updateField:function(e,n,a,l){if(h(e)){if(o[e].value=n,o[e].valid=l,a){i&&i({name:e,value:n,valid:l}),o[e].reset.length>0&&o[e].reset.forEach(e=>{o[e].value="",o[e].valid=!1,o[e].field.current?.reset(!1)});let a={...m(),[e]:n};o[e].reset.length>0&&o[e].reset.forEach(e=>{a[e]=""}),t&&l&&f(a),r&&r(a)}x()}else console.error(`ITD Form Error [updateField]: There is no field registered with this name: ${e}`)},isFormValid:b(()=>c,[c]),isFieldsValid:function(e){let t=!0;return e.forEach(e=>{o[e].valid||(t=!1)}),t},isFieldValid:function(e){return o[e].valid},resetFields:function(e=!1,t=!1){Object.keys(o).forEach(r=>{if(!o[r].field.current?.hasOwnProperty("reset"))throw new Error(`ITD Reference Error: You must declare the 'reset' function on the field "${r}"`);o[r].field.current?.reset(e,t)}),n&&n()},removeFields:function(){a({})},formId:l,updated:p}}const vu=x(({initialValues:e,children:t,onUpdate:r,onReset:i,onFinish:o,onFinishFailed:a,onFieldUpdate:l,onValidated:s,useQueryString:u,className:p,name:f},h)=>{const g=c(null);d(()=>()=>{g.current=null},[]),g.current=bu({name:f,onUpdate:r,onReset:i,onFieldUpdate:l,useQueryString:u}),y(h,()=>g.current);return n(fu.Provider,{value:g.current,children:n(mu,{initialValues:e,useQueryString:u,onUpdate:r,onFinish:o,onFinishFailed:a,onValidated:s,name:f,className:(()=>{let e="itd-form";return f&&(e+=" "+f),p&&(e+=" "+p),e})(),children:t})})});vu.Item=hu,vu.Group=function({gap:e=15,horizontal:t=!1,className:r,children:i}){return n(Gc,{className:(()=>{let e="itd-form-group";return r&&(e+=" "+r),e})(),$gap:e,$horizontal:t,children:i})},vu.Control=function({position:e="end",className:t,children:r}){return n(Yc,{className:(()=>{let e="itd-form-control";return t&&(e+=" "+t),e})(),$position:e,children:r})},vu.useForm=()=>u(fu),vu.useFormAPI=()=>{const e=u(fu);if(!e)throw new Error("useFormAPI must be used within a FormContext.Provider");return e};const xu=M.div`
2386
2386
 
2387
2387
  &.itd-accordion-menu-sub-menu {
2388
2388
 
@@ -2,10 +2,10 @@ export type ITDImperativeFuncProps = {
2
2
  reset: (update?: boolean, validation?: boolean) => void;
3
3
  setValue: (value: any, update?: boolean, validation?: boolean) => void;
4
4
  getValue: () => any;
5
- setError: (message: string) => void;
5
+ setError?: (message: string) => void;
6
6
  setFocus?: () => void;
7
7
  setDisabled?: (value: boolean) => void;
8
8
  forceUpdate?: () => void;
9
- clear: () => void;
9
+ clear?: () => void;
10
10
  scrollIntoView?: (options?: ScrollIntoViewOptions | boolean) => void;
11
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inntechcorp/it-design",
3
- "version": "2.2.84",
3
+ "version": "2.2.85",
4
4
  "description": "All in one Design library for web applications.",
5
5
  "author": "Inn.Tech",
6
6
  "license": "ISC",