@bgscore/react-core 0.0.87 → 0.0.89

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 CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var fe=require('react'),N=require('dayjs'),Ne=require('dayjs/plugin/utc'),Ke=require('dayjs/plugin/timezone'),Me=require('dayjs/plugin/duration'),Fe=require('dayjs/plugin/advancedFormat'),Le=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),He=require('dayjs/plugin/isSameOrBefore'),Ie=require('dayjs/plugin/isSameOrAfter'),$e=require('dayjs/plugin/weekOfYear'),je=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),xe=require('crypto-js/aes'),Te=require('crypto-js/pbkdf2'),Ge=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),be=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),ut=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var fe__default=/*#__PURE__*/_interopDefault(fe);var N__default=/*#__PURE__*/_interopDefault(N);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Me__default=/*#__PURE__*/_interopDefault(Me);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Le__default=/*#__PURE__*/_interopDefault(Le);var Be__default=/*#__PURE__*/_interopDefault(Be);var He__default=/*#__PURE__*/_interopDefault(He);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var $e__default=/*#__PURE__*/_interopDefault($e);var je__default=/*#__PURE__*/_interopDefault(je);var xe__default=/*#__PURE__*/_interopDefault(xe);var Te__default=/*#__PURE__*/_interopDefault(Te);var Ge__default=/*#__PURE__*/_interopDefault(Ge);var X__default=/*#__PURE__*/_interopDefault(X);var be__default=/*#__PURE__*/_interopDefault(be);var ut__default=/*#__PURE__*/_interopDefault(ut);function Dt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function St(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Pt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Ot(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function B(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var me={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=me.snackCase(me.camelCase(t)),e&&(r=r?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return r?.trim()}};function qt(t,e){return typeof t=="function"?t(e):t}var K=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return r;s=s[a];}return s===void 0?r:s},wt={desc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(r,e):"";return s<a?1:-1}else return r<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(o,e):"";return s>a?1:-1}else return r>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(o=>Number(e?K(o,e)||0:o||0)),r.reduce((o,s)=>(o||0)+(s||0),0)||0};function vt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ee(t){let e=new WeakSet;return JSON.stringify(t,function(r,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function Re(t,e){return Ee([e??"undefined",t??"undefined"])}function ye(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let r;return function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);}}var ge=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};N__default.default.extend(Ne__default.default);N__default.default.extend(Ke__default.default);N__default.default.extend(Me__default.default);N__default.default.extend(Fe__default.default);N__default.default.extend(Le__default.default);N__default.default.extend(Be__default.default);N__default.default.extend(He__default.default);N__default.default.extend(Ie__default.default);N__default.default.extend($e__default.default);N__default.default.extend(je__default.default);var M=N__default.default;var he=fe.createContext(void 0);function $(){let t=fe.useContext(he);return t||{}}var Je=({children:t,value:e})=>{let r={...e};return fe.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(he.Provider,{value:r,children:t})};function oe(t,e){let r=be__default.default.random(16),o=be__default.default.random(16),s=Te__default.default(e,r,{keySize:256/32,iterations:1e3}),a=xe__default.default.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:r.toString(X__default.default),iv:o.toString(X__default.default),encrypted:a}}function se(t,e){let{salt:r,iv:o,encrypted:s}=t,a=Te__default.default(e,X__default.default.parse(r),{keySize:256/32,iterations:1e3}),n=xe__default.default.decrypt(s,a,{iv:X__default.default.parse(o)}).toString(Ge__default.default);return JSON.parse(n)}function Ce(t,e){return JSON.stringify(oe(t,e))}function Ae(t,e){return se(JSON.parse(t),e)}function Z(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return oe(e,r||t)},decrypt(e,r){return se(e,r||t)},encryptString(e,r){return Ce(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=fe.useCallback((i,n)=>{try{let p=t(n);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[t]),o=fe.useCallback(i=>{try{let n=localStorage.getItem(i);return n?e(JSON.parse(n)):null}catch(n){return console.error("Failed to get from storage:",n),null}},[e]),s=i=>{let[n,p]=fe.useState(()=>{try{let c=localStorage.getItem(i);return c?e(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return fe.useEffect(()=>{let c=y=>{if(y.key===i)if(y.newValue)try{p(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else p(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[i,e]),n},a=fe.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let r in e){let o=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(o),i=JSON.stringify(s);if(a!==i)return false}else if(o!==s)return false}return true}var z={loading:false,response:void 0,isCancel:false},J=zustand.create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??z,a={...s,...o};Qe(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var ie=new Map,Se=(t,e)=>{ie.set(t,e);},Pe=t=>{ie.delete(t);},Oe=t=>ie.get(t);function tt(...t){let[e,r,o]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,n=s?r:o,p=n?.storeName||`${a}`,[c,y,S,g]=J(shallow.useShallow(h=>{let u=h.states[p]??z;return [u.loading,u.isCancel,u.response,h.updateState]})),{storageKey:D,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=$(),j=De(),E=fe.useRef(void 0),F=fe.useRef(null),{cacheName:H,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=fe.useMemo(()=>{let h=D?j.get(D):void 0,u=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,b=Re({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),R=false;typeof T?.enabled=="boolean"&&(R=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(O=T.timeout,v="s"):typeof T?.timeout=="object"&&(O=T?.timeout.value,v=T?.timeout.unit)),B(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?R=n.cache.enabled:R=true,typeof n?.cache?.timeout=="number"?(O=n.cache.timeout,v="s"):typeof n?.cache?.timeout=="object"&&(O=n.cache.timeout.value,v=n.cache.timeout.unit)):R=n.cache),{cacheName:u,cacheKey:b,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:R}},[n?.cache,i,D,T,a]);fe.useEffect(()=>{let h=JSON.stringify(B(E.current)?E.current:""),u=JSON.stringify(B(i)?i:""),b=E.current===void 0;(h!==u||b)&&!n?.hold&&((n?.clearPreviousData??C)&&g(p,{response:null}),m(),E.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,C,n?.hold,...n?.trigger||[]]),fe.useEffect(()=>{let h=async()=>{!te&&H&&L&&(await caches.open(H)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,L,p,F]);let m=fe.useCallback(async h=>{let u=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(u=n?.beforeRequest(i)),G&&!h&&!y){n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await b.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data,u)),n?.logging&&console.log("After request: Using Cache",O),O?.status&&n?.onSuccess?.(O,u),n?.onAfterResponse?.(O,u),g(p,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=s?await e(void 0,{...n,signal:b.signal}):await e(u,void 0,{...n,signal:b.signal});if(n?.afterResponse&&R?.data&&(R.data=n?.afterResponse(R.data,u)),n?.logging&&console.log("After request",R),R.status&&n?.onSuccess?.(R,u),R.status||n?.onError?.(R,u),n?.onAfterResponse?.(R,u),g(p,{loading:false,response:R,isCancel:false}),G&&R.status){let P=M().add(Q,ee).toISOString(),O={data:R,expired:P},v=await caches.open(H),V=new Response(JSON.stringify(O));await v.put(L,V);}}},[i,e,n,y,H,L,Q,ee,G]);fe.useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,u=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,b=setInterval(()=>{m();},M.duration(h,u).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[n?.refreshInterval,m]);let l=fe.useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=fe.useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??q?.enabled??false,u=n?.refetchOnWindowFocus?.timeout??q?.timeout,b=typeof u=="number"?u:u?.value??60*5,R=typeof u=="object"?u.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[n?.refetchOnWindowFocus,q]);fe.useEffect(()=>{if(!f)return;let h=M.duration(A,x).asMilliseconds(),u=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&m(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",u),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",b);}},[f,A,x,m]);let w=fe.useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=fe.useCallback(()=>{g(p,{loading:false,response:null});},[p]),U=fe.useMemo(()=>({...S,loading:c,refresh:m,abort:w,clear:d,response:S,isCancel:y,clone:(h,u)=>tt(e,h,u)}),[S,c,m,w,d,y,e]);return fe.useEffect(()=>(Se(p,U),()=>{Pe(p);}),[U,p]),[S?.data,U]}async function Cr(t,e=()=>{}){let r=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},r);})}var rt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(rt||{}),nt=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(nt||{});var qr=(t,e,r)=>{let{format:o}=$();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...r}):e==="boolean"?ot(t,r):e==="string"?st(t,r):t?.toString()??""};function ot(t,e){let r=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?o:s}function st(t,e){if(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function at(t,{thouSep:e,decSep:r,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let c=Math.pow(10,o);a=Math[s](a*c)/c;}else a=Math[s](a);else if(typeof o=="number"){let c=Math.pow(10,o);a=Math.floor(a*c)/c;}let i=0;if(o==="auto"){let c=a.toString(),y=c.indexOf(".");y!==-1&&(i=c.length-y-1);}let n={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?i:o||0,maximumFractionDigits:o==="auto"?i:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",n).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function it(t,{display:e,value:r}){if(!B(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function vr(t,{interval:e,lead:r}){let o=fe.useRef(null);fe.useEffect(()=>{o.current=t;},[t]),fe.useEffect(()=>{let s=()=>o.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Nr(t,e,r){let[o,s]=fe.useState(false),a=(c,y)=>typeof t=="string"&&c===t||typeof t=="number"&&y===t,i=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),n=c=>{let{key:y,keyCode:S}=c,g=c.ctrlKey,D=c.altKey,T=c.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&D||e==="shift"&&T)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?D:q==="shift"?T:false);a(y,S)&&C&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));}else a(y,S)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));},p=({key:c,keyCode:y})=>{a(c,y)&&s(false);};return fe.useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",p);}),[]),o}var $r=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:p,withCredentials:c,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:D,decrypt:T,passphrase:C}=Z(),q=(m,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&d){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?C:f.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let u={...o({...m,data:d,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:m?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,R=n?n(u,f):!w;if((f?.infoSuccess&&u.status||f?.infoError&&!u.status)&&i&&(!x||!b)&&i(u),!R&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(u);}if(l)l(u);else return u},j=(m,l=()=>{})=>ut__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:c})(m).then(l).catch(A=>l(A.response,A)),E=(m,l,f,A,x)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(f=r(f)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&f){let u=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;f=D(f,u);}return j({url:l,method:m,data:f,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:u=>{d?.onUploadProgress&&d?.onUploadProgress(u);}},(u,b)=>q(u,A,d,b))};return {client:j,post:(m,l,f,A)=>E("POST",`${m}`,l,f,A),put:(m,l,f,A)=>E("PUT",`${m}`,l,f,A),patch:(m,l,f,A)=>E("PATCH",`${m}`,l,f,A),delete:(m,l,f)=>E("DELETE",`${m}`,null,l,f),get:(m,l,f)=>E("GET",`${m}`,null,l,f),upload:(m,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),E("POST",`${m}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,f,A,x)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let k=typeof d.token=="boolean"?e:d.token;k&&(U.Authorization=`Bearer ${k}`);}let h=f;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=D(h,k);}let b=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let k=b?.statusText||"Error";try{let Y=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:S)&&f){let ke=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;try{f=T(ne,ke);}catch{try{f=T(ne,C);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};x?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),v=new TextDecoder("utf-8"),V="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,V+=v.decode(re,{stream:!0});let W=V.split(`
1
+ 'use strict';var fe=require('react'),E=require('dayjs'),Ee=require('dayjs/plugin/utc'),Ke=require('dayjs/plugin/timezone'),Me=require('dayjs/plugin/duration'),Fe=require('dayjs/plugin/advancedFormat'),Le=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),He=require('dayjs/plugin/isSameOrBefore'),Ie=require('dayjs/plugin/isSameOrAfter'),$e=require('dayjs/plugin/weekOfYear'),je=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),xe=require('crypto-js/aes'),Te=require('crypto-js/pbkdf2'),Ge=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),be=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),ut=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var fe__default=/*#__PURE__*/_interopDefault(fe);var E__default=/*#__PURE__*/_interopDefault(E);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Me__default=/*#__PURE__*/_interopDefault(Me);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Le__default=/*#__PURE__*/_interopDefault(Le);var Be__default=/*#__PURE__*/_interopDefault(Be);var He__default=/*#__PURE__*/_interopDefault(He);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var $e__default=/*#__PURE__*/_interopDefault($e);var je__default=/*#__PURE__*/_interopDefault(je);var xe__default=/*#__PURE__*/_interopDefault(xe);var Te__default=/*#__PURE__*/_interopDefault(Te);var Ge__default=/*#__PURE__*/_interopDefault(Ge);var X__default=/*#__PURE__*/_interopDefault(X);var be__default=/*#__PURE__*/_interopDefault(be);var ut__default=/*#__PURE__*/_interopDefault(ut);function Dt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function St(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Pt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Ot(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function B(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var me={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=me.snackCase(me.camelCase(t)),e&&(r=r?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return r?.trim()}};function qt(t,e){return typeof t=="function"?t(e):t}var K=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return r;s=s[a];}return s===void 0?r:s},wt={desc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(r,e):"";return s<a?1:-1}else return r<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(o,e):"";return s>a?1:-1}else return r>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(o=>Number(e?K(o,e)||0:o||0)),r.reduce((o,s)=>(o||0)+(s||0),0)||0};function vt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ne(t){let e=new WeakSet;return JSON.stringify(t,function(r,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function Re(t,e){return Ne([e??"undefined",t??"undefined"])}function ye(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let r;return function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);}}var ge=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};E__default.default.extend(Ee__default.default);E__default.default.extend(Ke__default.default);E__default.default.extend(Me__default.default);E__default.default.extend(Fe__default.default);E__default.default.extend(Le__default.default);E__default.default.extend(Be__default.default);E__default.default.extend(He__default.default);E__default.default.extend(Ie__default.default);E__default.default.extend($e__default.default);E__default.default.extend(je__default.default);var M=E__default.default;var he=fe.createContext(void 0);function $(){let t=fe.useContext(he);return t||{}}var Je=({children:t,value:e})=>{let r={...e};return fe.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(he.Provider,{value:r,children:t})};function oe(t,e){let r=be__default.default.random(16),o=be__default.default.random(16),s=Te__default.default(e,r,{keySize:256/32,iterations:1e3}),a=xe__default.default.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:r.toString(X__default.default),iv:o.toString(X__default.default),encrypted:a}}function se(t,e){let{salt:r,iv:o,encrypted:s}=t,a=Te__default.default(e,X__default.default.parse(r),{keySize:256/32,iterations:1e3}),n=xe__default.default.decrypt(s,a,{iv:X__default.default.parse(o)}).toString(Ge__default.default);return JSON.parse(n)}function Ce(t,e){return JSON.stringify(oe(t,e))}function Ae(t,e){return se(JSON.parse(t),e)}function Z(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return oe(e,r||t)},decrypt(e,r){return se(e,r||t)},encryptString(e,r){return Ce(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=fe.useCallback((i,n)=>{try{let p=t(n);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[t]),o=fe.useCallback(i=>{try{let n=localStorage.getItem(i);return n?e(JSON.parse(n)):null}catch(n){return console.error("Failed to get from storage:",n),null}},[e]),s=i=>{let[n,p]=fe.useState(()=>{try{let c=localStorage.getItem(i);return c?e(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return fe.useEffect(()=>{let c=y=>{if(y.key===i)if(y.newValue)try{p(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else p(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[i,e]),n},a=fe.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let r in e){let o=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(o),i=JSON.stringify(s);if(a!==i)return false}else if(o!==s)return false}return true}var z={loading:false,response:void 0,isCancel:false},J=zustand.create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??z,a={...s,...o};Qe(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var ie=new Map,Se=(t,e)=>{ie.set(t,e);},Pe=t=>{ie.delete(t);},Oe=t=>ie.get(t);function tt(...t){let[e,r,o]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,n=s?r:o,p=n?.storeName||`${a}`,[c,y,S,g]=J(shallow.useShallow(h=>{let u=h.states[p]??z;return [u.loading,u.isCancel,u.response,h.updateState]})),{storageKey:D,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=$(),j=De(),N=fe.useRef(void 0),F=fe.useRef(null),{cacheName:H,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=fe.useMemo(()=>{let h=D?j.get(D):void 0,u=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,b=Re({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),R=false;typeof T?.enabled=="boolean"&&(R=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(O=T.timeout,v="s"):typeof T?.timeout=="object"&&(O=T?.timeout.value,v=T?.timeout.unit)),B(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?R=n.cache.enabled:R=true,typeof n?.cache?.timeout=="number"?(O=n.cache.timeout,v="s"):typeof n?.cache?.timeout=="object"&&(O=n.cache.timeout.value,v=n.cache.timeout.unit)):R=n.cache),{cacheName:u,cacheKey:b,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:R}},[n?.cache,i,D,T,a]);fe.useEffect(()=>{let h=JSON.stringify(B(N.current)?N.current:""),u=JSON.stringify(B(i)?i:""),b=N.current===void 0;(h!==u||b)&&!n?.hold&&((n?.clearPreviousData??C)&&g(p,{response:null}),m(),N.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,C,n?.hold,...n?.trigger||[]]),fe.useEffect(()=>{let h=async()=>{!te&&H&&L&&(await caches.open(H)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,L,p,F]);let m=fe.useCallback(async h=>{let u=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(u=n?.beforeRequest(i)),G&&!h&&!y){n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await b.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data,u)),n?.logging&&console.log("After request: Using Cache",O),O?.status&&n?.onSuccess?.(O,u),n?.onAfterResponse?.(O,u),g(p,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=s?await e(void 0,{...n,signal:b.signal}):await e(u,void 0,{...n,signal:b.signal});if(n?.afterResponse&&R?.data&&(R.data=n?.afterResponse(R.data,u)),n?.logging&&console.log("After request",R),R.status&&n?.onSuccess?.(R,u),R.status||n?.onError?.(R,u),n?.onAfterResponse?.(R,u),g(p,{loading:false,response:R,isCancel:false}),G&&R.status){let P=M().add(Q,ee).toISOString(),O={data:R,expired:P},v=await caches.open(H),V=new Response(JSON.stringify(O));await v.put(L,V);}}},[i,e,n,y,H,L,Q,ee,G]);fe.useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,u=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,b=setInterval(()=>{m();},M.duration(h,u).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[n?.refreshInterval,m]);let l=fe.useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=fe.useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??q?.enabled??false,u=n?.refetchOnWindowFocus?.timeout??q?.timeout,b=typeof u=="number"?u:u?.value??60*5,R=typeof u=="object"?u.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[n?.refetchOnWindowFocus,q]);fe.useEffect(()=>{if(!f)return;let h=M.duration(A,x).asMilliseconds(),u=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&m(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",u),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",b);}},[f,A,x,m]);let w=fe.useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=fe.useCallback(()=>{g(p,{loading:false,response:null});},[p]),U=fe.useMemo(()=>({...S,loading:c,refresh:m,abort:w,clear:d,response:S,isCancel:y,clone:(h,u)=>tt(e,h,u)}),[S,c,m,w,d,y,e]);return fe.useEffect(()=>(Se(p,U),()=>{Pe(p);}),[U,p]),[S?.data,U]}async function Cr(t,e=()=>{}){let r=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},r);})}var rt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(rt||{}),nt=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(nt||{});var qr=(t,e,r)=>{let{format:o}=$();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...r}):e==="boolean"?ot(t,r):e==="string"?st(t,r):t?.toString()??""};function ot(t,e){let r=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?o:s}function st(t,e){if(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function at(t,{thouSep:e,decSep:r,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let c=Math.pow(10,o);a=Math[s](a*c)/c;}else a=Math[s](a);else if(typeof o=="number"){let c=Math.pow(10,o);a=Math.floor(a*c)/c;}let i=0;if(o==="auto"){let c=a.toString(),y=c.indexOf(".");y!==-1&&(i=c.length-y-1);}let n={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?i:o||0,maximumFractionDigits:o==="auto"?i:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",n).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function it(t,{display:e,value:r}){if(!B(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function vr(t,{interval:e,lead:r}){let o=fe.useRef(null);fe.useEffect(()=>{o.current=t;},[t]),fe.useEffect(()=>{let s=()=>o.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Er(t,e,r){let[o,s]=fe.useState(false),a=(c,y)=>typeof t=="string"&&c===t||typeof t=="number"&&y===t,i=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),n=c=>{let{key:y,keyCode:S}=c,g=c.ctrlKey,D=c.altKey,T=c.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&D||e==="shift"&&T)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?D:q==="shift"?T:false);a(y,S)&&C&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));}else a(y,S)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));},p=({key:c,keyCode:y})=>{a(c,y)&&s(false);};return fe.useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",p);}),[]),o}var $r=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:p,withCredentials:c,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:D,decrypt:T,passphrase:C}=Z(),q=(m,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&d){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?C:f.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let u={...o({...m,data:d,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:m?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,R=n?n(u,f):!w;if((f?.infoSuccess&&u.status||f?.infoError&&!u.status)&&i&&(!x||!b)&&i(u),!R&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(u);}if(l)l(u);else return u},j=(m,l=()=>{})=>ut__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:c})(m).then(l).catch(A=>l(A.response,A)),N=(m,l,f,A,x)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(f=r(f)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&f){let u=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;f=D(f,u);}return j({url:l,method:m,data:f,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:u=>{d?.onUploadProgress&&d?.onUploadProgress(u);}},(u,b)=>q(u,A,d,b))};return {client:j,post:(m,l,f,A)=>N("POST",`${m}`,l,f,A),put:(m,l,f,A)=>N("PUT",`${m}`,l,f,A),patch:(m,l,f,A)=>N("PATCH",`${m}`,l,f,A),delete:(m,l,f)=>N("DELETE",`${m}`,null,l,f),get:(m,l,f)=>N("GET",`${m}`,null,l,f),upload:(m,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),N("POST",`${m}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,f,A,x)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let k=typeof d.token=="boolean"?e:d.token;k&&(U.Authorization=`Bearer ${k}`);}let h=f;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=D(h,k);}let b=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let k=b?.statusText||"Error";try{let Y=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:S)&&f){let ke=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;try{f=T(ne,ke);}catch{try{f=T(ne,C);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};x?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),v=new TextDecoder("utf-8"),V="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,V+=v.decode(re,{stream:!0});let W=V.split(`
2
2
 
3
- `);V=W.pop();for(let Y of W)if(Y.startsWith("data:"))try{let I=ge(Y);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0});}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Wr(t,e){let[r,o]=fe.useState(false),[s,a]=fe.useState(),[i,n]=fe.useState(0),p=fe.useRef(null);return fe.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async g=>{p.current?.abort();let D=new AbortController;p.current=D,o(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g),e?.onBeforeRequest&&e?.onBeforeRequest(g);let T={...e,signal:D.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));n(j);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),o(false),n(0),e?.afterResponse&&C?.data&&(C.data=e?.afterResponse(C.data,g)),C.status&&e?.onSuccess&&e?.onSuccess(C,g),!C.status&&e?.onError&&e?.onError(C,g),e?.onAfterResponse?.(C,g);},{...s,loading:r,abort:()=>{p.current?.abort(),p.current=null,o(false),n(0);},progress:i,reset:()=>{o(false),n(0),a(null);}}]}function mt(t,e){let{disableHysteresis:r=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>o}var Rt=typeof window<"u"?window:null;function _r(t={}){let{getTrigger:e=mt,target:r=Rt,disableHysteresis:o=false,threshold:s=100}=t,a=fe__default.default.useRef(0),[i,n]=fe__default.default.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:r}));return fe__default.default.useEffect(()=>{let p=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,e,o,s]),i}var en=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let p=n.states[o]??z,{loading:c,isCancel:y,response:S}=p,{refresh:g,abort:D,clear:T,clone:C}=Oe(o)||{},q=[S?.data,{...S,loading:c,isCancel:y,refresh:g,abort:D,clear:T,clone:C}];return e?.selector?e.selector(q):q};return s?J(shallow.useShallow(a)):J(a)};var nn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},on=(t,e)=>{let r={};r.others=[];let o=s=>{fe__default.default.Children.forEach(s,a=>{if(fe__default.default.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let n=a;n.props?.children?o(n.props.children):r.others.push(a);}}else r.others.push(a);});};return o(t),r};function ln(t){let e=t,r=new Set;function o(){return e}function s(n){return r.add(n),()=>r.delete(n)}function a(n){typeof n=="function"?e=n(e):e=n,r.forEach(p=>p());}function i(n){let p=fe.useRef(n?n(e):e);return fe.useSyncExternalStore(s,()=>{let c=n?n(e):e,y=p.current;return Object.is(y,c)||(p.current=c),p.current},()=>n?n(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:i}}function bt(t,e=[]){let r={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,r[o]=a;}else typeof s=="object"&&s!==null?r[o]=bt(s,[...e,o]):r[o]=s;}return r}function fn(t,e){let[r,o]=fe.useState(false),[s,a]=fe.useState([]),i=fe.useRef([]),n=fe.useRef(null);fe.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{n.current?.abort();}},[]);let p=async S=>{n.current?.abort();let g=new AbortController;n.current=g,o(true),a([]),i.current=[],t(S,D=>{D.isDone||(i.current.push(D),a([...i.current])),(D.isDone||!D.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),D.status?e?.onStream&&e?.onStream(D):e?.onError&&e?.onError(D);},{signal:g.signal});},c=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(S=>S.data),p,{loading:r,abort:c,reset:y,response:s}]}exports.BgsCoreProvider=Je;exports.DataTypeEnum=nt;exports.HttpMethod=rt;exports.capitalizeWords=ye;exports.createApiHelper=$r;exports.createElement=nn;exports.createStore=ln;exports.debounce=kt;exports.decrypt=se;exports.decryptString=Ae;exports.defaultState=z;exports.diffJson=St;exports.encrypt=oe;exports.encryptString=Ce;exports.generateCacheKey=Re;exports.generateUUID=Dt;exports.getApiActions=Oe;exports.getFieldValue=K;exports.isArray=Ot;exports.isNotEmpty=B;exports.jsonCopy=vt;exports.labelFormatter=me;exports.mappingUndefinedtoNull=Pt;exports.moment=M;exports.parseSSEChunk=ge;exports.registerApi=Se;exports.renderChildren=qt;exports.safeUpdate=Qe;exports.sorting=wt;exports.splitElement=on;exports.stableStringify=Ee;exports.summary=Ut;exports.unregisterApi=Pe;exports.useApiLoad=tt;exports.useApiLoadStore=J;exports.useApiSend=Wr;exports.useApiStore=en;exports.useApiStream=fn;exports.useBgsCore=$;exports.useCrypto=Z;exports.useDelay=Cr;exports.useFormatted=qr;exports.useInterval=vr;exports.useKeyPress=Nr;exports.useScrollTrigger=_r;exports.useStorage=De;exports.wrapApi=bt;
3
+ `);V=W.pop();for(let Y of W)if(Y.startsWith("data:"))try{let I=ge(Y);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0});}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Wr(t,e){let[r,o]=fe.useState(false),[s,a]=fe.useState(),[i,n]=fe.useState(0),p=fe.useRef(null);return fe.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async g=>{p.current?.abort();let D=new AbortController;p.current=D,o(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g),e?.onBeforeRequest&&e?.onBeforeRequest(g);let T={...e,signal:D.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));n(j);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),o(false),n(0),e?.afterResponse&&C?.data&&(C.data=e?.afterResponse(C.data,g)),C.status&&e?.onSuccess&&e?.onSuccess(C,g),!C.status&&e?.onError&&e?.onError(C,g),e?.onAfterResponse?.(C,g);},{...s,loading:r,abort:()=>{p.current?.abort(),p.current=null,o(false),n(0);},progress:i,reset:()=>{o(false),n(0),a(null);}}]}function mt(t,e){let{disableHysteresis:r=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>o}var Rt=typeof window<"u"?window:null;function _r(t={}){let{getTrigger:e=mt,target:r=Rt,disableHysteresis:o=false,threshold:s=100}=t,a=fe__default.default.useRef(0),[i,n]=fe__default.default.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:r}));return fe__default.default.useEffect(()=>{let p=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,e,o,s]),i}var en=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let p=n.states[o]??z,{loading:c,isCancel:y,response:S}=p,{refresh:g,abort:D,clear:T,clone:C}=Oe(o)||{},q=[S?.data,{...S,loading:c,isCancel:y,refresh:g,abort:D,clear:T,clone:C}];return e?.selector?e.selector(q):q};return s?J(shallow.useShallow(a)):J(a)};var nn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},on=(t,e)=>{let r={};r.others=[];let o=s=>{fe__default.default.Children.forEach(s,a=>{if(fe__default.default.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let n=a;n.props?.children?o(n.props.children):r.others.push(a);}}else r.others.push(a);});};return o(t),r};function ln(t){let e=t,r=new Set;function o(){return e}function s(n){return r.add(n),()=>r.delete(n)}function a(n){typeof n=="function"?e=n(e):e=n,r.forEach(p=>p());}function i(n){let p=fe.useRef(n?n(e):e);return fe.useSyncExternalStore(s,()=>{let c=n?n(e):e,y=p.current;return Object.is(y,c)||(p.current=c),p.current},()=>n?n(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:i}}function bt(t,e=[]){let r={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,r[o]=a;}else typeof s=="object"&&s!==null?r[o]=bt(s,[...e,o]):r[o]=s;}return r}function fn(t,e){let[r,o]=fe.useState(false),[s,a]=fe.useState([]),i=fe.useRef([]),n=fe.useRef(null);fe.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{n.current?.abort();}},[]);let p=async S=>{n.current?.abort();let g=new AbortController;n.current=g,o(true),a([]),i.current=[],t(S,D=>{D.isDone||(i.current.push(D),a([...i.current])),(D.isDone||!D.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),D.status?e?.onStream&&e?.onStream(D):e?.onError&&e?.onError(D);},{signal:g.signal});},c=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(S=>S.data),p,{loading:r,abort:c,reset:y,response:s}]}exports.BgsCoreProvider=Je;exports.DataTypeEnum=nt;exports.HttpMethod=rt;exports.capitalizeWords=ye;exports.createApiHelper=$r;exports.createElement=nn;exports.createStore=ln;exports.debounce=kt;exports.decrypt=se;exports.decryptString=Ae;exports.defaultState=z;exports.diffJson=St;exports.encrypt=oe;exports.encryptString=Ce;exports.generateCacheKey=Re;exports.generateUUID=Dt;exports.getApiActions=Oe;exports.getFieldValue=K;exports.isArray=Ot;exports.isNotEmpty=B;exports.jsonCopy=vt;exports.labelFormatter=me;exports.mappingUndefinedtoNull=Pt;exports.moment=M;exports.parseSSEChunk=ge;exports.registerApi=Se;exports.renderChildren=qt;exports.safeUpdate=Qe;exports.sorting=wt;exports.splitElement=on;exports.stableStringify=Ne;exports.summary=Ut;exports.unregisterApi=Pe;exports.useApiLoad=tt;exports.useApiLoadStore=J;exports.useApiSend=Wr;exports.useApiStore=en;exports.useApiStream=fn;exports.useBgsCore=$;exports.useCrypto=Z;exports.useDelay=Cr;exports.useFormatted=qr;exports.useInterval=vr;exports.useKeyPress=Er;exports.useScrollTrigger=_r;exports.useStorage=De;exports.wrapApi=bt;
package/dist/index.d.cts CHANGED
@@ -452,7 +452,7 @@ type OptionsString = {
452
452
  textTransform?: TextTransform;
453
453
  ellipsis?: number;
454
454
  };
