@bgscore/react-core 0.0.64 → 0.0.66

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 CHANGED
@@ -1 +1,3 @@
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 ce=require('react'),N=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'),be=require('crypto-js/aes'),xe=require('crypto-js/pbkdf2'),ze=require('crypto-js/enc-utf8'),Y=require('crypto-js/enc-base64'),he=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 ce__default=/*#__PURE__*/_interopDefault(ce);var N__default=/*#__PURE__*/_interopDefault(N);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 be__default=/*#__PURE__*/_interopDefault(be);var xe__default=/*#__PURE__*/_interopDefault(xe);var ze__default=/*#__PURE__*/_interopDefault(ze);var Y__default=/*#__PURE__*/_interopDefault(Y);var he__default=/*#__PURE__*/_interopDefault(he);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 B(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 de={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=de.snackCase(de.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 M=(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=M(r,e)?M(r,e):"",a=M(n,e)?M(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=M(r,e)?M(r,e):"",a=M(n,e)?M(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?M(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 me(t,e){return Ue([e??"undefined",t??"undefined"])}function ye(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 Re=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(ve__default.default);N__default.default.extend(ke__default.default);N__default.default.extend(Ee__default.default);N__default.default.extend(Ne__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(He__default.default);N__default.default.extend(Be__default.default);var F=N__default.default;var ge=ce.createContext(void 0);function I(){let t=ce.useContext(ge);return t||{}}var We=({children:t,value:e})=>{let r={...e};return ce.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&&F.locale(s,a??{},i);}})();},[e.localeConfig]),jsxRuntime.jsx(ge.Provider,{value:r,children:t})};function re(t,e){let r=he__default.default.random(16),n=he__default.default.random(16),s=xe__default.default(e,r,{keySize:256/32,iterations:1e3}),a=be__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 ne(t,e){let{salt:r,iv:n,encrypted:s}=t,a=xe__default.default(e,Y__default.default.parse(r),{keySize:256/32,iterations:1e3}),o=be__default.default.decrypt(s,a,{iv:Y__default.default.parse(n)}).toString(ze__default.default);return JSON.parse(o)}function Te(t,e){return JSON.stringify(re(t,e))}function Ae(t,e){return ne(JSON.parse(t),e)}function X(){let{passphrase:t}=I();return {passphrase:t,encrypt(e,r){return re(e,r||t)},decrypt(e,r){return ne(e,r||t)},encryptString(e,r){return Te(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var Ce=()=>{let{encrypt:t,decrypt:e}=X(),r=ce.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=ce.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]=ce.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 ce.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=ce.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},V=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 se=new Map,De=(t,e)=>{se.set(t,e);},Se=t=>{se.delete(t);},Pe=t=>se.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}=V(),[y,S,g]=V(shallow.useShallow(b=>{let f=b.states[c]??z;return [f.loading,f.isCancel,f.response]})),{storageKey:O,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=I(),$=Ce(),k=ce.useRef(void 0),L=ce.useRef(null),{cacheName:j,cacheKey:H,timeout:ue,timeoutUnit:fe,persistence:Z,cacheEnabled:Q}=ce.useMemo(()=>{let b=O?$.get(O):void 0,f=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,R=me({...i,session:b},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),x=false;typeof T?.enabled=="boolean"&&(x=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let D=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(D=T.timeout,v="s"):typeof T?.timeout=="object"&&(D=T?.timeout.value,v=T?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?x=o.cache.enabled:x=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)):x=o.cache),{cacheName:f,cacheKey:R,timeout:D,timeoutUnit:v,persistence:P,cacheEnabled:x}},[o?.cache,i,O,T,a]);ce.useEffect(()=>{let b=JSON.stringify(B(k.current)?k.current:""),f=JSON.stringify(B(i)?i:""),R=k.current===void 0;(b!==f||R)&&!o?.hold&&((o?.clearPreviousData??C)&&p(c,{response:null}),m(),k.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,C,o?.hold,...o?.trigger||[]]),ce.useEffect(()=>{let b=async()=>{!Z&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),L.current?.abort();}},[Z,j,H,c,L]);let m=ce.useCallback(async b=>{let f=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(f=o?.beforeRequest(i)),Q&&!b&&!S){p(c,{loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(i);let R=await caches.open(j),P=await(await R.match(H))?.json();if(P){let{data:D,expired:v}=P;if(F().isAfter(v))await R.delete(H);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"){L.current?.abort();let R=new AbortController;L.current=R,p(c,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let x=s?await e(void 0,{...o,signal:R.signal}):await e(f,void 0,{...o,signal:R.signal});if(o?.afterResponse&&x?.data&&(x.data=o?.afterResponse(x.data)),o?.logging&&console.log("After request",x),o?.onAfterResponse&&o?.onAfterResponse(x),p(c,{loading:false,response:x,isCancel:false}),Q&&x.status){let P=F().add(ue,fe).toISOString(),D={data:x,expired:P},v=await caches.open(j),_=new Response(JSON.stringify(D));await v.put(H,_);}}},[i,e,o,S]);ce.useEffect(()=>{if(o?.refreshInterval){let b=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,f=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,R=setInterval(()=>{m();},F.duration(b,f).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[o?.refreshInterval,m]);let l=ce.useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:h}=ce.useMemo(()=>{let b=o?.refetchOnWindowFocus?.enabled??q?.enabled??false,f=o?.refetchOnWindowFocus?.timeout??q?.timeout,R=typeof f=="number"?f:f?.value??60*5,x=typeof f=="object"?f.unit:"s";return {enabledRefetch:b,timeoutRefetch:R,timeoutUnitRefetch:x}},[o?.refetchOnWindowFocus,q]);ce.useEffect(()=>{if(!u)return;let b=F.duration(A,h).asMilliseconds(),f=()=>{let x=Date.now(),P=l.current;P!==null&&x-P>=b&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",R);}},[u,A,h,m]);let w=ce.useCallback(()=>{L.current?.abort(),L.current=null,p(c,{loading:false,isCancel:true});},[c,L]),d=ce.useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=ce.useMemo(()=>({...g,loading:y,refresh:m,abort:w,clear:d,response:g,isCancel:S,clone:(b,f)=>Ze(e,b,f)}),[g,y,m,w,d,S,e]);return ce.useEffect(()=>(De(c,U),()=>{Se(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}=I();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(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(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(!B(t))return t;let n=F(t,r);return n.isValid()?n.format(e):t}function wr(t,{interval:e,lead:r}){let n=ce.useRef(null);ce.useEffect(()=>{n.current=t;},[t]),ce.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]=ce.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,T=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&O||e==="shift"&&T)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?O:q==="shift"?T:false);a(y,S)&&C&&(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 ce.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:T,passphrase:C}=X(),q=(m,l,u,A)=>{let h=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:S)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let f={...n({...m,data:d,isCancel:h,isUnauthorization:w},A),isCancel:h,isUnauthorization:w,httpCode:m?.status},R=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,x=o?o(f,u):!w;if((u?.infoSuccess&&f.status||u?.infoError&&!f.status)&&i&&(!h||!R)&&i(f),!x&&(!h||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(f);}if(l)l(f);else return f},$=(m,l=()=>{})=>lt__default.default.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(A=>l(A.response,A)),k=(m,l,u,A,h)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&u){let f=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?C:h.passphrase:g;u=O(u,f);}return $({url:l,method:m,data:u,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:f=>{d?.onUploadProgress&&d?.onUploadProgress(f);}},(f,R)=>q(f,A,d,R))};return {client:$,post:(m,l,u,A)=>k("POST",`${m}`,l,u,A),put:(m,l,u,A)=>k("PUT",`${m}`,l,u,A),patch:(m,l,u,A)=>k("PATCH",`${m}`,l,u,A),delete:(m,l,u)=>k("DELETE",`${m}`,null,l,u),get:(m,l,u)=>k("GET",`${m}`,null,l,u),upload:(m,l,u,A)=>{let h=new FormData;return Object.keys(l).forEach(w=>h.append(w,l[w])),k("POST",`${m}`,h,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,u,A,h)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...h},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let E=typeof d.token=="boolean"?e:d.token;E&&(U.Authorization=`Bearer ${E}`);}let b=u;if(r&&(b=r(b)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&b){let E=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;b=O(b,E);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(b)}),x=R?.status,P=x===401,D=R?.statusText||"Error";try{let E=R.headers.get("content-type")||"",K=await R.clone().text();if(K)if(E.includes("application/json"))try{let W=JSON.parse(K);if((typeof h?.encryptResponse=="boolean"?h?.encryptResponse:S)&&u){let G=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?C:h.passphrase:g;try{u=T(W,G);}catch{try{u=T(W,C);}catch{}}}D=W?.message||D;}catch{D=K;}else D=K;}catch{}if(!R.ok){let E=typeof h?.disabledToastWhenCancel=="boolean"?h?.disabledToastWhenCancel:c,K={status:!1,data:void 0,message:D,isCancel:!1,isUnauthorization:P,httpCode:x,isDone:!0};h?.infoError&&i&&!E&&i(K),A(K);return}let v=R.body.getReader(),_=new TextDecoder("utf-8"),ee="";for(;;){let{done:E,value:K}=await v.read();if(E)break;ee+=_.decode(K,{stream:!0});let W=ee.split(`
2
+
3
+ `);ee=W.pop();for(let te of W)if(te.startsWith("data:"))try{let G=Re(te);A({status:!0,data:G,message:"",isCancel:!1,isUnauthorization:P,httpCode:x,isDone:E});}catch{}}}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,isUnauthorization:false,httpCode:400,isDone:true});}}}};function $r(t,e){let[r,n]=ce.useState(false),[s,a]=ce.useState(),[i,o]=ce.useState(0),c=ce.useRef(null);return ce.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 T={...e,signal:O.signal,onUploadProgress:q=>{let $=Math.round(q.loaded*100/(q.total||1));o($);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),n(false),o(0),C.status&&e?.onSuccess&&e?.onSuccess(C),!C.status&&e?.onError&&e?.onError(C),e?.afterResponse&&e?.afterResponse(C);},{...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 Vr(t={}){let{getTrigger:e=ut,target:r=ft,disableHysteresis:n=false,threshold:s=100}=t,a=ce__default.default.useRef(0),[i,o]=ce__default.default.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return ce__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:T}=Pe(r)||{},C=[y?.data,{...y,loading:c,isCancel:p,refresh:S,abort:g,clear:O,clone:T}];return e?.selector?e.selector(C):C};return n?V(shallow.useShallow(s)):V(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=>{ce__default.default.Children.forEach(s,a=>{if(ce__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=ce.useRef(o?o(e):e);return ce.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]=ce.useState(false),[s,a]=ce.useState([]),i=ce.useRef(null);ce.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=We;exports.DataTypeEnum=et;exports.HttpMethod=Qe;exports.capitalizeWords=ye;exports.createApiHelper=Hr;exports.createElement=en;exports.createStore=on;exports.debounce=qt;exports.decrypt=ne;exports.decryptString=Ae;exports.defaultState=z;exports.diffJson=At;exports.encrypt=re;exports.encryptString=Te;exports.generateCacheKey=me;exports.generateUUID=Tt;exports.getApiActions=Pe;exports.getFieldValue=M;exports.isArray=Dt;exports.isNotEmpty=B;exports.jsonCopy=wt;exports.labelFormatter=de;exports.mappingUndefinedtoNull=Ct;exports.moment=F;exports.parseSSEChunk=Re;exports.registerApi=De;exports.renderChildren=St;exports.sorting=Pt;exports.splitElement=tn;exports.stableStringify=Ue;exports.summary=Ot;exports.unregisterApi=Se;exports.useApiLoad=Ze;exports.useApiLoadStore=V;exports.useApiSend=$r;exports.useApiStore=Xr;exports.useApiStream=pn;exports.useBgsCore=I;exports.useCrypto=X;exports.useDelay=br;exports.useFormatted=Sr;exports.useInterval=wr;exports.useKeyPress=vr;exports.useScrollTrigger=Vr;exports.useStorage=Ce;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,3 @@
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 ce,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import N 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 be from'crypto-js/aes';import xe from'crypto-js/pbkdf2';import ze from'crypto-js/enc-utf8';import Y from'crypto-js/enc-base64';import he 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 B(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 de={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=de.snackCase(de.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 M=(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=M(r,e)?M(r,e):"",a=M(n,e)?M(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=M(r,e)?M(r,e):"",a=M(n,e)?M(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?M(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 me(t,e){return Ue([e??"undefined",t??"undefined"])}function ye(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 Re=t=>{let e=t.match(/^data:\s*(.*)/s);if(e)try{return JSON.parse(e[1])}catch{return null}return null};N.extend(ve);N.extend(ke);N.extend(Ee);N.extend(Ne);N.extend(Ke);N.extend(Me);N.extend(Fe);N.extend(Le);N.extend(He);N.extend(Be);var F=N;var ge=createContext(void 0);function I(){let t=useContext(ge);return t||{}}var We=({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&&F.locale(s,a??{},i);}})();},[e.localeConfig]),jsx(ge.Provider,{value:r,children:t})};function re(t,e){let r=he.random(16),n=he.random(16),s=xe(e,r,{keySize:256/32,iterations:1e3}),a=be.encrypt(JSON.stringify(t),s,{iv:n}).toString();return {salt:r.toString(Y),iv:n.toString(Y),encrypted:a}}function ne(t,e){let{salt:r,iv:n,encrypted:s}=t,a=xe(e,Y.parse(r),{keySize:256/32,iterations:1e3}),o=be.decrypt(s,a,{iv:Y.parse(n)}).toString(ze);return JSON.parse(o)}function Te(t,e){return JSON.stringify(re(t,e))}function Ae(t,e){return ne(JSON.parse(t),e)}function X(){let{passphrase:t}=I();return {passphrase:t,encrypt(e,r){return re(e,r||t)},decrypt(e,r){return ne(e,r||t)},encryptString(e,r){return Te(e,r||t)},decryptString(e,r){return Ae(e,r||t)}}}var Ce=()=>{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},V=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 se=new Map,De=(t,e)=>{se.set(t,e);},Se=t=>{se.delete(t);},Pe=t=>se.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}=V(),[y,S,g]=V(useShallow(b=>{let f=b.states[c]??z;return [f.loading,f.isCancel,f.response]})),{storageKey:O,cache:T,clearPreviousData:C,refetchOnWindowFocus:q}=I(),$=Ce(),k=useRef(void 0),L=useRef(null),{cacheName:j,cacheKey:H,timeout:ue,timeoutUnit:fe,persistence:Z,cacheEnabled:Q}=useMemo(()=>{let b=O?$.get(O):void 0,f=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,R=me({...i,session:b},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),x=false;typeof T?.enabled=="boolean"&&(x=T.enabled);let P=false;typeof T?.persistence=="boolean"&&(P=T?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(P=o?.cache?.persistence??false);let D=60*5,v="s";return B(T?.timeout)&&(typeof T?.timeout=="number"?(D=T.timeout,v="s"):typeof T?.timeout=="object"&&(D=T?.timeout.value,v=T?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?x=o.cache.enabled:x=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)):x=o.cache),{cacheName:f,cacheKey:R,timeout:D,timeoutUnit:v,persistence:P,cacheEnabled:x}},[o?.cache,i,O,T,a]);useEffect(()=>{let b=JSON.stringify(B(k.current)?k.current:""),f=JSON.stringify(B(i)?i:""),R=k.current===void 0;(b!==f||R)&&!o?.hold&&((o?.clearPreviousData??C)&&p(c,{response:null}),m(),k.current=i),o?.onChange&&o?.onChange(i,U);},[i,o?.clearPreviousData,C,o?.hold,...o?.trigger||[]]),useEffect(()=>{let b=async()=>{!Z&&j&&H&&(await caches.open(j)).delete(H);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),L.current?.abort();}},[Z,j,H,c,L]);let m=useCallback(async b=>{let f=i;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(f=o?.beforeRequest(i)),Q&&!b&&!S){p(c,{loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(i);let R=await caches.open(j),P=await(await R.match(H))?.json();if(P){let{data:D,expired:v}=P;if(F().isAfter(v))await R.delete(H);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"){L.current?.abort();let R=new AbortController;L.current=R,p(c,{loading:true}),o?.logging&&console.log("Before request",i),o?.onBeforeRequest&&o?.onBeforeRequest(i);let x=s?await e(void 0,{...o,signal:R.signal}):await e(f,void 0,{...o,signal:R.signal});if(o?.afterResponse&&x?.data&&(x.data=o?.afterResponse(x.data)),o?.logging&&console.log("After request",x),o?.onAfterResponse&&o?.onAfterResponse(x),p(c,{loading:false,response:x,isCancel:false}),Q&&x.status){let P=F().add(ue,fe).toISOString(),D={data:x,expired:P},v=await caches.open(j),_=new Response(JSON.stringify(D));await v.put(H,_);}}},[i,e,o,S]);useEffect(()=>{if(o?.refreshInterval){let b=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,f=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,R=setInterval(()=>{m();},F.duration(b,f).asMilliseconds());return ()=>clearInterval(R)}return ()=>{}},[o?.refreshInterval,m]);let l=useRef(null),{enabledRefetch:u,timeoutRefetch:A,timeoutUnitRefetch:h}=useMemo(()=>{let b=o?.refetchOnWindowFocus?.enabled??q?.enabled??false,f=o?.refetchOnWindowFocus?.timeout??q?.timeout,R=typeof f=="number"?f:f?.value??60*5,x=typeof f=="object"?f.unit:"s";return {enabledRefetch:b,timeoutRefetch:R,timeoutUnitRefetch:x}},[o?.refetchOnWindowFocus,q]);useEffect(()=>{if(!u)return;let b=F.duration(A,h).asMilliseconds(),f=()=>{let x=Date.now(),P=l.current;P!==null&&x-P>=b&&m(),l.current=null;},R=()=>{l.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",R),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",R);}},[u,A,h,m]);let w=useCallback(()=>{L.current?.abort(),L.current=null,p(c,{loading:false,isCancel:true});},[c,L]),d=useCallback(()=>{p(c,{loading:false,response:null});},[c]),U=useMemo(()=>({...g,loading:y,refresh:m,abort:w,clear:d,response:g,isCancel:S,clone:(b,f)=>Ze(e,b,f)}),[g,y,m,w,d,S,e]);return useEffect(()=>(De(c,U),()=>{Se(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}=I();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(!B(t))return "";let r=String(t);switch(e?.textTransform){case "capitalize":r=ye(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(!B(t))return t;let n=F(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,T=p.shiftKey;if(!i(document.activeElement))if(e)if(typeof e=="string")a(y,S)&&(e==="ctrl"&&g||e==="alt"&&O||e==="shift"&&T)&&(p.preventDefault(),r&&p.stopPropagation(),s(!n));else {let C=e.every(q=>q==="ctrl"?g:q==="alt"?O:q==="shift"?T:false);a(y,S)&&C&&(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:T,passphrase:C}=X(),q=(m,l,u,A)=>{let h=A?.code==="ERR_CANCELED",w=m?.status===401,d=m?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:S)&&d){let P=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?C:u.passphrase:g;try{d=T(d,P);}catch{try{d=T(d,C);}catch{}}}let f={...n({...m,data:d,isCancel:h,isUnauthorization:w},A),isCancel:h,isUnauthorization:w,httpCode:m?.status},R=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:c,x=o?o(f,u):!w;if((u?.infoSuccess&&f.status||u?.infoError&&!f.status)&&i&&(!h||!R)&&i(f),!x&&(!h||!u?.disabledHandleUnauthorized)){let P=u?.onUnauthorized||a;P&&P(f);}if(l)l(f);else return f},$=(m,l=()=>{})=>lt.create({baseURL:`${t}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(A=>l(A.response,A)),k=(m,l,u,A,h)=>{let d={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...h},U={"Content-Type":"application/json",...s,...d.headers};if(d.token&&(typeof d.token=="boolean"?e&&(U.Authorization=`Bearer ${e}`):d.token&&(U.Authorization=`Bearer ${d.token}`)),r&&(u=r(u)),(typeof d?.encryptRequest=="boolean"?d?.encryptRequest:y)&&u){let f=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?C:h.passphrase:g;u=O(u,f);}return $({url:l,method:m,data:u,headers:U,responseType:d.responseType,signal:d.signal,withCredentials:d.withCredentials,onUploadProgress:f=>{d?.onUploadProgress&&d?.onUploadProgress(f);}},(f,R)=>q(f,A,d,R))};return {client:$,post:(m,l,u,A)=>k("POST",`${m}`,l,u,A),put:(m,l,u,A)=>k("PUT",`${m}`,l,u,A),patch:(m,l,u,A)=>k("PATCH",`${m}`,l,u,A),delete:(m,l,u)=>k("DELETE",`${m}`,null,l,u),get:(m,l,u)=>k("GET",`${m}`,null,l,u),upload:(m,l,u,A)=>{let h=new FormData;return Object.keys(l).forEach(w=>h.append(w,l[w])),k("POST",`${m}`,h,u,{infoSuccess:false,...A,headers:{"Content-Type":"multipart/form-data",...A?.headers}})},stream:async(m,l,u,A,h)=>{try{let d={...{token:!0,responseType:"json",infoError:!0},...h},U={"Content-Type":"application/json",...s,...d.headers};if(d.token){let E=typeof d.token=="boolean"?e:d.token;E&&(U.Authorization=`Bearer ${E}`);}let b=u;if(r&&(b=r(b)),(typeof d.encryptRequest=="boolean"?d.encryptRequest:y)&&b){let E=d.passphrase?typeof d.passphrase=="boolean"&&d.passphrase?C:d.passphrase:g;b=O(b,E);}let R=await fetch(`${t}${l}`,{method:m,headers:U,credentials:d.withCredentials?"include":"same-origin",signal:d.signal,body:JSON.stringify(b)}),x=R?.status,P=x===401,D=R?.statusText||"Error";try{let E=R.headers.get("content-type")||"",K=await R.clone().text();if(K)if(E.includes("application/json"))try{let W=JSON.parse(K);if((typeof h?.encryptResponse=="boolean"?h?.encryptResponse:S)&&u){let G=h?.passphrase?typeof h.passphrase=="boolean"&&h.passphrase?C:h.passphrase:g;try{u=T(W,G);}catch{try{u=T(W,C);}catch{}}}D=W?.message||D;}catch{D=K;}else D=K;}catch{}if(!R.ok){let E=typeof h?.disabledToastWhenCancel=="boolean"?h?.disabledToastWhenCancel:c,K={status:!1,data:void 0,message:D,isCancel:!1,isUnauthorization:P,httpCode:x,isDone:!0};h?.infoError&&i&&!E&&i(K),A(K);return}let v=R.body.getReader(),_=new TextDecoder("utf-8"),ee="";for(;;){let{done:E,value:K}=await v.read();if(E)break;ee+=_.decode(K,{stream:!0});let W=ee.split(`
2
+
3
+ `);ee=W.pop();for(let te of W)if(te.startsWith("data:"))try{let G=Re(te);A({status:!0,data:G,message:"",isCancel:!1,isUnauthorization:P,httpCode:x,isDone:E});}catch{}}}catch(w){let d=w?.name==="AbortError";A({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:d,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 T={...e,signal:O.signal,onUploadProgress:q=>{let $=Math.round(q.loaded*100/(q.total||1));o($);}},C=t.__isVoid?await t(void 0,T):await t(g,void 0,T);e?.logging&&console.log("After response",C),a(C),n(false),o(0),C.status&&e?.onSuccess&&e?.onSuccess(C),!C.status&&e?.onError&&e?.onError(C),e?.afterResponse&&e?.afterResponse(C);},{...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 Vr(t={}){let{getTrigger:e=ut,target:r=ft,disableHysteresis:n=false,threshold:s=100}=t,a=ce.useRef(0),[i,o]=ce.useState(()=>e(a,{disableHysteresis:n,threshold:s,target:r}));return ce.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:T}=Pe(r)||{},C=[y?.data,{...y,loading:c,isCancel:p,refresh:S,abort:g,clear:O,clone:T}];return e?.selector?e.selector(C):C};return n?V(useShallow(s)):V(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=>{ce.Children.forEach(s,a=>{if(ce.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{We as BgsCoreProvider,et as DataTypeEnum,Qe as HttpMethod,ye as capitalizeWords,Hr as createApiHelper,en as createElement,on as createStore,qt as debounce,ne as decrypt,Ae as decryptString,z as defaultState,At as diffJson,re as encrypt,Te as encryptString,me as generateCacheKey,Tt as generateUUID,Pe as getApiActions,M as getFieldValue,Dt as isArray,B as isNotEmpty,wt as jsonCopy,de as labelFormatter,Ct as mappingUndefinedtoNull,F as moment,Re as parseSSEChunk,De as registerApi,St as renderChildren,Pt as sorting,tn as splitElement,Ue as stableStringify,Ot as summary,Se as unregisterApi,Ze as useApiLoad,V as useApiLoadStore,$r as useApiSend,Xr as useApiStore,pn as useApiStream,I as useBgsCore,X as useCrypto,br as useDelay,Sr as useFormatted,wr as useInterval,vr as useKeyPress,Vr as useScrollTrigger,Ce 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.64",
3
+ "version": "0.0.66",
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",