@bgscore/react-core
Version:
A React utility library that provides advanced API hooks (fetch, mutation, caching). Built for scalable and flexible data handling in modern React applications.
3 lines (2 loc) • 27.6 kB
JavaScript
;var me=require('react'),M=require('dayjs'),Ke=require('dayjs/plugin/utc'),Le=require('dayjs/plugin/timezone'),Fe=require('dayjs/plugin/duration'),Ie=require('dayjs/plugin/advancedFormat'),He=require('dayjs/plugin/localizedFormat'),Be=require('dayjs/plugin/relativeTime'),je=require('dayjs/plugin/isSameOrBefore'),_e=require('dayjs/plugin/isSameOrAfter'),Ve=require('dayjs/plugin/weekOfYear'),We=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),Ce=require('crypto-js/aes'),Ae=require('crypto-js/pbkdf2'),rt=require('crypto-js/enc-utf8'),Z=require('crypto-js/enc-base64'),xe=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),gt=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var me__default=/*#__PURE__*/_interopDefault(me);var M__default=/*#__PURE__*/_interopDefault(M);var Ke__default=/*#__PURE__*/_interopDefault(Ke);var Le__default=/*#__PURE__*/_interopDefault(Le);var Fe__default=/*#__PURE__*/_interopDefault(Fe);var Ie__default=/*#__PURE__*/_interopDefault(Ie);var He__default=/*#__PURE__*/_interopDefault(He);var Be__default=/*#__PURE__*/_interopDefault(Be);var je__default=/*#__PURE__*/_interopDefault(je);var _e__default=/*#__PURE__*/_interopDefault(_e);var Ve__default=/*#__PURE__*/_interopDefault(Ve);var We__default=/*#__PURE__*/_interopDefault(We);var Ce__default=/*#__PURE__*/_interopDefault(Ce);var Ae__default=/*#__PURE__*/_interopDefault(Ae);var rt__default=/*#__PURE__*/_interopDefault(rt);var Z__default=/*#__PURE__*/_interopDefault(Z);var xe__default=/*#__PURE__*/_interopDefault(xe);var gt__default=/*#__PURE__*/_interopDefault(gt);M__default.default.extend(Ke__default.default);M__default.default.extend(Le__default.default);M__default.default.extend(Fe__default.default);M__default.default.extend(Ie__default.default);M__default.default.extend(He__default.default);M__default.default.extend(Be__default.default);M__default.default.extend(je__default.default);M__default.default.extend(_e__default.default);M__default.default.extend(Ve__default.default);M__default.default.extend(We__default.default);var q=M__default.default;function Wt(){let e=()=>Math.random()*16%16|0;return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>(t==="x"?e():e()&3|8).toString(16))}function Yt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var zt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Jt(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function $(e){return !(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)}var ye={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,o)=>o.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=ye.snackCase(ye.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Gt(e,t){return typeof e=="function"?e(t):e}var v=(e,t,r)=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),o=e;for(let a of n){if(o==null)return r;o=o[a];}return o===void 0?r:o},Xt={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=v(r,t)?v(r,t):"",a=v(n,t)?v(r,t):"";return o<a?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let o=v(r,t)?v(r,t):"",a=v(n,t)?v(n,t):"";return o>a?1:-1}else return r>n?1:-1}))},Zt=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?v(n,t)||0:n||0)),r.reduce((n,o)=>(n||0)+(o||0),0)||0};function Qt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ye(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((o,a)=>(o[a]=n[a],o),{})):n})??""}function ge(e,t){return Ye([t??"undefined",e??"undefined"])}function be(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function er(e,t=0){let r,n=function(...o){clearTimeout(r),r=setTimeout(()=>{e(...o);},t*1e3);};return n.cancel=()=>{clearTimeout(r);},n}var he=e=>{let t=e.match(/^data:\s*(.*)/s);if(t)try{return JSON.parse(t[1])}catch{return null}return null};function se(e,t){let r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e===t||e==="-"||e===`-${t}`||new RegExp(`^-?\\d+${r}$`).test(e)||new RegExp(`^-?${r}\\d*$`).test(e)}function ze(e,t=false,r="."){if(typeof e=="number")return !Number.isNaN(e);if(typeof e=="string"&&e.trim()!==""){let n=e.trim(),o=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`^-?(\\d+(\\${o}\\d+)?|\\${o}\\d+)$`).test(n)||t&&se(n,r))return true}return false}function De(e="",t=false,r="."){if(!ze(e,!t,r))return null;let n=r==="."?e.trim():e.trim().replace(r,"."),o=Number(n);return Number.isNaN(o)?null:o}var Je=new Set(["accessKey","className","contentEditable","contextMenu","dir","draggable","hidden","id","lang","spellCheck","style","tabIndex","title","translate","role","onClick","onFocus","onBlur","onKeyDown","onKeyUp","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onTouchStart","onTouchEnd","onChange","onInput","children"]);function tr(e){let t={};for(let r in e)Je.has(r)&&(t[r]=e[r]);return t}function rr(e,t=2){return e?e.split(" ").map(r=>r.charAt(0).toUpperCase()).slice(0,t).join(""):""}function nr(e=[]){let t=e.filter(Boolean);if(t.length===0)return ["",""];let r=t.map(q).sort((a,i)=>a.diff(i)),n=r[0].format("YYYY-MM-DD"),o=r.at(-1).format("YYYY-MM-DD");return [n,o]}function or(e,t){let r=q(e),n=q(t),o=r.month()===n.month(),a=r.year()===n.year();return a&&o?`${r.format("DD")} - ${n.format("DD")} ${r.format("MMM")} ${r.format("YYYY")}`:a?`${r.format("DD MMM")} - ${n.format("DD MMM")} ${r.format("YYYY")}`:`${r.format("DD MMM YYYY")} - ${n.format("DD MMM YYYY")}`}function sr(e,t){if(!e?.trim()||!t?.trim())return "";if(e===t)return "0";let r=q(e,"HH:mm",true),n=q(t,"HH:mm",true);if(!r.isValid()||!n.isValid())return "";let o=n.diff(r,"minutes");return o<=0&&(o+=24*60),o.toString()}var ar=(e=[],t="label",r="value",n)=>Array.isArray(e)?e.map((o,a)=>{if(typeof o!="object"){let i=typeof t=="function"?t(o,a):o,s=typeof r=="function"?r(o,a):o;return {label:i,value:s,index:a,rowData:o}}else {let i=typeof t=="function"?t(o,a):v(o,t,""),s=typeof r=="function"?r(o,a):v(o,r,"");return {label:i,value:typeof s=="boolean"?s:s||"",index:a,...n&&{[n]:v(o,n)},rowData:o}}}):[];function Ge(e,t=""){let r=[];for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],a=t?`${t}[${encodeURIComponent(n)}]`:encodeURIComponent(n);if(!$(o))continue;Array.isArray(o)?o.forEach(i=>{r.push(`${a}=${encodeURIComponent(i)}`);}):typeof o=="object"&&o!==null?r.push(Ge(o,a)):r.push(`${a}=${encodeURIComponent(o)}`);}return r.join("&")}function Re(e){if(e==="null")return null;if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=Re(e[t]);else if(e&&typeof e=="object")for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=Re(e[t]));return e}var Te=me.createContext(void 0);function L(){let e=me.useContext(Te);return e||{}}var et=({children:e,value:t})=>{let r={...t};return me.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:o,object:a,isLocal:i}=t.localeConfig;if(typeof o=="string")try{await import(`dayjs/locale/${o}`);}catch{console.warn(`Locale "${o}" not found, fallback to default`);}o&&q.locale(o,a??{},i);}})();},[t.localeConfig]),jsxRuntime.jsx(Te.Provider,{value:r,children:e})};function ae(e,t){let r=xe__default.default.random(16),n=xe__default.default.random(16),o=Ae__default.default(t,r,{keySize:256/32,iterations:1e3}),a=Ce__default.default.encrypt(JSON.stringify(e),o,{iv:n}).toString();return {salt:r.toString(Z__default.default),iv:n.toString(Z__default.default),encrypted:a}}function ie(e,t){let{salt:r,iv:n,encrypted:o}=e,a=Ae__default.default(t,Z__default.default.parse(r),{keySize:256/32,iterations:1e3}),s=Ce__default.default.decrypt(o,a,{iv:Z__default.default.parse(n)}).toString(rt__default.default);return JSON.parse(s)}function Se(e,t){return JSON.stringify(ae(e,t))}function Pe(e,t){return ie(JSON.parse(e),t)}function Q(){let{passphrase:e}=L();return {passphrase:e,encrypt(t,r){return ae(t,r||e)},decrypt(t,r){return ie(t,r||e)},encryptString(t,r){return Se(t,r||e)},decryptString(t,r){return Pe(t,r||e)}}}var Oe=()=>{let{encrypt:e,decrypt:t}=Q(),r=me.useCallback((i,s)=>{try{let p=e(s);localStorage.setItem(i,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),n=me.useCallback(i=>{try{let s=localStorage.getItem(i);return s?t(JSON.parse(s)):null}catch(s){return console.error("Failed to get from storage:",s),null}},[t]),o=i=>{let[s,p]=me.useState(()=>{try{let d=localStorage.getItem(i);return d?t(JSON.parse(d)):null}catch(d){return console.error("Failed to parse localStorage value",d),null}});return me.useEffect(()=>{let d=y=>{if(y.key===i)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(D){console.error("Decrypt error from storage event",D);}else p(null);};return window.addEventListener("storage",d),()=>window.removeEventListener("storage",d)},[i,t]),s},a=me.useCallback(i=>{i?localStorage.removeItem(i):localStorage.clear();},[]);return {save:r,get:n,clear:a,useWatchStorage:o}};function at(e,t){for(let r in t){let n=e[r],o=t[r];if(r==="response"){let a=JSON.stringify(n),i=JSON.stringify(o);if(a!==i)return false}else if(n!==o)return false}return true}var z={loading:false,response:void 0,isCancel:false},J=zustand.create((e,t)=>({states:{},updateState:(r,n)=>{let o=t().states[r]??z,a={...o,...n};at(o,a)||e(i=>({states:{...i.states,[r]:a}}));}}));var pe=new Map,we=(e,t)=>{pe.set(e,t);},qe=e=>{pe.delete(e);},Ue=e=>pe.get(e);function lt(...e){let[t,r,n]=e,o=t.__isVoid,a=t.__path||t.name,i=o?void 0:r,s=o?r:n,p=s?.storeName||`${a}`,d=s?.mergeStrategy??"replace",[y,D,R,x]=J(shallow.useShallow(b=>{let f=b.states[p]??z;return [f.loading,f.isCancel,f.response,b.updateState]})),{storageKey:O,cache:g,clearPreviousData:E,refetchOnWindowFocus:F}=L(),I=Oe(),V=me.useRef(void 0),H=me.useRef(null),{cacheName:j,cacheKey:B,timeout:ee,timeoutUnit:te,persistence:re,cacheEnabled:h}=me.useMemo(()=>{let b=O?I.get(O):void 0,f=typeof s?.cache=="object"?s?.cache?.cacheName??a:a,A=ge({...i,session:b},typeof s?.cache=="object"?s?.cache?.cacheKey:void 0),c=false;typeof g?.enabled=="boolean"&&(c=g.enabled);let S=false;typeof g?.persistence=="boolean"&&(S=g?.persistence),typeof s?.cache=="object"&&typeof s?.cache?.persistence=="boolean"&&(S=s?.cache?.persistence??false);let P=60*5,N="s";return $(g?.timeout)&&(typeof g?.timeout=="number"?(P=g.timeout,N="s"):typeof g?.timeout=="object"&&(P=g?.timeout.value,N=g?.timeout.unit)),$(s?.cache)&&(typeof s?.cache!="boolean"?(typeof s?.cache?.enabled=="boolean"?c=s.cache.enabled:c=true,typeof s?.cache?.timeout=="number"?(P=s.cache.timeout,N="s"):typeof s?.cache?.timeout=="object"&&(P=s.cache.timeout.value,N=s.cache.timeout.unit)):c=s.cache),{cacheName:f,cacheKey:A,timeout:P,timeoutUnit:N,persistence:S,cacheEnabled:c}},[s?.cache,i,O,g,a]);me.useEffect(()=>{let b=JSON.stringify($(V.current)?V.current:""),f=JSON.stringify($(i)?i:""),A=V.current===void 0;(b!==f||A)&&!s?.hold&&((s?.clearPreviousData??E)&&x(p,{response:null}),l(),V.current=i),s?.onChange&&s?.onChange(i,U);},[i,s?.clearPreviousData,E,s?.hold,...s?.trigger||[]]),me.useEffect(()=>{let b=async()=>{!re&&j&&B&&(await caches.open(j)).delete(B);};return window.addEventListener("beforeunload",b),()=>{window.removeEventListener("beforeunload",b),H.current?.abort();}},[re,j,B,p,H]);let l=me.useCallback(async b=>{let f=i;if(s?.hold&&s?.logging&&console.log("Hold active"),s?.beforeRequest&&(f=s?.beforeRequest(i)),h&&!b&&!D){s?.onBeforeRequest&&s?.onBeforeRequest(i);let A=await caches.open(j),S=await(await A.match(B))?.json();if(S){let{data:P,expired:N}=S;if(q().isAfter(N))await A.delete(B);else {s?.afterResponse&&P?.data&&(P.data=s?.afterResponse(P.data,f)),s?.logging&&console.log("After request: Using Cache",P),P?.status&&s?.onSuccess?.(P,f),s?.onAfterResponse?.(P,f),x(p,{loading:false,response:P});return}}}if(typeof t=="function"){H.current?.abort();let A=new AbortController;H.current=A,x(p,{loading:true}),s?.logging&&console.log("Before request",i),s?.onBeforeRequest&&s?.onBeforeRequest(i);let c=o?await t(void 0,{...s,signal:A.signal}):await t(f,void 0,{...s,signal:A.signal});if(c.__rawData=c.data,d==="append"&&$(R.__rawData)&&$(c?.data)){if(Array.isArray(R.__rawData)&&Array.isArray(c?.data)){let S=[...R?.__rawData??[],...c.data??[]];c.data=S,c.__rawData=S;}else if(typeof R.__rawData=="object"&&typeof c.data=="object"){let S={...R.__rawData,...c.data};c.data=S,c.__rawData=S;}}if(s?.afterResponse&&c?.data&&(c.data=s?.afterResponse(c.data,f)),s?.logging&&console.log("After request",c),c.status&&s?.onSuccess?.(c,f),c.status||s?.onError?.(c,f),s?.onAfterResponse?.(c,f),x(p,{loading:false,response:c,isCancel:false}),h&&c.status){let S=q().add(ee,te).toISOString(),P={data:c,expired:S},N=await caches.open(j),W=new Response(JSON.stringify(P));await N.put(B,W);}}},[i,t,s,D,j,B,ee,te,h,R]);me.useEffect(()=>{if(s?.refreshInterval){let b=typeof s.refreshInterval=="number"?s.refreshInterval:s.refreshInterval.value,f=typeof s.refreshInterval=="number"?"s":s.refreshInterval.unit,A=setInterval(()=>{l();},q.duration(b,f).asMilliseconds());return ()=>clearInterval(A)}return ()=>{}},[s?.refreshInterval,l]);let u=me.useRef(null),{enabledRefetch:C,timeoutRefetch:T,timeoutUnitRefetch:w}=me.useMemo(()=>{let b=s?.refetchOnWindowFocus?.enabled??F?.enabled??false,f=s?.refetchOnWindowFocus?.timeout??F?.timeout,A=typeof f=="number"?f:f?.value??60*5,c=typeof f=="object"?f.unit:"s";return {enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:c}},[s?.refetchOnWindowFocus,F]);me.useEffect(()=>{if(!C)return;let b=q.duration(T,w).asMilliseconds(),f=()=>{let c=Date.now(),S=u.current;S!==null&&c-S>=b&&l(),u.current=null;},A=()=>{u.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",A),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",A);}},[C,T,w,l]);let m=me.useCallback(()=>{H.current?.abort(),H.current=null,x(p,{loading:false,isCancel:true});},[p,H]),K=me.useCallback(()=>{x(p,{loading:false,response:null});},[p]),U=me.useMemo(()=>({...R,loading:y,refresh:l,abort:m,clear:K,response:R,isCancel:D,clone:(b,f)=>lt(t,b,{storeName:`${a}-clone`,...f})}),[R,y,l,m,K,D,t]);return me.useEffect(()=>(we(p,U),()=>{qe(p);}),[U,p]),[R?.data,U]}async function Lr(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var pt=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(pt||{}),ct=(l=>(l.number="number",l.currency="currency",l.percent="percent",l.date="date",l.dateTime="dateTime",l.month="month",l.year="year",l.time="time",l.timestamp="timestamp",l.string="string",l.textarea="textarea",l.code="code",l.password="password",l.boolean="boolean",l.toggle="toggle",l.email="email",l.phone="phone",l.url="url",l.json="json",l.file="file",l.image="image",l.array="array",l.object="object",l.enum="enum",l.user="user",l.department="department",l.status="status",l))(ct||{});var _r=()=>{let{format:e}=L();return (t,r,n)=>{try{return r==="number"?Ne(t,{thouSep:e.number.thouSep,decDigits:e.number.decDigits,decSep:e.number.decSep,...n}):["date","dateTime","month","year","time"].some(o=>o===r)?dt(t,{display:e[r]?.display,value:e[r]?.value,...n}):r==="boolean"?ut(t,n):r==="string"?ft(t,n):t?.toString()}catch{return}}};function ut(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",o=t?.falseLabel??"No";return r?n:o}function ft(e,t){if(!$(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=be(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}Ne(10,{thouSep:",",decSep:".",decDigits:2});function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:o,dirty:a}){if(a){let D=String(e??"").trim().trim();if(se(D,r))return D}if(e==null||isNaN(Number(e)))return "";let i=typeof e=="string"?parseFloat(e):e;if(o)if(typeof n=="number"){let y=Math.pow(10,n);i=Math[o](i*y)/y;}else i=Math[o](i);else if(typeof n=="number"){let y=Math.pow(10,n);i=Math.trunc(i*y)/y;}let s=0;if(n==="auto"){let y=i.toString(),D=y.indexOf(".");D!==-1&&(s=y.length-D-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?s:n||0,maximumFractionDigits:n==="auto"?s:n||0,minimumIntegerDigits:1};return i.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function dt(e,{display:t,value:r}){if(!$(e))return e;let n=q(e,r);return n.isValid()?n.format(t):e}function Yr(e,{interval:t,lead:r}){let n=me.useRef(null);me.useEffect(()=>{n.current=e;},[e]),me.useEffect(()=>{let o=()=>n.current();if(r&&o(),t!==null){let a=setInterval(o,t);return ()=>clearInterval(a)}},[t]);}function Gr(e,t,r){let[n,o]=me.useState(false),a=(d,y)=>typeof e=="string"&&d===e||typeof e=="number"&&y===e,i=d=>d!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(d.tagName)||d.hasAttribute("contentEditable")),s=d=>{let{key:y,keyCode:D}=d,R=d.ctrlKey,x=d.altKey,O=d.shiftKey;if(!i(document.activeElement))if(t)if(typeof t=="string")a(y,D)&&(t==="ctrl"&&R||t==="alt"&&x||t==="shift"&&O)&&(d.preventDefault(),r&&d.stopPropagation(),o(!n));else {let g=t.every(E=>E==="ctrl"?R:E==="alt"?x:E==="shift"?O:false);a(y,D)&&g&&(d.preventDefault(),r&&d.stopPropagation(),o(!n));}else a(y,D)&&(d.preventDefault(),r&&d.stopPropagation(),o(!n));},p=({key:d,keyCode:y})=>{a(d,y)&&o(false);};return me.useEffect(()=>(window.addEventListener("keydown",s),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",s),window.removeEventListener("keyup",p);}),[]),n}var on=({url:e,token:t,beforeRequest:r,onCallback:n,headers:o,onUnauthorized:a,handleToast:i,handleAuthorization:s,disabledToastWhenCancel:p,withCredentials:d,encryptRequest:y,encryptResponse:D,passphrase:R})=>{let{encrypt:x,decrypt:O,passphrase:g}=Q(),E=(h,l,u,C)=>{let T=C?.code==="ERR_CANCELED",w=h?.status===401,m=h?.data;if((typeof u?.encryptResponse=="boolean"?u?.encryptResponse:D)&&m){let c=u?.passphrase?typeof u.passphrase=="boolean"&&u.passphrase?g:u.passphrase:R;try{m=O(m,c);}catch{try{m=O(m,g);}catch{}}}let b={...n({...h,data:m,isCancel:T,isUnauthorization:w},C),isCancel:T,isUnauthorization:w,httpCode:h?.status},f=typeof u?.disabledToastWhenCancel=="boolean"?u?.disabledToastWhenCancel:p,A=s?s(b,u):!w;if((u?.infoSuccess&&b.status||u?.infoError&&!b.status)&&i&&(!T||!f)&&i(b),!A&&(!T||!u?.disabledHandleUnauthorized)){let c=u?.onUnauthorized||a;c&&c(b);}if(l)l(b);else return b},F=(h,l=()=>{})=>gt__default.default.create({baseURL:`${e}`,withCredentials:typeof h.withCredentials=="boolean"?h.withCredentials:d})(h).then(l).catch(C=>l(C.response,C)),I=(h,l,u,C,T)=>{let m={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...T},K={"Content-Type":"application/json",...o,...m.headers};if(m.token&&(typeof m.token=="boolean"?t&&(K.Authorization=`Bearer ${t}`):m.token&&(K.Authorization=`Bearer ${m.token}`)),r&&(u=r(u)),(typeof m?.encryptRequest=="boolean"?m?.encryptRequest:y)&&u){let b=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?g:T.passphrase:R;u=x(u,b);}return F({url:l,method:h,data:u,headers:K,responseType:m.responseType,signal:m.signal,withCredentials:m.withCredentials,onUploadProgress:b=>{m?.onUploadProgress&&m?.onUploadProgress(b);}},(b,f)=>E(b,C,m,f))};return {client:F,post:(h,l,u,C)=>I("POST",`${h}`,l,u,C),put:(h,l,u,C)=>I("PUT",`${h}`,l,u,C),patch:(h,l,u,C)=>I("PATCH",`${h}`,l,u,C),delete:(h,l,u)=>I("DELETE",`${h}`,null,l,u),get:(h,l,u)=>I("GET",`${h}`,null,l,u),upload:(h,l,u,C)=>{let T=new FormData;return Object.keys(l).forEach(w=>T.append(w,l[w])),I("POST",`${h}`,T,u,{infoSuccess:false,...C,headers:{"Content-Type":"multipart/form-data",...C?.headers}})},stream:async(h,l,u,C,T)=>{try{let m={...{token:!0,responseType:"json",infoError:!0},...T},K={"Content-Type":"application/json",...o,...m.headers};if(m.token){let k=typeof m.token=="boolean"?t:m.token;k&&(K.Authorization=`Bearer ${k}`);}let U=u;if(r&&(U=r(U)),(typeof m.encryptRequest=="boolean"?m.encryptRequest:y)&&U){let k=m.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?g:m.passphrase:R;U=x(U,k);}let f=await fetch(`${e}${l}`,{method:h,headers:K,credentials:m.withCredentials?"include":"same-origin",signal:m.signal,body:JSON.stringify(U)}),A=f?.status,c=A===401;if(!f.ok){let k=f?.statusText||"Error";try{let X=f.headers.get("content-type")||"",_=await f.clone().text();if(_)if(X.includes("application/json"))try{let oe=JSON.parse(_);if((typeof T?.encryptResponse=="boolean"?T?.encryptResponse:D)&&u){let $e=T?.passphrase?typeof T.passphrase=="boolean"&&T.passphrase?g:T.passphrase:R;try{u=O(oe,$e);}catch{try{u=O(oe,g);}catch{}}}k=oe?.message||k;}catch{k=_;}else k=_;}catch{}let ne=typeof T?.disabledToastWhenCancel=="boolean"?T?.disabledToastWhenCancel:p,Y={status:!1,data:void 0,message:k,isCancel:!1,isUnauthorization:c,httpCode:A,isDone:!0};T?.infoError&&i&&!ne&&i(Y),C(Y);return}let S=f.body.getReader(),P=new TextDecoder("utf-8"),N="",W=!1;for(;!W;){let{done:k,value:ne}=await S.read();W=k,N+=P.decode(ne,{stream:!0});let Y=N.split(`
`);N=Y.pop();for(let X of Y)if(X.startsWith("data:"))try{let _=he(X);C({status:!0,data:_,message:"",isCancel:!1,isUnauthorization:c,httpCode:A,isDone:!1});}catch{}}C({status:!0,data:void 0,message:"",isCancel:!1,isUnauthorization:c,httpCode:A,isDone:!0});}catch(w){let m=w?.name==="AbortError";C({status:false,data:void 0,message:w instanceof Error?w.message:"Internal Server Error",isCancel:m,isUnauthorization:false,httpCode:400,isDone:true});}}}};function ln(e,t){let[r,n]=me.useState(false),[o,a]=me.useState(),[i,s]=me.useState(0),p=me.useRef(null);return me.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async R=>{p.current?.abort();let x=new AbortController;p.current=x,n(true),t?.beforeRequest&&(R=t?.beforeRequest(R)),t?.logging&&console.log("Before request",R),t?.onBeforeRequest&&t?.onBeforeRequest(R);let O={...t,signal:x.signal,onUploadProgress:E=>{let F=Math.round(E.loaded*100/(E.total||1));s(F);}},g=e.__isVoid?await e(void 0,O):await e(R,void 0,O);t?.logging&&console.log("After response",g),a(g),n(false),s(0),t?.afterResponse&&g?.data&&(g.data=t?.afterResponse(g.data,R)),g.status&&t?.onSuccess&&t?.onSuccess(g,R),!g.status&&t?.onError&&t?.onError(g,R),t?.onAfterResponse?.(g,R);},{...o,loading:r,abort:()=>{p.current?.abort(),p.current=null,n(false),s(0);},progress:i,reset:()=>{n(false),s(0),a(null);}}]}function Dt(e,t){let{disableHysteresis:r=false,threshold:n=100,target:o}=t,a=e.current;return o&&(typeof o.pageYOffset=="number"?e.current=o.pageYOffset:o.scrollTop!==void 0&&(e.current=o.scrollTop)),!r&&a!==void 0&&e.current<a?false:(e.current||0)>n}var Tt=typeof window<"u"?window:null;function un(e={}){let{getTrigger:t=Dt,target:r=Tt,disableHysteresis:n=false,threshold:o=100}=e,a=me__default.default.useRef(0),[i,s]=me__default.default.useState(()=>t(a,{disableHysteresis:n,threshold:o,target:r}));return me__default.default.useEffect(()=>{let p=()=>{s(t(a,{disableHysteresis:n,threshold:o,target:r}));};if(p(),r)return r.addEventListener("scroll",p,{passive:true}),()=>{r.removeEventListener("scroll",p);}},[r,t,n,o]),i}function mn(e,t){let r,n;typeof t=="number"?(r=t,n=void 0):(r=t?.delay??500,n=t?.onDebounce);let[o,a]=me.useState(e);return me.useEffect(()=>{let i=setTimeout(()=>{a(e),n&&n(e);},r);return ()=>clearTimeout(i)},[e,r,n]),o}var Tn=(e,t)=>{let r=e.__path||e.name,n=t?.storeName||`${r}`,o=t?.shallow??true,{refresh:a,abort:i,clear:s,clone:p}=Ue(n)||{},d=O=>{let g=O.states[n]??z;return {loading:g.loading,isCancel:g.isCancel,response:g.response}},{loading:y,isCancel:D,response:R}=o?J(shallow.useShallow(d)):J(d),x=me.useMemo(()=>[R?.data,{...R,loading:y,isCancel:D,refresh:a,abort:i,clear:s,clone:p}],[R,y,D,a,i,s,p]);return t?.selector?t.selector(x):x};var An=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},Sn=(e,t)=>{let r={};r.others=[];let n=o=>{me__default.default.Children.forEach(o,a=>{if(me__default.default.isValidElement(a)){let i=a.type.displayName;if(t.includes(i))r[i]=a;else {let s=a;s.props?.children?n(s.props.children):r.others.push(a);}}else r.others.push(a);});};return n(e),r};function qn(){let{format:e}=L();return (t="",r=false)=>De(t,r,e.number.decSep)}function kn(e){let t=e,r=new Set;function n(){return t}function o(s){return r.add(s),()=>r.delete(s)}function a(s){typeof s=="function"?t=s(t):t=s,r.forEach(p=>p());}function i(s){let p=me.useRef(s?s(t):t);return me.useSyncExternalStore(o,()=>{let d=s?s(t):t,y=p.current;return Object.is(y,d)||(p.current=d),p.current},()=>s?s(t):t)}return {getSnapshot:n,subscribe:o,setState:a,useStore:i}}function wt(e,t=[]){let r={};for(let n in e){let o=e[n];if(typeof o=="function"){let a=o.bind(null);a.__path=[...t,n].join("."),a.__isVoid=o.length===2,r[n]=a;}else typeof o=="object"&&o!==null?r[n]=wt(o,[...t,n]):r[n]=o;}return r}function $n(e,t){let[r,n]=me.useState(false),[o,a]=me.useState([]),i=me.useRef([]),s=me.useRef(null);me.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{s.current?.abort();}},[]);let p=async D=>{s.current?.abort();let R=new AbortController;s.current=R,n(true),a([]),i.current=[],e(D,x=>{x.isDone||(i.current.push(x),a([...i.current])),(x.isDone||!x.status)&&(n(false),t?.onDone&&t?.onDone([...i.current])),x.status?t?.onStream&&t?.onStream(x):t?.onError&&t?.onError(x);},{signal:R.signal});},d=()=>{s.current?.abort(),s.current=null,n(false);},y=()=>{n(false),a([]),i.current=[];};return [o.map(D=>D.data),p,{loading:r,abort:d,reset:y,response:o}]}exports.BgsCoreProvider=et;exports.DataTypeEnum=ct;exports.HttpMethod=pt;exports.capitalizeWords=be;exports.createApiHelper=on;exports.createElement=An;exports.createStore=kn;exports.debounce=er;exports.decrypt=ie;exports.decryptString=Pe;exports.defaultState=z;exports.diffJson=Yt;exports.encrypt=ae;exports.encryptString=Se;exports.filterDOMPropsLite=tr;exports.generateCacheKey=ge;exports.generateUUID=Wt;exports.getApiActions=Ue;exports.getDateRangeLabelFromSorted=or;exports.getFieldValue=v;exports.getInitials=rr;exports.getMinMaxDate=nr;exports.getTotalMinutes=sr;exports.isArray=Jt;exports.isDirtyRaw=se;exports.isNotEmpty=$;exports.isValidNumber=ze;exports.jsonCopy=Qt;exports.labelFormatter=ye;exports.mappingData=ar;exports.mappingUndefinedtoNull=zt;exports.moment=q;exports.objectToQueryString=Ge;exports.parseSSEChunk=he;exports.parseStringToNumber=De;exports.registerApi=we;exports.renderChildren=Gt;exports.replaceNullStrings=Re;exports.safeUpdate=at;exports.sorting=Xt;exports.splitElement=Sn;exports.stableStringify=Ye;exports.summary=Zt;exports.unregisterApi=qe;exports.useApiLoad=lt;exports.useApiLoadStore=J;exports.useApiSend=ln;exports.useApiStore=Tn;exports.useApiStream=$n;exports.useBgsCore=L;exports.useCrypto=Q;exports.useDebounce=mn;exports.useDelay=Lr;exports.useFormatted=_r;exports.useInterval=Yr;exports.useKeyPress=Gr;exports.useParseStringToNumber=qn;exports.useScrollTrigger=un;exports.useStorage=Oe;exports.wrapApi=wt;