@bgscore/react-core 0.0.64 → 0.0.65
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 +1 -1
- package/dist/index.d.cts +18 -2
- package/dist/index.d.ts +18 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var ie=require('react'),N=require('dayjs'),Ue=require('dayjs/plugin/utc'),ve=require('dayjs/plugin/timezone'),ke=require('dayjs/plugin/duration'),Ne=require('dayjs/plugin/advancedFormat'),Ee=require('dayjs/plugin/localizedFormat'),Ke=require('dayjs/plugin/relativeTime'),Me=require('dayjs/plugin/isSameOrBefore'),Fe=require('dayjs/plugin/isSameOrAfter'),Le=require('dayjs/plugin/weekOfYear'),Be=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Re=require('crypto-js/aes'),ge=require('crypto-js/pbkdf2'),We=require('crypto-js/enc-utf8'),G=require('crypto-js/enc-base64'),ye=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),it=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ie__default=/*#__PURE__*/_interopDefault(ie);var N__default=/*#__PURE__*/_interopDefault(N);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ve__default=/*#__PURE__*/_interopDefault(ve);var ke__default=/*#__PURE__*/_interopDefault(ke);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Me__default=/*#__PURE__*/_interopDefault(Me);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Le__default=/*#__PURE__*/_interopDefault(Le);var Be__default=/*#__PURE__*/_interopDefault(Be);var Re__default=/*#__PURE__*/_interopDefault(Re);var ge__default=/*#__PURE__*/_interopDefault(ge);var We__default=/*#__PURE__*/_interopDefault(We);var G__default=/*#__PURE__*/_interopDefault(G);var ye__default=/*#__PURE__*/_interopDefault(ye);var it__default=/*#__PURE__*/_interopDefault(it);function ht(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function bt(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var xt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Tt(t,e){let n=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(n=true):n=true),n}function H(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let n=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(t="",e=false)=>{let n="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],n=ce.snackCase(ce.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ct(t,e){return typeof t=="function"?t(e):t}var E=(t,e,n="")=>{if(!t)return n;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},At={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=E(n,e)?E(n,e):"",a=E(o,e)?E(n,e):"";return s<a?1:-1}else return n<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=E(n,e)?E(n,e):"",a=E(o,e)?E(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},Dt=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?E(o,e)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function St(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function qe(t){let e=new WeakSet;return JSON.stringify(t,function(n,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ue(t,e){return qe([e??"undefined",t??"undefined"])}function fe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function Pt(t,e=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{t(...o);},e*1e3);}}var de=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};N__default.default.extend(Ue__default.default);N__default.default.extend(ve__default.default);N__default.default.extend(ke__default.default);N__default.default.extend(Ne__default.default);N__default.default.extend(Ee__default.default);N__default.default.extend(Ke__default.default);N__default.default.extend(Me__default.default);N__default.default.extend(Fe__default.default);N__default.default.extend(Le__default.default);N__default.default.extend(Be__default.default);var K=N__default.default;var me=ie.createContext(void 0);function I(){let t=ie.useContext(me);return t||{}}var je=({children:t,value:e})=>{let n={...e};return ie.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:p}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&K.locale(s,a??{},p);}})();},[e.localeConfig]),jsxRuntime.jsx(me.Provider,{value:n,children:t})};function Q(t,e){let n=ye__default.default.random(16),o=ye__default.default.random(16),s=ge__default.default(e,n,{keySize:256/32,iterations:1e3}),a=Re__default.default.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(G__default.default),iv:o.toString(G__default.default),encrypted:a}}function ee(t,e){let{salt:n,iv:o,encrypted:s}=t,a=ge__default.default(e,G__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=Re__default.default.decrypt(s,a,{iv:G__default.default.parse(o)}).toString(We__default.default);return JSON.parse(r)}function he(t,e){return JSON.stringify(Q(t,e))}function be(t,e){return ee(JSON.parse(t),e)}function Y(){let{passphrase:t}=I();return {passphrase:t,encrypt(e,n){return Q(e,n||t)},decrypt(e,n){return ee(e,n||t)},encryptString(e,n){return he(e,n||t)},decryptString(e,n){return be(e,n||t)}}}var xe=()=>{let{encrypt:t,decrypt:e}=Y(),n=ie.useCallback((p,r)=>{try{let c=t(r);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),o=ie.useCallback(p=>{try{let r=localStorage.getItem(p);return r?e(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[e]),s=p=>{let[r,c]=ie.useState(()=>{try{let i=localStorage.getItem(p);return i?e(JSON.parse(i)):null}catch(i){return console.error("Failed to parse localStorage value",i),null}});return ie.useEffect(()=>{let i=y=>{if(y.key===p)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(A){console.error("Decrypt error from storage event",A);}else c(null);};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[p,e]),r},a=ie.useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function Ge(t,e){for(let n in e)if(e[n]!==t[n])return e}var W={loading:false,response:void 0,isCancel:false},V=zustand.create()(t=>({states:{},updateState:(e,n)=>t(o=>{let s=o.states[e]||W,a={...s,...n};return Ge(s,a)?{states:{...o.states,[e]:a}}:o})}));var ne=new Map,Te=(t,e)=>{ne.set(t,e);},Ce=t=>{ne.delete(t);},Ae=t=>ne.get(t);function Xe(...t){let[e,n,o]=t,s=e.__isVoid,a=e.__path||e.name,p=s?void 0:n,r=s?n:o,c=r?.storeName||a,{updateState:i}=V(),[y,A,C]=V(shallow.useShallow(R=>{let f=R.states[c]??W;return [f.loading,f.isCancel,f.response]})),{storageKey:w,cache:b,clearPreviousData:x,refetchOnWindowFocus:q}=I(),$=xe(),k=ie.useRef(void 0),M=ie.useRef(null),{cacheName:j,cacheKey:F,timeout:le,timeoutUnit:pe,persistence:X,cacheEnabled:Z}=ie.useMemo(()=>{let R=w?$.get(w):void 0,f=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,g=ue({...p,session:R},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),h=false;typeof b?.enabled=="boolean"&&(h=b.enabled);let D=false;typeof b?.persistence=="boolean"&&(D=b?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(D=r?.cache?.persistence??false);let P=60*5,v="s";return H(b?.timeout)&&(typeof b?.timeout=="number"?(P=b.timeout,v="s"):typeof b?.timeout=="object"&&(P=b?.timeout.value,v=b?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?h=r.cache.enabled:h=true,typeof r.cache.timeout=="number"?(P=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(P=r.cache.timeout.value,v=r.cache.timeout.unit)):h=r.cache),{cacheName:f,cacheKey:g,timeout:P,timeoutUnit:v,persistence:D,cacheEnabled:h}},[r?.cache,p,w,b,a]);ie.useEffect(()=>{let R=JSON.stringify(H(k.current)?k.current:""),f=JSON.stringify(H(p)?p:""),g=k.current===void 0;(R!==f||g)&&!r?.hold&&((r?.clearPreviousData??x)&&i(c,{response:null}),m(),k.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.clearPreviousData,x,r?.hold,...r?.trigger||[]]),ie.useEffect(()=>{let R=async()=>{!X&&j&&F&&(await caches.open(j)).delete(F);};return window.addEventListener("beforeunload",R),()=>{window.removeEventListener("beforeunload",R),M.current?.abort();}},[X,j,F,c,M]);let m=ie.useCallback(async R=>{let f=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(f=r?.beforeRequest(p)),Z&&!R&&!A){i(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=await caches.open(j),D=await(await g.match(F))?.json();if(D){let{data:P,expired:v}=D;if(K().isAfter(v))await g.delete(F);else {r?.afterResponse&&P?.data&&(P.data=r?.afterResponse(P.data)),r?.logging&&console.log("After request: Using Cache",P),r?.onAfterResponse&&r?.onAfterResponse(P),i(c,{loading:false,response:P});return}}}if(typeof e=="function"){M.current?.abort();let g=new AbortController;M.current=g,i(c,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let h=s?await e(void 0,{...r,signal:g.signal}):await e(f,void 0,{...r,signal:g.signal});if(r?.afterResponse&&h?.data&&(h.data=r?.afterResponse(h.data)),r?.logging&&console.log("After request",h),r?.onAfterResponse&&r?.onAfterResponse(h),i(c,{loading:false,response:h,isCancel:false}),Z&&h.status){let D=K().add(le,pe).toISOString(),P={data:h,expired:D},v=await caches.open(j),J=new Response(JSON.stringify(P));await v.put(F,J);}}},[p,e,r,A]);ie.useEffect(()=>{if(r?.refreshInterval){let R=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,f=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,g=setInterval(()=>{m();},K.duration(R,f).asMilliseconds());return ()=>clearInterval(g)}return ()=>{}},[r?.refreshInterval,m]);let l=ie.useRef(null),{enabledRefetch:d,timeoutRefetch:T,timeoutUnitRefetch:S}=ie.useMemo(()=>{let R=r?.refetchOnWindowFocus?.enabled??q?.enabled??false,f=r?.refetchOnWindowFocus?.timeout??q?.timeout,g=typeof f=="number"?f:f?.value??60*5,h=typeof f=="object"?f.unit:"s";return {enabledRefetch:R,timeoutRefetch:g,timeoutUnitRefetch:h}},[r?.refetchOnWindowFocus,q]);ie.useEffect(()=>{if(!d)return;let R=K.duration(T,S).asMilliseconds(),f=()=>{let h=Date.now(),D=l.current;D!==null&&h-D>=R&&m(),l.current=null;},g=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",g),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",g);}},[d,T,S,m]);let O=ie.useCallback(()=>{M.current?.abort(),M.current=null,i(c,{loading:false,isCancel:true});},[c,M]),u=ie.useCallback(()=>{i(c,{loading:false,response:null});},[c]),U=ie.useMemo(()=>({...C,loading:y,refresh:m,abort:O,clear:u,response:C,isCancel:A,clone:(R,f)=>Xe(e,R,f)}),[C,y,m,O,u,A,e]);return ie.useEffect(()=>(Te(c,U),()=>{Ce(c);}),[U,c]),[C?.data,U]}async function gn(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var Ze=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ze||{}),Qe=(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))(Qe||{});var An=(t,e,n)=>{let{format:o}=I();return e==="number"?nt(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?rt(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?et(t,n):e==="string"?tt(t,n):t?.toString()??""};function et(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function tt(t,e){if(!H(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=fe(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return e?.ellipsis&&n.length>e.ellipsis&&(n=n.slice(0,e.ellipsis)+"..."),n}function nt(t,{thouSep:e,decSep:n,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let i=Math.pow(10,o);a=Math[s](a*i)/i;}else a=Math[s](a);else if(typeof o=="number"){let i=Math.pow(10,o);a=Math.floor(a*i)/i;}let p=0;if(o==="auto"){let i=a.toString(),y=i.indexOf(".");y!==-1&&(p=i.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,e)}function rt(t,{display:e,value:n}){if(!H(t))return t;let o=K(t,n);return o.isValid()?o.format(e):t}function Pn(t,{interval:e,lead:n}){let o=ie.useRef(null);ie.useEffect(()=>{o.current=t;},[t]),ie.useEffect(()=>{let s=()=>o.current();if(n&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function qn(t,e,n){let[o,s]=ie.useState(false),a=(i,y)=>typeof t=="string"&&i===t||typeof t=="number"&&y===t,p=i=>i!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(i.tagName)||i.hasAttribute("contentEditable")),r=i=>{let{key:y,keyCode:A}=i,C=i.ctrlKey,w=i.altKey,b=i.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(y,A)&&(e==="ctrl"&&C||e==="alt"&&w||e==="shift"&&b)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));else {let x=e.every(q=>q==="ctrl"?C:q==="alt"?w:q==="shift"?b:false);a(y,A)&&x&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));}else a(y,A)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));},c=({key:i,keyCode:y})=>{a(i,y)&&s(false);};return ie.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var Fn=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:i,encryptRequest:y,encryptResponse:A,passphrase:C})=>{let{encrypt:w,decrypt:b,passphrase:x}=Y(),q=(m,l,d,T)=>{let S=T?.code==="ERR_CANCELED",O=m?.status===401,u=m?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:A)&&u){let D=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?x:d.passphrase:C;try{u=b(u,D);}catch{try{u=b(u,x);}catch{}}}let f={...o({...m,data:u,isCancel:S,isUnauthorization:O},T),isCancel:S,isUnauthorization:O,httpCode:m?.status},g=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:c,h=r?r(f,d):!O;if((d?.infoSuccess&&f.status||d?.infoError&&!f.status)&&p&&(!S||!g)&&p(f),!h&&(!S||!d?.disabledHandleUnauthorized)){let D=d?.onUnauthorized||a;D&&D(f);}if(l)l(f);else return f},$=(m,l=()=>{})=>it__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:i})(m).then(l).catch(T=>l(T.response,T)),k=(m,l,d,T,S)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...S},U={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):u.token&&(U.Authorization=`Bearer ${u.token}`)),n&&(d=n(d)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:y)&&d){let f=S?.passphrase?typeof S.passphrase=="boolean"&&S.passphrase?x:S.passphrase:C;d=w(d,f);}return $({url:l,method:m,data:d,headers:U,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:f=>{u?.onUploadProgress&&u?.onUploadProgress(f);}},(f,g)=>q(f,T,u,g))};return {client:$,post:(m,l,d,T)=>k("POST",`${m}`,l,d,T),put:(m,l,d,T)=>k("PUT",`${m}`,l,d,T),patch:(m,l,d,T)=>k("PATCH",`${m}`,l,d,T),delete:(m,l,d)=>k("DELETE",`${m}`,null,l,d),get:(m,l,d)=>k("GET",`${m}`,null,l,d),upload:(m,l,d,T)=>{let S=new FormData;return Object.keys(l).forEach(O=>S.append(O,l[O])),k("POST",`${m}`,S,d,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(m,l,d,T,S)=>{try{let u={...{token:!0,responseType:"json"},...S},U={"Content-Type":"application/json",...s,...u.headers};if(u.token){let L=typeof u.token=="boolean"?e:u.token;L&&(U.Authorization=`Bearer ${L}`);}let R=d;if(n&&(R=n(R)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:y)&&R){let L=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?x:u.passphrase:C;R=w(R,L);}let g=await fetch(`${t}${l}`,{method:m,headers:U,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(R)}),h=g?.status,D=h===401,P=g?.statusText||"Internal Server Error";if(!g.ok){T({status:!1,data:void 0,message:P,isCancel:!1,isUnauthorization:D,httpCode:h,isDone:!0});return}let v=g.body.getReader(),J=new TextDecoder("utf-8"),_=!1;for(;!_;){let{value:L,done:Oe}=await v.read();if(_=Oe,L){let B=J.decode(L,{stream:!_});if(B=de(B),u.encryptResponse){let we=u.passphrase?u.passphrase===!0?x:u.passphrase:x;try{B=b(B,we);}catch{B=b(B,x);}}T({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:D,httpCode:h,isDone:_});}}}catch(O){let u=O?.name==="AbortError";T({status:false,data:void 0,message:O instanceof Error?O.message:"Internal Server Error",isCancel:u,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Hn(t,e){let[n,o]=ie.useState(false),[s,a]=ie.useState(),[p,r]=ie.useState(0),c=ie.useRef(null);return ie.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async C=>{c.current?.abort();let w=new AbortController;c.current=w,o(true),e?.beforeRequest&&(C=e?.beforeRequest(C)),e?.logging&&console.log("Before request",C);let b={...e,signal:w.signal,onUploadProgress:q=>{let $=Math.round(q.loaded*100/(q.total||1));r($);}},x=t.__isVoid?await t(void 0,b):await t(C,void 0,b);e?.logging&&console.log("After response",x),a(x),o(false),r(0),x.status&&e?.onSuccess&&e?.onSuccess(x),!x.status&&e?.onError&&e?.onError(x),e?.afterResponse&&e?.afterResponse(x);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function ct(t,e){let{disableHysteresis:n=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!n&&a!==void 0&&t.current<a?false:(t.current||0)>o}var ut=typeof window<"u"?window:null;function jn(t={}){let{getTrigger:e=ct,target:n=ut,disableHysteresis:o=false,threshold:s=100}=t,a=ie__default.default.useRef(0),[p,r]=ie__default.default.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:n}));return ie__default.default.useEffect(()=>{let c=()=>{r(e(a,{disableHysteresis:o,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,e,o,s]),p}var Gn=(t,e)=>{let n=e?.storeName||t.__path||t.name,o=e?.shallow??true,s=p=>{let r=p.states[n]??W,{loading:c,isCancel:i,response:y}=r,{refresh:A,abort:C,clear:w,clone:b}=Ae(n)||{},x=[y?.data,{...y,loading:c,isCancel:i,refresh:A,abort:C,clear:w,clone:b}];return e?.selector?e.selector(x):x};return o?V(shallow.useShallow(s)):V(s)};var Zn=(t,e)=>{let n=o=>t(o);return n.displayName=e,n},Qn=(t,e)=>{let n={};n.others=[];let o=s=>{ie__default.default.Children.forEach(s,a=>{if(ie__default.default.isValidElement(a)){let p=a.type.displayName;if(e.includes(p))n[p]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(t),n};function nr(t){let e=t,n=new Set;function o(){return e}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?e=r(e):e=r,n.forEach(c=>c());}function p(r){let c=ie.useRef(r?r(e):e);return ie.useSyncExternalStore(s,()=>{let i=r?r(e):e,y=c.current;return Object.is(y,i)||(c.current=i),c.current},()=>r?r(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function yt(t,e=[]){let n={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=yt(s,[...e,o]):n[o]=s;}return n}function ar(t){let[e,n]=ie.useState(false),[o,s]=ie.useState([]),a=ie.useRef(null);ie.useEffect(()=>()=>{a.current?.abort();},[]);let p=async i=>{a.current?.abort();let y=new AbortController;a.current=y,n(true),t(i,A=>{s(C=>[...C,A]),(A.isDone||!A.status)&&n(false);},{signal:y.signal});},r=()=>{a.current?.abort(),a.current=null,n(false);},c=()=>{n(false),s([]);};return [o.map(i=>i.data),p,{loading:e,abort:r,reset:c}]}exports.BgsCoreProvider=je;exports.DataTypeEnum=Qe;exports.HttpMethod=Ze;exports.capitalizeWords=fe;exports.createApiHelper=Fn;exports.createElement=Zn;exports.createStore=nr;exports.debounce=Pt;exports.decrypt=ee;exports.decryptString=be;exports.defaultState=W;exports.diffJson=bt;exports.encrypt=Q;exports.encryptString=he;exports.generateCacheKey=ue;exports.generateUUID=ht;exports.getApiActions=Ae;exports.getFieldValue=E;exports.isArray=Tt;exports.isNotEmpty=H;exports.jsonCopy=St;exports.labelFormatter=ce;exports.mappingUndefinedtoNull=xt;exports.moment=K;exports.parseSSEChunk=de;exports.registerApi=Te;exports.renderChildren=Ct;exports.sorting=At;exports.splitElement=Qn;exports.stableStringify=qe;exports.summary=Dt;exports.unregisterApi=Ce;exports.useApiLoad=Xe;exports.useApiLoadStore=V;exports.useApiSend=Hn;exports.useApiStore=Gn;exports.useApiStream=ar;exports.useBgsCore=I;exports.useCrypto=Y;exports.useDelay=gn;exports.useFormatted=An;exports.useInterval=Pn;exports.useKeyPress=qn;exports.useScrollTrigger=jn;exports.useStorage=xe;exports.wrapApi=yt;
|
|
1
|
+
'use strict';var le=require('react'),K=require('dayjs'),ve=require('dayjs/plugin/utc'),ke=require('dayjs/plugin/timezone'),Ee=require('dayjs/plugin/duration'),Ne=require('dayjs/plugin/advancedFormat'),Ke=require('dayjs/plugin/localizedFormat'),Me=require('dayjs/plugin/relativeTime'),Fe=require('dayjs/plugin/isSameOrBefore'),Le=require('dayjs/plugin/isSameOrAfter'),He=require('dayjs/plugin/weekOfYear'),Be=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),he=require('crypto-js/aes'),be=require('crypto-js/pbkdf2'),ze=require('crypto-js/enc-utf8'),Y=require('crypto-js/enc-base64'),ge=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),lt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var le__default=/*#__PURE__*/_interopDefault(le);var K__default=/*#__PURE__*/_interopDefault(K);var ve__default=/*#__PURE__*/_interopDefault(ve);var ke__default=/*#__PURE__*/_interopDefault(ke);var Ee__default=/*#__PURE__*/_interopDefault(Ee);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Me__default=/*#__PURE__*/_interopDefault(Me);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Le__default=/*#__PURE__*/_interopDefault(Le);var He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);var he__default=/*#__PURE__*/_interopDefault(he);var be__default=/*#__PURE__*/_interopDefault(be);var ze__default=/*#__PURE__*/_interopDefault(ze);var Y__default=/*#__PURE__*/_interopDefault(Y);var ge__default=/*#__PURE__*/_interopDefault(ge);var lt__default=/*#__PURE__*/_interopDefault(lt);function Tt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function At(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Ct=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Dt(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function I(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var fe={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=fe.snackCase(fe.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function St(t,e){return typeof t=="function"?t(e):t}var F=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of n){if(s==null)return r;s=s[a];}return s===void 0?r:s},Pt={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=F(r,e)?F(r,e):"",a=F(n,e)?F(r,e):"";return s<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=F(r,e)?F(r,e):"",a=F(n,e)?F(n,e):"";return s>a?1:-1}else return r>n?1:-1}))},Ot=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?F(n,e)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function wt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ue(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((s,a)=>(s[a]=n[a],s),{})):n})??""}function de(t,e){return Ue([e??"undefined",t??"undefined"])}function me(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function qt(t,e=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{t(...n);},e*1e3);}}var ye=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};K__default.default.extend(ve__default.default);K__default.default.extend(ke__default.default);K__default.default.extend(Ee__default.default);K__default.default.extend(Ne__default.default);K__default.default.extend(Ke__default.default);K__default.default.extend(Me__default.default);K__default.default.extend(Fe__default.default);K__default.default.extend(Le__default.default);K__default.default.extend(He__default.default);K__default.default.extend(Be__default.default);var L=K__default.default;var Re=le.createContext(void 0);function $(){let t=le.useContext(Re);return t||{}}var Ve=({children:t,value:e})=>{let r={...e};return le.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&L.locale(s,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(Re.Provider,{value:r,children:t})};function ee(t,e){let r=ge__default.default.random(16),n=ge__default.default.random(16),s=be__default.default(e,r,{keySize:256/32,iterations:1e3}),a=he__default.default.encrypt(JSON.stringify(t),s,{iv:n}).toString();return {salt:r.toString(Y__default.default),iv:n.toString(Y__default.default),encrypted:a}}function te(t,e){let{salt:r,iv:n,encrypted:s}=t,a=be__default.default(e,Y__default.default.parse(r),{keySize:256/32,iterations:1e3}),o=he__default.default.decrypt(s,a,{iv:Y__default.default.parse(n)}).toString(ze__default.default);return JSON.parse(o)}function xe(t,e){return JSON.stringify(ee(t,e))}function Te(t,e){return te(JSON.parse(t),e)}function X(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return ee(e,r||t)},decrypt(e,r){return te(e,r||t)},encryptString(e,r){return xe(e,r||t)},decryptString(e,r){return Te(e,r||t)}}}var Ae=()=>{let{encrypt:t,decrypt:e}=X(),r=le.useCallback((i,o)=>{try{let c=t(o);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),n=le.useCallback(i=>{try{let o=localStorage.getItem(i);return o?e(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[e]),s=i=>{let[o,c]=le.useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return le.useEffect(()=>{let p=y=>{if(y.key===i)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else c(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),o},a=le.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:s}};function Ye(t,e){for(let r in e)if(e[r]!==t[r])return e}var z={loading:false,response:void 0,isCancel:false},W=zustand.create()(t=>({states:{},updateState:(e,r)=>t(n=>{let s=n.states[e]||z,a={...s,...r};return Ye(s,a)?{states:{...n.states,[e]:a}}:n})}));var ne=new Map,Ce=(t,e)=>{ne.set(t,e);},De=t=>{ne.delete(t);},Se=t=>ne.get(t);function Ze(...t){let[e,r,n]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,o=s?r:n,c=o?.storeName||a,{updateState:p}=W(),[y,S,g]=W(shallow.useShallow(b=>{let d=b.states[c]??z;return [d.loading,d.isCancel,d.response]})),{storageKey:O,cache:x,clearPreviousData:A,refetchOnWindowFocus:q}=$(),j=Ae(),k=le.useRef(void 0),H=le.useRef(null),{cacheName:V,cacheKey:B,timeout:pe,timeoutUnit:ce,persistence:Z,cacheEnabled:Q}=le.useMemo(()=>{let b=O?j.get(O):void 0,d=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,R=de({...i,session:b},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),T=false;typeof x?.enabled=="boolean"&&(T=x.enabled);let P=false;typeof x?.persistence=="boolean"&&(P=x?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let D=60*5,v="s";return I(x?.timeout)&&(typeof x?.timeout=="number"?(D=x.timeout,v="s"):typeof x?.timeout=="object"&&(D=x?.timeout.value,v=x?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?T=o.cache.enabled:T=true,typeof o.cache.timeout=="number"?(D=o.cache.timeout,v="s"):typeof o.cache.timeout=="object"&&(D=o.cache.timeout.value,v=o.cache.timeout.unit)):T=o.cache),{cacheName:d,cacheKey:R,timeout:D,timeoutUnit:v,persistence:P,cacheEnabled:T}},[o?.cache,i,O,x,a]);le.useEffect(()=>{let b=JSON.stringify(I(k.current)?k.current:""),d=JSON.stringify(I(i)?i:""),R=k.current===void 0;(b!==d||R)&&!o?.hold&&((o?.clearPreviousData??A)&&p(c,{response:null}),m(),k.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,A,o?.hold,...o?.trigger||[]]),le.useEffect(()=>{let b=async()=>{!Z&&V&&B&&(await caches.open(V)).delete(B);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),H.current?.abort();}},[Z,V,B,c,H]);let m=le.useCallback(async b=>{let d=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(d=o?.beforeRequest(i)),Q&&!b&&!S){p(c,{loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(i);let R=await caches.open(V),P=await(await R.match(B))?.json();if(P){let{data:D,expired:v}=P;if(L().isAfter(v))await R.delete(B);else {o?.afterResponse&&D?.data&&(D.data=o?.afterResponse(D.data)),o?.logging&&console.log("After request: Using Cache",D),o?.onAfterResponse&&o?.onAfterResponse(D),p(c,{loading:false,response:D});return}}}if(typeof e=="function"){H.current?.abort();let R=new AbortController;H.current=R,p(c,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let T=s?await e(void 0,{...o,signal:R.signal}):await e(d,void 0,{...o,signal:R.signal});if(o?.afterResponse&&T?.data&&(T.data=o?.afterResponse(T.data)),o?.logging&&console.log("After request",T),o?.onAfterResponse&&o?.onAfterResponse(T),p(c,{loading:false,response:T,isCancel:false}),Q&&T.status){let P=L().add(pe,ce).toISOString(),D={data:T,expired:P},v=await caches.open(V),_=new Response(JSON.stringify(D));await v.put(B,_);}}},[i,e,o,S]);le.useEffect(()=>{if(o?.refreshInterval){let b=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,d=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,R=setInterval(()=>{m();},L.duration(b,d).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[o?.refreshInterval,m]);let l=le.useRef(null),{enabledRefetch:f,timeoutRefetch:C,timeoutUnitRefetch:h}=le.useMemo(()=>{let b=o?.refetchOnWindowFocus?.enabled??q?.enabled??false,d=o?.refetchOnWindowFocus?.timeout??q?.timeout,R=typeof d=="number"?d:d?.value??60*5,T=typeof d=="object"?d.unit:"s";return {enabledRefetch:b,timeoutRefetch:R,timeoutUnitRefetch:T}},[o?.refetchOnWindowFocus,q]);le.useEffect(()=>{if(!f)return;let b=L.duration(C,h).asMilliseconds(),d=()=>{let T=Date.now(),P=l.current;P!==null&&T-P>=b&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",R);}},[f,C,h,m]);let w=le.useCallback(()=>{H.current?.abort(),H.current=null,p(c,{loading:false,isCancel:true});},[c,H]),u=le.useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=le.useMemo(()=>({...g,loading:y,refresh:m,abort:w,clear:u,response:g,isCancel:S,clone:(b,d)=>Ze(e,b,d)}),[g,y,m,w,u,S,e]);return le.useEffect(()=>(Ce(c,U),()=>{De(c);}),[U,c]),[g?.data,U]}async function br(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Qe=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Qe||{}),et=(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))(et||{});var Sr=(t,e,r)=>{let{format:n}=$();return e==="number"?nt(t,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?ot(t,{display:n[e]?.display,value:n[e]?.value,...r}):e==="boolean"?tt(t,r):e==="string"?rt(t,r):t?.toString()??""};function tt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?n:s}function rt(t,e){if(!I(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=me(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function nt(t,{thouSep:e,decSep:r,decDigits:n,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof n=="number"){let p=Math.pow(10,n);a=Math[s](a*p)/p;}else a=Math[s](a);else if(typeof n=="number"){let p=Math.pow(10,n);a=Math.floor(a*p)/p;}let i=0;if(n==="auto"){let p=a.toString(),y=p.indexOf(".");y!==-1&&(i=p.length-y-1);}let o={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?i:n||0,maximumFractionDigits:n==="auto"?i:n||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",o).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function ot(t,{display:e,value:r}){if(!I(t))return t;let n=L(t,r);return n.isValid()?n.format(e):t}function wr(t,{interval:e,lead:r}){let n=le.useRef(null);le.useEffect(()=>{n.current=t;},[t]),le.useEffect(()=>{let s=()=>n.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function vr(t,e,r){let[n,s]=le.useState(false),a=(p,y)=>typeof t=="string"&&p===t||typeof t=="number"&&y===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),o=p=>{let{key:y,keyCode:S}=p,g=p.ctrlKey,O=p.altKey,x=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&O||e==="shift"&&x)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let A=e.every(q=>q==="ctrl"?g:q==="alt"?O:q==="shift"?x:false);a(y,S)&&A&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));}else a(y,S)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));},c=({key:p,keyCode:y})=>{a(p,y)&&s(false);};return le.useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",c);}),[]),n}var Hr=({url:t,token:e,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:O,decrypt:x,passphrase:A}=X(),q=(m,l,f,C)=>{let h=C?.code==="ERR_CANCELED",w=m?.status===401,u=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&u){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?A:f.passphrase:g;try{u=x(u,P);}catch{try{u=x(u,A);}catch{}}}let d={...n({...m,data:u,isCancel:h,isUnauthorization:w},C),isCancel:h,isUnauthorization:w,httpCode:m?.status},R=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:c,T=o?o(d,f):!w;if((f?.infoSuccess&&d.status||f?.infoError&&!d.status)&&i&&(!h||!R)&&i(d),!T&&(!h||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(d);}if(l)l(d);else return d},j=(m,l=()=>{})=>lt__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(C=>l(C.response,C)),k=(m,l,f,C,h)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):u.token&&(U.Authorization=`Bearer ${u.token}`)),r&&(f=r(f)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:y)&&f){let d=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?A:h.passphrase:g;f=O(f,d);}return j({url:l,method:m,data:f,headers:U,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:d=>{u?.onUploadProgress&&u?.onUploadProgress(d);}},(d,R)=>q(d,C,u,R))};return {client:j,post:(m,l,f,C)=>k("POST",`${m}`,l,f,C),put:(m,l,f,C)=>k("PUT",`${m}`,l,f,C),patch:(m,l,f,C)=>k("PATCH",`${m}`,l,f,C),delete:(m,l,f)=>k("DELETE",`${m}`,null,l,f),get:(m,l,f)=>k("GET",`${m}`,null,l,f),upload:(m,l,f,C)=>{let h=new FormData;return Object.keys(l).forEach(w=>h.append(w,l[w])),k("POST",`${m}`,h,f,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(m,l,f,C,h)=>{try{let u={...{token:!0,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...u.headers};if(u.token){let E=typeof u.token=="boolean"?e:u.token;E&&(U.Authorization=`Bearer ${E}`);}let b=f;if(r&&(b=r(b)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:y)&&b){let E=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?A:u.passphrase:g;b=O(b,E);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(b)}),T=R?.status,P=T===401,D=R?.statusText||"Error";try{let E=R.headers.get("content-type")||"",M=await R.clone().text();if(M)if(E.includes("application/json"))try{let N=JSON.parse(M);if((typeof h?.encryptResponse=="boolean"?h?.encryptResponse:S)&&f){let qe=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?A:h.passphrase:g;try{f=x(N,qe);}catch{try{f=x(N,A);}catch{}}}D=N?.message||D;}catch{D=M;}else D=M;}catch{}if(!R.ok){let E=typeof h?.disabledToastWhenCancel=="boolean"?h?.disabledToastWhenCancel:c,M={status:!1,data:void 0,message:D,isCancel:!1,isUnauthorization:P,httpCode:T,isDone:!0};h?.infoError&&i&&!E&&i(M),C(M);return}let v=R.body.getReader(),_=new TextDecoder("utf-8"),G=!1;for(;!G;){let{value:E,done:M}=await v.read();if(G=M,E){let N=_.decode(E,{stream:!G});if(N=ye(N),u.encryptResponse){let ue=u.passphrase?u.passphrase===!0?A:u.passphrase:A;try{N=x(N,ue);}catch{N=x(N,A);}}C({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:P,httpCode:T,isDone:G});}}}catch(w){let u=w?.name==="AbortError";C({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:u,isUnauthorization:false,httpCode:400,isDone:true});}}}};function $r(t,e){let[r,n]=le.useState(false),[s,a]=le.useState(),[i,o]=le.useState(0),c=le.useRef(null);return le.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async g=>{c.current?.abort();let O=new AbortController;c.current=O,n(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g);let x={...e,signal:O.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));o(j);}},A=t.__isVoid?await t(void 0,x):await t(g,void 0,x);e?.logging&&console.log("After response",A),a(A),n(false),o(0),A.status&&e?.onSuccess&&e?.onSuccess(A),!A.status&&e?.onError&&e?.onError(A),e?.afterResponse&&e?.afterResponse(A);},{...s,loading:r,abort:()=>{c.current?.abort(),c.current=null,n(false),o(0);},progress:i,reset:()=>{n(false),o(0),a(null);}}]}function ut(t,e){let{disableHysteresis:r=false,threshold:n=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>n}var ft=typeof window<"u"?window:null;function Wr(t={}){let{getTrigger:e=ut,target:r=ft,disableHysteresis:n=false,threshold:s=100}=t,a=le__default.default.useRef(0),[i,o]=le__default.default.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return le__default.default.useEffect(()=>{let c=()=>{o(e(a,{disableHysteresis:n,threshold:s,target:r}));};if(c(),r)return r.addEventListener("scroll",c,{passive:true}),()=>{r.removeEventListener("scroll",c);}},[r,e,n,s]),i}var Xr=(t,e)=>{let r=e?.storeName||t.__path||t.name,n=e?.shallow??true,s=i=>{let o=i.states[r]??z,{loading:c,isCancel:p,response:y}=o,{refresh:S,abort:g,clear:O,clone:x}=Se(r)||{},A=[y?.data,{...y,loading:c,isCancel:p,refresh:S,abort:g,clear:O,clone:x}];return e?.selector?e.selector(A):A};return n?W(shallow.useShallow(s)):W(s)};var en=(t,e)=>{let r=n=>t(n);return r.displayName=e,r},tn=(t,e)=>{let r={};r.others=[];let n=s=>{le__default.default.Children.forEach(s,a=>{if(le__default.default.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let o=a;o.props?.children?n(o.props.children):r.others.push(a);}}else r.others.push(a);});};return n(t),r};function on(t){let e=t,r=new Set;function n(){return e}function s(o){return r.add(o),()=>r.delete(o)}function a(o){typeof o=="function"?e=o(e):e=o,r.forEach(c=>c());}function i(o){let c=le.useRef(o?o(e):e);return le.useSyncExternalStore(s,()=>{let p=o?o(e):e,y=c.current;return Object.is(y,p)||(c.current=p),c.current},()=>o?o(e):e)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function Rt(t,e=[]){let r={};for(let n in t){let s=t[n];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,n].join("."),a.__isVoid=s.length===2,r[n]=a;}else typeof s=="object"&&s!==null?r[n]=Rt(s,[...e,n]):r[n]=s;}return r}function pn(t,e){let[r,n]=le.useState(false),[s,a]=le.useState([]),i=le.useRef(null);le.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{i.current?.abort();}},[]);let o=async y=>{i.current?.abort();let S=new AbortController;i.current=S,n(true),t(y,g=>{a(O=>[...O,g]),(g.isDone||!g.status)&&(n(false),e?.onDone&&e?.onDone([...s,g])),g.status?e?.onStream&&e?.onStream(g):e?.onError&&e?.onError(g);},{signal:S.signal});},c=()=>{i.current?.abort(),i.current=null,n(false);},p=()=>{n(false),a([]);};return [s.map(y=>y.data),o,{loading:r,abort:c,reset:p}]}exports.BgsCoreProvider=Ve;exports.DataTypeEnum=et;exports.HttpMethod=Qe;exports.capitalizeWords=me;exports.createApiHelper=Hr;exports.createElement=en;exports.createStore=on;exports.debounce=qt;exports.decrypt=te;exports.decryptString=Te;exports.defaultState=z;exports.diffJson=At;exports.encrypt=ee;exports.encryptString=xe;exports.generateCacheKey=de;exports.generateUUID=Tt;exports.getApiActions=Se;exports.getFieldValue=F;exports.isArray=Dt;exports.isNotEmpty=I;exports.jsonCopy=wt;exports.labelFormatter=fe;exports.mappingUndefinedtoNull=Ct;exports.moment=L;exports.parseSSEChunk=ye;exports.registerApi=Ce;exports.renderChildren=St;exports.sorting=Pt;exports.splitElement=tn;exports.stableStringify=Ue;exports.summary=Ot;exports.unregisterApi=De;exports.useApiLoad=Ze;exports.useApiLoadStore=W;exports.useApiSend=$r;exports.useApiStore=Xr;exports.useApiStream=pn;exports.useBgsCore=$;exports.useCrypto=X;exports.useDelay=br;exports.useFormatted=Sr;exports.useInterval=wr;exports.useKeyPress=vr;exports.useScrollTrigger=Wr;exports.useStorage=Ae;exports.wrapApi=Rt;
|
package/dist/index.d.cts
CHANGED
|
@@ -148,6 +148,21 @@ interface ApiResponseStream<T = any> {
|
|
|
148
148
|
httpCode: number;
|
|
149
149
|
isDone: boolean;
|
|
150
150
|
}
|
|
151
|
+
interface UseApiStreamProps<Req, Res> extends Partial<OptionsHelper> {
|
|
152
|
+
/**
|
|
153
|
+
* Callback ketika respon selesai.
|
|
154
|
+
*/
|
|
155
|
+
onDone?: (res: ApiResponseStream<Res>[]) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Callback ketika respon selesai.
|
|
158
|
+
*/
|
|
159
|
+
onStream?: (res: ApiResponseStream<Res>) => void;
|
|
160
|
+
/**
|
|
161
|
+
* Callback ketika terjadi error.
|
|
162
|
+
*/
|
|
163
|
+
onError?: (res: ApiResponseStream<Res>) => void;
|
|
164
|
+
abortOnUnmount?: boolean;
|
|
165
|
+
}
|
|
151
166
|
type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata';
|
|
152
167
|
type OptionsCallReturn<DReq = unknown, DRes = DReq> = Partial<ApiResponse<DRes>> & {
|
|
153
168
|
/** Status loading saat request berlangsung */
|
|
@@ -338,6 +353,7 @@ type ApiActionStateStream<Res> = Partial<ApiResponse<Res>> & {
|
|
|
338
353
|
reset: () => void;
|
|
339
354
|
/** Status loading saat request berlangsung */
|
|
340
355
|
loading: boolean;
|
|
356
|
+
response: ApiResponseStream<Res>[];
|
|
341
357
|
};
|
|
342
358
|
type UseApiStreamReturn<Req, Res> = Req extends undefined ? [
|
|
343
359
|
Res[],
|
|
@@ -599,7 +615,7 @@ declare const useApiLoadStore: zustand.UseBoundStore<zustand.StoreApi<ApiLoadSta
|
|
|
599
615
|
|
|
600
616
|
declare const moment: typeof dayjs;
|
|
601
617
|
|
|
602
|
-
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
618
|
+
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>, props?: UseApiStreamProps<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
603
619
|
|
|
604
620
|
type FormatType = {
|
|
605
621
|
display: string;
|
|
@@ -632,4 +648,4 @@ interface BgsCoreProviderProps {
|
|
|
632
648
|
}
|
|
633
649
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
634
650
|
|
|
635
|
-
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 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 UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
651
|
+
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 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, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -148,6 +148,21 @@ interface ApiResponseStream<T = any> {
|
|
|
148
148
|
httpCode: number;
|
|
149
149
|
isDone: boolean;
|
|
150
150
|
}
|
|
151
|
+
interface UseApiStreamProps<Req, Res> extends Partial<OptionsHelper> {
|
|
152
|
+
/**
|
|
153
|
+
* Callback ketika respon selesai.
|
|
154
|
+
*/
|
|
155
|
+
onDone?: (res: ApiResponseStream<Res>[]) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Callback ketika respon selesai.
|
|
158
|
+
*/
|
|
159
|
+
onStream?: (res: ApiResponseStream<Res>) => void;
|
|
160
|
+
/**
|
|
161
|
+
* Callback ketika terjadi error.
|
|
162
|
+
*/
|
|
163
|
+
onError?: (res: ApiResponseStream<Res>) => void;
|
|
164
|
+
abortOnUnmount?: boolean;
|
|
165
|
+
}
|
|
151
166
|
type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata';
|
|
152
167
|
type OptionsCallReturn<DReq = unknown, DRes = DReq> = Partial<ApiResponse<DRes>> & {
|
|
153
168
|
/** Status loading saat request berlangsung */
|
|
@@ -338,6 +353,7 @@ type ApiActionStateStream<Res> = Partial<ApiResponse<Res>> & {
|
|
|
338
353
|
reset: () => void;
|
|
339
354
|
/** Status loading saat request berlangsung */
|
|
340
355
|
loading: boolean;
|
|
356
|
+
response: ApiResponseStream<Res>[];
|
|
341
357
|
};
|
|
342
358
|
type UseApiStreamReturn<Req, Res> = Req extends undefined ? [
|
|
343
359
|
Res[],
|
|
@@ -599,7 +615,7 @@ declare const useApiLoadStore: zustand.UseBoundStore<zustand.StoreApi<ApiLoadSta
|
|
|
599
615
|
|
|
600
616
|
declare const moment: typeof dayjs;
|
|
601
617
|
|
|
602
|
-
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
618
|
+
declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>, props?: UseApiStreamProps<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
|
|
603
619
|
|
|
604
620
|
type FormatType = {
|
|
605
621
|
display: string;
|
|
@@ -632,4 +648,4 @@ interface BgsCoreProviderProps {
|
|
|
632
648
|
}
|
|
633
649
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
634
650
|
|
|
635
|
-
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 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 UseApiStreamReturn, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, defaultState, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
651
|
+
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 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, generateCacheKey, generateUUID, getApiActions, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, moment, parseSSEChunk, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useApiStream, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import ie,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import N from'dayjs';import Ue from'dayjs/plugin/utc';import ve from'dayjs/plugin/timezone';import ke from'dayjs/plugin/duration';import Ne from'dayjs/plugin/advancedFormat';import Ee from'dayjs/plugin/localizedFormat';import Ke from'dayjs/plugin/relativeTime';import Me from'dayjs/plugin/isSameOrBefore';import Fe from'dayjs/plugin/isSameOrAfter';import Le from'dayjs/plugin/weekOfYear';import Be from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import Re from'crypto-js/aes';import ge from'crypto-js/pbkdf2';import We from'crypto-js/enc-utf8';import G from'crypto-js/enc-base64';import ye from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import it from'axios';function ht(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function bt(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var xt=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Tt(t,e){let n=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(n=true):n=true),n}function H(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var ce={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let n=t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(t="",e=false)=>{let n="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],n=ce.snackCase(ce.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ct(t,e){return typeof t=="function"?t(e):t}var E=(t,e,n="")=>{if(!t)return n;if(t.hasOwnProperty(e))return t[e];let o=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},At={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=E(n,e)?E(n,e):"",a=E(o,e)?E(n,e):"";return s<a?1:-1}else return n<o?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=E(n,e)?E(n,e):"",a=E(o,e)?E(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},Dt=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?E(o,e)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function St(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function qe(t){let e=new WeakSet;return JSON.stringify(t,function(n,o){return o!==null&&typeof o=="object"?e.has(o)?void 0:(e.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ue(t,e){return qe([e??"undefined",t??"undefined"])}function fe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function Pt(t,e=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{t(...o);},e*1e3);}}var de=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};N.extend(Ue);N.extend(ve);N.extend(ke);N.extend(Ne);N.extend(Ee);N.extend(Ke);N.extend(Me);N.extend(Fe);N.extend(Le);N.extend(Be);var K=N;var me=createContext(void 0);function I(){let t=useContext(me);return t||{}}var je=({children:t,value:e})=>{let n={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:p}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&K.locale(s,a??{},p);}})();},[e.localeConfig]),jsx(me.Provider,{value:n,children:t})};function Q(t,e){let n=ye.random(16),o=ye.random(16),s=ge(e,n,{keySize:256/32,iterations:1e3}),a=Re.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(G),iv:o.toString(G),encrypted:a}}function ee(t,e){let{salt:n,iv:o,encrypted:s}=t,a=ge(e,G.parse(n),{keySize:256/32,iterations:1e3}),r=Re.decrypt(s,a,{iv:G.parse(o)}).toString(We);return JSON.parse(r)}function he(t,e){return JSON.stringify(Q(t,e))}function be(t,e){return ee(JSON.parse(t),e)}function Y(){let{passphrase:t}=I();return {passphrase:t,encrypt(e,n){return Q(e,n||t)},decrypt(e,n){return ee(e,n||t)},encryptString(e,n){return he(e,n||t)},decryptString(e,n){return be(e,n||t)}}}var xe=()=>{let{encrypt:t,decrypt:e}=Y(),n=useCallback((p,r)=>{try{let c=t(r);localStorage.setItem(p,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),o=useCallback(p=>{try{let r=localStorage.getItem(p);return r?e(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[e]),s=p=>{let[r,c]=useState(()=>{try{let i=localStorage.getItem(p);return i?e(JSON.parse(i)):null}catch(i){return console.error("Failed to parse localStorage value",i),null}});return useEffect(()=>{let i=y=>{if(y.key===p)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(A){console.error("Decrypt error from storage event",A);}else c(null);};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[p,e]),r},a=useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function Ge(t,e){for(let n in e)if(e[n]!==t[n])return e}var W={loading:false,response:void 0,isCancel:false},V=create()(t=>({states:{},updateState:(e,n)=>t(o=>{let s=o.states[e]||W,a={...s,...n};return Ge(s,a)?{states:{...o.states,[e]:a}}:o})}));var ne=new Map,Te=(t,e)=>{ne.set(t,e);},Ce=t=>{ne.delete(t);},Ae=t=>ne.get(t);function Xe(...t){let[e,n,o]=t,s=e.__isVoid,a=e.__path||e.name,p=s?void 0:n,r=s?n:o,c=r?.storeName||a,{updateState:i}=V(),[y,A,C]=V(useShallow(R=>{let f=R.states[c]??W;return [f.loading,f.isCancel,f.response]})),{storageKey:w,cache:b,clearPreviousData:x,refetchOnWindowFocus:q}=I(),$=xe(),k=useRef(void 0),M=useRef(null),{cacheName:j,cacheKey:F,timeout:le,timeoutUnit:pe,persistence:X,cacheEnabled:Z}=useMemo(()=>{let R=w?$.get(w):void 0,f=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,g=ue({...p,session:R},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),h=false;typeof b?.enabled=="boolean"&&(h=b.enabled);let D=false;typeof b?.persistence=="boolean"&&(D=b?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(D=r?.cache?.persistence??false);let P=60*5,v="s";return H(b?.timeout)&&(typeof b?.timeout=="number"?(P=b.timeout,v="s"):typeof b?.timeout=="object"&&(P=b?.timeout.value,v=b?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?h=r.cache.enabled:h=true,typeof r.cache.timeout=="number"?(P=r.cache.timeout,v="s"):typeof r.cache.timeout=="object"&&(P=r.cache.timeout.value,v=r.cache.timeout.unit)):h=r.cache),{cacheName:f,cacheKey:g,timeout:P,timeoutUnit:v,persistence:D,cacheEnabled:h}},[r?.cache,p,w,b,a]);useEffect(()=>{let R=JSON.stringify(H(k.current)?k.current:""),f=JSON.stringify(H(p)?p:""),g=k.current===void 0;(R!==f||g)&&!r?.hold&&((r?.clearPreviousData??x)&&i(c,{response:null}),m(),k.current=p),r?.onChange&&r?.onChange(p,U);},[p,r?.clearPreviousData,x,r?.hold,...r?.trigger||[]]),useEffect(()=>{let R=async()=>{!X&&j&&F&&(await caches.open(j)).delete(F);};return window.addEventListener("beforeunload",R),()=>{window.removeEventListener("beforeunload",R),M.current?.abort();}},[X,j,F,c,M]);let m=useCallback(async R=>{let f=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(f=r?.beforeRequest(p)),Z&&!R&&!A){i(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=await caches.open(j),D=await(await g.match(F))?.json();if(D){let{data:P,expired:v}=D;if(K().isAfter(v))await g.delete(F);else {r?.afterResponse&&P?.data&&(P.data=r?.afterResponse(P.data)),r?.logging&&console.log("After request: Using Cache",P),r?.onAfterResponse&&r?.onAfterResponse(P),i(c,{loading:false,response:P});return}}}if(typeof e=="function"){M.current?.abort();let g=new AbortController;M.current=g,i(c,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let h=s?await e(void 0,{...r,signal:g.signal}):await e(f,void 0,{...r,signal:g.signal});if(r?.afterResponse&&h?.data&&(h.data=r?.afterResponse(h.data)),r?.logging&&console.log("After request",h),r?.onAfterResponse&&r?.onAfterResponse(h),i(c,{loading:false,response:h,isCancel:false}),Z&&h.status){let D=K().add(le,pe).toISOString(),P={data:h,expired:D},v=await caches.open(j),J=new Response(JSON.stringify(P));await v.put(F,J);}}},[p,e,r,A]);useEffect(()=>{if(r?.refreshInterval){let R=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,f=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,g=setInterval(()=>{m();},K.duration(R,f).asMilliseconds());return ()=>clearInterval(g)}return ()=>{}},[r?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:d,timeoutRefetch:T,timeoutUnitRefetch:S}=useMemo(()=>{let R=r?.refetchOnWindowFocus?.enabled??q?.enabled??false,f=r?.refetchOnWindowFocus?.timeout??q?.timeout,g=typeof f=="number"?f:f?.value??60*5,h=typeof f=="object"?f.unit:"s";return {enabledRefetch:R,timeoutRefetch:g,timeoutUnitRefetch:h}},[r?.refetchOnWindowFocus,q]);useEffect(()=>{if(!d)return;let R=K.duration(T,S).asMilliseconds(),f=()=>{let h=Date.now(),D=l.current;D!==null&&h-D>=R&&m(),l.current=null;},g=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",g),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",g);}},[d,T,S,m]);let O=useCallback(()=>{M.current?.abort(),M.current=null,i(c,{loading:false,isCancel:true});},[c,M]),u=useCallback(()=>{i(c,{loading:false,response:null});},[c]),U=useMemo(()=>({...C,loading:y,refresh:m,abort:O,clear:u,response:C,isCancel:A,clone:(R,f)=>Xe(e,R,f)}),[C,y,m,O,u,A,e]);return useEffect(()=>(Te(c,U),()=>{Ce(c);}),[U,c]),[C?.data,U]}async function gn(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var Ze=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ze||{}),Qe=(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))(Qe||{});var An=(t,e,n)=>{let{format:o}=I();return e==="number"?nt(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?rt(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?et(t,n):e==="string"?tt(t,n):t?.toString()??""};function et(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function tt(t,e){if(!H(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=fe(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return e?.ellipsis&&n.length>e.ellipsis&&(n=n.slice(0,e.ellipsis)+"..."),n}function nt(t,{thouSep:e,decSep:n,decDigits:o,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof o=="number"){let i=Math.pow(10,o);a=Math[s](a*i)/i;}else a=Math[s](a);else if(typeof o=="number"){let i=Math.pow(10,o);a=Math.floor(a*i)/i;}let p=0;if(o==="auto"){let i=a.toString(),y=i.indexOf(".");y!==-1&&(p=i.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?p:o||0,maximumFractionDigits:o==="auto"?p:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,e)}function rt(t,{display:e,value:n}){if(!H(t))return t;let o=K(t,n);return o.isValid()?o.format(e):t}function Pn(t,{interval:e,lead:n}){let o=useRef(null);useEffect(()=>{o.current=t;},[t]),useEffect(()=>{let s=()=>o.current();if(n&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function qn(t,e,n){let[o,s]=useState(false),a=(i,y)=>typeof t=="string"&&i===t||typeof t=="number"&&y===t,p=i=>i!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(i.tagName)||i.hasAttribute("contentEditable")),r=i=>{let{key:y,keyCode:A}=i,C=i.ctrlKey,w=i.altKey,b=i.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(y,A)&&(e==="ctrl"&&C||e==="alt"&&w||e==="shift"&&b)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));else {let x=e.every(q=>q==="ctrl"?C:q==="alt"?w:q==="shift"?b:false);a(y,A)&&x&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));}else a(y,A)&&(i.preventDefault(),n&&i.stopPropagation(),s(!o));},c=({key:i,keyCode:y})=>{a(i,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var Fn=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:i,encryptRequest:y,encryptResponse:A,passphrase:C})=>{let{encrypt:w,decrypt:b,passphrase:x}=Y(),q=(m,l,d,T)=>{let S=T?.code==="ERR_CANCELED",O=m?.status===401,u=m?.data;if((typeof d?.encryptResponse=="boolean"?d?.encryptResponse:A)&&u){let D=d?.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?x:d.passphrase:C;try{u=b(u,D);}catch{try{u=b(u,x);}catch{}}}let f={...o({...m,data:u,isCancel:S,isUnauthorization:O},T),isCancel:S,isUnauthorization:O,httpCode:m?.status},g=typeof d?.disabledToastWhenCancel=="boolean"?d?.disabledToastWhenCancel:c,h=r?r(f,d):!O;if((d?.infoSuccess&&f.status||d?.infoError&&!f.status)&&p&&(!S||!g)&&p(f),!h&&(!S||!d?.disabledHandleUnauthorized)){let D=d?.onUnauthorized||a;D&&D(f);}if(l)l(f);else return f},$=(m,l=()=>{})=>it.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:i})(m).then(l).catch(T=>l(T.response,T)),k=(m,l,d,T,S)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...S},U={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):u.token&&(U.Authorization=`Bearer ${u.token}`)),n&&(d=n(d)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:y)&&d){let f=S?.passphrase?typeof S.passphrase=="boolean"&&S.passphrase?x:S.passphrase:C;d=w(d,f);}return $({url:l,method:m,data:d,headers:U,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:f=>{u?.onUploadProgress&&u?.onUploadProgress(f);}},(f,g)=>q(f,T,u,g))};return {client:$,post:(m,l,d,T)=>k("POST",`${m}`,l,d,T),put:(m,l,d,T)=>k("PUT",`${m}`,l,d,T),patch:(m,l,d,T)=>k("PATCH",`${m}`,l,d,T),delete:(m,l,d)=>k("DELETE",`${m}`,null,l,d),get:(m,l,d)=>k("GET",`${m}`,null,l,d),upload:(m,l,d,T)=>{let S=new FormData;return Object.keys(l).forEach(O=>S.append(O,l[O])),k("POST",`${m}`,S,d,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})},stream:async(m,l,d,T,S)=>{try{let u={...{token:!0,responseType:"json"},...S},U={"Content-Type":"application/json",...s,...u.headers};if(u.token){let L=typeof u.token=="boolean"?e:u.token;L&&(U.Authorization=`Bearer ${L}`);}let R=d;if(n&&(R=n(R)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:y)&&R){let L=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?x:u.passphrase:C;R=w(R,L);}let g=await fetch(`${t}${l}`,{method:m,headers:U,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(R)}),h=g?.status,D=h===401,P=g?.statusText||"Internal Server Error";if(!g.ok){T({status:!1,data:void 0,message:P,isCancel:!1,isUnauthorization:D,httpCode:h,isDone:!0});return}let v=g.body.getReader(),J=new TextDecoder("utf-8"),_=!1;for(;!_;){let{value:L,done:Oe}=await v.read();if(_=Oe,L){let B=J.decode(L,{stream:!_});if(B=de(B),u.encryptResponse){let we=u.passphrase?u.passphrase===!0?x:u.passphrase:x;try{B=b(B,we);}catch{B=b(B,x);}}T({status:!0,data:B,message:"",isCancel:!1,isUnauthorization:D,httpCode:h,isDone:_});}}}catch(O){let u=O?.name==="AbortError";T({status:false,data:void 0,message:O instanceof Error?O.message:"Internal Server Error",isCancel:u,isUnauthorization:false,httpCode:400,isDone:true});}}}};function Hn(t,e){let[n,o]=useState(false),[s,a]=useState(),[p,r]=useState(0),c=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async C=>{c.current?.abort();let w=new AbortController;c.current=w,o(true),e?.beforeRequest&&(C=e?.beforeRequest(C)),e?.logging&&console.log("Before request",C);let b={...e,signal:w.signal,onUploadProgress:q=>{let $=Math.round(q.loaded*100/(q.total||1));r($);}},x=t.__isVoid?await t(void 0,b):await t(C,void 0,b);e?.logging&&console.log("After response",x),a(x),o(false),r(0),x.status&&e?.onSuccess&&e?.onSuccess(x),!x.status&&e?.onError&&e?.onError(x),e?.afterResponse&&e?.afterResponse(x);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function ct(t,e){let{disableHysteresis:n=false,threshold:o=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!n&&a!==void 0&&t.current<a?false:(t.current||0)>o}var ut=typeof window<"u"?window:null;function jn(t={}){let{getTrigger:e=ct,target:n=ut,disableHysteresis:o=false,threshold:s=100}=t,a=ie.useRef(0),[p,r]=ie.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:n}));return ie.useEffect(()=>{let c=()=>{r(e(a,{disableHysteresis:o,threshold:s,target:n}));};if(c(),n)return n.addEventListener("scroll",c,{passive:true}),()=>{n.removeEventListener("scroll",c);}},[n,e,o,s]),p}var Gn=(t,e)=>{let n=e?.storeName||t.__path||t.name,o=e?.shallow??true,s=p=>{let r=p.states[n]??W,{loading:c,isCancel:i,response:y}=r,{refresh:A,abort:C,clear:w,clone:b}=Ae(n)||{},x=[y?.data,{...y,loading:c,isCancel:i,refresh:A,abort:C,clear:w,clone:b}];return e?.selector?e.selector(x):x};return o?V(useShallow(s)):V(s)};var Zn=(t,e)=>{let n=o=>t(o);return n.displayName=e,n},Qn=(t,e)=>{let n={};n.others=[];let o=s=>{ie.Children.forEach(s,a=>{if(ie.isValidElement(a)){let p=a.type.displayName;if(e.includes(p))n[p]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(t),n};function nr(t){let e=t,n=new Set;function o(){return e}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?e=r(e):e=r,n.forEach(c=>c());}function p(r){let c=useRef(r?r(e):e);return useSyncExternalStore(s,()=>{let i=r?r(e):e,y=c.current;return Object.is(y,i)||(c.current=i),c.current},()=>r?r(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function yt(t,e=[]){let n={};for(let o in t){let s=t[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=yt(s,[...e,o]):n[o]=s;}return n}function ar(t){let[e,n]=useState(false),[o,s]=useState([]),a=useRef(null);useEffect(()=>()=>{a.current?.abort();},[]);let p=async i=>{a.current?.abort();let y=new AbortController;a.current=y,n(true),t(i,A=>{s(C=>[...C,A]),(A.isDone||!A.status)&&n(false);},{signal:y.signal});},r=()=>{a.current?.abort(),a.current=null,n(false);},c=()=>{n(false),s([]);};return [o.map(i=>i.data),p,{loading:e,abort:r,reset:c}]}export{je as BgsCoreProvider,Qe as DataTypeEnum,Ze as HttpMethod,fe as capitalizeWords,Fn as createApiHelper,Zn as createElement,nr as createStore,Pt as debounce,ee as decrypt,be as decryptString,W as defaultState,bt as diffJson,Q as encrypt,he as encryptString,ue as generateCacheKey,ht as generateUUID,Ae as getApiActions,E as getFieldValue,Tt as isArray,H as isNotEmpty,St as jsonCopy,ce as labelFormatter,xt as mappingUndefinedtoNull,K as moment,de as parseSSEChunk,Te as registerApi,Ct as renderChildren,At as sorting,Qn as splitElement,qe as stableStringify,Dt as summary,Ce as unregisterApi,Xe as useApiLoad,V as useApiLoadStore,Hn as useApiSend,Gn as useApiStore,ar as useApiStream,I as useBgsCore,Y as useCrypto,gn as useDelay,An as useFormatted,Pn as useInterval,qn as useKeyPress,jn as useScrollTrigger,xe as useStorage,yt as wrapApi};
|
|
1
|
+
import le,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import K from'dayjs';import ve from'dayjs/plugin/utc';import ke from'dayjs/plugin/timezone';import Ee from'dayjs/plugin/duration';import Ne from'dayjs/plugin/advancedFormat';import Ke from'dayjs/plugin/localizedFormat';import Me from'dayjs/plugin/relativeTime';import Fe from'dayjs/plugin/isSameOrBefore';import Le from'dayjs/plugin/isSameOrAfter';import He from'dayjs/plugin/weekOfYear';import Be from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import he from'crypto-js/aes';import be from'crypto-js/pbkdf2';import ze from'crypto-js/enc-utf8';import Y from'crypto-js/enc-base64';import ge from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import lt from'axios';function Tt(){let t=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>(e==="x"?t():t()&3|8).toString(16))}function At(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var Ct=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function Dt(t,e){let r=false;return t&&typeof t=="object"&&Array.isArray(t)&&(typeof e=="number"?t.length>e&&(r=true):r=true),r}function I(t){return !(t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0||typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0)}var fe={camelCase:(t="")=>(t=t.split(".").map(e=>(e=e.charAt(0).toUpperCase()+e.slice(1),e)).join(" "),t=t.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),t.charAt(0).toUpperCase()+t.slice(1)),snackCase:(t="")=>{let r=t.replace(/_([a-z])/g,(n,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(t="",e=false)=>{let r="";try{t=t?.split(".")[t?.split(".")?.length-1],t=t?.split("[]")[t?.split("[]")?.length-1],r=fe.snackCase(fe.camelCase(t)),e&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function St(t,e){return typeof t=="function"?t(e):t}var F=(t,e,r="")=>{if(!t)return r;if(t.hasOwnProperty(e))return t[e];let n=e.replace(/\[(\d+)\]/g,".$1").split("."),s=t;for(let a of n){if(s==null)return r;s=s[a];}return s===void 0?r:s},Pt={desc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=F(r,e)?F(r,e):"",a=F(n,e)?F(r,e):"";return s<a?1:-1}else return r<n?1:-1})),asc:(t,e)=>(t||(t=[]),t.sort((r,n)=>{if(e){let s=F(r,e)?F(r,e):"",a=F(n,e)?F(n,e):"";return s>a?1:-1}else return r>n?1:-1}))},Ot=(t,e)=>{Array.isArray(t)||(t=[]);let r=[];return r=t.map(n=>Number(e?F(n,e)||0:n||0)),r.reduce((n,s)=>(n||0)+(s||0),0)||0};function wt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ue(t){let e=new WeakSet;return JSON.stringify(t,function(r,n){return n!==null&&typeof n=="object"?e.has(n)?void 0:(e.add(n),Object.keys(n).sort().reduce((s,a)=>(s[a]=n[a],s),{})):n})??""}function de(t,e){return Ue([e??"undefined",t??"undefined"])}function me(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function qt(t,e=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{t(...n);},e*1e3);}}var ye=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};K.extend(ve);K.extend(ke);K.extend(Ee);K.extend(Ne);K.extend(Ke);K.extend(Me);K.extend(Fe);K.extend(Le);K.extend(He);K.extend(Be);var L=K;var Re=createContext(void 0);function $(){let t=useContext(Re);return t||{}}var Ve=({children:t,value:e})=>{let r={...e};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&e.localeConfig){let{preset:s,object:a,isLocal:i}=e.localeConfig;if(typeof s=="string")try{await import(`dayjs/locale/${s}`);}catch{console.warn(`Locale "${s}" not found, fallback to default`);}s&&L.locale(s,a??{},i);}})();},[e.localeConfig]),jsx(Re.Provider,{value:r,children:t})};function ee(t,e){let r=ge.random(16),n=ge.random(16),s=be(e,r,{keySize:256/32,iterations:1e3}),a=he.encrypt(JSON.stringify(t),s,{iv:n}).toString();return {salt:r.toString(Y),iv:n.toString(Y),encrypted:a}}function te(t,e){let{salt:r,iv:n,encrypted:s}=t,a=be(e,Y.parse(r),{keySize:256/32,iterations:1e3}),o=he.decrypt(s,a,{iv:Y.parse(n)}).toString(ze);return JSON.parse(o)}function xe(t,e){return JSON.stringify(ee(t,e))}function Te(t,e){return te(JSON.parse(t),e)}function X(){let{passphrase:t}=$();return {passphrase:t,encrypt(e,r){return ee(e,r||t)},decrypt(e,r){return te(e,r||t)},encryptString(e,r){return xe(e,r||t)},decryptString(e,r){return Te(e,r||t)}}}var Ae=()=>{let{encrypt:t,decrypt:e}=X(),r=useCallback((i,o)=>{try{let c=t(o);localStorage.setItem(i,JSON.stringify(c));}catch(c){console.error("Failed to save to storage:",c);}},[t]),n=useCallback(i=>{try{let o=localStorage.getItem(i);return o?e(JSON.parse(o)):null}catch(o){return console.error("Failed to get from storage:",o),null}},[e]),s=i=>{let[o,c]=useState(()=>{try{let p=localStorage.getItem(i);return p?e(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=y=>{if(y.key===i)if(y.newValue)try{c(e(JSON.parse(y.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else c(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[i,e]),o},a=useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:s}};function Ye(t,e){for(let r in e)if(e[r]!==t[r])return e}var z={loading:false,response:void 0,isCancel:false},W=create()(t=>({states:{},updateState:(e,r)=>t(n=>{let s=n.states[e]||z,a={...s,...r};return Ye(s,a)?{states:{...n.states,[e]:a}}:n})}));var ne=new Map,Ce=(t,e)=>{ne.set(t,e);},De=t=>{ne.delete(t);},Se=t=>ne.get(t);function Ze(...t){let[e,r,n]=t,s=e.__isVoid,a=e.__path||e.name,i=s?void 0:r,o=s?r:n,c=o?.storeName||a,{updateState:p}=W(),[y,S,g]=W(useShallow(b=>{let d=b.states[c]??z;return [d.loading,d.isCancel,d.response]})),{storageKey:O,cache:x,clearPreviousData:A,refetchOnWindowFocus:q}=$(),j=Ae(),k=useRef(void 0),H=useRef(null),{cacheName:V,cacheKey:B,timeout:pe,timeoutUnit:ce,persistence:Z,cacheEnabled:Q}=useMemo(()=>{let b=O?j.get(O):void 0,d=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,R=de({...i,session:b},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),T=false;typeof x?.enabled=="boolean"&&(T=x.enabled);let P=false;typeof x?.persistence=="boolean"&&(P=x?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let D=60*5,v="s";return I(x?.timeout)&&(typeof x?.timeout=="number"?(D=x.timeout,v="s"):typeof x?.timeout=="object"&&(D=x?.timeout.value,v=x?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?T=o.cache.enabled:T=true,typeof o.cache.timeout=="number"?(D=o.cache.timeout,v="s"):typeof o.cache.timeout=="object"&&(D=o.cache.timeout.value,v=o.cache.timeout.unit)):T=o.cache),{cacheName:d,cacheKey:R,timeout:D,timeoutUnit:v,persistence:P,cacheEnabled:T}},[o?.cache,i,O,x,a]);useEffect(()=>{let b=JSON.stringify(I(k.current)?k.current:""),d=JSON.stringify(I(i)?i:""),R=k.current===void 0;(b!==d||R)&&!o?.hold&&((o?.clearPreviousData??A)&&p(c,{response:null}),m(),k.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,A,o?.hold,...o?.trigger||[]]),useEffect(()=>{let b=async()=>{!Z&&V&&B&&(await caches.open(V)).delete(B);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),H.current?.abort();}},[Z,V,B,c,H]);let m=useCallback(async b=>{let d=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(d=o?.beforeRequest(i)),Q&&!b&&!S){p(c,{loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(i);let R=await caches.open(V),P=await(await R.match(B))?.json();if(P){let{data:D,expired:v}=P;if(L().isAfter(v))await R.delete(B);else {o?.afterResponse&&D?.data&&(D.data=o?.afterResponse(D.data)),o?.logging&&console.log("After request: Using Cache",D),o?.onAfterResponse&&o?.onAfterResponse(D),p(c,{loading:false,response:D});return}}}if(typeof e=="function"){H.current?.abort();let R=new AbortController;H.current=R,p(c,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let T=s?await e(void 0,{...o,signal:R.signal}):await e(d,void 0,{...o,signal:R.signal});if(o?.afterResponse&&T?.data&&(T.data=o?.afterResponse(T.data)),o?.logging&&console.log("After request",T),o?.onAfterResponse&&o?.onAfterResponse(T),p(c,{loading:false,response:T,isCancel:false}),Q&&T.status){let P=L().add(pe,ce).toISOString(),D={data:T,expired:P},v=await caches.open(V),_=new Response(JSON.stringify(D));await v.put(B,_);}}},[i,e,o,S]);useEffect(()=>{if(o?.refreshInterval){let b=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,d=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,R=setInterval(()=>{m();},L.duration(b,d).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[o?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:f,timeoutRefetch:C,timeoutUnitRefetch:h}=useMemo(()=>{let b=o?.refetchOnWindowFocus?.enabled??q?.enabled??false,d=o?.refetchOnWindowFocus?.timeout??q?.timeout,R=typeof d=="number"?d:d?.value??60*5,T=typeof d=="object"?d.unit:"s";return {enabledRefetch:b,timeoutRefetch:R,timeoutUnitRefetch:T}},[o?.refetchOnWindowFocus,q]);useEffect(()=>{if(!f)return;let b=L.duration(C,h).asMilliseconds(),d=()=>{let T=Date.now(),P=l.current;P!==null&&T-P>=b&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",R);}},[f,C,h,m]);let w=useCallback(()=>{H.current?.abort(),H.current=null,p(c,{loading:false,isCancel:true});},[c,H]),u=useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=useMemo(()=>({...g,loading:y,refresh:m,abort:w,clear:u,response:g,isCancel:S,clone:(b,d)=>Ze(e,b,d)}),[g,y,m,w,u,S,e]);return useEffect(()=>(Ce(c,U),()=>{De(c);}),[U,c]),[g?.data,U]}async function br(t,e=()=>{}){let r=t*1e3;return new Promise(n=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),n(true);},r);})}var Qe=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Qe||{}),et=(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))(et||{});var Sr=(t,e,r)=>{let{format:n}=$();return e==="number"?nt(t,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(s=>s===e)?ot(t,{display:n[e]?.display,value:n[e]?.value,...r}):e==="boolean"?tt(t,r):e==="string"?rt(t,r):t?.toString()??""};function tt(t,e){let r=typeof t=="string"?t==="true":!!t,n=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return r?n:s}function rt(t,e){if(!I(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=me(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return e?.ellipsis&&r.length>e.ellipsis&&(r=r.slice(0,e.ellipsis)+"..."),r}function nt(t,{thouSep:e,decSep:r,decDigits:n,method:s}){if(t==null||isNaN(Number(t)))return "";let a=typeof t=="string"?parseFloat(t):t;if(s)if(typeof n=="number"){let p=Math.pow(10,n);a=Math[s](a*p)/p;}else a=Math[s](a);else if(typeof n=="number"){let p=Math.pow(10,n);a=Math.floor(a*p)/p;}let i=0;if(n==="auto"){let p=a.toString(),y=p.indexOf(".");y!==-1&&(i=p.length-y-1);}let o={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?i:n||0,maximumFractionDigits:n==="auto"?i:n||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",o).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,e)}function ot(t,{display:e,value:r}){if(!I(t))return t;let n=L(t,r);return n.isValid()?n.format(e):t}function wr(t,{interval:e,lead:r}){let n=useRef(null);useEffect(()=>{n.current=t;},[t]),useEffect(()=>{let s=()=>n.current();if(r&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function vr(t,e,r){let[n,s]=useState(false),a=(p,y)=>typeof t=="string"&&p===t||typeof t=="number"&&y===t,i=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),o=p=>{let{key:y,keyCode:S}=p,g=p.ctrlKey,O=p.altKey,x=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&O||e==="shift"&&x)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let A=e.every(q=>q==="ctrl"?g:q==="alt"?O:q==="shift"?x:false);a(y,S)&&A&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));}else a(y,S)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));},c=({key:p,keyCode:y})=>{a(p,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",o),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",o),window.removeEventListener("keyup",c);}),[]),n}var Hr=({url:t,token:e,beforeRequest:r,onCallback:n,headers:s,onUnauthorized:a,handleToast:i,handleAuthorization:o,disabledToastWhenCancel:c,withCredentials:p,encryptRequest:y,encryptResponse:S,passphrase:g})=>{let{encrypt:O,decrypt:x,passphrase:A}=X(),q=(m,l,f,C)=>{let h=C?.code==="ERR_CANCELED",w=m?.status===401,u=m?.data;if((typeof f?.encryptResponse=="boolean"?f?.encryptResponse:S)&&u){let P=f?.passphrase?typeof f.passphrase=="boolean"&&f.passphrase?A:f.passphrase:g;try{u=x(u,P);}catch{try{u=x(u,A);}catch{}}}let d={...n({...m,data:u,isCancel:h,isUnauthorization:w},C),isCancel:h,isUnauthorization:w,httpCode:m?.status},R=typeof f?.disabledToastWhenCancel=="boolean"?f?.disabledToastWhenCancel:c,T=o?o(d,f):!w;if((f?.infoSuccess&&d.status||f?.infoError&&!d.status)&&i&&(!h||!R)&&i(d),!T&&(!h||!f?.disabledHandleUnauthorized)){let P=f?.onUnauthorized||a;P&&P(d);}if(l)l(d);else return d},j=(m,l=()=>{})=>lt.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(C=>l(C.response,C)),k=(m,l,f,C,h)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...u.headers};if(u.token&&(typeof u.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):u.token&&(U.Authorization=`Bearer ${u.token}`)),r&&(f=r(f)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:y)&&f){let d=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?A:h.passphrase:g;f=O(f,d);}return j({url:l,method:m,data:f,headers:U,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:d=>{u?.onUploadProgress&&u?.onUploadProgress(d);}},(d,R)=>q(d,C,u,R))};return {client:j,post:(m,l,f,C)=>k("POST",`${m}`,l,f,C),put:(m,l,f,C)=>k("PUT",`${m}`,l,f,C),patch:(m,l,f,C)=>k("PATCH",`${m}`,l,f,C),delete:(m,l,f)=>k("DELETE",`${m}`,null,l,f),get:(m,l,f)=>k("GET",`${m}`,null,l,f),upload:(m,l,f,C)=>{let h=new FormData;return Object.keys(l).forEach(w=>h.append(w,l[w])),k("POST",`${m}`,h,f,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(m,l,f,C,h)=>{try{let u={...{token:!0,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...u.headers};if(u.token){let E=typeof u.token=="boolean"?e:u.token;E&&(U.Authorization=`Bearer ${E}`);}let b=f;if(r&&(b=r(b)),(typeof u.encryptRequest=="boolean"?u.encryptRequest:y)&&b){let E=u.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?A:u.passphrase:g;b=O(b,E);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:u.withCredentials?"include":"same-origin",signal:u.signal,body:JSON.stringify(b)}),T=R?.status,P=T===401,D=R?.statusText||"Error";try{let E=R.headers.get("content-type")||"",M=await R.clone().text();if(M)if(E.includes("application/json"))try{let N=JSON.parse(M);if((typeof h?.encryptResponse=="boolean"?h?.encryptResponse:S)&&f){let qe=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?A:h.passphrase:g;try{f=x(N,qe);}catch{try{f=x(N,A);}catch{}}}D=N?.message||D;}catch{D=M;}else D=M;}catch{}if(!R.ok){let E=typeof h?.disabledToastWhenCancel=="boolean"?h?.disabledToastWhenCancel:c,M={status:!1,data:void 0,message:D,isCancel:!1,isUnauthorization:P,httpCode:T,isDone:!0};h?.infoError&&i&&!E&&i(M),C(M);return}let v=R.body.getReader(),_=new TextDecoder("utf-8"),G=!1;for(;!G;){let{value:E,done:M}=await v.read();if(G=M,E){let N=_.decode(E,{stream:!G});if(N=ye(N),u.encryptResponse){let ue=u.passphrase?u.passphrase===!0?A:u.passphrase:A;try{N=x(N,ue);}catch{N=x(N,A);}}C({status:!0,data:N,message:"",isCancel:!1,isUnauthorization:P,httpCode:T,isDone:G});}}}catch(w){let u=w?.name==="AbortError";C({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:u,isUnauthorization:false,httpCode:400,isDone:true});}}}};function $r(t,e){let[r,n]=useState(false),[s,a]=useState(),[i,o]=useState(0),c=useRef(null);return useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async g=>{c.current?.abort();let O=new AbortController;c.current=O,n(true),e?.beforeRequest&&(g=e?.beforeRequest(g)),e?.logging&&console.log("Before request",g);let x={...e,signal:O.signal,onUploadProgress:q=>{let j=Math.round(q.loaded*100/(q.total||1));o(j);}},A=t.__isVoid?await t(void 0,x):await t(g,void 0,x);e?.logging&&console.log("After response",A),a(A),n(false),o(0),A.status&&e?.onSuccess&&e?.onSuccess(A),!A.status&&e?.onError&&e?.onError(A),e?.afterResponse&&e?.afterResponse(A);},{...s,loading:r,abort:()=>{c.current?.abort(),c.current=null,n(false),o(0);},progress:i,reset:()=>{n(false),o(0),a(null);}}]}function ut(t,e){let{disableHysteresis:r=false,threshold:n=100,target:s}=e,a=t.current;return s&&(typeof s.pageYOffset=="number"?t.current=s.pageYOffset:s.scrollTop!==void 0&&(t.current=s.scrollTop)),!r&&a!==void 0&&t.current<a?false:(t.current||0)>n}var ft=typeof window<"u"?window:null;function Wr(t={}){let{getTrigger:e=ut,target:r=ft,disableHysteresis:n=false,threshold:s=100}=t,a=le.useRef(0),[i,o]=le.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return le.useEffect(()=>{let c=()=>{o(e(a,{disableHysteresis:n,threshold:s,target:r}));};if(c(),r)return r.addEventListener("scroll",c,{passive:true}),()=>{r.removeEventListener("scroll",c);}},[r,e,n,s]),i}var Xr=(t,e)=>{let r=e?.storeName||t.__path||t.name,n=e?.shallow??true,s=i=>{let o=i.states[r]??z,{loading:c,isCancel:p,response:y}=o,{refresh:S,abort:g,clear:O,clone:x}=Se(r)||{},A=[y?.data,{...y,loading:c,isCancel:p,refresh:S,abort:g,clear:O,clone:x}];return e?.selector?e.selector(A):A};return n?W(useShallow(s)):W(s)};var en=(t,e)=>{let r=n=>t(n);return r.displayName=e,r},tn=(t,e)=>{let r={};r.others=[];let n=s=>{le.Children.forEach(s,a=>{if(le.isValidElement(a)){let i=a.type.displayName;if(e.includes(i))r[i]=a;else {let o=a;o.props?.children?n(o.props.children):r.others.push(a);}}else r.others.push(a);});};return n(t),r};function on(t){let e=t,r=new Set;function n(){return e}function s(o){return r.add(o),()=>r.delete(o)}function a(o){typeof o=="function"?e=o(e):e=o,r.forEach(c=>c());}function i(o){let c=useRef(o?o(e):e);return useSyncExternalStore(s,()=>{let p=o?o(e):e,y=c.current;return Object.is(y,p)||(c.current=p),c.current},()=>o?o(e):e)}return {getSnapshot:n,subscribe:s,setState:a,useStore:i}}function Rt(t,e=[]){let r={};for(let n in t){let s=t[n];if(typeof s=="function"){let a=s.bind(null);a.__path=[...e,n].join("."),a.__isVoid=s.length===2,r[n]=a;}else typeof s=="object"&&s!==null?r[n]=Rt(s,[...e,n]):r[n]=s;}return r}function pn(t,e){let[r,n]=useState(false),[s,a]=useState([]),i=useRef(null);useEffect(()=>{if(e?.abortOnUnmount)return ()=>{i.current?.abort();}},[]);let o=async y=>{i.current?.abort();let S=new AbortController;i.current=S,n(true),t(y,g=>{a(O=>[...O,g]),(g.isDone||!g.status)&&(n(false),e?.onDone&&e?.onDone([...s,g])),g.status?e?.onStream&&e?.onStream(g):e?.onError&&e?.onError(g);},{signal:S.signal});},c=()=>{i.current?.abort(),i.current=null,n(false);},p=()=>{n(false),a([]);};return [s.map(y=>y.data),o,{loading:r,abort:c,reset:p}]}export{Ve as BgsCoreProvider,et as DataTypeEnum,Qe as HttpMethod,me as capitalizeWords,Hr as createApiHelper,en as createElement,on as createStore,qt as debounce,te as decrypt,Te as decryptString,z as defaultState,At as diffJson,ee as encrypt,xe as encryptString,de as generateCacheKey,Tt as generateUUID,Se as getApiActions,F as getFieldValue,Dt as isArray,I as isNotEmpty,wt as jsonCopy,fe as labelFormatter,Ct as mappingUndefinedtoNull,L as moment,ye as parseSSEChunk,Ce as registerApi,St as renderChildren,Pt as sorting,tn as splitElement,Ue as stableStringify,Ot as summary,De as unregisterApi,Ze as useApiLoad,W as useApiLoadStore,$r as useApiSend,Xr as useApiStore,pn as useApiStream,$ as useBgsCore,X as useCrypto,br as useDelay,Sr as useFormatted,wr as useInterval,vr as useKeyPress,Wr as useScrollTrigger,Ae as useStorage,Rt as wrapApi};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgscore/react-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.65",
|
|
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",
|