@bgscore/react-core 0.0.24 → 0.0.26
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 +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -3
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var _=require('moment'),Z=require('react'),jsxRuntime=require('react/jsx-runtime'),le=require('crypto-js/aes'),pe=require('crypto-js/pbkdf2'),Ae=require('crypto-js/enc-utf8'),I=require('crypto-js/enc-base64'),ie=require('crypto-js/lib-typedarrays'),Me=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ___default=/*#__PURE__*/_interopDefault(_);var Z__default=/*#__PURE__*/_interopDefault(Z);var le__default=/*#__PURE__*/_interopDefault(le);var pe__default=/*#__PURE__*/_interopDefault(pe);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var I__default=/*#__PURE__*/_interopDefault(I);var ie__default=/*#__PURE__*/_interopDefault(ie);var Me__default=/*#__PURE__*/_interopDefault(Me);function We(){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 Je(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ze=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function _e(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 re={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=re.snackCase(re.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ge(e,t){return typeof e=="function"?e(t):e}var v=(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},Xe={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(o,t)?v(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=v(n,t)?v(n,t):"",a=v(o,t)?v(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},Ye=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?v(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function Ze(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function he(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 oe(e,t){return he([t??"undefined",e??"undefined"])}function se(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Qe(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var ae=Z.createContext(void 0);function F(){let e=Z.useContext(ae);return e||{}}var xe=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(ae.Provider,{value:n,children:e})};function V(e,t){let n=ie__default.default.random(16),o=ie__default.default.random(16),s=pe__default.default(t,n,{keySize:256/32,iterations:1e3}),a=le__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(I__default.default),iv:o.toString(I__default.default),encrypted:a}}function W(e,t){let{salt:n,iv:o,encrypted:s}=e,a=pe__default.default(t,I__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=le__default.default.decrypt(s,a,{iv:I__default.default.parse(o)}).toString(Ae__default.default);return JSON.parse(r)}function ce(e,t){return JSON.stringify(V(e,t))}function ue(e,t){return W(JSON.parse(e),t)}function $(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return V(t,n||e)},decrypt(t,n){return W(t,n||e)},encryptString(t,n){return ce(t,n||e)},decryptString(t,n){return ue(t,n||e)}}}var fe=()=>{let{encrypt:e,decrypt:t}=$(),n=Z.useCallback((p,r)=>{try{let c=e(r);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[e]),o=Z.useCallback(p=>{try{let r=localStorage.getItem(p);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=p=>{let[r,c]=Z.useState(()=>{try{let l=localStorage.getItem(p);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return Z.useEffect(()=>{let l=u=>{if(u.key===p)if(u.newValue)try{c(t(JSON.parse(u.newValue)));}catch(N){console.error("Decrypt error from storage event",N);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,t]),r},a=Z.useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function de(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(c=>c());}function p(r){let c=Z.useRef(r?r(t):t);return Z.useSyncExternalStore(s,()=>{let l=r?r(t):t,u=c.current;return Object.is(u,l)||(c.current=l),c.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}var z=new Map;function L(e){return z.has(e)||z.set(e,de([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}])),z.get(e)}function qe(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,p=s?void 0:n,r=s?n:o,c=r?.storeName||a,{storageKey:l,cache:u}=F(),N=fe(),[S,D]=Z.useState(false),[O,A]=Z.useState(false),[P,E]=Z.useState(),q=Z.useRef(void 0),B=Z.useRef(null),{cacheName:M,cacheKey:H,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:m}=Z.useMemo(()=>{let g=l?N.get(l):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,T=oe({...p,session:g},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),h=false;typeof u?.enabled=="boolean"&&(h=u.enabled);let C=false;typeof u?.persistence=="boolean"&&(C=u?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(C=r?.cache?.persistence??false);let b=60*5,k="s";return K(u?.timeout)&&(typeof u?.timeout=="number"?(b=u.timeout,k="s"):typeof u?.timeout=="object"&&(b=u?.timeout.value,k=u?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?h=r.cache.enabled:h=true,typeof r.cache.timeout=="number"?(b=r.cache.timeout,k="s"):typeof r.cache.timeout=="object"&&(b=r.cache.timeout.value,k=r.cache.timeout.unit)):h=r.cache),{cacheName:d,cacheKey:T,timeout:b,timeoutUnit:k,persistence:C,cacheEnabled:h}},[r?.cache,l,u]);Z.useEffect(()=>{let g=JSON.stringify(K(q.current)?q.current:""),d=JSON.stringify(K(p)?p:""),T=q.current===void 0;(g!==d||T)&&!r?.hold&&(E(null),f(),q.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.hold,...r?.trigger||[]]),Z.useEffect(()=>{let g=async()=>{!te&&M&&H&&(await caches.open(M)).delete(H);};return window.addEventListener("beforeunload",g),()=>{window.removeEventListener("beforeunload",g),B.current?.abort();}},[]);let f=Z.useCallback(async g=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),m&&!g&&!O){D(true),w({loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let T=await caches.open(M),C=await(await T.match(H))?.json();if(C){let{data:b,expired:k}=C;if(___default.default().isAfter(k))await T.delete(H);else {r?.afterResponse&&b?.data&&(b.data=r?.afterResponse(b.data)),r?.logging&&console.log("After request: Using Cache",b),r?.onAfterResponse&&r?.onAfterResponse(b),D(false),E(b),w({loading:false,response:b});return}}}if(typeof t=="function"){B.current?.abort();let T=new AbortController;B.current=T,D(true),w({loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let h=s?await t(void 0,{...r,signal:T.signal}):await t(d,void 0,{...r,signal:T.signal});if(r?.afterResponse&&h?.data&&(h.data=r?.afterResponse(h.data)),r?.logging&&console.log("After request",h),r?.onAfterResponse&&r?.onAfterResponse(h),D(false),E(h),A(false),w({response:h,loading:false,isCancel:false}),m&&h.status){let C=___default.default().add(Q,ee).toISOString(),b={data:h,expired:C},k=await caches.open(M),ne=new Response(JSON.stringify(b));await k.put(H,ne);}}},[p,t,r]);Z.useEffect(()=>{if(r?.refreshInterval){let g=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,T=setInterval(()=>{f();},___default.default.duration(g,d).asMilliseconds());return ()=>clearInterval(T)}return ()=>{}},[r?.refreshInterval,f]),Z.useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let g=()=>{f();};return window.addEventListener("focus",g),()=>{window.removeEventListener("focus",g);}},[r?.refetchOnWindowFocus,f]);let i=()=>{B.current?.abort(),B.current=null,D(false),A(true),w({isCancel:true,loading:false});},R=()=>{D(false),E(null),w({response:void 0,loading:false});},x=Z.useCallback((g,d)=>qe(t,g,d),[t]),U={...P,loading:S,refresh:f,abort:i,clear:R,response:P,isCancel:O,clone:x},y=Z.useMemo(()=>({refresh:f,abort:i,clear:R,clone:x}),[f,i,R,x]),w=Z.useCallback(({response:g,loading:d,isCancel:T})=>{L(c).setState(C=>{let b=[g?.data,{...C?.[1],...g,loading:d,response:g,isCancel:T,...y}];return JSON.stringify(C)===JSON.stringify(b)?C:b});},[y,c]);return [P?.data,U]}async function wt(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var we=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(we||{}),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 Kt=(e,t,n)=>{let{format:o}=F();return t==="number"?ve(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ke(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ke(e,n):t==="string"?Ee(e,n):e?.toString()??""};function ke(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ee(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=se(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 ve(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 p=0;if(o==="auto"){let l=a.toString(),u=l.indexOf(".");u!==-1&&(p=l.length-u-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p: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 Ke(e,{display:t,value:n}){if(!K(e))return e;let o=___default.default(e,n);return o.isValid()?o.format(t):e}function Ht(e,{interval:t,lead:n}){let o=Z.useRef(null);Z.useEffect(()=>{o.current=e;},[e]),Z.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function $t(e,t,n){let[o,s]=Z.useState(false),a=(l,u)=>typeof e=="string"&&l===e||typeof e=="number"&&u===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:u,keyCode:N}=l,S=l.ctrlKey,D=l.altKey,O=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(u,N)&&(t==="ctrl"&&S||t==="alt"&&D||t==="shift"&&O)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let A=t.every(P=>P==="ctrl"?S:P==="alt"?D:P==="shift"?O:false);a(u,N)&&A&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(u,N)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:u})=>{a(l,u)&&s(false);};return Z.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var _t=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:u,encryptResponse:N,passphrase:S})=>{let{encrypt:D,decrypt:O,passphrase:A}=$(),P=(m,f,i,R)=>{let x=R?.code==="ERR_CANCELED",U=m.status===401,y=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:N)&&y){let C=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?A:i.passphrase:S;try{y=O(y,C);}catch{try{y=O(y,A);}catch{}}}let d={...o({...m,data:y,isCancel:x,isUnauthorization:U},R),isCancel:x,isUnauthorization:U,httpCode:m.status},T=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,h=r?r(d,i):!U;if((i?.infoSuccess&&d.status||i?.infoError&&!d.status)&&p&&(!x||!T)&&p(d),!h&&(!x||!i?.disabledHandleUnauthorized)){let C=i?.onUnauthorized||a;C&&C(d);}if(f)f(d);else return d},E=(m,f=()=>{})=>Me__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(R=>f(R.response,R)),q=(m,f,i,R,x)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},w={"Content-Type":"application/json",...s,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):y.token&&(w.Authorization=`Bearer ${y.token}`)),n&&(i=n(i)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:u)&&i){let d=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?A:x.passphrase:S;i=D(i,d);}return E({url:f,method:m,data:i,headers:w,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:d=>{y?.onUploadProgress&&y?.onUploadProgress(d);}},(d,T)=>P(d,R,y,T))};return {client:E,post:(m,f,i,R)=>q("POST",`${m}`,f,i,R),put:(m,f,i,R)=>q("PUT",`${m}`,f,i,R),patch:(m,f,i,R)=>q("PATCH",`${m}`,f,i,R),delete:(m,f,i)=>q("DELETE",`${m}`,null,f,i),get:(m,f,i)=>q("GET",`${m}`,null,f,i),upload:(m,f,i,R)=>{let x=new FormData;return Object.keys(f).forEach(U=>x.append(U,f[U])),q("POST",`${m}`,x,i,{infoSuccess:false,...R,headers:{"Content-Type":"multipart/form-data",...R?.headers}})}}};function Yt(e,t){let[n,o]=Z.useState(false),[s,a]=Z.useState(),[p,r]=Z.useState(0),c=Z.useRef(null);return Z.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async S=>{c.current?.abort();let D=new AbortController;c.current=D,o(true),t?.beforeRequest&&(S=t?.beforeRequest(S)),t?.logging&&console.log("Before request",S);let O={...t,signal:D.signal,onUploadProgress:P=>{let E=Math.round(P.loaded*100/(P.total||1));r(E);}},A=e.__isVoid?await e(void 0,O):await e(S,void 0,O);t?.logging&&console.log("After response",A),a(A),o(false),r(0),A.status&&t?.onSuccess&&t?.onSuccess(A),!A.status&&t?.onError&&t?.onError(A),t?.afterResponse&&t?.afterResponse(A);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function Le(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 en(e={}){let{getTrigger:t=Le,target:n=je,disableHysteresis:o=false,threshold:s=100}=e,a=Z__default.default.useRef(0),[p,r]=Z__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return Z__default.default.useEffect(()=>{let c=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,t,o,s]),p}var rn=(e,t)=>{let n=t||e.__path||e.name;return L(n).useStore()};var an=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},ln=(e,t)=>{let n={};n.others=[];let o=s=>{Z__default.default.Children.forEach(s,a=>{if(Z__default.default.isValidElement(a)){let p=a.type.displayName;if(t.includes(p))n[p]=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 Ve(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]=Ve(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=xe;exports.DataTypeEnum=Ne;exports.HttpMethod=we;exports.capitalizeWords=se;exports.createApiHelper=_t;exports.createElement=an;exports.createStore=de;exports.debounce=Qe;exports.decrypt=W;exports.decryptString=ue;exports.diffJson=Je;exports.encrypt=V;exports.encryptString=ce;exports.generateCacheKey=oe;exports.generateUUID=We;exports.getFieldValue=v;exports.isArray=_e;exports.isNotEmpty=K;exports.jsonCopy=Ze;exports.labelFormatter=re;exports.mappingUndefinedtoNull=ze;exports.renderChildren=Ge;exports.sorting=Xe;exports.splitElement=ln;exports.stableStringify=he;exports.summary=Ye;exports.useApiLoad=qe;exports.useApiSend=Yt;exports.useApiStore=rn;exports.useBgsCore=F;exports.useCrypto=$;exports.useDelay=wt;exports.useFormatted=Kt;exports.useInterval=Ht;exports.useKeyPress=$t;exports.useScrollTrigger=en;exports.useStorage=fe;exports.wrapApi=Ve;
|
|
1
|
+
'use strict';var _=require('moment'),Z=require('react'),jsxRuntime=require('react/jsx-runtime'),le=require('crypto-js/aes'),pe=require('crypto-js/pbkdf2'),De=require('crypto-js/enc-utf8'),I=require('crypto-js/enc-base64'),ie=require('crypto-js/lib-typedarrays'),Ie=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ___default=/*#__PURE__*/_interopDefault(_);var Z__default=/*#__PURE__*/_interopDefault(Z);var le__default=/*#__PURE__*/_interopDefault(le);var pe__default=/*#__PURE__*/_interopDefault(pe);var De__default=/*#__PURE__*/_interopDefault(De);var I__default=/*#__PURE__*/_interopDefault(I);var ie__default=/*#__PURE__*/_interopDefault(ie);var Ie__default=/*#__PURE__*/_interopDefault(Ie);function Je(){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 ze(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var _e=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ge(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 re={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,(r,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=re.snackCase(re.camelCase(e)),t&&(n=n?.split(" ")?.map(r=>r?.length<=3?r?.toUpperCase():r)?.join(" "));}catch{}return n?.trim()}};function Xe(e,t){return typeof e=="function"?e(t):e}var v=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let r=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of r){if(s==null)return n;s=s[a];}return s===void 0?n:s},Ye={desc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(r,t)?v(n,t):"";return s<a?1:-1}else return n<r?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(r,t)?v(r,t):"";return s>a?1:-1}else return n>r?1:-1}))},Ze=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(r=>Number(t?v(r,t)||0:r||0)),n.reduce((r,s)=>(r||0)+(s||0),0)||0};function Qe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function be(e){let t=new WeakSet;return JSON.stringify(e,function(n,r){return r!==null&&typeof r=="object"?t.has(r)?void 0:(t.add(r),Object.keys(r).sort().reduce((s,a)=>(s[a]=r[a],s),{})):r})??""}function oe(e,t){return be([t??"undefined",e??"undefined"])}function se(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function et(e,t=0){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{e(...r);},t*1e3);}}var ae=Z.createContext(void 0);function F(){let e=Z.useContext(ae);return e||{}}var Ce=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(ae.Provider,{value:n,children:e})};function W(e,t){let n=ie__default.default.random(16),r=ie__default.default.random(16),s=pe__default.default(t,n,{keySize:256/32,iterations:1e3}),a=le__default.default.encrypt(JSON.stringify(e),s,{iv:r}).toString();return {salt:n.toString(I__default.default),iv:r.toString(I__default.default),encrypted:a}}function J(e,t){let{salt:n,iv:r,encrypted:s}=e,a=pe__default.default(t,I__default.default.parse(n),{keySize:256/32,iterations:1e3}),o=le__default.default.decrypt(s,a,{iv:I__default.default.parse(r)}).toString(De__default.default);return JSON.parse(o)}function ce(e,t){return JSON.stringify(W(e,t))}function ue(e,t){return J(JSON.parse(e),t)}function $(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return W(t,n||e)},decrypt(t,n){return J(t,n||e)},encryptString(t,n){return ce(t,n||e)},decryptString(t,n){return ue(t,n||e)}}}var fe=()=>{let{encrypt:e,decrypt:t}=$(),n=Z.useCallback((p,o)=>{try{let c=e(o);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[e]),r=Z.useCallback(p=>{try{let o=localStorage.getItem(p);return o?t(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[t]),s=p=>{let[o,c]=Z.useState(()=>{try{let l=localStorage.getItem(p);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return Z.useEffect(()=>{let l=u=>{if(u.key===p)if(u.newValue)try{c(t(JSON.parse(u.newValue)));}catch(N){console.error("Decrypt error from storage event",N);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,t]),o},a=Z.useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:r,clear:a,useWatchStorage:s}};function de(e){let t=e,n=new Set;function r(){return t}function s(o){return n.add(o),()=>{n.delete(o);}}function a(o){let c=typeof o=="function"?o(t):o;Object.is(c,t)||(t=c,n.forEach(l=>l()));}function p(o){let c=Z.useRef(void 0);return Z.useSyncExternalStore(s,()=>{let l=o?o(t):t;return Object.is(c.current,l)||(c.current=l),c.current},()=>o?o(t):t)}return {getSnapshot:r,subscribe:s,setState:a,useStore:p}}var L=new Map;function j(e){let t=L.get(e);if(t)return t.refCount++,t.store;let n=de([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}]);return L.set(e,{store:n,refCount:1}),n}function me(e){let t=L.get(e);t&&(t.refCount--,t.refCount<=0&&L.delete(e));}function we(...e){let[t,n,r]=e,s=t.__isVoid,a=t.__path||t.name,p=s?void 0:n,o=s?n:r,c=o?.storeName||a,{storageKey:l,cache:u}=F(),N=fe(),[S,D]=Z.useState(false),[O,A]=Z.useState(false),[P,E]=Z.useState(),q=Z.useRef(void 0),B=Z.useRef(null),{cacheName:M,cacheKey:H,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:m}=Z.useMemo(()=>{let g=l?N.get(l):void 0,d=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,x=oe({...p,session:g},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),h=false;typeof u?.enabled=="boolean"&&(h=u.enabled);let C=false;typeof u?.persistence=="boolean"&&(C=u?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(C=o?.cache?.persistence??false);let b=60*5,k="s";return K(u?.timeout)&&(typeof u?.timeout=="number"?(b=u.timeout,k="s"):typeof u?.timeout=="object"&&(b=u?.timeout.value,k=u?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?h=o.cache.enabled:h=true,typeof o.cache.timeout=="number"?(b=o.cache.timeout,k="s"):typeof o.cache.timeout=="object"&&(b=o.cache.timeout.value,k=o.cache.timeout.unit)):h=o.cache),{cacheName:d,cacheKey:x,timeout:b,timeoutUnit:k,persistence:C,cacheEnabled:h}},[o?.cache,l,u]);Z.useEffect(()=>{let g=JSON.stringify(K(q.current)?q.current:""),d=JSON.stringify(K(p)?p:""),x=q.current===void 0;(g!==d||x)&&!o?.hold&&(E(null),f(),q.current=p),o?.onChange&&o?.onChange(p,U);},[p,o?.hold,...o?.trigger||[]]),Z.useEffect(()=>{let g=async()=>{!te&&M&&H&&(await caches.open(M)).delete(H);};return window.addEventListener("beforeunload",g),()=>{window.removeEventListener("beforeunload",g),B.current?.abort(),me(c);}},[]);let f=Z.useCallback(async g=>{let d=p;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(d=o?.beforeRequest(p)),m&&!g&&!O){D(true),w({loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(p);let x=await caches.open(M),C=await(await x.match(H))?.json();if(C){let{data:b,expired:k}=C;if(___default.default().isAfter(k))await x.delete(H);else {o?.afterResponse&&b?.data&&(b.data=o?.afterResponse(b.data)),o?.logging&&console.log("After request: Using Cache",b),o?.onAfterResponse&&o?.onAfterResponse(b),D(false),E(b),w({loading:false,response:b});return}}}if(typeof t=="function"){B.current?.abort();let x=new AbortController;B.current=x,D(true),w({loading:true}),o?.logging&&console.log("Before request",p),o?.onBeforeRequest&&o?.onBeforeRequest(p);let h=s?await t(void 0,{...o,signal:x.signal}):await t(d,void 0,{...o,signal:x.signal});if(o?.afterResponse&&h?.data&&(h.data=o?.afterResponse(h.data)),o?.logging&&console.log("After request",h),o?.onAfterResponse&&o?.onAfterResponse(h),D(false),E(h),A(false),w({response:h,loading:false,isCancel:false}),m&&h.status){let C=___default.default().add(Q,ee).toISOString(),b={data:h,expired:C},k=await caches.open(M),ne=new Response(JSON.stringify(b));await k.put(H,ne);}}},[p,t,o]);Z.useEffect(()=>{if(o?.refreshInterval){let g=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,d=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,x=setInterval(()=>{f();},___default.default.duration(g,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[o?.refreshInterval,f]),Z.useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let g=()=>{f();};return window.addEventListener("focus",g),()=>{window.removeEventListener("focus",g);}},[o?.refetchOnWindowFocus,f]);let i=()=>{B.current?.abort(),B.current=null,D(false),A(true),w({isCancel:true,loading:false});},R=()=>{D(false),E(null),w({response:void 0,loading:false});},T=Z.useCallback((g,d)=>we(t,g,d),[t]),U={...P,loading:S,refresh:f,abort:i,clear:R,response:P,isCancel:O,clone:T},y=Z.useMemo(()=>({refresh:f,abort:i,clear:R,clone:T}),[f,i,R,T]),w=Z.useCallback(({response:g,loading:d,isCancel:x})=>{j(c).setState(C=>{let b=[g?.data,{...C?.[1],...g,loading:d,response:g,isCancel:x,...y}];return JSON.stringify(C)===JSON.stringify(b)?C:b});},[y,c]);return [P?.data,U]}async function Nt(e,t=()=>{}){let n=e*1e3;return new Promise(r=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),r(true);},n);})}var Ne=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ne||{}),Ue=(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))(Ue||{});var Ft=(e,t,n)=>{let{format:r}=F();return t==="number"?Ke(e,{thouSep:r.number.thouSep,decDigits:r.number.decDigits,decSep:r.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Fe(e,{display:r[t]?.display,value:r[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?ve(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,r=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?r:s}function ve(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=se(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 Ke(e,{thouSep:t,decSep:n,decDigits:r,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof r=="number"){let l=Math.pow(10,r);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof r=="number"){let l=Math.pow(10,r);a=Math.floor(a*l)/l;}let p=0;if(r==="auto"){let l=a.toString(),u=l.indexOf(".");u!==-1&&(p=l.length-u-1);}let o={style:"decimal",useGrouping:true,minimumFractionDigits:r==="auto"?p:r||0,maximumFractionDigits:r==="auto"?p:r||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",o).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Fe(e,{display:t,value:n}){if(!K(e))return e;let r=___default.default(e,n);return r.isValid()?r.format(t):e}function Mt(e,{interval:t,lead:n}){let r=Z.useRef(null);Z.useEffect(()=>{r.current=e;},[e]),Z.useEffect(()=>{let s=()=>r.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function Lt(e,t,n){let[r,s]=Z.useState(false),a=(l,u)=>typeof e=="string"&&l===e||typeof e=="number"&&u===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),o=l=>{let{key:u,keyCode:N}=l,S=l.ctrlKey,D=l.altKey,O=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(u,N)&&(t==="ctrl"&&S||t==="alt"&&D||t==="shift"&&O)&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));else {let A=t.every(P=>P==="ctrl"?S:P==="alt"?D:P==="shift"?O:false);a(u,N)&&A&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));}else a(u,N)&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));},c=({key:l,keyCode:u})=>{a(l,u)&&s(false);};return Z.useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",c);}),[]),r}var Gt=({url:e,token:t,beforeRequest:n,onCallback:r,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:o,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:u,encryptResponse:N,passphrase:S})=>{let{encrypt:D,decrypt:O,passphrase:A}=$(),P=(m,f,i,R)=>{let T=R?.code==="ERR_CANCELED",U=m.status===401,y=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:N)&&y){let C=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?A:i.passphrase:S;try{y=O(y,C);}catch{try{y=O(y,A);}catch{}}}let d={...r({...m,data:y,isCancel:T,isUnauthorization:U},R),isCancel:T,isUnauthorization:U,httpCode:m.status},x=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,h=o?o(d,i):!U;if((i?.infoSuccess&&d.status||i?.infoError&&!d.status)&&p&&(!T||!x)&&p(d),!h&&(!T||!i?.disabledHandleUnauthorized)){let C=i?.onUnauthorized||a;C&&C(d);}if(f)f(d);else return d},E=(m,f=()=>{})=>Ie__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(R=>f(R.response,R)),q=(m,f,i,R,T)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},w={"Content-Type":"application/json",...s,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):y.token&&(w.Authorization=`Bearer ${y.token}`)),n&&(i=n(i)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:u)&&i){let d=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?A:T.passphrase:S;i=D(i,d);}return E({url:f,method:m,data:i,headers:w,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:d=>{y?.onUploadProgress&&y?.onUploadProgress(d);}},(d,x)=>P(d,R,y,x))};return {client:E,post:(m,f,i,R)=>q("POST",`${m}`,f,i,R),put:(m,f,i,R)=>q("PUT",`${m}`,f,i,R),patch:(m,f,i,R)=>q("PATCH",`${m}`,f,i,R),delete:(m,f,i)=>q("DELETE",`${m}`,null,f,i),get:(m,f,i)=>q("GET",`${m}`,null,f,i),upload:(m,f,i,R)=>{let T=new FormData;return Object.keys(f).forEach(U=>T.append(U,f[U])),q("POST",`${m}`,T,i,{infoSuccess:false,...R,headers:{"Content-Type":"multipart/form-data",...R?.headers}})}}};function Zt(e,t){let[n,r]=Z.useState(false),[s,a]=Z.useState(),[p,o]=Z.useState(0),c=Z.useRef(null);return Z.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async S=>{c.current?.abort();let D=new AbortController;c.current=D,r(true),t?.beforeRequest&&(S=t?.beforeRequest(S)),t?.logging&&console.log("Before request",S);let O={...t,signal:D.signal,onUploadProgress:P=>{let E=Math.round(P.loaded*100/(P.total||1));o(E);}},A=e.__isVoid?await e(void 0,O):await e(S,void 0,O);t?.logging&&console.log("After response",A),a(A),r(false),o(0),A.status&&t?.onSuccess&&t?.onSuccess(A),!A.status&&t?.onError&&t?.onError(A),t?.afterResponse&&t?.afterResponse(A);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,r(false),o(0);},progress:p,reset:()=>{r(false),o(0),a(null);}}]}function je(e,t){let{disableHysteresis:n=false,threshold:r=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)>r}var Ve=typeof window<"u"?window:null;function tn(e={}){let{getTrigger:t=je,target:n=Ve,disableHysteresis:r=false,threshold:s=100}=e,a=Z__default.default.useRef(0),[p,o]=Z__default.default.useState(()=>t(a,{disableHysteresis:r,threshold:s,target:n}));return Z__default.default.useEffect(()=>{let c=()=>{o(t(a,{disableHysteresis:r,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,t,r,s]),p}var on=(e,t)=>{let n=t||e.__path||e.name;return j(n).useStore()};var ln=(e,t)=>{let n=r=>e(r);return n.displayName=t,n},pn=(e,t)=>{let n={};n.others=[];let r=s=>{Z__default.default.Children.forEach(s,a=>{if(Z__default.default.isValidElement(a)){let p=a.type.displayName;if(t.includes(p))n[p]=a;else {let o=a;o.props?.children?r(o.props.children):n.others.push(a);}}else n.others.push(a);});};return r(e),n};function We(e,t=[]){let n={};for(let r in e){let s=e[r];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,r].join("."),a.__isVoid=s.length===2,n[r]=a;}else typeof s=="object"&&s!==null?n[r]=We(s,[...t,r]):n[r]=s;}return n}exports.BgsCoreProvider=Ce;exports.DataTypeEnum=Ue;exports.HttpMethod=Ne;exports.capitalizeWords=se;exports.createApiHelper=Gt;exports.createElement=ln;exports.createStore=de;exports.debounce=et;exports.decrypt=J;exports.decryptString=ue;exports.diffJson=ze;exports.encrypt=W;exports.encryptString=ce;exports.generateCacheKey=oe;exports.generateUUID=Je;exports.getFieldValue=v;exports.isArray=Ge;exports.isNotEmpty=K;exports.jsonCopy=Qe;exports.labelFormatter=re;exports.mappingUndefinedtoNull=_e;exports.renderChildren=Xe;exports.sorting=Ye;exports.splitElement=pn;exports.stableStringify=be;exports.summary=Ze;exports.useApiLoad=we;exports.useApiSend=Zt;exports.useApiStore=on;exports.useBgsCore=F;exports.useCrypto=$;exports.useDelay=Nt;exports.useFormatted=Ft;exports.useInterval=Mt;exports.useKeyPress=Lt;exports.useScrollTrigger=tn;exports.useStorage=fe;exports.wrapApi=We;
|
package/dist/index.d.cts
CHANGED
|
@@ -496,7 +496,7 @@ declare function debounce<T extends (...args: any[]) => void>(func: T, delayInSe
|
|
|
496
496
|
type Listener = () => void;
|
|
497
497
|
declare function createStore<T>(initialState: T): {
|
|
498
498
|
getSnapshot: () => T;
|
|
499
|
-
subscribe: (listener: Listener) => () =>
|
|
499
|
+
subscribe: (listener: Listener) => () => void;
|
|
500
500
|
setState: (newState: T | ((prev: T) => T)) => void;
|
|
501
501
|
useStore: {
|
|
502
502
|
(): T;
|
package/dist/index.d.ts
CHANGED
|
@@ -496,7 +496,7 @@ declare function debounce<T extends (...args: any[]) => void>(func: T, delayInSe
|
|
|
496
496
|
type Listener = () => void;
|
|
497
497
|
declare function createStore<T>(initialState: T): {
|
|
498
498
|
getSnapshot: () => T;
|
|
499
|
-
subscribe: (listener: Listener) => () =>
|
|
499
|
+
subscribe: (listener: Listener) => () => void;
|
|
500
500
|
setState: (newState: T | ((prev: T) => T)) => void;
|
|
501
501
|
useStore: {
|
|
502
502
|
(): T;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import _ from'moment';import Z,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import le from'crypto-js/aes';import pe from'crypto-js/pbkdf2';import Ae from'crypto-js/enc-utf8';import I from'crypto-js/enc-base64';import ie from'crypto-js/lib-typedarrays';import Me from'axios';function We(){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 Je(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ze=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function _e(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 re={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=re.snackCase(re.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ge(e,t){return typeof e=="function"?e(t):e}var v=(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},Xe={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(o,t)?v(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=v(n,t)?v(n,t):"",a=v(o,t)?v(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},Ye=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?v(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function Ze(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function he(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 oe(e,t){return he([t??"undefined",e??"undefined"])}function se(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Qe(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var ae=createContext(void 0);function F(){let e=useContext(ae);return e||{}}var xe=({children:e,value:t})=>{let n={...t};return jsx(ae.Provider,{value:n,children:e})};function V(e,t){let n=ie.random(16),o=ie.random(16),s=pe(t,n,{keySize:256/32,iterations:1e3}),a=le.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(I),iv:o.toString(I),encrypted:a}}function W(e,t){let{salt:n,iv:o,encrypted:s}=e,a=pe(t,I.parse(n),{keySize:256/32,iterations:1e3}),r=le.decrypt(s,a,{iv:I.parse(o)}).toString(Ae);return JSON.parse(r)}function ce(e,t){return JSON.stringify(V(e,t))}function ue(e,t){return W(JSON.parse(e),t)}function $(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return V(t,n||e)},decrypt(t,n){return W(t,n||e)},encryptString(t,n){return ce(t,n||e)},decryptString(t,n){return ue(t,n||e)}}}var fe=()=>{let{encrypt:e,decrypt:t}=$(),n=useCallback((p,r)=>{try{let c=e(r);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[e]),o=useCallback(p=>{try{let r=localStorage.getItem(p);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=p=>{let[r,c]=useState(()=>{try{let l=localStorage.getItem(p);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=u=>{if(u.key===p)if(u.newValue)try{c(t(JSON.parse(u.newValue)));}catch(N){console.error("Decrypt error from storage event",N);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,t]),r},a=useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function de(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(c=>c());}function p(r){let c=useRef(r?r(t):t);return useSyncExternalStore(s,()=>{let l=r?r(t):t,u=c.current;return Object.is(u,l)||(c.current=l),c.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}var z=new Map;function L(e){return z.has(e)||z.set(e,de([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}])),z.get(e)}function qe(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,p=s?void 0:n,r=s?n:o,c=r?.storeName||a,{storageKey:l,cache:u}=F(),N=fe(),[S,D]=useState(false),[O,A]=useState(false),[P,E]=useState(),q=useRef(void 0),B=useRef(null),{cacheName:M,cacheKey:H,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:m}=useMemo(()=>{let g=l?N.get(l):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,T=oe({...p,session:g},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),h=false;typeof u?.enabled=="boolean"&&(h=u.enabled);let C=false;typeof u?.persistence=="boolean"&&(C=u?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(C=r?.cache?.persistence??false);let b=60*5,k="s";return K(u?.timeout)&&(typeof u?.timeout=="number"?(b=u.timeout,k="s"):typeof u?.timeout=="object"&&(b=u?.timeout.value,k=u?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?h=r.cache.enabled:h=true,typeof r.cache.timeout=="number"?(b=r.cache.timeout,k="s"):typeof r.cache.timeout=="object"&&(b=r.cache.timeout.value,k=r.cache.timeout.unit)):h=r.cache),{cacheName:d,cacheKey:T,timeout:b,timeoutUnit:k,persistence:C,cacheEnabled:h}},[r?.cache,l,u]);useEffect(()=>{let g=JSON.stringify(K(q.current)?q.current:""),d=JSON.stringify(K(p)?p:""),T=q.current===void 0;(g!==d||T)&&!r?.hold&&(E(null),f(),q.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.hold,...r?.trigger||[]]),useEffect(()=>{let g=async()=>{!te&&M&&H&&(await caches.open(M)).delete(H);};return window.addEventListener("beforeunload",g),()=>{window.removeEventListener("beforeunload",g),B.current?.abort();}},[]);let f=useCallback(async g=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),m&&!g&&!O){D(true),w({loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let T=await caches.open(M),C=await(await T.match(H))?.json();if(C){let{data:b,expired:k}=C;if(_().isAfter(k))await T.delete(H);else {r?.afterResponse&&b?.data&&(b.data=r?.afterResponse(b.data)),r?.logging&&console.log("After request: Using Cache",b),r?.onAfterResponse&&r?.onAfterResponse(b),D(false),E(b),w({loading:false,response:b});return}}}if(typeof t=="function"){B.current?.abort();let T=new AbortController;B.current=T,D(true),w({loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let h=s?await t(void 0,{...r,signal:T.signal}):await t(d,void 0,{...r,signal:T.signal});if(r?.afterResponse&&h?.data&&(h.data=r?.afterResponse(h.data)),r?.logging&&console.log("After request",h),r?.onAfterResponse&&r?.onAfterResponse(h),D(false),E(h),A(false),w({response:h,loading:false,isCancel:false}),m&&h.status){let C=_().add(Q,ee).toISOString(),b={data:h,expired:C},k=await caches.open(M),ne=new Response(JSON.stringify(b));await k.put(H,ne);}}},[p,t,r]);useEffect(()=>{if(r?.refreshInterval){let g=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,T=setInterval(()=>{f();},_.duration(g,d).asMilliseconds());return ()=>clearInterval(T)}return ()=>{}},[r?.refreshInterval,f]),useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let g=()=>{f();};return window.addEventListener("focus",g),()=>{window.removeEventListener("focus",g);}},[r?.refetchOnWindowFocus,f]);let i=()=>{B.current?.abort(),B.current=null,D(false),A(true),w({isCancel:true,loading:false});},R=()=>{D(false),E(null),w({response:void 0,loading:false});},x=useCallback((g,d)=>qe(t,g,d),[t]),U={...P,loading:S,refresh:f,abort:i,clear:R,response:P,isCancel:O,clone:x},y=useMemo(()=>({refresh:f,abort:i,clear:R,clone:x}),[f,i,R,x]),w=useCallback(({response:g,loading:d,isCancel:T})=>{L(c).setState(C=>{let b=[g?.data,{...C?.[1],...g,loading:d,response:g,isCancel:T,...y}];return JSON.stringify(C)===JSON.stringify(b)?C:b});},[y,c]);return [P?.data,U]}async function wt(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var we=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(we||{}),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 Kt=(e,t,n)=>{let{format:o}=F();return t==="number"?ve(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ke(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ke(e,n):t==="string"?Ee(e,n):e?.toString()??""};function ke(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Ee(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=se(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 ve(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 p=0;if(o==="auto"){let l=a.toString(),u=l.indexOf(".");u!==-1&&(p=l.length-u-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p: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 Ke(e,{display:t,value:n}){if(!K(e))return e;let o=_(e,n);return o.isValid()?o.format(t):e}function Ht(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 $t(e,t,n){let[o,s]=useState(false),a=(l,u)=>typeof e=="string"&&l===e||typeof e=="number"&&u===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:u,keyCode:N}=l,S=l.ctrlKey,D=l.altKey,O=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(u,N)&&(t==="ctrl"&&S||t==="alt"&&D||t==="shift"&&O)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let A=t.every(P=>P==="ctrl"?S:P==="alt"?D:P==="shift"?O:false);a(u,N)&&A&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(u,N)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:u})=>{a(l,u)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var _t=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:u,encryptResponse:N,passphrase:S})=>{let{encrypt:D,decrypt:O,passphrase:A}=$(),P=(m,f,i,R)=>{let x=R?.code==="ERR_CANCELED",U=m.status===401,y=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:N)&&y){let C=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?A:i.passphrase:S;try{y=O(y,C);}catch{try{y=O(y,A);}catch{}}}let d={...o({...m,data:y,isCancel:x,isUnauthorization:U},R),isCancel:x,isUnauthorization:U,httpCode:m.status},T=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,h=r?r(d,i):!U;if((i?.infoSuccess&&d.status||i?.infoError&&!d.status)&&p&&(!x||!T)&&p(d),!h&&(!x||!i?.disabledHandleUnauthorized)){let C=i?.onUnauthorized||a;C&&C(d);}if(f)f(d);else return d},E=(m,f=()=>{})=>Me.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(R=>f(R.response,R)),q=(m,f,i,R,x)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},w={"Content-Type":"application/json",...s,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):y.token&&(w.Authorization=`Bearer ${y.token}`)),n&&(i=n(i)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:u)&&i){let d=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?A:x.passphrase:S;i=D(i,d);}return E({url:f,method:m,data:i,headers:w,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:d=>{y?.onUploadProgress&&y?.onUploadProgress(d);}},(d,T)=>P(d,R,y,T))};return {client:E,post:(m,f,i,R)=>q("POST",`${m}`,f,i,R),put:(m,f,i,R)=>q("PUT",`${m}`,f,i,R),patch:(m,f,i,R)=>q("PATCH",`${m}`,f,i,R),delete:(m,f,i)=>q("DELETE",`${m}`,null,f,i),get:(m,f,i)=>q("GET",`${m}`,null,f,i),upload:(m,f,i,R)=>{let x=new FormData;return Object.keys(f).forEach(U=>x.append(U,f[U])),q("POST",`${m}`,x,i,{infoSuccess:false,...R,headers:{"Content-Type":"multipart/form-data",...R?.headers}})}}};function Yt(e,t){let[n,o]=useState(false),[s,a]=useState(),[p,r]=useState(0),c=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async S=>{c.current?.abort();let D=new AbortController;c.current=D,o(true),t?.beforeRequest&&(S=t?.beforeRequest(S)),t?.logging&&console.log("Before request",S);let O={...t,signal:D.signal,onUploadProgress:P=>{let E=Math.round(P.loaded*100/(P.total||1));r(E);}},A=e.__isVoid?await e(void 0,O):await e(S,void 0,O);t?.logging&&console.log("After response",A),a(A),o(false),r(0),A.status&&t?.onSuccess&&t?.onSuccess(A),!A.status&&t?.onError&&t?.onError(A),t?.afterResponse&&t?.afterResponse(A);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function Le(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 en(e={}){let{getTrigger:t=Le,target:n=je,disableHysteresis:o=false,threshold:s=100}=e,a=Z.useRef(0),[p,r]=Z.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return Z.useEffect(()=>{let c=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,t,o,s]),p}var rn=(e,t)=>{let n=t||e.__path||e.name;return L(n).useStore()};var an=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},ln=(e,t)=>{let n={};n.others=[];let o=s=>{Z.Children.forEach(s,a=>{if(Z.isValidElement(a)){let p=a.type.displayName;if(t.includes(p))n[p]=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 Ve(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]=Ve(s,[...t,o]):n[o]=s;}return n}export{xe as BgsCoreProvider,Ne as DataTypeEnum,we as HttpMethod,se as capitalizeWords,_t as createApiHelper,an as createElement,de as createStore,Qe as debounce,W as decrypt,ue as decryptString,Je as diffJson,V as encrypt,ce as encryptString,oe as generateCacheKey,We as generateUUID,v as getFieldValue,_e as isArray,K as isNotEmpty,Ze as jsonCopy,re as labelFormatter,ze as mappingUndefinedtoNull,Ge as renderChildren,Xe as sorting,ln as splitElement,he as stableStringify,Ye as summary,qe as useApiLoad,Yt as useApiSend,rn as useApiStore,F as useBgsCore,$ as useCrypto,wt as useDelay,Kt as useFormatted,Ht as useInterval,$t as useKeyPress,en as useScrollTrigger,fe as useStorage,Ve as wrapApi};
|
|
1
|
+
import _ from'moment';import Z,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import le from'crypto-js/aes';import pe from'crypto-js/pbkdf2';import De from'crypto-js/enc-utf8';import I from'crypto-js/enc-base64';import ie from'crypto-js/lib-typedarrays';import Ie from'axios';function Je(){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 ze(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var _e=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Ge(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 re={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,(r,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=re.snackCase(re.camelCase(e)),t&&(n=n?.split(" ")?.map(r=>r?.length<=3?r?.toUpperCase():r)?.join(" "));}catch{}return n?.trim()}};function Xe(e,t){return typeof e=="function"?e(t):e}var v=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let r=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of r){if(s==null)return n;s=s[a];}return s===void 0?n:s},Ye={desc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(r,t)?v(n,t):"";return s<a?1:-1}else return n<r?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let s=v(n,t)?v(n,t):"",a=v(r,t)?v(r,t):"";return s>a?1:-1}else return n>r?1:-1}))},Ze=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(r=>Number(t?v(r,t)||0:r||0)),n.reduce((r,s)=>(r||0)+(s||0),0)||0};function Qe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function be(e){let t=new WeakSet;return JSON.stringify(e,function(n,r){return r!==null&&typeof r=="object"?t.has(r)?void 0:(t.add(r),Object.keys(r).sort().reduce((s,a)=>(s[a]=r[a],s),{})):r})??""}function oe(e,t){return be([t??"undefined",e??"undefined"])}function se(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function et(e,t=0){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{e(...r);},t*1e3);}}var ae=createContext(void 0);function F(){let e=useContext(ae);return e||{}}var Ce=({children:e,value:t})=>{let n={...t};return jsx(ae.Provider,{value:n,children:e})};function W(e,t){let n=ie.random(16),r=ie.random(16),s=pe(t,n,{keySize:256/32,iterations:1e3}),a=le.encrypt(JSON.stringify(e),s,{iv:r}).toString();return {salt:n.toString(I),iv:r.toString(I),encrypted:a}}function J(e,t){let{salt:n,iv:r,encrypted:s}=e,a=pe(t,I.parse(n),{keySize:256/32,iterations:1e3}),o=le.decrypt(s,a,{iv:I.parse(r)}).toString(De);return JSON.parse(o)}function ce(e,t){return JSON.stringify(W(e,t))}function ue(e,t){return J(JSON.parse(e),t)}function $(){let{passphrase:e}=F();return {passphrase:e,encrypt(t,n){return W(t,n||e)},decrypt(t,n){return J(t,n||e)},encryptString(t,n){return ce(t,n||e)},decryptString(t,n){return ue(t,n||e)}}}var fe=()=>{let{encrypt:e,decrypt:t}=$(),n=useCallback((p,o)=>{try{let c=e(o);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[e]),r=useCallback(p=>{try{let o=localStorage.getItem(p);return o?t(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[t]),s=p=>{let[o,c]=useState(()=>{try{let l=localStorage.getItem(p);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=u=>{if(u.key===p)if(u.newValue)try{c(t(JSON.parse(u.newValue)));}catch(N){console.error("Decrypt error from storage event",N);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,t]),o},a=useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:r,clear:a,useWatchStorage:s}};function de(e){let t=e,n=new Set;function r(){return t}function s(o){return n.add(o),()=>{n.delete(o);}}function a(o){let c=typeof o=="function"?o(t):o;Object.is(c,t)||(t=c,n.forEach(l=>l()));}function p(o){let c=useRef(void 0);return useSyncExternalStore(s,()=>{let l=o?o(t):t;return Object.is(c.current,l)||(c.current=l),c.current},()=>o?o(t):t)}return {getSnapshot:r,subscribe:s,setState:a,useStore:p}}var L=new Map;function j(e){let t=L.get(e);if(t)return t.refCount++,t.store;let n=de([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}]);return L.set(e,{store:n,refCount:1}),n}function me(e){let t=L.get(e);t&&(t.refCount--,t.refCount<=0&&L.delete(e));}function we(...e){let[t,n,r]=e,s=t.__isVoid,a=t.__path||t.name,p=s?void 0:n,o=s?n:r,c=o?.storeName||a,{storageKey:l,cache:u}=F(),N=fe(),[S,D]=useState(false),[O,A]=useState(false),[P,E]=useState(),q=useRef(void 0),B=useRef(null),{cacheName:M,cacheKey:H,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:m}=useMemo(()=>{let g=l?N.get(l):void 0,d=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,x=oe({...p,session:g},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),h=false;typeof u?.enabled=="boolean"&&(h=u.enabled);let C=false;typeof u?.persistence=="boolean"&&(C=u?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(C=o?.cache?.persistence??false);let b=60*5,k="s";return K(u?.timeout)&&(typeof u?.timeout=="number"?(b=u.timeout,k="s"):typeof u?.timeout=="object"&&(b=u?.timeout.value,k=u?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?h=o.cache.enabled:h=true,typeof o.cache.timeout=="number"?(b=o.cache.timeout,k="s"):typeof o.cache.timeout=="object"&&(b=o.cache.timeout.value,k=o.cache.timeout.unit)):h=o.cache),{cacheName:d,cacheKey:x,timeout:b,timeoutUnit:k,persistence:C,cacheEnabled:h}},[o?.cache,l,u]);useEffect(()=>{let g=JSON.stringify(K(q.current)?q.current:""),d=JSON.stringify(K(p)?p:""),x=q.current===void 0;(g!==d||x)&&!o?.hold&&(E(null),f(),q.current=p),o?.onChange&&o?.onChange(p,U);},[p,o?.hold,...o?.trigger||[]]),useEffect(()=>{let g=async()=>{!te&&M&&H&&(await caches.open(M)).delete(H);};return window.addEventListener("beforeunload",g),()=>{window.removeEventListener("beforeunload",g),B.current?.abort(),me(c);}},[]);let f=useCallback(async g=>{let d=p;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(d=o?.beforeRequest(p)),m&&!g&&!O){D(true),w({loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(p);let x=await caches.open(M),C=await(await x.match(H))?.json();if(C){let{data:b,expired:k}=C;if(_().isAfter(k))await x.delete(H);else {o?.afterResponse&&b?.data&&(b.data=o?.afterResponse(b.data)),o?.logging&&console.log("After request: Using Cache",b),o?.onAfterResponse&&o?.onAfterResponse(b),D(false),E(b),w({loading:false,response:b});return}}}if(typeof t=="function"){B.current?.abort();let x=new AbortController;B.current=x,D(true),w({loading:true}),o?.logging&&console.log("Before request",p),o?.onBeforeRequest&&o?.onBeforeRequest(p);let h=s?await t(void 0,{...o,signal:x.signal}):await t(d,void 0,{...o,signal:x.signal});if(o?.afterResponse&&h?.data&&(h.data=o?.afterResponse(h.data)),o?.logging&&console.log("After request",h),o?.onAfterResponse&&o?.onAfterResponse(h),D(false),E(h),A(false),w({response:h,loading:false,isCancel:false}),m&&h.status){let C=_().add(Q,ee).toISOString(),b={data:h,expired:C},k=await caches.open(M),ne=new Response(JSON.stringify(b));await k.put(H,ne);}}},[p,t,o]);useEffect(()=>{if(o?.refreshInterval){let g=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,d=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,x=setInterval(()=>{f();},_.duration(g,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[o?.refreshInterval,f]),useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let g=()=>{f();};return window.addEventListener("focus",g),()=>{window.removeEventListener("focus",g);}},[o?.refetchOnWindowFocus,f]);let i=()=>{B.current?.abort(),B.current=null,D(false),A(true),w({isCancel:true,loading:false});},R=()=>{D(false),E(null),w({response:void 0,loading:false});},T=useCallback((g,d)=>we(t,g,d),[t]),U={...P,loading:S,refresh:f,abort:i,clear:R,response:P,isCancel:O,clone:T},y=useMemo(()=>({refresh:f,abort:i,clear:R,clone:T}),[f,i,R,T]),w=useCallback(({response:g,loading:d,isCancel:x})=>{j(c).setState(C=>{let b=[g?.data,{...C?.[1],...g,loading:d,response:g,isCancel:x,...y}];return JSON.stringify(C)===JSON.stringify(b)?C:b});},[y,c]);return [P?.data,U]}async function Nt(e,t=()=>{}){let n=e*1e3;return new Promise(r=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),r(true);},n);})}var Ne=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ne||{}),Ue=(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))(Ue||{});var Ft=(e,t,n)=>{let{format:r}=F();return t==="number"?Ke(e,{thouSep:r.number.thouSep,decDigits:r.number.decDigits,decSep:r.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Fe(e,{display:r[t]?.display,value:r[t]?.value,...n}):t==="boolean"?Ee(e,n):t==="string"?ve(e,n):e?.toString()??""};function Ee(e,t){let n=typeof e=="string"?e==="true":!!e,r=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?r:s}function ve(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=se(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 Ke(e,{thouSep:t,decSep:n,decDigits:r,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;if(s)if(typeof r=="number"){let l=Math.pow(10,r);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof r=="number"){let l=Math.pow(10,r);a=Math.floor(a*l)/l;}let p=0;if(r==="auto"){let l=a.toString(),u=l.indexOf(".");u!==-1&&(p=l.length-u-1);}let o={style:"decimal",useGrouping:true,minimumFractionDigits:r==="auto"?p:r||0,maximumFractionDigits:r==="auto"?p:r||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",o).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Fe(e,{display:t,value:n}){if(!K(e))return e;let r=_(e,n);return r.isValid()?r.format(t):e}function Mt(e,{interval:t,lead:n}){let r=useRef(null);useEffect(()=>{r.current=e;},[e]),useEffect(()=>{let s=()=>r.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function Lt(e,t,n){let[r,s]=useState(false),a=(l,u)=>typeof e=="string"&&l===e||typeof e=="number"&&u===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),o=l=>{let{key:u,keyCode:N}=l,S=l.ctrlKey,D=l.altKey,O=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(u,N)&&(t==="ctrl"&&S||t==="alt"&&D||t==="shift"&&O)&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));else {let A=t.every(P=>P==="ctrl"?S:P==="alt"?D:P==="shift"?O:false);a(u,N)&&A&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));}else a(u,N)&&(l.preventDefault(),n&&l.stopPropagation(),s(!r));},c=({key:l,keyCode:u})=>{a(l,u)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",c);}),[]),r}var Gt=({url:e,token:t,beforeRequest:n,onCallback:r,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:o,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:u,encryptResponse:N,passphrase:S})=>{let{encrypt:D,decrypt:O,passphrase:A}=$(),P=(m,f,i,R)=>{let T=R?.code==="ERR_CANCELED",U=m.status===401,y=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:N)&&y){let C=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?A:i.passphrase:S;try{y=O(y,C);}catch{try{y=O(y,A);}catch{}}}let d={...r({...m,data:y,isCancel:T,isUnauthorization:U},R),isCancel:T,isUnauthorization:U,httpCode:m.status},x=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,h=o?o(d,i):!U;if((i?.infoSuccess&&d.status||i?.infoError&&!d.status)&&p&&(!T||!x)&&p(d),!h&&(!T||!i?.disabledHandleUnauthorized)){let C=i?.onUnauthorized||a;C&&C(d);}if(f)f(d);else return d},E=(m,f=()=>{})=>Ie.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(R=>f(R.response,R)),q=(m,f,i,R,T)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},w={"Content-Type":"application/json",...s,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):y.token&&(w.Authorization=`Bearer ${y.token}`)),n&&(i=n(i)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:u)&&i){let d=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?A:T.passphrase:S;i=D(i,d);}return E({url:f,method:m,data:i,headers:w,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:d=>{y?.onUploadProgress&&y?.onUploadProgress(d);}},(d,x)=>P(d,R,y,x))};return {client:E,post:(m,f,i,R)=>q("POST",`${m}`,f,i,R),put:(m,f,i,R)=>q("PUT",`${m}`,f,i,R),patch:(m,f,i,R)=>q("PATCH",`${m}`,f,i,R),delete:(m,f,i)=>q("DELETE",`${m}`,null,f,i),get:(m,f,i)=>q("GET",`${m}`,null,f,i),upload:(m,f,i,R)=>{let T=new FormData;return Object.keys(f).forEach(U=>T.append(U,f[U])),q("POST",`${m}`,T,i,{infoSuccess:false,...R,headers:{"Content-Type":"multipart/form-data",...R?.headers}})}}};function Zt(e,t){let[n,r]=useState(false),[s,a]=useState(),[p,o]=useState(0),c=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async S=>{c.current?.abort();let D=new AbortController;c.current=D,r(true),t?.beforeRequest&&(S=t?.beforeRequest(S)),t?.logging&&console.log("Before request",S);let O={...t,signal:D.signal,onUploadProgress:P=>{let E=Math.round(P.loaded*100/(P.total||1));o(E);}},A=e.__isVoid?await e(void 0,O):await e(S,void 0,O);t?.logging&&console.log("After response",A),a(A),r(false),o(0),A.status&&t?.onSuccess&&t?.onSuccess(A),!A.status&&t?.onError&&t?.onError(A),t?.afterResponse&&t?.afterResponse(A);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,r(false),o(0);},progress:p,reset:()=>{r(false),o(0),a(null);}}]}function je(e,t){let{disableHysteresis:n=false,threshold:r=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)>r}var Ve=typeof window<"u"?window:null;function tn(e={}){let{getTrigger:t=je,target:n=Ve,disableHysteresis:r=false,threshold:s=100}=e,a=Z.useRef(0),[p,o]=Z.useState(()=>t(a,{disableHysteresis:r,threshold:s,target:n}));return Z.useEffect(()=>{let c=()=>{o(t(a,{disableHysteresis:r,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,t,r,s]),p}var on=(e,t)=>{let n=t||e.__path||e.name;return j(n).useStore()};var ln=(e,t)=>{let n=r=>e(r);return n.displayName=t,n},pn=(e,t)=>{let n={};n.others=[];let r=s=>{Z.Children.forEach(s,a=>{if(Z.isValidElement(a)){let p=a.type.displayName;if(t.includes(p))n[p]=a;else {let o=a;o.props?.children?r(o.props.children):n.others.push(a);}}else n.others.push(a);});};return r(e),n};function We(e,t=[]){let n={};for(let r in e){let s=e[r];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,r].join("."),a.__isVoid=s.length===2,n[r]=a;}else typeof s=="object"&&s!==null?n[r]=We(s,[...t,r]):n[r]=s;}return n}export{Ce as BgsCoreProvider,Ue as DataTypeEnum,Ne as HttpMethod,se as capitalizeWords,Gt as createApiHelper,ln as createElement,de as createStore,et as debounce,J as decrypt,ue as decryptString,ze as diffJson,W as encrypt,ce as encryptString,oe as generateCacheKey,Je as generateUUID,v as getFieldValue,Ge as isArray,K as isNotEmpty,Qe as jsonCopy,re as labelFormatter,_e as mappingUndefinedtoNull,Xe as renderChildren,Ye as sorting,pn as splitElement,be as stableStringify,Ze as summary,we as useApiLoad,Zt as useApiSend,on as useApiStore,F as useBgsCore,$ as useCrypto,Nt as useDelay,Ft as useFormatted,Mt as useInterval,Lt as useKeyPress,tn as useScrollTrigger,fe as useStorage,We 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.26",
|
|
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",
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"axios": ">=1.6.0",
|
|
45
45
|
"moment": ">=2.0.0",
|
|
46
46
|
"react": ">=17.0.0",
|
|
47
|
-
"react-dom": ">=17.0.0"
|
|
47
|
+
"react-dom": ">=17.0.0",
|
|
48
|
+
"socket.io-client": ">=4.8.1"
|
|
48
49
|
},
|
|
49
50
|
"dependencies": {
|
|
50
51
|
"crypto-js": "^4.2.0"
|
|
@@ -56,4 +57,4 @@
|
|
|
56
57
|
"tsup": "^8.4.0",
|
|
57
58
|
"typescript": "^5.8.3"
|
|
58
59
|
}
|
|
59
|
-
}
|
|
60
|
+
}
|