455
- type UseFormattedOptions<T extends DataType> = T extends DataTypeEnum.number ? Partial<OptionsNumber> : T extends DataTypeDateGroup ? Partial<OptionsDate> : T extends DataTypeEnum.boolean ? Partial<OptionsBoolean> : T extends DataTypeEnum.string ? Partial<OptionsString> : never;
455
+ type UseFormattedOptions<T extends DataType> = T extends DataTypeDateGroup ? Partial<OptionsDate> : T extends "number" ? Partial<OptionsNumber> : T extends "boolean" ? Partial<OptionsBoolean> : T extends "string" ? Partial<OptionsString> : never;
456
456
  type SupportedFormattedType = Extract<DataType, "number" | "date" | "dateTime" | "month" | "year" | "time" | "boolean" | "string">;
457
457
  declare const useFormatted: <T extends SupportedFormattedType>(value: unknown, dataType: T, options?: UseFormattedOptions<T>) => string;
458
458
 
package/dist/index.d.ts CHANGED
@@ -452,7 +452,7 @@ type OptionsString = {
452
452
  textTransform?: TextTransform;
453
453
  ellipsis?: number;
454
454
  };
455
- type UseFormattedOptions<T extends DataType> = T extends DataTypeEnum.number ? Partial<OptionsNumber> : T extends DataTypeDateGroup ? Partial<OptionsDate> : T extends DataTypeEnum.boolean ? Partial<OptionsBoolean> : T extends DataTypeEnum.string ? Partial<OptionsString> : never;
455
+ type UseFormattedOptions<T extends DataType> = T extends DataTypeDateGroup ? Partial<OptionsDate> : T extends "number" ? Partial<OptionsNumber> : T extends "boolean" ? Partial<OptionsBoolean> : T extends "string" ? Partial<OptionsString> : never;
456
456
  type SupportedFormattedType = Extract<DataType, "number" | "date" | "dateTime" | "month" | "year" | "time" | "boolean" | "string">;
