@bgscore/react-core 0.0.61 → 0.0.63

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 @@
1
- 'use strict';var re=require('react'),q=require('dayjs'),Ae=require('dayjs/plugin/utc'),De=require('dayjs/plugin/timezone'),Pe=require('dayjs/plugin/duration'),Se=require('dayjs/plugin/advancedFormat'),Oe=require('dayjs/plugin/localizedFormat'),we=require('dayjs/plugin/relativeTime'),Ue=require('dayjs/plugin/isSameOrBefore'),qe=require('dayjs/plugin/isSameOrAfter'),ve=require('dayjs/plugin/weekOfYear'),Ne=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),fe=require('crypto-js/aes'),de=require('crypto-js/pbkdf2'),Me=require('crypto-js/enc-utf8'),z=require('crypto-js/enc-base64'),ue=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),et=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var re__default=/*#__PURE__*/_interopDefault(re);var q__default=/*#__PURE__*/_interopDefault(q);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var De__default=/*#__PURE__*/_interopDefault(De);var Pe__default=/*#__PURE__*/_interopDefault(Pe);var Se__default=/*#__PURE__*/_interopDefault(Se);var Oe__default=/*#__PURE__*/_interopDefault(Oe);var we__default=/*#__PURE__*/_interopDefault(we);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var qe__default=/*#__PURE__*/_interopDefault(qe);var ve__default=/*#__PURE__*/_interopDefault(ve);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var fe__default=/*#__PURE__*/_interopDefault(fe);var de__default=/*#__PURE__*/_interopDefault(de);var Me__default=/*#__PURE__*/_interopDefault(Me);var z__default=/*#__PURE__*/_interopDefault(z);var ue__default=/*#__PURE__*/_interopDefault(ue);var et__default=/*#__PURE__*/_interopDefault(et);function pt(){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 ct(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var ut=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function ft(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 M(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 ie={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=ie.snackCase(ie.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function dt(t,e){return typeof t=="function"?t(e):t}var k=(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},mt={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=k(n,e)?k(n,e):"",a=k(o,e)?k(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=k(n,e)?k(n,e):"",a=k(o,e)?k(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},yt=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?k(o,e)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function gt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ce(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 le(t,e){return Ce([e??"undefined",t??"undefined"])}function pe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function Rt(t,e=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{t(...o);},e*1e3);}}q__default.default.extend(Ae__default.default);q__default.default.extend(De__default.default);q__default.default.extend(Pe__default.default);q__default.default.extend(Se__default.default);q__default.default.extend(Oe__default.default);q__default.default.extend(we__default.default);q__default.default.extend(Ue__default.default);q__default.default.extend(qe__default.default);q__default.default.extend(ve__default.default);q__default.default.extend(Ne__default.default);var E=q__default.default;var ce=re.createContext(void 0);function B(){let t=re.useContext(ce);return t||{}}var Fe=({children:t,value:e})=>{let n={...e};return re.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&&E.locale(s,a??{},p);}})();},[e.localeConfig]),jsxRuntime.jsx(ce.Provider,{value:n,children:t})};function G(t,e){let n=ue__default.default.random(16),o=ue__default.default.random(16),s=de__default.default(e,n,{keySize:256/32,iterations:1e3}),a=fe__default.default.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(z__default.default),iv:o.toString(z__default.default),encrypted:a}}function Y(t,e){let{salt:n,iv:o,encrypted:s}=t,a=de__default.default(e,z__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=fe__default.default.decrypt(s,a,{iv:z__default.default.parse(o)}).toString(Me__default.default);return JSON.parse(r)}function me(t,e){return JSON.stringify(G(t,e))}function ye(t,e){return Y(JSON.parse(t),e)}function J(){let{passphrase:t}=B();return {passphrase:t,encrypt(e,n){return G(e,n||t)},decrypt(e,n){return Y(e,n||t)},encryptString(e,n){return me(e,n||t)},decryptString(e,n){return ye(e,n||t)}}}var ge=()=>{let{encrypt:t,decrypt:e}=J(),n=re.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=re.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]=re.useState(()=>{try{let l=localStorage.getItem(p);return l?e(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return re.useEffect(()=>{let l=m=>{if(m.key===p)if(m.newValue)try{c(e(JSON.parse(m.newValue)));}catch(P){console.error("Decrypt error from storage event",P);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,e]),r},a=re.useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function $e(t,e){for(let n in e)if(e[n]!==t[n])return e}var V={loading:false,response:void 0,isCancel:false},j=zustand.create()(t=>({states:{},updateState:(e,n)=>t(o=>{let s=o.states[e]||V,a={...s,...n};return $e(s,a)?{states:{...o.states,[e]:a}}:o})}));var Z=new Map,Re=(t,e)=>{Z.set(t,e);},he=t=>{Z.delete(t);},be=t=>Z.get(t);function Ve(...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:l}=j(),[m,P,C]=j(shallow.useShallow(u=>{let d=u.states[c]??V;return [d.loading,d.isCancel,d.response]})),{storageKey:S,cache:h,clearPreviousData:b,refetchOnWindowFocus:O}=B(),I=ge(),U=re.useRef(void 0),K=re.useRef(null),{cacheName:H,cacheKey:F,timeout:oe,timeoutUnit:se,persistence:_,cacheEnabled:y}=re.useMemo(()=>{let u=S?I.get(S):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=le({...p,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),g=false;typeof h?.enabled=="boolean"&&(g=h.enabled);let w=false;typeof h?.persistence=="boolean"&&(w=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(w=r?.cache?.persistence??false);let D=60*5,N="s";return M(h?.timeout)&&(typeof h?.timeout=="number"?(D=h.timeout,N="s"):typeof h?.timeout=="object"&&(D=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?g=r.cache.enabled:g=true,typeof r.cache.timeout=="number"?(D=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(D=r.cache.timeout.value,N=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:x,timeout:D,timeoutUnit:N,persistence:w,cacheEnabled:g}},[r?.cache,p,S,h,a]);re.useEffect(()=>{let u=JSON.stringify(M(U.current)?U.current:""),d=JSON.stringify(M(p)?p:""),x=U.current===void 0;(u!==d||x)&&!r?.hold&&((r?.clearPreviousData??b)&&l(c,{response:null}),f(),U.current=p),r?.onChange&&r?.onChange(p,$);},[p,r?.clearPreviousData,b,r?.hold,...r?.trigger||[]]),re.useEffect(()=>{let u=async()=>{!_&&H&&F&&(await caches.open(H)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,H,F,c,K]);let f=re.useCallback(async u=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),y&&!u&&!P){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(H),w=await(await x.match(F))?.json();if(w){let{data:D,expired:N}=w;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&D?.data&&(D.data=r?.afterResponse(D.data)),r?.logging&&console.log("After request: Using Cache",D),r?.onAfterResponse&&r?.onAfterResponse(D),l(c,{loading:false,response:D});return}}}if(typeof e=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(c,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=s?await e(void 0,{...r,signal:x.signal}):await e(d,void 0,{...r,signal:x.signal});if(r?.afterResponse&&g?.data&&(g.data=r?.afterResponse(g.data)),r?.logging&&console.log("After request",g),r?.onAfterResponse&&r?.onAfterResponse(g),l(c,{loading:false,response:g,isCancel:false}),y&&g.status){let w=E().add(oe,se).toISOString(),D={data:g,expired:w},N=await caches.open(H),ae=new Response(JSON.stringify(D));await N.put(F,ae);}}},[p,e,r,P]);re.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=re.useRef(null),{enabledRefetch:T,timeoutRefetch:A,timeoutUnitRefetch:v}=re.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??O?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??O?.timeout,x=typeof d=="number"?d:d?.value??60*5,g=typeof d=="object"?d.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:g}},[r?.refetchOnWindowFocus,O]);re.useEffect(()=>{if(!T)return;let u=E.duration(A,v).asMilliseconds(),d=()=>{let g=Date.now(),w=i.current;w!==null&&g-w>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",x);}},[T,A,v,f]);let R=re.useCallback(()=>{K.current?.abort(),K.current=null,l(c,{loading:false,isCancel:true});},[c,K]),L=re.useCallback(()=>{l(c,{loading:false,response:null});},[c]),$=re.useMemo(()=>({...C,loading:m,refresh:f,abort:R,clear:L,response:C,isCancel:P,clone:(u,d)=>Ve(e,u,d)}),[C,m,f,R,L,P,e]);return re.useEffect(()=>(Re(c,$),()=>{he(c);}),[$,c]),[C?.data,$]}async function ln(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var We=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(We||{}),ze=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(ze||{});var mn=(t,e,n)=>{let{format:o}=B();return e==="number"?Ge(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?Ye(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?Je(t,n):e==="string"?_e(t,n):t?.toString()??""};function Je(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function _e(t,e){if(!M(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=pe(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 Ge(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 l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let p=0;if(o==="auto"){let l=a.toString(),m=l.indexOf(".");m!==-1&&(p=l.length-m-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 Ye(t,{display:e,value:n}){if(!M(t))return t;let o=E(t,n);return o.isValid()?o.format(e):t}function Rn(t,{interval:e,lead:n}){let o=re.useRef(null);re.useEffect(()=>{o.current=t;},[t]),re.useEffect(()=>{let s=()=>o.current();if(n&&s(),e!==null){let a=setInterval(s,e);return ()=>clearInterval(a)}},[e]);}function Tn(t,e,n){let[o,s]=re.useState(false),a=(l,m)=>typeof t=="string"&&l===t||typeof t=="number"&&m===t,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:m,keyCode:P}=l,C=l.ctrlKey,S=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(m,P)&&(e==="ctrl"&&C||e==="alt"&&S||e==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let b=e.every(O=>O==="ctrl"?C:O==="alt"?S:O==="shift"?h:false);a(m,P)&&b&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(m,P)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:m})=>{a(l,m)&&s(false);};return re.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var On=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:P,passphrase:C})=>{let{encrypt:S,decrypt:h,passphrase:b}=J(),O=(y,f,i,T)=>{let A=T?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:P)&&R){let g=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?b:i.passphrase:C;try{R=h(R,g);}catch{try{R=h(R,b);}catch{}}}let u={...o({...y,data:R,isCancel:A,isUnauthorization:v},T),isCancel:A,isUnauthorization:v,httpCode:y?.status},d=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&p&&(!A||!d)&&p(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let g=i?.onUnauthorized||a;g&&g(u);}if(f)f(u);else return u},I=(y,f=()=>{})=>et__default.default.create({baseURL:`${t}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(f).catch(T=>f(T.response,T)),U=(y,f,i,T,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},L={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?e&&(L.Authorization=`Bearer ${e}`):R.token&&(L.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:m)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?b:A.passphrase:C;i=S(i,u);}return I({url:f,method:y,data:i,headers:L,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,d)=>O(u,T,R,d))};return {client:I,post:(y,f,i,T)=>U("POST",`${y}`,f,i,T),put:(y,f,i,T)=>U("PUT",`${y}`,f,i,T),patch:(y,f,i,T)=>U("PATCH",`${y}`,f,i,T),delete:(y,f,i)=>U("DELETE",`${y}`,null,f,i),get:(y,f,i)=>U("GET",`${y}`,null,f,i),upload:(y,f,i,T)=>{let A=new FormData;return Object.keys(f).forEach(v=>A.append(v,f[v])),U("POST",`${y}`,A,i,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})}}};function qn(t,e){let[n,o]=re.useState(false),[s,a]=re.useState(),[p,r]=re.useState(0),c=re.useRef(null);return re.useEffect(()=>{if(e?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async C=>{c.current?.abort();let S=new AbortController;c.current=S,o(true),e?.beforeRequest&&(C=e?.beforeRequest(C)),e?.logging&&console.log("Before request",C);let h={...e,signal:S.signal,onUploadProgress:O=>{let I=Math.round(O.loaded*100/(O.total||1));r(I);}},b=t.__isVoid?await t(void 0,h):await t(C,void 0,h);e?.logging&&console.log("After response",b),a(b),o(false),r(0),b.status&&e?.onSuccess&&e?.onSuccess(b),!b.status&&e?.onError&&e?.onError(b),e?.afterResponse&&e?.afterResponse(b);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function rt(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 ot=typeof window<"u"?window:null;function kn(t={}){let{getTrigger:e=rt,target:n=ot,disableHysteresis:o=false,threshold:s=100}=t,a=re__default.default.useRef(0),[p,r]=re__default.default.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:n}));return re__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 Bn=(t,e)=>{let n=e?.storeName||t.__path||t.name,o=e?.shallow??true,s=p=>{let r=p.states[n]??V,{loading:c,isCancel:l,response:m}=r,{refresh:P,abort:C,clear:S,clone:h}=be(n)||{},b=[m?.data,{...m,loading:c,isCancel:l,refresh:P,abort:C,clear:S,clone:h}];return e?.selector?e.selector(b):b};return o?j(shallow.useShallow(s)):j(s)};var $n=(t,e)=>{let n=o=>t(o);return n.displayName=e,n},jn=(t,e)=>{let n={};n.others=[];let o=s=>{re__default.default.Children.forEach(s,a=>{if(re__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 zn(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=re.useRef(r?r(e):e);return re.useSyncExternalStore(s,()=>{let l=r?r(e):e,m=c.current;return Object.is(m,l)||(c.current=l),c.current},()=>r?r(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function lt(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]=lt(s,[...e,o]):n[o]=s;}return n}exports.BgsCoreProvider=Fe;exports.DataTypeEnum=ze;exports.HttpMethod=We;exports.capitalizeWords=pe;exports.createApiHelper=On;exports.createElement=$n;exports.createStore=zn;exports.debounce=Rt;exports.decrypt=Y;exports.decryptString=ye;exports.defaultState=V;exports.diffJson=ct;exports.encrypt=G;exports.encryptString=me;exports.generateCacheKey=le;exports.generateUUID=pt;exports.getApiActions=be;exports.getFieldValue=k;exports.isArray=ft;exports.isNotEmpty=M;exports.jsonCopy=gt;exports.labelFormatter=ie;exports.mappingUndefinedtoNull=ut;exports.moment=E;exports.registerApi=Re;exports.renderChildren=dt;exports.sorting=mt;exports.splitElement=jn;exports.stableStringify=Ce;exports.summary=yt;exports.unregisterApi=he;exports.useApiLoad=Ve;exports.useApiLoadStore=j;exports.useApiSend=qn;exports.useApiStore=Bn;exports.useBgsCore=B;exports.useCrypto=J;exports.useDelay=ln;exports.useFormatted=mn;exports.useInterval=Rn;exports.useKeyPress=Tn;exports.useScrollTrigger=kn;exports.useStorage=ge;exports.wrapApi=lt;
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;
package/dist/index.d.cts CHANGED
@@ -134,8 +134,20 @@ declare enum HttpMethod {
134
134
  }
135
135
  type ApiMethod<DReq = any, DRes = DReq> = (data: DReq, callback?: CallbackHelper<DRes>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<DRes>>;
136
136
  type ApiMethodVoid<DRes = any> = <Res = DRes>(callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
137
+ type ApiMethodStream<DReq = any, DRes = DReq> = (data: DReq, callback: CallbackStream<DRes>, options?: Partial<OptionsHelper>) => Promise<void>;
137
138
  type ApiDefaultMethod<DReq = any, DRes = DReq> = <Req = DReq, Res = DRes>(url: string, data: Req, callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
138
139
  type ApiDefaultFetch<DRes = any> = <Res = DRes>(url: string, callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
140
+ type ApiDefaultStream<DReq = any, DRes = DReq> = <Req = DReq, Res = DRes>(method: HttpMethod, url: string, data: Req, callback: CallbackStream<Res>, options?: Partial<OptionsHelper>) => Promise<void>;
141
+ type CallbackStream<T = any> = (response: ApiResponseStream<T>) => void;
142
+ interface ApiResponseStream<T = any> {
143
+ status: boolean;
144
+ data: T;
145
+ message: string;
146
+ isCancel: boolean;
147
+ isUnauthorization: boolean;
148
+ httpCode: number;
149
+ isDone: boolean;
150
+ }
139
151
  type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata';
140
152
  type OptionsCallReturn<DReq = unknown, DRes = DReq> = Partial<ApiResponse<DRes>> & {
141
153
  /** Status loading saat request berlangsung */
@@ -319,6 +331,23 @@ type UseApiSendReturnType<Req, Res> = Req extends undefined ? [
319
331
  (values: Req) => void,
320
332
  ApiActionState<Res>
321
333
  ];
334
+ type ApiActionStateStream<Res> = Partial<ApiResponse<Res>> & {
335
+ /** Membatalkan request yang sedang berjalan */
336
+ abort: () => void;
337
+ /** Clear/reset response dan status terkait */
338
+ reset: () => void;
339
+ /** Status loading saat request berlangsung */
340
+ loading: boolean;
341
+ };
342
+ type UseApiStreamReturn<Req, Res> = Req extends undefined ? [
343
+ Res[],
344
+ (values?: Req) => void,
345
+ ApiActionStateStream<Res>
346
+ ] : [
347
+ Res[],
348
+ (values: Req) => void,
349
+ ApiActionStateStream<Res>
350
+ ];
322
351
  declare enum DataTypeEnum {
323
352
  number = "number",
324
353
  currency = "currency",
@@ -411,6 +440,7 @@ declare const createApiHelper: <DReq = any, DRes = any>({ url, token, beforeRequ
411
440
  delete: ApiDefaultFetch<DRes>;
412
441
  get: ApiDefaultFetch<DRes>;
413
442
  upload: ApiDefaultMethod<DReq, DRes>;
443
+ stream: ApiDefaultStream<DReq, DRes>;
414
444
  };
415
445
 
416
446
  declare function useApiSend<DReq, DRes>(api: ApiMethod<DReq, DRes>, props?: UseApiSendProps<DReq, DRes>): UseApiSendReturnType<DReq, DRes>;
@@ -535,6 +565,7 @@ declare function stableStringify(obj: any): string;
535
565
  declare function generateCacheKey(data?: any, cacheKey?: string | any[]): string;
536
566
  declare function capitalizeWords(value?: string): string;
537
567
  declare function debounce<T extends (...args: any[]) => void>(func: T, delayInSeconds?: number): (...args: Parameters<T>) => void;
568
+ declare const parseSSEChunk: (chunk: string) => any;
538
569
 
539
570
  type Listener = () => void;
540
571
  declare function createStore<T>(initialState: T): {
@@ -568,6 +599,8 @@ declare const useApiLoadStore: zustand.UseBoundStore<zustand.StoreApi<ApiLoadSta
568
599
 
569
600
  declare const moment: typeof dayjs;
570
601
 
602
+ declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
603
+
571
604
  type FormatType = {
572
605
  display: string;
573
606
  value: string;
@@ -599,4 +632,4 @@ interface BgsCoreProviderProps {
599
632
  }
600
633
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
601
634
 
602
- export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiLoadState, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, 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 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, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
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 };
package/dist/index.d.ts CHANGED
@@ -134,8 +134,20 @@ declare enum HttpMethod {
134
134
  }
135
135
  type ApiMethod<DReq = any, DRes = DReq> = (data: DReq, callback?: CallbackHelper<DRes>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<DRes>>;
136
136
  type ApiMethodVoid<DRes = any> = <Res = DRes>(callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
137
+ type ApiMethodStream<DReq = any, DRes = DReq> = (data: DReq, callback: CallbackStream<DRes>, options?: Partial<OptionsHelper>) => Promise<void>;
137
138
  type ApiDefaultMethod<DReq = any, DRes = DReq> = <Req = DReq, Res = DRes>(url: string, data: Req, callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
138
139
  type ApiDefaultFetch<DRes = any> = <Res = DRes>(url: string, callback?: CallbackHelper<Res>, options?: Partial<OptionsHelper>) => Promise<ApiResponse<Res>>;
140
+ type ApiDefaultStream<DReq = any, DRes = DReq> = <Req = DReq, Res = DRes>(method: HttpMethod, url: string, data: Req, callback: CallbackStream<Res>, options?: Partial<OptionsHelper>) => Promise<void>;
141
+ type CallbackStream<T = any> = (response: ApiResponseStream<T>) => void;
142
+ interface ApiResponseStream<T = any> {
143
+ status: boolean;
144
+ data: T;
145
+ message: string;
146
+ isCancel: boolean;
147
+ isUnauthorization: boolean;
148
+ httpCode: number;
149
+ isDone: boolean;
150
+ }
139
151
  type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata';
140
152
  type OptionsCallReturn<DReq = unknown, DRes = DReq> = Partial<ApiResponse<DRes>> & {
141
153
  /** Status loading saat request berlangsung */
@@ -319,6 +331,23 @@ type UseApiSendReturnType<Req, Res> = Req extends undefined ? [
319
331
  (values: Req) => void,
320
332
  ApiActionState<Res>
321
333
  ];
334
+ type ApiActionStateStream<Res> = Partial<ApiResponse<Res>> & {
335
+ /** Membatalkan request yang sedang berjalan */
336
+ abort: () => void;
337
+ /** Clear/reset response dan status terkait */
338
+ reset: () => void;
339
+ /** Status loading saat request berlangsung */
340
+ loading: boolean;
341
+ };
342
+ type UseApiStreamReturn<Req, Res> = Req extends undefined ? [
343
+ Res[],
344
+ (values?: Req) => void,
345
+ ApiActionStateStream<Res>
346
+ ] : [
347
+ Res[],
348
+ (values: Req) => void,
349
+ ApiActionStateStream<Res>
350
+ ];
322
351
  declare enum DataTypeEnum {
323
352
  number = "number",
324
353
  currency = "currency",
@@ -411,6 +440,7 @@ declare const createApiHelper: <DReq = any, DRes = any>({ url, token, beforeRequ
411
440
  delete: ApiDefaultFetch<DRes>;
412
441
  get: ApiDefaultFetch<DRes>;
413
442
  upload: ApiDefaultMethod<DReq, DRes>;
443
+ stream: ApiDefaultStream<DReq, DRes>;
414
444
  };
415
445
 
416
446
  declare function useApiSend<DReq, DRes>(api: ApiMethod<DReq, DRes>, props?: UseApiSendProps<DReq, DRes>): UseApiSendReturnType<DReq, DRes>;
@@ -535,6 +565,7 @@ declare function stableStringify(obj: any): string;
535
565
  declare function generateCacheKey(data?: any, cacheKey?: string | any[]): string;
536
566
  declare function capitalizeWords(value?: string): string;
537
567
  declare function debounce<T extends (...args: any[]) => void>(func: T, delayInSeconds?: number): (...args: Parameters<T>) => void;
568
+ declare const parseSSEChunk: (chunk: string) => any;
538
569
 
539
570
  type Listener = () => void;
540
571
  declare function createStore<T>(initialState: T): {
@@ -568,6 +599,8 @@ declare const useApiLoadStore: zustand.UseBoundStore<zustand.StoreApi<ApiLoadSta
568
599
 
569
600
  declare const moment: typeof dayjs;
570
601
 
602
+ declare function useApiStream<DReq, DRes>(api: ApiMethodStream<DReq, DRes>): UseApiStreamReturn<DReq, DRes>;
603
+
571
604
  type FormatType = {
572
605
  display: string;
573
606
  value: string;
@@ -599,4 +632,4 @@ interface BgsCoreProviderProps {
599
632
  }
600
633
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
601
634
 
602
- export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiLoadState, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, 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 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, registerApi, renderChildren, sorting, splitElement, stableStringify, summary, unregisterApi, useApiLoad, useApiLoadStore, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import re,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import q from'dayjs';import Ae from'dayjs/plugin/utc';import De from'dayjs/plugin/timezone';import Pe from'dayjs/plugin/duration';import Se from'dayjs/plugin/advancedFormat';import Oe from'dayjs/plugin/localizedFormat';import we from'dayjs/plugin/relativeTime';import Ue from'dayjs/plugin/isSameOrBefore';import qe from'dayjs/plugin/isSameOrAfter';import ve from'dayjs/plugin/weekOfYear';import Ne from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import fe from'crypto-js/aes';import de from'crypto-js/pbkdf2';import Me from'crypto-js/enc-utf8';import z from'crypto-js/enc-base64';import ue from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import et from'axios';function pt(){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 ct(t,e){try{return JSON.stringify(t)!==JSON.stringify(e)}catch{return false}}var ut=t=>(Object.keys(t).forEach(e=>{t[e]===void 0&&(t[e]=null);}),t);function ft(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 M(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 ie={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=ie.snackCase(ie.camelCase(t)),e&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function dt(t,e){return typeof t=="function"?t(e):t}var k=(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},mt={desc:(t,e)=>(t||(t=[]),t.sort((n,o)=>{if(e){let s=k(n,e)?k(n,e):"",a=k(o,e)?k(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=k(n,e)?k(n,e):"",a=k(o,e)?k(o,e):"";return s>a?1:-1}else return n>o?1:-1}))},yt=(t,e)=>{Array.isArray(t)||(t=[]);let n=[];return n=t.map(o=>Number(e?k(o,e)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function gt(t){try{return t&&JSON.parse(JSON.stringify(t))}catch{return t}}function Ce(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 le(t,e){return Ce([e??"undefined",t??"undefined"])}function pe(t=""){return typeof t!="string"&&(t=""),t.replace(/\b\w/g,e=>e.toUpperCase())}function Rt(t,e=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{t(...o);},e*1e3);}}q.extend(Ae);q.extend(De);q.extend(Pe);q.extend(Se);q.extend(Oe);q.extend(we);q.extend(Ue);q.extend(qe);q.extend(ve);q.extend(Ne);var E=q;var ce=createContext(void 0);function B(){let t=useContext(ce);return t||{}}var Fe=({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&&E.locale(s,a??{},p);}})();},[e.localeConfig]),jsx(ce.Provider,{value:n,children:t})};function G(t,e){let n=ue.random(16),o=ue.random(16),s=de(e,n,{keySize:256/32,iterations:1e3}),a=fe.encrypt(JSON.stringify(t),s,{iv:o}).toString();return {salt:n.toString(z),iv:o.toString(z),encrypted:a}}function Y(t,e){let{salt:n,iv:o,encrypted:s}=t,a=de(e,z.parse(n),{keySize:256/32,iterations:1e3}),r=fe.decrypt(s,a,{iv:z.parse(o)}).toString(Me);return JSON.parse(r)}function me(t,e){return JSON.stringify(G(t,e))}function ye(t,e){return Y(JSON.parse(t),e)}function J(){let{passphrase:t}=B();return {passphrase:t,encrypt(e,n){return G(e,n||t)},decrypt(e,n){return Y(e,n||t)},encryptString(e,n){return me(e,n||t)},decryptString(e,n){return ye(e,n||t)}}}var ge=()=>{let{encrypt:t,decrypt:e}=J(),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 l=localStorage.getItem(p);return l?e(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=m=>{if(m.key===p)if(m.newValue)try{c(e(JSON.parse(m.newValue)));}catch(P){console.error("Decrypt error from storage event",P);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,e]),r},a=useCallback(p=>{p?localStorage.removeItem(p):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};function $e(t,e){for(let n in e)if(e[n]!==t[n])return e}var V={loading:false,response:void 0,isCancel:false},j=create()(t=>({states:{},updateState:(e,n)=>t(o=>{let s=o.states[e]||V,a={...s,...n};return $e(s,a)?{states:{...o.states,[e]:a}}:o})}));var Z=new Map,Re=(t,e)=>{Z.set(t,e);},he=t=>{Z.delete(t);},be=t=>Z.get(t);function Ve(...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:l}=j(),[m,P,C]=j(useShallow(u=>{let d=u.states[c]??V;return [d.loading,d.isCancel,d.response]})),{storageKey:S,cache:h,clearPreviousData:b,refetchOnWindowFocus:O}=B(),I=ge(),U=useRef(void 0),K=useRef(null),{cacheName:H,cacheKey:F,timeout:oe,timeoutUnit:se,persistence:_,cacheEnabled:y}=useMemo(()=>{let u=S?I.get(S):void 0,d=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=le({...p,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),g=false;typeof h?.enabled=="boolean"&&(g=h.enabled);let w=false;typeof h?.persistence=="boolean"&&(w=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(w=r?.cache?.persistence??false);let D=60*5,N="s";return M(h?.timeout)&&(typeof h?.timeout=="number"?(D=h.timeout,N="s"):typeof h?.timeout=="object"&&(D=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?g=r.cache.enabled:g=true,typeof r.cache.timeout=="number"?(D=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(D=r.cache.timeout.value,N=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:x,timeout:D,timeoutUnit:N,persistence:w,cacheEnabled:g}},[r?.cache,p,S,h,a]);useEffect(()=>{let u=JSON.stringify(M(U.current)?U.current:""),d=JSON.stringify(M(p)?p:""),x=U.current===void 0;(u!==d||x)&&!r?.hold&&((r?.clearPreviousData??b)&&l(c,{response:null}),f(),U.current=p),r?.onChange&&r?.onChange(p,$);},[p,r?.clearPreviousData,b,r?.hold,...r?.trigger||[]]),useEffect(()=>{let u=async()=>{!_&&H&&F&&(await caches.open(H)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,H,F,c,K]);let f=useCallback(async u=>{let d=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(d=r?.beforeRequest(p)),y&&!u&&!P){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(H),w=await(await x.match(F))?.json();if(w){let{data:D,expired:N}=w;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&D?.data&&(D.data=r?.afterResponse(D.data)),r?.logging&&console.log("After request: Using Cache",D),r?.onAfterResponse&&r?.onAfterResponse(D),l(c,{loading:false,response:D});return}}}if(typeof e=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(c,{loading:true}),r?.logging&&console.log("Before request",p),r?.onBeforeRequest&&r?.onBeforeRequest(p);let g=s?await e(void 0,{...r,signal:x.signal}):await e(d,void 0,{...r,signal:x.signal});if(r?.afterResponse&&g?.data&&(g.data=r?.afterResponse(g.data)),r?.logging&&console.log("After request",g),r?.onAfterResponse&&r?.onAfterResponse(g),l(c,{loading:false,response:g,isCancel:false}),y&&g.status){let w=E().add(oe,se).toISOString(),D={data:g,expired:w},N=await caches.open(H),ae=new Response(JSON.stringify(D));await N.put(F,ae);}}},[p,e,r,P]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,d=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,d).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=useRef(null),{enabledRefetch:T,timeoutRefetch:A,timeoutUnitRefetch:v}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??O?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??O?.timeout,x=typeof d=="number"?d:d?.value??60*5,g=typeof d=="object"?d.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:g}},[r?.refetchOnWindowFocus,O]);useEffect(()=>{if(!T)return;let u=E.duration(A,v).asMilliseconds(),d=()=>{let g=Date.now(),w=i.current;w!==null&&g-w>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",d),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",x);}},[T,A,v,f]);let R=useCallback(()=>{K.current?.abort(),K.current=null,l(c,{loading:false,isCancel:true});},[c,K]),L=useCallback(()=>{l(c,{loading:false,response:null});},[c]),$=useMemo(()=>({...C,loading:m,refresh:f,abort:R,clear:L,response:C,isCancel:P,clone:(u,d)=>Ve(e,u,d)}),[C,m,f,R,L,P,e]);return useEffect(()=>(Re(c,$),()=>{he(c);}),[$,c]),[C?.data,$]}async function ln(t,e=()=>{}){let n=t*1e3;return new Promise(o=>{setInterval(()=>{e();},1e3);setTimeout(async()=>{await e(),o(true);},n);})}var We=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(We||{}),ze=(i=>(i.number="number",i.currency="currency",i.percent="percent",i.date="date",i.dateTime="dateTime",i.month="month",i.year="year",i.time="time",i.timestamp="timestamp",i.string="string",i.textarea="textarea",i.code="code",i.password="password",i.boolean="boolean",i.toggle="toggle",i.email="email",i.phone="phone",i.url="url",i.json="json",i.file="file",i.image="image",i.array="array",i.object="object",i.enum="enum",i.user="user",i.department="department",i.status="status",i))(ze||{});var mn=(t,e,n)=>{let{format:o}=B();return e==="number"?Ge(t,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===e)?Ye(t,{display:o[e]?.display,value:o[e]?.value,...n}):e==="boolean"?Je(t,n):e==="string"?_e(t,n):t?.toString()??""};function Je(t,e){let n=typeof t=="string"?t==="true":!!t,o=e?.trueLabel??"Yes",s=e?.falseLabel??"No";return n?o:s}function _e(t,e){if(!M(t))return "";let n=String(t);switch(e?.textTransform){case "capitalize":n=pe(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 Ge(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 l=Math.pow(10,o);a=Math[s](a*l)/l;}else a=Math[s](a);else if(typeof o=="number"){let l=Math.pow(10,o);a=Math.floor(a*l)/l;}let p=0;if(o==="auto"){let l=a.toString(),m=l.indexOf(".");m!==-1&&(p=l.length-m-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 Ye(t,{display:e,value:n}){if(!M(t))return t;let o=E(t,n);return o.isValid()?o.format(e):t}function Rn(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 Tn(t,e,n){let[o,s]=useState(false),a=(l,m)=>typeof t=="string"&&l===t||typeof t=="number"&&m===t,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:m,keyCode:P}=l,C=l.ctrlKey,S=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(e)if(typeof e=="string")a(m,P)&&(e==="ctrl"&&C||e==="alt"&&S||e==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let b=e.every(O=>O==="ctrl"?C:O==="alt"?S:O==="shift"?h:false);a(m,P)&&b&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(m,P)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:m})=>{a(l,m)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var On=({url:t,token:e,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:P,passphrase:C})=>{let{encrypt:S,decrypt:h,passphrase:b}=J(),O=(y,f,i,T)=>{let A=T?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:P)&&R){let g=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?b:i.passphrase:C;try{R=h(R,g);}catch{try{R=h(R,b);}catch{}}}let u={...o({...y,data:R,isCancel:A,isUnauthorization:v},T),isCancel:A,isUnauthorization:v,httpCode:y?.status},d=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&p&&(!A||!d)&&p(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let g=i?.onUnauthorized||a;g&&g(u);}if(f)f(u);else return u},I=(y,f=()=>{})=>et.create({baseURL:`${t}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(f).catch(T=>f(T.response,T)),U=(y,f,i,T,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},L={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?e&&(L.Authorization=`Bearer ${e}`):R.token&&(L.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:m)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?b:A.passphrase:C;i=S(i,u);}return I({url:f,method:y,data:i,headers:L,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,d)=>O(u,T,R,d))};return {client:I,post:(y,f,i,T)=>U("POST",`${y}`,f,i,T),put:(y,f,i,T)=>U("PUT",`${y}`,f,i,T),patch:(y,f,i,T)=>U("PATCH",`${y}`,f,i,T),delete:(y,f,i)=>U("DELETE",`${y}`,null,f,i),get:(y,f,i)=>U("GET",`${y}`,null,f,i),upload:(y,f,i,T)=>{let A=new FormData;return Object.keys(f).forEach(v=>A.append(v,f[v])),U("POST",`${y}`,A,i,{infoSuccess:false,...T,headers:{"Content-Type":"multipart/form-data",...T?.headers}})}}};function qn(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 S=new AbortController;c.current=S,o(true),e?.beforeRequest&&(C=e?.beforeRequest(C)),e?.logging&&console.log("Before request",C);let h={...e,signal:S.signal,onUploadProgress:O=>{let I=Math.round(O.loaded*100/(O.total||1));r(I);}},b=t.__isVoid?await t(void 0,h):await t(C,void 0,h);e?.logging&&console.log("After response",b),a(b),o(false),r(0),b.status&&e?.onSuccess&&e?.onSuccess(b),!b.status&&e?.onError&&e?.onError(b),e?.afterResponse&&e?.afterResponse(b);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function rt(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 ot=typeof window<"u"?window:null;function kn(t={}){let{getTrigger:e=rt,target:n=ot,disableHysteresis:o=false,threshold:s=100}=t,a=re.useRef(0),[p,r]=re.useState(()=>e(a,{disableHysteresis:o,threshold:s,target:n}));return re.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 Bn=(t,e)=>{let n=e?.storeName||t.__path||t.name,o=e?.shallow??true,s=p=>{let r=p.states[n]??V,{loading:c,isCancel:l,response:m}=r,{refresh:P,abort:C,clear:S,clone:h}=be(n)||{},b=[m?.data,{...m,loading:c,isCancel:l,refresh:P,abort:C,clear:S,clone:h}];return e?.selector?e.selector(b):b};return o?j(useShallow(s)):j(s)};var $n=(t,e)=>{let n=o=>t(o);return n.displayName=e,n},jn=(t,e)=>{let n={};n.others=[];let o=s=>{re.Children.forEach(s,a=>{if(re.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 zn(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 l=r?r(e):e,m=c.current;return Object.is(m,l)||(c.current=l),c.current},()=>r?r(e):e)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function lt(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]=lt(s,[...e,o]):n[o]=s;}return n}export{Fe as BgsCoreProvider,ze as DataTypeEnum,We as HttpMethod,pe as capitalizeWords,On as createApiHelper,$n as createElement,zn as createStore,Rt as debounce,Y as decrypt,ye as decryptString,V as defaultState,ct as diffJson,G as encrypt,me as encryptString,le as generateCacheKey,pt as generateUUID,be as getApiActions,k as getFieldValue,ft as isArray,M as isNotEmpty,gt as jsonCopy,ie as labelFormatter,ut as mappingUndefinedtoNull,E as moment,Re as registerApi,dt as renderChildren,mt as sorting,jn as splitElement,Ce as stableStringify,yt as summary,he as unregisterApi,Ve as useApiLoad,j as useApiLoadStore,qn as useApiSend,Bn as useApiStore,B as useBgsCore,J as useCrypto,ln as useDelay,mn as useFormatted,Rn as useInterval,Tn as useKeyPress,kn as useScrollTrigger,ge as useStorage,lt as wrapApi};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgscore/react-core",
3
- "version": "0.0.61",
3
+ "version": "0.0.63",
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",