@bgscore/react-core 0.0.76 → 0.0.78
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 +2 -2
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var de=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'),He=require('dayjs/plugin/relativeTime'),Be=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'),Z=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 de__default=/*#__PURE__*/_interopDefault(de);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 He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);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 Z__default=/*#__PURE__*/_interopDefault(Z);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 n=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(n=true):n=true),n}function I(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 n=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(t="",e=false)=>{let n="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],n=me.snackCase(me.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function wt(t,e){return typeof t=="function"?t(e):t}var M=(t,e,n="")=>{if(!t)return n;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 n;s=s[a];}return s===void 0?n:s},qt={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=M(n,e)?M(n,e):"",a=M(o,e)?M(n,e):"";return s<a?1:-1}else return n<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=M(n,e)?M(n,e):"",a=M(o,e)?M(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?M(o,e)||0:o||0)),n.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(n,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 ye(t,e){return Ee([e??"undefined",t??"undefined"])}function Re(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let n;return function(...o){clearTimeout(n),n=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(He__default.default);N__default.default.extend(Be__default.default);N__default.default.extend(Ie__default.default);N__default.default.extend($e__default.default);N__default.default.extend(je__default.default);var F=N__default.default;var he=de.createContext(void 0);function W(){let t=de.useContext(he);return t||{}}var Je=({children:t,value:e})=>{let n={...e};return de.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:p}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&F.locale(s,a??{},p);}})();},[e.localeConfig]),jsxRuntime.jsx(he.Provider,{value:n,children:t})};function se(t,e){let n=be__default.default.random(16),o=be__default.default.random(16),s=Te__default.default(e,n,{keySize:256/32,iterations:1e3}),a=xe__default.default.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(Z__default.default),iv:o.toString(Z__default.default),encrypted:a}}function ae(t,e){let{salt:n,iv:o,encrypted:s}=t,a=Te__default.default(e,Z__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=xe__default.default.decrypt(s,a,{iv:Z__default.default.parse(o)}).toString(Ge__default.default);return JSON.parse(r)}function Ae(t,e){return JSON.stringify(se(t,e))}function Ce(t,e){return ae(JSON.parse(t),e)}function Q(){let{passphrase:t}=W();return {passphrase:t,encrypt(e,n){return se(e,n||t)},decrypt(e,n){return ae(e,n||t)},encryptString(e,n){return Ae(e,n||t)},decryptString(e,n){return Ce(e,n||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Q(),n=de.useCallback((p,r)=>{try{let f=t(r);localStorage.setItem(p,JSON.stringify(f));}catch(f){console.error("Failed to save to storage:",f);}},[t]),o=de.useCallback(p=>{try{let r=localStorage.getItem(p);return r?e(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[e]),s=p=>{let[r,f]=de.useState(()=>{try{let i=localStorage.getItem(p);return i?e(JSON.parse(i)):null}catch(i){return console.error("Failed to parse localStorage value",i),null}});return de.useEffect(()=>{let i=m=>{if(m.key===p)if(m.newValue)try{f(e(JSON.parse(m.newValue)));}catch(D){console.error("Decrypt error from storage event",D);}else f(null);};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[p,e]),r},a=de.useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let n in e)if(e[n]!==t[n])return e}var G={loading:false,response:void 0,isCancel:false},V=zustand.create()(t=>({states:{},updateState:(e,n)=>(console.log("testing"),t(o=>{let s=o.states[e]||G,a={...s,...n};return Qe(s,a)?{states:{...o.states,[e]:a}}:o}))}));var le=new Map,Se=(t,e)=>{le.set(t,e);},Pe=t=>{le.delete(t);},Oe=t=>le.get(t);function tt(...t){let[e,n,o]=t,s=e.__isVoid,a=e.__path||e.name,p=s?void 0:n,r=s?n:o,f=typeof window<"u"?window.location.pathname:"",i=r?.storeName||`${f}${a}`,{updateState:m}=V(),[D,A,C]=V(shallow.useShallow(y=>{let d=y.states[i]??G;return [d.loading,d.isCancel,d.response]})),{storageKey:P,cache:R,clearPreviousData:q,refetchOnWindowFocus:E}=W(),L=De(),z=de.useRef(void 0),H=de.useRef(null),{cacheName:$,cacheKey:B,timeout:ee,timeoutUnit:te,persistence:ne,cacheEnabled:h}=de.useMemo(()=>{let y=P?L.get(P):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,T=ye({...p,session:y},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),g=false;typeof R?.enabled=="boolean"&&(g=R.enabled);let w=false;typeof R?.persistence=="boolean"&&(w=R?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(w=r?.cache?.persistence??false);let S=60*5,v="s";return I(R?.timeout)&&(typeof R?.timeout=="number"?(S=R.timeout,v="s"):typeof R?.timeout=="object"&&(S=R?.timeout.value,v=R?.timeout.unit)),I(r?.cache)&&(typeof r?.cache!="boolean"?(typeof r?.cache?.enabled=="boolean"?g=r.cache.enabled:g=true,typeof r?.cache?.timeout=="number"?(S=r.cache.timeout,v="s"):typeof r?.cache?.timeout=="object"&&(S=r.cache.timeout.value,v=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:T,timeout:S,timeoutUnit:v,persistence:w,cacheEnabled:g}},[r?.cache,p,P,R,a]);de.useEffect(()=>{let y=JSON.stringify(I(z.current)?z.current:""),d=JSON.stringify(I(p)?p:""),T=z.current===void 0;(y!==d||T)&&!r?.hold&&((r?.clearPreviousData??q)&&m(i,{response:null}),l(),z.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.clearPreviousData,q,r?.hold,...r?.trigger||[]]),de.useEffect(()=>{let y=async()=>{!ne&&$&&B&&(await caches.open($)).delete(B);};return window.addEventListener("beforeunload",y),()=>{window.removeEventListener("beforeunload",y),H.current?.abort();}},[ne,$,B,i,H]);let l=de.useCallback(async y=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),h&&!y&&!A){m(i,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let T=await caches.open($),w=await(await T.match(B))?.json();if(w){let{data:S,expired:v}=w;if(F().isAfter(v))await T.delete(B);else {r?.afterResponse&&S?.data&&(S.data=r?.afterResponse(S.data)),r?.logging&&console.log("After request: Using Cache",S),r?.onAfterResponse&&r?.onAfterResponse(S),m(i,{loading:false,response:S});return}}}if(typeof e=="function"){H.current?.abort();let T=new AbortController;H.current=T,m(i,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=s?await e(void 0,{...r,signal:T.signal}):await e(d,void 0,{...r,signal:T.signal});if(r?.afterResponse&&g?.data&&(g.data=r?.afterResponse(g.data)),r?.logging&&console.log("After request",g),r?.onAfterResponse&&r?.onAfterResponse(g),m(i,{loading:false,response:g,isCancel:false}),h&&g.status){let w=F().add(ee,te).toISOString(),S={data:g,expired:w},v=await caches.open($),J=new Response(JSON.stringify(S));await v.put(B,J);}}},[p,e,r,A,$,B,ee,te,h]);de.useEffect(()=>{if(r?.refreshInterval){let y=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,T=setInterval(()=>{l();},F.duration(y,d).asMilliseconds());return ()=>clearInterval(T)}return ()=>{}},[r?.refreshInterval,l]);let c=de.useRef(null),{enabledRefetch:x,timeoutRefetch:b,timeoutUnitRefetch:O}=de.useMemo(()=>{let y=r?.refetchOnWindowFocus?.enabled??E?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??E?.timeout,T=typeof d=="number"?d:d?.value??60*5,g=typeof d=="object"?d.unit:"s";return {enabledRefetch:y,timeoutRefetch:T,timeoutUnitRefetch:g}},[r?.refetchOnWindowFocus,E]);de.useEffect(()=>{if(!x)return;let y=F.duration(b,O).asMilliseconds(),d=()=>{let g=Date.now(),w=c.current;w!==null&&g-w>=y&&l(),c.current=null;},T=()=>{c.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",T),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",T);}},[x,b,O,l]);let u=de.useCallback(()=>{H.current?.abort(),H.current=null,m(i,{loading:false,isCancel:true});},[i,H]),K=de.useCallback(()=>{m(i,{loading:false,response:null});},[i]),U=de.useMemo(()=>({...C,loading:D,refresh:l,abort:u,clear:K,response:C,isCancel:A,clone:(y,d)=>tt(e,y,d)}),[C,D,l,u,K,A,e]);return de.useEffect(()=>(Se(i,U),()=>{Pe(i);}),[U,i]),[C?.data,U]}async function Cn(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var nt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(nt||{}),rt=(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))(rt||{});var qn=(t,e,n)=>{let{format:o}=W();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?ot(t,n):e==="string"?st(t,n):t?.toString()??""};function ot(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function st(t,e){if(!I(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=Re(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return e?.ellipsis&&n.length>e.ellipsis&&(n=n.slice(0,e.ellipsis)+"..."),n}function at(t,{thouSep:e,decSep:n,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 i=Math.pow(10,o);a=Math[s](a*i)/i;}else a=Math[s](a);else if(typeof o=="number"){let i=Math.pow(10,o);a=Math.floor(a*i)/i;}let p=0;if(o==="auto"){let i=a.toString(),m=i.indexOf(".");m!==-1&&(p=i.length-m-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,e)}function it(t,{display:e,value:n}){if(!I(t))return t;let o=F(t,n);return o.isValid()?o.format(e):t}function kn(t,{interval:e,lead:n}){let o=de.useRef(null);de.useEffect(()=>{o.current=t;},[t]),de.useEffect(()=>{let s=()=>o.current();if(n&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Kn(t,e,n){let[o,s]=de.useState(false),a=(i,m)=>typeof t=="string"&&i===t||typeof t=="number"&&m===t,p=i=>i!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(i.tagName)||i.hasAttribute("contentEditable")),r=i=>{let{key:m,keyCode:D}=i,A=i.ctrlKey,C=i.altKey,P=i.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(m,D)&&(e==="ctrl"&&A||e==="alt"&&C||e==="shift"&&P)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));else {let R=e.every(q=>q==="ctrl"?A:q==="alt"?C:q==="shift"?P:false);a(m,D)&&R&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));}else a(m,D)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));},f=({key:i,keyCode:m})=>{a(i,m)&&s(false);};return de.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",f),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",f);}),[]),o}var jn=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:f,withCredentials:i,encryptRequest:m,encryptResponse:D,passphrase:A})=>{let{encrypt:C,decrypt:P,passphrase:R}=Q(),q=(h,l,c,x)=>{let b=x?.code==="ERR_CANCELED",O=h?.status===401,u=h?.data;if((typeof c?.encryptResponse=="boolean"?c?.encryptResponse:D)&&u){let g=c?.passphrase?typeof c.passphrase=="boolean"&&c.passphrase?R:c.passphrase:A;try{u=P(u,g);}catch{try{u=P(u,R);}catch{}}}let y={...o({...h,data:u,isCancel:b,isUnauthorization:O},x),isCancel:b,isUnauthorization:O,httpCode:h?.status},d=typeof c?.disabledToastWhenCancel=="boolean"?c?.disabledToastWhenCancel:f,T=r?r(y,c):!O;if((c?.infoSuccess&&y.status||c?.infoError&&!y.status)&&p&&(!b||!d)&&p(y),!T&&(!b||!c?.disabledHandleUnauthorized)){let g=c?.onUnauthorized||a;g&&g(y);}if(l)l(y);else return y},E=(h,l=()=>{})=>ut__default.default.create({baseURL:`${t}`,withCredentials:typeof h.withCredentials=="boolean"?h.withCredentials:i})(h).then(l).catch(x=>l(x.response,x)),L=(h,l,c,x,b)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...b},K={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(K.Authorization=`Bearer ${e}`):u.token&&(K.Authorization=`Bearer ${u.token}`)),n&&(c=n(c)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:m)&&c){let y=b?.passphrase?typeof b.passphrase=="boolean"&&b.passphrase?R:b.passphrase:A;c=C(c,y);}return E({url:l,method:h,data:c,headers:K,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:y=>{u?.onUploadProgress&&u?.onUploadProgress(y);}},(y,d)=>q(y,x,u,d))};return {client:E,post:(h,l,c,x)=>L("POST",`${h}`,l,c,x),put:(h,l,c,x)=>L("PUT",`${h}`,l,c,x),patch:(h,l,c,x)=>L("PATCH",`${h}`,l,c,x),delete:(h,l,c)=>L("DELETE",`${h}`,null,l,c),get:(h,l,c)=>L("GET",`${h}`,null,l,c),upload:(h,l,c,x)=>{let b=new FormData;return Object.keys(l).forEach(O=>b.append(O,l[O])),L("POST",`${h}`,b,c,{infoSuccess:false,...x,headers:{"Content-Type":"multipart/form-data",...x?.headers}})},stream:async(h,l,c,x,b)=>{try{let u={...{token:!0,responseType:"json",infoError:!0},...b},K={"Content-Type":"application/json",...s,...u.headers};if(u.token){let k=typeof u.token=="boolean"?e:u.token;k&&(K.Authorization=`Bearer ${k}`);}let U=c;if(n&&(U=n(U)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:m)&&U){let k=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?R:u.passphrase:A;U=C(U,k);}let d=await fetch(`${t}${l}`,{method:h,headers:K,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(U)}),T=d?.status,g=T===401;if(!d.ok){let k=d?.statusText||"Error";try{let X=d.headers.get("content-type")||"",j=await d.clone().text();if(j)if(X.includes("application/json"))try{let oe=JSON.parse(j);if((typeof b?.encryptResponse=="boolean"?b?.encryptResponse:D)&&c){let ke=b?.passphrase?typeof b.passphrase=="boolean"&&b.passphrase?R:b.passphrase:A;try{c=P(oe,ke);}catch{try{c=P(oe,R);}catch{}}}k=oe?.message||k;}catch{k=j;}else k=j;}catch{}let re=typeof b?.disabledToastWhenCancel=="boolean"?b?.disabledToastWhenCancel:f,_={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:g,httpCode:T,isDone:!0};b?.infoError&&p&&!re&&p(_),x(_);return}let w=d.body.getReader(),S=new TextDecoder("utf-8"),v="",J=!1;for(;!J;){let{done:k,value:re}=await w.read();J=k,v+=S.decode(re,{stream:!0});let _=v.split(`
|
|
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'),He=require('dayjs/plugin/relativeTime'),Be=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/shallow'),shallow$1=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 He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);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 H(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 wt(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},qt={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 ye(t,e){return Ee([e??"undefined",t??"undefined"])}function Re(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(He__default.default);N__default.default.extend(Be__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 Ae(t,e){return JSON.stringify(oe(t,e))}function Ce(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 Ae(e,r||t)},decryptString(e,r){return Ce(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=fe.useCallback((i,n)=>{try{let c=t(n);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[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,c]=fe.useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return fe.useEffect(()=>{let p=y=>{if(y.key===i)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(D){console.error("Decrypt error from storage event",D);}else c(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),n},a=fe.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function fr(t,e){for(let r in e)if(e[r]!==t[r])return e}var J={loading:false,response:void 0,isCancel:false},V=zustand.create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??J,a={...s,...o};shallow.shallow(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,c=n?.storeName||`${a}`,{updateState:p}=V(),[y,D,A]=V(shallow$1.useShallow(h=>{let f=h.states[c]??J;return [f.loading,f.isCancel,f.response]})),{storageKey:C,cache:x,clearPreviousData:S,refetchOnWindowFocus:w}=$(),j=De(),E=fe.useRef(void 0),F=fe.useRef(null),{cacheName:B,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=fe.useMemo(()=>{let h=C?j.get(C):void 0,f=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,R=ye({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),b=false;typeof x?.enabled=="boolean"&&(b=x.enabled);let P=false;typeof x?.persistence=="boolean"&&(P=x?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return H(x?.timeout)&&(typeof x?.timeout=="number"?(O=x.timeout,v="s"):typeof x?.timeout=="object"&&(O=x?.timeout.value,v=x?.timeout.unit)),H(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?b=n.cache.enabled:b=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)):b=n.cache),{cacheName:f,cacheKey:R,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:b}},[n?.cache,i,C,x,a]);fe.useEffect(()=>{let h=JSON.stringify(H(E.current)?E.current:""),f=JSON.stringify(H(i)?i:""),R=E.current===void 0;(h!==f||R)&&!n?.hold&&((n?.clearPreviousData??S)&&p(c,{response:null}),m(),E.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,S,n?.hold,...n?.trigger||[]]),fe.useEffect(()=>{let h=async()=>{!te&&B&&L&&(await caches.open(B)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,B,L,c,F]);let m=fe.useCallback(async h=>{let f=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(f=n?.beforeRequest(i)),G&&!h&&!D){p(c,{loading:true}),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=await caches.open(B),P=await(await R.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await R.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data)),n?.logging&&console.log("After request: Using Cache",O),n?.onAfterResponse&&n?.onAfterResponse(O),p(c,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let R=new AbortController;F.current=R,p(c,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=s?await e(void 0,{...n,signal:R.signal}):await e(f,void 0,{...n,signal:R.signal});if(n?.afterResponse&&b?.data&&(b.data=n?.afterResponse(b.data)),n?.logging&&console.log("After request",b),n?.onAfterResponse&&n?.onAfterResponse(b),p(c,{loading:false,response:b,isCancel:false}),G&&b.status){let P=M().add(Q,ee).toISOString(),O={data:b,expired:P},v=await caches.open(B),W=new Response(JSON.stringify(O));await v.put(L,W);}}},[i,e,n,D,B,L,Q,ee,G]);fe.useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,f=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,R=setInterval(()=>{m();},M.duration(h,f).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[n?.refreshInterval,m]);let l=fe.useRef(null),{enabledRefetch:u,timeoutRefetch:T,timeoutUnitRefetch:g}=fe.useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??w?.enabled??false,f=n?.refetchOnWindowFocus?.timeout??w?.timeout,R=typeof f=="number"?f:f?.value??60*5,b=typeof f=="object"?f.unit:"s";return {enabledRefetch:h,timeoutRefetch:R,timeoutUnitRefetch:b}},[n?.refetchOnWindowFocus,w]);fe.useEffect(()=>{if(!u)return;let h=M.duration(T,g).asMilliseconds(),f=()=>{let b=Date.now(),P=l.current;P!==null&&b-P>=h&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",R);}},[u,T,g,m]);let q=fe.useCallback(()=>{F.current?.abort(),F.current=null,p(c,{loading:false,isCancel:true});},[c,F]),d=fe.useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=fe.useMemo(()=>({...A,loading:y,refresh:m,abort:q,clear:d,response:A,isCancel:D,clone:(h,f)=>tt(e,h,f)}),[A,y,m,q,d,D,e]);return fe.useEffect(()=>(Se(c,U),()=>{Pe(c);}),[U,c]),[A?.data,U]}async function Dr(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 Ur=(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(!H(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Re(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 p=Math.pow(10,o);a=Math[s](a*p)/p;}else a=Math[s](a);else if(typeof o=="number"){let p=Math.pow(10,o);a=Math.floor(a*p)/p;}let i=0;if(o==="auto"){let p=a.toString(),y=p.indexOf(".");y!==-1&&(i=p.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(!H(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function Er(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 Mr(t,e,r){let[o,s]=fe.useState(false),a=(p,y)=>typeof t=="string"&&p===t||typeof t=="number"&&y===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),n=p=>{let{key:y,keyCode:D}=p,A=p.ctrlKey,C=p.altKey,x=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,D)&&(e==="ctrl"&&A||e==="alt"&&C||e==="shift"&&x)&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));else {let S=e.every(w=>w==="ctrl"?A:w==="alt"?C:w==="shift"?x:false);a(y,D)&&S&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));}else a(y,D)&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));},c=({key:p,keyCode:y})=>{a(p,y)&&s(false);};return fe.useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",c);}),[]),o}var Wr=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:D,passphrase:A})=>{let{encrypt:C,decrypt:x,passphrase:S}=Z(),w=(m,l,u,T)=>{let g=T?.code==="ERR_CANCELED",q=m?.status===401,d=m?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:D)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?S:u.passphrase:A;try{d=x(d,P);}catch{try{d=x(d,S);}catch{}}}let f={...o({...m,data:d,isCancel:g,isUnauthorization:q},T),isCancel:g,isUnauthorization:q,httpCode:m?.status},R=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,b=n?n(f,u):!q;if((u?.infoSuccess&&f.status||u?.infoError&&!f.status)&&i&&(!g||!R)&&i(f),!b&&(!g||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(f);}if(l)l(f);else return f},j=(m,l=()=>{})=>ut__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(T=>l(T.response,T)),E=(m,l,u,T,g)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},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&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&u){let f=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?S:g.passphrase:A;u=C(u,f);}return j({url:l,method:m,data:u,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:f=>{d?.onUploadProgress&&d?.onUploadProgress(f);}},(f,R)=>w(f,T,d,R))};return {client:j,post:(m,l,u,T)=>E("POST",`${m}`,l,u,T),put:(m,l,u,T)=>E("PUT",`${m}`,l,u,T),patch:(m,l,u,T)=>E("PATCH",`${m}`,l,u,T),delete:(m,l,u)=>E("DELETE",`${m}`,null,l,u),get:(m,l,u)=>E("GET",`${m}`,null,l,u),upload:(m,l,u,T)=>{let g=new FormData;return Object.keys(l).forEach(q=>g.append(q,l[q])),E("POST",`${m}`,g,u,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(m,l,u,T,g)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...g},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=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?S:d.passphrase:A;h=C(h,k);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),b=R?.status,P=b===401;if(!R.ok){let k=R?.statusText||"Error";try{let Y=R.headers.get("content-type")||"",I=await R.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:D)&&u){let ke=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?S:g.passphrase:A;try{u=x(ne,ke);}catch{try{u=x(ne,S);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:c,z={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!0};g?.infoError&&i&&!re&&i(z),T(z);return}let O=R.body.getReader(),v=new TextDecoder("utf-8"),W="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,W+=v.decode(re,{stream:!0});let z=W.split(`
|
|
2
2
|
|
|
3
|
-
`);
|
|
3
|
+
`);W=z.pop();for(let Y of z)if(Y.startsWith("data:"))try{let I=ge(Y);T({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!1});}catch{}}T({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!0});}catch(q){let d=q?.name==="AbortError";T({status:false,data:void 0,message:q instanceof Error?q.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Jr(t,e){let[r,o]=fe.useState(false),[s,a]=fe.useState(),[i,n]=fe.useState(0),c=fe.useRef(null);return fe.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async A=>{c.current?.abort();let C=new AbortController;c.current=C,o(true),e?.beforeRequest&&(A=e?.beforeRequest(A)),e?.logging&&console.log("Before request",A);let x={...e,signal:C.signal,onUploadProgress:w=>{let j=Math.round(w.loaded*100/(w.total||1));n(j);}},S=t.__isVoid?await t(void 0,x):await t(A,void 0,x);e?.logging&&console.log("After response",S),a(S),o(false),n(0),S.status&&e?.onSuccess&&e?.onSuccess(S),!S.status&&e?.onError&&e?.onError(S),e?.afterResponse&&e?.afterResponse(S);},{...s,loading:r,abort:()=>{c.current?.abort(),c.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 yt=typeof window<"u"?window:null;function Yr(t={}){let{getTrigger:e=mt,target:r=yt,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 c=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(c(),r)return r.addEventListener("scroll",c,{passive:true}),()=>{r.removeEventListener("scroll",c);}},[r,e,o,s]),i}var rn=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let c=n.states[o]??J,{loading:p,isCancel:y,response:D}=c,{refresh:A,abort:C,clear:x,clone:S}=Oe(o)||{},w=[D?.data,{...D,loading:p,isCancel:y,refresh:A,abort:C,clear:x,clone:S}];return e?.selector?e.selector(w):w};return s?V(shallow$1.useShallow(a)):V(a)};var sn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},an=(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 cn(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(c=>c());}function i(n){let c=fe.useRef(n?n(e):e);return fe.useSyncExternalStore(s,()=>{let p=n?n(e):e,y=c.current;return Object.is(y,p)||(c.current=p),c.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 mn(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 c=async D=>{n.current?.abort();let A=new AbortController;n.current=A,o(true),a([]),i.current=[],t(D,C=>{C.isDone||(i.current.push(C),a([...i.current])),(C.isDone||!C.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),C.status?e?.onStream&&e?.onStream(C):e?.onError&&e?.onError(C);},{signal:A.signal});},p=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(D=>D.data),c,{loading:r,abort:p,reset:y,response:s}]}exports.BgsCoreProvider=Je;exports.DataTypeEnum=nt;exports.HttpMethod=rt;exports.capitalizeWords=Re;exports.createApiHelper=Wr;exports.createElement=sn;exports.createStore=cn;exports.debounce=kt;exports.decrypt=se;exports.decryptString=Ce;exports.defaultState=J;exports.diffJson=St;exports.encrypt=oe;exports.encryptString=Ae;exports.generateCacheKey=ye;exports.generateUUID=Dt;exports.getApiActions=Oe;exports.getFieldValue=K;exports.isArray=Ot;exports.isNotEmpty=H;exports.jsonCopy=vt;exports.labelFormatter=me;exports.mappingUndefinedtoNull=Pt;exports.moment=M;exports.parseSSEChunk=ge;exports.registerApi=Se;exports.renderChildren=wt;exports.safeUpdate=fr;exports.sorting=qt;exports.splitElement=an;exports.stableStringify=Ee;exports.summary=Ut;exports.unregisterApi=Pe;exports.useApiLoad=tt;exports.useApiLoadStore=V;exports.useApiSend=Jr;exports.useApiStore=rn;exports.useApiStream=mn;exports.useBgsCore=$;exports.useCrypto=Z;exports.useDelay=Dr;exports.useFormatted=Ur;exports.useInterval=Er;exports.useKeyPress=Mr;exports.useScrollTrigger=Yr;exports.useStorage=De;exports.wrapApi=bt;
|
package/dist/index.d.cts
CHANGED
|
@@ -606,6 +606,7 @@ declare const registerApi: (key: string, actions: Partial<OptionsCallReturn<any,
|
|
|
606
606
|
declare const unregisterApi: (key: string) => void;
|
|
607
607
|
declare const getApiActions: (key: string) => Partial<OptionsCallReturn<any, any>> | undefined;
|
|
608
608
|
|
|
609
|
+
declare function safeUpdate<T>(prev: T, next: T): T | undefined;
|
|
609
610
|
interface ApiLoadState {
|
|
610
611
|
states: Record<string, OptionsCallReturn>;
|
|
611
612
|
updateState: (storeName: string, state: Partial<OptionsCallReturn>) => void;
|
|
@@ -648,4 +649,4 @@ interface BgsCoreProviderProps {
|
|
|
648
649
|
}
|
|
649
650
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
650
651
|
|
|
651
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
652
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -606,6 +606,7 @@ declare const registerApi: (key: string, actions: Partial<OptionsCallReturn<any,
|
|
|
606
606
|
declare const unregisterApi: (key: string) => void;
|
|
607
607
|
declare const getApiActions: (key: string) => Partial<OptionsCallReturn<any, any>> | undefined;
|
|
608
608
|
|
|
609
|
+
declare function safeUpdate<T>(prev: T, next: T): T | undefined;
|
|
609
610
|
interface ApiLoadState {
|
|
610
611
|
states: Record<string, OptionsCallReturn>;
|
|
611
612
|
updateState: (storeName: string, state: Partial<OptionsCallReturn>) => void;
|
|
@@ -648,4 +649,4 @@ interface BgsCoreProviderProps {
|
|
|
648
649
|
}
|
|
649
650
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
650
651
|
|
|
651
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
652
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import de,{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 He from'dayjs/plugin/relativeTime';import Be 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 Z 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 n=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(n=true):n=true),n}function I(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 n=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(t="",e=false)=>{let n="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],n=me.snackCase(me.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function wt(t,e){return typeof t=="function"?t(e):t}var M=(t,e,n="")=>{if(!t)return n;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 n;s=s[a];}return s===void 0?n:s},qt={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=M(n,e)?M(n,e):"",a=M(o,e)?M(n,e):"";return s<a?1:-1}else return n<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=M(n,e)?M(n,e):"",a=M(o,e)?M(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},Ut=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?M(o,e)||0:o||0)),n.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(n,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 ye(t,e){return Ee([e??"undefined",t??"undefined"])}function Re(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function kt(t,e=0){let n;return function(...o){clearTimeout(n),n=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(He);N.extend(Be);N.extend(Ie);N.extend($e);N.extend(je);var F=N;var he=createContext(void 0);function W(){let t=useContext(he);return t||{}}var Je=({children:t,value:e})=>{let n={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:p}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&F.locale(s,a??{},p);}})();},[e.localeConfig]),jsx(he.Provider,{value:n,children:t})};function se(t,e){let n=be.random(16),o=be.random(16),s=Te(e,n,{keySize:256/32,iterations:1e3}),a=xe.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(Z),iv:o.toString(Z),encrypted:a}}function ae(t,e){let{salt:n,iv:o,encrypted:s}=t,a=Te(e,Z.parse(n),{keySize:256/32,iterations:1e3}),r=xe.decrypt(s,a,{iv:Z.parse(o)}).toString(Ge);return JSON.parse(r)}function Ae(t,e){return JSON.stringify(se(t,e))}function Ce(t,e){return ae(JSON.parse(t),e)}function Q(){let{passphrase:t}=W();return {passphrase:t,encrypt(e,n){return se(e,n||t)},decrypt(e,n){return ae(e,n||t)},encryptString(e,n){return Ae(e,n||t)},decryptString(e,n){return Ce(e,n||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Q(),n=useCallback((p,r)=>{try{let f=t(r);localStorage.setItem(p,JSON.stringify(f));}catch(f){console.error("Failed to save to storage:",f);}},[t]),o=useCallback(p=>{try{let r=localStorage.getItem(p);return r?e(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[e]),s=p=>{let[r,f]=useState(()=>{try{let i=localStorage.getItem(p);return i?e(JSON.parse(i)):null}catch(i){return console.error("Failed to parse localStorage value",i),null}});return useEffect(()=>{let i=m=>{if(m.key===p)if(m.newValue)try{f(e(JSON.parse(m.newValue)));}catch(D){console.error("Decrypt error from storage event",D);}else f(null);};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[p,e]),r},a=useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function Qe(t,e){for(let n in e)if(e[n]!==t[n])return e}var G={loading:false,response:void 0,isCancel:false},V=create()(t=>({states:{},updateState:(e,n)=>(console.log("testing"),t(o=>{let s=o.states[e]||G,a={...s,...n};return Qe(s,a)?{states:{...o.states,[e]:a}}:o}))}));var le=new Map,Se=(t,e)=>{le.set(t,e);},Pe=t=>{le.delete(t);},Oe=t=>le.get(t);function tt(...t){let[e,n,o]=t,s=e.__isVoid,a=e.__path||e.name,p=s?void 0:n,r=s?n:o,f=typeof window<"u"?window.location.pathname:"",i=r?.storeName||`${f}${a}`,{updateState:m}=V(),[D,A,C]=V(useShallow(y=>{let d=y.states[i]??G;return [d.loading,d.isCancel,d.response]})),{storageKey:P,cache:R,clearPreviousData:q,refetchOnWindowFocus:E}=W(),L=De(),z=useRef(void 0),H=useRef(null),{cacheName:$,cacheKey:B,timeout:ee,timeoutUnit:te,persistence:ne,cacheEnabled:h}=useMemo(()=>{let y=P?L.get(P):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,T=ye({...p,session:y},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),g=false;typeof R?.enabled=="boolean"&&(g=R.enabled);let w=false;typeof R?.persistence=="boolean"&&(w=R?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(w=r?.cache?.persistence??false);let S=60*5,v="s";return I(R?.timeout)&&(typeof R?.timeout=="number"?(S=R.timeout,v="s"):typeof R?.timeout=="object"&&(S=R?.timeout.value,v=R?.timeout.unit)),I(r?.cache)&&(typeof r?.cache!="boolean"?(typeof r?.cache?.enabled=="boolean"?g=r.cache.enabled:g=true,typeof r?.cache?.timeout=="number"?(S=r.cache.timeout,v="s"):typeof r?.cache?.timeout=="object"&&(S=r.cache.timeout.value,v=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:T,timeout:S,timeoutUnit:v,persistence:w,cacheEnabled:g}},[r?.cache,p,P,R,a]);useEffect(()=>{let y=JSON.stringify(I(z.current)?z.current:""),d=JSON.stringify(I(p)?p:""),T=z.current===void 0;(y!==d||T)&&!r?.hold&&((r?.clearPreviousData??q)&&m(i,{response:null}),l(),z.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.clearPreviousData,q,r?.hold,...r?.trigger||[]]),useEffect(()=>{let y=async()=>{!ne&&$&&B&&(await caches.open($)).delete(B);};return window.addEventListener("beforeunload",y),()=>{window.removeEventListener("beforeunload",y),H.current?.abort();}},[ne,$,B,i,H]);let l=useCallback(async y=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),h&&!y&&!A){m(i,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let T=await caches.open($),w=await(await T.match(B))?.json();if(w){let{data:S,expired:v}=w;if(F().isAfter(v))await T.delete(B);else {r?.afterResponse&&S?.data&&(S.data=r?.afterResponse(S.data)),r?.logging&&console.log("After request: Using Cache",S),r?.onAfterResponse&&r?.onAfterResponse(S),m(i,{loading:false,response:S});return}}}if(typeof e=="function"){H.current?.abort();let T=new AbortController;H.current=T,m(i,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=s?await e(void 0,{...r,signal:T.signal}):await e(d,void 0,{...r,signal:T.signal});if(r?.afterResponse&&g?.data&&(g.data=r?.afterResponse(g.data)),r?.logging&&console.log("After request",g),r?.onAfterResponse&&r?.onAfterResponse(g),m(i,{loading:false,response:g,isCancel:false}),h&&g.status){let w=F().add(ee,te).toISOString(),S={data:g,expired:w},v=await caches.open($),J=new Response(JSON.stringify(S));await v.put(B,J);}}},[p,e,r,A,$,B,ee,te,h]);useEffect(()=>{if(r?.refreshInterval){let y=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,T=setInterval(()=>{l();},F.duration(y,d).asMilliseconds());return ()=>clearInterval(T)}return ()=>{}},[r?.refreshInterval,l]);let c=useRef(null),{enabledRefetch:x,timeoutRefetch:b,timeoutUnitRefetch:O}=useMemo(()=>{let y=r?.refetchOnWindowFocus?.enabled??E?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??E?.timeout,T=typeof d=="number"?d:d?.value??60*5,g=typeof d=="object"?d.unit:"s";return {enabledRefetch:y,timeoutRefetch:T,timeoutUnitRefetch:g}},[r?.refetchOnWindowFocus,E]);useEffect(()=>{if(!x)return;let y=F.duration(b,O).asMilliseconds(),d=()=>{let g=Date.now(),w=c.current;w!==null&&g-w>=y&&l(),c.current=null;},T=()=>{c.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",T),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",T);}},[x,b,O,l]);let u=useCallback(()=>{H.current?.abort(),H.current=null,m(i,{loading:false,isCancel:true});},[i,H]),K=useCallback(()=>{m(i,{loading:false,response:null});},[i]),U=useMemo(()=>({...C,loading:D,refresh:l,abort:u,clear:K,response:C,isCancel:A,clone:(y,d)=>tt(e,y,d)}),[C,D,l,u,K,A,e]);return useEffect(()=>(Se(i,U),()=>{Pe(i);}),[U,i]),[C?.data,U]}async function Cn(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var nt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(nt||{}),rt=(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))(rt||{});var qn=(t,e,n)=>{let{format:o}=W();return e==="number"?at(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?it(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?ot(t,n):e==="string"?st(t,n):t?.toString()??""};function ot(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function st(t,e){if(!I(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=Re(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return e?.ellipsis&&n.length>e.ellipsis&&(n=n.slice(0,e.ellipsis)+"..."),n}function at(t,{thouSep:e,decSep:n,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 i=Math.pow(10,o);a=Math[s](a*i)/i;}else a=Math[s](a);else if(typeof o=="number"){let i=Math.pow(10,o);a=Math.floor(a*i)/i;}let p=0;if(o==="auto"){let i=a.toString(),m=i.indexOf(".");m!==-1&&(p=i.length-m-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,e)}function it(t,{display:e,value:n}){if(!I(t))return t;let o=F(t,n);return o.isValid()?o.format(e):t}function kn(t,{interval:e,lead:n}){let o=useRef(null);useEffect(()=>{o.current=t;},[t]),useEffect(()=>{let s=()=>o.current();if(n&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Kn(t,e,n){let[o,s]=useState(false),a=(i,m)=>typeof t=="string"&&i===t||typeof t=="number"&&m===t,p=i=>i!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(i.tagName)||i.hasAttribute("contentEditable")),r=i=>{let{key:m,keyCode:D}=i,A=i.ctrlKey,C=i.altKey,P=i.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(m,D)&&(e==="ctrl"&&A||e==="alt"&&C||e==="shift"&&P)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));else {let R=e.every(q=>q==="ctrl"?A:q==="alt"?C:q==="shift"?P:false);a(m,D)&&R&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));}else a(m,D)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));},f=({key:i,keyCode:m})=>{a(i,m)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",f),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",f);}),[]),o}var jn=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:f,withCredentials:i,encryptRequest:m,encryptResponse:D,passphrase:A})=>{let{encrypt:C,decrypt:P,passphrase:R}=Q(),q=(h,l,c,x)=>{let b=x?.code==="ERR_CANCELED",O=h?.status===401,u=h?.data;if((typeof c?.encryptResponse=="boolean"?c?.encryptResponse:D)&&u){let g=c?.passphrase?typeof c.passphrase=="boolean"&&c.passphrase?R:c.passphrase:A;try{u=P(u,g);}catch{try{u=P(u,R);}catch{}}}let y={...o({...h,data:u,isCancel:b,isUnauthorization:O},x),isCancel:b,isUnauthorization:O,httpCode:h?.status},d=typeof c?.disabledToastWhenCancel=="boolean"?c?.disabledToastWhenCancel:f,T=r?r(y,c):!O;if((c?.infoSuccess&&y.status||c?.infoError&&!y.status)&&p&&(!b||!d)&&p(y),!T&&(!b||!c?.disabledHandleUnauthorized)){let g=c?.onUnauthorized||a;g&&g(y);}if(l)l(y);else return y},E=(h,l=()=>{})=>ut.create({baseURL:`${t}`,withCredentials:typeof h.withCredentials=="boolean"?h.withCredentials:i})(h).then(l).catch(x=>l(x.response,x)),L=(h,l,c,x,b)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...b},K={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(K.Authorization=`Bearer ${e}`):u.token&&(K.Authorization=`Bearer ${u.token}`)),n&&(c=n(c)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:m)&&c){let y=b?.passphrase?typeof b.passphrase=="boolean"&&b.passphrase?R:b.passphrase:A;c=C(c,y);}return E({url:l,method:h,data:c,headers:K,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:y=>{u?.onUploadProgress&&u?.onUploadProgress(y);}},(y,d)=>q(y,x,u,d))};return {client:E,post:(h,l,c,x)=>L("POST",`${h}`,l,c,x),put:(h,l,c,x)=>L("PUT",`${h}`,l,c,x),patch:(h,l,c,x)=>L("PATCH",`${h}`,l,c,x),delete:(h,l,c)=>L("DELETE",`${h}`,null,l,c),get:(h,l,c)=>L("GET",`${h}`,null,l,c),upload:(h,l,c,x)=>{let b=new FormData;return Object.keys(l).forEach(O=>b.append(O,l[O])),L("POST",`${h}`,b,c,{infoSuccess:false,...x,headers:{"Content-Type":"multipart/form-data",...x?.headers}})},stream:async(h,l,c,x,b)=>{try{let u={...{token:!0,responseType:"json",infoError:!0},...b},K={"Content-Type":"application/json",...s,...u.headers};if(u.token){let k=typeof u.token=="boolean"?e:u.token;k&&(K.Authorization=`Bearer ${k}`);}let U=c;if(n&&(U=n(U)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:m)&&U){let k=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?R:u.passphrase:A;U=C(U,k);}let d=await fetch(`${t}${l}`,{method:h,headers:K,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(U)}),T=d?.status,g=T===401;if(!d.ok){let k=d?.statusText||"Error";try{let X=d.headers.get("content-type")||"",j=await d.clone().text();if(j)if(X.includes("application/json"))try{let oe=JSON.parse(j);if((typeof b?.encryptResponse=="boolean"?b?.encryptResponse:D)&&c){let ke=b?.passphrase?typeof b.passphrase=="boolean"&&b.passphrase?R:b.passphrase:A;try{c=P(oe,ke);}catch{try{c=P(oe,R);}catch{}}}k=oe?.message||k;}catch{k=j;}else k=j;}catch{}let re=typeof b?.disabledToastWhenCancel=="boolean"?b?.disabledToastWhenCancel:f,_={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:g,httpCode:T,isDone:!0};b?.infoError&&p&&!re&&p(_),x(_);return}let w=d.body.getReader(),S=new TextDecoder("utf-8"),v="",J=!1;for(;!J;){let{done:k,value:re}=await w.read();J=k,v+=S.decode(re,{stream:!0});let _=v.split(`
|
|
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 He from'dayjs/plugin/relativeTime';import Be 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 {shallow}from'zustand/shallow';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 H(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 wt(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},qt={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 ye(t,e){return Ee([e??"undefined",t??"undefined"])}function Re(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(He);N.extend(Be);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 Ae(t,e){return JSON.stringify(oe(t,e))}function Ce(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 Ae(e,r||t)},decryptString(e,r){return Ce(e,r||t)}}}var De=()=>{let{encrypt:t,decrypt:e}=Z(),r=useCallback((i,n)=>{try{let c=t(n);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[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,c]=useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=y=>{if(y.key===i)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(D){console.error("Decrypt error from storage event",D);}else c(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),n},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:o,clear:a,useWatchStorage:s}};function fr(t,e){for(let r in e)if(e[r]!==t[r])return e}var J={loading:false,response:void 0,isCancel:false},V=create((t,e)=>({states:{},updateState:(r,o)=>{let s=e().states[r]??J,a={...s,...o};shallow(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,c=n?.storeName||`${a}`,{updateState:p}=V(),[y,D,A]=V(useShallow(h=>{let f=h.states[c]??J;return [f.loading,f.isCancel,f.response]})),{storageKey:C,cache:x,clearPreviousData:S,refetchOnWindowFocus:w}=$(),j=De(),E=useRef(void 0),F=useRef(null),{cacheName:B,cacheKey:L,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:G}=useMemo(()=>{let h=C?j.get(C):void 0,f=typeof n?.cache=="object"?n?.cache?.cacheName??a:a,R=ye({...i,session:h},typeof n?.cache=="object"?n?.cache?.cacheKey:void 0),b=false;typeof x?.enabled=="boolean"&&(b=x.enabled);let P=false;typeof x?.persistence=="boolean"&&(P=x?.persistence),typeof n?.cache=="object"&&typeof n?.cache?.persistence=="boolean"&&(P=n?.cache?.persistence??false);let O=60*5,v="s";return H(x?.timeout)&&(typeof x?.timeout=="number"?(O=x.timeout,v="s"):typeof x?.timeout=="object"&&(O=x?.timeout.value,v=x?.timeout.unit)),H(n?.cache)&&(typeof n?.cache!="boolean"?(typeof n?.cache?.enabled=="boolean"?b=n.cache.enabled:b=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)):b=n.cache),{cacheName:f,cacheKey:R,timeout:O,timeoutUnit:v,persistence:P,cacheEnabled:b}},[n?.cache,i,C,x,a]);useEffect(()=>{let h=JSON.stringify(H(E.current)?E.current:""),f=JSON.stringify(H(i)?i:""),R=E.current===void 0;(h!==f||R)&&!n?.hold&&((n?.clearPreviousData??S)&&p(c,{response:null}),m(),E.current=i),n?.onChange&&n?.onChange(i,U);},[i,n?.clearPreviousData,S,n?.hold,...n?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&B&&L&&(await caches.open(B)).delete(L);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,B,L,c,F]);let m=useCallback(async h=>{let f=i;if(n?.hold&&n?.logging&&console.log("Hold active"),n?.beforeRequest&&(f=n?.beforeRequest(i)),G&&!h&&!D){p(c,{loading:true}),n?.onBeforeRequest&&n?.onBeforeRequest(i);let R=await caches.open(B),P=await(await R.match(L))?.json();if(P){let{data:O,expired:v}=P;if(M().isAfter(v))await R.delete(L);else {n?.afterResponse&&O?.data&&(O.data=n?.afterResponse(O.data)),n?.logging&&console.log("After request: Using Cache",O),n?.onAfterResponse&&n?.onAfterResponse(O),p(c,{loading:false,response:O});return}}}if(typeof e=="function"){F.current?.abort();let R=new AbortController;F.current=R,p(c,{loading:true}),n?.logging&&console.log("Before request",i),n?.onBeforeRequest&&n?.onBeforeRequest(i);let b=s?await e(void 0,{...n,signal:R.signal}):await e(f,void 0,{...n,signal:R.signal});if(n?.afterResponse&&b?.data&&(b.data=n?.afterResponse(b.data)),n?.logging&&console.log("After request",b),n?.onAfterResponse&&n?.onAfterResponse(b),p(c,{loading:false,response:b,isCancel:false}),G&&b.status){let P=M().add(Q,ee).toISOString(),O={data:b,expired:P},v=await caches.open(B),W=new Response(JSON.stringify(O));await v.put(L,W);}}},[i,e,n,D,B,L,Q,ee,G]);useEffect(()=>{if(n?.refreshInterval){let h=typeof n.refreshInterval=="number"?n.refreshInterval:n.refreshInterval.value,f=typeof n.refreshInterval=="number"?"s":n.refreshInterval.unit,R=setInterval(()=>{m();},M.duration(h,f).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[n?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:u,timeoutRefetch:T,timeoutUnitRefetch:g}=useMemo(()=>{let h=n?.refetchOnWindowFocus?.enabled??w?.enabled??false,f=n?.refetchOnWindowFocus?.timeout??w?.timeout,R=typeof f=="number"?f:f?.value??60*5,b=typeof f=="object"?f.unit:"s";return {enabledRefetch:h,timeoutRefetch:R,timeoutUnitRefetch:b}},[n?.refetchOnWindowFocus,w]);useEffect(()=>{if(!u)return;let h=M.duration(T,g).asMilliseconds(),f=()=>{let b=Date.now(),P=l.current;P!==null&&b-P>=h&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",R);}},[u,T,g,m]);let q=useCallback(()=>{F.current?.abort(),F.current=null,p(c,{loading:false,isCancel:true});},[c,F]),d=useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=useMemo(()=>({...A,loading:y,refresh:m,abort:q,clear:d,response:A,isCancel:D,clone:(h,f)=>tt(e,h,f)}),[A,y,m,q,d,D,e]);return useEffect(()=>(Se(c,U),()=>{Pe(c);}),[U,c]),[A?.data,U]}async function Dr(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 Ur=(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(!H(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Re(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 p=Math.pow(10,o);a=Math[s](a*p)/p;}else a=Math[s](a);else if(typeof o=="number"){let p=Math.pow(10,o);a=Math.floor(a*p)/p;}let i=0;if(o==="auto"){let p=a.toString(),y=p.indexOf(".");y!==-1&&(i=p.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(!H(t))return t;let o=M(t,r);return o.isValid()?o.format(e):t}function Er(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 Mr(t,e,r){let[o,s]=useState(false),a=(p,y)=>typeof t=="string"&&p===t||typeof t=="number"&&y===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),n=p=>{let{key:y,keyCode:D}=p,A=p.ctrlKey,C=p.altKey,x=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,D)&&(e==="ctrl"&&A||e==="alt"&&C||e==="shift"&&x)&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));else {let S=e.every(w=>w==="ctrl"?A:w==="alt"?C:w==="shift"?x:false);a(y,D)&&S&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));}else a(y,D)&&(p.preventDefault(),r&&p.stopPropagation(),s(!o));},c=({key:p,keyCode:y})=>{a(p,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",n),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",n),window.removeEventListener("keyup",c);}),[]),o}var Wr=({url:t,token:e,beforeRequest:r,onCallback:o,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:n,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:D,passphrase:A})=>{let{encrypt:C,decrypt:x,passphrase:S}=Z(),w=(m,l,u,T)=>{let g=T?.code==="ERR_CANCELED",q=m?.status===401,d=m?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:D)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?S:u.passphrase:A;try{d=x(d,P);}catch{try{d=x(d,S);}catch{}}}let f={...o({...m,data:d,isCancel:g,isUnauthorization:q},T),isCancel:g,isUnauthorization:q,httpCode:m?.status},R=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,b=n?n(f,u):!q;if((u?.infoSuccess&&f.status||u?.infoError&&!f.status)&&i&&(!g||!R)&&i(f),!b&&(!g||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(f);}if(l)l(f);else return f},j=(m,l=()=>{})=>ut.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(T=>l(T.response,T)),E=(m,l,u,T,g)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},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&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&u){let f=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?S:g.passphrase:A;u=C(u,f);}return j({url:l,method:m,data:u,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:f=>{d?.onUploadProgress&&d?.onUploadProgress(f);}},(f,R)=>w(f,T,d,R))};return {client:j,post:(m,l,u,T)=>E("POST",`${m}`,l,u,T),put:(m,l,u,T)=>E("PUT",`${m}`,l,u,T),patch:(m,l,u,T)=>E("PATCH",`${m}`,l,u,T),delete:(m,l,u)=>E("DELETE",`${m}`,null,l,u),get:(m,l,u)=>E("GET",`${m}`,null,l,u),upload:(m,l,u,T)=>{let g=new FormData;return Object.keys(l).forEach(q=>g.append(q,l[q])),E("POST",`${m}`,g,u,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(m,l,u,T,g)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...g},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=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&h){let k=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?S:d.passphrase:A;h=C(h,k);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),b=R?.status,P=b===401;if(!R.ok){let k=R?.statusText||"Error";try{let Y=R.headers.get("content-type")||"",I=await R.clone().text();if(I)if(Y.includes("application/json"))try{let ne=JSON.parse(I);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:D)&&u){let ke=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?S:g.passphrase:A;try{u=x(ne,ke);}catch{try{u=x(ne,S);}catch{}}}k=ne?.message||k;}catch{k=I;}else k=I;}catch{}let re=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:c,z={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!0};g?.infoError&&i&&!re&&i(z),T(z);return}let O=R.body.getReader(),v=new TextDecoder("utf-8"),W="",de=!1;for(;!de;){let{done:k,value:re}=await O.read();de=k,W+=v.decode(re,{stream:!0});let z=W.split(`
|
|
2
2
|
|
|
3
|
-
`);
|
|
3
|
+
`);W=z.pop();for(let Y of z)if(Y.startsWith("data:"))try{let I=ge(Y);T({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!1});}catch{}}T({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:b,isDone:!0});}catch(q){let d=q?.name==="AbortError";T({status:false,data:void 0,message:q instanceof Error?q.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Jr(t,e){let[r,o]=useState(false),[s,a]=useState(),[i,n]=useState(0),c=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async A=>{c.current?.abort();let C=new AbortController;c.current=C,o(true),e?.beforeRequest&&(A=e?.beforeRequest(A)),e?.logging&&console.log("Before request",A);let x={...e,signal:C.signal,onUploadProgress:w=>{let j=Math.round(w.loaded*100/(w.total||1));n(j);}},S=t.__isVoid?await t(void 0,x):await t(A,void 0,x);e?.logging&&console.log("After response",S),a(S),o(false),n(0),S.status&&e?.onSuccess&&e?.onSuccess(S),!S.status&&e?.onError&&e?.onError(S),e?.afterResponse&&e?.afterResponse(S);},{...s,loading:r,abort:()=>{c.current?.abort(),c.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 yt=typeof window<"u"?window:null;function Yr(t={}){let{getTrigger:e=mt,target:r=yt,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 c=()=>{n(e(a,{disableHysteresis:o,threshold:s,target:r}));};if(c(),r)return r.addEventListener("scroll",c,{passive:true}),()=>{r.removeEventListener("scroll",c);}},[r,e,o,s]),i}var rn=(t,e)=>{let r=t.__path||t.name,o=e?.storeName||`${r}`,s=e?.shallow??true,a=n=>{let c=n.states[o]??J,{loading:p,isCancel:y,response:D}=c,{refresh:A,abort:C,clear:x,clone:S}=Oe(o)||{},w=[D?.data,{...D,loading:p,isCancel:y,refresh:A,abort:C,clear:x,clone:S}];return e?.selector?e.selector(w):w};return s?V(useShallow(a)):V(a)};var sn=(t,e)=>{let r=o=>t(o);return r.displayName=e,r},an=(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 cn(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(c=>c());}function i(n){let c=useRef(n?n(e):e);return useSyncExternalStore(s,()=>{let p=n?n(e):e,y=c.current;return Object.is(y,p)||(c.current=p),c.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 mn(t,e){let[r,o]=useState(false),[s,a]=useState([]),i=useRef([]),n=useRef(null);useEffect(()=>{if(e?.abortOnUnmount)return ()=>{n.current?.abort();}},[]);let c=async D=>{n.current?.abort();let A=new AbortController;n.current=A,o(true),a([]),i.current=[],t(D,C=>{C.isDone||(i.current.push(C),a([...i.current])),(C.isDone||!C.status)&&(o(false),e?.onDone&&e?.onDone([...i.current])),C.status?e?.onStream&&e?.onStream(C):e?.onError&&e?.onError(C);},{signal:A.signal});},p=()=>{n.current?.abort(),n.current=null,o(false);},y=()=>{o(false),a([]),i.current=[];};return [s.map(D=>D.data),c,{loading:r,abort:p,reset:y,response:s}]}export{Je as BgsCoreProvider,nt as DataTypeEnum,rt as HttpMethod,Re as capitalizeWords,Wr as createApiHelper,sn as createElement,cn as createStore,kt as debounce,se as decrypt,Ce as decryptString,J as defaultState,St as diffJson,oe as encrypt,Ae as encryptString,ye as generateCacheKey,Dt as generateUUID,Oe as getApiActions,K as getFieldValue,Ot as isArray,H as isNotEmpty,vt as jsonCopy,me as labelFormatter,Pt as mappingUndefinedtoNull,M as moment,ge as parseSSEChunk,Se as registerApi,wt as renderChildren,fr as safeUpdate,qt as sorting,an as splitElement,Ee as stableStringify,Ut as summary,Pe as unregisterApi,tt as useApiLoad,V as useApiLoadStore,Jr as useApiSend,rn as useApiStore,mn as useApiStream,$ as useBgsCore,Z as useCrypto,Dr as useDelay,Ur as useFormatted,Er as useInterval,Mr as useKeyPress,Yr 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.
|
|
3
|
+
"version": "0.0.78",
|
|
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",
|