@bgscore/react-core 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +33 -2
- package/dist/index.d.ts +33 -2
- package/dist/index.js +2 -2
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var ee=require('react'),M=require('dayjs'),Le=require('dayjs/plugin/utc'),Be=require('dayjs/plugin/timezone'),He=require('dayjs/plugin/duration'),je=require('dayjs/plugin/advancedFormat'),Ve=require('dayjs/plugin/localizedFormat'),_e=require('dayjs/plugin/relativeTime'),ze=require('dayjs/plugin/isSameOrBefore'),We=require('dayjs/plugin/isSameOrAfter'),Ye=require('dayjs/plugin/weekOfYear'),Je=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Pe=require('crypto-js/aes'),Oe=require('crypto-js/pbkdf2'),st=require('crypto-js/enc-utf8'),Z=require('crypto-js/enc-base64'),Se=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),Tt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ee__default=/*#__PURE__*/_interopDefault(ee);var M__default=/*#__PURE__*/_interopDefault(M);var Le__default=/*#__PURE__*/_interopDefault(Le);var Be__default=/*#__PURE__*/_interopDefault(Be);var He__default=/*#__PURE__*/_interopDefault(He);var je__default=/*#__PURE__*/_interopDefault(je);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var _e__default=/*#__PURE__*/_interopDefault(_e);var ze__default=/*#__PURE__*/_interopDefault(ze);var We__default=/*#__PURE__*/_interopDefault(We);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Je__default=/*#__PURE__*/_interopDefault(Je);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var st__default=/*#__PURE__*/_interopDefault(st);var Z__default=/*#__PURE__*/_interopDefault(Z);var Se__default=/*#__PURE__*/_interopDefault(Se);var Tt__default=/*#__PURE__*/_interopDefault(Tt);M__default.default.extend(Le__default.default);M__default.default.extend(Be__default.default);M__default.default.extend(He__default.default);M__default.default.extend(je__default.default);M__default.default.extend(Ve__default.default);M__default.default.extend(_e__default.default);M__default.default.extend(ze__default.default);M__default.default.extend(We__default.default);M__default.default.extend(Ye__default.default);M__default.default.extend(Je__default.default);var q=M__default.default;function Zt(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Qt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var er=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function tr(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function $(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var he={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=he.snackCase(he.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function rr(e,t){return typeof e=="function"?e(t):e}var N=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},nr={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=N(r,t)?N(r,t):"",a=N(n,t)?N(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=N(r,t)?N(r,t):"",a=N(n,t)?N(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},or=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?N(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function sr(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ge(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function Te(e,t){return Ge([t??"undefined",e??"undefined"])}function De(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function ar(e,t=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{e(...o);},t*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var xe=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function ae(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Xe(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&ae(n,r))return true}return false}function Ce(e="",t=false,r="."){if(!Xe(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var Ze=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 ir(e){let t={};for(let r in e)Ze.has(r)&&(t[r]=e[r]);return t}function lr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function pr(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(q).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 cr(e,t){let r=q(e),n=q(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function ur(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=q(e,"HH:mm",true),n=q(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var fr=(e=[],t="label",r="value",n,o=" | ")=>{if(!Array.isArray(e))return [];let a=e.map((l,p)=>{if(typeof l!="object"){let f=typeof t=="function"?t(l,p):l,R=typeof r=="function"?r(l,p):l;return {label:f,value:R,index:p,rowData:l}}else {let f=typeof t=="function"?t(l,p):N(l,t,""),R=typeof r=="function"?r(l,p):N(l,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:p,rowData:l}}});if(!n)return [{items:a}];let i=Array.isArray(n)?n:[n],s=new Map;for(let l of a){let p=l.rowData,f=i.map(y=>typeof p=="object"?N(p,y,""):"").map(y=>String(y??"")).join(o),R=s.get(f)||[];R.push(l),s.set(f,R);}return Array.from(s.entries()).map(([l,p])=>({group:l,items:p}))};function Qe(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!$(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Qe(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function be(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=be(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=be(e[t]));return e}var Ae=ee.createContext(void 0);function I(){let e=ee.useContext(Ae);return e||{}}var nt=({children:e,value:t})=>{let r={...t};return ee.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(Ae.Provider,{value:r,children:e})};function ie(e,t){let r=Se__default.default.random(16),n=Se__default.default.random(16),o=Oe__default.default(t,r,{keySize:256/32,iterations:1e3}),a=Pe__default.default.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(Z__default.default),iv:n.toString(Z__default.default),encrypted:a}}function le(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Oe__default.default(t,Z__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=Pe__default.default.decrypt(o,a,{iv:Z__default.default.parse(n)}).toString(st__default.default);return JSON.parse(s)}function we(e,t){return JSON.stringify(ie(e,t))}function qe(e,t){return le(JSON.parse(e),t)}function Q(){let{passphrase:e}=I();return {passphrase:e,encrypt(t,r){return ie(t,r||e)},decrypt(t,r){return le(t,r||e)},encryptString(t,r){return we(t,r||e)},decryptString(t,r){return qe(t,r||e)}}}var Ue=()=>{let{encrypt:e,decrypt:t}=Q(),r=ee.useCallback((i,s)=>{try{let l=e(s);localStorage.setItem(i,JSON.stringify(l));}catch(l){console.error("Failed to save to storage:",l);}},[e]),n=ee.useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,l]=ee.useState(()=>{try{let p=localStorage.getItem(i);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return ee.useEffect(()=>{let p=f=>{if(f.key===i)if(f.newValue)try{l(t(JSON.parse(f.newValue)));}catch(R){console.error("Decrypt error from storage event",R);}else l(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,t]),s},a=ee.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function pt(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},J=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};pt(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var ce=new Map,ve=(e,t)=>{ce.set(e,t);},ke=e=>{ce.delete(e);},Ne=e=>ce.get(e);function ut(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,l=s?.storeName||`${a}`,p=s?.mergeStrategy??"replace",[f,R,y,x]=J(shallow.useShallow(b=>{let m=b.states[l]??Y;return [m.loading,m.isCancel,m.response,b.updateState]})),{storageKey:O,cache:h,clearPreviousData:E,refetchOnWindowFocus:F}=I(),L=Ue(),_=ee.useRef(void 0),B=ee.useRef(null),{cacheName:j,cacheKey:H,timeout:te,timeoutUnit:re,persistence:ne,cacheEnabled:T}=ee.useMemo(()=>{let b=O?L.get(O):void 0,m=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=Te({...i,session:b},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof h?.enabled=="boolean"&&(u=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(h?.timeout)&&(typeof h?.timeout=="number"?(P=h.timeout,v="s"):typeof h?.timeout=="object"&&(P=h?.timeout.value,v=h?.timeout.unit)),$(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?u=s.cache.enabled:u=true,typeof s?.cache?.timeout=="number"?(P=s.cache.timeout,v="s"):typeof s?.cache?.timeout=="object"&&(P=s.cache.timeout.value,v=s.cache.timeout.unit)):u=s.cache),{cacheName:m,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,i,O,h,a]);ee.useEffect(()=>{let b=JSON.stringify($(_.current)?_.current:""),m=JSON.stringify($(i)?i:""),A=_.current===void 0;(b!==m||A)&&!s?.hold&&((s?.clearPreviousData??E)&&x(l,{response:null}),c(),_.current=i),s?.onChange&&s?.onChange(i,U);},[i,s?.clearPreviousData,E,s?.hold,...s?.trigger||[]]),ee.useEffect(()=>{let b=async()=>{!ne&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),B.current?.abort();}},[ne,j,H,l,B]);let c=ee.useCallback(async b=>{let m=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(m=s?.beforeRequest(i)),T&&!b&&!R){s?.onBeforeRequest&&s?.onBeforeRequest(i);let A=await caches.open(j),S=await(await A.match(H))?.json();if(S){let{data:P,expired:v}=S;if(q().isAfter(v))await A.delete(H);else {s?.afterResponse&&P?.data&&(P.data=s?.afterResponse(P.data,m)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,m),s?.onAfterResponse?.(P,m),x(l,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,x(l,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let u=o?await t(void 0,{...s,signal:A.signal}):await t(m,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,p==="append"&&$(y.__rawData)&&$(u?.data)){if(Array.isArray(y.__rawData)&&Array.isArray(u?.data)){let S=[...y?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof y.__rawData=="object"&&typeof u.data=="object"){let S={...y.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,m)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,m),u.status||s?.onError?.(u,m),s?.onAfterResponse?.(u,m),x(l,{loading:false,response:u,isCancel:false}),T&&u.status){let S=q().add(te,re).toISOString(),P={data:u,expired:S},v=await caches.open(j),z=new Response(JSON.stringify(P));await v.put(H,z);}}},[i,t,s,R,j,H,te,re,T,y]);ee.useEffect(()=>{if(s?.refreshInterval){let b=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,m=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{c();},q.duration(b,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,c]);let d=ee.useRef(null),{enabledRefetch:C,timeoutRefetch:D,timeoutUnitRefetch:w}=ee.useMemo(()=>{let b=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,m=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof m=="number"?m:m?.value??60*5,u=typeof m=="object"?m.unit:"s";return {enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);ee.useEffect(()=>{if(!C||s?.hold)return;let b=q.duration(D,w).asMilliseconds(),m=()=>{let u=Date.now(),S=d.current;S!==null&&u-S>=b&&c(),d.current=null;},A=()=>{d.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",A);}},[C,D,w,c,s?.hold]);let g=ee.useCallback(()=>{B.current?.abort(),B.current=null,x(l,{loading:false,isCancel:true});},[l,B]),K=ee.useCallback(()=>{x(l,{loading:false,response:null});},[l]),U=ee.useMemo(()=>({...y,loading:f,refresh:c,abort:g,clear:K,response:y,isCancel:R,clone:(b,m)=>ut(t,b,{storeName:`${a}-clone`,...m})}),[y,f,c,g,K,R,t]);return ee.useEffect(()=>(ve(l,U),()=>{ke(l);}),[U,l]),[y?.data,U]}async function Vr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var ft=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ft||{}),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 Gr=()=>{let{format:e}=I();return (t,r,n)=>{try{return r==="number"?Ee(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?gt(t,{display:e[r]?.display,value:e[r]?.value,...n}):r==="boolean"?mt(t,n):r==="string"?yt(t,n):t?.toString()}catch{return}}};function mt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function yt(e,t){if(!$(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=De(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}Ee(10,{thouSep:",",decSep:".",decDigits:2});function Ee(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let R=String(e??"").trim().trim();if(ae(R,r))return R}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let f=Math.pow(10,n);i=Math[o](i*f)/f;}else i=Math[o](i);else if(typeof n=="number"){let f=Math.pow(10,n);i=Math.trunc(i*f)/f;}let s=0;if(n==="auto"){let f=i.toString(),R=f.indexOf(".");R!==-1&&(s=f.length-R-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function gt(e,{display:t,value:r}){if(!$(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function Qr(e,{interval:t,lead:r}){let n=ee.useRef(null);ee.useEffect(()=>{n.current=e;},[e]),ee.useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function rn(e,t,r){let[n,o]=ee.useState(false),a=(p,f)=>typeof e=="string"&&p===e||typeof e=="number"&&f===e,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),s=p=>{let{key:f,keyCode:R}=p,y=p.ctrlKey,x=p.altKey,O=p.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(f,R)&&(t==="ctrl"&&y||t==="alt"&&x||t==="shift"&&O)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));else {let h=t.every(E=>E==="ctrl"?y:E==="alt"?x:E==="shift"?O:false);a(f,R)&&h&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));}else a(f,R)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));},l=({key:p,keyCode:f})=>{a(p,f)&&o(false);};return ee.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",l),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",l);}),[]),n}var un=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:l,withCredentials:p,encryptRequest:f,encryptResponse:R,passphrase:y})=>{let{encrypt:x,decrypt:O,passphrase:h}=Q(),E=(T,c,d,C)=>{let D=C?.code==="ERR_CANCELED",w=T?.status===401,g=T?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:R)&&g){let u=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?h:d.passphrase:y;try{g=O(g,u);}catch{try{g=O(g,h);}catch{}}}let b={...n({...T,data:g,isCancel:D,isUnauthorization:w},C),isCancel:D,isUnauthorization:w,httpCode:T?.status},m=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:l,A=s?s(b,d):!w;if((d?.infoSuccess&&b.status||d?.infoError&&!b.status)&&i&&(!D||!m)&&i(b),!A&&(!D||!d?.disabledHandleUnauthorized)){let u=d?.onUnauthorized||a;u&&u(b);}if(typeof c=="function")c(b);else return b},F=(T,c=()=>{})=>Tt__default.default.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:p})(T).then(c).catch(C=>c(C.response,C)),L=(T,c,d,C,D)=>{let g={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},K={"Content-Type":"application/json",...o,...g.headers};if(g.token&&(typeof g.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):g.token&&(K.Authorization=`Bearer ${g.token}`)),r&&(d=r(d)),(typeof g?.encryptRequest=="boolean"?g?.encryptRequest:f)&&d){let b=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:y;d=x(d,b);}return F({url:c,method:T,data:d,headers:K,responseType:g.responseType,signal:g.signal,withCredentials:g.withCredentials,onUploadProgress:b=>{g?.onUploadProgress&&g?.onUploadProgress(b);}},(b,m)=>E(b,C,g,m))};return {client:F,post:(T,c,d,C)=>L("POST",`${T}`,c,d,C),put:(T,c,d,C)=>L("PUT",`${T}`,c,d,C),patch:(T,c,d,C)=>L("PATCH",`${T}`,c,d,C),delete:(T,c,d)=>L("DELETE",`${T}`,null,c,d),get:(T,c,d)=>L("GET",`${T}`,null,c,d),upload:(T,c,d,C)=>{let D=new FormData;return Object.keys(c).forEach(w=>D.append(w,c[w])),L("POST",`${T}`,D,d,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(T,c,d,C,D)=>{try{let g={...{token:!0,responseType:"json",infoError:!0},...D},K={"Content-Type":"application/json",...o,...g.headers};if(g.token){let k=typeof g.token=="boolean"?t:g.token;k&&(K.Authorization=`Bearer ${k}`);}let U=d;if(r&&(U=r(U)),(typeof g.encryptRequest=="boolean"?g.encryptRequest:f)&&U){let k=g.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?h:g.passphrase:y;U=x(U,k);}let m=await fetch(`${e}${c}`,{method:T,headers:K,credentials:g.withCredentials?"include":"same-origin",signal:g.signal,body:JSON.stringify(U)}),A=m?.status,u=A===401;if(!m.ok){let k=m?.statusText||"Error";try{let X=m.headers.get("content-type")||"",V=await m.clone().text();if(V)if(X.includes("application/json"))try{let se=JSON.parse(V);if((typeof D?.encryptResponse=="boolean"?D?.encryptResponse:R)&&d){let Fe=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:y;try{d=O(se,Fe);}catch{try{d=O(se,h);}catch{}}}k=se?.message||k;}catch{k=V;}else k=V;}catch{}let oe=typeof D?.disabledToastWhenCancel=="boolean"?D?.disabledToastWhenCancel:l,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};D?.infoError&&i&&!oe&&i(W),C(W);return}let S=m.body.getReader(),P=new TextDecoder("utf-8"),v="",z=!1;for(;!z;){let{done:k,value:oe}=await S.read();z=k,v+=P.decode(oe,{stream:!0});let W=v.split(`
|
|
1
|
+
'use strict';var ee=require('react'),M=require('dayjs'),He=require('dayjs/plugin/utc'),je=require('dayjs/plugin/timezone'),Ve=require('dayjs/plugin/duration'),_e=require('dayjs/plugin/advancedFormat'),ze=require('dayjs/plugin/localizedFormat'),We=require('dayjs/plugin/relativeTime'),Ye=require('dayjs/plugin/isSameOrBefore'),Je=require('dayjs/plugin/isSameOrAfter'),Ge=require('dayjs/plugin/weekOfYear'),Qe=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),we=require('crypto-js/aes'),qe=require('crypto-js/pbkdf2'),it=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),Oe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),xt=require('axios'),Vt=require('dexie');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ee__default=/*#__PURE__*/_interopDefault(ee);var M__default=/*#__PURE__*/_interopDefault(M);var He__default=/*#__PURE__*/_interopDefault(He);var je__default=/*#__PURE__*/_interopDefault(je);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var _e__default=/*#__PURE__*/_interopDefault(_e);var ze__default=/*#__PURE__*/_interopDefault(ze);var We__default=/*#__PURE__*/_interopDefault(We);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 we__default=/*#__PURE__*/_interopDefault(we);var qe__default=/*#__PURE__*/_interopDefault(qe);var it__default=/*#__PURE__*/_interopDefault(it);var X__default=/*#__PURE__*/_interopDefault(X);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var xt__default=/*#__PURE__*/_interopDefault(xt);var Vt__default=/*#__PURE__*/_interopDefault(Vt);M__default.default.extend(He__default.default);M__default.default.extend(je__default.default);M__default.default.extend(Ve__default.default);M__default.default.extend(_e__default.default);M__default.default.extend(ze__default.default);M__default.default.extend(We__default.default);M__default.default.extend(Ye__default.default);M__default.default.extend(Je__default.default);M__default.default.extend(Ge__default.default);M__default.default.extend(Qe__default.default);var q=M__default.default;function ir(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function lr(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var cr=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function pr(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function $(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var Te={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=Te.snackCase(Te.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function ur(e,t){return typeof e=="function"?e(t):e}var E=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},fr={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},dr=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?E(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function mr(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Xe(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function xe(e,t){return Xe([t??"undefined",e??"undefined"])}function Ce(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function yr(e,t=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{e(...o);},t*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var Ae=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function le(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Ze(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&le(n,r))return true}return false}function Se(e="",t=false,r="."){if(!Ze(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var et=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 gr(e){let t={};for(let r in e)et.has(r)&&(t[r]=e[r]);return t}function Rr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function br(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(q).sort((a,l)=>a.diff(l)),n=r[0].format("YYYY-MM-DD"),o=r.at(-1).format("YYYY-MM-DD");return [n,o]}function hr(e,t){let r=q(e),n=q(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function Tr(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=q(e,"HH:mm",true),n=q(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var Dr=(e=[],t="label",r="value",n,o=" | ")=>{if(!Array.isArray(e))return [[],[]];let a=e.map((i,c)=>{if(typeof i!="object"){let f=typeof t=="function"?t(i,c):i,R=typeof r=="function"?r(i,c):i;return {label:f,value:R,index:c,rowData:i}}else {let f=typeof t=="function"?t(i,c):E(i,t,""),R=typeof r=="function"?r(i,c):E(i,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:c,rowData:i}}});if(!n)return [[{items:a}],a];let l=Array.isArray(n)?n:[n],s=new Map;for(let i of a){let c=i.rowData,f=l.map(g=>String(typeof c=="object"?E(c,g,"")??"":"")).join(o),R=s.get(f)||[];R.push(i),s.set(f,R);}return [Array.from(s.entries()).map(([i,c])=>({group:i,items:c})),a]};function tt(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!$(o))continue;Array.isArray(o)?o.forEach(l=>{r.push(`${a}=${encodeURIComponent(l)}`);}):typeof o=="object"&&o!==null?r.push(tt(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function De(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=De(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=De(e[t]));return e}var Pe=ee.createContext(void 0);function L(){let e=ee.useContext(Pe);return e||{}}var st=({children:e,value:t})=>{let r={...t};return ee.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:l}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},l);}})();},[t.localeConfig]),jsxRuntime.jsx(Pe.Provider,{value:r,children:e})};function ce(e,t){let r=Oe__default.default.random(16),n=Oe__default.default.random(16),o=qe__default.default(t,r,{keySize:256/32,iterations:1e3}),a=we__default.default.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(X__default.default),iv:n.toString(X__default.default),encrypted:a}}function pe(e,t){let{salt:r,iv:n,encrypted:o}=e,a=qe__default.default(t,X__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=we__default.default.decrypt(o,a,{iv:X__default.default.parse(n)}).toString(it__default.default);return JSON.parse(s)}function Ue(e,t){return JSON.stringify(ce(e,t))}function ve(e,t){return pe(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return ce(t,r||e)},decrypt(t,r){return pe(t,r||e)},encryptString(t,r){return Ue(t,r||e)},decryptString(t,r){return ve(t,r||e)}}}var ke=()=>{let{encrypt:e,decrypt:t}=Z(),r=ee.useCallback((l,s)=>{try{let i=e(s);localStorage.setItem(l,JSON.stringify(i));}catch(i){console.error("Failed to save to storage:",i);}},[e]),n=ee.useCallback(l=>{try{let s=localStorage.getItem(l);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=l=>{let[s,i]=ee.useState(()=>{try{let c=localStorage.getItem(l);return c?t(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return ee.useEffect(()=>{let c=f=>{if(f.key===l)if(f.newValue)try{i(t(JSON.parse(f.newValue)));}catch(R){console.error("Decrypt error from storage event",R);}else i(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[l,t]),s},a=ee.useCallback(l=>{l?localStorage.removeItem(l):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function ut(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),l=JSON.stringify(o);if(a!==l)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},J=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};ut(o,a)||e(l=>({states:{...l.states,[r]:a}}));}}));var fe=new Map,Ee=(e,t)=>{fe.set(e,t);},Ne=e=>{fe.delete(e);},Me=e=>fe.get(e);function dt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,l=o?void 0:r,s=o?r:n,i=s?.storeName||`${a}`,c=s?.mergeStrategy??"replace",[f,R,g,x]=J(shallow.useShallow(h=>{let m=h.states[i]??Y;return [m.loading,m.isCancel,m.response,h.updateState]})),{storageKey:O,cache:b,clearPreviousData:N,refetchOnWindowFocus:F}=L(),I=ke(),_=ee.useRef(void 0),B=ee.useRef(null),{cacheName:j,cacheKey:H,timeout:ne,timeoutUnit:oe,persistence:se,cacheEnabled:T}=ee.useMemo(()=>{let h=O?I.get(O):void 0,m=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=xe({...l,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof b?.enabled=="boolean"&&(u=b.enabled);let S=false;typeof b?.persistence=="boolean"&&(S=b?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(b?.timeout)&&(typeof b?.timeout=="number"?(P=b.timeout,v="s"):typeof b?.timeout=="object"&&(P=b?.timeout.value,v=b?.timeout.unit)),$(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?u=s.cache.enabled:u=true,typeof s?.cache?.timeout=="number"?(P=s.cache.timeout,v="s"):typeof s?.cache?.timeout=="object"&&(P=s.cache.timeout.value,v=s.cache.timeout.unit)):u=s.cache),{cacheName:m,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,l,O,b,a]);ee.useEffect(()=>{let h=JSON.stringify($(_.current)?_.current:""),m=JSON.stringify($(l)?l:""),A=_.current===void 0;(h!==m||A)&&!s?.hold&&((s?.clearPreviousData??N)&&x(i,{response:null}),p(),_.current=l),s?.onChange&&s?.onChange(l,U);},[l,s?.clearPreviousData,N,s?.hold,...s?.trigger||[]]),ee.useEffect(()=>{let h=async()=>{!se&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),B.current?.abort();}},[se,j,H,i,B]);let p=ee.useCallback(async h=>{let m=l;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(m=s?.beforeRequest(l)),T&&!h&&!R){s?.onBeforeRequest&&s?.onBeforeRequest(l);let A=await caches.open(j),S=await(await A.match(H))?.json();if(S){let{data:P,expired:v}=S;if(q().isAfter(v))await A.delete(H);else {s?.afterResponse&&P?.data&&(P.data=s?.afterResponse(P.data,m)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,m),s?.onAfterResponse?.(P,m),x(i,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,x(i,{loading:true}),s?.logging&&console.log("Before request",l),s?.onBeforeRequest&&s?.onBeforeRequest(l);let u=o?await t(void 0,{...s,signal:A.signal}):await t(m,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,c==="append"&&$(g.__rawData)&&$(u?.data)){if(Array.isArray(g.__rawData)&&Array.isArray(u?.data)){let S=[...g?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof g.__rawData=="object"&&typeof u.data=="object"){let S={...g.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,m)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,m),u.status||s?.onError?.(u,m),s?.onAfterResponse?.(u,m),x(i,{loading:false,response:u,isCancel:false}),T&&u.status){let S=q().add(ne,oe).toISOString(),P={data:u,expired:S},v=await caches.open(j),z=new Response(JSON.stringify(P));await v.put(H,z);}}},[l,t,s,R,j,H,ne,oe,T,g]);ee.useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,m=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{p();},q.duration(h,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,p]);let d=ee.useRef(null),{enabledRefetch:C,timeoutRefetch:D,timeoutUnitRefetch:w}=ee.useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,m=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof m=="number"?m:m?.value??60*5,u=typeof m=="object"?m.unit:"s";return {enabledRefetch:h,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);ee.useEffect(()=>{if(!C||s?.hold)return;let h=q.duration(D,w).asMilliseconds(),m=()=>{let u=Date.now(),S=d.current;S!==null&&u-S>=h&&p(),d.current=null;},A=()=>{d.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",A);}},[C,D,w,p,s?.hold]);let y=ee.useCallback(()=>{B.current?.abort(),B.current=null,x(i,{loading:false,isCancel:true});},[i,B]),K=ee.useCallback(()=>{x(i,{loading:false,response:null});},[i]),U=ee.useMemo(()=>({...g,loading:f,refresh:p,abort:y,clear:K,response:g,isCancel:R,clone:(h,m)=>dt(t,h,{storeName:`${a}-clone`,...m})}),[g,f,p,y,K,R,t]);return ee.useEffect(()=>(Ee(i,U),()=>{Ne(i);}),[U,i]),[g?.data,U]}async function Zr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var mt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(mt||{}),yt=(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))(yt||{});var sn=()=>{let{format:e}=L();return (t,r,n)=>{try{return r==="number"?$e(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?bt(t,{display:e[r]?.display,value:e[r]?.value,...n}):r==="boolean"?gt(t,n):r==="string"?Rt(t,n):t?.toString()}catch{return}}};function gt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function Rt(e,t){if(!$(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=Ce(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}$e(10,{thouSep:",",decSep:".",decDigits:2});function $e(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let R=String(e??"").trim().trim();if(le(R,r))return R}if(e==null||isNaN(Number(e)))return "";let l=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let f=Math.pow(10,n);l=Math[o](l*f)/f;}else l=Math[o](l);else if(typeof n=="number"){let f=Math.pow(10,n);l=Math.trunc(l*f)/f;}let s=0;if(n==="auto"){let f=l.toString(),R=f.indexOf(".");R!==-1&&(s=f.length-R-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return l.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function bt(e,{display:t,value:r}){if(!$(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function cn(e,{interval:t,lead:r}){let n=ee.useRef(null);ee.useEffect(()=>{n.current=e;},[e]),ee.useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function fn(e,t,r){let[n,o]=ee.useState(false),a=(c,f)=>typeof e=="string"&&c===e||typeof e=="number"&&f===e,l=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),s=c=>{let{key:f,keyCode:R}=c,g=c.ctrlKey,x=c.altKey,O=c.shiftKey;if(!l(document.activeElement))if(t)if(typeof t=="string")a(f,R)&&(t==="ctrl"&&g||t==="alt"&&x||t==="shift"&&O)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));else {let b=t.every(N=>N==="ctrl"?g:N==="alt"?x:N==="shift"?O:false);a(f,R)&&b&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));}else a(f,R)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));},i=({key:c,keyCode:f})=>{a(c,f)&&o(false);};return ee.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",i),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",i);}),[]),n}var Tn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:l,handleAuthorization:s,disabledToastWhenCancel:i,withCredentials:c,encryptRequest:f,encryptResponse:R,passphrase:g})=>{let{encrypt:x,decrypt:O,passphrase:b}=Z(),N=(T,p,d,C)=>{let D=C?.code==="ERR_CANCELED",w=T?.status===401,y=T?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:R)&&y){let u=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?b:d.passphrase:g;try{y=O(y,u);}catch{try{y=O(y,b);}catch{}}}let h={...n({...T,data:y,isCancel:D,isUnauthorization:w},C),isCancel:D,isUnauthorization:w,httpCode:T?.status},m=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:i,A=s?s(h,d):!w;if((d?.infoSuccess&&h.status||d?.infoError&&!h.status)&&l&&(!D||!m)&&l(h),!A&&(!D||!d?.disabledHandleUnauthorized)){let u=d?.onUnauthorized||a;u&&u(h);}if(typeof p=="function")p(h);else return h},F=(T,p=()=>{})=>xt__default.default.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:c})(T).then(p).catch(C=>p(C.response,C)),I=(T,p,d,C,D)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},K={"Content-Type":"application/json",...o,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):y.token&&(K.Authorization=`Bearer ${y.token}`)),r&&(d=r(d)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:f)&&d){let h=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?b:D.passphrase:g;d=x(d,h);}return F({url:p,method:T,data:d,headers:K,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:h=>{y?.onUploadProgress&&y?.onUploadProgress(h);}},(h,m)=>N(h,C,y,m))};return {client:F,post:(T,p,d,C)=>I("POST",`${T}`,p,d,C),put:(T,p,d,C)=>I("PUT",`${T}`,p,d,C),patch:(T,p,d,C)=>I("PATCH",`${T}`,p,d,C),delete:(T,p,d)=>I("DELETE",`${T}`,null,p,d),get:(T,p,d)=>I("GET",`${T}`,null,p,d),upload:(T,p,d,C)=>{let D=new FormData;return Object.keys(p).forEach(w=>D.append(w,p[w])),I("POST",`${T}`,D,d,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(T,p,d,C,D)=>{try{let y={...{token:!0,responseType:"json",infoError:!0},...D},K={"Content-Type":"application/json",...o,...y.headers};if(y.token){let k=typeof y.token=="boolean"?t:y.token;k&&(K.Authorization=`Bearer ${k}`);}let U=d;if(r&&(U=r(U)),(typeof y.encryptRequest=="boolean"?y.encryptRequest:f)&&U){let k=y.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?b:y.passphrase:g;U=x(U,k);}let m=await fetch(`${e}${p}`,{method:T,headers:K,credentials:y.withCredentials?"include":"same-origin",signal:y.signal,body:JSON.stringify(U)}),A=m?.status,u=A===401;if(!m.ok){let k=m?.statusText||"Error";try{let Q=m.headers.get("content-type")||"",V=await m.clone().text();if(V)if(Q.includes("application/json"))try{let ie=JSON.parse(V);if((typeof D?.encryptResponse=="boolean"?D?.encryptResponse:R)&&d){let Be=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?b:D.passphrase:g;try{d=O(ie,Be);}catch{try{d=O(ie,b);}catch{}}}k=ie?.message||k;}catch{k=V;}else k=V;}catch{}let ae=typeof D?.disabledToastWhenCancel=="boolean"?D?.disabledToastWhenCancel:i,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};D?.infoError&&l&&!ae&&l(W),C(W);return}let S=m.body.getReader(),P=new TextDecoder("utf-8"),v="",z=!1;for(;!z;){let{done:k,value:ae}=await S.read();z=k,v+=P.decode(ae,{stream:!0});let W=v.split(`
|
|
2
2
|
|
|
3
|
-
`);v=W.pop();for(let
|
|
3
|
+
`);v=W.pop();for(let Q of W)if(Q.startsWith("data:"))try{let V=Ae(Q);C({status:!0,data:V,message:"",isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!1});}catch{}}C({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0});}catch(w){let y=w?.name==="AbortError";C({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:y,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Cn(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState(),[l,s]=ee.useState(0),i=ee.useRef(null);return ee.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{i.current?.abort();}},[]),[async g=>{i.current?.abort();let x=new AbortController;i.current=x,n(true),t?.beforeRequest&&(g=t?.beforeRequest(g)),t?.logging&&console.log("Before request",g),t?.onBeforeRequest&&t?.onBeforeRequest(g);let O={...t,signal:x.signal,onUploadProgress:N=>{let F=Math.round(N.loaded*100/(N.total||1));s(F);}},b=e.__isVoid?await e(void 0,O):await e(g,void 0,O);t?.logging&&console.log("After response",b),a(b),n(false),s(0),t?.afterResponse&&b?.data&&(b.data=t?.afterResponse(b.data,g)),b.status&&t?.onSuccess&&t?.onSuccess(b,g),!b.status&&t?.onError&&t?.onError(b,g),t?.onAfterResponse?.(b,g);},{...o,loading:r,abort:()=>{i.current?.abort(),i.current=null,n(false),s(0);},progress:l,reset:()=>{n(false),s(0),a(null);}}]}function St(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Pt=typeof window<"u"?window:null;function Pn(e={}){let{getTrigger:t=St,target:r=Pt,disableHysteresis:n=false,threshold:o=100}=e,a=ee__default.default.useRef(0),[l,s]=ee__default.default.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return ee__default.default.useEffect(()=>{let i=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(i(),r)return r.addEventListener("scroll",i,{passive:true}),()=>{r.removeEventListener("scroll",i);}},[r,t,n,o]),l}function qn(e,t){let r,n;typeof t=="number"?(r=t,n=void 0):(r=t?.delay??500,n=t?.onDebounce);let[o,a]=ee.useState(e);return ee.useEffect(()=>{let l=setTimeout(()=>{a(e),n&&n(e);},r);return ()=>clearTimeout(l)},[e,r,n]),o}var $n=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:l,clear:s,clone:i}=Me(n)||{},c=O=>{let b=O.states[n]??Y;return {loading:b.loading,isCancel:b.isCancel,response:b.response}},{loading:f,isCancel:R,response:g}=o?J(shallow.useShallow(c)):J(c),x=ee.useMemo(()=>[g?.data,{...g,loading:f,isCancel:R,refresh:a,abort:l,clear:s,clone:i}],[g,f,R,a,l,s,i]);return t?.selector?t.selector(x):x};var Fn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},Le=(e,t)=>{let r=false;return ee__default.default.Children.forEach(e,n=>{if(ee__default.default.isValidElement(n)){let o=n,a=n.type.displayName;(t.includes(a)||o.props?.children&&Le(o.props.children,t))&&(r=true);}}),r},In=(e,t)=>{let r={others:[]},n=o=>{ee__default.default.Children.forEach(o,a=>{if(ee__default.default.isValidElement(a)){let l=a.type.displayName,s=a,i=s.props?.children;t.includes(l)?r[l]=a:i&&Le(i,t)?n(s.props.children):r.others.push(a);}else r.others.push(a);});};return n(e),r};function Vn(){let{format:e}=L();return (t="",r=false)=>Se(t,r,e.number.decSep)}function Wn(e,t){let r=ee.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0});return ee.useEffect(()=>{if(!e)return;let n=()=>{let a=e.getBoundingClientRect();r.current={width:a.width,height:a.height,top:a.top,left:a.left,right:a.right,bottom:a.bottom},t&&t(r.current);};n();let o=new ResizeObserver(()=>n());return o.observe(e),()=>o.disconnect()},[e,t]),r}var he={};function Qn(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState(),[l,s]=ee.useState();return ee.useEffect(()=>{if(!e)return;if(he[e]){s(()=>he[e]);return}n(true),(async()=>{try{let c=await import(`${t.path}${e}${t.extension??".svg?react"}`);he[e]=c.default,s(()=>c.default);}catch(c){a(c),console.error(c);}finally{n(false);}})();},[e,t.path,t.extension]),{error:o,loading:r,Icon:l}}function eo(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(i=>i());}function l(s){let i=ee.useRef(s?s(t):t);return ee.useSyncExternalStore(o,()=>{let c=s?s(t):t,f=i.current;return Object.is(f,c)||(i.current=c),i.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:l}}function $t(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=$t(o,[...t,n]):r[n]=o;}return r}function oo(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState([]),l=ee.useRef([]),s=ee.useRef(null);ee.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let i=async R=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),l.current=[],e(R,x=>{x.isDone||(l.current.push(x),a([...l.current])),(x.isDone||!x.status)&&(n(false),t?.onDone&&t?.onDone([...l.current])),x.status?t?.onStream&&t?.onStream(x):t?.onError&&t?.onError(x);},{signal:g.signal});},c=()=>{s.current?.abort(),s.current=null,n(false);},f=()=>{n(false),a([]),l.current=[];};return [o.map(R=>R.data),i,{loading:r,abort:c,reset:f,response:o}]}function lo(e,t){let{key:r}=t,[n,o]=ee.useState();return ee.useEffect(()=>{let a=Vt.liveQuery(()=>e(r)).subscribe(o);return ()=>a.unsubscribe()},[r]),n}function fo(e,t){let{key:r}=t,[n,o]=ee.useState(false);return ee.useEffect(()=>{let a=Vt.liveQuery(async()=>!!await e(r)).subscribe(l=>{o(s=>s!==l?l:s);});return ()=>a.unsubscribe()},[r]),n}var te,re={};function Ro({dbName:e,version:t=1,table:r}){return te||(te=new Vt__default.default(e),t=Object.keys(re).length+1,te.version(t).stores(re)),r}function bo({name:e,primaryKey:t}){re[e]||(re[e]=t);let r=()=>{let c=te.table(e);if(!c)throw new Error(`Table ${e} is not registered in Dexie`);return c};return {table:r,create:async i=>await r().add(i),update:async(i,c)=>await r().update(i,c),put:async(i,c)=>await r().put({...c,[t]:i}),detail:async i=>await r().get(i),remove:async i=>await r().delete(i)}}exports.BgsCoreProvider=st;exports.DataTypeEnum=yt;exports.HttpMethod=mt;exports.capitalizeWords=Ce;exports.createApiHelper=Tn;exports.createDatabase=Ro;exports.createElement=Fn;exports.createStore=eo;exports.createTable=bo;exports.debounce=yr;exports.decrypt=pe;exports.decryptString=ve;exports.defaultState=Y;exports.diffJson=lr;exports.encrypt=ce;exports.encryptString=Ue;exports.filterDOMPropsLite=gr;exports.generateCacheKey=xe;exports.generateUUID=ir;exports.getApiActions=Me;exports.getDateRangeLabelFromSorted=hr;exports.getFieldValue=E;exports.getInitials=Rr;exports.getMinMaxDate=br;exports.getTotalMinutes=Tr;exports.isArray=pr;exports.isDirtyRaw=le;exports.isNotEmpty=$;exports.isValidNumber=Ze;exports.jsonCopy=mr;exports.labelFormatter=Te;exports.mappingData=Dr;exports.mappingUndefinedtoNull=cr;exports.moment=q;exports.objectToQueryString=tt;exports.parseSSEChunk=Ae;exports.parseStringToNumber=Se;exports.registerApi=Ee;exports.renderChildren=ur;exports.replaceNullStrings=De;exports.safeUpdate=ut;exports.sorting=fr;exports.splitElement=In;exports.stableStringify=Xe;exports.summary=dr;exports.unregisterApi=Ne;exports.useApiLoad=dt;exports.useApiLoadStore=J;exports.useApiSend=Cn;exports.useApiStore=$n;exports.useApiStream=oo;exports.useBgsCore=L;exports.useCrypto=Z;exports.useDebounce=qn;exports.useDelay=Zr;exports.useDexieLive=lo;exports.useDexieLiveFlag=fo;exports.useDynamicSvgImport=Qn;exports.useElementBounding=Wn;exports.useFormatted=sn;exports.useInterval=cn;exports.useKeyPress=fn;exports.useParseStringToNumber=Vn;exports.useScrollTrigger=Pn;exports.useStorage=ke;exports.wrapApi=$t;
|
package/dist/index.d.cts
CHANGED
|
@@ -4,6 +4,8 @@ import * as React$1 from 'react';
|
|
|
4
4
|
import React__default, { PropsWithChildren } from 'react';
|
|
5
5
|
import * as zustand from 'zustand';
|
|
6
6
|
import dayjs from 'dayjs';
|
|
7
|
+
import * as dexie from 'dexie';
|
|
8
|
+
import { Table } from 'dexie';
|
|
7
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
10
|
|
|
9
11
|
type Children<T = unknown> = ChildFunction<T> | React.ReactNode;
|
|
@@ -658,7 +660,7 @@ declare function getInitials(fullName?: string, max?: number): string;
|
|
|
658
660
|
declare function getMinMaxDate(dates?: string[]): [string, string];
|
|
659
661
|
declare function getDateRangeLabelFromSorted(from: string, to: string): string;
|
|
660
662
|
declare function getTotalMinutes(from?: string, to?: string): string;
|
|
661
|
-
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T> | NestedKeyOf<T>[], groupSeparator?: string) => MappingDataReturn<T>[];
|
|
663
|
+
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T> | NestedKeyOf<T>[], groupSeparator?: string) => [MappingDataReturn<T>[], DataSource<T>[]];
|
|
662
664
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
663
665
|
declare function replaceNullStrings(input: any): any;
|
|
664
666
|
|
|
@@ -697,6 +699,35 @@ declare const moment: typeof dayjs;
|
|
|
697
699
|
|
|
698
700
|
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>, props?: UseApiStreamProps<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
699
701
|
|
|
702
|
+
interface UseDexieLiveOptions {
|
|
703
|
+
key: string;
|
|
704
|
+
}
|
|
705
|
+
declare function useDexieLive<T>(detailFn: (key: string) => Promise<T | undefined>, options: UseDexieLiveOptions): T | undefined;
|
|
706
|
+
|
|
707
|
+
interface UseDexieLiveFlagOptions {
|
|
708
|
+
key: string;
|
|
709
|
+
}
|
|
710
|
+
declare function useDexieLiveFlag<T>(detailFn: (key: string) => Promise<T | undefined>, options: UseDexieLiveFlagOptions): boolean;
|
|
711
|
+
|
|
712
|
+
type CreateDatabaseProps<T> = {
|
|
713
|
+
dbName: string;
|
|
714
|
+
version?: number;
|
|
715
|
+
table: T;
|
|
716
|
+
};
|
|
717
|
+
declare function createDatabase<T>({ dbName, version, table }: CreateDatabaseProps<T>): T;
|
|
718
|
+
type CreateTableProps = {
|
|
719
|
+
primaryKey: string;
|
|
720
|
+
name: string;
|
|
721
|
+
};
|
|
722
|
+
declare function createTable<Props>({ name, primaryKey }: CreateTableProps): {
|
|
723
|
+
table: () => Table<any, dexie.IndexableType, any>;
|
|
724
|
+
create: <T = Props>(data: T) => Promise<dexie.IndexableType>;
|
|
725
|
+
update: <T = Props>(id: string, data: Partial<T>) => Promise<number>;
|
|
726
|
+
put: <T = Props>(id: string, data: Partial<T>) => Promise<dexie.IndexableType>;
|
|
727
|
+
detail: <T = Props>(key: string) => Promise<T | undefined>;
|
|
728
|
+
remove: (id: string) => Promise<void>;
|
|
729
|
+
};
|
|
730
|
+
|
|
700
731
|
type FormatType = {
|
|
701
732
|
display: string;
|
|
702
733
|
value: string;
|
|
@@ -728,4 +759,4 @@ interface BgsCoreProviderProps {
|
|
|
728
759
|
}
|
|
729
760
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
730
761
|
|
|
731
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
762
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type 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 ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, 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, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useDexieLive, useDexieLiveFlag, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import * as React$1 from 'react';
|
|
|
4
4
|
import React__default, { PropsWithChildren } from 'react';
|
|
5
5
|
import * as zustand from 'zustand';
|
|
6
6
|
import dayjs from 'dayjs';
|
|
7
|
+
import * as dexie from 'dexie';
|
|
8
|
+
import { Table } from 'dexie';
|
|
7
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
10
|
|
|
9
11
|
type Children<T = unknown> = ChildFunction<T> | React.ReactNode;
|
|
@@ -658,7 +660,7 @@ declare function getInitials(fullName?: string, max?: number): string;
|
|
|
658
660
|
declare function getMinMaxDate(dates?: string[]): [string, string];
|
|
659
661
|
declare function getDateRangeLabelFromSorted(from: string, to: string): string;
|
|
660
662
|
declare function getTotalMinutes(from?: string, to?: string): string;
|
|
661
|
-
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T> | NestedKeyOf<T>[], groupSeparator?: string) => MappingDataReturn<T>[];
|
|
663
|
+
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T> | NestedKeyOf<T>[], groupSeparator?: string) => [MappingDataReturn<T>[], DataSource<T>[]];
|
|
662
664
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
663
665
|
declare function replaceNullStrings(input: any): any;
|
|
664
666
|
|
|
@@ -697,6 +699,35 @@ declare const moment: typeof dayjs;
|
|
|
697
699
|
|
|
698
700
|
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>, props?: UseApiStreamProps<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
699
701
|
|
|
702
|
+
interface UseDexieLiveOptions {
|
|
703
|
+
key: string;
|
|
704
|
+
}
|
|
705
|
+
declare function useDexieLive<T>(detailFn: (key: string) => Promise<T | undefined>, options: UseDexieLiveOptions): T | undefined;
|
|
706
|
+
|
|
707
|
+
interface UseDexieLiveFlagOptions {
|
|
708
|
+
key: string;
|
|
709
|
+
}
|
|
710
|
+
declare function useDexieLiveFlag<T>(detailFn: (key: string) => Promise<T | undefined>, options: UseDexieLiveFlagOptions): boolean;
|
|
711
|
+
|
|
712
|
+
type CreateDatabaseProps<T> = {
|
|
713
|
+
dbName: string;
|
|
714
|
+
version?: number;
|
|
715
|
+
table: T;
|
|
716
|
+
};
|
|
717
|
+
declare function createDatabase<T>({ dbName, version, table }: CreateDatabaseProps<T>): T;
|
|
718
|
+
type CreateTableProps = {
|
|
719
|
+
primaryKey: string;
|
|
720
|
+
name: string;
|
|
721
|
+
};
|
|
722
|
+
declare function createTable<Props>({ name, primaryKey }: CreateTableProps): {
|
|
723
|
+
table: () => Table<any, dexie.IndexableType, any>;
|
|
724
|
+
create: <T = Props>(data: T) => Promise<dexie.IndexableType>;
|
|
725
|
+
update: <T = Props>(id: string, data: Partial<T>) => Promise<number>;
|
|
726
|
+
put: <T = Props>(id: string, data: Partial<T>) => Promise<dexie.IndexableType>;
|
|
727
|
+
detail: <T = Props>(key: string) => Promise<T | undefined>;
|
|
728
|
+
remove: (id: string) => Promise<void>;
|
|
729
|
+
};
|
|
730
|
+
|
|
700
731
|
type FormatType = {
|
|
701
732
|
display: string;
|
|
702
733
|
value: string;
|
|
@@ -728,4 +759,4 @@ interface BgsCoreProviderProps {
|
|
|
728
759
|
}
|
|
729
760
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
730
761
|
|
|
731
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type BoundingSize, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type MappingDataReturn, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
762
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type 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 ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, 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, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useDexieLive, useDexieLiveFlag, useDynamicSvgImport, useElementBounding, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import ee,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import M from'dayjs';import Le from'dayjs/plugin/utc';import Be from'dayjs/plugin/timezone';import He from'dayjs/plugin/duration';import je from'dayjs/plugin/advancedFormat';import Ve from'dayjs/plugin/localizedFormat';import _e from'dayjs/plugin/relativeTime';import ze from'dayjs/plugin/isSameOrBefore';import We from'dayjs/plugin/isSameOrAfter';import Ye from'dayjs/plugin/weekOfYear';import Je from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Pe from'crypto-js/aes';import Oe from'crypto-js/pbkdf2';import st from'crypto-js/enc-utf8';import Z from'crypto-js/enc-base64';import Se from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import Tt from'axios';M.extend(Le);M.extend(Be);M.extend(He);M.extend(je);M.extend(Ve);M.extend(_e);M.extend(ze);M.extend(We);M.extend(Ye);M.extend(Je);var q=M;function Zt(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Qt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var er=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function tr(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function $(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var he={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=he.snackCase(he.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function rr(e,t){return typeof e=="function"?e(t):e}var N=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},nr={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=N(r,t)?N(r,t):"",a=N(n,t)?N(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=N(r,t)?N(r,t):"",a=N(n,t)?N(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},or=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?N(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function sr(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ge(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function Te(e,t){return Ge([t??"undefined",e??"undefined"])}function De(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function ar(e,t=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{e(...o);},t*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var xe=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function ae(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Xe(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&ae(n,r))return true}return false}function Ce(e="",t=false,r="."){if(!Xe(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var Ze=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 ir(e){let t={};for(let r in e)Ze.has(r)&&(t[r]=e[r]);return t}function lr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function pr(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(q).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 cr(e,t){let r=q(e),n=q(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function ur(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=q(e,"HH:mm",true),n=q(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var fr=(e=[],t="label",r="value",n,o=" | ")=>{if(!Array.isArray(e))return [];let a=e.map((l,p)=>{if(typeof l!="object"){let f=typeof t=="function"?t(l,p):l,R=typeof r=="function"?r(l,p):l;return {label:f,value:R,index:p,rowData:l}}else {let f=typeof t=="function"?t(l,p):N(l,t,""),R=typeof r=="function"?r(l,p):N(l,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:p,rowData:l}}});if(!n)return [{items:a}];let i=Array.isArray(n)?n:[n],s=new Map;for(let l of a){let p=l.rowData,f=i.map(y=>typeof p=="object"?N(p,y,""):"").map(y=>String(y??"")).join(o),R=s.get(f)||[];R.push(l),s.set(f,R);}return Array.from(s.entries()).map(([l,p])=>({group:l,items:p}))};function Qe(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!$(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Qe(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function be(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=be(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=be(e[t]));return e}var Ae=createContext(void 0);function I(){let e=useContext(Ae);return e||{}}var nt=({children:e,value:t})=>{let r={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsx(Ae.Provider,{value:r,children:e})};function ie(e,t){let r=Se.random(16),n=Se.random(16),o=Oe(t,r,{keySize:256/32,iterations:1e3}),a=Pe.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(Z),iv:n.toString(Z),encrypted:a}}function le(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Oe(t,Z.parse(r),{keySize:256/32,iterations:1e3}),s=Pe.decrypt(o,a,{iv:Z.parse(n)}).toString(st);return JSON.parse(s)}function we(e,t){return JSON.stringify(ie(e,t))}function qe(e,t){return le(JSON.parse(e),t)}function Q(){let{passphrase:e}=I();return {passphrase:e,encrypt(t,r){return ie(t,r||e)},decrypt(t,r){return le(t,r||e)},encryptString(t,r){return we(t,r||e)},decryptString(t,r){return qe(t,r||e)}}}var Ue=()=>{let{encrypt:e,decrypt:t}=Q(),r=useCallback((i,s)=>{try{let l=e(s);localStorage.setItem(i,JSON.stringify(l));}catch(l){console.error("Failed to save to storage:",l);}},[e]),n=useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,l]=useState(()=>{try{let p=localStorage.getItem(i);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=f=>{if(f.key===i)if(f.newValue)try{l(t(JSON.parse(f.newValue)));}catch(R){console.error("Decrypt error from storage event",R);}else l(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,t]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function pt(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},J=create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};pt(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var ce=new Map,ve=(e,t)=>{ce.set(e,t);},ke=e=>{ce.delete(e);},Ne=e=>ce.get(e);function ut(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,l=s?.storeName||`${a}`,p=s?.mergeStrategy??"replace",[f,R,y,x]=J(useShallow(b=>{let m=b.states[l]??Y;return [m.loading,m.isCancel,m.response,b.updateState]})),{storageKey:O,cache:h,clearPreviousData:E,refetchOnWindowFocus:F}=I(),L=Ue(),_=useRef(void 0),B=useRef(null),{cacheName:j,cacheKey:H,timeout:te,timeoutUnit:re,persistence:ne,cacheEnabled:T}=useMemo(()=>{let b=O?L.get(O):void 0,m=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=Te({...i,session:b},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof h?.enabled=="boolean"&&(u=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(h?.timeout)&&(typeof h?.timeout=="number"?(P=h.timeout,v="s"):typeof h?.timeout=="object"&&(P=h?.timeout.value,v=h?.timeout.unit)),$(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?u=s.cache.enabled:u=true,typeof s?.cache?.timeout=="number"?(P=s.cache.timeout,v="s"):typeof s?.cache?.timeout=="object"&&(P=s.cache.timeout.value,v=s.cache.timeout.unit)):u=s.cache),{cacheName:m,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,i,O,h,a]);useEffect(()=>{let b=JSON.stringify($(_.current)?_.current:""),m=JSON.stringify($(i)?i:""),A=_.current===void 0;(b!==m||A)&&!s?.hold&&((s?.clearPreviousData??E)&&x(l,{response:null}),c(),_.current=i),s?.onChange&&s?.onChange(i,U);},[i,s?.clearPreviousData,E,s?.hold,...s?.trigger||[]]),useEffect(()=>{let b=async()=>{!ne&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),B.current?.abort();}},[ne,j,H,l,B]);let c=useCallback(async b=>{let m=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(m=s?.beforeRequest(i)),T&&!b&&!R){s?.onBeforeRequest&&s?.onBeforeRequest(i);let A=await caches.open(j),S=await(await A.match(H))?.json();if(S){let{data:P,expired:v}=S;if(q().isAfter(v))await A.delete(H);else {s?.afterResponse&&P?.data&&(P.data=s?.afterResponse(P.data,m)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,m),s?.onAfterResponse?.(P,m),x(l,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,x(l,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let u=o?await t(void 0,{...s,signal:A.signal}):await t(m,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,p==="append"&&$(y.__rawData)&&$(u?.data)){if(Array.isArray(y.__rawData)&&Array.isArray(u?.data)){let S=[...y?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof y.__rawData=="object"&&typeof u.data=="object"){let S={...y.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,m)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,m),u.status||s?.onError?.(u,m),s?.onAfterResponse?.(u,m),x(l,{loading:false,response:u,isCancel:false}),T&&u.status){let S=q().add(te,re).toISOString(),P={data:u,expired:S},v=await caches.open(j),z=new Response(JSON.stringify(P));await v.put(H,z);}}},[i,t,s,R,j,H,te,re,T,y]);useEffect(()=>{if(s?.refreshInterval){let b=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,m=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{c();},q.duration(b,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,c]);let d=useRef(null),{enabledRefetch:C,timeoutRefetch:D,timeoutUnitRefetch:w}=useMemo(()=>{let b=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,m=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof m=="number"?m:m?.value??60*5,u=typeof m=="object"?m.unit:"s";return {enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);useEffect(()=>{if(!C||s?.hold)return;let b=q.duration(D,w).asMilliseconds(),m=()=>{let u=Date.now(),S=d.current;S!==null&&u-S>=b&&c(),d.current=null;},A=()=>{d.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",A);}},[C,D,w,c,s?.hold]);let g=useCallback(()=>{B.current?.abort(),B.current=null,x(l,{loading:false,isCancel:true});},[l,B]),K=useCallback(()=>{x(l,{loading:false,response:null});},[l]),U=useMemo(()=>({...y,loading:f,refresh:c,abort:g,clear:K,response:y,isCancel:R,clone:(b,m)=>ut(t,b,{storeName:`${a}-clone`,...m})}),[y,f,c,g,K,R,t]);return useEffect(()=>(ve(l,U),()=>{ke(l);}),[U,l]),[y?.data,U]}async function Vr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var ft=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ft||{}),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 Gr=()=>{let{format:e}=I();return (t,r,n)=>{try{return r==="number"?Ee(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?gt(t,{display:e[r]?.display,value:e[r]?.value,...n}):r==="boolean"?mt(t,n):r==="string"?yt(t,n):t?.toString()}catch{return}}};function mt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function yt(e,t){if(!$(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=De(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}Ee(10,{thouSep:",",decSep:".",decDigits:2});function Ee(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let R=String(e??"").trim().trim();if(ae(R,r))return R}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let f=Math.pow(10,n);i=Math[o](i*f)/f;}else i=Math[o](i);else if(typeof n=="number"){let f=Math.pow(10,n);i=Math.trunc(i*f)/f;}let s=0;if(n==="auto"){let f=i.toString(),R=f.indexOf(".");R!==-1&&(s=f.length-R-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function gt(e,{display:t,value:r}){if(!$(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function Qr(e,{interval:t,lead:r}){let n=useRef(null);useEffect(()=>{n.current=e;},[e]),useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function rn(e,t,r){let[n,o]=useState(false),a=(p,f)=>typeof e=="string"&&p===e||typeof e=="number"&&f===e,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),s=p=>{let{key:f,keyCode:R}=p,y=p.ctrlKey,x=p.altKey,O=p.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(f,R)&&(t==="ctrl"&&y||t==="alt"&&x||t==="shift"&&O)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));else {let h=t.every(E=>E==="ctrl"?y:E==="alt"?x:E==="shift"?O:false);a(f,R)&&h&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));}else a(f,R)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));},l=({key:p,keyCode:f})=>{a(p,f)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",l),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",l);}),[]),n}var un=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:l,withCredentials:p,encryptRequest:f,encryptResponse:R,passphrase:y})=>{let{encrypt:x,decrypt:O,passphrase:h}=Q(),E=(T,c,d,C)=>{let D=C?.code==="ERR_CANCELED",w=T?.status===401,g=T?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:R)&&g){let u=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?h:d.passphrase:y;try{g=O(g,u);}catch{try{g=O(g,h);}catch{}}}let b={...n({...T,data:g,isCancel:D,isUnauthorization:w},C),isCancel:D,isUnauthorization:w,httpCode:T?.status},m=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:l,A=s?s(b,d):!w;if((d?.infoSuccess&&b.status||d?.infoError&&!b.status)&&i&&(!D||!m)&&i(b),!A&&(!D||!d?.disabledHandleUnauthorized)){let u=d?.onUnauthorized||a;u&&u(b);}if(typeof c=="function")c(b);else return b},F=(T,c=()=>{})=>Tt.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:p})(T).then(c).catch(C=>c(C.response,C)),L=(T,c,d,C,D)=>{let g={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},K={"Content-Type":"application/json",...o,...g.headers};if(g.token&&(typeof g.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):g.token&&(K.Authorization=`Bearer ${g.token}`)),r&&(d=r(d)),(typeof g?.encryptRequest=="boolean"?g?.encryptRequest:f)&&d){let b=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:y;d=x(d,b);}return F({url:c,method:T,data:d,headers:K,responseType:g.responseType,signal:g.signal,withCredentials:g.withCredentials,onUploadProgress:b=>{g?.onUploadProgress&&g?.onUploadProgress(b);}},(b,m)=>E(b,C,g,m))};return {client:F,post:(T,c,d,C)=>L("POST",`${T}`,c,d,C),put:(T,c,d,C)=>L("PUT",`${T}`,c,d,C),patch:(T,c,d,C)=>L("PATCH",`${T}`,c,d,C),delete:(T,c,d)=>L("DELETE",`${T}`,null,c,d),get:(T,c,d)=>L("GET",`${T}`,null,c,d),upload:(T,c,d,C)=>{let D=new FormData;return Object.keys(c).forEach(w=>D.append(w,c[w])),L("POST",`${T}`,D,d,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(T,c,d,C,D)=>{try{let g={...{token:!0,responseType:"json",infoError:!0},...D},K={"Content-Type":"application/json",...o,...g.headers};if(g.token){let k=typeof g.token=="boolean"?t:g.token;k&&(K.Authorization=`Bearer ${k}`);}let U=d;if(r&&(U=r(U)),(typeof g.encryptRequest=="boolean"?g.encryptRequest:f)&&U){let k=g.passphrase?typeof g.passphrase=="boolean"&&g.passphrase?h:g.passphrase:y;U=x(U,k);}let m=await fetch(`${e}${c}`,{method:T,headers:K,credentials:g.withCredentials?"include":"same-origin",signal:g.signal,body:JSON.stringify(U)}),A=m?.status,u=A===401;if(!m.ok){let k=m?.statusText||"Error";try{let X=m.headers.get("content-type")||"",V=await m.clone().text();if(V)if(X.includes("application/json"))try{let se=JSON.parse(V);if((typeof D?.encryptResponse=="boolean"?D?.encryptResponse:R)&&d){let Fe=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:y;try{d=O(se,Fe);}catch{try{d=O(se,h);}catch{}}}k=se?.message||k;}catch{k=V;}else k=V;}catch{}let oe=typeof D?.disabledToastWhenCancel=="boolean"?D?.disabledToastWhenCancel:l,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};D?.infoError&&i&&!oe&&i(W),C(W);return}let S=m.body.getReader(),P=new TextDecoder("utf-8"),v="",z=!1;for(;!z;){let{done:k,value:oe}=await S.read();z=k,v+=P.decode(oe,{stream:!0});let W=v.split(`
|
|
1
|
+
import ee,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import M from'dayjs';import He from'dayjs/plugin/utc';import je from'dayjs/plugin/timezone';import Ve from'dayjs/plugin/duration';import _e from'dayjs/plugin/advancedFormat';import ze from'dayjs/plugin/localizedFormat';import We from'dayjs/plugin/relativeTime';import Ye from'dayjs/plugin/isSameOrBefore';import Je from'dayjs/plugin/isSameOrAfter';import Ge from'dayjs/plugin/weekOfYear';import Qe from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import we from'crypto-js/aes';import qe from'crypto-js/pbkdf2';import it from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import Oe from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import xt from'axios';import Vt,{liveQuery}from'dexie';M.extend(He);M.extend(je);M.extend(Ve);M.extend(_e);M.extend(ze);M.extend(We);M.extend(Ye);M.extend(Je);M.extend(Ge);M.extend(Qe);var q=M;function ir(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function lr(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var cr=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function pr(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function $(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var Te={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=Te.snackCase(Te.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function ur(e,t){return typeof e=="function"?e(t):e}var E=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},fr={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=E(r,t)?E(r,t):"",a=E(n,t)?E(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},dr=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?E(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function mr(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Xe(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function xe(e,t){return Xe([t??"undefined",e??"undefined"])}function Ce(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function yr(e,t=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{e(...o);},t*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var Ae=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function le(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Ze(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&le(n,r))return true}return false}function Se(e="",t=false,r="."){if(!Ze(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var et=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 gr(e){let t={};for(let r in e)et.has(r)&&(t[r]=e[r]);return t}function Rr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function br(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(q).sort((a,l)=>a.diff(l)),n=r[0].format("YYYY-MM-DD"),o=r.at(-1).format("YYYY-MM-DD");return [n,o]}function hr(e,t){let r=q(e),n=q(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function Tr(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=q(e,"HH:mm",true),n=q(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var Dr=(e=[],t="label",r="value",n,o=" | ")=>{if(!Array.isArray(e))return [[],[]];let a=e.map((i,c)=>{if(typeof i!="object"){let f=typeof t=="function"?t(i,c):i,R=typeof r=="function"?r(i,c):i;return {label:f,value:R,index:c,rowData:i}}else {let f=typeof t=="function"?t(i,c):E(i,t,""),R=typeof r=="function"?r(i,c):E(i,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:c,rowData:i}}});if(!n)return [[{items:a}],a];let l=Array.isArray(n)?n:[n],s=new Map;for(let i of a){let c=i.rowData,f=l.map(g=>String(typeof c=="object"?E(c,g,"")??"":"")).join(o),R=s.get(f)||[];R.push(i),s.set(f,R);}return [Array.from(s.entries()).map(([i,c])=>({group:i,items:c})),a]};function tt(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!$(o))continue;Array.isArray(o)?o.forEach(l=>{r.push(`${a}=${encodeURIComponent(l)}`);}):typeof o=="object"&&o!==null?r.push(tt(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function De(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=De(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=De(e[t]));return e}var Pe=createContext(void 0);function L(){let e=useContext(Pe);return e||{}}var st=({children:e,value:t})=>{let r={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:l}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},l);}})();},[t.localeConfig]),jsx(Pe.Provider,{value:r,children:e})};function ce(e,t){let r=Oe.random(16),n=Oe.random(16),o=qe(t,r,{keySize:256/32,iterations:1e3}),a=we.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(X),iv:n.toString(X),encrypted:a}}function pe(e,t){let{salt:r,iv:n,encrypted:o}=e,a=qe(t,X.parse(r),{keySize:256/32,iterations:1e3}),s=we.decrypt(o,a,{iv:X.parse(n)}).toString(it);return JSON.parse(s)}function Ue(e,t){return JSON.stringify(ce(e,t))}function ve(e,t){return pe(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return ce(t,r||e)},decrypt(t,r){return pe(t,r||e)},encryptString(t,r){return Ue(t,r||e)},decryptString(t,r){return ve(t,r||e)}}}var ke=()=>{let{encrypt:e,decrypt:t}=Z(),r=useCallback((l,s)=>{try{let i=e(s);localStorage.setItem(l,JSON.stringify(i));}catch(i){console.error("Failed to save to storage:",i);}},[e]),n=useCallback(l=>{try{let s=localStorage.getItem(l);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=l=>{let[s,i]=useState(()=>{try{let c=localStorage.getItem(l);return c?t(JSON.parse(c)):null}catch(c){return console.error("Failed to parse localStorage value",c),null}});return useEffect(()=>{let c=f=>{if(f.key===l)if(f.newValue)try{i(t(JSON.parse(f.newValue)));}catch(R){console.error("Decrypt error from storage event",R);}else i(null);};return window.addEventListener("storage",c),()=>window.removeEventListener("storage",c)},[l,t]),s},a=useCallback(l=>{l?localStorage.removeItem(l):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function ut(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),l=JSON.stringify(o);if(a!==l)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},J=create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};ut(o,a)||e(l=>({states:{...l.states,[r]:a}}));}}));var fe=new Map,Ee=(e,t)=>{fe.set(e,t);},Ne=e=>{fe.delete(e);},Me=e=>fe.get(e);function dt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,l=o?void 0:r,s=o?r:n,i=s?.storeName||`${a}`,c=s?.mergeStrategy??"replace",[f,R,g,x]=J(useShallow(h=>{let m=h.states[i]??Y;return [m.loading,m.isCancel,m.response,h.updateState]})),{storageKey:O,cache:b,clearPreviousData:N,refetchOnWindowFocus:F}=L(),I=ke(),_=useRef(void 0),B=useRef(null),{cacheName:j,cacheKey:H,timeout:ne,timeoutUnit:oe,persistence:se,cacheEnabled:T}=useMemo(()=>{let h=O?I.get(O):void 0,m=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=xe({...l,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof b?.enabled=="boolean"&&(u=b.enabled);let S=false;typeof b?.persistence=="boolean"&&(S=b?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(b?.timeout)&&(typeof b?.timeout=="number"?(P=b.timeout,v="s"):typeof b?.timeout=="object"&&(P=b?.timeout.value,v=b?.timeout.unit)),$(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?u=s.cache.enabled:u=true,typeof s?.cache?.timeout=="number"?(P=s.cache.timeout,v="s"):typeof s?.cache?.timeout=="object"&&(P=s.cache.timeout.value,v=s.cache.timeout.unit)):u=s.cache),{cacheName:m,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,l,O,b,a]);useEffect(()=>{let h=JSON.stringify($(_.current)?_.current:""),m=JSON.stringify($(l)?l:""),A=_.current===void 0;(h!==m||A)&&!s?.hold&&((s?.clearPreviousData??N)&&x(i,{response:null}),p(),_.current=l),s?.onChange&&s?.onChange(l,U);},[l,s?.clearPreviousData,N,s?.hold,...s?.trigger||[]]),useEffect(()=>{let h=async()=>{!se&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),B.current?.abort();}},[se,j,H,i,B]);let p=useCallback(async h=>{let m=l;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(m=s?.beforeRequest(l)),T&&!h&&!R){s?.onBeforeRequest&&s?.onBeforeRequest(l);let A=await caches.open(j),S=await(await A.match(H))?.json();if(S){let{data:P,expired:v}=S;if(q().isAfter(v))await A.delete(H);else {s?.afterResponse&&P?.data&&(P.data=s?.afterResponse(P.data,m)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,m),s?.onAfterResponse?.(P,m),x(i,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,x(i,{loading:true}),s?.logging&&console.log("Before request",l),s?.onBeforeRequest&&s?.onBeforeRequest(l);let u=o?await t(void 0,{...s,signal:A.signal}):await t(m,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,c==="append"&&$(g.__rawData)&&$(u?.data)){if(Array.isArray(g.__rawData)&&Array.isArray(u?.data)){let S=[...g?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof g.__rawData=="object"&&typeof u.data=="object"){let S={...g.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,m)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,m),u.status||s?.onError?.(u,m),s?.onAfterResponse?.(u,m),x(i,{loading:false,response:u,isCancel:false}),T&&u.status){let S=q().add(ne,oe).toISOString(),P={data:u,expired:S},v=await caches.open(j),z=new Response(JSON.stringify(P));await v.put(H,z);}}},[l,t,s,R,j,H,ne,oe,T,g]);useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,m=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{p();},q.duration(h,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,p]);let d=useRef(null),{enabledRefetch:C,timeoutRefetch:D,timeoutUnitRefetch:w}=useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,m=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof m=="number"?m:m?.value??60*5,u=typeof m=="object"?m.unit:"s";return {enabledRefetch:h,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);useEffect(()=>{if(!C||s?.hold)return;let h=q.duration(D,w).asMilliseconds(),m=()=>{let u=Date.now(),S=d.current;S!==null&&u-S>=h&&p(),d.current=null;},A=()=>{d.current=Date.now();};return window.addEventListener("focus",m),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",m),window.removeEventListener("blur",A);}},[C,D,w,p,s?.hold]);let y=useCallback(()=>{B.current?.abort(),B.current=null,x(i,{loading:false,isCancel:true});},[i,B]),K=useCallback(()=>{x(i,{loading:false,response:null});},[i]),U=useMemo(()=>({...g,loading:f,refresh:p,abort:y,clear:K,response:g,isCancel:R,clone:(h,m)=>dt(t,h,{storeName:`${a}-clone`,...m})}),[g,f,p,y,K,R,t]);return useEffect(()=>(Ee(i,U),()=>{Ne(i);}),[U,i]),[g?.data,U]}async function Zr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var mt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(mt||{}),yt=(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))(yt||{});var sn=()=>{let{format:e}=L();return (t,r,n)=>{try{return r==="number"?$e(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?bt(t,{display:e[r]?.display,value:e[r]?.value,...n}):r==="boolean"?gt(t,n):r==="string"?Rt(t,n):t?.toString()}catch{return}}};function gt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function Rt(e,t){if(!$(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=Ce(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}$e(10,{thouSep:",",decSep:".",decDigits:2});function $e(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let R=String(e??"").trim().trim();if(le(R,r))return R}if(e==null||isNaN(Number(e)))return "";let l=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let f=Math.pow(10,n);l=Math[o](l*f)/f;}else l=Math[o](l);else if(typeof n=="number"){let f=Math.pow(10,n);l=Math.trunc(l*f)/f;}let s=0;if(n==="auto"){let f=l.toString(),R=f.indexOf(".");R!==-1&&(s=f.length-R-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return l.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function bt(e,{display:t,value:r}){if(!$(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function cn(e,{interval:t,lead:r}){let n=useRef(null);useEffect(()=>{n.current=e;},[e]),useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function fn(e,t,r){let[n,o]=useState(false),a=(c,f)=>typeof e=="string"&&c===e||typeof e=="number"&&f===e,l=c=>c!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(c.tagName)||c.hasAttribute("contentEditable")),s=c=>{let{key:f,keyCode:R}=c,g=c.ctrlKey,x=c.altKey,O=c.shiftKey;if(!l(document.activeElement))if(t)if(typeof t=="string")a(f,R)&&(t==="ctrl"&&g||t==="alt"&&x||t==="shift"&&O)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));else {let b=t.every(N=>N==="ctrl"?g:N==="alt"?x:N==="shift"?O:false);a(f,R)&&b&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));}else a(f,R)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));},i=({key:c,keyCode:f})=>{a(c,f)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",i),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",i);}),[]),n}var Tn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:l,handleAuthorization:s,disabledToastWhenCancel:i,withCredentials:c,encryptRequest:f,encryptResponse:R,passphrase:g})=>{let{encrypt:x,decrypt:O,passphrase:b}=Z(),N=(T,p,d,C)=>{let D=C?.code==="ERR_CANCELED",w=T?.status===401,y=T?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:R)&&y){let u=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?b:d.passphrase:g;try{y=O(y,u);}catch{try{y=O(y,b);}catch{}}}let h={...n({...T,data:y,isCancel:D,isUnauthorization:w},C),isCancel:D,isUnauthorization:w,httpCode:T?.status},m=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:i,A=s?s(h,d):!w;if((d?.infoSuccess&&h.status||d?.infoError&&!h.status)&&l&&(!D||!m)&&l(h),!A&&(!D||!d?.disabledHandleUnauthorized)){let u=d?.onUnauthorized||a;u&&u(h);}if(typeof p=="function")p(h);else return h},F=(T,p=()=>{})=>xt.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:c})(T).then(p).catch(C=>p(C.response,C)),I=(T,p,d,C,D)=>{let y={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},K={"Content-Type":"application/json",...o,...y.headers};if(y.token&&(typeof y.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):y.token&&(K.Authorization=`Bearer ${y.token}`)),r&&(d=r(d)),(typeof y?.encryptRequest=="boolean"?y?.encryptRequest:f)&&d){let h=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?b:D.passphrase:g;d=x(d,h);}return F({url:p,method:T,data:d,headers:K,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:h=>{y?.onUploadProgress&&y?.onUploadProgress(h);}},(h,m)=>N(h,C,y,m))};return {client:F,post:(T,p,d,C)=>I("POST",`${T}`,p,d,C),put:(T,p,d,C)=>I("PUT",`${T}`,p,d,C),patch:(T,p,d,C)=>I("PATCH",`${T}`,p,d,C),delete:(T,p,d)=>I("DELETE",`${T}`,null,p,d),get:(T,p,d)=>I("GET",`${T}`,null,p,d),upload:(T,p,d,C)=>{let D=new FormData;return Object.keys(p).forEach(w=>D.append(w,p[w])),I("POST",`${T}`,D,d,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(T,p,d,C,D)=>{try{let y={...{token:!0,responseType:"json",infoError:!0},...D},K={"Content-Type":"application/json",...o,...y.headers};if(y.token){let k=typeof y.token=="boolean"?t:y.token;k&&(K.Authorization=`Bearer ${k}`);}let U=d;if(r&&(U=r(U)),(typeof y.encryptRequest=="boolean"?y.encryptRequest:f)&&U){let k=y.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?b:y.passphrase:g;U=x(U,k);}let m=await fetch(`${e}${p}`,{method:T,headers:K,credentials:y.withCredentials?"include":"same-origin",signal:y.signal,body:JSON.stringify(U)}),A=m?.status,u=A===401;if(!m.ok){let k=m?.statusText||"Error";try{let Q=m.headers.get("content-type")||"",V=await m.clone().text();if(V)if(Q.includes("application/json"))try{let ie=JSON.parse(V);if((typeof D?.encryptResponse=="boolean"?D?.encryptResponse:R)&&d){let Be=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?b:D.passphrase:g;try{d=O(ie,Be);}catch{try{d=O(ie,b);}catch{}}}k=ie?.message||k;}catch{k=V;}else k=V;}catch{}let ae=typeof D?.disabledToastWhenCancel=="boolean"?D?.disabledToastWhenCancel:i,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};D?.infoError&&l&&!ae&&l(W),C(W);return}let S=m.body.getReader(),P=new TextDecoder("utf-8"),v="",z=!1;for(;!z;){let{done:k,value:ae}=await S.read();z=k,v+=P.decode(ae,{stream:!0});let W=v.split(`
|
|
2
2
|
|
|
3
|
-
`);v=W.pop();for(let
|
|
3
|
+
`);v=W.pop();for(let Q of W)if(Q.startsWith("data:"))try{let V=Ae(Q);C({status:!0,data:V,message:"",isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!1});}catch{}}C({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0});}catch(w){let y=w?.name==="AbortError";C({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:y,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Cn(e,t){let[r,n]=useState(false),[o,a]=useState(),[l,s]=useState(0),i=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{i.current?.abort();}},[]),[async g=>{i.current?.abort();let x=new AbortController;i.current=x,n(true),t?.beforeRequest&&(g=t?.beforeRequest(g)),t?.logging&&console.log("Before request",g),t?.onBeforeRequest&&t?.onBeforeRequest(g);let O={...t,signal:x.signal,onUploadProgress:N=>{let F=Math.round(N.loaded*100/(N.total||1));s(F);}},b=e.__isVoid?await e(void 0,O):await e(g,void 0,O);t?.logging&&console.log("After response",b),a(b),n(false),s(0),t?.afterResponse&&b?.data&&(b.data=t?.afterResponse(b.data,g)),b.status&&t?.onSuccess&&t?.onSuccess(b,g),!b.status&&t?.onError&&t?.onError(b,g),t?.onAfterResponse?.(b,g);},{...o,loading:r,abort:()=>{i.current?.abort(),i.current=null,n(false),s(0);},progress:l,reset:()=>{n(false),s(0),a(null);}}]}function St(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Pt=typeof window<"u"?window:null;function Pn(e={}){let{getTrigger:t=St,target:r=Pt,disableHysteresis:n=false,threshold:o=100}=e,a=ee.useRef(0),[l,s]=ee.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return ee.useEffect(()=>{let i=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(i(),r)return r.addEventListener("scroll",i,{passive:true}),()=>{r.removeEventListener("scroll",i);}},[r,t,n,o]),l}function qn(e,t){let r,n;typeof t=="number"?(r=t,n=void 0):(r=t?.delay??500,n=t?.onDebounce);let[o,a]=useState(e);return useEffect(()=>{let l=setTimeout(()=>{a(e),n&&n(e);},r);return ()=>clearTimeout(l)},[e,r,n]),o}var $n=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:l,clear:s,clone:i}=Me(n)||{},c=O=>{let b=O.states[n]??Y;return {loading:b.loading,isCancel:b.isCancel,response:b.response}},{loading:f,isCancel:R,response:g}=o?J(useShallow(c)):J(c),x=useMemo(()=>[g?.data,{...g,loading:f,isCancel:R,refresh:a,abort:l,clear:s,clone:i}],[g,f,R,a,l,s,i]);return t?.selector?t.selector(x):x};var Fn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},Le=(e,t)=>{let r=false;return ee.Children.forEach(e,n=>{if(ee.isValidElement(n)){let o=n,a=n.type.displayName;(t.includes(a)||o.props?.children&&Le(o.props.children,t))&&(r=true);}}),r},In=(e,t)=>{let r={others:[]},n=o=>{ee.Children.forEach(o,a=>{if(ee.isValidElement(a)){let l=a.type.displayName,s=a,i=s.props?.children;t.includes(l)?r[l]=a:i&&Le(i,t)?n(s.props.children):r.others.push(a);}else r.others.push(a);});};return n(e),r};function Vn(){let{format:e}=L();return (t="",r=false)=>Se(t,r,e.number.decSep)}function Wn(e,t){let r=useRef({width:0,height:0,top:0,left:0,right:0,bottom:0});return useEffect(()=>{if(!e)return;let n=()=>{let a=e.getBoundingClientRect();r.current={width:a.width,height:a.height,top:a.top,left:a.left,right:a.right,bottom:a.bottom},t&&t(r.current);};n();let o=new ResizeObserver(()=>n());return o.observe(e),()=>o.disconnect()},[e,t]),r}var he={};function Qn(e,t){let[r,n]=useState(false),[o,a]=useState(),[l,s]=useState();return useEffect(()=>{if(!e)return;if(he[e]){s(()=>he[e]);return}n(true),(async()=>{try{let c=await import(`${t.path}${e}${t.extension??".svg?react"}`);he[e]=c.default,s(()=>c.default);}catch(c){a(c),console.error(c);}finally{n(false);}})();},[e,t.path,t.extension]),{error:o,loading:r,Icon:l}}function eo(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(i=>i());}function l(s){let i=useRef(s?s(t):t);return useSyncExternalStore(o,()=>{let c=s?s(t):t,f=i.current;return Object.is(f,c)||(i.current=c),i.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:l}}function $t(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=$t(o,[...t,n]):r[n]=o;}return r}function oo(e,t){let[r,n]=useState(false),[o,a]=useState([]),l=useRef([]),s=useRef(null);useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let i=async R=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),l.current=[],e(R,x=>{x.isDone||(l.current.push(x),a([...l.current])),(x.isDone||!x.status)&&(n(false),t?.onDone&&t?.onDone([...l.current])),x.status?t?.onStream&&t?.onStream(x):t?.onError&&t?.onError(x);},{signal:g.signal});},c=()=>{s.current?.abort(),s.current=null,n(false);},f=()=>{n(false),a([]),l.current=[];};return [o.map(R=>R.data),i,{loading:r,abort:c,reset:f,response:o}]}function lo(e,t){let{key:r}=t,[n,o]=useState();return useEffect(()=>{let a=liveQuery(()=>e(r)).subscribe(o);return ()=>a.unsubscribe()},[r]),n}function fo(e,t){let{key:r}=t,[n,o]=useState(false);return useEffect(()=>{let a=liveQuery(async()=>!!await e(r)).subscribe(l=>{o(s=>s!==l?l:s);});return ()=>a.unsubscribe()},[r]),n}var te,re={};function Ro({dbName:e,version:t=1,table:r}){return te||(te=new Vt(e),t=Object.keys(re).length+1,te.version(t).stores(re)),r}function bo({name:e,primaryKey:t}){re[e]||(re[e]=t);let r=()=>{let c=te.table(e);if(!c)throw new Error(`Table ${e} is not registered in Dexie`);return c};return {table:r,create:async i=>await r().add(i),update:async(i,c)=>await r().update(i,c),put:async(i,c)=>await r().put({...c,[t]:i}),detail:async i=>await r().get(i),remove:async i=>await r().delete(i)}}export{st as BgsCoreProvider,yt as DataTypeEnum,mt as HttpMethod,Ce as capitalizeWords,Tn as createApiHelper,Ro as createDatabase,Fn as createElement,eo as createStore,bo as createTable,yr as debounce,pe as decrypt,ve as decryptString,Y as defaultState,lr as diffJson,ce as encrypt,Ue as encryptString,gr as filterDOMPropsLite,xe as generateCacheKey,ir as generateUUID,Me as getApiActions,hr as getDateRangeLabelFromSorted,E as getFieldValue,Rr as getInitials,br as getMinMaxDate,Tr as getTotalMinutes,pr as isArray,le as isDirtyRaw,$ as isNotEmpty,Ze as isValidNumber,mr as jsonCopy,Te as labelFormatter,Dr as mappingData,cr as mappingUndefinedtoNull,q as moment,tt as objectToQueryString,Ae as parseSSEChunk,Se as parseStringToNumber,Ee as registerApi,ur as renderChildren,De as replaceNullStrings,ut as safeUpdate,fr as sorting,In as splitElement,Xe as stableStringify,dr as summary,Ne as unregisterApi,dt as useApiLoad,J as useApiLoadStore,Cn as useApiSend,$n as useApiStore,oo as useApiStream,L as useBgsCore,Z as useCrypto,qn as useDebounce,Zr as useDelay,lo as useDexieLive,fo as useDexieLiveFlag,Qn as useDynamicSvgImport,Wn as useElementBounding,sn as useFormatted,cn as useInterval,fn as useKeyPress,Vn as useParseStringToNumber,Pn as useScrollTrigger,ke as useStorage,$t 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.16",
|
|
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",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"crypto-js": "^4.2.0",
|
|
51
51
|
"dayjs": "^1.11.13",
|
|
52
|
+
"dexie": "^4.2.1",
|
|
52
53
|
"zustand": "^5.0.6"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|