@bgscore/react-core 0.0.39 → 0.0.40
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.cjs +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var z=require('moment'),te=require('react'),jsxRuntime=require('react/jsx-runtime'),ce=require('crypto-js/aes'),ue=require('crypto-js/pbkdf2'),Se=require('crypto-js/enc-utf8'),W=require('crypto-js/enc-base64'),pe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),Me=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var te__default=/*#__PURE__*/_interopDefault(te);var ce__default=/*#__PURE__*/_interopDefault(ce);var ue__default=/*#__PURE__*/_interopDefault(ue);var Se__default=/*#__PURE__*/_interopDefault(Se);var W__default=/*#__PURE__*/_interopDefault(W);var pe__default=/*#__PURE__*/_interopDefault(pe);var Me__default=/*#__PURE__*/_interopDefault(Me);function Ge(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Xe(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ye=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ze(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var se={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=se.snackCase(se.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Qe(e,t){return typeof e=="function"?e(t):e}var N=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},et={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},tt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?N(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function nt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Te(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ae(e,t){return Te([t??"undefined",e??"undefined"])}function ie(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function rt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var le=te.createContext(void 0);function F(){let e=te.useContext(le);return e||{}}var De=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(le.Provider,{value:n,children:e})};function _(e,t){let n=pe__default.default.random(16),o=pe__default.default.random(16),s=ue__default.default(t,n,{keySize:256/32,iterations:1e3}),a=ce__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W__default.default),iv:o.toString(W__default.default),encrypted:a}}function G(e,t){let{salt:n,iv:o,encrypted:s}=e,a=ue__default.default(t,W__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=ce__default.default.decrypt(s,a,{iv:W__default.default.parse(o)}).toString(Se__default.default);return JSON.parse(r)}function fe(e,t){return JSON.stringify(_(e,t))}function de(e,t){return G(JSON.parse(e),t)}function j(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return _(t,n||e)},decrypt(t,n){return G(t,n||e)},encryptString(t,n){return fe(t,n||e)},decryptString(t,n){return de(t,n||e)}}}var me=()=>{let{encrypt:e,decrypt:t}=j(),n=te.useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=te.useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=te.useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return te.useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(q){console.error("Decrypt error from storage event",q);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=te.useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var V={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=zustand.create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||V,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:V}}))}));var Y=new Map,ye=(e,t)=>{Y.set(e,t);},ge=e=>{Y.delete(e);},Re=e=>Y.get(e);function Ue(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),y=B(({states:u})=>u[p]?.isCancel??false),q=B(({states:u})=>u[p]?.loading??false),D=B(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=F(),I=me(),w=te.useRef(void 0),k=te.useRef(null),{cacheName:H,cacheKey:E,timeout:ne,timeoutUnit:re,persistence:J,cacheEnabled:m}=te.useMemo(()=>{let u=O?I.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ae({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,v="s";return K(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,v="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,v=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,v=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:v,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);te.useEffect(()=>{let u=JSON.stringify(K(w.current)?w.current:""),g=JSON.stringify(K(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,M);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),te.useEffect(()=>{let u=async()=>{!J&&H&&E&&(await caches.open(H)).delete(E);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),k.current?.abort();}},[J,H,E,p,k]);let f=te.useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(H),S=await(await x.match(E))?.json();if(S){let{data:T,expired:v}=S;if(z__default.default().isAfter(v))await x.delete(E);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){k.current?.abort();let x=new AbortController;k.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=z__default.default().add(ne,re).toISOString(),T={data:d,expired:S},v=await caches.open(H),oe=new Response(JSON.stringify(T));await v.put(E,oe);}}},[c,t,r,y]);te.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},z__default.default.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=te.useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:U}=te.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);te.useEffect(()=>{if(!b)return;let u=z__default.default.duration(A,U).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,A,U,f]);let R=te.useCallback(()=>{k.current?.abort(),k.current=null,l(p,{loading:false,isCancel:true});},[p,k]),L=te.useCallback(()=>{l(p,{loading:false,response:null});},[p]),M={...D,loading:q,refresh:f,abort:R,clear:L,response:D,isCancel:y,clone:(u,g)=>Ue(t,u,g)};return te.useEffect(()=>(ye(p,M),()=>{ge(p);}),[M,p]),[D?.data,M]}async function Et(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ve||{}),Ne=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(Ne||{});var Lt=(e,t,n)=>{let{format:o}=F();return t==="number"?Fe(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Be(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?Ke(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ke(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=ie(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Fe(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Be(e,{display:t,value:n}){if(!K(e))return e;let o=z__default.default(e,n);return o.isValid()?o.format(t):e}function Wt(e,{interval:t,lead:n}){let o=te.useRef(null);te.useEffect(()=>{o.current=e;},[e]),te.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function zt(e,t,n){let[o,s]=te.useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:q}=l,D=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,q)&&(t==="ctrl"&&D||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?D:P==="alt"?O:P==="shift"?h:false);a(y,q)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,q)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return te.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Qt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:q,passphrase:D})=>{let{encrypt:O,decrypt:h,passphrase:C}=j(),P=(m,f,i,b)=>{let A=b?.code==="ERR_CANCELED",U=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:q)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:D;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:A,isUnauthorization:U},b),isCancel:A,isUnauthorization:U,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!U;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!A||!g)&&c(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},I=(m,f=()=>{})=>Me__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},L={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(L.Authorization=`Bearer ${t}`):R.token&&(L.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?C:A.passphrase:D;i=O(i,u);}return I({url:f,method:m,data:i,headers:L,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:I,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let A=new FormData;return Object.keys(f).forEach(U=>A.append(U,f[U])),w("POST",`${m}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function nn(e,t){let[n,o]=te.useState(false),[s,a]=te.useState(),[c,r]=te.useState(0),p=te.useRef(null);return te.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async D=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(D=t?.beforeRequest(D)),t?.logging&&console.log("Before request",D);let h={...t,signal:O.signal,onUploadProgress:P=>{let I=Math.round(P.loaded*100/(P.total||1));r(I);}},C=e.__isVoid?await e(void 0,h):await e(D,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function je(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var Ve=typeof window<"u"?window:null;function sn(e={}){let{getTrigger:t=je,target:n=Ve,disableHysteresis:o=false,threshold:s=100}=e,a=te__default.default.useRef(0),[c,r]=te__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return te__default.default.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var cn=(e,t)=>{let n=t||e.__path||e.name,o=B(({states:p})=>p[n]??V),{refresh:s,abort:a,clear:c,clone:r}=Re(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var dn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},mn=(e,t)=>{let n={};n.others=[];let o=s=>{te__default.default.Children.forEach(s,a=>{if(te__default.default.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Rn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=te.useRef(r?r(t):t);return te.useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function _e(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=_e(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=De;exports.DataTypeEnum=Ne;exports.HttpMethod=ve;exports.capitalizeWords=ie;exports.createApiHelper=Qt;exports.createElement=dn;exports.createStore=Rn;exports.debounce=rt;exports.decrypt=G;exports.decryptString=de;exports.diffJson=Xe;exports.encrypt=_;exports.encryptString=fe;exports.generateCacheKey=ae;exports.generateUUID=Ge;exports.getFieldValue=N;exports.isArray=Ze;exports.isNotEmpty=K;exports.jsonCopy=nt;exports.labelFormatter=se;exports.mappingUndefinedtoNull=Ye;exports.renderChildren=Qe;exports.sorting=et;exports.splitElement=mn;exports.stableStringify=Te;exports.summary=tt;exports.useApiLoad=Ue;exports.useApiSend=nn;exports.useApiStore=cn;exports.useBgsCore=F;exports.useCrypto=j;exports.useDelay=Et;exports.useFormatted=Lt;exports.useInterval=Wt;exports.useKeyPress=zt;exports.useScrollTrigger=sn;exports.useStorage=me;exports.wrapApi=_e;
|
|
1
|
+
'use strict';var z=require('moment'),te=require('react'),jsxRuntime=require('react/jsx-runtime'),ce=require('crypto-js/aes'),ue=require('crypto-js/pbkdf2'),Se=require('crypto-js/enc-utf8'),V=require('crypto-js/enc-base64'),pe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),Le=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var te__default=/*#__PURE__*/_interopDefault(te);var ce__default=/*#__PURE__*/_interopDefault(ce);var ue__default=/*#__PURE__*/_interopDefault(ue);var Se__default=/*#__PURE__*/_interopDefault(Se);var V__default=/*#__PURE__*/_interopDefault(V);var pe__default=/*#__PURE__*/_interopDefault(pe);var Le__default=/*#__PURE__*/_interopDefault(Le);function Ge(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Xe(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ye=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ze(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var se={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=se.snackCase(se.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Qe(e,t){return typeof e=="function"?e(t):e}var N=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},et={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},tt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?N(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function nt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Te(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ae(e,t){return Te([t??"undefined",e??"undefined"])}function ie(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function rt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var le=te.createContext(void 0);function F(){let e=te.useContext(le);return e||{}}var De=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(le.Provider,{value:n,children:e})};function _(e,t){let n=pe__default.default.random(16),o=pe__default.default.random(16),s=ue__default.default(t,n,{keySize:256/32,iterations:1e3}),a=ce__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(V__default.default),iv:o.toString(V__default.default),encrypted:a}}function G(e,t){let{salt:n,iv:o,encrypted:s}=e,a=ue__default.default(t,V__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=ce__default.default.decrypt(s,a,{iv:V__default.default.parse(o)}).toString(Se__default.default);return JSON.parse(r)}function fe(e,t){return JSON.stringify(_(e,t))}function de(e,t){return G(JSON.parse(e),t)}function W(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return _(t,n||e)},decrypt(t,n){return G(t,n||e)},encryptString(t,n){return fe(t,n||e)},decryptString(t,n){return de(t,n||e)}}}var me=()=>{let{encrypt:e,decrypt:t}=W(),n=te.useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=te.useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=te.useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return te.useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(q){console.error("Decrypt error from storage event",q);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=te.useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var j={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},M=zustand.create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||j,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:j}}))}));var Y=new Map,ye=(e,t)=>{Y.set(e,t);},ge=e=>{Y.delete(e);},Re=e=>Y.get(e);function Ue(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=M(),y=M(({states:u})=>u[p]?.isCancel??false),q=M(({states:u})=>u[p]?.loading??false),D=M(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=F(),B=me(),w=te.useRef(void 0),k=te.useRef(null),{cacheName:I,cacheKey:E,timeout:ne,timeoutUnit:re,persistence:J,cacheEnabled:m}=te.useMemo(()=>{let u=O?B.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ae({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,v="s";return K(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,v="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,v=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,v=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:v,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);te.useEffect(()=>{let u=JSON.stringify(K(w.current)?w.current:""),g=JSON.stringify(K(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,L);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),te.useEffect(()=>{let u=async()=>{!J&&I&&E&&(await caches.open(I)).delete(E);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),k.current?.abort();}},[J,I,E,p,k]);let f=te.useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),S=await(await x.match(E))?.json();if(S){let{data:T,expired:v}=S;if(z__default.default().isAfter(v))await x.delete(E);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){k.current?.abort();let x=new AbortController;k.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=z__default.default().add(ne,re).toISOString(),T={data:d,expired:S},v=await caches.open(I),oe=new Response(JSON.stringify(T));await v.put(E,oe);}}},[c,t,r,y]);te.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},z__default.default.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=te.useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:U}=te.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);te.useEffect(()=>{if(!b)return;let u=z__default.default.duration(A,U).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,A,U,f]);let R=te.useCallback(()=>{k.current?.abort(),k.current=null,l(p,{loading:false,isCancel:true});},[p,k]),H=te.useCallback(()=>{l(p,{loading:false,response:null});},[p]),L={...D,loading:q,refresh:f,abort:R,clear:H,response:D,isCancel:y,clone:(u,g)=>Ue(t,u,g)};return te.useEffect(()=>(ye(p,L),()=>{ge(p);}),[L,p]),[D?.data,L]}async function Et(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ve||{}),Ne=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(Ne||{});var Ht=(e,t,n)=>{let{format:o}=F();return t==="number"?Fe(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Me(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?Ke(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ke(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=ie(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Fe(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Me(e,{display:t,value:n}){if(!K(e))return e;let o=z__default.default(e,n);return o.isValid()?o.format(t):e}function Vt(e,{interval:t,lead:n}){let o=te.useRef(null);te.useEffect(()=>{o.current=e;},[e]),te.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function zt(e,t,n){let[o,s]=te.useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:q}=l,D=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,q)&&(t==="ctrl"&&D||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?D:P==="alt"?O:P==="shift"?h:false);a(y,q)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,q)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return te.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Qt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:q,passphrase:D})=>{let{encrypt:O,decrypt:h,passphrase:C}=W(),P=(m,f,i,b)=>{let A=b?.code==="ERR_CANCELED",U=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:q)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:D;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:A,isUnauthorization:U},b),isCancel:A,isUnauthorization:U,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!U;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!A||!g)&&c(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},B=(m,f=()=>{})=>Le__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},H={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(H.Authorization=`Bearer ${t}`):R.token&&(H.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?C:A.passphrase:D;i=O(i,u);}return B({url:f,method:m,data:i,headers:H,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:B,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let A=new FormData;return Object.keys(f).forEach(U=>A.append(U,f[U])),w("POST",`${m}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function nn(e,t){let[n,o]=te.useState(false),[s,a]=te.useState(),[c,r]=te.useState(0),p=te.useRef(null);return te.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async D=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(D=t?.beforeRequest(D)),t?.logging&&console.log("Before request",D);let h={...t,signal:O.signal,onUploadProgress:P=>{let B=Math.round(P.loaded*100/(P.total||1));r(B);}},C=e.__isVoid?await e(void 0,h):await e(D,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function We(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var je=typeof window<"u"?window:null;function sn(e={}){let{getTrigger:t=We,target:n=je,disableHysteresis:o=false,threshold:s=100}=e,a=te__default.default.useRef(0),[c,r]=te__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return te__default.default.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var cn=(e,t)=>{let n=t||e.__path||e.name,o=M(({states:p})=>p[n]??j),{refresh:s,abort:a,clear:c,clone:r}=Re(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var dn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},mn=(e,t)=>{let n={};n.others=[];let o=s=>{te__default.default.Children.forEach(s,a=>{if(te__default.default.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Rn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=te.useRef(r?r(t):t);return te.useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function _e(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=_e(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=De;exports.DataTypeEnum=Ne;exports.HttpMethod=ve;exports.capitalizeWords=ie;exports.createApiHelper=Qt;exports.createElement=dn;exports.createStore=Rn;exports.debounce=rt;exports.decrypt=G;exports.decryptString=de;exports.diffJson=Xe;exports.encrypt=_;exports.encryptString=fe;exports.generateCacheKey=ae;exports.generateUUID=Ge;exports.getFieldValue=N;exports.isArray=Ze;exports.isNotEmpty=K;exports.jsonCopy=nt;exports.labelFormatter=se;exports.mappingUndefinedtoNull=Ye;exports.renderChildren=Qe;exports.sorting=et;exports.splitElement=mn;exports.stableStringify=Te;exports.summary=tt;exports.useApiLoad=Ue;exports.useApiSend=nn;exports.useApiStore=cn;exports.useBgsCore=F;exports.useCrypto=W;exports.useDelay=Et;exports.useFormatted=Ht;exports.useInterval=Vt;exports.useKeyPress=zt;exports.useScrollTrigger=sn;exports.useStorage=me;exports.wrapApi=_e;
|
package/dist/index.d.cts
CHANGED
|
@@ -451,8 +451,9 @@ declare function useCrypto(): {
|
|
|
451
451
|
decryptString(data: string, passphraseProps?: string | null): string;
|
|
452
452
|
};
|
|
453
453
|
|
|
454
|
-
type
|
|
455
|
-
type
|
|
454
|
+
type AnyApiMethod = ApiMethod<any, any> | ApiMethodVoid<any>;
|
|
455
|
+
type InferApiRequest<T> = T extends ApiMethod<infer Req, any> ? Req : T extends ApiMethodVoid<any> ? never : never;
|
|
456
|
+
type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : T extends ApiMethodVoid<infer Res> ? Res : never;
|
|
456
457
|
/**
|
|
457
458
|
* Hook untuk menggunakan API store yang sesuai dengan method.
|
|
458
459
|
*
|
|
@@ -465,7 +466,7 @@ type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : never;
|
|
|
465
466
|
* const store = useApiStore(api.absence.save, 'absence.save'); // pakai key manual
|
|
466
467
|
* ```
|
|
467
468
|
*/
|
|
468
|
-
declare const useApiStore: <T extends
|
|
469
|
+
declare const useApiStore: <T extends AnyApiMethod>(api: T, key?: string) => UseCallReturnType<InferApiRequest<T>, InferApiResponse<T>>;
|
|
469
470
|
|
|
470
471
|
type CreateElementProps<P = unknown> = {
|
|
471
472
|
(element: (props: P) => React$1.JSX.Element, elementName: string): React$1.FC<P>;
|
package/dist/index.d.ts
CHANGED
|
@@ -451,8 +451,9 @@ declare function useCrypto(): {
|
|
|
451
451
|
decryptString(data: string, passphraseProps?: string | null): string;
|
|
452
452
|
};
|
|
453
453
|
|
|
454
|
-
type
|
|
455
|
-
type
|
|
454
|
+
type AnyApiMethod = ApiMethod<any, any> | ApiMethodVoid<any>;
|
|
455
|
+
type InferApiRequest<T> = T extends ApiMethod<infer Req, any> ? Req : T extends ApiMethodVoid<any> ? never : never;
|
|
456
|
+
type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : T extends ApiMethodVoid<infer Res> ? Res : never;
|
|
456
457
|
/**
|
|
457
458
|
* Hook untuk menggunakan API store yang sesuai dengan method.
|
|
458
459
|
*
|
|
@@ -465,7 +466,7 @@ type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : never;
|
|
|
465
466
|
* const store = useApiStore(api.absence.save, 'absence.save'); // pakai key manual
|
|
466
467
|
* ```
|
|
467
468
|
*/
|
|
468
|
-
declare const useApiStore: <T extends
|
|
469
|
+
declare const useApiStore: <T extends AnyApiMethod>(api: T, key?: string) => UseCallReturnType<InferApiRequest<T>, InferApiResponse<T>>;
|
|
469
470
|
|
|
470
471
|
type CreateElementProps<P = unknown> = {
|
|
471
472
|
(element: (props: P) => React$1.JSX.Element, elementName: string): React$1.FC<P>;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import z from'moment';import te,{createContext,useContext,useCallback,useRef,useMemo,useEffect,useState,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import ce from'crypto-js/aes';import ue from'crypto-js/pbkdf2';import Se from'crypto-js/enc-utf8';import W from'crypto-js/enc-base64';import pe from'crypto-js/lib-typedarrays';import {create}from'zustand';import Me from'axios';function Ge(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Xe(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ye=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ze(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var se={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=se.snackCase(se.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Qe(e,t){return typeof e=="function"?e(t):e}var N=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},et={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},tt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?N(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function nt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Te(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ae(e,t){return Te([t??"undefined",e??"undefined"])}function ie(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function rt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var le=createContext(void 0);function F(){let e=useContext(le);return e||{}}var De=({children:e,value:t})=>{let n={...t};return jsx(le.Provider,{value:n,children:e})};function _(e,t){let n=pe.random(16),o=pe.random(16),s=ue(t,n,{keySize:256/32,iterations:1e3}),a=ce.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W),iv:o.toString(W),encrypted:a}}function G(e,t){let{salt:n,iv:o,encrypted:s}=e,a=ue(t,W.parse(n),{keySize:256/32,iterations:1e3}),r=ce.decrypt(s,a,{iv:W.parse(o)}).toString(Se);return JSON.parse(r)}function fe(e,t){return JSON.stringify(_(e,t))}function de(e,t){return G(JSON.parse(e),t)}function j(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return _(t,n||e)},decrypt(t,n){return G(t,n||e)},encryptString(t,n){return fe(t,n||e)},decryptString(t,n){return de(t,n||e)}}}var me=()=>{let{encrypt:e,decrypt:t}=j(),n=useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(q){console.error("Decrypt error from storage event",q);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var V={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||V,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:V}}))}));var Y=new Map,ye=(e,t)=>{Y.set(e,t);},ge=e=>{Y.delete(e);},Re=e=>Y.get(e);function Ue(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),y=B(({states:u})=>u[p]?.isCancel??false),q=B(({states:u})=>u[p]?.loading??false),D=B(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=F(),I=me(),w=useRef(void 0),k=useRef(null),{cacheName:H,cacheKey:E,timeout:ne,timeoutUnit:re,persistence:J,cacheEnabled:m}=useMemo(()=>{let u=O?I.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ae({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,v="s";return K(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,v="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,v=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,v=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:v,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);useEffect(()=>{let u=JSON.stringify(K(w.current)?w.current:""),g=JSON.stringify(K(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,M);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),useEffect(()=>{let u=async()=>{!J&&H&&E&&(await caches.open(H)).delete(E);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),k.current?.abort();}},[J,H,E,p,k]);let f=useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(H),S=await(await x.match(E))?.json();if(S){let{data:T,expired:v}=S;if(z().isAfter(v))await x.delete(E);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){k.current?.abort();let x=new AbortController;k.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=z().add(ne,re).toISOString(),T={data:d,expired:S},v=await caches.open(H),oe=new Response(JSON.stringify(T));await v.put(E,oe);}}},[c,t,r,y]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},z.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:U}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);useEffect(()=>{if(!b)return;let u=z.duration(A,U).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,A,U,f]);let R=useCallback(()=>{k.current?.abort(),k.current=null,l(p,{loading:false,isCancel:true});},[p,k]),L=useCallback(()=>{l(p,{loading:false,response:null});},[p]),M={...D,loading:q,refresh:f,abort:R,clear:L,response:D,isCancel:y,clone:(u,g)=>Ue(t,u,g)};return useEffect(()=>(ye(p,M),()=>{ge(p);}),[M,p]),[D?.data,M]}async function Et(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ve||{}),Ne=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(Ne||{});var Lt=(e,t,n)=>{let{format:o}=F();return t==="number"?Fe(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Be(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?Ke(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ke(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=ie(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Fe(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Be(e,{display:t,value:n}){if(!K(e))return e;let o=z(e,n);return o.isValid()?o.format(t):e}function Wt(e,{interval:t,lead:n}){let o=useRef(null);useEffect(()=>{o.current=e;},[e]),useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function zt(e,t,n){let[o,s]=useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:q}=l,D=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,q)&&(t==="ctrl"&&D||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?D:P==="alt"?O:P==="shift"?h:false);a(y,q)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,q)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Qt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:q,passphrase:D})=>{let{encrypt:O,decrypt:h,passphrase:C}=j(),P=(m,f,i,b)=>{let A=b?.code==="ERR_CANCELED",U=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:q)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:D;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:A,isUnauthorization:U},b),isCancel:A,isUnauthorization:U,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!U;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!A||!g)&&c(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},I=(m,f=()=>{})=>Me.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},L={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(L.Authorization=`Bearer ${t}`):R.token&&(L.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?C:A.passphrase:D;i=O(i,u);}return I({url:f,method:m,data:i,headers:L,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:I,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let A=new FormData;return Object.keys(f).forEach(U=>A.append(U,f[U])),w("POST",`${m}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function nn(e,t){let[n,o]=useState(false),[s,a]=useState(),[c,r]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async D=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(D=t?.beforeRequest(D)),t?.logging&&console.log("Before request",D);let h={...t,signal:O.signal,onUploadProgress:P=>{let I=Math.round(P.loaded*100/(P.total||1));r(I);}},C=e.__isVoid?await e(void 0,h):await e(D,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function je(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var Ve=typeof window<"u"?window:null;function sn(e={}){let{getTrigger:t=je,target:n=Ve,disableHysteresis:o=false,threshold:s=100}=e,a=te.useRef(0),[c,r]=te.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return te.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var cn=(e,t)=>{let n=t||e.__path||e.name,o=B(({states:p})=>p[n]??V),{refresh:s,abort:a,clear:c,clone:r}=Re(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var dn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},mn=(e,t)=>{let n={};n.others=[];let o=s=>{te.Children.forEach(s,a=>{if(te.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Rn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=useRef(r?r(t):t);return useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function _e(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=_e(s,[...t,o]):n[o]=s;}return n}export{De as BgsCoreProvider,Ne as DataTypeEnum,ve as HttpMethod,ie as capitalizeWords,Qt as createApiHelper,dn as createElement,Rn as createStore,rt as debounce,G as decrypt,de as decryptString,Xe as diffJson,_ as encrypt,fe as encryptString,ae as generateCacheKey,Ge as generateUUID,N as getFieldValue,Ze as isArray,K as isNotEmpty,nt as jsonCopy,se as labelFormatter,Ye as mappingUndefinedtoNull,Qe as renderChildren,et as sorting,mn as splitElement,Te as stableStringify,tt as summary,Ue as useApiLoad,nn as useApiSend,cn as useApiStore,F as useBgsCore,j as useCrypto,Et as useDelay,Lt as useFormatted,Wt as useInterval,zt as useKeyPress,sn as useScrollTrigger,me as useStorage,_e as wrapApi};
|
|
1
|
+
import z from'moment';import te,{createContext,useContext,useCallback,useRef,useMemo,useEffect,useState,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import ce from'crypto-js/aes';import ue from'crypto-js/pbkdf2';import Se from'crypto-js/enc-utf8';import V from'crypto-js/enc-base64';import pe from'crypto-js/lib-typedarrays';import {create}from'zustand';import Le from'axios';function Ge(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Xe(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ye=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ze(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var se={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=se.snackCase(se.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Qe(e,t){return typeof e=="function"?e(t):e}var N=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},et={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=N(n,t)?N(n,t):"",a=N(o,t)?N(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},tt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?N(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function nt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Te(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ae(e,t){return Te([t??"undefined",e??"undefined"])}function ie(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function rt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var le=createContext(void 0);function F(){let e=useContext(le);return e||{}}var De=({children:e,value:t})=>{let n={...t};return jsx(le.Provider,{value:n,children:e})};function _(e,t){let n=pe.random(16),o=pe.random(16),s=ue(t,n,{keySize:256/32,iterations:1e3}),a=ce.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(V),iv:o.toString(V),encrypted:a}}function G(e,t){let{salt:n,iv:o,encrypted:s}=e,a=ue(t,V.parse(n),{keySize:256/32,iterations:1e3}),r=ce.decrypt(s,a,{iv:V.parse(o)}).toString(Se);return JSON.parse(r)}function fe(e,t){return JSON.stringify(_(e,t))}function de(e,t){return G(JSON.parse(e),t)}function W(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return _(t,n||e)},decrypt(t,n){return G(t,n||e)},encryptString(t,n){return fe(t,n||e)},decryptString(t,n){return de(t,n||e)}}}var me=()=>{let{encrypt:e,decrypt:t}=W(),n=useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(q){console.error("Decrypt error from storage event",q);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var j={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},M=create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||j,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:j}}))}));var Y=new Map,ye=(e,t)=>{Y.set(e,t);},ge=e=>{Y.delete(e);},Re=e=>Y.get(e);function Ue(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=M(),y=M(({states:u})=>u[p]?.isCancel??false),q=M(({states:u})=>u[p]?.loading??false),D=M(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=F(),B=me(),w=useRef(void 0),k=useRef(null),{cacheName:I,cacheKey:E,timeout:ne,timeoutUnit:re,persistence:J,cacheEnabled:m}=useMemo(()=>{let u=O?B.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ae({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,v="s";return K(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,v="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,v=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,v=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:v,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);useEffect(()=>{let u=JSON.stringify(K(w.current)?w.current:""),g=JSON.stringify(K(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,L);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),useEffect(()=>{let u=async()=>{!J&&I&&E&&(await caches.open(I)).delete(E);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),k.current?.abort();}},[J,I,E,p,k]);let f=useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),S=await(await x.match(E))?.json();if(S){let{data:T,expired:v}=S;if(z().isAfter(v))await x.delete(E);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){k.current?.abort();let x=new AbortController;k.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=z().add(ne,re).toISOString(),T={data:d,expired:S},v=await caches.open(I),oe=new Response(JSON.stringify(T));await v.put(E,oe);}}},[c,t,r,y]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},z.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:U}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);useEffect(()=>{if(!b)return;let u=z.duration(A,U).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,A,U,f]);let R=useCallback(()=>{k.current?.abort(),k.current=null,l(p,{loading:false,isCancel:true});},[p,k]),H=useCallback(()=>{l(p,{loading:false,response:null});},[p]),L={...D,loading:q,refresh:f,abort:R,clear:H,response:D,isCancel:y,clone:(u,g)=>Ue(t,u,g)};return useEffect(()=>(ye(p,L),()=>{ge(p);}),[L,p]),[D?.data,L]}async function Et(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ve||{}),Ne=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(Ne||{});var Ht=(e,t,n)=>{let{format:o}=F();return t==="number"?Fe(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Me(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?Ke(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ke(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=ie(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Fe(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Me(e,{display:t,value:n}){if(!K(e))return e;let o=z(e,n);return o.isValid()?o.format(t):e}function Vt(e,{interval:t,lead:n}){let o=useRef(null);useEffect(()=>{o.current=e;},[e]),useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function zt(e,t,n){let[o,s]=useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:q}=l,D=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,q)&&(t==="ctrl"&&D||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?D:P==="alt"?O:P==="shift"?h:false);a(y,q)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,q)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Qt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:q,passphrase:D})=>{let{encrypt:O,decrypt:h,passphrase:C}=W(),P=(m,f,i,b)=>{let A=b?.code==="ERR_CANCELED",U=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:q)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:D;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:A,isUnauthorization:U},b),isCancel:A,isUnauthorization:U,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!U;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!A||!g)&&c(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},B=(m,f=()=>{})=>Le.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},H={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(H.Authorization=`Bearer ${t}`):R.token&&(H.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?C:A.passphrase:D;i=O(i,u);}return B({url:f,method:m,data:i,headers:H,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:B,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let A=new FormData;return Object.keys(f).forEach(U=>A.append(U,f[U])),w("POST",`${m}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function nn(e,t){let[n,o]=useState(false),[s,a]=useState(),[c,r]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async D=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(D=t?.beforeRequest(D)),t?.logging&&console.log("Before request",D);let h={...t,signal:O.signal,onUploadProgress:P=>{let B=Math.round(P.loaded*100/(P.total||1));r(B);}},C=e.__isVoid?await e(void 0,h):await e(D,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function We(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var je=typeof window<"u"?window:null;function sn(e={}){let{getTrigger:t=We,target:n=je,disableHysteresis:o=false,threshold:s=100}=e,a=te.useRef(0),[c,r]=te.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return te.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var cn=(e,t)=>{let n=t||e.__path||e.name,o=M(({states:p})=>p[n]??j),{refresh:s,abort:a,clear:c,clone:r}=Re(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var dn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},mn=(e,t)=>{let n={};n.others=[];let o=s=>{te.Children.forEach(s,a=>{if(te.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Rn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=useRef(r?r(t):t);return useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function _e(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=_e(s,[...t,o]):n[o]=s;}return n}export{De as BgsCoreProvider,Ne as DataTypeEnum,ve as HttpMethod,ie as capitalizeWords,Qt as createApiHelper,dn as createElement,Rn as createStore,rt as debounce,G as decrypt,de as decryptString,Xe as diffJson,_ as encrypt,fe as encryptString,ae as generateCacheKey,Ge as generateUUID,N as getFieldValue,Ze as isArray,K as isNotEmpty,nt as jsonCopy,se as labelFormatter,Ye as mappingUndefinedtoNull,Qe as renderChildren,et as sorting,mn as splitElement,Te as stableStringify,tt as summary,Ue as useApiLoad,nn as useApiSend,cn as useApiStore,F as useBgsCore,W as useCrypto,Et as useDelay,Ht as useFormatted,Vt as useInterval,zt as useKeyPress,sn as useScrollTrigger,me as useStorage,_e as wrapApi};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgscore/react-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.40",
|
|
4
4
|
"description": "A React utility library that provides advanced API hooks (fetch, mutation, caching). Built for scalable and flexible data handling in modern React applications.",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|