@bgscore/react-core 0.0.88 → 0.0.90

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