@bgscore/react-core 1.0.27 → 1.0.28
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 +3 -3
- package/dist/index.d.cts +21 -6
- package/dist/index.d.ts +21 -6
- package/dist/index.js +3 -3
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'use strict';var ie=require('react'),F=require('dayjs'),Ye=require('dayjs/plugin/utc'),Je=require('dayjs/plugin/timezone'),Ge=require('dayjs/plugin/duration'),Qe=require('dayjs/plugin/advancedFormat'),Xe=require('dayjs/plugin/localizedFormat'),Ze=require('dayjs/plugin/relativeTime'),et=require('dayjs/plugin/isSameOrBefore'),tt=require('dayjs/plugin/isSameOrAfter'),rt=require('dayjs/plugin/weekOfYear'),nt=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ue=require('crypto-js/aes'),ke=require('crypto-js/pbkdf2'),dt=require('crypto-js/enc-utf8'),ae=require('crypto-js/enc-base64'),qe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),wt=require('axios'),Jt=require('dexie');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ie__default=/*#__PURE__*/_interopDefault(ie);var F__default=/*#__PURE__*/_interopDefault(F);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Je__default=/*#__PURE__*/_interopDefault(Je);var Ge__default=/*#__PURE__*/_interopDefault(Ge);var Qe__default=/*#__PURE__*/_interopDefault(Qe);var Xe__default=/*#__PURE__*/_interopDefault(Xe);var Ze__default=/*#__PURE__*/_interopDefault(Ze);var et__default=/*#__PURE__*/_interopDefault(et);var tt__default=/*#__PURE__*/_interopDefault(tt);var rt__default=/*#__PURE__*/_interopDefault(rt);var nt__default=/*#__PURE__*/_interopDefault(nt);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ke__default=/*#__PURE__*/_interopDefault(ke);var dt__default=/*#__PURE__*/_interopDefault(dt);var ae__default=/*#__PURE__*/_interopDefault(ae);var qe__default=/*#__PURE__*/_interopDefault(qe);var wt__default=/*#__PURE__*/_interopDefault(wt);var Jt__default=/*#__PURE__*/_interopDefault(Jt);F__default.default.extend(Ye__default.default);F__default.default.extend(Je__default.default);F__default.default.extend(Ge__default.default);F__default.default.extend(Qe__default.default);F__default.default.extend(Xe__default.default);F__default.default.extend(Ze__default.default);F__default.default.extend(et__default.default);F__default.default.extend(tt__default.default);F__default.default.extend(rt__default.default);F__default.default.extend(nt__default.default);var M=F__default.default;function pr(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function ur(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var fr=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function dr(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function H(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var Ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=Ce.snackCase(Ce.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function yr(t,e){return typeof t=="function"?t(e):t}var k=(t,e,r)=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),o=t;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},mr={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let o=k(r,e)?k(r,e):"",a=k(n,e)?k(r,e):"";return o<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let o=k(r,e)?k(r,e):"",a=k(n,e)?k(n,e):"";return o>a?1:-1}else return r>n?1:-1}))},gr=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?k(n,e)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function Rr(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function ot(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function Se(t,e){return ot([e??"undefined",t??"undefined"])}function Oe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function hr(t,e=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var se=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};function ue(t,e){let r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t===e||t==="-"||t===`-${e}`||new RegExp(`^-?\\d+${r}$`).test(t)||new RegExp(`^-?${r}\\d*$`).test(t)}function st(t,e=false,r="."){if(typeof t=="number")return !Number.isNaN(t);if(typeof t=="string"&&t.trim()!==""){let n=t.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||e&&ue(n,r))return true}return false}function Pe(t="",e=false,r="."){if(!st(t,!e,r))return null;let n=r==="."?t.trim():t.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var at=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 br(t){let e={};for(let r in t)at.has(r)&&(e[r]=t[r]);return e}function Tr(t,e=2){return t?t.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,e).join(""):""}function Dr(t=[]){let e=t.filter(Boolean);if(e.length===0)return ["",""];let r=e.map(M).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 xr(t,e){let r=M(t),n=M(e),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 Cr(t,e){if(!t?.trim()||!e?.trim())return "";if(t===e)return "0";let r=M(t,"HH:mm",true),n=M(e,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var Ar=(t=[],e="label",r="value",n,o=" | ")=>{if(!Array.isArray(t))return [[],[]];let a=t.map((c,l)=>{if(typeof c!="object"){let m=typeof e=="function"?e(c,l):c,y=typeof r=="function"?r(c,l):c;return {label:m,value:y,index:l,rowData:c}}else {let m=typeof e=="function"?e(c,l):k(c,e,""),y=typeof r=="function"?r(c,l):k(c,r,"");return {label:m,value:typeof y=="boolean"?y:y||"",index:l,rowData:c}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],s=new Map;for(let c of a){let l=c.rowData,m=i.map(D=>String(typeof l=="object"?k(l,D,"")??"":"")).join(o),y=s.get(m)||[];y.push(c),s.set(m,y);}return [Array.from(s.entries()).map(([c,l])=>({group:c,items:l})),a]};function it(t,e=""){let r=[];for(let n in t)if(t.hasOwnProperty(n)){let o=t[n],a=e?`${e}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!H(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(it(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Ae(t){if(t==="null")return null;if(Array.isArray(t))for(let e=0;e<t.length;e++)t[e]=Ae(t[e]);else if(t&&typeof t=="object")for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=Ae(t[e]));return t}var we=ie.createContext(void 0);function _(){let t=ie.useContext(we);return t||{}}var ut=({children:t,value:e})=>{let r={...e};return ie.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:o,object:a,isLocal:i}=e.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&M.locale(o,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(we.Provider,{value:r,children:t})};function fe(t,e){let r=qe__default.default.random(16),n=qe__default.default.random(16),o=ke__default.default(e,r,{keySize:256/32,iterations:1e3}),a=Ue__default.default.encrypt(JSON.stringify(t),o,{iv:n}).toString();return {salt:r.toString(ae__default.default),iv:n.toString(ae__default.default),encrypted:a}}function de(t,e){let{salt:r,iv:n,encrypted:o}=t,a=ke__default.default(e,ae__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=Ue__default.default.decrypt(o,a,{iv:ae__default.default.parse(n)}).toString(dt__default.default);return JSON.parse(s)}function ve(t,e){return JSON.stringify(fe(t,e))}function Ee(t,e){return de(JSON.parse(t),e)}function G(){let{passphrase:t}=_();return {passphrase:t,encrypt(e,r){return fe(e,r||t)},decrypt(e,r){return de(e,r||t)},encryptString(e,r){return ve(e,r||t)},decryptString(e,r){return Ee(e,r||t)}}}var Ne=()=>{let{encrypt:t,decrypt:e}=G(),r=ie.useCallback((i,s)=>{try{let c=t(s);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),n=ie.useCallback(i=>{try{let s=localStorage.getItem(i);return s?e(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[e]),o=i=>{let[s,c]=ie.useState(()=>{try{let l=localStorage.getItem(i);return l?e(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return ie.useEffect(()=>{let l=m=>{if(m.key===i)if(m.newValue)try{c(e(JSON.parse(m.newValue)));}catch(y){console.error("Decrypt error from storage event",y);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[i,e]),s},a=ie.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function Rt(t,e){for(let r in e){let n=t[r],o=e[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 Z={loading:false,response:void 0,isCancel:false},ee=zustand.create((t,e)=>({states:{},updateState:(r,n)=>{let o=e().states[r]??Z,a={...o,...n};Rt(o,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var me=new Map,Me=(t,e)=>{me.set(t,e);},$e=t=>{me.delete(t);},Ke=t=>me.get(t);function bt(...t){let[e,r,n]=t,o=e.__isVoid,a=e.__path||e.name,i=o?void 0:r,s=o?r:n,c=s?.storeName||`${a}`,l=s?.mergeStrategy??"replace",[m,y,D,S]=ee(shallow.useShallow(C=>{let d=C.states[c]??Z;return [d.loading,d.isCancel,d.response,C.updateState]})),{storageKey:U,cache:b,clearPreviousData:$,refetchOnWindowFocus:j}=_(),z=Ne(),v=ie.useRef(void 0),B=ie.useRef(null),{cacheName:W,cacheKey:I,timeout:re,timeoutUnit:ne,persistence:oe,cacheEnabled:Q}=ie.useMemo(()=>{let C=U?z.get(U):void 0,d=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,x=Se({...i,session:C},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),h=false;typeof b?.enabled=="boolean"&&(h=b.enabled);let A=false;typeof b?.persistence=="boolean"&&(A=b?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(A=s?.cache?.persistence??false);let w=60*5,E="s";return H(b?.timeout)&&(typeof b?.timeout=="number"?(w=b.timeout,E="s"):typeof b?.timeout=="object"&&(w=b?.timeout.value,E=b?.timeout.unit)),H(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?h=s.cache.enabled:h=true,typeof s?.cache?.timeout=="number"?(w=s.cache.timeout,E="s"):typeof s?.cache?.timeout=="object"&&(w=s.cache.timeout.value,E=s.cache.timeout.unit)):h=s.cache),{cacheName:d,cacheKey:x,timeout:w,timeoutUnit:E,persistence:A,cacheEnabled:h}},[s?.cache,i,U,b,a]);ie.useEffect(()=>{let C=JSON.stringify(H(v.current)?v.current:""),d=JSON.stringify(H(i)?i:""),x=v.current===void 0;(C!==d||x)&&!s?.hold&&((s?.clearPreviousData??$)&&S(c,{response:null}),p(),v.current=i),s?.onChange&&s?.onChange(i,q);},[i,s?.clearPreviousData,$,s?.hold,...s?.trigger||[]]),ie.useEffect(()=>{let C=async()=>{!oe&&W&&I&&(await caches.open(W)).delete(I);};return window.addEventListener("beforeunload",C),()=>{window.removeEventListener("beforeunload",C),B.current?.abort();}},[oe,W,I,c,B]);let p=ie.useCallback(async C=>{let d=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(d=s?.beforeRequest(i)),Q&&!C&&!y){s?.onBeforeRequest&&s?.onBeforeRequest(i);let x=await caches.open(W),A=await(await x.match(I))?.json();if(A){let{data:w,expired:E}=A;if(M().isAfter(E))await x.delete(I);else {s?.afterResponse&&w?.data&&(w.data=s?.afterResponse(w.data,d)),s?.logging&&console.log("After request: Using Cache",w),w?.status&&s?.onSuccess?.(w,d),s?.onAfterResponse?.(w,d),S(c,{loading:false,response:w});return}}}if(typeof e=="function"){B.current?.abort();let x=new AbortController;B.current=x,S(c,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let h=o?await e(void 0,{...s,signal:x.signal}):await e(d,void 0,{...s,signal:x.signal});if(h.__rawData=h.data,l==="append"&&H(D.__rawData)&&H(h?.data)){if(Array.isArray(D.__rawData)&&Array.isArray(h?.data)){let A=[...D?.__rawData??[],...h.data??[]];h.data=A,h.__rawData=A;}else if(typeof D.__rawData=="object"&&typeof h.data=="object"){let A={...D.__rawData,...h.data};h.data=A,h.__rawData=A;}}if(s?.afterResponse&&h?.data&&(h.data=s?.afterResponse(h.data,d)),s?.logging&&console.log("After request",h),h.status&&s?.onSuccess?.(h,d),h.status||s?.onError?.(h,d),s?.onAfterResponse?.(h,d),S(c,{loading:false,response:h,isCancel:false}),Q&&h.status){let A=M().add(re,ne).toISOString(),w={data:h,expired:A},E=await caches.open(W),L=new Response(JSON.stringify(w));await E.put(I,L);}}},[i,e,s,y,W,I,re,ne,Q,D]);ie.useEffect(()=>{if(s?.refreshInterval){let C=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,d=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,x=setInterval(()=>{p();},M.duration(C,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[s?.refreshInterval,p]);let R=ie.useRef(null),{enabledRefetch:u,timeoutRefetch:T,timeoutUnitRefetch:g}=ie.useMemo(()=>{let C=s?.refetchOnWindowFocus?.enabled??j?.enabled??false,d=s?.refetchOnWindowFocus?.timeout??j?.timeout,x=typeof d=="number"?d:d?.value??60*5,h=typeof d=="object"?d.unit:"s";return {enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:h}},[s?.refetchOnWindowFocus,j]);ie.useEffect(()=>{if(!u||s?.hold)return;let C=M.duration(T,g).asMilliseconds(),d=()=>{let h=Date.now(),A=R.current;A!==null&&h-A>=C&&p(),R.current=null;},x=()=>{R.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",x);}},[u,T,g,p,s?.hold]);let O=ie.useCallback(()=>{B.current?.abort(),B.current=null,S(c,{loading:false,isCancel:true});},[c,B]),f=ie.useCallback(()=>{S(c,{loading:false,response:null});},[c]),q=ie.useMemo(()=>({...D,loading:m,refresh:p,abort:O,clear:f,response:D,isCancel:y,clone:(C,d)=>bt(e,C,{storeName:`${a}-clone`,...d})}),[D,m,p,O,f,y,e]);return ie.useEffect(()=>(Me(c,q),()=>{$e(c);}),[q,c]),[D?.data,q]}async function rn(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Tt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Tt||{}),Dt=(p=>(p.number="number",p.currency="currency",p.percent="percent",p.date="date",p.dateTime="dateTime",p.month="month",p.year="year",p.time="time",p.timestamp="timestamp",p.string="string",p.textarea="textarea",p.code="code",p.password="password",p.boolean="boolean",p.toggle="toggle",p.email="email",p.phone="phone",p.url="url",p.json="json",p.file="file",p.image="image",p.array="array",p.object="object",p.enum="enum",p.user="user",p.department="department",p.status="status",p))(Dt||{});var cn=()=>{let{format:t}=_();return (e,r,n)=>{try{return r==="number"?Fe(e,{thouSep:t.number.thouSep,decDigits:t.number.decDigits,decSep:t.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?At(e,{display:t[r]?.display,value:t[r]?.value,...n}):r==="boolean"?xt(e,n):r==="string"?Ct(e,n):e?.toString()}catch{return}}};function xt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",o=e?.falseLabel??"No";return r?n:o}function Ct(t,e){if(!H(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Oe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}Fe(10,{thouSep:",",decSep:".",decDigits:2});function Fe(t,{thouSep:e,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let y=String(t??"").trim().trim();if(ue(y,r))return y}if(t==null||isNaN(Number(t)))return "";let i=typeof t=="string"?parseFloat(t):t;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(),y=m.indexOf(".");y!==-1&&(s=m.length-y-1);}let c={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",c).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function At(t,{display:e,value:r}){if(!H(t))return t;let n=M(t,r);return n.isValid()?n.format(e):t}function fn(t,{interval:e,lead:r}){let n=ie.useRef(null);ie.useEffect(()=>{n.current=t;},[t]),ie.useEffect(()=>{let o=()=>n.current();if(r&&o(),e!==null){let a=setInterval(o,e);return ()=>clearInterval(a)}},[e]);}function mn(t,e,r){let[n,o]=ie.useState(false),a=(l,m)=>typeof t=="string"&&l===t||typeof t=="number"&&m===t,i=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),s=l=>{let{key:m,keyCode:y}=l,D=l.ctrlKey,S=l.altKey,U=l.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(m,y)&&(e==="ctrl"&&D||e==="alt"&&S||e==="shift"&&U)&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));else {let b=e.every($=>$==="ctrl"?D:$==="alt"?S:$==="shift"?U:false);a(m,y)&&b&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));}else a(m,y)&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));},c=({key:l,keyCode:m})=>{a(l,m)&&o(false);};return ie.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",c);}),[]),n}var Cn=({url:t,token:e,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:y,passphrase:D})=>{let{encrypt:S,decrypt:U,passphrase:b}=G(),$=wt__default.default.create({baseURL:`${t}`,headers:{"Content-Type":"application/json",...o}}),j=(p,R,u,T)=>{let g=T?.code==="ERR_CANCELED",O=p?.status===401,f=p?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:y)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?b:u.passphrase:D;try{f=U(f,A);}catch{try{f=U(f,b);}catch{}}}let d={...n({...p,data:f,isCancel:g,isUnauthorization:O},T),isCancel:g,isUnauthorization:O,httpCode:p?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,h=s?s(d,u):!O;if((u?.infoSuccess&&d.status||u?.infoError&&!d.status)&&i&&(!g||!x)&&i(d),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||a;A&&A(d);}if(typeof R=="function")R(d);else return d},z=(p,R=()=>{})=>$({...p,withCredentials:typeof p.withCredentials=="boolean"?p.withCredentials:l}).then(R).catch(u=>R(u.response,u)),v=(p,R,u,T,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},q={...f.headers};if(f.token&&(typeof f.token=="boolean"?e&&(q.Authorization=`Bearer ${e}`):f.token&&(q.Authorization=`Bearer ${f.token}`)),r&&(u=r(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:m)&&u){let d=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?b:g.passphrase:D;u=S(u,d);}return z({url:R,method:p,data:u,headers:q,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:d=>{f?.onUploadProgress&&f?.onUploadProgress(d);}},(d,x)=>j(d,T,f,x))};return {client:z,post:(p,R,u,T)=>v("POST",`${p}`,R,u,T),put:(p,R,u,T)=>v("PUT",`${p}`,R,u,T),patch:(p,R,u,T)=>v("PATCH",`${p}`,R,u,T),delete:(p,R,u)=>v("DELETE",`${p}`,null,R,u),get:(p,R,u)=>v("GET",`${p}`,null,R,u),upload:(p,R,u,T)=>{let g=new FormData;return Object.keys(R).forEach(O=>g.append(O,R[O])),v("POST",`${p}`,g,u,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(p,R,u,T,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},q={"Content-Type":"application/json",...o,...f.headers};if(f.token){let P=typeof f.token=="boolean"?e:f.token;P&&(q.Authorization=`Bearer ${P}`);}let C=u;if(r&&(C=r(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:m)&&C){let P=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?b:f.passphrase:D;C=S(C,P);}let x=await fetch(`${t}${R}`,{method:p,headers:q,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let P=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:y)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?b:g.passphrase:D;try{u=U(J,pe);}catch{try{u=U(J,b);}catch{}}}P=J?.message||P;}catch{P=N;}else P=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:c,K={status:!1,data:void 0,message:P,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&i&&!Y&&i(K),T(K);return}let w=x.body.getReader(),E=new TextDecoder("utf-8"),L="",X=!1;for(;!X;){let{done:P,value:Y}=await w.read();X=P,L+=E.decode(Y,{stream:!0});let K=L.split(`
|
|
1
|
+
'use strict';var ie=require('react'),L=require('dayjs'),Ye=require('dayjs/plugin/utc'),Je=require('dayjs/plugin/timezone'),Ge=require('dayjs/plugin/duration'),Qe=require('dayjs/plugin/advancedFormat'),Xe=require('dayjs/plugin/localizedFormat'),Ze=require('dayjs/plugin/relativeTime'),et=require('dayjs/plugin/isSameOrBefore'),tt=require('dayjs/plugin/isSameOrAfter'),rt=require('dayjs/plugin/weekOfYear'),nt=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ue=require('crypto-js/aes'),ke=require('crypto-js/pbkdf2'),dt=require('crypto-js/enc-utf8'),ae=require('crypto-js/enc-base64'),qe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),wt=require('axios'),Jt=require('dexie');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ie__default=/*#__PURE__*/_interopDefault(ie);var L__default=/*#__PURE__*/_interopDefault(L);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Je__default=/*#__PURE__*/_interopDefault(Je);var Ge__default=/*#__PURE__*/_interopDefault(Ge);var Qe__default=/*#__PURE__*/_interopDefault(Qe);var Xe__default=/*#__PURE__*/_interopDefault(Xe);var Ze__default=/*#__PURE__*/_interopDefault(Ze);var et__default=/*#__PURE__*/_interopDefault(et);var tt__default=/*#__PURE__*/_interopDefault(tt);var rt__default=/*#__PURE__*/_interopDefault(rt);var nt__default=/*#__PURE__*/_interopDefault(nt);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ke__default=/*#__PURE__*/_interopDefault(ke);var dt__default=/*#__PURE__*/_interopDefault(dt);var ae__default=/*#__PURE__*/_interopDefault(ae);var qe__default=/*#__PURE__*/_interopDefault(qe);var wt__default=/*#__PURE__*/_interopDefault(wt);var Jt__default=/*#__PURE__*/_interopDefault(Jt);L__default.default.extend(Ye__default.default);L__default.default.extend(Je__default.default);L__default.default.extend(Ge__default.default);L__default.default.extend(Qe__default.default);L__default.default.extend(Xe__default.default);L__default.default.extend(Ze__default.default);L__default.default.extend(et__default.default);L__default.default.extend(tt__default.default);L__default.default.extend(rt__default.default);L__default.default.extend(nt__default.default);var M=L__default.default;function pr(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function ur(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var fr=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function dr(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function F(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var Ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=Ce.snackCase(Ce.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function yr(t,e){return typeof t=="function"?t(e):t}var k=(t,e,r)=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of n){if(s==null)return r;s=s[a];}return s===void 0?r:s},mr={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=k(r,e)?k(r,e):"",a=k(n,e)?k(r,e):"";return s<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=k(r,e)?k(r,e):"",a=k(n,e)?k(n,e):"";return s>a?1:-1}else return r>n?1:-1}))},gr=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?k(n,e)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function Rr(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function ot(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((s,a)=>(s[a]=n[a],s),{})):n})??""}function Se(t,e){return ot([e??"undefined",t??"undefined"])}function Pe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function hr(t,e=0){let r,n=function(...s){clearTimeout(r),r=setTimeout(()=>{t(...s);},e*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var se=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};function ue(t,e){let r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t===e||t==="-"||t===`-${e}`||new RegExp(`^-?\\d+${r}$`).test(t)||new RegExp(`^-?${r}\\d*$`).test(t)}function st(t,e=false,r="."){if(typeof t=="number")return !Number.isNaN(t);if(typeof t=="string"&&t.trim()!==""){let n=t.trim(),s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${s}\\d+)?|\\${s}\\d+)$`).test(n)||e&&ue(n,r))return true}return false}function Oe(t="",e=false,r="."){if(!st(t,!e,r))return null;let n=r==="."?t.trim():t.trim().replace(r,"."),s=Number(n);return Number.isNaN(s)?null:s}var at=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 br(t){let e={};for(let r in t)at.has(r)&&(e[r]=t[r]);return e}function Tr(t,e=2){return t?t.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,e).join(""):""}function Dr(t=[]){let e=t.filter(Boolean);if(e.length===0)return ["",""];let r=e.map(M).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 xr(t,e){let r=M(t),n=M(e),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 Cr(t,e){if(!t?.trim()||!e?.trim())return "";if(t===e)return "0";let r=M(t,"HH:mm",true),n=M(e,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let s=n.diff(r,"minutes");return s<=0&&(s+=24*60),s.toString()}var Ar=(t=[],e="label",r="value",n,s=" | ")=>{if(!Array.isArray(t))return [[],[]];let a=t.map((l,p)=>{if(typeof l!="object"){let d=typeof e=="function"?e(l,p):l,b=typeof r=="function"?r(l,p):l;return {label:d,value:b,index:p,rowData:l}}else {let d=typeof e=="function"?e(l,p):k(l,e,""),b=typeof r=="function"?r(l,p):k(l,r,"");return {label:d,value:typeof b=="boolean"?b:b||"",index:p,rowData:l}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],o=new Map;for(let l of a){let p=l.rowData,d=i.map(y=>String(typeof p=="object"?k(p,y,"")??"":"")).join(s),b=o.get(d)||[];b.push(l),o.set(d,b);}return [Array.from(o.entries()).map(([l,p])=>({group:l,items:p})),a]};function it(t,e=""){let r=[];for(let n in t)if(t.hasOwnProperty(n)){let s=t[n],a=e?`${e}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!F(s))continue;Array.isArray(s)?s.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof s=="object"&&s!==null?r.push(it(s,a)):r.push(`${a}=${encodeURIComponent(s)}`);}return r.join("&")}function Ae(t){if(t==="null")return null;if(Array.isArray(t))for(let e=0;e<t.length;e++)t[e]=Ae(t[e]);else if(t&&typeof t=="object")for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=Ae(t[e]));return t}var we=ie.createContext(void 0);function _(){let t=ie.useContext(we);return t||{}}var ut=({children:t,value:e})=>{let r={...e};return ie.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(we.Provider,{value:r,children:t})};function fe(t,e){let r=qe__default.default.random(16),n=qe__default.default.random(16),s=ke__default.default(e,r,{keySize:256/32,iterations:1e3}),a=Ue__default.default.encrypt(JSON.stringify(t),s,{iv:n}).toString();return {salt:r.toString(ae__default.default),iv:n.toString(ae__default.default),encrypted:a}}function de(t,e){let{salt:r,iv:n,encrypted:s}=t,a=ke__default.default(e,ae__default.default.parse(r),{keySize:256/32,iterations:1e3}),o=Ue__default.default.decrypt(s,a,{iv:ae__default.default.parse(n)}).toString(dt__default.default);return JSON.parse(o)}function ve(t,e){return JSON.stringify(fe(t,e))}function Ee(t,e){return de(JSON.parse(t),e)}function G(){let{passphrase:t}=_();return {passphrase:t,encrypt(e,r){return fe(e,r||t)},decrypt(e,r){return de(e,r||t)},encryptString(e,r){return ve(e,r||t)},decryptString(e,r){return Ee(e,r||t)}}}var Ne=()=>{let{encrypt:t,decrypt:e}=G(),r=ie.useCallback((i,o)=>{try{let l=t(o);localStorage.setItem(i,JSON.stringify(l));}catch(l){console.error("Failed to save to storage:",l);}},[t]),n=ie.useCallback(i=>{try{let o=localStorage.getItem(i);return o?e(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[e]),s=i=>{let[o,l]=ie.useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return ie.useEffect(()=>{let p=d=>{if(d.key===i)if(d.newValue)try{l(e(JSON.parse(d.newValue)));}catch(b){console.error("Decrypt error from storage event",b);}else l(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),o},a=ie.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:s}};function Rt(t,e){for(let r in e){let n=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(s);if(a!==i)return false}else if(n!==s)return false}return true}var Z={loading:false,response:void 0,isCancel:false},ee=zustand.create((t,e)=>({states:{},updateState:(r,n)=>{let s=e().states[r]??Z,a={...s,...n};Rt(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var me=new Map,Me=(t,e)=>{me.set(t,e);},$e=t=>{me.delete(t);},Ke=t=>me.get(t);function bt(...t){let[e,r,n]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,o=s?r:n,l=o?.storeName||`${a}`,p=o?.mergeStrategy??"replace",[d,b,y,S]=ee(shallow.useShallow(C=>{let m=C.states[l]??Z;return [m.loading,m.isCancel,m.response,C.updateState]})),{storageKey:w,cache:T,clearPreviousData:$,refetchOnWindowFocus:j}=_(),z=Ne(),v=ie.useRef(void 0),B=ie.useRef(null),{cacheName:W,cacheKey:I,timeout:re,timeoutUnit:ne,persistence:oe,cacheEnabled:Q}=ie.useMemo(()=>{let C=w?z.get(w):void 0,m=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,x=Se({...i,session:C},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),h=false;typeof T?.enabled=="boolean"&&(h=T.enabled);let A=false;typeof T?.persistence=="boolean"&&(A=T?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(A=o?.cache?.persistence??false);let q=60*5,E="s";return F(T?.timeout)&&(typeof T?.timeout=="number"?(q=T.timeout,E="s"):typeof T?.timeout=="object"&&(q=T?.timeout.value,E=T?.timeout.unit)),F(o?.cache)&&(typeof o?.cache!="boolean"?(typeof o?.cache?.enabled=="boolean"?h=o.cache.enabled:h=true,typeof o?.cache?.timeout=="number"?(q=o.cache.timeout,E="s"):typeof o?.cache?.timeout=="object"&&(q=o.cache.timeout.value,E=o.cache.timeout.unit)):h=o.cache),{cacheName:m,cacheKey:x,timeout:q,timeoutUnit:E,persistence:A,cacheEnabled:h}},[o?.cache,i,w,T,a]);ie.useEffect(()=>{let C=JSON.stringify(F(v.current)?v.current:""),m=JSON.stringify(F(i)?i:""),x=v.current===void 0;(C!==m||x)&&!o?.hold&&((o?.clearPreviousData??$)&&S(l,{response:null}),c(),v.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,$,o?.hold,...o?.trigger||[]]),ie.useEffect(()=>{let C=async()=>{!oe&&W&&I&&(await caches.open(W)).delete(I);};return window.addEventListener("beforeunload",C),()=>{window.removeEventListener("beforeunload",C),B.current?.abort();}},[oe,W,I,l,B]);let c=ie.useCallback(async C=>{let m=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(m=o?.beforeRequest(i)),Q&&!C&&!b){o?.onBeforeRequest&&o?.onBeforeRequest(i);let x=await caches.open(W),A=await(await x.match(I))?.json();if(A){let{data:q,expired:E}=A;if(M().isAfter(E))await x.delete(I);else {o?.afterResponse&&q?.data&&(q.data=o?.afterResponse(q.data,m)),o?.logging&&console.log("After request: Using Cache",q),q?.status&&o?.onSuccess?.(q,m),o?.onAfterResponse?.(q,m),S(l,{loading:false,response:q});return}}}if(typeof e=="function"){B.current?.abort();let x=new AbortController;B.current=x,S(l,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let h=s?await e(void 0,{...o,signal:x.signal}):await e(m,void 0,{...o,signal:x.signal});if(h.__rawData=h.data,p==="append"&&F(y.__rawData)&&F(h?.data)){if(Array.isArray(y.__rawData)&&Array.isArray(h?.data)){let A=[...y?.__rawData??[],...h.data??[]];h.data=A,h.__rawData=A;}else if(typeof y.__rawData=="object"&&typeof h.data=="object"){let A={...y.__rawData,...h.data};h.data=A,h.__rawData=A;}}if(o?.afterResponse&&h?.data&&(h.data=o?.afterResponse(h.data,m)),o?.logging&&console.log("After request",h),h.status&&o?.onSuccess?.(h,m),h.status||o?.onError?.(h,m),o?.onAfterResponse?.(h,m),S(l,{loading:false,response:h,isCancel:false}),Q&&h.status){let A=M().add(re,ne).toISOString(),q={data:h,expired:A},E=await caches.open(W),H=new Response(JSON.stringify(q));await E.put(I,H);}}},[i,e,o,b,W,I,re,ne,Q,y]);ie.useEffect(()=>{if(o?.refreshInterval){let C=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,m=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,x=setInterval(()=>{c();},M.duration(C,m).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[o?.refreshInterval,c]);let R=ie.useRef(null),{enabledRefetch:u,timeoutRefetch:D,timeoutUnitRefetch:g}=ie.useMemo(()=>{let C=o?.refetchOnWindowFocus?.enabled??j?.enabled??false,m=o?.refetchOnWindowFocus?.timeout??j?.timeout,x=typeof m=="number"?m:m?.value??60*5,h=typeof m=="object"?m.unit:"s";return {enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:h}},[o?.refetchOnWindowFocus,j]);ie.useEffect(()=>{if(!u||o?.hold)return;let C=M.duration(D,g).asMilliseconds(),m=()=>{let h=Date.now(),A=R.current;A!==null&&h-A>=C&&c(),R.current=null;},x=()=>{R.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",x);}},[u,D,g,c,o?.hold]);let P=ie.useCallback(()=>{B.current?.abort(),B.current=null,S(l,{loading:false,isCancel:true});},[l,B]),f=ie.useCallback(()=>{S(l,{loading:false,response:null});},[l]),U=ie.useMemo(()=>({...y,loading:d,refresh:c,abort:P,clear:f,response:y,isCancel:b,clone:(C,m)=>bt(e,C,{storeName:`${a}-clone`,...m})}),[y,d,c,P,f,b,e]);return ie.useEffect(()=>(Me(l,U),()=>{$e(l);}),[U,l]),[y?.data,U]}async function rn(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Tt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Tt||{}),Dt=(c=>(c.number="number",c.currency="currency",c.percent="percent",c.date="date",c.dateTime="dateTime",c.month="month",c.year="year",c.time="time",c.timestamp="timestamp",c.string="string",c.textarea="textarea",c.code="code",c.password="password",c.boolean="boolean",c.toggle="toggle",c.email="email",c.phone="phone",c.url="url",c.json="json",c.file="file",c.image="image",c.array="array",c.object="object",c.enum="enum",c.user="user",c.department="department",c.status="status",c))(Dt||{});var cn=()=>{let{format:t}=_();return (e,r,n)=>{try{return r==="number"?Le(e,{thouSep:t.number.thouSep,decDigits:t.number.decDigits,decSep:t.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===r)?At(e,{display:t[r]?.display,value:t[r]?.value,...n}):r==="boolean"?xt(e,n):r==="string"?Ct(e,n):e?.toString()}catch{return}}};function xt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?n:s}function Ct(t,e){if(!F(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Pe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}Le(10,{thouSep:",",decSep:".",decDigits:2});function Le(t,{thouSep:e,decSep:r,decDigits:n,method:s,dirty:a}){if(a){let b=String(t??"").trim().trim();if(ue(b,r))return b}if(t==null||isNaN(Number(t)))return "";let i=typeof t=="string"?parseFloat(t):t;if(s)if(typeof n=="number"){let d=Math.pow(10,n);i=Math[s](i*d)/d;}else i=Math[s](i);else if(typeof n=="number"){let d=Math.pow(10,n);i=Math.trunc(i*d)/d;}let o=0;if(n==="auto"){let d=i.toString(),b=d.indexOf(".");b!==-1&&(o=d.length-b-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function At(t,{display:e,value:r}){if(!F(t))return t;let n=M(t,r);return n.isValid()?n.format(e):t}function fn(t,{interval:e,lead:r}){let n=ie.useRef(null);ie.useEffect(()=>{n.current=t;},[t]),ie.useEffect(()=>{let s=()=>n.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function mn(t,e,r){let[n,s]=ie.useState(false),a=(p,d)=>typeof t=="string"&&p===t||typeof t=="number"&&d===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),o=p=>{let{key:d,keyCode:b}=p,y=p.ctrlKey,S=p.altKey,w=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(d,b)&&(e==="ctrl"&&y||e==="alt"&&S||e==="shift"&&w)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let T=e.every($=>$==="ctrl"?y:$==="alt"?S:$==="shift"?w:false);a(d,b)&&T&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));}else a(d,b)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));},l=({key:p,keyCode:d})=>{a(p,d)&&s(false);};return ie.useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",l),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",l);}),[]),n}var Cn=({url:t,token:e,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:l,withCredentials:p,encryptRequest:d,encryptResponse:b,passphrase:y})=>{let{encrypt:S,decrypt:w,passphrase:T}=G(),$=wt__default.default.create({baseURL:`${t}`,headers:{"Content-Type":"application/json",...s}}),j=(c,R,u,D)=>{let g=D?.code==="ERR_CANCELED",P=c?.status===401,f=c?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:b)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?T:u.passphrase:y;try{f=w(f,A);}catch{try{f=w(f,T);}catch{}}}let m={...n({...c,data:f,isCancel:g,isUnauthorization:P},D),isCancel:g,isUnauthorization:P,httpCode:c?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:l,h=o?o(m,u):!P;if((u?.infoSuccess&&m.status||u?.infoError&&!m.status)&&i&&(!g||!x)&&i(m),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||a;A&&A(m);}if(typeof R=="function")R(m);else return m},z=(c,R=()=>{})=>$({...c,withCredentials:typeof c.withCredentials=="boolean"?c.withCredentials:p}).then(R).catch(u=>R(u.response,u)),v=(c,R,u,D,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},U={...f.headers};if(f.token&&(typeof f.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):f.token&&(U.Authorization=`Bearer ${f.token}`)),r&&(u=r(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:d)&&u){let m=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?T:g.passphrase:y;u=S(u,m);}return z({url:R,method:c,data:u,headers:U,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:m=>{f?.onUploadProgress&&f?.onUploadProgress(m);}},(m,x)=>j(m,D,f,x))};return {client:z,post:(c,R,u,D)=>v("POST",`${c}`,R,u,D),put:(c,R,u,D)=>v("PUT",`${c}`,R,u,D),patch:(c,R,u,D)=>v("PATCH",`${c}`,R,u,D),delete:(c,R,u)=>v("DELETE",`${c}`,null,R,u),get:(c,R,u)=>v("GET",`${c}`,null,R,u),upload:(c,R,u,D)=>{let g=new FormData;return Object.keys(R).forEach(P=>g.append(P,R[P])),v("POST",`${c}`,g,u,{infoSuccess:false,...D,headers:{"Content-Type":"multipart/form-data",...D?.headers}})},stream:async(c,R,u,D,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},U={"Content-Type":"application/json",...s,...f.headers};if(f.token){let O=typeof f.token=="boolean"?e:f.token;O&&(U.Authorization=`Bearer ${O}`);}let C=u;if(r&&(C=r(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:d)&&C){let O=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?T:f.passphrase:y;C=S(C,O);}let x=await fetch(`${t}${R}`,{method:c,headers:U,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let O=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:b)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?T:g.passphrase:y;try{u=w(J,pe);}catch{try{u=w(J,T);}catch{}}}O=J?.message||O;}catch{O=N;}else O=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:l,K={status:!1,data:void 0,message:O,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&i&&!Y&&i(K),D(K);return}let q=x.body.getReader(),E=new TextDecoder("utf-8"),H="",X=!1;for(;!X;){let{done:O,value:Y}=await q.read();X=O,H+=E.decode(Y,{stream:!0});let K=H.split(`
|
|
2
2
|
|
|
3
|
-
`);L=K.pop();for(let V of K)if(V.startsWith("data:"))try{let N=se(V);T({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!1});}catch{}}T({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0});}catch(O){let f=O?.name==="AbortError";T({status:false,data:void 0,message:O instanceof Error?O.message:"Internal Server Error",isCancel:f,isUnauthorization:false,httpCode:400,isDone:true});}}}};function On(t,e){let[r,n]=ie.useState(false),[o,a]=ie.useState(),[i,s]=ie.useState(0),c=ie.useRef(null);return ie.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async D=>{c.current?.abort();let S=new AbortController;c.current=S,n(true),e?.beforeRequest&&(D=e?.beforeRequest(D)),e?.logging&&console.log("Before request",D),e?.onBeforeRequest&&e?.onBeforeRequest(D);let U={...e,signal:S.signal,onUploadProgress:$=>{let j=Math.round($.loaded*100/($.total||1));s(j);}},b=t.__isVoid?await t(void 0,U):await t(D,void 0,U);e?.logging&&console.log("After response",b),a(b),n(false),s(0),e?.afterResponse&&b?.data&&(b.data=e?.afterResponse(b.data,D)),b.status&&e?.onSuccess&&e?.onSuccess(b,D),!b.status&&e?.onError&&e?.onError(b,D),e?.onAfterResponse?.(b,D);},{...o,loading:r,abort:()=>{c.current?.abort(),c.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function kt(t,e){let{disableHysteresis:r=false,threshold:n=100,target:o}=e,a=t.current;return o&&(typeof o.pageYOffset=="number"?t.current=o.pageYOffset:o.scrollTop!==void 0&&(t.current=o.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>n}var vt=typeof window<"u"?window:null;function qn(t={}){let{getTrigger:e=kt,target:r=vt,disableHysteresis:n=false,threshold:o=100}=t,a=ie__default.default.useRef(0),[i,s]=ie__default.default.useState(()=>e(a,{disableHysteresis:n,threshold:o,target:r}));return ie__default.default.useEffect(()=>{let c=()=>{s(e(a,{disableHysteresis:n,threshold:o,target:r}));};if(c(),r)return r.addEventListener("scroll",c,{passive:true}),()=>{r.removeEventListener("scroll",c);}},[r,e,n,o]),i}function vn(t,e){let r,n;typeof e=="number"?(r=e,n=void 0):(r=e?.delay??500,n=e?.onDebounce);let[o,a]=ie.useState(t);return ie.useEffect(()=>{let i=setTimeout(()=>{a(t),n&&n(t);},r);return ()=>clearTimeout(i)},[t,r,n]),o}var Hn=(t,e)=>{let r=t.__path||t.name,n=e?.storeName||`${r}`,o=e?.shallow??true,{refresh:a,abort:i,clear:s,clone:c}=Ke(n)||{},l=U=>{let b=U.states[n]??Z;return {loading:b.loading,isCancel:b.isCancel,response:b.response}},{loading:m,isCancel:y,response:D}=o?ee(shallow.useShallow(l)):ee(l),S=ie.useMemo(()=>[D?.data,{...D,loading:m,isCancel:y,refresh:a,abort:i,clear:s,clone:c}],[D,m,y,a,i,s,c]);return e?.selector?e.selector(S):S};var Bn=(t,e)=>{let r=n=>t(n);return r.displayName=e,r},Le=(t,e)=>{let r=false;return ie__default.default.Children.forEach(t,n=>{if(ie__default.default.isValidElement(n)){let o=n,a=n.type.displayName;(e.includes(a)||o.props?.children&&Le(o.props.children,e))&&(r=true);}}),r},In=(t,e)=>{let r={others:[]},n=o=>{ie__default.default.Children.forEach(o,a=>{if(ie__default.default.isValidElement(a)){let i=a.type.displayName,s=a,c=s.props?.children;e.includes(i)?r[i]=a:c&&Le(c,e)?n(s.props.children):r.others.push(a);}else r.others.push(a);});};return n(t),r};function zn(){let{format:t}=_();return (e="",r=false)=>Pe(e,r,t.number.decSep)}function Gn(t,e){let r=ie.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0});return ie.useEffect(()=>{if(!t)return;let n=()=>{let a=t.getBoundingClientRect();r.current={width:a.width,height:a.height,top:a.top,left:a.left,right:a.right,bottom:a.bottom},e&&e(r.current);};n();let o=new ResizeObserver(()=>n());return o.observe(t),()=>o.disconnect()},[t,e]),r}var xe={};function eo(t,e){let[r,n]=ie.useState(false),[o,a]=ie.useState(),[i,s]=ie.useState();return ie.useEffect(()=>{if(!t)return;if(xe[t]){s(()=>xe[t]);return}n(true),(async()=>{try{let l=await import(`${e.path}${t}${e.extension??".svg?react"}`);xe[t]=l.default,s(()=>l.default);}catch(l){a(l),console.error(l);}finally{n(false);}})();},[t,e.path,e.extension]),{error:o,loading:r,Icon:i}}function no(t){let e=t,r=new Set;function n(){return e}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?e=s(e):e=s,r.forEach(c=>c());}function i(s){let c=ie.useRef(s?s(e):e);return ie.useSyncExternalStore(o,()=>{let l=s?s(e):e,m=c.current;return Object.is(m,l)||(c.current=l),c.current},()=>s?s(e):e)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function je(t,e){!t||typeof t!="object"||Object.keys(t).forEach(r=>{let n=t[r],o=e?`${e}.${r}`:r;if(typeof n=="function"){try{Object.defineProperty(n,"__path",{value:o,writable:!0,enumerable:!1,configurable:!0});}catch{n.__path=o;}try{Object.defineProperty(n,"__isVoid",{value:n.length===2,writable:!0,enumerable:!1,configurable:!0});}catch{n.__isVoid=n.length===2;}}else n&&typeof n=="object"&&je(n,o);});}function so(t){let e={};for(let r in t){let n=t[r];e[r]=(...o)=>{let a=n(...o);return je(a,r),a};}return e}function lo(t,e){let[r,n]=ie.useState(false),[o,a]=ie.useState([]),i=ie.useRef([]),s=ie.useRef(null);ie.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let c=async y=>{s.current?.abort();let D=new AbortController;s.current=D,n(true),a([]),i.current=[],t(y,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(n(false),e?.onDone&&e?.onDone([...i.current])),S.status?e?.onStream&&e?.onStream(S):e?.onError&&e?.onError(S);},{signal:D.signal});},l=()=>{s.current?.abort(),s.current=null,n(false);},m=()=>{n(false),a([]),i.current=[];};return [o.map(y=>y.data),c,{loading:r,abort:l,reset:m,response:o}]}function fo(t,e){let{key:r}=e,[n,o]=ie.useState();return ie.useEffect(()=>{let a=Jt.liveQuery(()=>t(r)).subscribe(o);return ()=>a.unsubscribe()},[r]),n}function Ro(t,e){let{key:r}=e,[n,o]=ie.useState(false);return ie.useEffect(()=>{let a=Jt.liveQuery(async()=>!!await t(r)).subscribe(i=>{o(s=>s!==i?i:s);});return ()=>a.unsubscribe()},[r]),n}var le,ce={};function Do({dbName:t,version:e=1,table:r}){return le||(le=new Jt__default.default(t),e=Object.keys(ce).length+1,le.version(e).stores(ce)),r}function xo({name:t,primaryKey:e}){ce[t]||(ce[t]=e);let r=()=>{let l=le.table(t);if(!l)throw new Error(`Table ${t} is not registered in Dexie`);return l};return {table:r,create:async c=>await r().add(c),update:async(c,l)=>await r().update(c,l),put:async(c,l)=>await r().put({...l,[e]:c}),detail:async c=>await r().get(c),remove:async c=>await r().delete(c)}}var Uo=()=>{let{encrypt:t,decrypt:e,passphrase:r}=G();return ({url:n,token:o,beforeRequest:a,onCallback:i,headers:s,onUnauthorized:c,handleToast:l,handleAuthorization:m,disabledToastWhenCancel:y,withCredentials:D,encryptRequest:S,encryptResponse:U,passphrase:b})=>{let $=wt__default.default.create({baseURL:`${n}`,headers:{"Content-Type":"application/json",...s}}),j=(p,R,u,T)=>{let g=T?.code==="ERR_CANCELED",O=p?.status===401,f=p?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:U)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?r:u.passphrase:b;try{f=e(f,A);}catch{try{f=e(f,r);}catch{}}}let d={...i({...p,data:f,isCancel:g,isUnauthorization:O},T),isCancel:g,isUnauthorization:O,httpCode:p?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:y,h=m?m(d,u):!O;if((u?.infoSuccess&&d.status||u?.infoError&&!d.status)&&l&&(!g||!x)&&l(d),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||c;A&&A(d);}if(typeof R=="function")R(d);else return d},z=(p,R=()=>{})=>$({...p,withCredentials:typeof p.withCredentials=="boolean"?p.withCredentials:D}).then(R).catch(u=>R(u.response,u)),v=(p,R,u,T,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},q={...f.headers};if(f.token&&(typeof f.token=="boolean"?o&&(q.Authorization=`Bearer ${o}`):f.token&&(q.Authorization=`Bearer ${f.token}`)),a&&(u=a(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:S)&&u){let d=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:b;u=t(u,d);}return z({url:R,method:p,data:u,headers:q,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:d=>{f?.onUploadProgress&&f?.onUploadProgress(d);}},(d,x)=>j(d,T,f,x))};return {client:z,post:(p,R,u,T)=>v("POST",`${p}`,R,u,T),put:(p,R,u,T)=>v("PUT",`${p}`,R,u,T),patch:(p,R,u,T)=>v("PATCH",`${p}`,R,u,T),delete:(p,R,u)=>v("DELETE",`${p}`,null,R,u),get:(p,R,u)=>v("GET",`${p}`,null,R,u),upload:(p,R,u,T)=>{let g=new FormData;return Object.keys(R).forEach(O=>g.append(O,R[O])),v("POST",`${p}`,g,u,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(p,R,u,T,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},q={"Content-Type":"application/json",...s,...f.headers};if(f.token){let P=typeof f.token=="boolean"?o:f.token;P&&(q.Authorization=`Bearer ${P}`);}let C=u;if(a&&(C=a(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:S)&&C){let P=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?r:f.passphrase:b;C=t(C,P);}let x=await fetch(`${n}${R}`,{method:p,headers:q,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let P=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:U)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:b;try{u=e(J,pe);}catch{try{u=e(J,r);}catch{}}}P=J?.message||P;}catch{P=N;}else P=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:y,K={status:!1,data:void 0,message:P,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&l&&!Y&&l(K),T(K);return}let w=x.body.getReader(),E=new TextDecoder("utf-8"),L="",X=!1;for(;!X;){let{done:P,value:Y}=await w.read();X=P,L+=E.decode(Y,{stream:!0});let K=L.split(`
|
|
3
|
+
`);H=K.pop();for(let V of K)if(V.startsWith("data:"))try{let N=se(V);D({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!1});}catch{}}D({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0});}catch(P){let f=P?.name==="AbortError";D({status:false,data:void 0,message:P instanceof Error?P.message:"Internal Server Error",isCancel:f,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Pn(t,e){let[r,n]=ie.useState(false),[s,a]=ie.useState(),[i,o]=ie.useState(0),l=ie.useRef(null);return ie.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{l.current?.abort();}},[]),[async y=>{l.current?.abort();let S=new AbortController;l.current=S,n(true),e?.beforeRequest&&(y=e?.beforeRequest(y)),e?.logging&&console.log("Before request",y),e?.onBeforeRequest&&e?.onBeforeRequest(y);let w={...e,signal:S.signal,onUploadProgress:$=>{let j=Math.round($.loaded*100/($.total||1));o(j);}},T=t.__isVoid?await t(void 0,w):await t(y,void 0,w);e?.logging&&console.log("After response",T),a(T),n(false),o(0),e?.afterResponse&&T?.data&&(T.data=e?.afterResponse(T.data,y)),T.status&&e?.onSuccess&&e?.onSuccess(T,y),!T.status&&e?.onError&&e?.onError(T,y),e?.onAfterResponse?.(T,y);},{...s,loading:r,abort:()=>{l.current?.abort(),l.current=null,n(false),o(0);},progress:i,reset:()=>{n(false),o(0),a(null);}}]}function kt(t,e){let{disableHysteresis:r=false,threshold:n=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>n}var vt=typeof window<"u"?window:null;function qn(t={}){let{getTrigger:e=kt,target:r=vt,disableHysteresis:n=false,threshold:s=100}=t,a=ie__default.default.useRef(0),[i,o]=ie__default.default.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return ie__default.default.useEffect(()=>{let l=()=>{o(e(a,{disableHysteresis:n,threshold:s,target:r}));};if(l(),r)return r.addEventListener("scroll",l,{passive:true}),()=>{r.removeEventListener("scroll",l);}},[r,e,n,s]),i}function vn(t,e){let r,n;typeof e=="number"?(r=e,n=void 0):(r=e?.delay??500,n=e?.onDebounce);let[s,a]=ie.useState(t);return ie.useEffect(()=>{let i=setTimeout(()=>{a(t),n&&n(t);},r);return ()=>clearTimeout(i)},[t,r,n]),s}var Fn=(t,e)=>{let r=t.__path||t.name,n=e?.storeName||`${r}`,s=e?.shallow??true,{refresh:a,abort:i,clear:o,clone:l}=Ke(n)||{},p=w=>{let T=w.states[n]??Z;return {loading:T.loading,isCancel:T.isCancel,response:T.response}},{loading:d,isCancel:b,response:y}=s?ee(shallow.useShallow(p)):ee(p),S=ie.useMemo(()=>[y?.data,{...y,loading:d,isCancel:b,refresh:a,abort:i,clear:o,clone:l}],[y,d,b,a,i,o,l]);return e?.selector?e.selector(S):S};var Bn=(t,e)=>{let r=n=>t(n);return r.displayName=e,r},He=(t,e)=>{let r=false;return ie__default.default.Children.forEach(t,n=>{if(ie__default.default.isValidElement(n)){let s=n,a=n.type.displayName;(e.includes(a)||s.props?.children&&He(s.props.children,e))&&(r=true);}}),r},In=(t,e)=>{let r={others:[]},n=s=>{ie__default.default.Children.forEach(s,a=>{if(ie__default.default.isValidElement(a)){let i=a.type.displayName,o=a,l=o.props?.children;e.includes(i)?r[i]=a:l&&He(l,e)?n(o.props.children):r.others.push(a);}else r.others.push(a);});};return n(t),r};function zn(){let{format:t}=_();return (e="",r=false)=>Oe(e,r,t.number.decSep)}function Gn(t,e){let r=ie.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0});return ie.useEffect(()=>{if(!t)return;let n=()=>{let a=t.getBoundingClientRect();r.current={width:a.width,height:a.height,top:a.top,left:a.left,right:a.right,bottom:a.bottom},e&&e(r.current);};n();let s=new ResizeObserver(()=>n());return s.observe(t),()=>s.disconnect()},[t,e]),r}var xe={};function eo(t,e){let[r,n]=ie.useState(false),[s,a]=ie.useState(),[i,o]=ie.useState();return ie.useEffect(()=>{if(!t)return;if(xe[t]){o(()=>xe[t]);return}n(true),(async()=>{try{let p=await import(`${e.path}${t}${e.extension??".svg?react"}`);xe[t]=p.default,o(()=>p.default);}catch(p){a(p),console.error(p);}finally{n(false);}})();},[t,e.path,e.extension]),{error:s,loading:r,Icon:i}}function no(t){let e=t,r=new Set;function n(){return e}function s(o){return r.add(o),()=>r.delete(o)}function a(o){typeof o=="function"?e=o(e):e=o,r.forEach(l=>l());}function i(o){let l=ie.useRef(o?o(e):e);return ie.useSyncExternalStore(s,()=>{let p=o?o(e):e,d=l.current;return Object.is(d,p)||(l.current=p),l.current},()=>o?o(e):e)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function je(t,e){!t||typeof t!="object"||Object.keys(t).forEach(r=>{let n=t[r],s=e?`${e}.${r}`:r;if(typeof n=="function"){try{Object.defineProperty(n,"__path",{value:s,writable:!0,enumerable:!1,configurable:!0});}catch{n.__path=s;}try{Object.defineProperty(n,"__isVoid",{value:n.length===2,writable:!0,enumerable:!1,configurable:!0});}catch{n.__isVoid=n.length===2;}}else n&&typeof n=="object"&&je(n,s);});}function so(t){let e={};for(let r in t){let n=t[r];e[r]=(...s)=>{let a=n(...s);return je(a,r),a};}return e}function lo(t,e){let[r,n]=ie.useState(false),[s,a]=ie.useState([]),i=ie.useRef([]),o=ie.useRef(null);ie.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{o.current?.abort();}},[]);let l=async b=>{o.current?.abort();let y=new AbortController;o.current=y,n(true),a([]),i.current=[],t(b,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(n(false),e?.onDone&&e?.onDone([...i.current])),S.status?e?.onStream&&e?.onStream(S):e?.onError&&e?.onError(S);},{signal:y.signal});},p=()=>{o.current?.abort(),o.current=null,n(false);},d=()=>{n(false),a([]),i.current=[];};return [s.map(b=>b.data),l,{loading:r,abort:p,reset:d,response:s}]}function fo(t,e){let{key:r}=e,[n,s]=ie.useState();return ie.useEffect(()=>{let a=Jt.liveQuery(()=>t(r)).subscribe(s);return ()=>a.unsubscribe()},[r]),n}function Ro(t,e){let{key:r}=e,[n,s]=ie.useState(false);return ie.useEffect(()=>{let a=Jt.liveQuery(async()=>!!await t(r)).subscribe(i=>{s(o=>o!==i?i:o);});return ()=>a.unsubscribe()},[r]),n}var le,ce={};function Do({dbName:t,version:e=1,table:r}){return le||(le=new Jt__default.default(t),e=Object.keys(ce).length+1,le.version(e).stores(ce)),r}function xo({name:t,primaryKey:e}){ce[t]||(ce[t]=e);let r=()=>{let p=le.table(t);if(!p)throw new Error(`Table ${t} is not registered in Dexie`);return p};return {table:r,create:async l=>await r().add(l),update:async(l,p)=>await r().update(l,p),put:async(l,p)=>await r().put({...p,[e]:l}),detail:async l=>await r().get(l),remove:async l=>await r().delete(l)}}var Uo=()=>{let{encrypt:t,decrypt:e,passphrase:r}=G();return ({url:n,token:s,beforeRequest:a,onCallback:i,headers:o,onUnauthorized:l,handleToast:p,handleAuthorization:d,disabledToastWhenCancel:b,withCredentials:y,encryptRequest:S,encryptResponse:w,passphrase:T})=>{let $=wt__default.default.create({baseURL:`${n}`,headers:{"Content-Type":"application/json",...o}}),j=(c,R,u,D)=>{let g=D?.code==="ERR_CANCELED",P=c?.status===401,f=c?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:w)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?r:u.passphrase:T;try{f=e(f,A);}catch{try{f=e(f,r);}catch{}}}let m={...i({...c,data:f,isCancel:g,isUnauthorization:P},D),isCancel:g,isUnauthorization:P,httpCode:c?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:b,h=d?d(m,u):!P;if((u?.infoSuccess&&m.status||u?.infoError&&!m.status)&&p&&(!g||!x)&&p(m),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||l;A&&A(m);}if(typeof R=="function")R(m);else return m},z=(c,R=()=>{})=>$({...c,withCredentials:typeof c.withCredentials=="boolean"?c.withCredentials:y}).then(R).catch(u=>R(u.response,u)),v=(c,R,u,D,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},U={...f.headers};if(f.token&&(typeof f.token=="boolean"?s&&(U.Authorization=`Bearer ${s}`):f.token&&(U.Authorization=`Bearer ${f.token}`)),a&&(u=a(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:S)&&u){let m=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:T;u=t(u,m);}return z({url:R,method:c,data:u,headers:U,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:m=>{f?.onUploadProgress&&f?.onUploadProgress(m);}},(m,x)=>j(m,D,f,x))};return {client:z,post:(c,R,u,D)=>v("POST",`${c}`,R,u,D),put:(c,R,u,D)=>v("PUT",`${c}`,R,u,D),patch:(c,R,u,D)=>v("PATCH",`${c}`,R,u,D),delete:(c,R,u)=>v("DELETE",`${c}`,null,R,u),get:(c,R,u)=>v("GET",`${c}`,null,R,u),upload:(c,R,u,D)=>{let g=new FormData;return Object.keys(R).forEach(P=>g.append(P,R[P])),v("POST",`${c}`,g,u,{infoSuccess:false,...D,headers:{"Content-Type":"multipart/form-data",...D?.headers}})},stream:async(c,R,u,D,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},U={"Content-Type":"application/json",...o,...f.headers};if(f.token){let O=typeof f.token=="boolean"?s:f.token;O&&(U.Authorization=`Bearer ${O}`);}let C=u;if(a&&(C=a(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:S)&&C){let O=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?r:f.passphrase:T;C=t(C,O);}let x=await fetch(`${n}${R}`,{method:c,headers:U,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let O=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:w)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:T;try{u=e(J,pe);}catch{try{u=e(J,r);}catch{}}}O=J?.message||O;}catch{O=N;}else O=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:b,K={status:!1,data:void 0,message:O,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&p&&!Y&&p(K),D(K);return}let q=x.body.getReader(),E=new TextDecoder("utf-8"),H="",X=!1;for(;!X;){let{done:O,value:Y}=await q.read();X=O,H+=E.decode(Y,{stream:!0});let K=H.split(`
|
|
4
4
|
|
|
5
|
-
`);
|
|
5
|
+
`);H=K.pop();for(let V of K)if(V.startsWith("data:"))try{let N=se(V);D({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!1});}catch{}}D({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0});}catch(P){let f=P?.name==="AbortError";D({status:false,data:void 0,message:P instanceof Error?P.message:"Internal Server Error",isCancel:f,isUnauthorization:false,httpCode:400,isDone:true});}}}}};function Ve(t,e){!t||typeof t!="object"||Object.keys(t).forEach(r=>{let n=t[r],s=e?`${e}.${r}`:r;if(typeof n=="function"){try{Object.defineProperty(n,"__path",{value:s,writable:!0,enumerable:!1,configurable:!0});}catch{n.__path=s;}try{Object.defineProperty(n,"__isVoid",{value:n.length===2,writable:!0,enumerable:!1,configurable:!0});}catch{n.__isVoid=n.length===2;}}else n&&typeof n=="object"&&Ve(n,s);});}function vo(t,e){let r={};for(let n in t){let s=t[n];r[n]=()=>{let a=s(e);return Ve(a,n),a};}return r}function Mo(t){let e=[...t],r=a=>a==null?"":String(a),n=(a,i)=>{if(Array.isArray(i.and))return i.and.every(o=>n(a,o));if(Array.isArray(i.or))return i.or.some(o=>n(a,o));for(let[o,l]of Object.entries(i)){if(o==="and"||o==="or")continue;let{opt:p="eq",value:d,required:b=true}=typeof l=="object"&&l!==null&&"value"in l?l:{value:l};if(!b&&(d==null||d===""))continue;let y=k(a,o,void 0);switch(p){case "eq":if(y!==d)return false;break;case "neq":if(y===d)return false;break;case "gt":if(!(y>d))return false;break;case "gte":if(!(y>=d))return false;break;case "lt":if(!(y<d))return false;break;case "lte":if(!(y<=d))return false;break;case "contains":{if(y==null||d==null)return false;if(Array.isArray(y)){if(!y.some(w=>r(w).toLowerCase().includes(r(d).toLowerCase())))return false}else if(!r(y).toLowerCase().includes(r(d).toLowerCase()))return false;break}case "notContains":{if(y==null)break;if(Array.isArray(y)){if(y.some(w=>r(w).toLowerCase().includes(r(d).toLowerCase())))return false}else if(r(y).toLowerCase().includes(r(d).toLowerCase()))return false;break}case "startsWith":if(y==null||d==null||!String(y).startsWith(String(d)))return false;break;case "endsWith":if(y==null||d==null||!String(y).endsWith(String(d)))return false;break;case "in":if(!Array.isArray(d)||!d.includes(y))return false;break;case "notIn":if(Array.isArray(d)&&d.includes(y))return false;break;default:return false}}return true},s={where(a){return a&&(e=e.filter(i=>n(i,a))),s},sort(a){let i=Object.entries(a);return e.sort((o,l)=>{for(let[p,d]of i){let b=k(o,p),y=k(l,p);if(b!==y)return d==="asc"?b>y?1:-1:b<y?1:-1}return 0}),s},distinct(a){let i=Array.isArray(a)?a:a?[a]:[],o=new Set;return e=e.filter(l=>{let p=i.length?i.map(d=>k(l,d)).join("|"):JSON.stringify(l);return o.has(p)?false:(o.add(p),true)}),s},select(a){return e=e.map(i=>{let o={};for(let l of a)o[l]=k(i,l);return o}),s},paginate(a,i){let o=(a-1)*i,l=o+i;return {data:e.slice(o,l),total:e.length,page:a,pageSize:i,totalPages:Math.ceil(e.length/i)}},groupBy(a){let i={};for(let o of e){let l=k(o,a),p=String(l??"undefined");i[p]||(i[p]=[]),i[p].push(o);}return i},map(a){return e=e.map(a),s},reduce(a,i){return e.reduce(a,i)},limit(a){return e=e.slice(0,a),s},get(){return e}};return s}exports.BgsCoreProvider=ut;exports.DataTypeEnum=Dt;exports.HttpMethod=Tt;exports.bindApi=vo;exports.capitalizeWords=Pe;exports.createApiHelper=Cn;exports.createDatabase=Do;exports.createElement=Bn;exports.createStore=no;exports.createTable=xo;exports.debounce=hr;exports.decrypt=de;exports.decryptString=Ee;exports.defaultState=Z;exports.diffJson=ur;exports.encrypt=fe;exports.encryptString=ve;exports.filterDOMPropsLite=br;exports.generateCacheKey=Se;exports.generateUUID=pr;exports.getApiActions=Ke;exports.getDateRangeLabelFromSorted=xr;exports.getFieldValue=k;exports.getInitials=Tr;exports.getMinMaxDate=Dr;exports.getTotalMinutes=Cr;exports.isArray=dr;exports.isDirtyRaw=ue;exports.isNotEmpty=F;exports.isValidNumber=st;exports.jsonCopy=Rr;exports.labelFormatter=Ce;exports.mappingData=Ar;exports.mappingUndefinedtoNull=fr;exports.moment=M;exports.objectToQueryString=it;exports.parseSSEChunk=se;exports.parseStringToNumber=Oe;exports.query=Mo;exports.registerApi=Me;exports.renderChildren=yr;exports.replaceNullStrings=Ae;exports.safeUpdate=Rt;exports.sorting=mr;exports.splitElement=In;exports.stableStringify=ot;exports.summary=gr;exports.unregisterApi=$e;exports.useApiLoad=bt;exports.useApiLoadStore=ee;exports.useApiSend=Pn;exports.useApiStore=Fn;exports.useApiStream=lo;exports.useBgsCore=_;exports.useCreateApi=Uo;exports.useCrypto=G;exports.useDbLive=fo;exports.useDbLiveFlag=Ro;exports.useDebounce=vn;exports.useDelay=rn;exports.useDynamicSvgImport=eo;exports.useElementBounding=Gn;exports.useFormatted=cn;exports.useInterval=fn;exports.useKeyPress=mn;exports.useParseStringToNumber=zn;exports.useScrollTrigger=qn;exports.useStorage=Ne;exports.wrapApi=so;
|
package/dist/index.d.cts
CHANGED
|
@@ -423,10 +423,25 @@ declare enum DataTypeEnum {
|
|
|
423
423
|
status = "status"
|
|
424
424
|
}
|
|
425
425
|
type DataType = `${DataTypeEnum}`;
|
|
426
|
-
type
|
|
427
|
-
|
|
426
|
+
type Prev = {
|
|
427
|
+
0: 0;
|
|
428
|
+
1: 0;
|
|
429
|
+
2: 1;
|
|
430
|
+
3: 2;
|
|
431
|
+
4: 3;
|
|
432
|
+
5: 4;
|
|
433
|
+
6: 5;
|
|
434
|
+
7: 6;
|
|
435
|
+
8: 7;
|
|
436
|
+
9: 8;
|
|
437
|
+
10: 9;
|
|
438
|
+
};
|
|
439
|
+
type Depth = keyof Prev;
|
|
440
|
+
type Dec<D extends Depth> = Prev[D];
|
|
441
|
+
type NestedKeyOf<T, D extends Depth = 5> = D extends 0 ? never : T extends object ? T extends Array<infer U> ? `${number}` | `${number}.${NestedKeyOf<U, Dec<D>>}` : {
|
|
442
|
+
[K in keyof T]: T[K] extends Array<infer U> ? `${K & string}` | `${K & string}[${number}]` | `${K & string}[${number}].${NestedKeyOf<U, Dec<D>>}` : T[K] extends object ? `${K & string}` | `${K & string}.${NestedKeyOf<T[K], Dec<D>>}` : `${K & string}`;
|
|
428
443
|
}[keyof T] : never;
|
|
429
|
-
type PathValue<T, P extends string> = P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R
|
|
444
|
+
type PathValue<T, P extends string, D extends Depth = 5> = D extends 0 ? never : P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R, Dec<D>> : never : never : P extends `${infer K}[${infer I}]` ? K extends keyof T ? T[K] extends Array<infer U> ? U : never : never : P extends `${infer K}.${infer R}` ? K extends keyof T ? PathValue<T[K], R, Dec<D>> : never : P extends keyof T ? T[P] : never;
|
|
430
445
|
type SelectedNested<T> = Partial<Record<NestedKeyOf<T>, any>>;
|
|
431
446
|
type TextTransform = "capitalize" | "uppercase" | "lowercase";
|
|
432
447
|
type StorePayload<DRes> = {
|
|
@@ -755,7 +770,7 @@ type QueryCondition<T> = {
|
|
|
755
770
|
or?: QueryCondition<T>[];
|
|
756
771
|
};
|
|
757
772
|
declare function query<T>(data: T[]): {
|
|
758
|
-
where(condition
|
|
773
|
+
where(condition?: QueryCondition<T> | null | false): /*elided*/ any;
|
|
759
774
|
sort(orderBy: Partial<Record<NestedKeyOf<T>, "asc" | "desc">>): /*elided*/ any;
|
|
760
775
|
distinct(keys?: NestedKeyOf<T> | NestedKeyOf<T>[]): /*elided*/ any;
|
|
761
776
|
select<K extends NestedKeyOf<T>>(fields: K[]): /*elided*/ any;
|
|
@@ -771,7 +786,7 @@ declare function query<T>(data: T[]): {
|
|
|
771
786
|
reduce<U>(reducer: (acc: U, item: T) => U, initial: U): U;
|
|
772
787
|
limit(count: number): /*elided*/ any;
|
|
773
788
|
get(): T[];
|
|
774
|
-
}
|
|
789
|
+
};
|
|
775
790
|
|
|
776
791
|
type FormatType = {
|
|
777
792
|
display: string;
|
|
@@ -804,4 +819,4 @@ interface BgsCoreProviderProps {
|
|
|
804
819
|
}
|
|
805
820
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
806
821
|
|
|
807
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiHelperBase, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateDatabaseProps, type CreateElementProps, type CreateTableProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type QueryCondition, type QueryFilterOption, type QueryOperator, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, bindApi, capitalizeWords, createApiHelper, createDatabase, createElement, createStore, createTable, 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, query, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCreateApi, useCrypto, useDbLive, useDbLiveFlag, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
822
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiHelperBase, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateDatabaseProps, type CreateElementProps, type CreateTableProps, type DataSource, type DataType, DataTypeEnum, type Depth, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type QueryCondition, type QueryFilterOption, type QueryOperator, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, bindApi, capitalizeWords, createApiHelper, createDatabase, createElement, createStore, createTable, 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, query, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCreateApi, useCrypto, useDbLive, useDbLiveFlag, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -423,10 +423,25 @@ declare enum DataTypeEnum {
|
|
|
423
423
|
status = "status"
|
|
424
424
|
}
|
|
425
425
|
type DataType = `${DataTypeEnum}`;
|
|
426
|
-
type
|
|
427
|
-
|
|
426
|
+
type Prev = {
|
|
427
|
+
0: 0;
|
|
428
|
+
1: 0;
|
|
429
|
+
2: 1;
|
|
430
|
+
3: 2;
|
|
431
|
+
4: 3;
|
|
432
|
+
5: 4;
|
|
433
|
+
6: 5;
|
|
434
|
+
7: 6;
|
|
435
|
+
8: 7;
|
|
436
|
+
9: 8;
|
|
437
|
+
10: 9;
|
|
438
|
+
};
|
|
439
|
+
type Depth = keyof Prev;
|
|
440
|
+
type Dec<D extends Depth> = Prev[D];
|
|
441
|
+
type NestedKeyOf<T, D extends Depth = 5> = D extends 0 ? never : T extends object ? T extends Array<infer U> ? `${number}` | `${number}.${NestedKeyOf<U, Dec<D>>}` : {
|
|
442
|
+
[K in keyof T]: T[K] extends Array<infer U> ? `${K & string}` | `${K & string}[${number}]` | `${K & string}[${number}].${NestedKeyOf<U, Dec<D>>}` : T[K] extends object ? `${K & string}` | `${K & string}.${NestedKeyOf<T[K], Dec<D>>}` : `${K & string}`;
|
|
428
443
|
}[keyof T] : never;
|
|
429
|
-
type PathValue<T, P extends string> = P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R
|
|
444
|
+
type PathValue<T, P extends string, D extends Depth = 5> = D extends 0 ? never : P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R, Dec<D>> : never : never : P extends `${infer K}[${infer I}]` ? K extends keyof T ? T[K] extends Array<infer U> ? U : never : never : P extends `${infer K}.${infer R}` ? K extends keyof T ? PathValue<T[K], R, Dec<D>> : never : P extends keyof T ? T[P] : never;
|
|
430
445
|
type SelectedNested<T> = Partial<Record<NestedKeyOf<T>, any>>;
|
|
431
446
|
type TextTransform = "capitalize" | "uppercase" | "lowercase";
|
|
432
447
|
type StorePayload<DRes> = {
|
|
@@ -755,7 +770,7 @@ type QueryCondition<T> = {
|
|
|
755
770
|
or?: QueryCondition<T>[];
|
|
756
771
|
};
|
|
757
772
|
declare function query<T>(data: T[]): {
|
|
758
|
-
where(condition
|
|
773
|
+
where(condition?: QueryCondition<T> | null | false): /*elided*/ any;
|
|
759
774
|
sort(orderBy: Partial<Record<NestedKeyOf<T>, "asc" | "desc">>): /*elided*/ any;
|
|
760
775
|
distinct(keys?: NestedKeyOf<T> | NestedKeyOf<T>[]): /*elided*/ any;
|
|
761
776
|
select<K extends NestedKeyOf<T>>(fields: K[]): /*elided*/ any;
|
|
@@ -771,7 +786,7 @@ declare function query<T>(data: T[]): {
|
|
|
771
786
|
reduce<U>(reducer: (acc: U, item: T) => U, initial: U): U;
|
|
772
787
|
limit(count: number): /*elided*/ any;
|
|
773
788
|
get(): T[];
|
|
774
|
-
}
|
|
789
|
+
};
|
|
775
790
|
|
|
776
791
|
type FormatType = {
|
|
777
792
|
display: string;
|
|
@@ -804,4 +819,4 @@ interface BgsCoreProviderProps {
|
|
|
804
819
|
}
|
|
805
820
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
806
821
|
|
|
807
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiHelperBase, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateDatabaseProps, type CreateElementProps, type CreateTableProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type QueryCondition, type QueryFilterOption, type QueryOperator, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, bindApi, capitalizeWords, createApiHelper, createDatabase, createElement, createStore, createTable, 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, query, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCreateApi, useCrypto, useDbLive, useDbLiveFlag, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
822
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiHelperBase, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateDatabaseProps, type CreateElementProps, type CreateTableProps, type DataSource, type DataType, DataTypeEnum, type Depth, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type QueryCondition, type QueryFilterOption, type QueryOperator, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, bindApi, capitalizeWords, createApiHelper, createDatabase, createElement, createStore, createTable, 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, query, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCreateApi, useCrypto, useDbLive, useDbLiveFlag, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import ie,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import F from'dayjs';import Ye from'dayjs/plugin/utc';import Je from'dayjs/plugin/timezone';import Ge from'dayjs/plugin/duration';import Qe from'dayjs/plugin/advancedFormat';import Xe from'dayjs/plugin/localizedFormat';import Ze from'dayjs/plugin/relativeTime';import et from'dayjs/plugin/isSameOrBefore';import tt from'dayjs/plugin/isSameOrAfter';import rt from'dayjs/plugin/weekOfYear';import nt from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Ue from'crypto-js/aes';import ke from'crypto-js/pbkdf2';import dt from'crypto-js/enc-utf8';import ae from'crypto-js/enc-base64';import qe from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import wt from'axios';import Jt,{liveQuery}from'dexie';F.extend(Ye);F.extend(Je);F.extend(Ge);F.extend(Qe);F.extend(Xe);F.extend(Ze);F.extend(et);F.extend(tt);F.extend(rt);F.extend(nt);var M=F;function pr(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function ur(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var fr=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function dr(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function H(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var Ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=Ce.snackCase(Ce.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function yr(t,e){return typeof t=="function"?t(e):t}var k=(t,e,r)=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),o=t;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},mr={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let o=k(r,e)?k(r,e):"",a=k(n,e)?k(r,e):"";return o<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let o=k(r,e)?k(r,e):"",a=k(n,e)?k(n,e):"";return o>a?1:-1}else return r>n?1:-1}))},gr=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?k(n,e)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function Rr(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function ot(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function Se(t,e){return ot([e??"undefined",t??"undefined"])}function Oe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function hr(t,e=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{t(...o);},e*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var se=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};function ue(t,e){let r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t===e||t==="-"||t===`-${e}`||new RegExp(`^-?\\d+${r}$`).test(t)||new RegExp(`^-?${r}\\d*$`).test(t)}function st(t,e=false,r="."){if(typeof t=="number")return !Number.isNaN(t);if(typeof t=="string"&&t.trim()!==""){let n=t.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||e&&ue(n,r))return true}return false}function Pe(t="",e=false,r="."){if(!st(t,!e,r))return null;let n=r==="."?t.trim():t.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var at=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 br(t){let e={};for(let r in t)at.has(r)&&(e[r]=t[r]);return e}function Tr(t,e=2){return t?t.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,e).join(""):""}function Dr(t=[]){let e=t.filter(Boolean);if(e.length===0)return ["",""];let r=e.map(M).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 xr(t,e){let r=M(t),n=M(e),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 Cr(t,e){if(!t?.trim()||!e?.trim())return "";if(t===e)return "0";let r=M(t,"HH:mm",true),n=M(e,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var Ar=(t=[],e="label",r="value",n,o=" | ")=>{if(!Array.isArray(t))return [[],[]];let a=t.map((c,l)=>{if(typeof c!="object"){let m=typeof e=="function"?e(c,l):c,y=typeof r=="function"?r(c,l):c;return {label:m,value:y,index:l,rowData:c}}else {let m=typeof e=="function"?e(c,l):k(c,e,""),y=typeof r=="function"?r(c,l):k(c,r,"");return {label:m,value:typeof y=="boolean"?y:y||"",index:l,rowData:c}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],s=new Map;for(let c of a){let l=c.rowData,m=i.map(D=>String(typeof l=="object"?k(l,D,"")??"":"")).join(o),y=s.get(m)||[];y.push(c),s.set(m,y);}return [Array.from(s.entries()).map(([c,l])=>({group:c,items:l})),a]};function it(t,e=""){let r=[];for(let n in t)if(t.hasOwnProperty(n)){let o=t[n],a=e?`${e}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!H(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(it(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Ae(t){if(t==="null")return null;if(Array.isArray(t))for(let e=0;e<t.length;e++)t[e]=Ae(t[e]);else if(t&&typeof t=="object")for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=Ae(t[e]));return t}var we=createContext(void 0);function _(){let t=useContext(we);return t||{}}var ut=({children:t,value:e})=>{let r={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:o,object:a,isLocal:i}=e.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&M.locale(o,a??{},i);}})();},[e.localeConfig]),jsx(we.Provider,{value:r,children:t})};function fe(t,e){let r=qe.random(16),n=qe.random(16),o=ke(e,r,{keySize:256/32,iterations:1e3}),a=Ue.encrypt(JSON.stringify(t),o,{iv:n}).toString();return {salt:r.toString(ae),iv:n.toString(ae),encrypted:a}}function de(t,e){let{salt:r,iv:n,encrypted:o}=t,a=ke(e,ae.parse(r),{keySize:256/32,iterations:1e3}),s=Ue.decrypt(o,a,{iv:ae.parse(n)}).toString(dt);return JSON.parse(s)}function ve(t,e){return JSON.stringify(fe(t,e))}function Ee(t,e){return de(JSON.parse(t),e)}function G(){let{passphrase:t}=_();return {passphrase:t,encrypt(e,r){return fe(e,r||t)},decrypt(e,r){return de(e,r||t)},encryptString(e,r){return ve(e,r||t)},decryptString(e,r){return Ee(e,r||t)}}}var Ne=()=>{let{encrypt:t,decrypt:e}=G(),r=useCallback((i,s)=>{try{let c=t(s);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),n=useCallback(i=>{try{let s=localStorage.getItem(i);return s?e(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[e]),o=i=>{let[s,c]=useState(()=>{try{let l=localStorage.getItem(i);return l?e(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=m=>{if(m.key===i)if(m.newValue)try{c(e(JSON.parse(m.newValue)));}catch(y){console.error("Decrypt error from storage event",y);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[i,e]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function Rt(t,e){for(let r in e){let n=t[r],o=e[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 Z={loading:false,response:void 0,isCancel:false},ee=create((t,e)=>({states:{},updateState:(r,n)=>{let o=e().states[r]??Z,a={...o,...n};Rt(o,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var me=new Map,Me=(t,e)=>{me.set(t,e);},$e=t=>{me.delete(t);},Ke=t=>me.get(t);function bt(...t){let[e,r,n]=t,o=e.__isVoid,a=e.__path||e.name,i=o?void 0:r,s=o?r:n,c=s?.storeName||`${a}`,l=s?.mergeStrategy??"replace",[m,y,D,S]=ee(useShallow(C=>{let d=C.states[c]??Z;return [d.loading,d.isCancel,d.response,C.updateState]})),{storageKey:U,cache:b,clearPreviousData:$,refetchOnWindowFocus:j}=_(),z=Ne(),v=useRef(void 0),B=useRef(null),{cacheName:W,cacheKey:I,timeout:re,timeoutUnit:ne,persistence:oe,cacheEnabled:Q}=useMemo(()=>{let C=U?z.get(U):void 0,d=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,x=Se({...i,session:C},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),h=false;typeof b?.enabled=="boolean"&&(h=b.enabled);let A=false;typeof b?.persistence=="boolean"&&(A=b?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(A=s?.cache?.persistence??false);let w=60*5,E="s";return H(b?.timeout)&&(typeof b?.timeout=="number"?(w=b.timeout,E="s"):typeof b?.timeout=="object"&&(w=b?.timeout.value,E=b?.timeout.unit)),H(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?h=s.cache.enabled:h=true,typeof s?.cache?.timeout=="number"?(w=s.cache.timeout,E="s"):typeof s?.cache?.timeout=="object"&&(w=s.cache.timeout.value,E=s.cache.timeout.unit)):h=s.cache),{cacheName:d,cacheKey:x,timeout:w,timeoutUnit:E,persistence:A,cacheEnabled:h}},[s?.cache,i,U,b,a]);useEffect(()=>{let C=JSON.stringify(H(v.current)?v.current:""),d=JSON.stringify(H(i)?i:""),x=v.current===void 0;(C!==d||x)&&!s?.hold&&((s?.clearPreviousData??$)&&S(c,{response:null}),p(),v.current=i),s?.onChange&&s?.onChange(i,q);},[i,s?.clearPreviousData,$,s?.hold,...s?.trigger||[]]),useEffect(()=>{let C=async()=>{!oe&&W&&I&&(await caches.open(W)).delete(I);};return window.addEventListener("beforeunload",C),()=>{window.removeEventListener("beforeunload",C),B.current?.abort();}},[oe,W,I,c,B]);let p=useCallback(async C=>{let d=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(d=s?.beforeRequest(i)),Q&&!C&&!y){s?.onBeforeRequest&&s?.onBeforeRequest(i);let x=await caches.open(W),A=await(await x.match(I))?.json();if(A){let{data:w,expired:E}=A;if(M().isAfter(E))await x.delete(I);else {s?.afterResponse&&w?.data&&(w.data=s?.afterResponse(w.data,d)),s?.logging&&console.log("After request: Using Cache",w),w?.status&&s?.onSuccess?.(w,d),s?.onAfterResponse?.(w,d),S(c,{loading:false,response:w});return}}}if(typeof e=="function"){B.current?.abort();let x=new AbortController;B.current=x,S(c,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let h=o?await e(void 0,{...s,signal:x.signal}):await e(d,void 0,{...s,signal:x.signal});if(h.__rawData=h.data,l==="append"&&H(D.__rawData)&&H(h?.data)){if(Array.isArray(D.__rawData)&&Array.isArray(h?.data)){let A=[...D?.__rawData??[],...h.data??[]];h.data=A,h.__rawData=A;}else if(typeof D.__rawData=="object"&&typeof h.data=="object"){let A={...D.__rawData,...h.data};h.data=A,h.__rawData=A;}}if(s?.afterResponse&&h?.data&&(h.data=s?.afterResponse(h.data,d)),s?.logging&&console.log("After request",h),h.status&&s?.onSuccess?.(h,d),h.status||s?.onError?.(h,d),s?.onAfterResponse?.(h,d),S(c,{loading:false,response:h,isCancel:false}),Q&&h.status){let A=M().add(re,ne).toISOString(),w={data:h,expired:A},E=await caches.open(W),L=new Response(JSON.stringify(w));await E.put(I,L);}}},[i,e,s,y,W,I,re,ne,Q,D]);useEffect(()=>{if(s?.refreshInterval){let C=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,d=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,x=setInterval(()=>{p();},M.duration(C,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[s?.refreshInterval,p]);let R=useRef(null),{enabledRefetch:u,timeoutRefetch:T,timeoutUnitRefetch:g}=useMemo(()=>{let C=s?.refetchOnWindowFocus?.enabled??j?.enabled??false,d=s?.refetchOnWindowFocus?.timeout??j?.timeout,x=typeof d=="number"?d:d?.value??60*5,h=typeof d=="object"?d.unit:"s";return {enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:h}},[s?.refetchOnWindowFocus,j]);useEffect(()=>{if(!u||s?.hold)return;let C=M.duration(T,g).asMilliseconds(),d=()=>{let h=Date.now(),A=R.current;A!==null&&h-A>=C&&p(),R.current=null;},x=()=>{R.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",x);}},[u,T,g,p,s?.hold]);let O=useCallback(()=>{B.current?.abort(),B.current=null,S(c,{loading:false,isCancel:true});},[c,B]),f=useCallback(()=>{S(c,{loading:false,response:null});},[c]),q=useMemo(()=>({...D,loading:m,refresh:p,abort:O,clear:f,response:D,isCancel:y,clone:(C,d)=>bt(e,C,{storeName:`${a}-clone`,...d})}),[D,m,p,O,f,y,e]);return useEffect(()=>(Me(c,q),()=>{$e(c);}),[q,c]),[D?.data,q]}async function rn(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Tt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Tt||{}),Dt=(p=>(p.number="number",p.currency="currency",p.percent="percent",p.date="date",p.dateTime="dateTime",p.month="month",p.year="year",p.time="time",p.timestamp="timestamp",p.string="string",p.textarea="textarea",p.code="code",p.password="password",p.boolean="boolean",p.toggle="toggle",p.email="email",p.phone="phone",p.url="url",p.json="json",p.file="file",p.image="image",p.array="array",p.object="object",p.enum="enum",p.user="user",p.department="department",p.status="status",p))(Dt||{});var cn=()=>{let{format:t}=_();return (e,r,n)=>{try{return r==="number"?Fe(e,{thouSep:t.number.thouSep,decDigits:t.number.decDigits,decSep:t.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?At(e,{display:t[r]?.display,value:t[r]?.value,...n}):r==="boolean"?xt(e,n):r==="string"?Ct(e,n):e?.toString()}catch{return}}};function xt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",o=e?.falseLabel??"No";return r?n:o}function Ct(t,e){if(!H(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Oe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}Fe(10,{thouSep:",",decSep:".",decDigits:2});function Fe(t,{thouSep:e,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let y=String(t??"").trim().trim();if(ue(y,r))return y}if(t==null||isNaN(Number(t)))return "";let i=typeof t=="string"?parseFloat(t):t;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(),y=m.indexOf(".");y!==-1&&(s=m.length-y-1);}let c={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",c).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function At(t,{display:e,value:r}){if(!H(t))return t;let n=M(t,r);return n.isValid()?n.format(e):t}function fn(t,{interval:e,lead:r}){let n=useRef(null);useEffect(()=>{n.current=t;},[t]),useEffect(()=>{let o=()=>n.current();if(r&&o(),e!==null){let a=setInterval(o,e);return ()=>clearInterval(a)}},[e]);}function mn(t,e,r){let[n,o]=useState(false),a=(l,m)=>typeof t=="string"&&l===t||typeof t=="number"&&m===t,i=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),s=l=>{let{key:m,keyCode:y}=l,D=l.ctrlKey,S=l.altKey,U=l.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(m,y)&&(e==="ctrl"&&D||e==="alt"&&S||e==="shift"&&U)&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));else {let b=e.every($=>$==="ctrl"?D:$==="alt"?S:$==="shift"?U:false);a(m,y)&&b&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));}else a(m,y)&&(l.preventDefault(),r&&l.stopPropagation(),o(!n));},c=({key:l,keyCode:m})=>{a(l,m)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",c);}),[]),n}var Cn=({url:t,token:e,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:y,passphrase:D})=>{let{encrypt:S,decrypt:U,passphrase:b}=G(),$=wt.create({baseURL:`${t}`,headers:{"Content-Type":"application/json",...o}}),j=(p,R,u,T)=>{let g=T?.code==="ERR_CANCELED",O=p?.status===401,f=p?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:y)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?b:u.passphrase:D;try{f=U(f,A);}catch{try{f=U(f,b);}catch{}}}let d={...n({...p,data:f,isCancel:g,isUnauthorization:O},T),isCancel:g,isUnauthorization:O,httpCode:p?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,h=s?s(d,u):!O;if((u?.infoSuccess&&d.status||u?.infoError&&!d.status)&&i&&(!g||!x)&&i(d),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||a;A&&A(d);}if(typeof R=="function")R(d);else return d},z=(p,R=()=>{})=>$({...p,withCredentials:typeof p.withCredentials=="boolean"?p.withCredentials:l}).then(R).catch(u=>R(u.response,u)),v=(p,R,u,T,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},q={...f.headers};if(f.token&&(typeof f.token=="boolean"?e&&(q.Authorization=`Bearer ${e}`):f.token&&(q.Authorization=`Bearer ${f.token}`)),r&&(u=r(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:m)&&u){let d=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?b:g.passphrase:D;u=S(u,d);}return z({url:R,method:p,data:u,headers:q,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:d=>{f?.onUploadProgress&&f?.onUploadProgress(d);}},(d,x)=>j(d,T,f,x))};return {client:z,post:(p,R,u,T)=>v("POST",`${p}`,R,u,T),put:(p,R,u,T)=>v("PUT",`${p}`,R,u,T),patch:(p,R,u,T)=>v("PATCH",`${p}`,R,u,T),delete:(p,R,u)=>v("DELETE",`${p}`,null,R,u),get:(p,R,u)=>v("GET",`${p}`,null,R,u),upload:(p,R,u,T)=>{let g=new FormData;return Object.keys(R).forEach(O=>g.append(O,R[O])),v("POST",`${p}`,g,u,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(p,R,u,T,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},q={"Content-Type":"application/json",...o,...f.headers};if(f.token){let P=typeof f.token=="boolean"?e:f.token;P&&(q.Authorization=`Bearer ${P}`);}let C=u;if(r&&(C=r(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:m)&&C){let P=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?b:f.passphrase:D;C=S(C,P);}let x=await fetch(`${t}${R}`,{method:p,headers:q,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let P=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:y)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?b:g.passphrase:D;try{u=U(J,pe);}catch{try{u=U(J,b);}catch{}}}P=J?.message||P;}catch{P=N;}else P=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:c,K={status:!1,data:void 0,message:P,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&i&&!Y&&i(K),T(K);return}let w=x.body.getReader(),E=new TextDecoder("utf-8"),L="",X=!1;for(;!X;){let{done:P,value:Y}=await w.read();X=P,L+=E.decode(Y,{stream:!0});let K=L.split(`
|
|
1
|
+
import ie,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import L from'dayjs';import Ye from'dayjs/plugin/utc';import Je from'dayjs/plugin/timezone';import Ge from'dayjs/plugin/duration';import Qe from'dayjs/plugin/advancedFormat';import Xe from'dayjs/plugin/localizedFormat';import Ze from'dayjs/plugin/relativeTime';import et from'dayjs/plugin/isSameOrBefore';import tt from'dayjs/plugin/isSameOrAfter';import rt from'dayjs/plugin/weekOfYear';import nt from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Ue from'crypto-js/aes';import ke from'crypto-js/pbkdf2';import dt from'crypto-js/enc-utf8';import ae from'crypto-js/enc-base64';import qe from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import wt from'axios';import Jt,{liveQuery}from'dexie';L.extend(Ye);L.extend(Je);L.extend(Ge);L.extend(Qe);L.extend(Xe);L.extend(Ze);L.extend(et);L.extend(tt);L.extend(rt);L.extend(nt);var M=L;function pr(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function ur(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var fr=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function dr(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function F(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var Ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=Ce.snackCase(Ce.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function yr(t,e){return typeof t=="function"?t(e):t}var k=(t,e,r)=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of n){if(s==null)return r;s=s[a];}return s===void 0?r:s},mr={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=k(r,e)?k(r,e):"",a=k(n,e)?k(r,e):"";return s<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=k(r,e)?k(r,e):"",a=k(n,e)?k(n,e):"";return s>a?1:-1}else return r>n?1:-1}))},gr=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?k(n,e)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function Rr(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function ot(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((s,a)=>(s[a]=n[a],s),{})):n})??""}function Se(t,e){return ot([e??"undefined",t??"undefined"])}function Pe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function hr(t,e=0){let r,n=function(...s){clearTimeout(r),r=setTimeout(()=>{t(...s);},e*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var se=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};function ue(t,e){let r=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t===e||t==="-"||t===`-${e}`||new RegExp(`^-?\\d+${r}$`).test(t)||new RegExp(`^-?${r}\\d*$`).test(t)}function st(t,e=false,r="."){if(typeof t=="number")return !Number.isNaN(t);if(typeof t=="string"&&t.trim()!==""){let n=t.trim(),s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${s}\\d+)?|\\${s}\\d+)$`).test(n)||e&&ue(n,r))return true}return false}function Oe(t="",e=false,r="."){if(!st(t,!e,r))return null;let n=r==="."?t.trim():t.trim().replace(r,"."),s=Number(n);return Number.isNaN(s)?null:s}var at=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 br(t){let e={};for(let r in t)at.has(r)&&(e[r]=t[r]);return e}function Tr(t,e=2){return t?t.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,e).join(""):""}function Dr(t=[]){let e=t.filter(Boolean);if(e.length===0)return ["",""];let r=e.map(M).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 xr(t,e){let r=M(t),n=M(e),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 Cr(t,e){if(!t?.trim()||!e?.trim())return "";if(t===e)return "0";let r=M(t,"HH:mm",true),n=M(e,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let s=n.diff(r,"minutes");return s<=0&&(s+=24*60),s.toString()}var Ar=(t=[],e="label",r="value",n,s=" | ")=>{if(!Array.isArray(t))return [[],[]];let a=t.map((l,p)=>{if(typeof l!="object"){let d=typeof e=="function"?e(l,p):l,b=typeof r=="function"?r(l,p):l;return {label:d,value:b,index:p,rowData:l}}else {let d=typeof e=="function"?e(l,p):k(l,e,""),b=typeof r=="function"?r(l,p):k(l,r,"");return {label:d,value:typeof b=="boolean"?b:b||"",index:p,rowData:l}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],o=new Map;for(let l of a){let p=l.rowData,d=i.map(y=>String(typeof p=="object"?k(p,y,"")??"":"")).join(s),b=o.get(d)||[];b.push(l),o.set(d,b);}return [Array.from(o.entries()).map(([l,p])=>({group:l,items:p})),a]};function it(t,e=""){let r=[];for(let n in t)if(t.hasOwnProperty(n)){let s=t[n],a=e?`${e}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!F(s))continue;Array.isArray(s)?s.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof s=="object"&&s!==null?r.push(it(s,a)):r.push(`${a}=${encodeURIComponent(s)}`);}return r.join("&")}function Ae(t){if(t==="null")return null;if(Array.isArray(t))for(let e=0;e<t.length;e++)t[e]=Ae(t[e]);else if(t&&typeof t=="object")for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]=Ae(t[e]));return t}var we=createContext(void 0);function _(){let t=useContext(we);return t||{}}var ut=({children:t,value:e})=>{let r={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&M.locale(s,a??{},i);}})();},[e.localeConfig]),jsx(we.Provider,{value:r,children:t})};function fe(t,e){let r=qe.random(16),n=qe.random(16),s=ke(e,r,{keySize:256/32,iterations:1e3}),a=Ue.encrypt(JSON.stringify(t),s,{iv:n}).toString();return {salt:r.toString(ae),iv:n.toString(ae),encrypted:a}}function de(t,e){let{salt:r,iv:n,encrypted:s}=t,a=ke(e,ae.parse(r),{keySize:256/32,iterations:1e3}),o=Ue.decrypt(s,a,{iv:ae.parse(n)}).toString(dt);return JSON.parse(o)}function ve(t,e){return JSON.stringify(fe(t,e))}function Ee(t,e){return de(JSON.parse(t),e)}function G(){let{passphrase:t}=_();return {passphrase:t,encrypt(e,r){return fe(e,r||t)},decrypt(e,r){return de(e,r||t)},encryptString(e,r){return ve(e,r||t)},decryptString(e,r){return Ee(e,r||t)}}}var Ne=()=>{let{encrypt:t,decrypt:e}=G(),r=useCallback((i,o)=>{try{let l=t(o);localStorage.setItem(i,JSON.stringify(l));}catch(l){console.error("Failed to save to storage:",l);}},[t]),n=useCallback(i=>{try{let o=localStorage.getItem(i);return o?e(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[e]),s=i=>{let[o,l]=useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=d=>{if(d.key===i)if(d.newValue)try{l(e(JSON.parse(d.newValue)));}catch(b){console.error("Decrypt error from storage event",b);}else l(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),o},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:s}};function Rt(t,e){for(let r in e){let n=t[r],s=e[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(s);if(a!==i)return false}else if(n!==s)return false}return true}var Z={loading:false,response:void 0,isCancel:false},ee=create((t,e)=>({states:{},updateState:(r,n)=>{let s=e().states[r]??Z,a={...s,...n};Rt(s,a)||t(i=>({states:{...i.states,[r]:a}}));}}));var me=new Map,Me=(t,e)=>{me.set(t,e);},$e=t=>{me.delete(t);},Ke=t=>me.get(t);function bt(...t){let[e,r,n]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,o=s?r:n,l=o?.storeName||`${a}`,p=o?.mergeStrategy??"replace",[d,b,y,S]=ee(useShallow(C=>{let m=C.states[l]??Z;return [m.loading,m.isCancel,m.response,C.updateState]})),{storageKey:w,cache:T,clearPreviousData:$,refetchOnWindowFocus:j}=_(),z=Ne(),v=useRef(void 0),B=useRef(null),{cacheName:W,cacheKey:I,timeout:re,timeoutUnit:ne,persistence:oe,cacheEnabled:Q}=useMemo(()=>{let C=w?z.get(w):void 0,m=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,x=Se({...i,session:C},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),h=false;typeof T?.enabled=="boolean"&&(h=T.enabled);let A=false;typeof T?.persistence=="boolean"&&(A=T?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(A=o?.cache?.persistence??false);let q=60*5,E="s";return F(T?.timeout)&&(typeof T?.timeout=="number"?(q=T.timeout,E="s"):typeof T?.timeout=="object"&&(q=T?.timeout.value,E=T?.timeout.unit)),F(o?.cache)&&(typeof o?.cache!="boolean"?(typeof o?.cache?.enabled=="boolean"?h=o.cache.enabled:h=true,typeof o?.cache?.timeout=="number"?(q=o.cache.timeout,E="s"):typeof o?.cache?.timeout=="object"&&(q=o.cache.timeout.value,E=o.cache.timeout.unit)):h=o.cache),{cacheName:m,cacheKey:x,timeout:q,timeoutUnit:E,persistence:A,cacheEnabled:h}},[o?.cache,i,w,T,a]);useEffect(()=>{let C=JSON.stringify(F(v.current)?v.current:""),m=JSON.stringify(F(i)?i:""),x=v.current===void 0;(C!==m||x)&&!o?.hold&&((o?.clearPreviousData??$)&&S(l,{response:null}),c(),v.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,$,o?.hold,...o?.trigger||[]]),useEffect(()=>{let C=async()=>{!oe&&W&&I&&(await caches.open(W)).delete(I);};return window.addEventListener("beforeunload",C),()=>{window.removeEventListener("beforeunload",C),B.current?.abort();}},[oe,W,I,l,B]);let c=useCallback(async C=>{let m=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(m=o?.beforeRequest(i)),Q&&!C&&!b){o?.onBeforeRequest&&o?.onBeforeRequest(i);let x=await caches.open(W),A=await(await x.match(I))?.json();if(A){let{data:q,expired:E}=A;if(M().isAfter(E))await x.delete(I);else {o?.afterResponse&&q?.data&&(q.data=o?.afterResponse(q.data,m)),o?.logging&&console.log("After request: Using Cache",q),q?.status&&o?.onSuccess?.(q,m),o?.onAfterResponse?.(q,m),S(l,{loading:false,response:q});return}}}if(typeof e=="function"){B.current?.abort();let x=new AbortController;B.current=x,S(l,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let h=s?await e(void 0,{...o,signal:x.signal}):await e(m,void 0,{...o,signal:x.signal});if(h.__rawData=h.data,p==="append"&&F(y.__rawData)&&F(h?.data)){if(Array.isArray(y.__rawData)&&Array.isArray(h?.data)){let A=[...y?.__rawData??[],...h.data??[]];h.data=A,h.__rawData=A;}else if(typeof y.__rawData=="object"&&typeof h.data=="object"){let A={...y.__rawData,...h.data};h.data=A,h.__rawData=A;}}if(o?.afterResponse&&h?.data&&(h.data=o?.afterResponse(h.data,m)),o?.logging&&console.log("After request",h),h.status&&o?.onSuccess?.(h,m),h.status||o?.onError?.(h,m),o?.onAfterResponse?.(h,m),S(l,{loading:false,response:h,isCancel:false}),Q&&h.status){let A=M().add(re,ne).toISOString(),q={data:h,expired:A},E=await caches.open(W),H=new Response(JSON.stringify(q));await E.put(I,H);}}},[i,e,o,b,W,I,re,ne,Q,y]);useEffect(()=>{if(o?.refreshInterval){let C=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,m=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,x=setInterval(()=>{c();},M.duration(C,m).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[o?.refreshInterval,c]);let R=useRef(null),{enabledRefetch:u,timeoutRefetch:D,timeoutUnitRefetch:g}=useMemo(()=>{let C=o?.refetchOnWindowFocus?.enabled??j?.enabled??false,m=o?.refetchOnWindowFocus?.timeout??j?.timeout,x=typeof m=="number"?m:m?.value??60*5,h=typeof m=="object"?m.unit:"s";return {enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:h}},[o?.refetchOnWindowFocus,j]);useEffect(()=>{if(!u||o?.hold)return;let C=M.duration(D,g).asMilliseconds(),m=()=>{let h=Date.now(),A=R.current;A!==null&&h-A>=C&&c(),R.current=null;},x=()=>{R.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",x);}},[u,D,g,c,o?.hold]);let P=useCallback(()=>{B.current?.abort(),B.current=null,S(l,{loading:false,isCancel:true});},[l,B]),f=useCallback(()=>{S(l,{loading:false,response:null});},[l]),U=useMemo(()=>({...y,loading:d,refresh:c,abort:P,clear:f,response:y,isCancel:b,clone:(C,m)=>bt(e,C,{storeName:`${a}-clone`,...m})}),[y,d,c,P,f,b,e]);return useEffect(()=>(Me(l,U),()=>{$e(l);}),[U,l]),[y?.data,U]}async function rn(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Tt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Tt||{}),Dt=(c=>(c.number="number",c.currency="currency",c.percent="percent",c.date="date",c.dateTime="dateTime",c.month="month",c.year="year",c.time="time",c.timestamp="timestamp",c.string="string",c.textarea="textarea",c.code="code",c.password="password",c.boolean="boolean",c.toggle="toggle",c.email="email",c.phone="phone",c.url="url",c.json="json",c.file="file",c.image="image",c.array="array",c.object="object",c.enum="enum",c.user="user",c.department="department",c.status="status",c))(Dt||{});var cn=()=>{let{format:t}=_();return (e,r,n)=>{try{return r==="number"?Le(e,{thouSep:t.number.thouSep,decDigits:t.number.decDigits,decSep:t.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===r)?At(e,{display:t[r]?.display,value:t[r]?.value,...n}):r==="boolean"?xt(e,n):r==="string"?Ct(e,n):e?.toString()}catch{return}}};function xt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?n:s}function Ct(t,e){if(!F(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=Pe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}Le(10,{thouSep:",",decSep:".",decDigits:2});function Le(t,{thouSep:e,decSep:r,decDigits:n,method:s,dirty:a}){if(a){let b=String(t??"").trim().trim();if(ue(b,r))return b}if(t==null||isNaN(Number(t)))return "";let i=typeof t=="string"?parseFloat(t):t;if(s)if(typeof n=="number"){let d=Math.pow(10,n);i=Math[s](i*d)/d;}else i=Math[s](i);else if(typeof n=="number"){let d=Math.pow(10,n);i=Math.trunc(i*d)/d;}let o=0;if(n==="auto"){let d=i.toString(),b=d.indexOf(".");b!==-1&&(o=d.length-b-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function At(t,{display:e,value:r}){if(!F(t))return t;let n=M(t,r);return n.isValid()?n.format(e):t}function fn(t,{interval:e,lead:r}){let n=useRef(null);useEffect(()=>{n.current=t;},[t]),useEffect(()=>{let s=()=>n.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function mn(t,e,r){let[n,s]=useState(false),a=(p,d)=>typeof t=="string"&&p===t||typeof t=="number"&&d===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),o=p=>{let{key:d,keyCode:b}=p,y=p.ctrlKey,S=p.altKey,w=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(d,b)&&(e==="ctrl"&&y||e==="alt"&&S||e==="shift"&&w)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let T=e.every($=>$==="ctrl"?y:$==="alt"?S:$==="shift"?w:false);a(d,b)&&T&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));}else a(d,b)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));},l=({key:p,keyCode:d})=>{a(p,d)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",l),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",l);}),[]),n}var Cn=({url:t,token:e,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:l,withCredentials:p,encryptRequest:d,encryptResponse:b,passphrase:y})=>{let{encrypt:S,decrypt:w,passphrase:T}=G(),$=wt.create({baseURL:`${t}`,headers:{"Content-Type":"application/json",...s}}),j=(c,R,u,D)=>{let g=D?.code==="ERR_CANCELED",P=c?.status===401,f=c?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:b)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?T:u.passphrase:y;try{f=w(f,A);}catch{try{f=w(f,T);}catch{}}}let m={...n({...c,data:f,isCancel:g,isUnauthorization:P},D),isCancel:g,isUnauthorization:P,httpCode:c?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:l,h=o?o(m,u):!P;if((u?.infoSuccess&&m.status||u?.infoError&&!m.status)&&i&&(!g||!x)&&i(m),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||a;A&&A(m);}if(typeof R=="function")R(m);else return m},z=(c,R=()=>{})=>$({...c,withCredentials:typeof c.withCredentials=="boolean"?c.withCredentials:p}).then(R).catch(u=>R(u.response,u)),v=(c,R,u,D,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},U={...f.headers};if(f.token&&(typeof f.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):f.token&&(U.Authorization=`Bearer ${f.token}`)),r&&(u=r(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:d)&&u){let m=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?T:g.passphrase:y;u=S(u,m);}return z({url:R,method:c,data:u,headers:U,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:m=>{f?.onUploadProgress&&f?.onUploadProgress(m);}},(m,x)=>j(m,D,f,x))};return {client:z,post:(c,R,u,D)=>v("POST",`${c}`,R,u,D),put:(c,R,u,D)=>v("PUT",`${c}`,R,u,D),patch:(c,R,u,D)=>v("PATCH",`${c}`,R,u,D),delete:(c,R,u)=>v("DELETE",`${c}`,null,R,u),get:(c,R,u)=>v("GET",`${c}`,null,R,u),upload:(c,R,u,D)=>{let g=new FormData;return Object.keys(R).forEach(P=>g.append(P,R[P])),v("POST",`${c}`,g,u,{infoSuccess:false,...D,headers:{"Content-Type":"multipart/form-data",...D?.headers}})},stream:async(c,R,u,D,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},U={"Content-Type":"application/json",...s,...f.headers};if(f.token){let O=typeof f.token=="boolean"?e:f.token;O&&(U.Authorization=`Bearer ${O}`);}let C=u;if(r&&(C=r(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:d)&&C){let O=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?T:f.passphrase:y;C=S(C,O);}let x=await fetch(`${t}${R}`,{method:c,headers:U,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let O=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:b)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?T:g.passphrase:y;try{u=w(J,pe);}catch{try{u=w(J,T);}catch{}}}O=J?.message||O;}catch{O=N;}else O=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:l,K={status:!1,data:void 0,message:O,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&i&&!Y&&i(K),D(K);return}let q=x.body.getReader(),E=new TextDecoder("utf-8"),H="",X=!1;for(;!X;){let{done:O,value:Y}=await q.read();X=O,H+=E.decode(Y,{stream:!0});let K=H.split(`
|
|
2
2
|
|
|
3
|
-
`);
|
|
3
|
+
`);H=K.pop();for(let V of K)if(V.startsWith("data:"))try{let N=se(V);D({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!1});}catch{}}D({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0});}catch(P){let f=P?.name==="AbortError";D({status:false,data:void 0,message:P instanceof Error?P.message:"Internal Server Error",isCancel:f,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Pn(t,e){let[r,n]=useState(false),[s,a]=useState(),[i,o]=useState(0),l=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{l.current?.abort();}},[]),[async y=>{l.current?.abort();let S=new AbortController;l.current=S,n(true),e?.beforeRequest&&(y=e?.beforeRequest(y)),e?.logging&&console.log("Before request",y),e?.onBeforeRequest&&e?.onBeforeRequest(y);let w={...e,signal:S.signal,onUploadProgress:$=>{let j=Math.round($.loaded*100/($.total||1));o(j);}},T=t.__isVoid?await t(void 0,w):await t(y,void 0,w);e?.logging&&console.log("After response",T),a(T),n(false),o(0),e?.afterResponse&&T?.data&&(T.data=e?.afterResponse(T.data,y)),T.status&&e?.onSuccess&&e?.onSuccess(T,y),!T.status&&e?.onError&&e?.onError(T,y),e?.onAfterResponse?.(T,y);},{...s,loading:r,abort:()=>{l.current?.abort(),l.current=null,n(false),o(0);},progress:i,reset:()=>{n(false),o(0),a(null);}}]}function kt(t,e){let{disableHysteresis:r=false,threshold:n=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>n}var vt=typeof window<"u"?window:null;function qn(t={}){let{getTrigger:e=kt,target:r=vt,disableHysteresis:n=false,threshold:s=100}=t,a=ie.useRef(0),[i,o]=ie.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return ie.useEffect(()=>{let l=()=>{o(e(a,{disableHysteresis:n,threshold:s,target:r}));};if(l(),r)return r.addEventListener("scroll",l,{passive:true}),()=>{r.removeEventListener("scroll",l);}},[r,e,n,s]),i}function vn(t,e){let r,n;typeof e=="number"?(r=e,n=void 0):(r=e?.delay??500,n=e?.onDebounce);let[s,a]=useState(t);return useEffect(()=>{let i=setTimeout(()=>{a(t),n&&n(t);},r);return ()=>clearTimeout(i)},[t,r,n]),s}var Fn=(t,e)=>{let r=t.__path||t.name,n=e?.storeName||`${r}`,s=e?.shallow??true,{refresh:a,abort:i,clear:o,clone:l}=Ke(n)||{},p=w=>{let T=w.states[n]??Z;return {loading:T.loading,isCancel:T.isCancel,response:T.response}},{loading:d,isCancel:b,response:y}=s?ee(useShallow(p)):ee(p),S=useMemo(()=>[y?.data,{...y,loading:d,isCancel:b,refresh:a,abort:i,clear:o,clone:l}],[y,d,b,a,i,o,l]);return e?.selector?e.selector(S):S};var Bn=(t,e)=>{let r=n=>t(n);return r.displayName=e,r},He=(t,e)=>{let r=false;return ie.Children.forEach(t,n=>{if(ie.isValidElement(n)){let s=n,a=n.type.displayName;(e.includes(a)||s.props?.children&&He(s.props.children,e))&&(r=true);}}),r},In=(t,e)=>{let r={others:[]},n=s=>{ie.Children.forEach(s,a=>{if(ie.isValidElement(a)){let i=a.type.displayName,o=a,l=o.props?.children;e.includes(i)?r[i]=a:l&&He(l,e)?n(o.props.children):r.others.push(a);}else r.others.push(a);});};return n(t),r};function zn(){let{format:t}=_();return (e="",r=false)=>Oe(e,r,t.number.decSep)}function Gn(t,e){let r=useRef({width:0,height:0,top:0,left:0,right:0,bottom:0});return useEffect(()=>{if(!t)return;let n=()=>{let a=t.getBoundingClientRect();r.current={width:a.width,height:a.height,top:a.top,left:a.left,right:a.right,bottom:a.bottom},e&&e(r.current);};n();let s=new ResizeObserver(()=>n());return s.observe(t),()=>s.disconnect()},[t,e]),r}var xe={};function eo(t,e){let[r,n]=useState(false),[s,a]=useState(),[i,o]=useState();return useEffect(()=>{if(!t)return;if(xe[t]){o(()=>xe[t]);return}n(true),(async()=>{try{let p=await import(`${e.path}${t}${e.extension??".svg?react"}`);xe[t]=p.default,o(()=>p.default);}catch(p){a(p),console.error(p);}finally{n(false);}})();},[t,e.path,e.extension]),{error:s,loading:r,Icon:i}}function no(t){let e=t,r=new Set;function n(){return e}function s(o){return r.add(o),()=>r.delete(o)}function a(o){typeof o=="function"?e=o(e):e=o,r.forEach(l=>l());}function i(o){let l=useRef(o?o(e):e);return useSyncExternalStore(s,()=>{let p=o?o(e):e,d=l.current;return Object.is(d,p)||(l.current=p),l.current},()=>o?o(e):e)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function je(t,e){!t||typeof t!="object"||Object.keys(t).forEach(r=>{let n=t[r],s=e?`${e}.${r}`:r;if(typeof n=="function"){try{Object.defineProperty(n,"__path",{value:s,writable:!0,enumerable:!1,configurable:!0});}catch{n.__path=s;}try{Object.defineProperty(n,"__isVoid",{value:n.length===2,writable:!0,enumerable:!1,configurable:!0});}catch{n.__isVoid=n.length===2;}}else n&&typeof n=="object"&&je(n,s);});}function so(t){let e={};for(let r in t){let n=t[r];e[r]=(...s)=>{let a=n(...s);return je(a,r),a};}return e}function lo(t,e){let[r,n]=useState(false),[s,a]=useState([]),i=useRef([]),o=useRef(null);useEffect(()=>{if(e?.abortOnUnmount)return ()=>{o.current?.abort();}},[]);let l=async b=>{o.current?.abort();let y=new AbortController;o.current=y,n(true),a([]),i.current=[],t(b,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(n(false),e?.onDone&&e?.onDone([...i.current])),S.status?e?.onStream&&e?.onStream(S):e?.onError&&e?.onError(S);},{signal:y.signal});},p=()=>{o.current?.abort(),o.current=null,n(false);},d=()=>{n(false),a([]),i.current=[];};return [s.map(b=>b.data),l,{loading:r,abort:p,reset:d,response:s}]}function fo(t,e){let{key:r}=e,[n,s]=useState();return useEffect(()=>{let a=liveQuery(()=>t(r)).subscribe(s);return ()=>a.unsubscribe()},[r]),n}function Ro(t,e){let{key:r}=e,[n,s]=useState(false);return useEffect(()=>{let a=liveQuery(async()=>!!await t(r)).subscribe(i=>{s(o=>o!==i?i:o);});return ()=>a.unsubscribe()},[r]),n}var le,ce={};function Do({dbName:t,version:e=1,table:r}){return le||(le=new Jt(t),e=Object.keys(ce).length+1,le.version(e).stores(ce)),r}function xo({name:t,primaryKey:e}){ce[t]||(ce[t]=e);let r=()=>{let p=le.table(t);if(!p)throw new Error(`Table ${t} is not registered in Dexie`);return p};return {table:r,create:async l=>await r().add(l),update:async(l,p)=>await r().update(l,p),put:async(l,p)=>await r().put({...p,[e]:l}),detail:async l=>await r().get(l),remove:async l=>await r().delete(l)}}var Uo=()=>{let{encrypt:t,decrypt:e,passphrase:r}=G();return ({url:n,token:s,beforeRequest:a,onCallback:i,headers:o,onUnauthorized:l,handleToast:p,handleAuthorization:d,disabledToastWhenCancel:b,withCredentials:y,encryptRequest:S,encryptResponse:w,passphrase:T})=>{let $=wt.create({baseURL:`${n}`,headers:{"Content-Type":"application/json",...o}}),j=(c,R,u,D)=>{let g=D?.code==="ERR_CANCELED",P=c?.status===401,f=c?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:w)&&f){let A=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?r:u.passphrase:T;try{f=e(f,A);}catch{try{f=e(f,r);}catch{}}}let m={...i({...c,data:f,isCancel:g,isUnauthorization:P},D),isCancel:g,isUnauthorization:P,httpCode:c?.status},x=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:b,h=d?d(m,u):!P;if((u?.infoSuccess&&m.status||u?.infoError&&!m.status)&&p&&(!g||!x)&&p(m),!h&&(!g||!u?.disabledHandleUnauthorized)){let A=u?.onUnauthorized||l;A&&A(m);}if(typeof R=="function")R(m);else return m},z=(c,R=()=>{})=>$({...c,withCredentials:typeof c.withCredentials=="boolean"?c.withCredentials:y}).then(R).catch(u=>R(u.response,u)),v=(c,R,u,D,g)=>{let f={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...g},U={...f.headers};if(f.token&&(typeof f.token=="boolean"?s&&(U.Authorization=`Bearer ${s}`):f.token&&(U.Authorization=`Bearer ${f.token}`)),a&&(u=a(u)),(typeof f?.encryptRequest=="boolean"?f?.encryptRequest:S)&&u){let m=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:T;u=t(u,m);}return z({url:R,method:c,data:u,headers:U,responseType:f.responseType,signal:f.signal,withCredentials:f.withCredentials,onUploadProgress:m=>{f?.onUploadProgress&&f?.onUploadProgress(m);}},(m,x)=>j(m,D,f,x))};return {client:z,post:(c,R,u,D)=>v("POST",`${c}`,R,u,D),put:(c,R,u,D)=>v("PUT",`${c}`,R,u,D),patch:(c,R,u,D)=>v("PATCH",`${c}`,R,u,D),delete:(c,R,u)=>v("DELETE",`${c}`,null,R,u),get:(c,R,u)=>v("GET",`${c}`,null,R,u),upload:(c,R,u,D)=>{let g=new FormData;return Object.keys(R).forEach(P=>g.append(P,R[P])),v("POST",`${c}`,g,u,{infoSuccess:false,...D,headers:{"Content-Type":"multipart/form-data",...D?.headers}})},stream:async(c,R,u,D,g)=>{try{let f={...{token:!0,responseType:"json",infoError:!0},...g},U={"Content-Type":"application/json",...o,...f.headers};if(f.token){let O=typeof f.token=="boolean"?s:f.token;O&&(U.Authorization=`Bearer ${O}`);}let C=u;if(a&&(C=a(C)),(typeof f.encryptRequest=="boolean"?f.encryptRequest:S)&&C){let O=f.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?r:f.passphrase:T;C=t(C,O);}let x=await fetch(`${n}${R}`,{method:c,headers:U,credentials:f.withCredentials?"include":"same-origin",signal:f.signal,body:JSON.stringify(C)}),h=x?.status,A=h===401;if(!x.ok){let O=x?.statusText||"Error";try{let V=x.headers.get("content-type")||"",N=await x.clone().text();if(N)if(V.includes("application/json"))try{let J=JSON.parse(N);if((typeof g?.encryptResponse=="boolean"?g?.encryptResponse:w)&&u){let pe=g?.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?r:g.passphrase:T;try{u=e(J,pe);}catch{try{u=e(J,r);}catch{}}}O=J?.message||O;}catch{O=N;}else O=N;}catch{}let Y=typeof g?.disabledToastWhenCancel=="boolean"?g?.disabledToastWhenCancel:b,K={status:!1,data:void 0,message:O,isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0};g?.infoError&&p&&!Y&&p(K),D(K);return}let q=x.body.getReader(),E=new TextDecoder("utf-8"),H="",X=!1;for(;!X;){let{done:O,value:Y}=await q.read();X=O,H+=E.decode(Y,{stream:!0});let K=H.split(`
|
|
4
4
|
|
|
5
|
-
`);
|
|
5
|
+
`);H=K.pop();for(let V of K)if(V.startsWith("data:"))try{let N=se(V);D({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!1});}catch{}}D({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:A,httpCode:h,isDone:!0});}catch(P){let f=P?.name==="AbortError";D({status:false,data:void 0,message:P instanceof Error?P.message:"Internal Server Error",isCancel:f,isUnauthorization:false,httpCode:400,isDone:true});}}}}};function Ve(t,e){!t||typeof t!="object"||Object.keys(t).forEach(r=>{let n=t[r],s=e?`${e}.${r}`:r;if(typeof n=="function"){try{Object.defineProperty(n,"__path",{value:s,writable:!0,enumerable:!1,configurable:!0});}catch{n.__path=s;}try{Object.defineProperty(n,"__isVoid",{value:n.length===2,writable:!0,enumerable:!1,configurable:!0});}catch{n.__isVoid=n.length===2;}}else n&&typeof n=="object"&&Ve(n,s);});}function vo(t,e){let r={};for(let n in t){let s=t[n];r[n]=()=>{let a=s(e);return Ve(a,n),a};}return r}function Mo(t){let e=[...t],r=a=>a==null?"":String(a),n=(a,i)=>{if(Array.isArray(i.and))return i.and.every(o=>n(a,o));if(Array.isArray(i.or))return i.or.some(o=>n(a,o));for(let[o,l]of Object.entries(i)){if(o==="and"||o==="or")continue;let{opt:p="eq",value:d,required:b=true}=typeof l=="object"&&l!==null&&"value"in l?l:{value:l};if(!b&&(d==null||d===""))continue;let y=k(a,o,void 0);switch(p){case "eq":if(y!==d)return false;break;case "neq":if(y===d)return false;break;case "gt":if(!(y>d))return false;break;case "gte":if(!(y>=d))return false;break;case "lt":if(!(y<d))return false;break;case "lte":if(!(y<=d))return false;break;case "contains":{if(y==null||d==null)return false;if(Array.isArray(y)){if(!y.some(w=>r(w).toLowerCase().includes(r(d).toLowerCase())))return false}else if(!r(y).toLowerCase().includes(r(d).toLowerCase()))return false;break}case "notContains":{if(y==null)break;if(Array.isArray(y)){if(y.some(w=>r(w).toLowerCase().includes(r(d).toLowerCase())))return false}else if(r(y).toLowerCase().includes(r(d).toLowerCase()))return false;break}case "startsWith":if(y==null||d==null||!String(y).startsWith(String(d)))return false;break;case "endsWith":if(y==null||d==null||!String(y).endsWith(String(d)))return false;break;case "in":if(!Array.isArray(d)||!d.includes(y))return false;break;case "notIn":if(Array.isArray(d)&&d.includes(y))return false;break;default:return false}}return true},s={where(a){return a&&(e=e.filter(i=>n(i,a))),s},sort(a){let i=Object.entries(a);return e.sort((o,l)=>{for(let[p,d]of i){let b=k(o,p),y=k(l,p);if(b!==y)return d==="asc"?b>y?1:-1:b<y?1:-1}return 0}),s},distinct(a){let i=Array.isArray(a)?a:a?[a]:[],o=new Set;return e=e.filter(l=>{let p=i.length?i.map(d=>k(l,d)).join("|"):JSON.stringify(l);return o.has(p)?false:(o.add(p),true)}),s},select(a){return e=e.map(i=>{let o={};for(let l of a)o[l]=k(i,l);return o}),s},paginate(a,i){let o=(a-1)*i,l=o+i;return {data:e.slice(o,l),total:e.length,page:a,pageSize:i,totalPages:Math.ceil(e.length/i)}},groupBy(a){let i={};for(let o of e){let l=k(o,a),p=String(l??"undefined");i[p]||(i[p]=[]),i[p].push(o);}return i},map(a){return e=e.map(a),s},reduce(a,i){return e.reduce(a,i)},limit(a){return e=e.slice(0,a),s},get(){return e}};return s}export{ut as BgsCoreProvider,Dt as DataTypeEnum,Tt as HttpMethod,vo as bindApi,Pe as capitalizeWords,Cn as createApiHelper,Do as createDatabase,Bn as createElement,no as createStore,xo as createTable,hr as debounce,de as decrypt,Ee as decryptString,Z as defaultState,ur as diffJson,fe as encrypt,ve as encryptString,br as filterDOMPropsLite,Se as generateCacheKey,pr as generateUUID,Ke as getApiActions,xr as getDateRangeLabelFromSorted,k as getFieldValue,Tr as getInitials,Dr as getMinMaxDate,Cr as getTotalMinutes,dr as isArray,ue as isDirtyRaw,F as isNotEmpty,st as isValidNumber,Rr as jsonCopy,Ce as labelFormatter,Ar as mappingData,fr as mappingUndefinedtoNull,M as moment,it as objectToQueryString,se as parseSSEChunk,Oe as parseStringToNumber,Mo as query,Me as registerApi,yr as renderChildren,Ae as replaceNullStrings,Rt as safeUpdate,mr as sorting,In as splitElement,ot as stableStringify,gr as summary,$e as unregisterApi,bt as useApiLoad,ee as useApiLoadStore,Pn as useApiSend,Fn as useApiStore,lo as useApiStream,_ as useBgsCore,Uo as useCreateApi,G as useCrypto,fo as useDbLive,Ro as useDbLiveFlag,vn as useDebounce,rn as useDelay,eo as useDynamicSvgImport,Gn as useElementBounding,cn as useFormatted,fn as useInterval,mn as useKeyPress,zn as useParseStringToNumber,qn as useScrollTrigger,Ne as useStorage,so as wrapApi};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgscore/react-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
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",
|