@bgscore/react-core 1.0.2 → 1.0.3
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 +2 -1
- package/dist/index.d.ts +2 -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'),ot=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'),bt=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 ot__default=/*#__PURE__*/_interopDefault(ot);var X__default=/*#__PURE__*/_interopDefault(X);var De__default=/*#__PURE__*/_interopDefault(De);var bt__default=/*#__PURE__*/_interopDefault(bt);$__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 zt(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Jt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var _t=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Gt(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 Xt(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},Zt={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}))},Qt=(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 er(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function _e(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 _e([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function tr(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 Ge(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 Te(e="",t=false,r="."){if(!Ge(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var Xe=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 rr(e){let t={};for(let r in e)Xe.has(r)&&(t[r]=e[r]);return t}function nr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function or(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 sr(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 ar(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 ir=(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 Ze(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(Ze(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}function lr(e,t=500){let[r,n]=de.useState(e);return de.useEffect(()=>{let o=setTimeout(()=>n(e),t);return ()=>clearTimeout(o)},[e,t]),r}var xe=de.createContext(void 0);function L(){let e=de.useContext(xe);return e||{}}var rt=({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(xe.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(ot__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(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:r,get:n,clear:a,useWatchStorage:o}};function lt(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};lt(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 ct(...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,T,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:x}=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,x).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,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:(h,c)=>ct(t,h,{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 Ir(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var ut=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ut||{}),ft=(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))(ft||{});var Yr=(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)?yt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?dt(e,r):t==="string"?mt(e,r):e?.toString()??""};function dt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function mt(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 T=String(e??"").trim().trim();if(oe(T,r))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let 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(),T=d.indexOf(".");T!==-1&&(s=d.length-T-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 yt(e,{display:t,value:r}){if(!K(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function _r(e,{interval:t,lead:r}){let n=de.useRef(null);de.useEffect(()=>{n.current=e;},[e]),de.useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Zr(e,t,r){let[n,o]=de.useState(false),a=(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(),r&&u.stopPropagation(),o(!n));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,T)&&D&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));}else a(d,T)&&(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 an=({url:e,token:t,beforeRequest:r,onCallback:n,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={...n({...y,data:m,isCancel:x,isUnauthorization:w},A),isCancel:x,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&&(!x||!b)&&i(c),!g&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>bt__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}`)),r&&(f=r(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,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 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 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 x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let $e=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.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 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&&!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(`
|
|
2
2
|
|
|
3
|
-
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode: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
|
|
3
|
+
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode: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 cn(e,t){let[r,n]=de.useState(false),[o,a]=de.useState(),[i,s]=de.useState(0),p=de.useRef(null);return de.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async R=>{p.current?.abort();let S=new AbortController;p.current=S,n(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),n(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:r,abort:()=>{p.current?.abort(),p.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function Dt(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Ct=typeof window<"u"?window:null;function dn(e={}){let{getTrigger:t=Dt,target:r=Ct,disableHysteresis:n=false,threshold:o=100}=e,a=de__default.default.useRef(0),[i,s]=de__default.default.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return de__default.default.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,t,n,o]),i}var Tn=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:p}=Ue(n)||{},u=C=>{let D=C.states[n]??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 Cn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},An=(e,t)=>{let r={};r.others=[];let n=o=>{de__default.default.Children.forEach(o,a=>{if(de__default.default.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))r[i]=a;else {let s=a;s.props?.children?n(s.props.children):r.others.push(a);}}else r.others.push(a);});};return n(e),r};function wn(){let{format:e}=L();return (t="",r=false)=>Te(t,r,e.number.decSep)}function Nn(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(p=>p());}function i(s){let p=de.useRef(s?s(t):t);return de.useSyncExternalStore(o,()=>{let u=s?s(t):t,d=p.current;return Object.is(d,u)||(p.current=u),p.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function wt(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=wt(o,[...t,n]):r[n]=o;}return r}function Mn(e,t){let[r,n]=de.useState(false),[o,a]=de.useState([]),i=de.useRef([]),s=de.useRef(null);de.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async T=>{s.current?.abort();let R=new AbortController;s.current=R,n(true),a([]),i.current=[],e(T,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(n(false),t?.onDone&&t?.onDone([...i.current])),S.status?t?.onStream&&t?.onStream(S):t?.onError&&t?.onError(S);},{signal:R.signal});},u=()=>{s.current?.abort(),s.current=null,n(false);},d=()=>{n(false),a([]),i.current=[];};return [o.map(T=>T.data),p,{loading:r,abort:u,reset:d,response:o}]}exports.BgsCoreProvider=rt;exports.DataTypeEnum=ft;exports.HttpMethod=ut;exports.capitalizeWords=he;exports.createApiHelper=an;exports.createElement=Cn;exports.createStore=Nn;exports.debounce=tr;exports.decrypt=ae;exports.decryptString=Pe;exports.defaultState=Y;exports.diffJson=Jt;exports.encrypt=se;exports.encryptString=Se;exports.filterDOMPropsLite=rr;exports.generateCacheKey=ge;exports.generateUUID=zt;exports.getApiActions=Ue;exports.getDateRangeLabelFromSorted=sr;exports.getFieldValue=E;exports.getInitials=nr;exports.getMinMaxDate=or;exports.getTotalMinutes=ar;exports.isArray=Gt;exports.isDirtyRaw=oe;exports.isNotEmpty=K;exports.isValidNumber=Ge;exports.jsonCopy=er;exports.labelFormatter=ye;exports.mappingData=ir;exports.mappingUndefinedtoNull=_t;exports.moment=q;exports.objectToQueryString=Ze;exports.parseSSEChunk=be;exports.parseStringToNumber=Te;exports.registerApi=we;exports.renderChildren=Xt;exports.replaceNullStrings=Re;exports.safeUpdate=lt;exports.sorting=Zt;exports.splitElement=An;exports.stableStringify=_e;exports.summary=Qt;exports.unregisterApi=qe;exports.useApiLoad=ct;exports.useApiLoadStore=z;exports.useApiSend=cn;exports.useApiStore=Tn;exports.useApiStream=Mn;exports.useBgsCore=L;exports.useCrypto=Z;exports.useDebounce=lr;exports.useDelay=Ir;exports.useFormatted=Yr;exports.useInterval=_r;exports.useKeyPress=Zr;exports.useParseStringToNumber=wn;exports.useScrollTrigger=dn;exports.useStorage=Oe;exports.wrapApi=wt;
|
package/dist/index.d.cts
CHANGED
|
@@ -618,6 +618,7 @@ declare function getTotalMinutes(from?: string, to?: string): string;
|
|
|
618
618
|
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
|
|
619
619
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
620
620
|
declare function replaceNullStrings(input: any): any;
|
|
621
|
+
declare function useDebounce<T = string>(value: T, delay?: number): T;
|
|
621
622
|
|
|
622
623
|
type Listener = () => void;
|
|
623
624
|
declare function createStore<T>(initialState: T): {
|
|
@@ -685,4 +686,4 @@ interface BgsCoreProviderProps {
|
|
|
685
686
|
}
|
|
686
687
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
687
688
|
|
|
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 };
|
|
689
|
+
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
|
@@ -618,6 +618,7 @@ declare function getTotalMinutes(from?: string, to?: string): string;
|
|
|
618
618
|
declare const mappingData: <T = unknown>(dataSource?: T[], displayExpr?: NestedKeyOf<T> | "label" | ((data: T, index: number) => string), valueExpr?: NestedKeyOf<T> | "value" | ((data: T, index: number) => string), groupBy?: NestedKeyOf<T>) => DataSource<T>[];
|
|
619
619
|
declare function objectToQueryString(obj: Record<string, any>, parentKey?: string): string;
|
|
620
620
|
declare function replaceNullStrings(input: any): any;
|
|
621
|
+
declare function useDebounce<T = string>(value: T, delay?: number): T;
|
|
621
622
|
|
|
622
623
|
type Listener = () => void;
|
|
623
624
|
declare function createStore<T>(initialState: T): {
|
|
@@ -685,4 +686,4 @@ interface BgsCoreProviderProps {
|
|
|
685
686
|
}
|
|
686
687
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
687
688
|
|
|
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 };
|
|
689
|
+
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,useState,useEffect,useContext,useCallback,useRef,useMemo,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 ot 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 bt 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 zt(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Jt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var _t=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Gt(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 Xt(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},Zt={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}))},Qt=(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 er(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function _e(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 _e([t??"undefined",e??"undefined"])}function he(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function tr(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 Ge(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 Te(e="",t=false,r="."){if(!Ge(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var Xe=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 rr(e){let t={};for(let r in e)Xe.has(r)&&(t[r]=e[r]);return t}function nr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function or(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 sr(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 ar(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 ir=(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 Ze(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(Ze(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}function lr(e,t=500){let[r,n]=useState(e);return useEffect(()=>{let o=setTimeout(()=>n(e),t);return ()=>clearTimeout(o)},[e,t]),r}var xe=createContext(void 0);function L(){let e=useContext(xe);return e||{}}var rt=({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(xe.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(ot);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(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:r,get:n,clear:a,useWatchStorage:o}};function lt(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};lt(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 ct(...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,T,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:x}=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,x).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,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:(h,c)=>ct(t,h,{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 Ir(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var ut=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(ut||{}),ft=(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))(ft||{});var Yr=(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)?yt(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?dt(e,r):t==="string"?mt(e,r):e?.toString()??""};function dt(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function mt(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 T=String(e??"").trim().trim();if(oe(T,r))return T}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let 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(),T=d.indexOf(".");T!==-1&&(s=d.length-T-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 yt(e,{display:t,value:r}){if(!K(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function _r(e,{interval:t,lead:r}){let n=useRef(null);useEffect(()=>{n.current=e;},[e]),useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Zr(e,t,r){let[n,o]=useState(false),a=(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(),r&&u.stopPropagation(),o(!n));else {let D=t.every(U=>U==="ctrl"?R:U==="alt"?S:U==="shift"?C:false);a(d,T)&&D&&(u.preventDefault(),r&&u.stopPropagation(),o(!n));}else a(d,T)&&(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 an=({url:e,token:t,beforeRequest:r,onCallback:n,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={...n({...y,data:m,isCancel:x,isUnauthorization:w},A),isCancel:x,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&&(!x||!b)&&i(c),!g&&(!x||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(c);}if(l)l(c);else return c},j=(y,l=()=>{})=>bt.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}`)),r&&(f=r(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,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 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 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 x?.encryptResponse=="boolean"?x?.encryptResponse:T)&&f){let $e=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?D:x.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 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&&!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(`
|
|
2
2
|
|
|
3
|
-
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode: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
|
|
3
|
+
`);V=W.pop();for(let G of W)if(G.startsWith("data:"))try{let B=be(G);A({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:P,httpCode: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 cn(e,t){let[r,n]=useState(false),[o,a]=useState(),[i,s]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async R=>{p.current?.abort();let S=new AbortController;p.current=S,n(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),n(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:r,abort:()=>{p.current?.abort(),p.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function Dt(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Ct=typeof window<"u"?window:null;function dn(e={}){let{getTrigger:t=Dt,target:r=Ct,disableHysteresis:n=false,threshold:o=100}=e,a=de.useRef(0),[i,s]=de.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return de.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,t,n,o]),i}var Tn=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:p}=Ue(n)||{},u=C=>{let D=C.states[n]??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 Cn=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},An=(e,t)=>{let r={};r.others=[];let n=o=>{de.Children.forEach(o,a=>{if(de.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))r[i]=a;else {let s=a;s.props?.children?n(s.props.children):r.others.push(a);}}else r.others.push(a);});};return n(e),r};function wn(){let{format:e}=L();return (t="",r=false)=>Te(t,r,e.number.decSep)}function Nn(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(p=>p());}function i(s){let p=useRef(s?s(t):t);return useSyncExternalStore(o,()=>{let u=s?s(t):t,d=p.current;return Object.is(d,u)||(p.current=u),p.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function wt(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=wt(o,[...t,n]):r[n]=o;}return r}function Mn(e,t){let[r,n]=useState(false),[o,a]=useState([]),i=useRef([]),s=useRef(null);useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async T=>{s.current?.abort();let R=new AbortController;s.current=R,n(true),a([]),i.current=[],e(T,S=>{S.isDone||(i.current.push(S),a([...i.current])),(S.isDone||!S.status)&&(n(false),t?.onDone&&t?.onDone([...i.current])),S.status?t?.onStream&&t?.onStream(S):t?.onError&&t?.onError(S);},{signal:R.signal});},u=()=>{s.current?.abort(),s.current=null,n(false);},d=()=>{n(false),a([]),i.current=[];};return [o.map(T=>T.data),p,{loading:r,abort:u,reset:d,response:o}]}export{rt as BgsCoreProvider,ft as DataTypeEnum,ut as HttpMethod,he as capitalizeWords,an as createApiHelper,Cn as createElement,Nn as createStore,tr as debounce,ae as decrypt,Pe as decryptString,Y as defaultState,Jt as diffJson,se as encrypt,Se as encryptString,rr as filterDOMPropsLite,ge as generateCacheKey,zt as generateUUID,Ue as getApiActions,sr as getDateRangeLabelFromSorted,E as getFieldValue,nr as getInitials,or as getMinMaxDate,ar as getTotalMinutes,Gt as isArray,oe as isDirtyRaw,K as isNotEmpty,Ge as isValidNumber,er as jsonCopy,ye as labelFormatter,ir as mappingData,_t as mappingUndefinedtoNull,q as moment,Ze as objectToQueryString,be as parseSSEChunk,Te as parseStringToNumber,we as registerApi,Xt as renderChildren,Re as replaceNullStrings,lt as safeUpdate,Zt as sorting,An as splitElement,_e as stableStringify,Qt as summary,qe as unregisterApi,ct as useApiLoad,z as useApiLoadStore,cn as useApiSend,Tn as useApiStore,Mn as useApiStream,L as useBgsCore,Z as useCrypto,lr as useDebounce,Ir as useDelay,Yr as useFormatted,_r as useInterval,Zr as useKeyPress,wn as useParseStringToNumber,dn 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.3",
|
|
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",
|