@bgscore/react-core 1.0.0 → 1.0.1

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 de=require('react'),M=require('dayjs'),$e=require('dayjs/plugin/utc'),Ke=require('dayjs/plugin/timezone'),Le=require('dayjs/plugin/duration'),Fe=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'),De=require('crypto-js/aes'),Ce=require('crypto-js/pbkdf2'),et=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),Te=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),Rt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var de__default=/*#__PURE__*/_interopDefault(de);var M__default=/*#__PURE__*/_interopDefault(M);var $e__default=/*#__PURE__*/_interopDefault($e);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Le__default=/*#__PURE__*/_interopDefault(Le);var Fe__default=/*#__PURE__*/_interopDefault(Fe);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 De__default=/*#__PURE__*/_interopDefault(De);var Ce__default=/*#__PURE__*/_interopDefault(Ce);var et__default=/*#__PURE__*/_interopDefault(et);var X__default=/*#__PURE__*/_interopDefault(X);var Te__default=/*#__PURE__*/_interopDefault(Te);var Rt__default=/*#__PURE__*/_interopDefault(Rt);M__default.default.extend($e__default.default);M__default.default.extend(Ke__default.default);M__default.default.extend(Le__default.default);M__default.default.extend(Fe__default.default);M__default.default.extend(Be__default.default);M__default.default.extend(He__default.default);M__default.default.extend(Ie__default.default);M__default.default.extend(je__default.default);M__default.default.extend(Ve__default.default);M__default.default.extend(We__default.default);var U=M__default.default;function Ht(){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 It(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var jt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Vt(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 B(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 Wt(e,t){return typeof e=="function"?e(t):e}var $=(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},Yt={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let s=$(r,t)?$(r,t):"",a=$(n,t)?$(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=$(r,t)?$(r,t):"",a=$(n,t)?$(n,t):"";return s>a?1:-1}else return r>n?1:-1}))},zt=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?$(n,t)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function Jt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ye(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 Ye([t??"undefined",e??"undefined"])}function ge(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function _t(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 ze(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 be(e="",t=false,r="."){if(!ze(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),s=Number(n);return Number.isNaN(s)?null:s}var Je=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Gt(e){let t={};for(let r in e)Je.has(r)&&(t[r]=e[r]);return t}function Xt(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function Zt(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(U).sort((a,i)=>a.diff(i)),n=r[0].format("YYYY-MM-DD"),s=r.at(-1).format("YYYY-MM-DD");return [n,s]}function Qt(e,t){let r=U(e),n=U(t),s=r.month()===n.month(),a=r.year()===n.year();return a&&s?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function er(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=U(e,"HH:mm",true),n=U(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let s=n.diff(r,"minutes");return s<=0&&(s+=24*60),s.toString()}var xe=de.createContext(void 0);function K(){let e=de.useContext(xe);return e||{}}var Ze=({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&&U.locale(s,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(xe.Provider,{value:r,children:e})};function se(e,t){let r=Te__default.default.random(16),n=Te__default.default.random(16),s=Ce__default.default(t,r,{keySize:256/32,iterations:1e3}),a=De__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=De__default.default.decrypt(s,a,{iv:X__default.default.parse(n)}).toString(et__default.default);return JSON.parse(o)}function Ae(e,t){return JSON.stringify(se(e,t))}function Se(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=K();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 Se(t,r||e)}}}var Pe=()=>{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=m=>{if(m.key===i)if(m.newValue)try{p(t(JSON.parse(m.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}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 ot(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 Y={loading:false,response:void 0,isCancel:false},z=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let s=t().states[r]??Y,a={...s,...n};ot(s,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,Oe=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},we=e=>le.get(e);function at(...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,m,x,g]=z(shallow.useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:D,clearPreviousData:C,refetchOnWindowFocus:q}=K(),j=Pe(),E=de.useRef(void 0),L=de.useRef(null),{cacheName:H,cacheKey:F,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=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 D?.enabled=="boolean"&&(y=D.enabled);let P=false;typeof D?.persistence=="boolean"&&(P=D?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let O=60*5,k="s";return B(D?.timeout)&&(typeof D?.timeout=="number"?(O=D.timeout,k="s"):typeof D?.timeout=="object"&&(O=D?.timeout.value,k=D?.timeout.unit)),B(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,k="s"):typeof o?.cache?.timeout=="object"&&(O=o.cache.timeout.value,k=o.cache.timeout.unit)):y=o.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:y}},[o?.cache,i,S,D,a]);de.useEffect(()=>{let h=JSON.stringify(B(E.current)?E.current:""),c=JSON.stringify(B(i)?i:""),b=E.current===void 0;(h!==c||b)&&!o?.hold&&((o?.clearPreviousData??C)&&g(p,{response:null}),R(),E.current=i),o?.onChange&&o?.onChange(i,N);},[i,o?.clearPreviousData,C,o?.hold,...o?.trigger||[]]),de.useEffect(()=>{let h=async()=>{!te&&H&&F&&(await caches.open(H)).delete(F);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),L.current?.abort();}},[te,H,F,p,L]);let R=de.useCallback(async h=>{let c=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(c=o?.beforeRequest(i)),_&&!h&&!m){o?.onBeforeRequest&&o?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(F))?.json();if(P){let{data:O,expired:k}=P;if(U().isAfter(k))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"){L.current?.abort();let b=new AbortController;L.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}),_&&y.status){let P=U().add(Q,ee).toISOString(),O={data:y,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(F,V);}}},[i,t,o,m,H,F,Q,ee,_]);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();},U.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[o?.refreshInterval,R]);let l=de.useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:T}=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=U.duration(A,T).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,A,T,R]);let w=de.useCallback(()=>{L.current?.abort(),L.current=null,g(p,{loading:false,isCancel:true});},[p,L]),d=de.useCallback(()=>{g(p,{loading:false,response:null});},[p]),N=de.useMemo(()=>({...x,loading:f,refresh:R,abort:w,clear:d,response:x,isCancel:m,clone:(h,c)=>at(t,h,c)}),[x,f,R,w,d,m,t]);return de.useEffect(()=>(Oe(p,N),()=>{qe(p);}),[N,p]),[x?.data,N]}async function kr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var it=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(it||{}),lt=(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))(lt||{});var Lr=(e,t,r)=>{let{format:n}=K();return t==="number"?Ue(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===t)?ut(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?pt(e,r):t==="string"?ct(e,r):e?.toString()??""};function pt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return r?n:s}function ct(e,t){if(!B(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}Ue(10,{thouSep:",",decSep:".",decDigits:2});function Ue(e,{thouSep:t,decSep:r,decDigits:n,method:s,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(s)if(typeof n=="number"){let m=Math.pow(10,n);i=Math[s](i*m)/m;}else i=Math[s](i);else if(typeof n=="number"){let m=Math.pow(10,n);i=Math.trunc(i*m)/m;}let o=0;if(n==="auto"){let m=i.toString(),x=m.indexOf(".");x!==-1&&(o=m.length-x-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 ut(e,{display:t,value:r}){if(!B(e))return e;let n=U(e,r);return n.isValid()?n.format(t):e}function Hr(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 Vr(e,t,r){let[n,s]=de.useState(false),a=(f,m)=>typeof e=="string"&&f===e||typeof e=="number"&&m===e,i=f=>f!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(f.tagName)||f.hasAttribute("contentEditable")),o=f=>{let{key:m,keyCode:x}=f,g=f.ctrlKey,S=f.altKey,D=f.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(m,x)&&(t==="ctrl"&&g||t==="alt"&&S||t==="shift"&&D)&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));else {let C=t.every(q=>q==="ctrl"?g:q==="alt"?S:q==="shift"?D:false);a(m,x)&&C&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));}else a(m,x)&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));},p=({key:f,keyCode:m})=>{a(f,m)&&s(false);};return de.useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",p);}),[]),n}var Zr=({url:e,token:t,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:p,withCredentials:f,encryptRequest:m,encryptResponse:x,passphrase:g})=>{let{encrypt:S,decrypt:D,passphrase:C}=Z(),q=(R,l,u,A)=>{let T=A?.code==="ERR_CANCELED",w=R?.status===401,d=R?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:x)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=D(d,P);}catch{try{d=D(d,C);}catch{}}}let c={...n({...R,data:d,isCancel:T,isUnauthorization:w},A),isCancel:T,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&&(!T||!b)&&i(c),!y&&(!T||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(R,l=()=>{})=>Rt__default.default.create({baseURL:`${e}`,withCredentials:typeof R.withCredentials=="boolean"?R.withCredentials:f})(R).then(l).catch(A=>l(A.response,A)),E=(R,l,u,A,T)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},N={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):d.token&&(N.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:m)&&u){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;u=S(u,c);}return j({url:l,method:R,data:u,headers:N,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:c=>{d?.onUploadProgress&&d?.onUploadProgress(c);}},(c,b)=>q(c,A,d,b))};return {client:j,post:(R,l,u,A)=>E("POST",`${R}`,l,u,A),put:(R,l,u,A)=>E("PUT",`${R}`,l,u,A),patch:(R,l,u,A)=>E("PATCH",`${R}`,l,u,A),delete:(R,l,u)=>E("DELETE",`${R}`,null,l,u),get:(R,l,u)=>E("GET",`${R}`,null,l,u),upload:(R,l,u,A)=>{let T=new FormData;return Object.keys(l).forEach(w=>T.append(w,l[w])),E("POST",`${R}`,T,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(R,l,u,A,T)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...T},N={"Content-Type":"application/json",...s,...d.headers};if(d.token){let v=typeof d.token=="boolean"?t:d.token;v&&(N.Authorization=`Bearer ${v}`);}let h=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:m)&&h){let v=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:R,headers:N,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),y=b?.status,P=y===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(G.includes("application/json"))try{let ne=JSON.parse(I);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&u){let Me=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;try{u=D(ne,Me);}catch{try{u=D(ne,C);}catch{}}}v=ne?.message||v;}catch{v=I;}else v=I;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:y,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=k.decode(re,{stream:!0});let W=V.split(`
1
+ 'use strict';var de=require('react'),$=require('dayjs'),Ke=require('dayjs/plugin/utc'),Le=require('dayjs/plugin/timezone'),Fe=require('dayjs/plugin/duration'),Ie=require('dayjs/plugin/advancedFormat'),He=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),je=require('dayjs/plugin/isSameOrBefore'),Ve=require('dayjs/plugin/isSameOrAfter'),We=require('dayjs/plugin/weekOfYear'),Ye=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ce=require('crypto-js/aes'),Ae=require('crypto-js/pbkdf2'),rt=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),De=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),gt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var de__default=/*#__PURE__*/_interopDefault(de);var $__default=/*#__PURE__*/_interopDefault($);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Le__default=/*#__PURE__*/_interopDefault(Le);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);var je__default=/*#__PURE__*/_interopDefault(je);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var We__default=/*#__PURE__*/_interopDefault(We);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var rt__default=/*#__PURE__*/_interopDefault(rt);var X__default=/*#__PURE__*/_interopDefault(X);var De__default=/*#__PURE__*/_interopDefault(De);var gt__default=/*#__PURE__*/_interopDefault(gt);$__default.default.extend(Ke__default.default);$__default.default.extend(Le__default.default);$__default.default.extend(Fe__default.default);$__default.default.extend(Ie__default.default);$__default.default.extend(He__default.default);$__default.default.extend(Be__default.default);$__default.default.extend(je__default.default);$__default.default.extend(Ve__default.default);$__default.default.extend(We__default.default);$__default.default.extend(Ye__default.default);var U=$__default.default;function jt(){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 Vt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Wt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Yt(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 K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={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,o)=>o.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=ye.snackCase(ye.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function zt(e,t){return typeof e=="function"?e(t):e}var E=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},Jt={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},_t=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?E(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function Gt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(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((o,a)=>(o[a]=n[a],o),{})):n})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Xt(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var be=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 Je(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&oe(n,r))return true}return false}function xe(e="",t=false,r="."){if(!Je(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Zt(e){let t={};for(let r in e)_e.has(r)&&(t[r]=e[r]);return t}function Qt(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function er(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(U).sort((a,i)=>a.diff(i)),n=r[0].format("YYYY-MM-DD"),o=r.at(-1).format("YYYY-MM-DD");return [n,o]}function tr(e,t){let r=U(e),n=U(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function rr(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=U(e,"HH:mm",true),n=U(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var nr=(e=[],t="label",r="value",n)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function Ge(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Ge(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var Te=de.createContext(void 0);function L(){let e=de.useContext(Te);return e||{}}var et=({children:e,value:t})=>{let r={...t};return de.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&U.locale(o,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(Te.Provider,{value:r,children:e})};function se(e,t){let r=De__default.default.random(16),n=De__default.default.random(16),o=Ae__default.default(t,r,{keySize:256/32,iterations:1e3}),a=Ce__default.default.encrypt(JSON.stringify(e),o,{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:o}=e,a=Ae__default.default(t,X__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=Ce__default.default.decrypt(o,a,{iv:X__default.default.parse(n)}).toString(rt__default.default);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return se(t,r||e)},decrypt(t,r){return ae(t,r||e)},encryptString(t,r){return Se(t,r||e)},decryptString(t,r){return Pe(t,r||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),r=de.useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),n=de.useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,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=m=>{if(m.key===i)if(m.newValue)try{p(t(JSON.parse(m.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}else p(null);};return window.addEventListener("storage",f),()=>window.removeEventListener("storage",f)},[i,t]),s},a=de.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function at(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};at(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,p=s?.storeName||`${a}`,[f,m,x,g]=z(shallow.useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:D,clearPreviousData:C,refetchOnWindowFocus:w}=L(),j=Oe(),M=de.useRef(void 0),F=de.useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=de.useMemo(()=>{let h=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,b=ge({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),R=false;typeof D?.enabled=="boolean"&&(R=D.enabled);let P=false;typeof D?.persistence=="boolean"&&(P=D?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,N="s";return K(D?.timeout)&&(typeof D?.timeout=="number"?(O=D.timeout,N="s"):typeof D?.timeout=="object"&&(O=D?.timeout.value,N=D?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?R=s.cache.enabled:R=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,N="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,N=s.cache.timeout.unit)):R=s.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:N,persistence:P,cacheEnabled:R}},[s?.cache,i,S,D,a]);de.useEffect(()=>{let h=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),b=M.current===void 0;(h!==c||b)&&!s?.hold&&((s?.clearPreviousData??C)&&g(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,k);},[i,s?.clearPreviousData,C,s?.hold,...s?.trigger||[]]),de.useEffect(()=>{let h=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,I,p,F]);let y=de.useCallback(async h=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!h&&!m){s?.onBeforeRequest&&s?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(I))?.json();if(P){let{data:O,expired:N}=P;if(U().isAfter(N))await b.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),g(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let R=o?await t(void 0,{...s,signal:b.signal}):await t(c,void 0,{...s,signal:b.signal});if(s?.afterResponse&&R?.data&&(R.data=s?.afterResponse(R.data,c)),s?.logging&&console.log("After request",R),R.status&&s?.onSuccess?.(R,c),R.status||s?.onError?.(R,c),s?.onAfterResponse?.(R,c),g(p,{loading:false,response:R,isCancel:false}),_&&R.status){let P=U().add(Q,ee).toISOString(),O={data:R,expired:P},N=await caches.open(H),V=new Response(JSON.stringify(O));await N.put(I,V);}}},[i,t,s,m,H,I,Q,ee,_]);de.useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,b=setInterval(()=>{y();},U.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[s?.refreshInterval,y]);let l=de.useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:T}=de.useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??w?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??w?.timeout,b=typeof c=="number"?c:c?.value??60*5,R=typeof c=="object"?c.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[s?.refetchOnWindowFocus,w]);de.useEffect(()=>{if(!u)return;let h=U.duration(A,T).asMilliseconds(),c=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&y(),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,A,T,y]);let q=de.useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=de.useCallback(()=>{g(p,{loading:false,response:null});},[p]),k=de.useMemo(()=>({...x,loading:f,refresh:y,abort:q,clear:d,response:x,isCancel:m,clone:(h,c)=>lt(t,h,c)}),[x,f,y,q,d,m,t]);return de.useEffect(()=>(we(p,k),()=>{qe(p);}),[k,p]),[x?.data,k]}async function Mr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(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))(ct||{});var Hr=(e,t,r)=>{let{format:n}=L();return t==="number"?ke(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?ut(e,r):t==="string"?ft(e,r):e?.toString()??""};function ut(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function ft(e,t){if(!K(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=he(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}ke(10,{thouSep:",",decSep:".",decDigits:2});function ke(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let m=Math.pow(10,n);i=Math[o](i*m)/m;}else i=Math[o](i);else if(typeof n=="number"){let m=Math.pow(10,n);i=Math.trunc(i*m)/m;}let s=0;if(n==="auto"){let m=i.toString(),x=m.indexOf(".");x!==-1&&(s=m.length-x-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s: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 dt(e,{display:t,value:r}){if(!K(e))return e;let n=U(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 o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function zr(e,t,r){let[n,o]=de.useState(false),a=(f,m)=>typeof e=="string"&&f===e||typeof e=="number"&&m===e,i=f=>f!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(f.tagName)||f.hasAttribute("contentEditable")),s=f=>{let{key:m,keyCode:x}=f,g=f.ctrlKey,S=f.altKey,D=f.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(m,x)&&(t==="ctrl"&&g||t==="alt"&&S||t==="shift"&&D)&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));else {let C=t.every(w=>w==="ctrl"?g:w==="alt"?S:w==="shift"?D:false);a(m,x)&&C&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));}else a(m,x)&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));},p=({key:f,keyCode:m})=>{a(f,m)&&o(false);};return de.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),n}var tn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:f,encryptRequest:m,encryptResponse:x,passphrase:g})=>{let{encrypt:S,decrypt:D,passphrase:C}=Z(),w=(y,l,u,A)=>{let T=A?.code==="ERR_CANCELED",q=y?.status===401,d=y?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:x)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=D(d,P);}catch{try{d=D(d,C);}catch{}}}let c={...n({...y,data:d,isCancel:T,isUnauthorization:q},A),isCancel:T,isUnauthorization:q,httpCode:y?.status},b=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:p,R=s?s(c,u):!q;if((u?.infoSuccess&&c.status||u?.infoError&&!c.status)&&i&&(!T||!b)&&i(c),!R&&(!T||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt__default.default.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:f})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,u,A,T)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},k={"Content-Type":"application/json",...o,...d.headers};if(d.token&&(typeof d.token=="boolean"?t&&(k.Authorization=`Bearer ${t}`):d.token&&(k.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:m)&&u){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;u=S(u,c);}return j({url:l,method:y,data:u,headers:k,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:c=>{d?.onUploadProgress&&d?.onUploadProgress(c);}},(c,b)=>w(c,A,d,b))};return {client:j,post:(y,l,u,A)=>M("POST",`${y}`,l,u,A),put:(y,l,u,A)=>M("PUT",`${y}`,l,u,A),patch:(y,l,u,A)=>M("PATCH",`${y}`,l,u,A),delete:(y,l,u)=>M("DELETE",`${y}`,null,l,u),get:(y,l,u)=>M("GET",`${y}`,null,l,u),upload:(y,l,u,A)=>{let T=new FormData;return Object.keys(l).forEach(q=>T.append(q,l[q])),M("POST",`${y}`,T,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,u,A,T)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...T},k={"Content-Type":"application/json",...o,...d.headers};if(d.token){let v=typeof d.token=="boolean"?t:d.token;v&&(k.Authorization=`Bearer ${v}`);}let h=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:m)&&h){let v=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:y,headers:k,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",B=await b.clone().text();if(B)if(G.includes("application/json"))try{let ne=JSON.parse(B);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&u){let $e=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;try{u=D(ne,$e);}catch{try{u=D(ne,C);}catch{}}}v=ne?.message||v;}catch{v=B;}else v=B;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),N=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=N.decode(re,{stream:!0});let W=V.split(`
2
2
 
3
- `);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let I=he(G);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:y,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:y,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 tn(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 D={...t,signal:S.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));o(j);}},C=e.__isVoid?await e(void 0,D):await e(g,void 0,D);t?.logging&&console.log("After response",C),a(C),n(false),o(0),t?.afterResponse&&C?.data&&(C.data=t?.afterResponse(C.data,g)),C.status&&t?.onSuccess&&t?.onSuccess(C,g),!C.status&&t?.onError&&t?.onError(C,g),t?.onAfterResponse?.(C,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 ht(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 bt=typeof window<"u"?window:null;function on(e={}){let{getTrigger:t=ht,target:r=bt,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 un=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,s=t?.shallow??true,a=o=>{let p=o.states[n]??Y,{loading:f,isCancel:m,response:x}=p,{refresh:g,abort:S,clear:D,clone:C}=we(n)||{},q=[x?.data,{...x,loading:f,isCancel:m,refresh:g,abort:S,clear:D,clone:C}];return t?.selector?t.selector(q):q};return s?z(shallow.useShallow(a)):z(a)};var mn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},Rn=(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 bn(){let{format:e}=K();return (t="",r=false)=>be(t,r,e.number.decSep)}function Dn(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,m=p.current;return Object.is(m,f)||(p.current=f),p.current},()=>o?o(t):t)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function Ct(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]=Ct(s,[...t,n]):r[n]=s;}return r}function Pn(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 x=>{o.current?.abort();let g=new AbortController;o.current=g,n(true),a([]),i.current=[],e(x,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);},m=()=>{n(false),a([]),i.current=[];};return [s.map(x=>x.data),p,{loading:r,abort:f,reset:m,response:s}]}exports.BgsCoreProvider=Ze;exports.DataTypeEnum=lt;exports.HttpMethod=it;exports.capitalizeWords=ge;exports.createApiHelper=Zr;exports.createElement=mn;exports.createStore=Dn;exports.debounce=_t;exports.decrypt=ae;exports.decryptString=Se;exports.defaultState=Y;exports.diffJson=It;exports.encrypt=se;exports.encryptString=Ae;exports.filterDOMPropsLite=Gt;exports.generateCacheKey=ye;exports.generateUUID=Ht;exports.getApiActions=we;exports.getDateRangeLabelFromSorted=Qt;exports.getFieldValue=$;exports.getInitials=Xt;exports.getMinMaxDate=Zt;exports.getTotalMinutes=er;exports.isArray=Vt;exports.isDirtyRaw=oe;exports.isNotEmpty=B;exports.isValidNumber=ze;exports.jsonCopy=Jt;exports.labelFormatter=Re;exports.mappingUndefinedtoNull=jt;exports.moment=U;exports.parseSSEChunk=he;exports.parseStringToNumber=be;exports.registerApi=Oe;exports.renderChildren=Wt;exports.safeUpdate=ot;exports.sorting=Yt;exports.splitElement=Rn;exports.stableStringify=Ye;exports.summary=zt;exports.unregisterApi=qe;exports.useApiLoad=at;exports.useApiLoadStore=z;exports.useApiSend=tn;exports.useApiStore=un;exports.useApiStream=Pn;exports.useBgsCore=K;exports.useCrypto=Z;exports.useDelay=kr;exports.useFormatted=Lr;exports.useInterval=Hr;exports.useKeyPress=Vr;exports.useParseStringToNumber=bn;exports.useScrollTrigger=on;exports.useStorage=Pe;exports.wrapApi=Ct;
3
+ `);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,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(q){let d=q?.name==="AbortError";A({status:false,data:void 0,message:q instanceof Error?q.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function on(e,t){let[r,n]=de.useState(false),[o,a]=de.useState(),[i,s]=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 D={...t,signal:S.signal,onUploadProgress:w=>{let j=Math.round(w.loaded*100/(w.total||1));s(j);}},C=e.__isVoid?await e(void 0,D):await e(g,void 0,D);t?.logging&&console.log("After response",C),a(C),n(false),s(0),t?.afterResponse&&C?.data&&(C.data=t?.afterResponse(C.data,g)),C.status&&t?.onSuccess&&t?.onSuccess(C,g),!C.status&&t?.onError&&t?.onError(C,g),t?.onAfterResponse?.(C,g);},{...o,loading:r,abort:()=>{p.current?.abort(),p.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function xt(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Tt=typeof window<"u"?window:null;function ln(e={}){let{getTrigger:t=xt,target:r=Tt,disableHysteresis:n=false,threshold:o=100}=e,a=de__default.default.useRef(0),[i,s]=de__default.default.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return de__default.default.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,t,n,o]),i}var mn=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,a=s=>{let p=s.states[n]??Y,{loading:f,isCancel:m,response:x}=p,{refresh:g,abort:S,clear:D,clone:C}=Ue(n)||{},w=[x?.data,{...x,loading:f,isCancel:m,refresh:g,abort:S,clear:D,clone:C}];return t?.selector?t.selector(w):w};return o?z(shallow.useShallow(a)):z(a)};var gn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},hn=(e,t)=>{let r={};r.others=[];let n=o=>{de__default.default.Children.forEach(o,a=>{if(de__default.default.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))r[i]=a;else {let s=a;s.props?.children?n(s.props.children):r.others.push(a);}}else r.others.push(a);});};return n(e),r};function Dn(){let{format:e}=L();return (t="",r=false)=>xe(t,r,e.number.decSep)}function Sn(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(p=>p());}function i(s){let p=de.useRef(s?s(t):t);return de.useSyncExternalStore(o,()=>{let f=s?s(t):t,m=p.current;return Object.is(m,f)||(p.current=f),p.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function St(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=St(o,[...t,n]):r[n]=o;}return r}function qn(e,t){let[r,n]=de.useState(false),[o,a]=de.useState([]),i=de.useRef([]),s=de.useRef(null);de.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async x=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),i.current=[],e(x,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=()=>{s.current?.abort(),s.current=null,n(false);},m=()=>{n(false),a([]),i.current=[];};return [o.map(x=>x.data),p,{loading:r,abort:f,reset:m,response:o}]}exports.BgsCoreProvider=et;exports.DataTypeEnum=ct;exports.HttpMethod=pt;exports.capitalizeWords=he;exports.createApiHelper=tn;exports.createElement=gn;exports.createStore=Sn;exports.debounce=Xt;exports.decrypt=ae;exports.decryptString=Pe;exports.defaultState=Y;exports.diffJson=Vt;exports.encrypt=se;exports.encryptString=Se;exports.filterDOMPropsLite=Zt;exports.generateCacheKey=ge;exports.generateUUID=jt;exports.getApiActions=Ue;exports.getDateRangeLabelFromSorted=tr;exports.getFieldValue=E;exports.getInitials=Qt;exports.getMinMaxDate=er;exports.getTotalMinutes=rr;exports.isArray=Yt;exports.isDirtyRaw=oe;exports.isNotEmpty=K;exports.isValidNumber=Je;exports.jsonCopy=Gt;exports.labelFormatter=ye;exports.mappingData=nr;exports.mappingUndefinedtoNull=Wt;exports.moment=U;exports.objectToQueryString=Ge;exports.parseSSEChunk=be;exports.parseStringToNumber=xe;exports.registerApi=we;exports.renderChildren=zt;exports.replaceNullStrings=Re;exports.safeUpdate=at;exports.sorting=Jt;exports.splitElement=hn;exports.stableStringify=ze;exports.summary=_t;exports.unregisterApi=qe;exports.useApiLoad=lt;exports.useApiLoadStore=z;exports.useApiSend=on;exports.useApiStore=mn;exports.useApiStream=qn;exports.useBgsCore=L;exports.useCrypto=Z;exports.useDelay=Mr;exports.useFormatted=Hr;exports.useInterval=Vr;exports.useKeyPress=zr;exports.useParseStringToNumber=Dn;exports.useScrollTrigger=ln;exports.useStorage=Oe;exports.wrapApi=St;
package/dist/index.d.cts CHANGED
@@ -421,6 +421,12 @@ type StorePayload<DRes> = {
421
421
  loading?: boolean;
422
422
  isCancel?: boolean;
423
423
  };
424
+ type DataSource<T = unknown> = {
425
+ label: string;
426
+ value: string;
427
+ index: number;
428
+ rowData: T;
429
+ };
424
430
 
425
431
  declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
426
432
  declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
@@ -589,7 +595,7 @@ declare const labelFormatter: {
589
595
  changeAll: (value?: string, capShortWords?: boolean) => string;
590
596
  };
591
597
  declare function renderChildren<T = unknown>(children: Children, props: T): any;
592
- declare const getFieldValue: <T, P extends NestedKeyOf<T>, D = undefined>(obj: T, path: P, defaultValue?: D) => PathValue<T, P> | D;
598
+ declare const getFieldValue: <T, P extends NestedKeyOf<T>, D = unknown>(obj: T, path: P, defaultValue?: D) => PathValue<T, P> | D;
593
599
  declare const sorting: {
594
600
  desc: <T>(data: T[], field?: NestedKeyOf<T>) => T[];
595
601
  asc: <T>(data: T[], field?: NestedKeyOf<T>) => T[];
@@ -609,6 +615,9 @@ declare function getInitials(fullName?: string, max?: number): string;
609
615
  declare function getMinMaxDate(dates?: string[]): [string, string];
610
616
  declare function getDateRangeLabelFromSorted(from: string, to: string): string;
611
617
  declare function getTotalMinutes(from?: string, to?: string): string;
618
+ declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
619
+ declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
620
+ declare function replaceNullStrings(input: any): any;
612
621
 
613
622
  type Listener = () => void;
614
623
  declare function createStore<T>(initialState: T): {
@@ -676,4 +685,4 @@ interface BgsCoreProviderProps {
676
685
  }
677
686
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
678
687
 
679
- 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, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, 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, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
688
+ 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 DataSource, 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, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
package/dist/index.d.ts CHANGED
@@ -421,6 +421,12 @@ type StorePayload<DRes> = {
421
421
  loading?: boolean;
422
422
  isCancel?: boolean;
423
423
  };
424
+ type DataSource<T = unknown> = {
425
+ label: string;
426
+ value: string;
427
+ index: number;
428
+ rowData: T;
429
+ };
424
430
 
425
431
  declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
426
432
  declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
@@ -589,7 +595,7 @@ declare const labelFormatter: {
589
595
  changeAll: (value?: string, capShortWords?: boolean) => string;
590
596
  };
591
597
  declare function renderChildren<T = unknown>(children: Children, props: T): any;
592
- declare const getFieldValue: <T, P extends NestedKeyOf<T>, D = undefined>(obj: T, path: P, defaultValue?: D) => PathValue<T, P> | D;
598
+ declare const getFieldValue: <T, P extends NestedKeyOf<T>, D = unknown>(obj: T, path: P, defaultValue?: D) => PathValue<T, P> | D;
593
599
  declare const sorting: {
594
600
  desc: <T>(data: T[], field?: NestedKeyOf<T>) => T[];
595
601
  asc: <T>(data: T[], field?: NestedKeyOf<T>) => T[];
@@ -609,6 +615,9 @@ declare function getInitials(fullName?: string, max?: number): string;
609
615
  declare function getMinMaxDate(dates?: string[]): [string, string];
610
616
  declare function getDateRangeLabelFromSorted(from: string, to: string): string;
611
617
  declare function getTotalMinutes(from?: string, to?: string): string;
618
+ declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
619
+ declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
620
+ declare function replaceNullStrings(input: any): any;
612
621
 
613
622
  type Listener = () => void;
614
623
  declare function createStore<T>(initialState: T): {
@@ -676,4 +685,4 @@ interface BgsCoreProviderProps {
676
685
  }
677
686
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
678
687
 
679
- 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, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, 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, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
688
+ 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 DataSource, 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, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import de,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import M from'dayjs';import $e from'dayjs/plugin/utc';import Ke from'dayjs/plugin/timezone';import Le from'dayjs/plugin/duration';import Fe 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 De from'crypto-js/aes';import Ce from'crypto-js/pbkdf2';import et from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import Te from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import Rt from'axios';M.extend($e);M.extend(Ke);M.extend(Le);M.extend(Fe);M.extend(Be);M.extend(He);M.extend(Ie);M.extend(je);M.extend(Ve);M.extend(We);var U=M;function Ht(){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 It(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var jt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Vt(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 B(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 Wt(e,t){return typeof e=="function"?e(t):e}var $=(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},Yt={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let s=$(r,t)?$(r,t):"",a=$(n,t)?$(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=$(r,t)?$(r,t):"",a=$(n,t)?$(n,t):"";return s>a?1:-1}else return r>n?1:-1}))},zt=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?$(n,t)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function Jt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ye(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 Ye([t??"undefined",e??"undefined"])}function ge(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function _t(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 ze(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 be(e="",t=false,r="."){if(!ze(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),s=Number(n);return Number.isNaN(s)?null:s}var Je=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Gt(e){let t={};for(let r in e)Je.has(r)&&(t[r]=e[r]);return t}function Xt(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function Zt(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(U).sort((a,i)=>a.diff(i)),n=r[0].format("YYYY-MM-DD"),s=r.at(-1).format("YYYY-MM-DD");return [n,s]}function Qt(e,t){let r=U(e),n=U(t),s=r.month()===n.month(),a=r.year()===n.year();return a&&s?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function er(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=U(e,"HH:mm",true),n=U(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let s=n.diff(r,"minutes");return s<=0&&(s+=24*60),s.toString()}var xe=createContext(void 0);function K(){let e=useContext(xe);return e||{}}var Ze=({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&&U.locale(s,a??{},i);}})();},[t.localeConfig]),jsx(xe.Provider,{value:r,children:e})};function se(e,t){let r=Te.random(16),n=Te.random(16),s=Ce(t,r,{keySize:256/32,iterations:1e3}),a=De.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=De.decrypt(s,a,{iv:X.parse(n)}).toString(et);return JSON.parse(o)}function Ae(e,t){return JSON.stringify(se(e,t))}function Se(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=K();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 Se(t,r||e)}}}var Pe=()=>{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=m=>{if(m.key===i)if(m.newValue)try{p(t(JSON.parse(m.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}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 ot(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 Y={loading:false,response:void 0,isCancel:false},z=create((e,t)=>({states:{},updateState:(r,n)=>{let s=t().states[r]??Y,a={...s,...n};ot(s,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,Oe=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},we=e=>le.get(e);function at(...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,m,x,g]=z(useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:D,clearPreviousData:C,refetchOnWindowFocus:q}=K(),j=Pe(),E=useRef(void 0),L=useRef(null),{cacheName:H,cacheKey:F,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=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 D?.enabled=="boolean"&&(y=D.enabled);let P=false;typeof D?.persistence=="boolean"&&(P=D?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let O=60*5,k="s";return B(D?.timeout)&&(typeof D?.timeout=="number"?(O=D.timeout,k="s"):typeof D?.timeout=="object"&&(O=D?.timeout.value,k=D?.timeout.unit)),B(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,k="s"):typeof o?.cache?.timeout=="object"&&(O=o.cache.timeout.value,k=o.cache.timeout.unit)):y=o.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:y}},[o?.cache,i,S,D,a]);useEffect(()=>{let h=JSON.stringify(B(E.current)?E.current:""),c=JSON.stringify(B(i)?i:""),b=E.current===void 0;(h!==c||b)&&!o?.hold&&((o?.clearPreviousData??C)&&g(p,{response:null}),R(),E.current=i),o?.onChange&&o?.onChange(i,N);},[i,o?.clearPreviousData,C,o?.hold,...o?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&H&&F&&(await caches.open(H)).delete(F);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),L.current?.abort();}},[te,H,F,p,L]);let R=useCallback(async h=>{let c=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(c=o?.beforeRequest(i)),_&&!h&&!m){o?.onBeforeRequest&&o?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(F))?.json();if(P){let{data:O,expired:k}=P;if(U().isAfter(k))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"){L.current?.abort();let b=new AbortController;L.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}),_&&y.status){let P=U().add(Q,ee).toISOString(),O={data:y,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(F,V);}}},[i,t,o,m,H,F,Q,ee,_]);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();},U.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[o?.refreshInterval,R]);let l=useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:T}=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=U.duration(A,T).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,A,T,R]);let w=useCallback(()=>{L.current?.abort(),L.current=null,g(p,{loading:false,isCancel:true});},[p,L]),d=useCallback(()=>{g(p,{loading:false,response:null});},[p]),N=useMemo(()=>({...x,loading:f,refresh:R,abort:w,clear:d,response:x,isCancel:m,clone:(h,c)=>at(t,h,c)}),[x,f,R,w,d,m,t]);return useEffect(()=>(Oe(p,N),()=>{qe(p);}),[N,p]),[x?.data,N]}async function kr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var it=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(it||{}),lt=(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))(lt||{});var Lr=(e,t,r)=>{let{format:n}=K();return t==="number"?Ue(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===t)?ut(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?pt(e,r):t==="string"?ct(e,r):e?.toString()??""};function pt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return r?n:s}function ct(e,t){if(!B(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}Ue(10,{thouSep:",",decSep:".",decDigits:2});function Ue(e,{thouSep:t,decSep:r,decDigits:n,method:s,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(s)if(typeof n=="number"){let m=Math.pow(10,n);i=Math[s](i*m)/m;}else i=Math[s](i);else if(typeof n=="number"){let m=Math.pow(10,n);i=Math.trunc(i*m)/m;}let o=0;if(n==="auto"){let m=i.toString(),x=m.indexOf(".");x!==-1&&(o=m.length-x-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 ut(e,{display:t,value:r}){if(!B(e))return e;let n=U(e,r);return n.isValid()?n.format(t):e}function Hr(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 Vr(e,t,r){let[n,s]=useState(false),a=(f,m)=>typeof e=="string"&&f===e||typeof e=="number"&&m===e,i=f=>f!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(f.tagName)||f.hasAttribute("contentEditable")),o=f=>{let{key:m,keyCode:x}=f,g=f.ctrlKey,S=f.altKey,D=f.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(m,x)&&(t==="ctrl"&&g||t==="alt"&&S||t==="shift"&&D)&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));else {let C=t.every(q=>q==="ctrl"?g:q==="alt"?S:q==="shift"?D:false);a(m,x)&&C&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));}else a(m,x)&&(f.preventDefault(),r&&f.stopPropagation(),s(!n));},p=({key:f,keyCode:m})=>{a(f,m)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",p);}),[]),n}var Zr=({url:e,token:t,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:p,withCredentials:f,encryptRequest:m,encryptResponse:x,passphrase:g})=>{let{encrypt:S,decrypt:D,passphrase:C}=Z(),q=(R,l,u,A)=>{let T=A?.code==="ERR_CANCELED",w=R?.status===401,d=R?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:x)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=D(d,P);}catch{try{d=D(d,C);}catch{}}}let c={...n({...R,data:d,isCancel:T,isUnauthorization:w},A),isCancel:T,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&&(!T||!b)&&i(c),!y&&(!T||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(R,l=()=>{})=>Rt.create({baseURL:`${e}`,withCredentials:typeof R.withCredentials=="boolean"?R.withCredentials:f})(R).then(l).catch(A=>l(A.response,A)),E=(R,l,u,A,T)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},N={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):d.token&&(N.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:m)&&u){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;u=S(u,c);}return j({url:l,method:R,data:u,headers:N,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:c=>{d?.onUploadProgress&&d?.onUploadProgress(c);}},(c,b)=>q(c,A,d,b))};return {client:j,post:(R,l,u,A)=>E("POST",`${R}`,l,u,A),put:(R,l,u,A)=>E("PUT",`${R}`,l,u,A),patch:(R,l,u,A)=>E("PATCH",`${R}`,l,u,A),delete:(R,l,u)=>E("DELETE",`${R}`,null,l,u),get:(R,l,u)=>E("GET",`${R}`,null,l,u),upload:(R,l,u,A)=>{let T=new FormData;return Object.keys(l).forEach(w=>T.append(w,l[w])),E("POST",`${R}`,T,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(R,l,u,A,T)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...T},N={"Content-Type":"application/json",...s,...d.headers};if(d.token){let v=typeof d.token=="boolean"?t:d.token;v&&(N.Authorization=`Bearer ${v}`);}let h=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:m)&&h){let v=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:R,headers:N,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),y=b?.status,P=y===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",I=await b.clone().text();if(I)if(G.includes("application/json"))try{let ne=JSON.parse(I);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&u){let Me=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;try{u=D(ne,Me);}catch{try{u=D(ne,C);}catch{}}}v=ne?.message||v;}catch{v=I;}else v=I;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:y,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=k.decode(re,{stream:!0});let W=V.split(`
1
+ import de,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import $ from'dayjs';import Ke from'dayjs/plugin/utc';import Le from'dayjs/plugin/timezone';import Fe from'dayjs/plugin/duration';import Ie from'dayjs/plugin/advancedFormat';import He from'dayjs/plugin/localizedFormat';import Be from'dayjs/plugin/relativeTime';import je from'dayjs/plugin/isSameOrBefore';import Ve from'dayjs/plugin/isSameOrAfter';import We from'dayjs/plugin/weekOfYear';import Ye from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Ce from'crypto-js/aes';import Ae from'crypto-js/pbkdf2';import rt from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import De from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import gt from'axios';$.extend(Ke);$.extend(Le);$.extend(Fe);$.extend(Ie);$.extend(He);$.extend(Be);$.extend(je);$.extend(Ve);$.extend(We);$.extend(Ye);var U=$;function jt(){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 Vt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Wt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Yt(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 K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={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,o)=>o.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=ye.snackCase(ye.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function zt(e,t){return typeof e=="function"?e(t):e}var E=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},Jt={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},_t=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?E(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function Gt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(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((o,a)=>(o[a]=n[a],o),{})):n})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Xt(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var be=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 Je(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&oe(n,r))return true}return false}function xe(e="",t=false,r="."){if(!Je(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Zt(e){let t={};for(let r in e)_e.has(r)&&(t[r]=e[r]);return t}function Qt(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function er(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(U).sort((a,i)=>a.diff(i)),n=r[0].format("YYYY-MM-DD"),o=r.at(-1).format("YYYY-MM-DD");return [n,o]}function tr(e,t){let r=U(e),n=U(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function rr(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=U(e,"HH:mm",true),n=U(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var nr=(e=[],t="label",r="value",n)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function Ge(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Ge(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var Te=createContext(void 0);function L(){let e=useContext(Te);return e||{}}var et=({children:e,value:t})=>{let r={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&U.locale(o,a??{},i);}})();},[t.localeConfig]),jsx(Te.Provider,{value:r,children:e})};function se(e,t){let r=De.random(16),n=De.random(16),o=Ae(t,r,{keySize:256/32,iterations:1e3}),a=Ce.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(X),iv:n.toString(X),encrypted:a}}function ae(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Ae(t,X.parse(r),{keySize:256/32,iterations:1e3}),s=Ce.decrypt(o,a,{iv:X.parse(n)}).toString(rt);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return se(t,r||e)},decrypt(t,r){return ae(t,r||e)},encryptString(t,r){return Se(t,r||e)},decryptString(t,r){return Pe(t,r||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),r=useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),n=useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,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=m=>{if(m.key===i)if(m.newValue)try{p(t(JSON.parse(m.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}else p(null);};return window.addEventListener("storage",f),()=>window.removeEventListener("storage",f)},[i,t]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function at(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};at(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,p=s?.storeName||`${a}`,[f,m,x,g]=z(useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:D,clearPreviousData:C,refetchOnWindowFocus:w}=L(),j=Oe(),M=useRef(void 0),F=useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=useMemo(()=>{let h=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,b=ge({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),R=false;typeof D?.enabled=="boolean"&&(R=D.enabled);let P=false;typeof D?.persistence=="boolean"&&(P=D?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,N="s";return K(D?.timeout)&&(typeof D?.timeout=="number"?(O=D.timeout,N="s"):typeof D?.timeout=="object"&&(O=D?.timeout.value,N=D?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?R=s.cache.enabled:R=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,N="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,N=s.cache.timeout.unit)):R=s.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:N,persistence:P,cacheEnabled:R}},[s?.cache,i,S,D,a]);useEffect(()=>{let h=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),b=M.current===void 0;(h!==c||b)&&!s?.hold&&((s?.clearPreviousData??C)&&g(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,k);},[i,s?.clearPreviousData,C,s?.hold,...s?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,I,p,F]);let y=useCallback(async h=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!h&&!m){s?.onBeforeRequest&&s?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(I))?.json();if(P){let{data:O,expired:N}=P;if(U().isAfter(N))await b.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),g(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let b=new AbortController;F.current=b,g(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let R=o?await t(void 0,{...s,signal:b.signal}):await t(c,void 0,{...s,signal:b.signal});if(s?.afterResponse&&R?.data&&(R.data=s?.afterResponse(R.data,c)),s?.logging&&console.log("After request",R),R.status&&s?.onSuccess?.(R,c),R.status||s?.onError?.(R,c),s?.onAfterResponse?.(R,c),g(p,{loading:false,response:R,isCancel:false}),_&&R.status){let P=U().add(Q,ee).toISOString(),O={data:R,expired:P},N=await caches.open(H),V=new Response(JSON.stringify(O));await N.put(I,V);}}},[i,t,s,m,H,I,Q,ee,_]);useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,b=setInterval(()=>{y();},U.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[s?.refreshInterval,y]);let l=useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:T}=useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??w?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??w?.timeout,b=typeof c=="number"?c:c?.value??60*5,R=typeof c=="object"?c.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:R}},[s?.refetchOnWindowFocus,w]);useEffect(()=>{if(!u)return;let h=U.duration(A,T).asMilliseconds(),c=()=>{let R=Date.now(),P=l.current;P!==null&&R-P>=h&&y(),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,A,T,y]);let q=useCallback(()=>{F.current?.abort(),F.current=null,g(p,{loading:false,isCancel:true});},[p,F]),d=useCallback(()=>{g(p,{loading:false,response:null});},[p]),k=useMemo(()=>({...x,loading:f,refresh:y,abort:q,clear:d,response:x,isCancel:m,clone:(h,c)=>lt(t,h,c)}),[x,f,y,q,d,m,t]);return useEffect(()=>(we(p,k),()=>{qe(p);}),[k,p]),[x?.data,k]}async function Mr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(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))(ct||{});var Hr=(e,t,r)=>{let{format:n}=L();return t==="number"?ke(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?ut(e,r):t==="string"?ft(e,r):e?.toString()??""};function ut(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function ft(e,t){if(!K(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=he(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}ke(10,{thouSep:",",decSep:".",decDigits:2});function ke(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let m=Math.pow(10,n);i=Math[o](i*m)/m;}else i=Math[o](i);else if(typeof n=="number"){let m=Math.pow(10,n);i=Math.trunc(i*m)/m;}let s=0;if(n==="auto"){let m=i.toString(),x=m.indexOf(".");x!==-1&&(s=m.length-x-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s: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 dt(e,{display:t,value:r}){if(!K(e))return e;let n=U(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 o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function zr(e,t,r){let[n,o]=useState(false),a=(f,m)=>typeof e=="string"&&f===e||typeof e=="number"&&m===e,i=f=>f!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(f.tagName)||f.hasAttribute("contentEditable")),s=f=>{let{key:m,keyCode:x}=f,g=f.ctrlKey,S=f.altKey,D=f.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(m,x)&&(t==="ctrl"&&g||t==="alt"&&S||t==="shift"&&D)&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));else {let C=t.every(w=>w==="ctrl"?g:w==="alt"?S:w==="shift"?D:false);a(m,x)&&C&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));}else a(m,x)&&(f.preventDefault(),r&&f.stopPropagation(),o(!n));},p=({key:f,keyCode:m})=>{a(f,m)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),n}var tn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:f,encryptRequest:m,encryptResponse:x,passphrase:g})=>{let{encrypt:S,decrypt:D,passphrase:C}=Z(),w=(y,l,u,A)=>{let T=A?.code==="ERR_CANCELED",q=y?.status===401,d=y?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:x)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=D(d,P);}catch{try{d=D(d,C);}catch{}}}let c={...n({...y,data:d,isCancel:T,isUnauthorization:q},A),isCancel:T,isUnauthorization:q,httpCode:y?.status},b=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:p,R=s?s(c,u):!q;if((u?.infoSuccess&&c.status||u?.infoError&&!c.status)&&i&&(!T||!b)&&i(c),!R&&(!T||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:f})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,u,A,T)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},k={"Content-Type":"application/json",...o,...d.headers};if(d.token&&(typeof d.token=="boolean"?t&&(k.Authorization=`Bearer ${t}`):d.token&&(k.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:m)&&u){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;u=S(u,c);}return j({url:l,method:y,data:u,headers:k,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:c=>{d?.onUploadProgress&&d?.onUploadProgress(c);}},(c,b)=>w(c,A,d,b))};return {client:j,post:(y,l,u,A)=>M("POST",`${y}`,l,u,A),put:(y,l,u,A)=>M("PUT",`${y}`,l,u,A),patch:(y,l,u,A)=>M("PATCH",`${y}`,l,u,A),delete:(y,l,u)=>M("DELETE",`${y}`,null,l,u),get:(y,l,u)=>M("GET",`${y}`,null,l,u),upload:(y,l,u,A)=>{let T=new FormData;return Object.keys(l).forEach(q=>T.append(q,l[q])),M("POST",`${y}`,T,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,u,A,T)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...T},k={"Content-Type":"application/json",...o,...d.headers};if(d.token){let v=typeof d.token=="boolean"?t:d.token;v&&(k.Authorization=`Bearer ${v}`);}let h=u;if(r&&(h=r(h)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:m)&&h){let v=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:y,headers:k,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(h)}),R=b?.status,P=R===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",B=await b.clone().text();if(B)if(G.includes("application/json"))try{let ne=JSON.parse(B);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&u){let $e=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?C:T.passphrase:g;try{u=D(ne,$e);}catch{try{u=D(ne,C);}catch{}}}v=ne?.message||v;}catch{v=B;}else v=B;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:R,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),N=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=N.decode(re,{stream:!0});let W=V.split(`
2
2
 
3
- `);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let I=he(G);A({status:!0,data:I,message:"",isCancel:!1,isUnauthorization:P,httpCode:y,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:y,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 tn(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 D={...t,signal:S.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));o(j);}},C=e.__isVoid?await e(void 0,D):await e(g,void 0,D);t?.logging&&console.log("After response",C),a(C),n(false),o(0),t?.afterResponse&&C?.data&&(C.data=t?.afterResponse(C.data,g)),C.status&&t?.onSuccess&&t?.onSuccess(C,g),!C.status&&t?.onError&&t?.onError(C,g),t?.onAfterResponse?.(C,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 ht(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 bt=typeof window<"u"?window:null;function on(e={}){let{getTrigger:t=ht,target:r=bt,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 un=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,s=t?.shallow??true,a=o=>{let p=o.states[n]??Y,{loading:f,isCancel:m,response:x}=p,{refresh:g,abort:S,clear:D,clone:C}=we(n)||{},q=[x?.data,{...x,loading:f,isCancel:m,refresh:g,abort:S,clear:D,clone:C}];return t?.selector?t.selector(q):q};return s?z(useShallow(a)):z(a)};var mn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},Rn=(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 bn(){let{format:e}=K();return (t="",r=false)=>be(t,r,e.number.decSep)}function Dn(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,m=p.current;return Object.is(m,f)||(p.current=f),p.current},()=>o?o(t):t)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function Ct(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]=Ct(s,[...t,n]):r[n]=s;}return r}function Pn(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 x=>{o.current?.abort();let g=new AbortController;o.current=g,n(true),a([]),i.current=[],e(x,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);},m=()=>{n(false),a([]),i.current=[];};return [s.map(x=>x.data),p,{loading:r,abort:f,reset:m,response:s}]}export{Ze as BgsCoreProvider,lt as DataTypeEnum,it as HttpMethod,ge as capitalizeWords,Zr as createApiHelper,mn as createElement,Dn as createStore,_t as debounce,ae as decrypt,Se as decryptString,Y as defaultState,It as diffJson,se as encrypt,Ae as encryptString,Gt as filterDOMPropsLite,ye as generateCacheKey,Ht as generateUUID,we as getApiActions,Qt as getDateRangeLabelFromSorted,$ as getFieldValue,Xt as getInitials,Zt as getMinMaxDate,er as getTotalMinutes,Vt as isArray,oe as isDirtyRaw,B as isNotEmpty,ze as isValidNumber,Jt as jsonCopy,Re as labelFormatter,jt as mappingUndefinedtoNull,U as moment,he as parseSSEChunk,be as parseStringToNumber,Oe as registerApi,Wt as renderChildren,ot as safeUpdate,Yt as sorting,Rn as splitElement,Ye as stableStringify,zt as summary,qe as unregisterApi,at as useApiLoad,z as useApiLoadStore,tn as useApiSend,un as useApiStore,Pn as useApiStream,K as useBgsCore,Z as useCrypto,kr as useDelay,Lr as useFormatted,Hr as useInterval,Vr as useKeyPress,bn as useParseStringToNumber,on as useScrollTrigger,Pe as useStorage,Ct as wrapApi};
3
+ `);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,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(q){let d=q?.name==="AbortError";A({status:false,data:void 0,message:q instanceof Error?q.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function on(e,t){let[r,n]=useState(false),[o,a]=useState(),[i,s]=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 D={...t,signal:S.signal,onUploadProgress:w=>{let j=Math.round(w.loaded*100/(w.total||1));s(j);}},C=e.__isVoid?await e(void 0,D):await e(g,void 0,D);t?.logging&&console.log("After response",C),a(C),n(false),s(0),t?.afterResponse&&C?.data&&(C.data=t?.afterResponse(C.data,g)),C.status&&t?.onSuccess&&t?.onSuccess(C,g),!C.status&&t?.onError&&t?.onError(C,g),t?.onAfterResponse?.(C,g);},{...o,loading:r,abort:()=>{p.current?.abort(),p.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function xt(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Tt=typeof window<"u"?window:null;function ln(e={}){let{getTrigger:t=xt,target:r=Tt,disableHysteresis:n=false,threshold:o=100}=e,a=de.useRef(0),[i,s]=de.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return de.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,t,n,o]),i}var mn=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,a=s=>{let p=s.states[n]??Y,{loading:f,isCancel:m,response:x}=p,{refresh:g,abort:S,clear:D,clone:C}=Ue(n)||{},w=[x?.data,{...x,loading:f,isCancel:m,refresh:g,abort:S,clear:D,clone:C}];return t?.selector?t.selector(w):w};return o?z(useShallow(a)):z(a)};var gn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},hn=(e,t)=>{let r={};r.others=[];let n=o=>{de.Children.forEach(o,a=>{if(de.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))r[i]=a;else {let s=a;s.props?.children?n(s.props.children):r.others.push(a);}}else r.others.push(a);});};return n(e),r};function Dn(){let{format:e}=L();return (t="",r=false)=>xe(t,r,e.number.decSep)}function Sn(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(p=>p());}function i(s){let p=useRef(s?s(t):t);return useSyncExternalStore(o,()=>{let f=s?s(t):t,m=p.current;return Object.is(m,f)||(p.current=f),p.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function St(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=St(o,[...t,n]):r[n]=o;}return r}function qn(e,t){let[r,n]=useState(false),[o,a]=useState([]),i=useRef([]),s=useRef(null);useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async x=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),i.current=[],e(x,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=()=>{s.current?.abort(),s.current=null,n(false);},m=()=>{n(false),a([]),i.current=[];};return [o.map(x=>x.data),p,{loading:r,abort:f,reset:m,response:o}]}export{et as BgsCoreProvider,ct as DataTypeEnum,pt as HttpMethod,he as capitalizeWords,tn as createApiHelper,gn as createElement,Sn as createStore,Xt as debounce,ae as decrypt,Pe as decryptString,Y as defaultState,Vt as diffJson,se as encrypt,Se as encryptString,Zt as filterDOMPropsLite,ge as generateCacheKey,jt as generateUUID,Ue as getApiActions,tr as getDateRangeLabelFromSorted,E as getFieldValue,Qt as getInitials,er as getMinMaxDate,rr as getTotalMinutes,Yt as isArray,oe as isDirtyRaw,K as isNotEmpty,Je as isValidNumber,Gt as jsonCopy,ye as labelFormatter,nr as mappingData,Wt as mappingUndefinedtoNull,U as moment,Ge as objectToQueryString,be as parseSSEChunk,xe as parseStringToNumber,we as registerApi,zt as renderChildren,Re as replaceNullStrings,at as safeUpdate,Jt as sorting,hn as splitElement,ze as stableStringify,_t as summary,qe as unregisterApi,lt as useApiLoad,z as useApiLoadStore,on as useApiSend,mn as useApiStore,qn as useApiStream,L as useBgsCore,Z as useCrypto,Mr as useDelay,Hr as useFormatted,Vr as useInterval,zr as useKeyPress,Dn as useParseStringToNumber,ln as useScrollTrigger,Oe as useStorage,St as wrapApi};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgscore/react-core",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
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",