@bgscore/react-core 1.0.13 → 1.0.15
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 +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +2 -2
- package/package.json +1 -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 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},nr={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}))},or=(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 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 xe(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 De=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 cr(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 pr(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)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function 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 c=e(s);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[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,c]=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=y=>{if(y.key===i)if(y.newValue)try{c(t(JSON.parse(y.newValue)));}catch(T){console.error("Decrypt error from storage event",T);}else c(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 ct(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};ct(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var pe=new Map,ve=(e,t)=>{pe.set(e,t);},ke=e=>{pe.delete(e);},Ee=e=>pe.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,c=s?.storeName||`${a}`,p=s?.mergeStrategy??"replace",[y,T,R,D]=J(shallow.useShallow(h=>{let d=h.states[c]??Y;return [d.loading,d.isCancel,d.response,h.updateState]})),{storageKey:O,cache:g,clearPreviousData:N,refetchOnWindowFocus:F}=I(),L=Ue(),_=ee.useRef(void 0),B=ee.useRef(null),{cacheName:j,cacheKey:H,timeout:te,timeoutUnit:re,persistence:ne,cacheEnabled:b}=ee.useMemo(()=>{let h=O?L.get(O):void 0,d=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=Te({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof g?.enabled=="boolean"&&(u=g.enabled);let S=false;typeof g?.persistence=="boolean"&&(S=g?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(g?.timeout)&&(typeof g?.timeout=="number"?(P=g.timeout,v="s"):typeof g?.timeout=="object"&&(P=g?.timeout.value,v=g?.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:d,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,i,O,g,a]);ee.useEffect(()=>{let h=JSON.stringify($(_.current)?_.current:""),d=JSON.stringify($(i)?i:""),A=_.current===void 0;(h!==d||A)&&!s?.hold&&((s?.clearPreviousData??N)&&D(c,{response:null}),l(),_.current=i),s?.onChange&&s?.onChange(i,U);},[i,s?.clearPreviousData,N,s?.hold,...s?.trigger||[]]),ee.useEffect(()=>{let h=async()=>{!ne&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),B.current?.abort();}},[ne,j,H,c,B]);let l=ee.useCallback(async h=>{let d=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(d=s?.beforeRequest(i)),b&&!h&&!T){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,d)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,d),s?.onAfterResponse?.(P,d),D(c,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,D(c,{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(d,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,p==="append"&&$(R.__rawData)&&$(u?.data)){if(Array.isArray(R.__rawData)&&Array.isArray(u?.data)){let S=[...R?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof R.__rawData=="object"&&typeof u.data=="object"){let S={...R.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,d)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,d),u.status||s?.onError?.(u,d),s?.onAfterResponse?.(u,d),D(c,{loading:false,response:u,isCancel:false}),b&&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,T,j,H,te,re,b,R]);ee.useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,d=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{l();},q.duration(h,d).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,l]);let f=ee.useRef(null),{enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:w}=ee.useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,d=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof d=="number"?d:d?.value??60*5,u=typeof d=="object"?d.unit:"s";return {enabledRefetch:h,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);ee.useEffect(()=>{if(!C||s?.hold)return;let h=q.duration(x,w).asMilliseconds(),d=()=>{let u=Date.now(),S=f.current;S!==null&&u-S>=h&&l(),f.current=null;},A=()=>{f.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",A);}},[C,x,w,l,s?.hold]);let m=ee.useCallback(()=>{B.current?.abort(),B.current=null,D(c,{loading:false,isCancel:true});},[c,B]),K=ee.useCallback(()=>{D(c,{loading:false,response:null});},[c]),U=ee.useMemo(()=>({...R,loading:y,refresh:l,abort:m,clear:K,response:R,isCancel:T,clone:(h,d)=>ut(t,h,{storeName:`${a}-clone`,...d})}),[R,y,l,m,K,T,t]);return ee.useEffect(()=>(ve(c,U),()=>{ke(c);}),[U,c]),[R?.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=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(dt||{});var Gr=()=>{let{format:e}=I();return (t,r,n)=>{try{return r==="number"?Ne(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?Rt(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=xe(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}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let T=String(e??"").trim().trim();if(ae(T,r))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let y=Math.pow(10,n);i=Math[o](i*y)/y;}else i=Math[o](i);else if(typeof n=="number"){let y=Math.pow(10,n);i=Math.trunc(i*y)/y;}let s=0;if(n==="auto"){let y=i.toString(),T=y.indexOf(".");T!==-1&&(s=y.length-T-1);}let c={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",c).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function Rt(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,y)=>typeof e=="string"&&p===e||typeof e=="number"&&y===e,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),s=p=>{let{key:y,keyCode:T}=p,R=p.ctrlKey,D=p.altKey,O=p.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(y,T)&&(t==="ctrl"&&R||t==="alt"&&D||t==="shift"&&O)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));else {let g=t.every(N=>N==="ctrl"?R:N==="alt"?D:N==="shift"?O:false);a(y,T)&&g&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));}else a(y,T)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));},c=({key:p,keyCode:y})=>{a(p,y)&&o(false);};return ee.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",c);}),[]),n}var un=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:T,passphrase:R})=>{let{encrypt:D,decrypt:O,passphrase:g}=Q(),N=(b,l,f,C)=>{let x=C?.code==="ERR_CANCELED",w=b?.status===401,m=b?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:T)&&m){let u=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?g:f.passphrase:R;try{m=O(m,u);}catch{try{m=O(m,g);}catch{}}}let h={...n({...b,data:m,isCancel:x,isUnauthorization:w},C),isCancel:x,isUnauthorization:w,httpCode:b?.status},d=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:c,A=s?s(h,f):!w;if((f?.infoSuccess&&h.status||f?.infoError&&!h.status)&&i&&(!x||!d)&&i(h),!A&&(!x||!f?.disabledHandleUnauthorized)){let u=f?.onUnauthorized||a;u&&u(h);}if(typeof l=="function")l(h);else return h},F=(b,l=()=>{})=>Tt__default.default.create({baseURL:`${e}`,withCredentials:typeof b.withCredentials=="boolean"?b.withCredentials:p})(b).then(l).catch(C=>l(C.response,C)),L=(b,l,f,C,x)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},K={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):m.token&&(K.Authorization=`Bearer ${m.token}`)),r&&(f=r(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:y)&&f){let h=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?g:x.passphrase:R;f=D(f,h);}return F({url:l,method:b,data:f,headers:K,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:h=>{m?.onUploadProgress&&m?.onUploadProgress(h);}},(h,d)=>N(h,C,m,d))};return {client:F,post:(b,l,f,C)=>L("POST",`${b}`,l,f,C),put:(b,l,f,C)=>L("PUT",`${b}`,l,f,C),patch:(b,l,f,C)=>L("PATCH",`${b}`,l,f,C),delete:(b,l,f)=>L("DELETE",`${b}`,null,l,f),get:(b,l,f)=>L("GET",`${b}`,null,l,f),upload:(b,l,f,C)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),L("POST",`${b}`,x,f,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(b,l,f,C,x)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...x},K={"Content-Type":"application/json",...o,...m.headers};if(m.token){let k=typeof m.token=="boolean"?t:m.token;k&&(K.Authorization=`Bearer ${k}`);}let U=f;if(r&&(U=r(U)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:y)&&U){let k=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?g:m.passphrase:R;U=D(U,k);}let d=await fetch(`${e}${l}`,{method:b,headers:K,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(U)}),A=d?.status,u=A===401;if(!d.ok){let k=d?.statusText||"Error";try{let X=d.headers.get("content-type")||"",V=await d.clone().text();if(V)if(X.includes("application/json"))try{let se=JSON.parse(V);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let Fe=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?g:x.passphrase:R;try{f=O(se,Fe);}catch{try{f=O(se,g);}catch{}}}k=se?.message||k;}catch{k=V;}else k=V;}catch{}let oe=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:c,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};x?.infoError&&i&&!oe&&i(W),C(W);return}let S=d.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'),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 cr(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 pr(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,c)=>{if(typeof l!="object"){let f=typeof t=="function"?t(l,c):l,R=typeof r=="function"?r(l,c):l;return {label:f,value:R,index:c,rowData:l}}else {let f=typeof t=="function"?t(l,c):N(l,t,""),R=typeof r=="function"?r(l,c):N(l,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:c,rowData:l}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],s=new Map;for(let l of a){let c=l.rowData,f=i.map(g=>String(typeof c=="object"?N(c,g,"")??"":"")).join(o),R=s.get(f)||[];R.push(l),s.set(f,R);}return [Array.from(s.entries()).map(([l,c])=>({group:l,items:c})),a]};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 c=localStorage.getItem(i);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===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",c),()=>window.removeEventListener("storage",c)},[i,t]),s},a=ee.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function ct(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};ct(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var pe=new Map,ve=(e,t)=>{pe.set(e,t);},ke=e=>{pe.delete(e);},Ne=e=>pe.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}`,c=s?.mergeStrategy??"replace",[f,R,g,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}),p(),_.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 p=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,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(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,g]);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(()=>{p();},q.duration(b,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,p]);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&&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(l,{loading:false,isCancel:true});},[l,B]),K=ee.useCallback(()=>{x(l,{loading:false,response:null});},[l]),U=ee.useMemo(()=>({...g,loading:f,refresh:p,abort:y,clear:K,response:g,isCancel:R,clone:(b,m)=>ut(t,b,{storeName:`${a}-clone`,...m})}),[g,f,p,y,K,R,t]);return ee.useEffect(()=>(ve(l,U),()=>{ke(l);}),[U,l]),[g?.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=(p=>(p.number="number",p.currency="currency",p.percent="percent",p.date="date",p.dateTime="dateTime",p.month="month",p.year="year",p.time="time",p.timestamp="timestamp",p.string="string",p.textarea="textarea",p.code="code",p.password="password",p.boolean="boolean",p.toggle="toggle",p.email="email",p.phone="phone",p.url="url",p.json="json",p.file="file",p.image="image",p.array="array",p.object="object",p.enum="enum",p.user="user",p.department="department",p.status="status",p))(dt||{});var 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=(c,f)=>typeof e=="string"&&c===e||typeof e=="number"&&f===e,i=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(!i(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 h=t.every(E=>E==="ctrl"?g:E==="alt"?x:E==="shift"?O:false);a(f,R)&&h&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));}else a(f,R)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));},l=({key:c,keyCode:f})=>{a(c,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:c,encryptRequest:f,encryptResponse:R,passphrase:g})=>{let{encrypt:x,decrypt:O,passphrase:h}=Q(),E=(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?h:d.passphrase:g;try{y=O(y,u);}catch{try{y=O(y,h);}catch{}}}let b={...n({...T,data:y,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 p=="function")p(b);else return b},F=(T,p=()=>{})=>Tt__default.default.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:c})(T).then(p).catch(C=>p(C.response,C)),L=(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 b=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:g;d=x(d,b);}return F({url:p,method:T,data:d,headers:K,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:b=>{y?.onUploadProgress&&y?.onUploadProgress(b);}},(b,m)=>E(b,C,y,m))};return {client:F,post:(T,p,d,C)=>L("POST",`${T}`,p,d,C),put:(T,p,d,C)=>L("PUT",`${T}`,p,d,C),patch:(T,p,d,C)=>L("PATCH",`${T}`,p,d,C),delete:(T,p,d)=>L("DELETE",`${T}`,null,p,d),get:(T,p,d)=>L("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])),L("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?h: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 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:g;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(`
|
|
2
2
|
|
|
3
|
-
`);v=W.pop();for(let X of W)if(X.startsWith("data:"))try{let V=
|
|
3
|
+
`);v=W.pop();for(let X of W)if(X.startsWith("data:"))try{let V=xe(X);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 mn(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState(),[i,s]=ee.useState(0),l=ee.useRef(null);return ee.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{l.current?.abort();}},[]),[async g=>{l.current?.abort();let x=new AbortController;l.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:E=>{let F=Math.round(E.loaded*100/(E.total||1));s(F);}},h=e.__isVoid?await e(void 0,O):await e(g,void 0,O);t?.logging&&console.log("After response",h),a(h),n(false),s(0),t?.afterResponse&&h?.data&&(h.data=t?.afterResponse(h.data,g)),h.status&&t?.onSuccess&&t?.onSuccess(h,g),!h.status&&t?.onError&&t?.onError(h,g),t?.onAfterResponse?.(h,g);},{...o,loading:r,abort:()=>{l.current?.abort(),l.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function Ct(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 At=typeof window<"u"?window:null;function Rn(e={}){let{getTrigger:t=Ct,target:r=At,disableHysteresis:n=false,threshold:o=100}=e,a=ee__default.default.useRef(0),[i,s]=ee__default.default.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return ee__default.default.useEffect(()=>{let l=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(l(),r)return r.addEventListener("scroll",l,{passive:true}),()=>{r.removeEventListener("scroll",l);}},[r,t,n,o]),i}function Tn(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 i=setTimeout(()=>{a(e),n&&n(e);},r);return ()=>clearTimeout(i)},[e,r,n]),o}var On=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:l}=Ne(n)||{},c=O=>{let h=O.states[n]??Y;return {loading:h.loading,isCancel:h.isCancel,response:h.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:i,clear:s,clone:l}],[g,f,R,a,i,s,l]);return t?.selector?t.selector(x):x};var Un=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},$e=(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&&$e(o.props.children,t))&&(r=true);}}),r},vn=(e,t)=>{let r={others:[]},n=o=>{ee__default.default.Children.forEach(o,a=>{if(ee__default.default.isValidElement(a)){let i=a.type.displayName,s=a,l=s.props?.children;t.includes(i)?r[i]=a:l&&$e(l,t)?n(s.props.children):r.others.push(a);}else r.others.push(a);});};return n(e),r};function Mn(){let{format:e}=I();return (t="",r=false)=>Ce(t,r,e.number.decSep)}function In(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 Re={};function Hn(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState(),[i,s]=ee.useState();return ee.useEffect(()=>{if(!e)return;if(Re[e]){s(()=>Re[e]);return}n(true),(async()=>{try{let c=await import(`${t.path}${e}${t.extension??".svg?react"}`);Re[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:i}}function _n(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(l=>l());}function i(s){let l=ee.useRef(s?s(t):t);return ee.useSyncExternalStore(o,()=>{let c=s?s(t):t,f=l.current;return Object.is(f,c)||(l.current=c),l.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function Et(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]=Et(o,[...t,n]):r[n]=o;}return r}function Jn(e,t){let[r,n]=ee.useState(false),[o,a]=ee.useState([]),i=ee.useRef([]),s=ee.useRef(null);ee.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let l=async R=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),i.current=[],e(R,x=>{x.isDone||(i.current.push(x),a([...i.current])),(x.isDone||!x.status)&&(n(false),t?.onDone&&t?.onDone([...i.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([]),i.current=[];};return [o.map(R=>R.data),l,{loading:r,abort:c,reset:f,response:o}]}exports.BgsCoreProvider=nt;exports.DataTypeEnum=dt;exports.HttpMethod=ft;exports.capitalizeWords=De;exports.createApiHelper=un;exports.createElement=Un;exports.createStore=_n;exports.debounce=ar;exports.decrypt=le;exports.decryptString=qe;exports.defaultState=Y;exports.diffJson=Qt;exports.encrypt=ie;exports.encryptString=we;exports.filterDOMPropsLite=ir;exports.generateCacheKey=Te;exports.generateUUID=Zt;exports.getApiActions=Ne;exports.getDateRangeLabelFromSorted=pr;exports.getFieldValue=N;exports.getInitials=lr;exports.getMinMaxDate=cr;exports.getTotalMinutes=ur;exports.isArray=tr;exports.isDirtyRaw=ae;exports.isNotEmpty=$;exports.isValidNumber=Xe;exports.jsonCopy=sr;exports.labelFormatter=he;exports.mappingData=fr;exports.mappingUndefinedtoNull=er;exports.moment=q;exports.objectToQueryString=Qe;exports.parseSSEChunk=xe;exports.parseStringToNumber=Ce;exports.registerApi=ve;exports.renderChildren=rr;exports.replaceNullStrings=be;exports.safeUpdate=ct;exports.sorting=nr;exports.splitElement=vn;exports.stableStringify=Ge;exports.summary=or;exports.unregisterApi=ke;exports.useApiLoad=ut;exports.useApiLoadStore=J;exports.useApiSend=mn;exports.useApiStore=On;exports.useApiStream=Jn;exports.useBgsCore=I;exports.useCrypto=Q;exports.useDebounce=Tn;exports.useDelay=Vr;exports.useDynamicSvgImport=Hn;exports.useElementBounding=In;exports.useFormatted=Gr;exports.useInterval=Qr;exports.useKeyPress=rn;exports.useParseStringToNumber=Mn;exports.useScrollTrigger=Rn;exports.useStorage=Ue;exports.wrapApi=Et;
|
package/dist/index.d.cts
CHANGED
|
@@ -438,6 +438,10 @@ type DataSource<T = unknown> = {
|
|
|
438
438
|
index: number;
|
|
439
439
|
rowData: T;
|
|
440
440
|
};
|
|
441
|
+
type MappingDataReturn<T> = {
|
|
442
|
+
group?: string;
|
|
443
|
+
items: DataSource<T>[];
|
|
444
|
+
};
|
|
441
445
|
|
|
442
446
|
declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
|
|
443
447
|
declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
|
|
@@ -654,7 +658,7 @@ declare function getInitials(fullName?: string, max?: number): string;
|
|
|
654
658
|
declare function getMinMaxDate(dates?: string[]): [string, string];
|
|
655
659
|
declare function getDateRangeLabelFromSorted(from: string, to: string): string;
|
|
656
660
|
declare function getTotalMinutes(from?: string, to?: string): string;
|
|
657
|
-
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
|
|
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>[], DataSource<T>[]];
|
|
658
662
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
659
663
|
declare function replaceNullStrings(input: any): any;
|
|
660
664
|
|
|
@@ -724,4 +728,4 @@ interface BgsCoreProviderProps {
|
|
|
724
728
|
}
|
|
725
729
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
726
730
|
|
|
727
|
-
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 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 };
|
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -438,6 +438,10 @@ type DataSource<T = unknown> = {
|
|
|
438
438
|
index: number;
|
|
439
439
|
rowData: T;
|
|
440
440
|
};
|
|
441
|
+
type MappingDataReturn<T> = {
|
|
442
|
+
group?: string;
|
|
443
|
+
items: DataSource<T>[];
|
|
444
|
+
};
|
|
441
445
|
|
|
442
446
|
declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
|
|
443
447
|
declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
|
|
@@ -654,7 +658,7 @@ declare function getInitials(fullName?: string, max?: number): string;
|
|
|
654
658
|
declare function getMinMaxDate(dates?: string[]): [string, string];
|
|
655
659
|
declare function getDateRangeLabelFromSorted(from: string, to: string): string;
|
|
656
660
|
declare function getTotalMinutes(from?: string, to?: string): string;
|
|
657
|
-
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
|
|
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>[], DataSource<T>[]];
|
|
658
662
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
659
663
|
declare function replaceNullStrings(input: any): any;
|
|
660
664
|
|
|
@@ -724,4 +728,4 @@ interface BgsCoreProviderProps {
|
|
|
724
728
|
}
|
|
725
729
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
726
730
|
|
|
727
|
-
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 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 };
|
|
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 };
|
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 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},nr={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}))},or=(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 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 xe(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 De=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 cr(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 pr(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)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function 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 c=e(s);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[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,c]=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=y=>{if(y.key===i)if(y.newValue)try{c(t(JSON.parse(y.newValue)));}catch(T){console.error("Decrypt error from storage event",T);}else c(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 ct(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};ct(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var pe=new Map,ve=(e,t)=>{pe.set(e,t);},ke=e=>{pe.delete(e);},Ee=e=>pe.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,c=s?.storeName||`${a}`,p=s?.mergeStrategy??"replace",[y,T,R,D]=J(useShallow(h=>{let d=h.states[c]??Y;return [d.loading,d.isCancel,d.response,h.updateState]})),{storageKey:O,cache:g,clearPreviousData:N,refetchOnWindowFocus:F}=I(),L=Ue(),_=useRef(void 0),B=useRef(null),{cacheName:j,cacheKey:H,timeout:te,timeoutUnit:re,persistence:ne,cacheEnabled:b}=useMemo(()=>{let h=O?L.get(O):void 0,d=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=Te({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),u=false;typeof g?.enabled=="boolean"&&(u=g.enabled);let S=false;typeof g?.persistence=="boolean"&&(S=g?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,v="s";return $(g?.timeout)&&(typeof g?.timeout=="number"?(P=g.timeout,v="s"):typeof g?.timeout=="object"&&(P=g?.timeout.value,v=g?.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:d,cacheKey:A,timeout:P,timeoutUnit:v,persistence:S,cacheEnabled:u}},[s?.cache,i,O,g,a]);useEffect(()=>{let h=JSON.stringify($(_.current)?_.current:""),d=JSON.stringify($(i)?i:""),A=_.current===void 0;(h!==d||A)&&!s?.hold&&((s?.clearPreviousData??N)&&D(c,{response:null}),l(),_.current=i),s?.onChange&&s?.onChange(i,U);},[i,s?.clearPreviousData,N,s?.hold,...s?.trigger||[]]),useEffect(()=>{let h=async()=>{!ne&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),B.current?.abort();}},[ne,j,H,c,B]);let l=useCallback(async h=>{let d=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(d=s?.beforeRequest(i)),b&&!h&&!T){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,d)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,d),s?.onAfterResponse?.(P,d),D(c,{loading:false,response:P});return}}}if(typeof t=="function"){B.current?.abort();let A=new AbortController;B.current=A,D(c,{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(d,void 0,{...s,signal:A.signal});if(u.__rawData=u.data,p==="append"&&$(R.__rawData)&&$(u?.data)){if(Array.isArray(R.__rawData)&&Array.isArray(u?.data)){let S=[...R?.__rawData??[],...u.data??[]];u.data=S,u.__rawData=S;}else if(typeof R.__rawData=="object"&&typeof u.data=="object"){let S={...R.__rawData,...u.data};u.data=S,u.__rawData=S;}}if(s?.afterResponse&&u?.data&&(u.data=s?.afterResponse(u.data,d)),s?.logging&&console.log("After request",u),u.status&&s?.onSuccess?.(u,d),u.status||s?.onError?.(u,d),s?.onAfterResponse?.(u,d),D(c,{loading:false,response:u,isCancel:false}),b&&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,T,j,H,te,re,b,R]);useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,d=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{l();},q.duration(h,d).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,l]);let f=useRef(null),{enabledRefetch:C,timeoutRefetch:x,timeoutUnitRefetch:w}=useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,d=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof d=="number"?d:d?.value??60*5,u=typeof d=="object"?d.unit:"s";return {enabledRefetch:h,timeoutRefetch:A,timeoutUnitRefetch:u}},[s?.refetchOnWindowFocus,F]);useEffect(()=>{if(!C||s?.hold)return;let h=q.duration(x,w).asMilliseconds(),d=()=>{let u=Date.now(),S=f.current;S!==null&&u-S>=h&&l(),f.current=null;},A=()=>{f.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",A);}},[C,x,w,l,s?.hold]);let m=useCallback(()=>{B.current?.abort(),B.current=null,D(c,{loading:false,isCancel:true});},[c,B]),K=useCallback(()=>{D(c,{loading:false,response:null});},[c]),U=useMemo(()=>({...R,loading:y,refresh:l,abort:m,clear:K,response:R,isCancel:T,clone:(h,d)=>ut(t,h,{storeName:`${a}-clone`,...d})}),[R,y,l,m,K,T,t]);return useEffect(()=>(ve(c,U),()=>{ke(c);}),[U,c]),[R?.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=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(dt||{});var Gr=()=>{let{format:e}=I();return (t,r,n)=>{try{return r==="number"?Ne(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?Rt(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=xe(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}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let T=String(e??"").trim().trim();if(ae(T,r))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let y=Math.pow(10,n);i=Math[o](i*y)/y;}else i=Math[o](i);else if(typeof n=="number"){let y=Math.pow(10,n);i=Math.trunc(i*y)/y;}let s=0;if(n==="auto"){let y=i.toString(),T=y.indexOf(".");T!==-1&&(s=y.length-T-1);}let c={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",c).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function Rt(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,y)=>typeof e=="string"&&p===e||typeof e=="number"&&y===e,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),s=p=>{let{key:y,keyCode:T}=p,R=p.ctrlKey,D=p.altKey,O=p.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(y,T)&&(t==="ctrl"&&R||t==="alt"&&D||t==="shift"&&O)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));else {let g=t.every(N=>N==="ctrl"?R:N==="alt"?D:N==="shift"?O:false);a(y,T)&&g&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));}else a(y,T)&&(p.preventDefault(),r&&p.stopPropagation(),o(!n));},c=({key:p,keyCode:y})=>{a(p,y)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",c);}),[]),n}var un=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:T,passphrase:R})=>{let{encrypt:D,decrypt:O,passphrase:g}=Q(),N=(b,l,f,C)=>{let x=C?.code==="ERR_CANCELED",w=b?.status===401,m=b?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:T)&&m){let u=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?g:f.passphrase:R;try{m=O(m,u);}catch{try{m=O(m,g);}catch{}}}let h={...n({...b,data:m,isCancel:x,isUnauthorization:w},C),isCancel:x,isUnauthorization:w,httpCode:b?.status},d=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:c,A=s?s(h,f):!w;if((f?.infoSuccess&&h.status||f?.infoError&&!h.status)&&i&&(!x||!d)&&i(h),!A&&(!x||!f?.disabledHandleUnauthorized)){let u=f?.onUnauthorized||a;u&&u(h);}if(typeof l=="function")l(h);else return h},F=(b,l=()=>{})=>Tt.create({baseURL:`${e}`,withCredentials:typeof b.withCredentials=="boolean"?b.withCredentials:p})(b).then(l).catch(C=>l(C.response,C)),L=(b,l,f,C,x)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},K={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):m.token&&(K.Authorization=`Bearer ${m.token}`)),r&&(f=r(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:y)&&f){let h=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?g:x.passphrase:R;f=D(f,h);}return F({url:l,method:b,data:f,headers:K,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:h=>{m?.onUploadProgress&&m?.onUploadProgress(h);}},(h,d)=>N(h,C,m,d))};return {client:F,post:(b,l,f,C)=>L("POST",`${b}`,l,f,C),put:(b,l,f,C)=>L("PUT",`${b}`,l,f,C),patch:(b,l,f,C)=>L("PATCH",`${b}`,l,f,C),delete:(b,l,f)=>L("DELETE",`${b}`,null,l,f),get:(b,l,f)=>L("GET",`${b}`,null,l,f),upload:(b,l,f,C)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),L("POST",`${b}`,x,f,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(b,l,f,C,x)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...x},K={"Content-Type":"application/json",...o,...m.headers};if(m.token){let k=typeof m.token=="boolean"?t:m.token;k&&(K.Authorization=`Bearer ${k}`);}let U=f;if(r&&(U=r(U)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:y)&&U){let k=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?g:m.passphrase:R;U=D(U,k);}let d=await fetch(`${e}${l}`,{method:b,headers:K,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(U)}),A=d?.status,u=A===401;if(!d.ok){let k=d?.statusText||"Error";try{let X=d.headers.get("content-type")||"",V=await d.clone().text();if(V)if(X.includes("application/json"))try{let se=JSON.parse(V);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let Fe=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?g:x.passphrase:R;try{f=O(se,Fe);}catch{try{f=O(se,g);}catch{}}}k=se?.message||k;}catch{k=V;}else k=V;}catch{}let oe=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:c,W={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:u,httpCode:A,isDone:!0};x?.infoError&&i&&!oe&&i(W),C(W);return}let S=d.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 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 cr(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 pr(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,c)=>{if(typeof l!="object"){let f=typeof t=="function"?t(l,c):l,R=typeof r=="function"?r(l,c):l;return {label:f,value:R,index:c,rowData:l}}else {let f=typeof t=="function"?t(l,c):N(l,t,""),R=typeof r=="function"?r(l,c):N(l,r,"");return {label:f,value:typeof R=="boolean"?R:R||"",index:c,rowData:l}}});if(!n)return [[{items:a}],a];let i=Array.isArray(n)?n:[n],s=new Map;for(let l of a){let c=l.rowData,f=i.map(g=>String(typeof c=="object"?N(c,g,"")??"":"")).join(o),R=s.get(f)||[];R.push(l),s.set(f,R);}return [Array.from(s.entries()).map(([l,c])=>({group:l,items:c})),a]};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 c=localStorage.getItem(i);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===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",c),()=>window.removeEventListener("storage",c)},[i,t]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function ct(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};ct(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var pe=new Map,ve=(e,t)=>{pe.set(e,t);},ke=e=>{pe.delete(e);},Ne=e=>pe.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}`,c=s?.mergeStrategy??"replace",[f,R,g,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}),p(),_.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 p=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,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(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,g]);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(()=>{p();},q.duration(b,m).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,p]);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&&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(l,{loading:false,isCancel:true});},[l,B]),K=useCallback(()=>{x(l,{loading:false,response:null});},[l]),U=useMemo(()=>({...g,loading:f,refresh:p,abort:y,clear:K,response:g,isCancel:R,clone:(b,m)=>ut(t,b,{storeName:`${a}-clone`,...m})}),[g,f,p,y,K,R,t]);return useEffect(()=>(ve(l,U),()=>{ke(l);}),[U,l]),[g?.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=(p=>(p.number="number",p.currency="currency",p.percent="percent",p.date="date",p.dateTime="dateTime",p.month="month",p.year="year",p.time="time",p.timestamp="timestamp",p.string="string",p.textarea="textarea",p.code="code",p.password="password",p.boolean="boolean",p.toggle="toggle",p.email="email",p.phone="phone",p.url="url",p.json="json",p.file="file",p.image="image",p.array="array",p.object="object",p.enum="enum",p.user="user",p.department="department",p.status="status",p))(dt||{});var 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=(c,f)=>typeof e=="string"&&c===e||typeof e=="number"&&f===e,i=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(!i(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 h=t.every(E=>E==="ctrl"?g:E==="alt"?x:E==="shift"?O:false);a(f,R)&&h&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));}else a(f,R)&&(c.preventDefault(),r&&c.stopPropagation(),o(!n));},l=({key:c,keyCode:f})=>{a(c,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:c,encryptRequest:f,encryptResponse:R,passphrase:g})=>{let{encrypt:x,decrypt:O,passphrase:h}=Q(),E=(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?h:d.passphrase:g;try{y=O(y,u);}catch{try{y=O(y,h);}catch{}}}let b={...n({...T,data:y,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 p=="function")p(b);else return b},F=(T,p=()=>{})=>Tt.create({baseURL:`${e}`,withCredentials:typeof T.withCredentials=="boolean"?T.withCredentials:c})(T).then(p).catch(C=>p(C.response,C)),L=(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 b=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?h:D.passphrase:g;d=x(d,b);}return F({url:p,method:T,data:d,headers:K,responseType:y.responseType,signal:y.signal,withCredentials:y.withCredentials,onUploadProgress:b=>{y?.onUploadProgress&&y?.onUploadProgress(b);}},(b,m)=>E(b,C,y,m))};return {client:F,post:(T,p,d,C)=>L("POST",`${T}`,p,d,C),put:(T,p,d,C)=>L("PUT",`${T}`,p,d,C),patch:(T,p,d,C)=>L("PATCH",`${T}`,p,d,C),delete:(T,p,d)=>L("DELETE",`${T}`,null,p,d),get:(T,p,d)=>L("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])),L("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?h: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 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:g;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(`
|
|
2
2
|
|
|
3
|
-
`);v=W.pop();for(let X of W)if(X.startsWith("data:"))try{let V=
|
|
3
|
+
`);v=W.pop();for(let X of W)if(X.startsWith("data:"))try{let V=xe(X);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 mn(e,t){let[r,n]=useState(false),[o,a]=useState(),[i,s]=useState(0),l=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{l.current?.abort();}},[]),[async g=>{l.current?.abort();let x=new AbortController;l.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:E=>{let F=Math.round(E.loaded*100/(E.total||1));s(F);}},h=e.__isVoid?await e(void 0,O):await e(g,void 0,O);t?.logging&&console.log("After response",h),a(h),n(false),s(0),t?.afterResponse&&h?.data&&(h.data=t?.afterResponse(h.data,g)),h.status&&t?.onSuccess&&t?.onSuccess(h,g),!h.status&&t?.onError&&t?.onError(h,g),t?.onAfterResponse?.(h,g);},{...o,loading:r,abort:()=>{l.current?.abort(),l.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function Ct(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 At=typeof window<"u"?window:null;function Rn(e={}){let{getTrigger:t=Ct,target:r=At,disableHysteresis:n=false,threshold:o=100}=e,a=ee.useRef(0),[i,s]=ee.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return ee.useEffect(()=>{let l=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(l(),r)return r.addEventListener("scroll",l,{passive:true}),()=>{r.removeEventListener("scroll",l);}},[r,t,n,o]),i}function Tn(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 i=setTimeout(()=>{a(e),n&&n(e);},r);return ()=>clearTimeout(i)},[e,r,n]),o}var On=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:l}=Ne(n)||{},c=O=>{let h=O.states[n]??Y;return {loading:h.loading,isCancel:h.isCancel,response:h.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:i,clear:s,clone:l}],[g,f,R,a,i,s,l]);return t?.selector?t.selector(x):x};var Un=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},$e=(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&&$e(o.props.children,t))&&(r=true);}}),r},vn=(e,t)=>{let r={others:[]},n=o=>{ee.Children.forEach(o,a=>{if(ee.isValidElement(a)){let i=a.type.displayName,s=a,l=s.props?.children;t.includes(i)?r[i]=a:l&&$e(l,t)?n(s.props.children):r.others.push(a);}else r.others.push(a);});};return n(e),r};function Mn(){let{format:e}=I();return (t="",r=false)=>Ce(t,r,e.number.decSep)}function In(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 Re={};function Hn(e,t){let[r,n]=useState(false),[o,a]=useState(),[i,s]=useState();return useEffect(()=>{if(!e)return;if(Re[e]){s(()=>Re[e]);return}n(true),(async()=>{try{let c=await import(`${t.path}${e}${t.extension??".svg?react"}`);Re[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:i}}function _n(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(l=>l());}function i(s){let l=useRef(s?s(t):t);return useSyncExternalStore(o,()=>{let c=s?s(t):t,f=l.current;return Object.is(f,c)||(l.current=c),l.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function Et(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]=Et(o,[...t,n]):r[n]=o;}return r}function Jn(e,t){let[r,n]=useState(false),[o,a]=useState([]),i=useRef([]),s=useRef(null);useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let l=async R=>{s.current?.abort();let g=new AbortController;s.current=g,n(true),a([]),i.current=[],e(R,x=>{x.isDone||(i.current.push(x),a([...i.current])),(x.isDone||!x.status)&&(n(false),t?.onDone&&t?.onDone([...i.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([]),i.current=[];};return [o.map(R=>R.data),l,{loading:r,abort:c,reset:f,response:o}]}export{nt as BgsCoreProvider,dt as DataTypeEnum,ft as HttpMethod,De as capitalizeWords,un as createApiHelper,Un as createElement,_n as createStore,ar as debounce,le as decrypt,qe as decryptString,Y as defaultState,Qt as diffJson,ie as encrypt,we as encryptString,ir as filterDOMPropsLite,Te as generateCacheKey,Zt as generateUUID,Ne as getApiActions,pr as getDateRangeLabelFromSorted,N as getFieldValue,lr as getInitials,cr as getMinMaxDate,ur as getTotalMinutes,tr as isArray,ae as isDirtyRaw,$ as isNotEmpty,Xe as isValidNumber,sr as jsonCopy,he as labelFormatter,fr as mappingData,er as mappingUndefinedtoNull,q as moment,Qe as objectToQueryString,xe as parseSSEChunk,Ce as parseStringToNumber,ve as registerApi,rr as renderChildren,be as replaceNullStrings,ct as safeUpdate,nr as sorting,vn as splitElement,Ge as stableStringify,or as summary,ke as unregisterApi,ut as useApiLoad,J as useApiLoadStore,mn as useApiSend,On as useApiStore,Jn as useApiStream,I as useBgsCore,Q as useCrypto,Tn as useDebounce,Vr as useDelay,Hn as useDynamicSvgImport,In as useElementBounding,Gr as useFormatted,Qr as useInterval,rn as useKeyPress,Mn as useParseStringToNumber,Rn as useScrollTrigger,Ue as useStorage,Et 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.15",
|
|
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",
|