@bgscore/react-core 1.0.2 → 1.0.4
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 +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var de=require('react'),$=require('dayjs'),Ke=require('dayjs/plugin/utc'),Le=require('dayjs/plugin/timezone'),Fe=require('dayjs/plugin/duration'),Ie=require('dayjs/plugin/advancedFormat'),He=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),je=require('dayjs/plugin/isSameOrBefore'),Ve=require('dayjs/plugin/isSameOrAfter'),We=require('dayjs/plugin/weekOfYear'),Ye=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ce=require('crypto-js/aes'),Ae=require('crypto-js/pbkdf2'),rt=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),De=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),gt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var de__default=/*#__PURE__*/_interopDefault(de);var $__default=/*#__PURE__*/_interopDefault($);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Le__default=/*#__PURE__*/_interopDefault(Le);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);var je__default=/*#__PURE__*/_interopDefault(je);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var We__default=/*#__PURE__*/_interopDefault(We);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var rt__default=/*#__PURE__*/_interopDefault(rt);var X__default=/*#__PURE__*/_interopDefault(X);var De__default=/*#__PURE__*/_interopDefault(De);var gt__default=/*#__PURE__*/_interopDefault(gt);$__default.default.extend(Ke__default.default);$__default.default.extend(Le__default.default);$__default.default.extend(Fe__default.default);$__default.default.extend(Ie__default.default);$__default.default.extend(He__default.default);$__default.default.extend(Be__default.default);$__default.default.extend(je__default.default);$__default.default.extend(Ve__default.default);$__default.default.extend(We__default.default);$__default.default.extend(Ye__default.default);var q=$__default.default;function Vt(){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 Wt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Yt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function zt(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=ye.snackCase(ye.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Jt(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},_t={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}))},Gt=(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 Xt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Zt(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var be=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function oe(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Je(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&oe(n,r))return true}return false}function xe(e="",t=false,r="."){if(!Je(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Qt(e){let t={};for(let r in e)_e.has(r)&&(t[r]=e[r]);return t}function er(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function tr(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 rr(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 nr(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 or=(e=[],t="label",r="value",n)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function Ge(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Ge(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var Te=de.createContext(void 0);function L(){let e=de.useContext(Te);return e||{}}var et=({children:e,value:t})=>{let r={...t};return de.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(Te.Provider,{value:r,children:e})};function se(e,t){let r=De__default.default.random(16),n=De__default.default.random(16),o=Ae__default.default(t,r,{keySize:256/32,iterations:1e3}),a=Ce__default.default.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(X__default.default),iv:n.toString(X__default.default),encrypted:a}}function ae(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Ae__default.default(t,X__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=Ce__default.default.decrypt(o,a,{iv:X__default.default.parse(n)}).toString(rt__default.default);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return se(t,r||e)},decrypt(t,r){return ae(t,r||e)},encryptString(t,r){return Se(t,r||e)},decryptString(t,r){return Pe(t,r||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),r=de.useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),n=de.useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,p]=de.useState(()=>{try{let u=localStorage.getItem(i);return u?t(JSON.parse(u)):null}catch(u){return console.error("Failed to parse localStorage value",u),null}});return de.useEffect(()=>{let u=d=>{if(d.key===i)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}else p(null);};return window.addEventListener("storage",u),()=>window.removeEventListener("storage",u)},[i,t]),s},a=de.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function at(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};at(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,p=s?.storeName||`${a}`,[u,d,x,R]=z(shallow.useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:C,clearPreviousData:D,refetchOnWindowFocus:U}=L(),j=Oe(),M=de.useRef(void 0),F=de.useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=de.useMemo(()=>{let h=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,b=ge({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),g=false;typeof C?.enabled=="boolean"&&(g=C.enabled);let P=false;typeof C?.persistence=="boolean"&&(P=C?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,k="s";return K(C?.timeout)&&(typeof C?.timeout=="number"?(O=C.timeout,k="s"):typeof C?.timeout=="object"&&(O=C?.timeout.value,k=C?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?g=s.cache.enabled:g=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,k="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,k=s.cache.timeout.unit)):g=s.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:g}},[s?.cache,i,S,C,a]);de.useEffect(()=>{let h=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),b=M.current===void 0;(h!==c||b)&&!s?.hold&&((s?.clearPreviousData??D)&&R(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,N);},[i,s?.clearPreviousData,D,s?.hold,...s?.trigger||[]]),de.useEffect(()=>{let h=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,I,p,F]);let y=de.useCallback(async h=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!h&&!d){s?.onBeforeRequest&&s?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(I))?.json();if(P){let{data:O,expired:k}=P;if(q().isAfter(k))await b.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),R(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let b=new AbortController;F.current=b,R(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let g=o?await t(void 0,{...s,signal:b.signal}):await t(c,void 0,{...s,signal:b.signal});if(s?.afterResponse&&g?.data&&(g.data=s?.afterResponse(g.data,c)),s?.logging&&console.log("After request",g),g.status&&s?.onSuccess?.(g,c),g.status||s?.onError?.(g,c),s?.onAfterResponse?.(g,c),R(p,{loading:false,response:g,isCancel:false}),_&&g.status){let P=q().add(Q,ee).toISOString(),O={data:g,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(I,V);}}},[i,t,s,d,H,I,Q,ee,_]);de.useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,b=setInterval(()=>{y();},q.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[s?.refreshInterval,y]);let l=de.useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:T}=de.useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??U?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??U?.timeout,b=typeof c=="number"?c:c?.value??60*5,g=typeof c=="object"?c.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:g}},[s?.refetchOnWindowFocus,U]);de.useEffect(()=>{if(!f)return;let h=q.duration(A,T).asMilliseconds(),c=()=>{let g=Date.now(),P=l.current;P!==null&&g-P>=h&&y(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",c),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",b);}},[f,A,T,y]);let w=de.useCallback(()=>{F.current?.abort(),F.current=null,R(p,{loading:false,isCancel:true});},[p,F]),m=de.useCallback(()=>{R(p,{loading:false,response:null});},[p]),N=de.useMemo(()=>({...x,loading:u,refresh:y,abort:w,clear:m,response:x,isCancel:d,clone:(h,c)=>lt(t,h,c)}),[x,u,y,w,m,d,t]);return de.useEffect(()=>(we(p,N),()=>{qe(p);}),[N,p]),[x?.data,N]}async function $r(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(ct||{});var Br=(e,t,r)=>{let{format:n}=L();return t==="number"?Ne(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?ut(e,r):t==="string"?ft(e,r):e?.toString()??""};function ut(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function ft(e,t){if(!K(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=he(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let d=Math.pow(10,n);i=Math[o](i*d)/d;}else i=Math[o](i);else if(typeof n=="number"){let d=Math.pow(10,n);i=Math.trunc(i*d)/d;}let s=0;if(n==="auto"){let d=i.toString(),x=d.indexOf(".");x!==-1&&(s=d.length-x-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function dt(e,{display:t,value:r}){if(!K(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function Wr(e,{interval:t,lead:r}){let n=de.useRef(null);de.useEffect(()=>{n.current=e;},[e]),de.useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Jr(e,t,r){let[n,o]=de.useState(false),a=(u,d)=>typeof e=="string"&&u===e||typeof e=="number"&&d===e,i=u=>u!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(u.tagName)||u.hasAttribute("contentEditable")),s=u=>{let{key:d,keyCode:x}=u,R=u.ctrlKey,S=u.altKey,C=u.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(d,x)&&(t==="ctrl"&&R||t==="alt"&&S||t==="shift"&&C)&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,x)&&D&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));}else a(d,x)&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));},p=({key:u,keyCode:d})=>{a(u,d)&&o(false);};return de.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),n}var rn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:u,encryptRequest:d,encryptResponse:x,passphrase:R})=>{let{encrypt:S,decrypt:C,passphrase:D}=Z(),U=(y,l,f,A)=>{let T=A?.code==="ERR_CANCELED",w=y?.status===401,m=y?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:x)&&m){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?D:f.passphrase:R;try{m=C(m,P);}catch{try{m=C(m,D);}catch{}}}let c={...n({...y,data:m,isCancel:T,isUnauthorization:w},A),isCancel:T,isUnauthorization:w,httpCode:y?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,g=s?s(c,f):!w;if((f?.infoSuccess&&c.status||f?.infoError&&!c.status)&&i&&(!T||!b)&&i(c),!g&&(!T||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt__default.default.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:u})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,f,A,T)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},N={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):m.token&&(N.Authorization=`Bearer ${m.token}`)),r&&(f=r(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:d)&&f){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?D:T.passphrase:R;f=S(f,c);}return j({url:l,method:y,data:f,headers:N,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:c=>{m?.onUploadProgress&&m?.onUploadProgress(c);}},(c,b)=>U(c,A,m,b))};return {client:j,post:(y,l,f,A)=>M("POST",`${y}`,l,f,A),put:(y,l,f,A)=>M("PUT",`${y}`,l,f,A),patch:(y,l,f,A)=>M("PATCH",`${y}`,l,f,A),delete:(y,l,f)=>M("DELETE",`${y}`,null,l,f),get:(y,l,f)=>M("GET",`${y}`,null,l,f),upload:(y,l,f,A)=>{let T=new FormData;return Object.keys(l).forEach(w=>T.append(w,l[w])),M("POST",`${y}`,T,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,f,A,T)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...T},N={"Content-Type":"application/json",...o,...m.headers};if(m.token){let v=typeof m.token=="boolean"?t:m.token;v&&(N.Authorization=`Bearer ${v}`);}let h=f;if(r&&(h=r(h)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:d)&&h){let v=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?D:m.passphrase:R;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:y,headers:N,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(h)}),g=b?.status,P=g===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",B=await b.clone().text();if(B)if(G.includes("application/json"))try{let ne=JSON.parse(B);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&f){let $e=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?D:T.passphrase:R;try{f=C(ne,$e);}catch{try{f=C(ne,D);}catch{}}}v=ne?.message||v;}catch{v=B;}else v=B;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=k.decode(re,{stream:!0});let W=V.split(`
|
|
1
|
+
'use strict';var de=require('react'),$=require('dayjs'),Ke=require('dayjs/plugin/utc'),Le=require('dayjs/plugin/timezone'),Fe=require('dayjs/plugin/duration'),Ie=require('dayjs/plugin/advancedFormat'),He=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),je=require('dayjs/plugin/isSameOrBefore'),Ve=require('dayjs/plugin/isSameOrAfter'),We=require('dayjs/plugin/weekOfYear'),Ye=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ce=require('crypto-js/aes'),Ae=require('crypto-js/pbkdf2'),nt=require('crypto-js/enc-utf8'),X=require('crypto-js/enc-base64'),De=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),gt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var de__default=/*#__PURE__*/_interopDefault(de);var $__default=/*#__PURE__*/_interopDefault($);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Le__default=/*#__PURE__*/_interopDefault(Le);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);var je__default=/*#__PURE__*/_interopDefault(je);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var We__default=/*#__PURE__*/_interopDefault(We);var Ye__default=/*#__PURE__*/_interopDefault(Ye);var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var nt__default=/*#__PURE__*/_interopDefault(nt);var X__default=/*#__PURE__*/_interopDefault(X);var De__default=/*#__PURE__*/_interopDefault(De);var gt__default=/*#__PURE__*/_interopDefault(gt);$__default.default.extend(Ke__default.default);$__default.default.extend(Le__default.default);$__default.default.extend(Fe__default.default);$__default.default.extend(Ie__default.default);$__default.default.extend(He__default.default);$__default.default.extend(Be__default.default);$__default.default.extend(je__default.default);$__default.default.extend(Ve__default.default);$__default.default.extend(We__default.default);$__default.default.extend(Ye__default.default);var q=$__default.default;function Yt(){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 zt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Jt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function _t(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(r,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ye.snackCase(ye.camelCase(e)),t&&(n=n?.split(" ")?.map(r=>r?.length<=3?r?.toUpperCase():r)?.join(" "));}catch{}return n?.trim()}};function Gt(e,t){return typeof e=="function"?e(t):e}var E=(e,t,n)=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let r=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of r){if(o==null)return n;o=o[a];}return o===void 0?n:o},Xt={desc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let o=E(n,t)?E(n,t):"",a=E(r,t)?E(n,t):"";return o<a?1:-1}else return n<r?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let o=E(n,t)?E(n,t):"",a=E(r,t)?E(r,t):"";return o>a?1:-1}else return n>r?1:-1}))},Zt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(r=>Number(t?E(r,t)||0:r||0)),n.reduce((r,o)=>(r||0)+(o||0),0)||0};function Qt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(e){let t=new WeakSet;return JSON.stringify(e,function(n,r){return r!==null&&typeof r=="object"?t.has(r)?void 0:(t.add(r),Object.keys(r).sort().reduce((o,a)=>(o[a]=r[a],o),{})):r})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function be(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function en(e,t=0){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{e(...r);},t*1e3);}}var he=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function oe(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${n}$`).test(e)||new RegExp(`^-?${n}\\d*$`).test(e)}function Je(e,t=false,n="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let r=e.trim(),o=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(r)||t&&oe(r,n))return true}return false}function Te(e="",t=false,n="."){if(!Je(e,!t,n))return null;let r=n==="."?e.trim():e.trim().replace(n,"."),o=Number(r);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function tn(e){let t={};for(let n in e)_e.has(n)&&(t[n]=e[n]);return t}function nn(e,t=2){return e?e.split(" ").map(n=>n.charAt(0).toUpperCase()).slice(0,t).join(""):""}function rn(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let n=t.map(q).sort((a,i)=>a.diff(i)),r=n[0].format("YYYY-MM-DD"),o=n.at(-1).format("YYYY-MM-DD");return [r,o]}function on(e,t){let n=q(e),r=q(t),o=n.month()===r.month(),a=n.year()===r.year();return a&&o?`${n.format("DD")} - ${r.format("DD")} ${n.format("MMM")} ${n.format("YYYY")}`:a?`${n.format("DD MMM")} - ${r.format("DD MMM")} ${n.format("YYYY")}`:`${n.format("DD MMM YYYY")} - ${r.format("DD MMM YYYY")}`}function sn(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let n=q(e,"HH:mm",true),r=q(t,"HH:mm",true);if(!n.isValid()||!r.isValid())return "";let o=r.diff(n,"minutes");return o<=0&&(o+=24*60),o.toString()}var an=(e=[],t="label",n="value",r)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof n=="function"?n(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 n=="function"?n(o,a):E(o,n,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...r&&{[r]:E(o,r)},rowData:o}}}):[];function Ge(e,t=""){let n=[];for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],a=t?`${t}[${encodeURIComponent(r)}]`:encodeURIComponent(r);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{n.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?n.push(Ge(o,a)):n.push(`${a}=${encodeURIComponent(o)}`);}return n.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var xe=de.createContext(void 0);function L(){let e=de.useContext(xe);return e||{}}var et=({children:e,value:t})=>{let n={...t};return de.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(xe.Provider,{value:n,children:e})};function se(e,t){let n=De__default.default.random(16),r=De__default.default.random(16),o=Ae__default.default(t,n,{keySize:256/32,iterations:1e3}),a=Ce__default.default.encrypt(JSON.stringify(e),o,{iv:r}).toString();return {salt:n.toString(X__default.default),iv:r.toString(X__default.default),encrypted:a}}function ae(e,t){let{salt:n,iv:r,encrypted:o}=e,a=Ae__default.default(t,X__default.default.parse(n),{keySize:256/32,iterations:1e3}),s=Ce__default.default.decrypt(o,a,{iv:X__default.default.parse(r)}).toString(nt__default.default);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,n){return se(t,n||e)},decrypt(t,n){return ae(t,n||e)},encryptString(t,n){return Se(t,n||e)},decryptString(t,n){return Pe(t,n||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),n=de.useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),r=de.useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,p]=de.useState(()=>{try{let u=localStorage.getItem(i);return u?t(JSON.parse(u)):null}catch(u){return console.error("Failed to parse localStorage value",u),null}});return de.useEffect(()=>{let u=d=>{if(d.key===i)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(T){console.error("Decrypt error from storage event",T);}else p(null);};return window.addEventListener("storage",u),()=>window.removeEventListener("storage",u)},[i,t]),s},a=de.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:n,get:r,clear:a,useWatchStorage:o}};function at(e,t){for(let n in t){let r=e[n],o=t[n];if(n==="response"){let a=JSON.stringify(r),i=JSON.stringify(o);if(a!==i)return false}else if(r!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=zustand.create((e,t)=>({states:{},updateState:(n,r)=>{let o=t().states[n]??Y,a={...o,...r};at(o,a)||e(i=>({states:{...i.states,[n]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,n,r]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:n,s=o?n:r,p=s?.storeName||`${a}`,[u,d,T,R]=z(shallow.useShallow(b=>{let c=b.states[p]??Y;return [c.loading,c.isCancel,c.response,b.updateState]})),{storageKey:S,cache:C,clearPreviousData:D,refetchOnWindowFocus:U}=L(),j=Oe(),M=de.useRef(void 0),F=de.useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=de.useMemo(()=>{let b=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,h=ge({...i,session:b},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),g=false;typeof C?.enabled=="boolean"&&(g=C.enabled);let P=false;typeof C?.persistence=="boolean"&&(P=C?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,k="s";return K(C?.timeout)&&(typeof C?.timeout=="number"?(O=C.timeout,k="s"):typeof C?.timeout=="object"&&(O=C?.timeout.value,k=C?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?g=s.cache.enabled:g=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,k="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,k=s.cache.timeout.unit)):g=s.cache),{cacheName:c,cacheKey:h,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:g}},[s?.cache,i,S,C,a]);de.useEffect(()=>{let b=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),h=M.current===void 0;(b!==c||h)&&!s?.hold&&((s?.clearPreviousData??D)&&R(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,N);},[i,s?.clearPreviousData,D,s?.hold,...s?.trigger||[]]),de.useEffect(()=>{let b=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),F.current?.abort();}},[te,H,I,p,F]);let y=de.useCallback(async b=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!b&&!d){s?.onBeforeRequest&&s?.onBeforeRequest(i);let h=await caches.open(H),P=await(await h.match(I))?.json();if(P){let{data:O,expired:k}=P;if(q().isAfter(k))await h.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),R(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let h=new AbortController;F.current=h,R(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let g=o?await t(void 0,{...s,signal:h.signal}):await t(c,void 0,{...s,signal:h.signal});if(s?.afterResponse&&g?.data&&(g.data=s?.afterResponse(g.data,c)),s?.logging&&console.log("After request",g),g.status&&s?.onSuccess?.(g,c),g.status||s?.onError?.(g,c),s?.onAfterResponse?.(g,c),R(p,{loading:false,response:g,isCancel:false}),_&&g.status){let P=q().add(Q,ee).toISOString(),O={data:g,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(I,V);}}},[i,t,s,d,H,I,Q,ee,_]);de.useEffect(()=>{if(s?.refreshInterval){let b=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,h=setInterval(()=>{y();},q.duration(b,c).asMilliseconds());return ()=>clearInterval(h)}return ()=>{}},[s?.refreshInterval,y]);let l=de.useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=de.useMemo(()=>{let b=s?.refetchOnWindowFocus?.enabled??U?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??U?.timeout,h=typeof c=="number"?c:c?.value??60*5,g=typeof c=="object"?c.unit:"s";return {enabledRefetch:b,timeoutRefetch:h,timeoutUnitRefetch:g}},[s?.refetchOnWindowFocus,U]);de.useEffect(()=>{if(!f)return;let b=q.duration(A,x).asMilliseconds(),c=()=>{let g=Date.now(),P=l.current;P!==null&&g-P>=b&&y(),l.current=null;},h=()=>{l.current=Date.now();};return window.addEventListener("focus",c),window.addEventListener("blur",h),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",h);}},[f,A,x,y]);let w=de.useCallback(()=>{F.current?.abort(),F.current=null,R(p,{loading:false,isCancel:true});},[p,F]),m=de.useCallback(()=>{R(p,{loading:false,response:null});},[p]),N=de.useMemo(()=>({...T,loading:u,refresh:y,abort:w,clear:m,response:T,isCancel:d,clone:(b,c)=>lt(t,b,{storeName:`${a}-clone`,...c})}),[T,u,y,w,m,d,t]);return de.useEffect(()=>(we(p,N),()=>{qe(p);}),[N,p]),[T?.data,N]}async function Fn(e,t=()=>{}){let n=e*1e3;return new Promise(r=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),r(true);},n);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(ct||{});var Wn=(e,t,n)=>{let{format:r}=L();return t==="number"?Ne(e,{thouSep:r.number.thouSep,decDigits:r.number.decDigits,decSep:r.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:r[t]?.display,value:r[t]?.value,...n}):t==="boolean"?ut(e,n):t==="string"?ft(e,n):e?.toString()??""};function ut(e,t){let n=typeof e=="string"?e==="true":!!e,r=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return n?r:o}function ft(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=be(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:n,decDigits:r,method:o,dirty:a}){if(a){let T=String(e??"").trim().trim();if(oe(T,n))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof r=="number"){let d=Math.pow(10,r);i=Math[o](i*d)/d;}else i=Math[o](i);else if(typeof r=="number"){let d=Math.pow(10,r);i=Math.trunc(i*d)/d;}let s=0;if(r==="auto"){let d=i.toString(),T=d.indexOf(".");T!==-1&&(s=d.length-T-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:r==="auto"?s:r||0,maximumFractionDigits:r==="auto"?s:r||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function dt(e,{display:t,value:n}){if(!K(e))return e;let r=q(e,n);return r.isValid()?r.format(t):e}function Jn(e,{interval:t,lead:n}){let r=de.useRef(null);de.useEffect(()=>{r.current=e;},[e]),de.useEffect(()=>{let o=()=>r.current();if(n&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Xn(e,t,n){let[r,o]=de.useState(false),a=(u,d)=>typeof e=="string"&&u===e||typeof e=="number"&&d===e,i=u=>u!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(u.tagName)||u.hasAttribute("contentEditable")),s=u=>{let{key:d,keyCode:T}=u,R=u.ctrlKey,S=u.altKey,C=u.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(d,T)&&(t==="ctrl"&&R||t==="alt"&&S||t==="shift"&&C)&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,T)&&D&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));}else a(d,T)&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));},p=({key:u,keyCode:d})=>{a(u,d)&&o(false);};return de.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),r}var sr=({url:e,token:t,beforeRequest:n,onCallback:r,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:u,encryptRequest:d,encryptResponse:T,passphrase:R})=>{let{encrypt:S,decrypt:C,passphrase:D}=Z(),U=(y,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=y?.status===401,m=y?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:T)&&m){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?D:f.passphrase:R;try{m=C(m,P);}catch{try{m=C(m,D);}catch{}}}let c={...r({...y,data:m,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:y?.status},h=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,g=s?s(c,f):!w;if((f?.infoSuccess&&c.status||f?.infoError&&!c.status)&&i&&(!x||!h)&&i(c),!g&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt__default.default.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:u})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,f,A,x)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},N={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):m.token&&(N.Authorization=`Bearer ${m.token}`)),n&&(f=n(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:d)&&f){let c=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.passphrase:R;f=S(f,c);}return j({url:l,method:y,data:f,headers:N,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:c=>{m?.onUploadProgress&&m?.onUploadProgress(c);}},(c,h)=>U(c,A,m,h))};return {client:j,post:(y,l,f,A)=>M("POST",`${y}`,l,f,A),put:(y,l,f,A)=>M("PUT",`${y}`,l,f,A),patch:(y,l,f,A)=>M("PATCH",`${y}`,l,f,A),delete:(y,l,f)=>M("DELETE",`${y}`,null,l,f),get:(y,l,f)=>M("GET",`${y}`,null,l,f),upload:(y,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),M("POST",`${y}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,f,A,x)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...x},N={"Content-Type":"application/json",...o,...m.headers};if(m.token){let v=typeof m.token=="boolean"?t:m.token;v&&(N.Authorization=`Bearer ${v}`);}let b=f;if(n&&(b=n(b)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:d)&&b){let v=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?D:m.passphrase:R;b=S(b,v);}let h=await fetch(`${e}${l}`,{method:y,headers:N,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(b)}),g=h?.status,P=g===401;if(!h.ok){let v=h?.statusText||"Error";try{let G=h.headers.get("content-type")||"",B=await h.clone().text();if(B)if(G.includes("application/json"))try{let re=JSON.parse(B);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let $e=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.passphrase:R;try{f=C(re,$e);}catch{try{f=C(re,D);}catch{}}}v=re?.message||v;}catch{v=B;}else v=B;}catch{}let ne=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0};x?.infoError&&i&&!ne&&i(W),A(W);return}let O=h.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:ne}=await O.read();me=v,V+=k.decode(ne,{stream:!0});let W=V.split(`
|
|
2
2
|
|
|
3
|
-
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=
|
|
3
|
+
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=he(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0});}catch(w){let m=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:m,isUnauthorization:false,httpCode:400,isDone:true});}}}};function lr(e,t){let[n,r]=de.useState(false),[o,a]=de.useState(),[i,s]=de.useState(0),p=de.useRef(null);return de.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async R=>{p.current?.abort();let S=new AbortController;p.current=S,r(true),t?.beforeRequest&&(R=t?.beforeRequest(R)),t?.logging&&console.log("Before request",R),t?.onBeforeRequest&&t?.onBeforeRequest(R);let C={...t,signal:S.signal,onUploadProgress:U=>{let j=Math.round(U.loaded*100/(U.total||1));s(j);}},D=e.__isVoid?await e(void 0,C):await e(R,void 0,C);t?.logging&&console.log("After response",D),a(D),r(false),s(0),t?.afterResponse&&D?.data&&(D.data=t?.afterResponse(D.data,R)),D.status&&t?.onSuccess&&t?.onSuccess(D,R),!D.status&&t?.onError&&t?.onError(D,R),t?.onAfterResponse?.(D,R);},{...o,loading:n,abort:()=>{p.current?.abort(),p.current=null,r(false),s(0);},progress:i,reset:()=>{r(false),s(0),a(null);}}]}function Tt(e,t){let{disableHysteresis:n=false,threshold:r=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)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>r}var xt=typeof window<"u"?window:null;function ur(e={}){let{getTrigger:t=Tt,target:n=xt,disableHysteresis:r=false,threshold:o=100}=e,a=de__default.default.useRef(0),[i,s]=de__default.default.useState(()=>t(a,{disableHysteresis:r,threshold:o,target:n}));return de__default.default.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:r,threshold:o,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,r,o]),i}function mr(e,t){let n,r;typeof t=="number"?(n=t,r=void 0):(n=t?.delay??500,r=t?.onDebounce);let[o,a]=de.useState(e);return de.useEffect(()=>{let i=setTimeout(()=>{a(e),r&&r(e);},n);return ()=>clearTimeout(i)},[e,n,r]),o}var xr=(e,t)=>{let n=e.__path||e.name,r=t?.storeName||`${n}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:p}=Ue(r)||{},u=C=>{let D=C.states[r]??Y;return {loading:D.loading,isCancel:D.isCancel,response:D.response}},{loading:d,isCancel:T,response:R}=o?z(shallow.useShallow(u)):z(u),S=de.useMemo(()=>[R?.data,{...R,loading:d,isCancel:T,refresh:a,abort:i,clear:s,clone:p}],[R,d,T,a,i,s,p]);return t?.selector?t.selector(S):S};var Ar=(e,t)=>{let n=r=>e(r);return n.displayName=t,n},Sr=(e,t)=>{let n={};n.others=[];let r=o=>{de__default.default.Children.forEach(o,a=>{if(de__default.default.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))n[i]=a;else {let s=a;s.props?.children?r(s.props.children):n.others.push(a);}}else n.others.push(a);});};return r(e),n};function qr(){let{format:e}=L();return (t="",n=false)=>Te(t,n,e.number.decSep)}function kr(e){let t=e,n=new Set;function r(){return t}function o(s){return n.add(s),()=>n.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,n.forEach(p=>p());}function i(s){let p=de.useRef(s?s(t):t);return de.useSyncExternalStore(o,()=>{let u=s?s(t):t,d=p.current;return Object.is(d,u)||(p.current=u),p.current},()=>s?s(t):t)}return {getSnapshot:r,subscribe:o,setState:a,useStore:i}}function wt(e,t=[]){let n={};for(let r in e){let o=e[r];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,r].join("."),a.__isVoid=o.length===2,n[r]=a;}else typeof o=="object"&&o!==null?n[r]=wt(o,[...t,r]):n[r]=o;}return n}function $r(e,t){let[n,r]=de.useState(false),[o,a]=de.useState([]),i=de.useRef([]),s=de.useRef(null);de.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async T=>{s.current?.abort();let R=new AbortController;s.current=R,r(true),a([]),i.current=[],e(T,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(r(false),t?.onDone&&t?.onDone([...i.current])),S.status?t?.onStream&&t?.onStream(S):t?.onError&&t?.onError(S);},{signal:R.signal});},u=()=>{s.current?.abort(),s.current=null,r(false);},d=()=>{r(false),a([]),i.current=[];};return [o.map(T=>T.data),p,{loading:n,abort:u,reset:d,response:o}]}exports.BgsCoreProvider=et;exports.DataTypeEnum=ct;exports.HttpMethod=pt;exports.capitalizeWords=be;exports.createApiHelper=sr;exports.createElement=Ar;exports.createStore=kr;exports.debounce=en;exports.decrypt=ae;exports.decryptString=Pe;exports.defaultState=Y;exports.diffJson=zt;exports.encrypt=se;exports.encryptString=Se;exports.filterDOMPropsLite=tn;exports.generateCacheKey=ge;exports.generateUUID=Yt;exports.getApiActions=Ue;exports.getDateRangeLabelFromSorted=on;exports.getFieldValue=E;exports.getInitials=nn;exports.getMinMaxDate=rn;exports.getTotalMinutes=sn;exports.isArray=_t;exports.isDirtyRaw=oe;exports.isNotEmpty=K;exports.isValidNumber=Je;exports.jsonCopy=Qt;exports.labelFormatter=ye;exports.mappingData=an;exports.mappingUndefinedtoNull=Jt;exports.moment=q;exports.objectToQueryString=Ge;exports.parseSSEChunk=he;exports.parseStringToNumber=Te;exports.registerApi=we;exports.renderChildren=Gt;exports.replaceNullStrings=Re;exports.safeUpdate=at;exports.sorting=Xt;exports.splitElement=Sr;exports.stableStringify=ze;exports.summary=Zt;exports.unregisterApi=qe;exports.useApiLoad=lt;exports.useApiLoadStore=z;exports.useApiSend=lr;exports.useApiStore=xr;exports.useApiStream=$r;exports.useBgsCore=L;exports.useCrypto=Z;exports.useDebounce=mr;exports.useDelay=Fn;exports.useFormatted=Wn;exports.useInterval=Jn;exports.useKeyPress=Xn;exports.useParseStringToNumber=qr;exports.useScrollTrigger=ur;exports.useStorage=Oe;exports.wrapApi=wt;
|
package/dist/index.d.cts
CHANGED
|
@@ -522,6 +522,12 @@ declare function useCrypto(): {
|
|
|
522
522
|
decryptString(data: string, passphraseProps?: string | null): string;
|
|
523
523
|
};
|
|
524
524
|
|
|
525
|
+
type UseDebounceOptions<T> = {
|
|
526
|
+
delay?: number;
|
|
527
|
+
onDebounce?: (value: T) => void;
|
|
528
|
+
};
|
|
529
|
+
declare function useDebounce<T = string>(value: T, options?: number | UseDebounceOptions<T>): T;
|
|
530
|
+
|
|
525
531
|
type AnyApiMethod = ApiMethod<any, any> | ApiMethodVoid<any>;
|
|
526
532
|
type InferApiRequest<T> = T extends ApiMethod<infer Req, any> ? Req : T extends ApiMethodVoid<any> ? never : never;
|
|
527
533
|
type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : T extends ApiMethodVoid<infer Res> ? Res : never;
|
|
@@ -685,4 +691,4 @@ interface BgsCoreProviderProps {
|
|
|
685
691
|
}
|
|
686
692
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
687
693
|
|
|
688
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
694
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -522,6 +522,12 @@ declare function useCrypto(): {
|
|
|
522
522
|
decryptString(data: string, passphraseProps?: string | null): string;
|
|
523
523
|
};
|
|
524
524
|
|
|
525
|
+
type UseDebounceOptions<T> = {
|
|
526
|
+
delay?: number;
|
|
527
|
+
onDebounce?: (value: T) => void;
|
|
528
|
+
};
|
|
529
|
+
declare function useDebounce<T = string>(value: T, options?: number | UseDebounceOptions<T>): T;
|
|
530
|
+
|
|
525
531
|
type AnyApiMethod = ApiMethod<any, any> | ApiMethodVoid<any>;
|
|
526
532
|
type InferApiRequest<T> = T extends ApiMethod<infer Req, any> ? Req : T extends ApiMethodVoid<any> ? never : never;
|
|
527
533
|
type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : T extends ApiMethodVoid<infer Res> ? Res : never;
|
|
@@ -685,4 +691,4 @@ interface BgsCoreProviderProps {
|
|
|
685
691
|
}
|
|
686
692
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
687
693
|
|
|
688
|
-
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
|
694
|
+
export { type ApiActionState, type ApiActionStateStream, type ApiDefaultFetch, type ApiDefaultMethod, type ApiDefaultStream, type ApiLoadState, type ApiMethod, type ApiMethodStream, type ApiMethodVoid, type ApiResponse, type ApiResponseStream, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type CallbackStream, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataSource, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type TimeoutConfig, type UseApiSendProps, type UseApiSendReturnType, type UseApiStreamProps, type UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, filterDOMPropsLite, generateCacheKey, generateUUID, getApiActions, getDateRangeLabelFromSorted, getFieldValue, getInitials, getMinMaxDate, getTotalMinutes, isArray, isDirtyRaw, isNotEmpty, isValidNumber, jsonCopy, labelFormatter, mappingData, mappingUndefinedtoNull, moment, objectToQueryString, parseSSEChunk, parseStringToNumber, registerApi, renderChildren, replaceNullStrings, safeUpdate, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDebounce, useDelay, useFormatted, useInterval, useKeyPress, useParseStringToNumber, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import de,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import $ from'dayjs';import Ke from'dayjs/plugin/utc';import Le from'dayjs/plugin/timezone';import Fe from'dayjs/plugin/duration';import Ie from'dayjs/plugin/advancedFormat';import He from'dayjs/plugin/localizedFormat';import Be from'dayjs/plugin/relativeTime';import je from'dayjs/plugin/isSameOrBefore';import Ve from'dayjs/plugin/isSameOrAfter';import We from'dayjs/plugin/weekOfYear';import Ye from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Ce from'crypto-js/aes';import Ae from'crypto-js/pbkdf2';import rt from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import De from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import gt from'axios';$.extend(Ke);$.extend(Le);$.extend(Fe);$.extend(Ie);$.extend(He);$.extend(Be);$.extend(je);$.extend(Ve);$.extend(We);$.extend(Ye);var q=$;function Vt(){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 Wt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Yt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function zt(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=ye.snackCase(ye.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Jt(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},_t={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}))},Gt=(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 Xt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Zt(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var be=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function oe(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function Je(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&oe(n,r))return true}return false}function xe(e="",t=false,r="."){if(!Je(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function Qt(e){let t={};for(let r in e)_e.has(r)&&(t[r]=e[r]);return t}function er(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function tr(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 rr(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 nr(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 or=(e=[],t="label",r="value",n)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):E(o,t,""),s=typeof r=="function"?r(o,a):E(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:E(o,n)},rowData:o}}}):[];function Ge(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Ge(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var Te=createContext(void 0);function L(){let e=useContext(Te);return e||{}}var et=({children:e,value:t})=>{let r={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsx(Te.Provider,{value:r,children:e})};function se(e,t){let r=De.random(16),n=De.random(16),o=Ae(t,r,{keySize:256/32,iterations:1e3}),a=Ce.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(X),iv:n.toString(X),encrypted:a}}function ae(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Ae(t,X.parse(r),{keySize:256/32,iterations:1e3}),s=Ce.decrypt(o,a,{iv:X.parse(n)}).toString(rt);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return se(t,r||e)},decrypt(t,r){return ae(t,r||e)},encryptString(t,r){return Se(t,r||e)},decryptString(t,r){return Pe(t,r||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),r=useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),n=useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,p]=useState(()=>{try{let u=localStorage.getItem(i);return u?t(JSON.parse(u)):null}catch(u){return console.error("Failed to parse localStorage value",u),null}});return useEffect(()=>{let u=d=>{if(d.key===i)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(x){console.error("Decrypt error from storage event",x);}else p(null);};return window.addEventListener("storage",u),()=>window.removeEventListener("storage",u)},[i,t]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function at(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??Y,a={...o,...n};at(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,p=s?.storeName||`${a}`,[u,d,x,R]=z(useShallow(h=>{let c=h.states[p]??Y;return [c.loading,c.isCancel,c.response,h.updateState]})),{storageKey:S,cache:C,clearPreviousData:D,refetchOnWindowFocus:U}=L(),j=Oe(),M=useRef(void 0),F=useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=useMemo(()=>{let h=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,b=ge({...i,session:h},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),g=false;typeof C?.enabled=="boolean"&&(g=C.enabled);let P=false;typeof C?.persistence=="boolean"&&(P=C?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,k="s";return K(C?.timeout)&&(typeof C?.timeout=="number"?(O=C.timeout,k="s"):typeof C?.timeout=="object"&&(O=C?.timeout.value,k=C?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?g=s.cache.enabled:g=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,k="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,k=s.cache.timeout.unit)):g=s.cache),{cacheName:c,cacheKey:b,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:g}},[s?.cache,i,S,C,a]);useEffect(()=>{let h=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),b=M.current===void 0;(h!==c||b)&&!s?.hold&&((s?.clearPreviousData??D)&&R(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,N);},[i,s?.clearPreviousData,D,s?.hold,...s?.trigger||[]]),useEffect(()=>{let h=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",h),()=>{window.removeEventListener("beforeunload",h),F.current?.abort();}},[te,H,I,p,F]);let y=useCallback(async h=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!h&&!d){s?.onBeforeRequest&&s?.onBeforeRequest(i);let b=await caches.open(H),P=await(await b.match(I))?.json();if(P){let{data:O,expired:k}=P;if(q().isAfter(k))await b.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),R(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let b=new AbortController;F.current=b,R(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let g=o?await t(void 0,{...s,signal:b.signal}):await t(c,void 0,{...s,signal:b.signal});if(s?.afterResponse&&g?.data&&(g.data=s?.afterResponse(g.data,c)),s?.logging&&console.log("After request",g),g.status&&s?.onSuccess?.(g,c),g.status||s?.onError?.(g,c),s?.onAfterResponse?.(g,c),R(p,{loading:false,response:g,isCancel:false}),_&&g.status){let P=q().add(Q,ee).toISOString(),O={data:g,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(I,V);}}},[i,t,s,d,H,I,Q,ee,_]);useEffect(()=>{if(s?.refreshInterval){let h=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,b=setInterval(()=>{y();},q.duration(h,c).asMilliseconds());return ()=>clearInterval(b)}return ()=>{}},[s?.refreshInterval,y]);let l=useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:T}=useMemo(()=>{let h=s?.refetchOnWindowFocus?.enabled??U?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??U?.timeout,b=typeof c=="number"?c:c?.value??60*5,g=typeof c=="object"?c.unit:"s";return {enabledRefetch:h,timeoutRefetch:b,timeoutUnitRefetch:g}},[s?.refetchOnWindowFocus,U]);useEffect(()=>{if(!f)return;let h=q.duration(A,T).asMilliseconds(),c=()=>{let g=Date.now(),P=l.current;P!==null&&g-P>=h&&y(),l.current=null;},b=()=>{l.current=Date.now();};return window.addEventListener("focus",c),window.addEventListener("blur",b),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",b);}},[f,A,T,y]);let w=useCallback(()=>{F.current?.abort(),F.current=null,R(p,{loading:false,isCancel:true});},[p,F]),m=useCallback(()=>{R(p,{loading:false,response:null});},[p]),N=useMemo(()=>({...x,loading:u,refresh:y,abort:w,clear:m,response:x,isCancel:d,clone:(h,c)=>lt(t,h,c)}),[x,u,y,w,m,d,t]);return useEffect(()=>(we(p,N),()=>{qe(p);}),[N,p]),[x?.data,N]}async function $r(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(ct||{});var Br=(e,t,r)=>{let{format:n}=L();return t==="number"?Ne(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?ut(e,r):t==="string"?ft(e,r):e?.toString()??""};function ut(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function ft(e,t){if(!K(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=he(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let x=String(e??"").trim().trim();if(oe(x,r))return x}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let d=Math.pow(10,n);i=Math[o](i*d)/d;}else i=Math[o](i);else if(typeof n=="number"){let d=Math.pow(10,n);i=Math.trunc(i*d)/d;}let s=0;if(n==="auto"){let d=i.toString(),x=d.indexOf(".");x!==-1&&(s=d.length-x-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function dt(e,{display:t,value:r}){if(!K(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function Wr(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 Jr(e,t,r){let[n,o]=useState(false),a=(u,d)=>typeof e=="string"&&u===e||typeof e=="number"&&d===e,i=u=>u!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(u.tagName)||u.hasAttribute("contentEditable")),s=u=>{let{key:d,keyCode:x}=u,R=u.ctrlKey,S=u.altKey,C=u.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(d,x)&&(t==="ctrl"&&R||t==="alt"&&S||t==="shift"&&C)&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,x)&&D&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));}else a(d,x)&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));},p=({key:u,keyCode:d})=>{a(u,d)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),n}var rn=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:u,encryptRequest:d,encryptResponse:x,passphrase:R})=>{let{encrypt:S,decrypt:C,passphrase:D}=Z(),U=(y,l,f,A)=>{let T=A?.code==="ERR_CANCELED",w=y?.status===401,m=y?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:x)&&m){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?D:f.passphrase:R;try{m=C(m,P);}catch{try{m=C(m,D);}catch{}}}let c={...n({...y,data:m,isCancel:T,isUnauthorization:w},A),isCancel:T,isUnauthorization:w,httpCode:y?.status},b=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,g=s?s(c,f):!w;if((f?.infoSuccess&&c.status||f?.infoError&&!c.status)&&i&&(!T||!b)&&i(c),!g&&(!T||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:u})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,f,A,T)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},N={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):m.token&&(N.Authorization=`Bearer ${m.token}`)),r&&(f=r(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:d)&&f){let c=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?D:T.passphrase:R;f=S(f,c);}return j({url:l,method:y,data:f,headers:N,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:c=>{m?.onUploadProgress&&m?.onUploadProgress(c);}},(c,b)=>U(c,A,m,b))};return {client:j,post:(y,l,f,A)=>M("POST",`${y}`,l,f,A),put:(y,l,f,A)=>M("PUT",`${y}`,l,f,A),patch:(y,l,f,A)=>M("PATCH",`${y}`,l,f,A),delete:(y,l,f)=>M("DELETE",`${y}`,null,l,f),get:(y,l,f)=>M("GET",`${y}`,null,l,f),upload:(y,l,f,A)=>{let T=new FormData;return Object.keys(l).forEach(w=>T.append(w,l[w])),M("POST",`${y}`,T,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,f,A,T)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...T},N={"Content-Type":"application/json",...o,...m.headers};if(m.token){let v=typeof m.token=="boolean"?t:m.token;v&&(N.Authorization=`Bearer ${v}`);}let h=f;if(r&&(h=r(h)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:d)&&h){let v=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?D:m.passphrase:R;h=S(h,v);}let b=await fetch(`${e}${l}`,{method:y,headers:N,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(h)}),g=b?.status,P=g===401;if(!b.ok){let v=b?.statusText||"Error";try{let G=b.headers.get("content-type")||"",B=await b.clone().text();if(B)if(G.includes("application/json"))try{let ne=JSON.parse(B);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:x)&&f){let $e=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?D:T.passphrase:R;try{f=C(ne,$e);}catch{try{f=C(ne,D);}catch{}}}v=ne?.message||v;}catch{v=B;}else v=B;}catch{}let re=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0};T?.infoError&&i&&!re&&i(W),A(W);return}let O=b.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:re}=await O.read();me=v,V+=k.decode(re,{stream:!0});let W=V.split(`
|
|
1
|
+
import de,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import $ from'dayjs';import Ke from'dayjs/plugin/utc';import Le from'dayjs/plugin/timezone';import Fe from'dayjs/plugin/duration';import Ie from'dayjs/plugin/advancedFormat';import He from'dayjs/plugin/localizedFormat';import Be from'dayjs/plugin/relativeTime';import je from'dayjs/plugin/isSameOrBefore';import Ve from'dayjs/plugin/isSameOrAfter';import We from'dayjs/plugin/weekOfYear';import Ye from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Ce from'crypto-js/aes';import Ae from'crypto-js/pbkdf2';import nt from'crypto-js/enc-utf8';import X from'crypto-js/enc-base64';import De from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import gt from'axios';$.extend(Ke);$.extend(Le);$.extend(Fe);$.extend(Ie);$.extend(He);$.extend(Be);$.extend(je);$.extend(Ve);$.extend(We);$.extend(Ye);var q=$;function Yt(){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 zt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Jt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function _t(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function K(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let n=e.replace(/_([a-z])/g,(r,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ye.snackCase(ye.camelCase(e)),t&&(n=n?.split(" ")?.map(r=>r?.length<=3?r?.toUpperCase():r)?.join(" "));}catch{}return n?.trim()}};function Gt(e,t){return typeof e=="function"?e(t):e}var E=(e,t,n)=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let r=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of r){if(o==null)return n;o=o[a];}return o===void 0?n:o},Xt={desc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let o=E(n,t)?E(n,t):"",a=E(r,t)?E(n,t):"";return o<a?1:-1}else return n<r?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,r)=>{if(t){let o=E(n,t)?E(n,t):"",a=E(r,t)?E(r,t):"";return o>a?1:-1}else return n>r?1:-1}))},Zt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(r=>Number(t?E(r,t)||0:r||0)),n.reduce((r,o)=>(r||0)+(o||0),0)||0};function Qt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ze(e){let t=new WeakSet;return JSON.stringify(e,function(n,r){return r!==null&&typeof r=="object"?t.has(r)?void 0:(t.add(r),Object.keys(r).sort().reduce((o,a)=>(o[a]=r[a],o),{})):r})??""}function ge(e,t){return ze([t??"undefined",e??"undefined"])}function be(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function en(e,t=0){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>{e(...r);},t*1e3);}}var he=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function oe(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${n}$`).test(e)||new RegExp(`^-?${n}\\d*$`).test(e)}function Je(e,t=false,n="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let r=e.trim(),o=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(r)||t&&oe(r,n))return true}return false}function Te(e="",t=false,n="."){if(!Je(e,!t,n))return null;let r=n==="."?e.trim():e.trim().replace(n,"."),o=Number(r);return Number.isNaN(o)?null:o}var _e=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function tn(e){let t={};for(let n in e)_e.has(n)&&(t[n]=e[n]);return t}function nn(e,t=2){return e?e.split(" ").map(n=>n.charAt(0).toUpperCase()).slice(0,t).join(""):""}function rn(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let n=t.map(q).sort((a,i)=>a.diff(i)),r=n[0].format("YYYY-MM-DD"),o=n.at(-1).format("YYYY-MM-DD");return [r,o]}function on(e,t){let n=q(e),r=q(t),o=n.month()===r.month(),a=n.year()===r.year();return a&&o?`${n.format("DD")} - ${r.format("DD")} ${n.format("MMM")} ${n.format("YYYY")}`:a?`${n.format("DD MMM")} - ${r.format("DD MMM")} ${n.format("YYYY")}`:`${n.format("DD MMM YYYY")} - ${r.format("DD MMM YYYY")}`}function sn(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let n=q(e,"HH:mm",true),r=q(t,"HH:mm",true);if(!n.isValid()||!r.isValid())return "";let o=r.diff(n,"minutes");return o<=0&&(o+=24*60),o.toString()}var an=(e=[],t="label",n="value",r)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof n=="function"?n(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 n=="function"?n(o,a):E(o,n,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...r&&{[r]:E(o,r)},rowData:o}}}):[];function Ge(e,t=""){let n=[];for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],a=t?`${t}[${encodeURIComponent(r)}]`:encodeURIComponent(r);if(!K(o))continue;Array.isArray(o)?o.forEach(i=>{n.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?n.push(Ge(o,a)):n.push(`${a}=${encodeURIComponent(o)}`);}return n.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var xe=createContext(void 0);function L(){let e=useContext(xe);return e||{}}var et=({children:e,value:t})=>{let n={...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(xe.Provider,{value:n,children:e})};function se(e,t){let n=De.random(16),r=De.random(16),o=Ae(t,n,{keySize:256/32,iterations:1e3}),a=Ce.encrypt(JSON.stringify(e),o,{iv:r}).toString();return {salt:n.toString(X),iv:r.toString(X),encrypted:a}}function ae(e,t){let{salt:n,iv:r,encrypted:o}=e,a=Ae(t,X.parse(n),{keySize:256/32,iterations:1e3}),s=Ce.decrypt(o,a,{iv:X.parse(r)}).toString(nt);return JSON.parse(s)}function Se(e,t){return JSON.stringify(se(e,t))}function Pe(e,t){return ae(JSON.parse(e),t)}function Z(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,n){return se(t,n||e)},decrypt(t,n){return ae(t,n||e)},encryptString(t,n){return Se(t,n||e)},decryptString(t,n){return Pe(t,n||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Z(),n=useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),r=useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,p]=useState(()=>{try{let u=localStorage.getItem(i);return u?t(JSON.parse(u)):null}catch(u){return console.error("Failed to parse localStorage value",u),null}});return useEffect(()=>{let u=d=>{if(d.key===i)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(T){console.error("Decrypt error from storage event",T);}else p(null);};return window.addEventListener("storage",u),()=>window.removeEventListener("storage",u)},[i,t]),s},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:n,get:r,clear:a,useWatchStorage:o}};function at(e,t){for(let n in t){let r=e[n],o=t[n];if(n==="response"){let a=JSON.stringify(r),i=JSON.stringify(o);if(a!==i)return false}else if(r!==o)return false}return true}var Y={loading:false,response:void 0,isCancel:false},z=create((e,t)=>({states:{},updateState:(n,r)=>{let o=t().states[n]??Y,a={...o,...r};at(o,a)||e(i=>({states:{...i.states,[n]:a}}));}}));var le=new Map,we=(e,t)=>{le.set(e,t);},qe=e=>{le.delete(e);},Ue=e=>le.get(e);function lt(...e){let[t,n,r]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:n,s=o?n:r,p=s?.storeName||`${a}`,[u,d,T,R]=z(useShallow(b=>{let c=b.states[p]??Y;return [c.loading,c.isCancel,c.response,b.updateState]})),{storageKey:S,cache:C,clearPreviousData:D,refetchOnWindowFocus:U}=L(),j=Oe(),M=useRef(void 0),F=useRef(null),{cacheName:H,cacheKey:I,timeout:Q,timeoutUnit:ee,persistence:te,cacheEnabled:_}=useMemo(()=>{let b=S?j.get(S):void 0,c=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,h=ge({...i,session:b},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),g=false;typeof C?.enabled=="boolean"&&(g=C.enabled);let P=false;typeof C?.persistence=="boolean"&&(P=C?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(P=s?.cache?.persistence??false);let O=60*5,k="s";return K(C?.timeout)&&(typeof C?.timeout=="number"?(O=C.timeout,k="s"):typeof C?.timeout=="object"&&(O=C?.timeout.value,k=C?.timeout.unit)),K(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?g=s.cache.enabled:g=true,typeof s?.cache?.timeout=="number"?(O=s.cache.timeout,k="s"):typeof s?.cache?.timeout=="object"&&(O=s.cache.timeout.value,k=s.cache.timeout.unit)):g=s.cache),{cacheName:c,cacheKey:h,timeout:O,timeoutUnit:k,persistence:P,cacheEnabled:g}},[s?.cache,i,S,C,a]);useEffect(()=>{let b=JSON.stringify(K(M.current)?M.current:""),c=JSON.stringify(K(i)?i:""),h=M.current===void 0;(b!==c||h)&&!s?.hold&&((s?.clearPreviousData??D)&&R(p,{response:null}),y(),M.current=i),s?.onChange&&s?.onChange(i,N);},[i,s?.clearPreviousData,D,s?.hold,...s?.trigger||[]]),useEffect(()=>{let b=async()=>{!te&&H&&I&&(await caches.open(H)).delete(I);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),F.current?.abort();}},[te,H,I,p,F]);let y=useCallback(async b=>{let c=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(c=s?.beforeRequest(i)),_&&!b&&!d){s?.onBeforeRequest&&s?.onBeforeRequest(i);let h=await caches.open(H),P=await(await h.match(I))?.json();if(P){let{data:O,expired:k}=P;if(q().isAfter(k))await h.delete(I);else {s?.afterResponse&&O?.data&&(O.data=s?.afterResponse(O.data,c)),s?.logging&&console.log("After request: Using Cache",O),O?.status&&s?.onSuccess?.(O,c),s?.onAfterResponse?.(O,c),R(p,{loading:false,response:O});return}}}if(typeof t=="function"){F.current?.abort();let h=new AbortController;F.current=h,R(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let g=o?await t(void 0,{...s,signal:h.signal}):await t(c,void 0,{...s,signal:h.signal});if(s?.afterResponse&&g?.data&&(g.data=s?.afterResponse(g.data,c)),s?.logging&&console.log("After request",g),g.status&&s?.onSuccess?.(g,c),g.status||s?.onError?.(g,c),s?.onAfterResponse?.(g,c),R(p,{loading:false,response:g,isCancel:false}),_&&g.status){let P=q().add(Q,ee).toISOString(),O={data:g,expired:P},k=await caches.open(H),V=new Response(JSON.stringify(O));await k.put(I,V);}}},[i,t,s,d,H,I,Q,ee,_]);useEffect(()=>{if(s?.refreshInterval){let b=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,c=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,h=setInterval(()=>{y();},q.duration(b,c).asMilliseconds());return ()=>clearInterval(h)}return ()=>{}},[s?.refreshInterval,y]);let l=useRef(null),{enabledRefetch:f,timeoutRefetch:A,timeoutUnitRefetch:x}=useMemo(()=>{let b=s?.refetchOnWindowFocus?.enabled??U?.enabled??false,c=s?.refetchOnWindowFocus?.timeout??U?.timeout,h=typeof c=="number"?c:c?.value??60*5,g=typeof c=="object"?c.unit:"s";return {enabledRefetch:b,timeoutRefetch:h,timeoutUnitRefetch:g}},[s?.refetchOnWindowFocus,U]);useEffect(()=>{if(!f)return;let b=q.duration(A,x).asMilliseconds(),c=()=>{let g=Date.now(),P=l.current;P!==null&&g-P>=b&&y(),l.current=null;},h=()=>{l.current=Date.now();};return window.addEventListener("focus",c),window.addEventListener("blur",h),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",h);}},[f,A,x,y]);let w=useCallback(()=>{F.current?.abort(),F.current=null,R(p,{loading:false,isCancel:true});},[p,F]),m=useCallback(()=>{R(p,{loading:false,response:null});},[p]),N=useMemo(()=>({...T,loading:u,refresh:y,abort:w,clear:m,response:T,isCancel:d,clone:(b,c)=>lt(t,b,{storeName:`${a}-clone`,...c})}),[T,u,y,w,m,d,t]);return useEffect(()=>(we(p,N),()=>{qe(p);}),[N,p]),[T?.data,N]}async function Fn(e,t=()=>{}){let n=e*1e3;return new Promise(r=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),r(true);},n);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(ct||{});var Wn=(e,t,n)=>{let{format:r}=L();return t==="number"?Ne(e,{thouSep:r.number.thouSep,decDigits:r.number.decDigits,decSep:r.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===t)?dt(e,{display:r[t]?.display,value:r[t]?.value,...n}):t==="boolean"?ut(e,n):t==="string"?ft(e,n):e?.toString()??""};function ut(e,t){let n=typeof e=="string"?e==="true":!!e,r=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return n?r:o}function ft(e,t){if(!K(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=be(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:n,decDigits:r,method:o,dirty:a}){if(a){let T=String(e??"").trim().trim();if(oe(T,n))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof r=="number"){let d=Math.pow(10,r);i=Math[o](i*d)/d;}else i=Math[o](i);else if(typeof r=="number"){let d=Math.pow(10,r);i=Math.trunc(i*d)/d;}let s=0;if(r==="auto"){let d=i.toString(),T=d.indexOf(".");T!==-1&&(s=d.length-T-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:r==="auto"?s:r||0,maximumFractionDigits:r==="auto"?s:r||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function dt(e,{display:t,value:n}){if(!K(e))return e;let r=q(e,n);return r.isValid()?r.format(t):e}function Jn(e,{interval:t,lead:n}){let r=useRef(null);useEffect(()=>{r.current=e;},[e]),useEffect(()=>{let o=()=>r.current();if(n&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Xn(e,t,n){let[r,o]=useState(false),a=(u,d)=>typeof e=="string"&&u===e||typeof e=="number"&&d===e,i=u=>u!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(u.tagName)||u.hasAttribute("contentEditable")),s=u=>{let{key:d,keyCode:T}=u,R=u.ctrlKey,S=u.altKey,C=u.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(d,T)&&(t==="ctrl"&&R||t==="alt"&&S||t==="shift"&&C)&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,T)&&D&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));}else a(d,T)&&(u.preventDefault(),n&&u.stopPropagation(),o(!r));},p=({key:u,keyCode:d})=>{a(u,d)&&o(false);};return useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),r}var sr=({url:e,token:t,beforeRequest:n,onCallback:r,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:u,encryptRequest:d,encryptResponse:T,passphrase:R})=>{let{encrypt:S,decrypt:C,passphrase:D}=Z(),U=(y,l,f,A)=>{let x=A?.code==="ERR_CANCELED",w=y?.status===401,m=y?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:T)&&m){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?D:f.passphrase:R;try{m=C(m,P);}catch{try{m=C(m,D);}catch{}}}let c={...r({...y,data:m,isCancel:x,isUnauthorization:w},A),isCancel:x,isUnauthorization:w,httpCode:y?.status},h=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:p,g=s?s(c,f):!w;if((f?.infoSuccess&&c.status||f?.infoError&&!c.status)&&i&&(!x||!h)&&i(c),!g&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>gt.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:u})(y).then(l).catch(A=>l(A.response,A)),M=(y,l,f,A,x)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},N={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(N.Authorization=`Bearer ${t}`):m.token&&(N.Authorization=`Bearer ${m.token}`)),n&&(f=n(f)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:d)&&f){let c=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.passphrase:R;f=S(f,c);}return j({url:l,method:y,data:f,headers:N,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:c=>{m?.onUploadProgress&&m?.onUploadProgress(c);}},(c,h)=>U(c,A,m,h))};return {client:j,post:(y,l,f,A)=>M("POST",`${y}`,l,f,A),put:(y,l,f,A)=>M("PUT",`${y}`,l,f,A),patch:(y,l,f,A)=>M("PATCH",`${y}`,l,f,A),delete:(y,l,f)=>M("DELETE",`${y}`,null,l,f),get:(y,l,f)=>M("GET",`${y}`,null,l,f),upload:(y,l,f,A)=>{let x=new FormData;return Object.keys(l).forEach(w=>x.append(w,l[w])),M("POST",`${y}`,x,f,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(y,l,f,A,x)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...x},N={"Content-Type":"application/json",...o,...m.headers};if(m.token){let v=typeof m.token=="boolean"?t:m.token;v&&(N.Authorization=`Bearer ${v}`);}let b=f;if(n&&(b=n(b)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:d)&&b){let v=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?D:m.passphrase:R;b=S(b,v);}let h=await fetch(`${e}${l}`,{method:y,headers:N,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(b)}),g=h?.status,P=g===401;if(!h.ok){let v=h?.statusText||"Error";try{let G=h.headers.get("content-type")||"",B=await h.clone().text();if(B)if(G.includes("application/json"))try{let re=JSON.parse(B);if((typeof x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let $e=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.passphrase:R;try{f=C(re,$e);}catch{try{f=C(re,D);}catch{}}}v=re?.message||v;}catch{v=B;}else v=B;}catch{}let ne=typeof x?.disabledToastWhenCancel=="boolean"?x?.disabledToastWhenCancel:p,W={status:!1,data:void 0,message:v,isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0};x?.infoError&&i&&!ne&&i(W),A(W);return}let O=h.body.getReader(),k=new TextDecoder("utf-8"),V="",me=!1;for(;!me;){let{done:v,value:ne}=await O.read();me=v,V+=k.decode(ne,{stream:!0});let W=V.split(`
|
|
2
2
|
|
|
3
|
-
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=
|
|
3
|
+
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=he(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!1});}catch{}}A({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:P,httpCode:g,isDone:!0});}catch(w){let m=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:m,isUnauthorization:false,httpCode:400,isDone:true});}}}};function lr(e,t){let[n,r]=useState(false),[o,a]=useState(),[i,s]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async R=>{p.current?.abort();let S=new AbortController;p.current=S,r(true),t?.beforeRequest&&(R=t?.beforeRequest(R)),t?.logging&&console.log("Before request",R),t?.onBeforeRequest&&t?.onBeforeRequest(R);let C={...t,signal:S.signal,onUploadProgress:U=>{let j=Math.round(U.loaded*100/(U.total||1));s(j);}},D=e.__isVoid?await e(void 0,C):await e(R,void 0,C);t?.logging&&console.log("After response",D),a(D),r(false),s(0),t?.afterResponse&&D?.data&&(D.data=t?.afterResponse(D.data,R)),D.status&&t?.onSuccess&&t?.onSuccess(D,R),!D.status&&t?.onError&&t?.onError(D,R),t?.onAfterResponse?.(D,R);},{...o,loading:n,abort:()=>{p.current?.abort(),p.current=null,r(false),s(0);},progress:i,reset:()=>{r(false),s(0),a(null);}}]}function Tt(e,t){let{disableHysteresis:n=false,threshold:r=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)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>r}var xt=typeof window<"u"?window:null;function ur(e={}){let{getTrigger:t=Tt,target:n=xt,disableHysteresis:r=false,threshold:o=100}=e,a=de.useRef(0),[i,s]=de.useState(()=>t(a,{disableHysteresis:r,threshold:o,target:n}));return de.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:r,threshold:o,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,r,o]),i}function mr(e,t){let n,r;typeof t=="number"?(n=t,r=void 0):(n=t?.delay??500,r=t?.onDebounce);let[o,a]=useState(e);return useEffect(()=>{let i=setTimeout(()=>{a(e),r&&r(e);},n);return ()=>clearTimeout(i)},[e,n,r]),o}var xr=(e,t)=>{let n=e.__path||e.name,r=t?.storeName||`${n}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:p}=Ue(r)||{},u=C=>{let D=C.states[r]??Y;return {loading:D.loading,isCancel:D.isCancel,response:D.response}},{loading:d,isCancel:T,response:R}=o?z(useShallow(u)):z(u),S=useMemo(()=>[R?.data,{...R,loading:d,isCancel:T,refresh:a,abort:i,clear:s,clone:p}],[R,d,T,a,i,s,p]);return t?.selector?t.selector(S):S};var Ar=(e,t)=>{let n=r=>e(r);return n.displayName=t,n},Sr=(e,t)=>{let n={};n.others=[];let r=o=>{de.Children.forEach(o,a=>{if(de.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))n[i]=a;else {let s=a;s.props?.children?r(s.props.children):n.others.push(a);}}else n.others.push(a);});};return r(e),n};function qr(){let{format:e}=L();return (t="",n=false)=>Te(t,n,e.number.decSep)}function kr(e){let t=e,n=new Set;function r(){return t}function o(s){return n.add(s),()=>n.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,n.forEach(p=>p());}function i(s){let p=useRef(s?s(t):t);return useSyncExternalStore(o,()=>{let u=s?s(t):t,d=p.current;return Object.is(d,u)||(p.current=u),p.current},()=>s?s(t):t)}return {getSnapshot:r,subscribe:o,setState:a,useStore:i}}function wt(e,t=[]){let n={};for(let r in e){let o=e[r];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,r].join("."),a.__isVoid=o.length===2,n[r]=a;}else typeof o=="object"&&o!==null?n[r]=wt(o,[...t,r]):n[r]=o;}return n}function $r(e,t){let[n,r]=useState(false),[o,a]=useState([]),i=useRef([]),s=useRef(null);useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async T=>{s.current?.abort();let R=new AbortController;s.current=R,r(true),a([]),i.current=[],e(T,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(r(false),t?.onDone&&t?.onDone([...i.current])),S.status?t?.onStream&&t?.onStream(S):t?.onError&&t?.onError(S);},{signal:R.signal});},u=()=>{s.current?.abort(),s.current=null,r(false);},d=()=>{r(false),a([]),i.current=[];};return [o.map(T=>T.data),p,{loading:n,abort:u,reset:d,response:o}]}export{et as BgsCoreProvider,ct as DataTypeEnum,pt as HttpMethod,be as capitalizeWords,sr as createApiHelper,Ar as createElement,kr as createStore,en as debounce,ae as decrypt,Pe as decryptString,Y as defaultState,zt as diffJson,se as encrypt,Se as encryptString,tn as filterDOMPropsLite,ge as generateCacheKey,Yt as generateUUID,Ue as getApiActions,on as getDateRangeLabelFromSorted,E as getFieldValue,nn as getInitials,rn as getMinMaxDate,sn as getTotalMinutes,_t as isArray,oe as isDirtyRaw,K as isNotEmpty,Je as isValidNumber,Qt as jsonCopy,ye as labelFormatter,an as mappingData,Jt as mappingUndefinedtoNull,q as moment,Ge as objectToQueryString,he as parseSSEChunk,Te as parseStringToNumber,we as registerApi,Gt as renderChildren,Re as replaceNullStrings,at as safeUpdate,Xt as sorting,Sr as splitElement,ze as stableStringify,Zt as summary,qe as unregisterApi,lt as useApiLoad,z as useApiLoadStore,lr as useApiSend,xr as useApiStore,$r as useApiStream,L as useBgsCore,Z as useCrypto,mr as useDebounce,Fn as useDelay,Wn as useFormatted,Jn as useInterval,Xn as useKeyPress,qr as useParseStringToNumber,ur as useScrollTrigger,Oe as useStorage,wt 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.4",
|
|
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",
|