457
457
  declare const useFormatted: <T extends SupportedFormattedType>(value: unknown, dataType: T, options?: UseFormattedOptions<T>) => string;
458
458
 
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import fe,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import N from'dayjs';import Ne from'dayjs/plugin/utc';import Ke from'dayjs/plugin/timezone';import Me from'dayjs/plugin/duration';import Fe from'dayjs/plugin/advancedFormat';import Le from'dayjs/plugin/localizedFormat';import Be from'dayjs/plugin/relativeTime';import He from'dayjs/plugin/isSameOrBefore';import Ie from'dayjs/plugin/isSameOrAfter';import $e from'dayjs/plugin/weekOfYear';import je from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import xe from'crypto-js/aes';import Te from'crypto-js/pbkdf2';import Ge from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import be from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import ut from'axios';function Dt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function St(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Pt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Ot(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function B(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var me={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=me.snackCase(me.camelCase(t)),e&&(r=r?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return r?.trim()}};function qt(t,e){return typeof t=="function"?t(e):t}var K=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return r;s=s[a];}return s===void 0?r:s},wt={desc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(r,e):"";return s<a?1:-1}else return r<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(o,e):"";return s>a?1:-1}else return r>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(o=>Number(e?K(o,e)||0:o||0)),r.reduce((o,s)=>(o||0)+(s||0),0)||0};function vt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ee(t){let e=new WeakSet;return JSON.stringify(t,function(r,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function Re(t,e){return Ee([e??"undefined",t??"undefined"])}function ye(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let r;return function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);}}var ge=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};N.extend(Ne);N.extend(Ke);N.extend(Me);N.extend(Fe);N.extend(Le);N.extend(Be);N.extend(He);N.extend(Ie);N.extend($e);N.extend(je);var M=N;var he=createContext(void 0);function $(){let t=useContext(he);return t||{}}var Je=({children:t,value:e})=>{let r={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsx(he.Provider,{value:r,children:t})};function oe(t,e){let r=be.random(16),o=be.random(16),s=Te(e,r,{keySize:256/32,iterations:1e3}),a=xe.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:r.toString(X),iv:o.toString(X),encrypted:a}}function se(t,e){let{salt:r,iv:o,encrypted:s}=t,a=Te(e,X.parse(r),{keySize:256/32,iterations:1e3}),n=xe.decrypt(s,a,{iv:X.parse(o)}).toString(Ge);return JSON.parse(n)}function Ce(t,e){return JSON.stringify(oe(t,e))}function Ae(t,e){return se(JSON.parse(t),e)}function Z(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return oe(e,r||t)},decrypt(e,r){return se(e,r||t)},encryptString(e,r){return Ce(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=useCallback((i,n)=>{try{let p=t(n);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[t]),o=useCallback(i=>{try{let n=localStorage.getItem(i);return n?e(JSON.parse(n)):null}catch(n){return console.error("Failed to get from storage:",n),null}},[e]),s=i=>{let[n,p]=useState(()=>{try{let c=localStorage.getItem(i);return c?e(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return useEffect(()=>{let c=y=>{if(y.key===i)if(y.newValue)try{p(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else p(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[i,e]),n},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let r in e){let o=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(o),i=JSON.stringify(s);if(a!==i)return false}else if(o!==s)return false}return true}var z={loading:false,response:void 0,isCancel:false},J=create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??z,a={...s,...o};Qe(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var ie=new Map,Se=(t,e)=>{ie.set(t,e);},Pe=t=>{ie.delete(t);},Oe=t=>ie.get(t);function tt(...t){let[e,r,o]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,n=s?r:o,p=n?.storeName||`${a}`,[c,y,S,g]=J(useShallow(h=>{let u=h.states[p]??z;return [u.loading,u.isCancel,u.response,h.updateState]})),{storageKey:D,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=$(),j=De(),E=useRef(void 0),F=useRef(null),{cacheName:H,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=useMemo(()=>{let h=D?j.get(D):void 0,u=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,b=Re({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),R=false;typeof T?.enabled=="boolean"&&(R=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(O=T.timeout,v="s"):typeof T?.timeout=="object"&&(O=T?.timeout.value,v=T?.timeout.unit)),B(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?R=n.cache.enabled:R=true,typeof n?.cache?.timeout=="number"?(O=n.cache.timeout,v="s"):typeof n?.cache?.timeout=="object"&&(O=n.cache.timeout.value,v=n.cache.timeout.unit)):R=n.cache),{cacheName:u,cacheKey:b,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:R}},[n?.cache,i,D,T,a]);useEffect(()=>{let h=JSON.stringify(B(E.current)?E.current:""),u=JSON.stringify(B(i)?i:""),b=E.current===void 0;(h!==u||b)&&!n?.hold&&((n?.clearPreviousData??C)&&g(p,{response:null}),m(),E.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,C,n?.hold,...n?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&H&&L&&(await caches.open(H)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,L,p,F]);let m=useCallback(async h=>{let u=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(u=n?.beforeRequest(i)),G&&!h&&!y){n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await b.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data,u)),n?.logging&&console.log("After request: Using Cache",O),O?.status&&n?.onSuccess?.(O,u),n?.onAfterResponse?.(O,u),g(p,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=s?await e(void 0,{...n,signal:b.signal}):await e(u,void 0,{...n,signal:b.signal});if(n?.afterResponse&&R?.data&&(R.data=n?.afterResponse(R.data,u)),n?.logging&&console.log("After request",R),R.status&&n?.onSuccess?.(R,u),R.status||n?.onError?.(R,u),n?.onAfterResponse?.(R,u),g(p,{loading:false,response:R,isCancel:false}),G&&R.status){let P=M().add(Q,ee).toISOString(),O={data:R,expired:P},v=await caches.open(H),V=new Response(JSON.stringify(O));await v.put(L,V);}}},[i,e,n,y,H,L,Q,ee,G]);useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,u=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,b=setInterval(()=>{m();},M.duration(h,u).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[n?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??q?.enabled??false,u=n?.refetchOnWindowFocus?.timeout??q?.timeout,b=typeof u=="number"?u:u?.value??60*5,R=typeof u=="object"?u.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[n?.refetchOnWindowFocus,q]);useEffect(()=>{if(!f)return;let h=M.duration(A,x).asMilliseconds(),u=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&m(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",u),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",b);}},[f,A,x,m]);let w=useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=useCallback(()=>{g(p,{loading:false,response:null});},[p]),U=useMemo(()=>({...S,loading:c,refresh:m,abort:w,clear:d,response:S,isCancel:y,clone:(h,u)=>tt(e,h,u)}),[S,c,m,w,d,y,e]);return useEffect(()=>(Se(p,U),()=>{Pe(p);}),[U,p]),[S?.data,U]}async function Cr(t,e=()=>{}){let r=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},r);})}var rt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(rt||{}),nt=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(nt||{});var qr=(t,e,r)=>{let{format:o}=$();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...r}):e==="boolean"?ot(t,r):e==="string"?st(t,r):t?.toString()??""};function ot(t,e){let r=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?o:s}function st(t,e){if(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function at(t,{thouSep:e,decSep:r,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let c=Math.pow(10,o);a=Math[s](a*c)/c;}else a=Math[s](a);else if(typeof o=="number"){let c=Math.pow(10,o);a=Math.floor(a*c)/c;}let i=0;if(o==="auto"){let c=a.toString(),y=c.indexOf(".");y!==-1&&(i=c.length-y-1);}let n={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?i:o||0,maximumFractionDigits:o==="auto"?i:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",n).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function it(t,{display:e,value:r}){if(!B(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function vr(t,{interval:e,lead:r}){let o=useRef(null);useEffect(()=>{o.current=t;},[t]),useEffect(()=>{let s=()=>o.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Nr(t,e,r){let[o,s]=useState(false),a=(c,y)=>typeof t=="string"&&c===t||typeof t=="number"&&y===t,i=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),n=c=>{let{key:y,keyCode:S}=c,g=c.ctrlKey,D=c.altKey,T=c.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&D||e==="shift"&&T)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?D:q==="shift"?T:false);a(y,S)&&C&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));}else a(y,S)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));},p=({key:c,keyCode:y})=>{a(c,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",p);}),[]),o}var $r=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:p,withCredentials:c,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:D,decrypt:T,passphrase:C}=Z(),q=(m,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&d){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?C:f.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let u={...o({...m,data:d,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:m?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,R=n?n(u,f):!w;if((f?.infoSuccess&&u.status||f?.infoError&&!u.status)&&i&&(!x||!b)&&i(u),!R&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(u);}if(l)l(u);else return u},j=(m,l=()=>{})=>ut.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:c})(m).then(l).catch(A=>l(A.response,A)),E=(m,l,f,A,x)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(f=r(f)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&f){let u=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;f=D(f,u);}return j({url:l,method:m,data:f,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:u=>{d?.onUploadProgress&&d?.onUploadProgress(u);}},(u,b)=>q(u,A,d,b))};return {client:j,post:(m,l,f,A)=>E("POST",`${m}`,l,f,A),put:(m,l,f,A)=>E("PUT",`${m}`,l,f,A),patch:(m,l,f,A)=>E("PATCH",`${m}`,l,f,A),delete:(m,l,f)=>E("DELETE",`${m}`,null,l,f),get:(m,l,f)=>E("GET",`${m}`,null,l,f),upload:(m,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),E("POST",`${m}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,f,A,x)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let k=typeof d.token=="boolean"?e:d.token;k&&(U.Authorization=`Bearer ${k}`);}let h=f;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=D(h,k);}let b=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let k=b?.statusText||"Error";try{let Y=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:S)&&f){let ke=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;try{f=T(ne,ke);}catch{try{f=T(ne,C);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};x?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),v=new TextDecoder("utf-8"),V="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,V+=v.decode(re,{stream:!0});let W=V.split(`
1
+ import fe,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import E from'dayjs';import Ee from'dayjs/plugin/utc';import Ke from'dayjs/plugin/timezone';import Me from'dayjs/plugin/duration';import Fe from'dayjs/plugin/advancedFormat';import Le from'dayjs/plugin/localizedFormat';import Be from'dayjs/plugin/relativeTime';import He from'dayjs/plugin/isSameOrBefore';import Ie from'dayjs/plugin/isSameOrAfter';import $e from'dayjs/plugin/weekOfYear';import je from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import xe from'crypto-js/aes';import Te from'crypto-js/pbkdf2';import Ge from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import be from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import ut from'axios';function Dt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function St(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Pt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Ot(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function B(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var me={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=me.snackCase(me.camelCase(t)),e&&(r=r?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return r?.trim()}};function qt(t,e){return typeof t=="function"?t(e):t}var K=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return r;s=s[a];}return s===void 0?r:s},wt={desc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(r,e):"";return s<a?1:-1}else return r<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,o)=>{if(e){let s=K(r,e)?K(r,e):"",a=K(o,e)?K(o,e):"";return s>a?1:-1}else return r>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(o=>Number(e?K(o,e)||0:o||0)),r.reduce((o,s)=>(o||0)+(s||0),0)||0};function vt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ne(t){let e=new WeakSet;return JSON.stringify(t,function(r,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function Re(t,e){return Ne([e??"undefined",t??"undefined"])}function ye(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let r;return function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);}}var ge=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};E.extend(Ee);E.extend(Ke);E.extend(Me);E.extend(Fe);E.extend(Le);E.extend(Be);E.extend(He);E.extend(Ie);E.extend($e);E.extend(je);var M=E;var he=createContext(void 0);function $(){let t=useContext(he);return t||{}}var Je=({children:t,value:e})=>{let r={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsx(he.Provider,{value:r,children:t})};function oe(t,e){let r=be.random(16),o=be.random(16),s=Te(e,r,{keySize:256/32,iterations:1e3}),a=xe.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:r.toString(X),iv:o.toString(X),encrypted:a}}function se(t,e){let{salt:r,iv:o,encrypted:s}=t,a=Te(e,X.parse(r),{keySize:256/32,iterations:1e3}),n=xe.decrypt(s,a,{iv:X.parse(o)}).toString(Ge);return JSON.parse(n)}function Ce(t,e){return JSON.stringify(oe(t,e))}function Ae(t,e){return se(JSON.parse(t),e)}function Z(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return oe(e,r||t)},decrypt(e,r){return se(e,r||t)},encryptString(e,r){return Ce(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=useCallback((i,n)=>{try{let p=t(n);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[t]),o=useCallback(i=>{try{let n=localStorage.getItem(i);return n?e(JSON.parse(n)):null}catch(n){return console.error("Failed to get from storage:",n),null}},[e]),s=i=>{let[n,p]=useState(()=>{try{let c=localStorage.getItem(i);return c?e(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return useEffect(()=>{let c=y=>{if(y.key===i)if(y.newValue)try{p(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else p(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[i,e]),n},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let r in e){let o=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(o),i=JSON.stringify(s);if(a!==i)return false}else if(o!==s)return false}return true}var z={loading:false,response:void 0,isCancel:false},J=create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??z,a={...s,...o};Qe(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var ie=new Map,Se=(t,e)=>{ie.set(t,e);},Pe=t=>{ie.delete(t);},Oe=t=>ie.get(t);function tt(...t){let[e,r,o]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,n=s?r:o,p=n?.storeName||`${a}`,[c,y,S,g]=J(useShallow(h=>{let u=h.states[p]??z;return [u.loading,u.isCancel,u.response,h.updateState]})),{storageKey:D,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=$(),j=De(),N=useRef(void 0),F=useRef(null),{cacheName:H,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=useMemo(()=>{let h=D?j.get(D):void 0,u=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,b=Re({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),R=false;typeof T?.enabled=="boolean"&&(R=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(O=T.timeout,v="s"):typeof T?.timeout=="object"&&(O=T?.timeout.value,v=T?.timeout.unit)),B(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?R=n.cache.enabled:R=true,typeof n?.cache?.timeout=="number"?(O=n.cache.timeout,v="s"):typeof n?.cache?.timeout=="object"&&(O=n.cache.timeout.value,v=n.cache.timeout.unit)):R=n.cache),{cacheName:u,cacheKey:b,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:R}},[n?.cache,i,D,T,a]);useEffect(()=>{let h=JSON.stringify(B(N.current)?N.current:""),u=JSON.stringify(B(i)?i:""),b=N.current===void 0;(h!==u||b)&&!n?.hold&&((n?.clearPreviousData??C)&&g(p,{response:null}),m(),N.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,C,n?.hold,...n?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&H&&L&&(await caches.open(H)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,L,p,F]);let m=useCallback(async h=>{let u=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(u=n?.beforeRequest(i)),G&&!h&&!y){n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await b.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data,u)),n?.logging&&console.log("After request: Using Cache",O),O?.status&&n?.onSuccess?.(O,u),n?.onAfterResponse?.(O,u),g(p,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=s?await e(void 0,{...n,signal:b.signal}):await e(u,void 0,{...n,signal:b.signal});if(n?.afterResponse&&R?.data&&(R.data=n?.afterResponse(R.data,u)),n?.logging&&console.log("After request",R),R.status&&n?.onSuccess?.(R,u),R.status||n?.onError?.(R,u),n?.onAfterResponse?.(R,u),g(p,{loading:false,response:R,isCancel:false}),G&&R.status){let P=M().add(Q,ee).toISOString(),O={data:R,expired:P},v=await caches.open(H),V=new Response(JSON.stringify(O));await v.put(L,V);}}},[i,e,n,y,H,L,Q,ee,G]);useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,u=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,b=setInterval(()=>{m();},M.duration(h,u).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[n?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??q?.enabled??false,u=n?.refetchOnWindowFocus?.timeout??q?.timeout,b=typeof u=="number"?u:u?.value??60*5,R=typeof u=="object"?u.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[n?.refetchOnWindowFocus,q]);useEffect(()=>{if(!f)return;let h=M.duration(A,x).asMilliseconds(),u=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&m(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",u),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",b);}},[f,A,x,m]);let w=useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=useCallback(()=>{g(p,{loading:false,response:null});},[p]),U=useMemo(()=>({...S,loading:c,refresh:m,abort:w,clear:d,response:S,isCancel:y,clone:(h,u)=>tt(e,h,u)}),[S,c,m,w,d,y,e]);return useEffect(()=>(Se(p,U),()=>{Pe(p);}),[U,p]),[S?.data,U]}async function Cr(t,e=()=>{}){let r=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},r);})}var rt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(rt||{}),nt=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(nt||{});var qr=(t,e,r)=>{let{format:o}=$();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...r}):e==="boolean"?ot(t,r):e==="string"?st(t,r):t?.toString()??""};function ot(t,e){let r=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?o:s}function st(t,e){if(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function at(t,{thouSep:e,decSep:r,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let c=Math.pow(10,o);a=Math[s](a*c)/c;}else a=Math[s](a);else if(typeof o=="number"){let c=Math.pow(10,o);a=Math.floor(a*c)/c;}let i=0;if(o==="auto"){let c=a.toString(),y=c.indexOf(".");y!==-1&&(i=c.length-y-1);}let n={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?i:o||0,maximumFractionDigits:o==="auto"?i:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",n).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function it(t,{display:e,value:r}){if(!B(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function vr(t,{interval:e,lead:r}){let o=useRef(null);useEffect(()=>{o.current=t;},[t]),useEffect(()=>{let s=()=>o.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Er(t,e,r){let[o,s]=useState(false),a=(c,y)=>typeof t=="string"&&c===t||typeof t=="number"&&y===t,i=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),n=c=>{let{key:y,keyCode:S}=c,g=c.ctrlKey,D=c.altKey,T=c.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&D||e==="shift"&&T)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?D:q==="shift"?T:false);a(y,S)&&C&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));}else a(y,S)&&(c.preventDefault(),r&&c.stopPropagation(),s(!o));},p=({key:c,keyCode:y})=>{a(c,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",p);}),[]),o}var $r=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:p,withCredentials:c,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:D,decrypt:T,passphrase:C}=Z(),q=(m,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&d){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?C:f.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let u={...o({...m,data:d,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:m?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,R=n?n(u,f):!w;if((f?.infoSuccess&&u.status||f?.infoError&&!u.status)&&i&&(!x||!b)&&i(u),!R&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(u);}if(l)l(u);else return u},j=(m,l=()=>{})=>ut.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:c})(m).then(l).catch(A=>l(A.response,A)),N=(m,l,f,A,x)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(f=r(f)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&f){let u=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;f=D(f,u);}return j({url:l,method:m,data:f,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:u=>{d?.onUploadProgress&&d?.onUploadProgress(u);}},(u,b)=>q(u,A,d,b))};return {client:j,post:(m,l,f,A)=>N("POST",`${m}`,l,f,A),put:(m,l,f,A)=>N("PUT",`${m}`,l,f,A),patch:(m,l,f,A)=>N("PATCH",`${m}`,l,f,A),delete:(m,l,f)=>N("DELETE",`${m}`,null,l,f),get:(m,l,f)=>N("GET",`${m}`,null,l,f),upload:(m,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),N("POST",`${m}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,f,A,x)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...x},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let k=typeof d.token=="boolean"?e:d.token;k&&(U.Authorization=`Bearer ${k}`);}let h=f;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=D(h,k);}let b=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let k=b?.statusText||"Error";try{let Y=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:S)&&f){let ke=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?C:x.passphrase:g;try{f=T(ne,ke);}catch{try{f=T(ne,C);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};x?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),v=new TextDecoder("utf-8"),V="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,V+=v.decode(re,{stream:!0});let W=V.split(`
2
2
 
3
- `);V=W.pop();for(let Y of W)if(Y.startsWith("data:"))try{let I=ge(Y);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0});}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Wr(t,e){let[r,o]=useState(false),[s,a]=useState(),[i,n]=useState(0),p=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async g=>{p.current?.abort();let D=new AbortController;p.current=D,o(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g),e?.onBeforeRequest&&e?.onBeforeRequest(g);let T={...e,signal:D.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));n(j);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),o(false),n(0),e?.afterResponse&&C?.data&&(C.data=e?.afterResponse(C.data,g)),C.status&&e?.onSuccess&&e?.onSuccess(C,g),!C.status&&e?.onError&&e?.onError(C,g),e?.onAfterResponse?.(C,g);},{...s,loading:r,abort:()=>{p.current?.abort(),p.current=null,o(false),n(0);},progress:i,reset:()=>{o(false),n(0),a(null);}}]}function mt(t,e){let{disableHysteresis:r=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>o}var Rt=typeof window<"u"?window:null;function _r(t={}){let{getTrigger:e=mt,target:r=Rt,disableHysteresis:o=false,threshold:s=100}=t,a=fe.useRef(0),[i,n]=fe.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:r}));return fe.useEffect(()=>{let p=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,e,o,s]),i}var en=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let p=n.states[o]??z,{loading:c,isCancel:y,response:S}=p,{refresh:g,abort:D,clear:T,clone:C}=Oe(o)||{},q=[S?.data,{...S,loading:c,isCancel:y,refresh:g,abort:D,clear:T,clone:C}];return e?.selector?e.selector(q):q};return s?J(useShallow(a)):J(a)};var nn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},on=(t,e)=>{let r={};r.others=[];let o=s=>{fe.Children.forEach(s,a=>{if(fe.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let n=a;n.props?.children?o(n.props.children):r.others.push(a);}}else r.others.push(a);});};return o(t),r};function ln(t){let e=t,r=new Set;function o(){return e}function s(n){return r.add(n),()=>r.delete(n)}function a(n){typeof n=="function"?e=n(e):e=n,r.forEach(p=>p());}function i(n){let p=useRef(n?n(e):e);return useSyncExternalStore(s,()=>{let c=n?n(e):e,y=p.current;return Object.is(y,c)||(p.current=c),p.current},()=>n?n(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:i}}function bt(t,e=[]){let r={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,r[o]=a;}else typeof s=="object"&&s!==null?r[o]=bt(s,[...e,o]):r[o]=s;}return r}function fn(t,e){let[r,o]=useState(false),[s,a]=useState([]),i=useRef([]),n=useRef(null);useEffect(()=>{if(e?.abortOnUnmount)return ()=>{n.current?.abort();}},[]);let p=async S=>{n.current?.abort();let g=new AbortController;n.current=g,o(true),a([]),i.current=[],t(S,D=>{D.isDone||(i.current.push(D),a([...i.current])),(D.isDone||!D.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),D.status?e?.onStream&&e?.onStream(D):e?.onError&&e?.onError(D);},{signal:g.signal});},c=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(S=>S.data),p,{loading:r,abort:c,reset:y,response:s}]}export{Je as BgsCoreProvider,nt as DataTypeEnum,rt as HttpMethod,ye as capitalizeWords,$r as createApiHelper,nn as createElement,ln as createStore,kt as debounce,se as decrypt,Ae as decryptString,z as defaultState,St as diffJson,oe as encrypt,Ce as encryptString,Re as generateCacheKey,Dt as generateUUID,Oe as getApiActions,K as getFieldValue,Ot as isArray,B as isNotEmpty,vt as jsonCopy,me as labelFormatter,Pt as mappingUndefinedtoNull,M as moment,ge as parseSSEChunk,Se as registerApi,qt as renderChildren,Qe as safeUpdate,wt as sorting,on as splitElement,Ee as stableStringify,Ut as summary,Pe as unregisterApi,tt as useApiLoad,J as useApiLoadStore,Wr as useApiSend,en as useApiStore,fn as useApiStream,$ as useBgsCore,Z as useCrypto,Cr as useDelay,qr as useFormatted,vr as useInterval,Nr as useKeyPress,_r as useScrollTrigger,De as useStorage,bt as wrapApi};
3
+ `);V=W.pop();for(let Y of W)if(Y.startsWith("data:"))try{let I=ge(Y);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0});}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Wr(t,e){let[r,o]=useState(false),[s,a]=useState(),[i,n]=useState(0),p=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async g=>{p.current?.abort();let D=new AbortController;p.current=D,o(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g),e?.onBeforeRequest&&e?.onBeforeRequest(g);let T={...e,signal:D.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));n(j);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),o(false),n(0),e?.afterResponse&&C?.data&&(C.data=e?.afterResponse(C.data,g)),C.status&&e?.onSuccess&&e?.onSuccess(C,g),!C.status&&e?.onError&&e?.onError(C,g),e?.onAfterResponse?.(C,g);},{...s,loading:r,abort:()=>{p.current?.abort(),p.current=null,o(false),n(0);},progress:i,reset:()=>{o(false),n(0),a(null);}}]}function mt(t,e){let{disableHysteresis:r=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>o}var Rt=typeof window<"u"?window:null;function _r(t={}){let{getTrigger:e=mt,target:r=Rt,disableHysteresis:o=false,threshold:s=100}=t,a=fe.useRef(0),[i,n]=fe.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:r}));return fe.useEffect(()=>{let p=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,e,o,s]),i}var en=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let p=n.states[o]??z,{loading:c,isCancel:y,response:S}=p,{refresh:g,abort:D,clear:T,clone:C}=Oe(o)||{},q=[S?.data,{...S,loading:c,isCancel:y,refresh:g,abort:D,clear:T,clone:C}];return e?.selector?e.selector(q):q};return s?J(useShallow(a)):J(a)};var nn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},on=(t,e)=>{let r={};r.others=[];let o=s=>{fe.Children.forEach(s,a=>{if(fe.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let n=a;n.props?.children?o(n.props.children):r.others.push(a);}}else r.others.push(a);});};return o(t),r};function ln(t){let e=t,r=new Set;function o(){return e}function s(n){return r.add(n),()=>r.delete(n)}function a(n){typeof n=="function"?e=n(e):e=n,r.forEach(p=>p());}function i(n){let p=useRef(n?n(e):e);return useSyncExternalStore(s,()=>{let c=n?n(e):e,y=p.current;return Object.is(y,c)||(p.current=c),p.current},()=>n?n(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:i}}function bt(t,e=[]){let r={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,r[o]=a;}else typeof s=="object"&&s!==null?r[o]=bt(s,[...e,o]):r[o]=s;}return r}function fn(t,e){let[r,o]=useState(false),[s,a]=useState([]),i=useRef([]),n=useRef(null);useEffect(()=>{if(e?.abortOnUnmount)return ()=>{n.current?.abort();}},[]);let p=async S=>{n.current?.abort();let g=new AbortController;n.current=g,o(true),a([]),i.current=[],t(S,D=>{D.isDone||(i.current.push(D),a([...i.current])),(D.isDone||!D.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),D.status?e?.onStream&&e?.onStream(D):e?.onError&&e?.onError(D);},{signal:g.signal});},c=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(S=>S.data),p,{loading:r,abort:c,reset:y,response:s}]}export{Je as BgsCoreProvider,nt as DataTypeEnum,rt as HttpMethod,ye as capitalizeWords,$r as createApiHelper,nn as createElement,ln as createStore,kt as debounce,se as decrypt,Ae as decryptString,z as defaultState,St as diffJson,oe as encrypt,Ce as encryptString,Re as generateCacheKey,Dt as generateUUID,Oe as getApiActions,K as getFieldValue,Ot as isArray,B as isNotEmpty,vt as jsonCopy,me as labelFormatter,Pt as mappingUndefinedtoNull,M as moment,ge as parseSSEChunk,Se as registerApi,qt as renderChildren,Qe as safeUpdate,wt as sorting,on as splitElement,Ne as stableStringify,Ut as summary,Pe as unregisterApi,tt as useApiLoad,J as useApiLoadStore,Wr as useApiSend,en as useApiStore,fn as useApiStream,$ as useBgsCore,Z as useCrypto,Cr as useDelay,qr as useFormatted,vr as useInterval,Er as useKeyPress,_r as useScrollTrigger,De as useStorage,bt as wrapApi};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgscore/react-core",
3
- "version": "0.0.87",
3
+ "version": "0.0.89",
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",