@bgscore/react-core 0.0.43 → 0.0.44

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 ne=require('react'),q=require('dayjs'),De=require('dayjs/plugin/utc'),Ae=require('dayjs/plugin/timezone'),Pe=require('dayjs/plugin/duration'),Se=require('dayjs/plugin/advancedFormat'),Oe=require('dayjs/plugin/localizedFormat'),we=require('dayjs/plugin/relativeTime'),qe=require('dayjs/plugin/isSameOrBefore'),Ue=require('dayjs/plugin/isSameOrAfter'),ve=require('dayjs/plugin/weekOfYear'),Ne=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),ue=require('crypto-js/aes'),fe=require('crypto-js/pbkdf2'),Me=require('crypto-js/enc-utf8'),W=require('crypto-js/enc-base64'),ce=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),Ze=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ne__default=/*#__PURE__*/_interopDefault(ne);var q__default=/*#__PURE__*/_interopDefault(q);var De__default=/*#__PURE__*/_interopDefault(De);var Ae__default=/*#__PURE__*/_interopDefault(Ae);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 qe__default=/*#__PURE__*/_interopDefault(qe);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ve__default=/*#__PURE__*/_interopDefault(ve);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var ue__default=/*#__PURE__*/_interopDefault(ue);var fe__default=/*#__PURE__*/_interopDefault(fe);var Me__default=/*#__PURE__*/_interopDefault(Me);var W__default=/*#__PURE__*/_interopDefault(W);var ce__default=/*#__PURE__*/_interopDefault(ce);var Ze__default=/*#__PURE__*/_interopDefault(Ze);function at(){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 it(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var lt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function pt(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function L(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 ae={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 n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ae.snackCase(ae.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function ct(e,t){return typeof e=="function"?e(t):e}var k=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},ut={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},ft=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?k(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function dt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ce(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ie(e,t){return Ce([t??"undefined",e??"undefined"])}function le(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function mt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}q__default.default.extend(De__default.default);q__default.default.extend(Ae__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(qe__default.default);q__default.default.extend(Ue__default.default);q__default.default.extend(ve__default.default);q__default.default.extend(Ne__default.default);var E=q__default.default;var pe=ne.createContext(void 0);function M(){let e=ne.useContext(pe);return e||{}}var Fe=({children:e,value:t})=>{let n={...t};return ne.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:s,object:a,isLocal:c}=t.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??{},c);}})();},[t.localeConfig]),jsxRuntime.jsx(pe.Provider,{value:n,children:e})};function G(e,t){let n=ce__default.default.random(16),o=ce__default.default.random(16),s=fe__default.default(t,n,{keySize:256/32,iterations:1e3}),a=ue__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W__default.default),iv:o.toString(W__default.default),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe__default.default(t,W__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=ue__default.default.decrypt(s,a,{iv:W__default.default.parse(o)}).toString(Me__default.default);return JSON.parse(r)}function de(e,t){return JSON.stringify(G(e,t))}function me(e,t){return Y(JSON.parse(e),t)}function z(){let{passphrase:e}=M();return {passphrase:e,encrypt(t,n){return G(t,n||e)},decrypt(t,n){return Y(t,n||e)},encryptString(t,n){return de(t,n||e)},decryptString(t,n){return me(t,n||e)}}}var ye=()=>{let{encrypt:e,decrypt:t}=z(),n=ne.useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=ne.useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=ne.useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return ne.useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(U){console.error("Decrypt error from storage event",U);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=ne.useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var J={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=zustand.create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||J,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:J}}))}));var Z=new Map,ge=(e,t)=>{Z.set(e,t);},Re=e=>{Z.delete(e);},he=e=>Z.get(e);function $e(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),y=B(({states:u})=>u[p]?.isCancel??false),U=B(({states:u})=>u[p]?.loading??false),A=B(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=M(),H=ye(),w=ne.useRef(void 0),K=ne.useRef(null),{cacheName:I,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:m}=ne.useMemo(()=>{let u=O?H.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,N="s";return L(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,N="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,N=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:N,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);ne.useEffect(()=>{let u=JSON.stringify(L(w.current)?w.current:""),g=JSON.stringify(L(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,j);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),ne.useEffect(()=>{let u=async()=>{!_&&I&&F&&(await caches.open(I)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,I,F,p,K]);let f=ne.useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),S=await(await x.match(F))?.json();if(S){let{data:T,expired:N}=S;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=E().add(re,oe).toISOString(),T={data:d,expired:S},N=await caches.open(I),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[c,t,r,y]);ne.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=ne.useRef(null),{enabledRefetch:b,timeoutRefetch:D,timeoutUnitRefetch:v}=ne.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);ne.useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,D,v,f]);let R=ne.useCallback(()=>{K.current?.abort(),K.current=null,l(p,{loading:false,isCancel:true});},[p,K]),$=ne.useCallback(()=>{l(p,{loading:false,response:null});},[p]),j={...A,loading:U,refresh:f,abort:R,clear:$,response:A,isCancel:y,clone:(u,g)=>$e(t,u,g)};return ne.useEffect(()=>(ge(p,j),()=>{Re(p);}),[j,p]),[A?.data,j]}async function rn(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var je=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(je||{}),Ve=(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))(Ve||{});var cn=(e,t,n)=>{let{format:o}=M();return t==="number"?Je(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?_e(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?We(e,n):t==="string"?ze(e,n):e?.toString()??""};function We(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function ze(e,t){if(!L(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=le(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Je(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;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 c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function _e(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function dn(e,{interval:t,lead:n}){let o=ne.useRef(null);ne.useEffect(()=>{o.current=e;},[e]),ne.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function gn(e,t,n){let[o,s]=ne.useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:U}=l,A=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,U)&&(t==="ctrl"&&A||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?A:P==="alt"?O:P==="shift"?h:false);a(y,U)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,U)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return ne.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Dn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:U,passphrase:A})=>{let{encrypt:O,decrypt:h,passphrase:C}=z(),P=(m,f,i,b)=>{let D=b?.code==="ERR_CANCELED",v=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:U)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:A;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:D,isUnauthorization:v},b),isCancel:D,isUnauthorization:v,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!D||!g)&&c(u),!x&&(!D||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},H=(m,f=()=>{})=>Ze__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,D)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},$={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&($.Authorization=`Bearer ${t}`):R.token&&($.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?C:D.passphrase:A;i=O(i,u);}return H({url:f,method:m,data:i,headers:$,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:H,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let D=new FormData;return Object.keys(f).forEach(v=>D.append(v,f[v])),w("POST",`${m}`,D,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function Sn(e,t){let[n,o]=ne.useState(false),[s,a]=ne.useState(),[c,r]=ne.useState(0),p=ne.useRef(null);return ne.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async A=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(A=t?.beforeRequest(A)),t?.logging&&console.log("Before request",A);let h={...t,signal:O.signal,onUploadProgress:P=>{let H=Math.round(P.loaded*100/(P.total||1));r(H);}},C=e.__isVoid?await e(void 0,h):await e(A,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function tt(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var nt=typeof window<"u"?window:null;function qn(e={}){let{getTrigger:t=tt,target:n=nt,disableHysteresis:o=false,threshold:s=100}=e,a=ne__default.default.useRef(0),[c,r]=ne__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne__default.default.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var kn=(e,t)=>{let n=t||e.__path||e.name,o=B(({states:p})=>p[n]??J),{refresh:s,abort:a,clear:c,clone:r}=he(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var Fn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},Ln=(e,t)=>{let n={};n.others=[];let o=s=>{ne__default.default.Children.forEach(s,a=>{if(ne__default.default.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Hn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=ne.useRef(r?r(t):t);return ne.useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function st(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=st(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=Fe;exports.DataTypeEnum=Ve;exports.HttpMethod=je;exports.capitalizeWords=le;exports.createApiHelper=Dn;exports.createElement=Fn;exports.createStore=Hn;exports.debounce=mt;exports.decrypt=Y;exports.decryptString=me;exports.defaultState=J;exports.diffJson=it;exports.encrypt=G;exports.encryptString=de;exports.generateCacheKey=ie;exports.generateUUID=at;exports.getApiActions=he;exports.getFieldValue=k;exports.isArray=pt;exports.isNotEmpty=L;exports.jsonCopy=dt;exports.labelFormatter=ae;exports.mappingUndefinedtoNull=lt;exports.moment=E;exports.registerApi=ge;exports.renderChildren=ct;exports.sorting=ut;exports.splitElement=Ln;exports.stableStringify=Ce;exports.summary=ft;exports.unregisterApi=Re;exports.useApiLoad=$e;exports.useApiLoadStore=B;exports.useApiSend=Sn;exports.useApiStore=kn;exports.useBgsCore=M;exports.useCrypto=z;exports.useDelay=rn;exports.useFormatted=cn;exports.useInterval=dn;exports.useKeyPress=gn;exports.useScrollTrigger=qn;exports.useStorage=ye;exports.wrapApi=st;
1
+ 'use strict';var ne=require('react'),U=require('dayjs'),De=require('dayjs/plugin/utc'),Ae=require('dayjs/plugin/timezone'),Pe=require('dayjs/plugin/duration'),Se=require('dayjs/plugin/advancedFormat'),Oe=require('dayjs/plugin/localizedFormat'),we=require('dayjs/plugin/relativeTime'),qe=require('dayjs/plugin/isSameOrBefore'),Ue=require('dayjs/plugin/isSameOrAfter'),ve=require('dayjs/plugin/weekOfYear'),Ne=require('dayjs/plugin/customParseFormat'),jsxRuntime=require('react/jsx-runtime'),ue=require('crypto-js/aes'),fe=require('crypto-js/pbkdf2'),Me=require('crypto-js/enc-utf8'),W=require('crypto-js/enc-base64'),ce=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),Ze=require('axios'),shallow=require('zustand/react/shallow');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ne__default=/*#__PURE__*/_interopDefault(ne);var U__default=/*#__PURE__*/_interopDefault(U);var De__default=/*#__PURE__*/_interopDefault(De);var Ae__default=/*#__PURE__*/_interopDefault(Ae);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 qe__default=/*#__PURE__*/_interopDefault(qe);var Ue__default=/*#__PURE__*/_interopDefault(Ue);var ve__default=/*#__PURE__*/_interopDefault(ve);var Ne__default=/*#__PURE__*/_interopDefault(Ne);var ue__default=/*#__PURE__*/_interopDefault(ue);var fe__default=/*#__PURE__*/_interopDefault(fe);var Me__default=/*#__PURE__*/_interopDefault(Me);var W__default=/*#__PURE__*/_interopDefault(W);var ce__default=/*#__PURE__*/_interopDefault(ce);var Ze__default=/*#__PURE__*/_interopDefault(Ze);function it(){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 lt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var pt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ct(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function L(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 ae={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 n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ae.snackCase(ae.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function ut(e,t){return typeof e=="function"?e(t):e}var k=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},ft={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},dt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?k(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function mt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ce(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ie(e,t){return Ce([t??"undefined",e??"undefined"])}function le(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function yt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}U__default.default.extend(De__default.default);U__default.default.extend(Ae__default.default);U__default.default.extend(Pe__default.default);U__default.default.extend(Se__default.default);U__default.default.extend(Oe__default.default);U__default.default.extend(we__default.default);U__default.default.extend(qe__default.default);U__default.default.extend(Ue__default.default);U__default.default.extend(ve__default.default);U__default.default.extend(Ne__default.default);var E=U__default.default;var pe=ne.createContext(void 0);function M(){let e=ne.useContext(pe);return e||{}}var Fe=({children:e,value:t})=>{let n={...t};return ne.useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:s,object:a,isLocal:c}=t.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??{},c);}})();},[t.localeConfig]),jsxRuntime.jsx(pe.Provider,{value:n,children:e})};function G(e,t){let n=ce__default.default.random(16),o=ce__default.default.random(16),s=fe__default.default(t,n,{keySize:256/32,iterations:1e3}),a=ue__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W__default.default),iv:o.toString(W__default.default),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe__default.default(t,W__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=ue__default.default.decrypt(s,a,{iv:W__default.default.parse(o)}).toString(Me__default.default);return JSON.parse(r)}function de(e,t){return JSON.stringify(G(e,t))}function me(e,t){return Y(JSON.parse(e),t)}function z(){let{passphrase:e}=M();return {passphrase:e,encrypt(t,n){return G(t,n||e)},decrypt(t,n){return Y(t,n||e)},encryptString(t,n){return de(t,n||e)},decryptString(t,n){return me(t,n||e)}}}var ye=()=>{let{encrypt:e,decrypt:t}=z(),n=ne.useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=ne.useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=ne.useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return ne.useEffect(()=>{let l=d=>{if(d.key===c)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(A){console.error("Decrypt error from storage event",A);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=ne.useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var J={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=zustand.create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||J,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:J}}))}));var Z=new Map,ge=(e,t)=>{Z.set(e,t);},Re=e=>{Z.delete(e);},he=e=>Z.get(e);function $e(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),d=B(({states:u})=>u[p]?.isCancel??false),A=B(({states:u})=>u[p]?.loading??false),P=B(({states:u})=>u[p]?.response??void 0),{storageKey:w,cache:h,clearPreviousData:C,refetchOnWindowFocus:S}=M(),H=ye(),q=ne.useRef(void 0),K=ne.useRef(null),{cacheName:I,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:y}=ne.useMemo(()=>{let u=w?H.get(w):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),m=false;typeof h?.enabled=="boolean"&&(m=h.enabled);let O=false;typeof h?.persistence=="boolean"&&(O=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(O=r?.cache?.persistence??false);let T=60*5,N="s";return L(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,N="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?m=r.cache.enabled:m=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,N=r.cache.timeout.unit)):m=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:N,persistence:O,cacheEnabled:m}},[r?.cache,c,w,h,a]);ne.useEffect(()=>{let u=JSON.stringify(L(q.current)?q.current:""),g=JSON.stringify(L(c)?c:""),x=q.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),q.current=c),r?.onChange&&r?.onChange(c,j);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),ne.useEffect(()=>{let u=async()=>{!_&&I&&F&&(await caches.open(I)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,I,F,p,K]);let f=ne.useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),y&&!u&&!d){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),O=await(await x.match(F))?.json();if(O){let{data:T,expired:N}=O;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let m=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&m?.data&&(m.data=r?.afterResponse(m.data)),r?.logging&&console.log("After request",m),r?.onAfterResponse&&r?.onAfterResponse(m),l(p,{loading:false,...m,response:m,isCancel:false}),y&&m.status){let O=E().add(re,oe).toISOString(),T={data:m,expired:O},N=await caches.open(I),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[c,t,r,d]);ne.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=ne.useRef(null),{enabledRefetch:b,timeoutRefetch:D,timeoutUnitRefetch:v}=ne.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??S?.timeout,x=typeof g=="number"?g:g?.value??60*5,m=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:m}},[r?.refetchOnWindowFocus,S]);ne.useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),g=()=>{let m=Date.now(),O=i.current;O!==null&&m-O>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,D,v,f]);let R=ne.useCallback(()=>{K.current?.abort(),K.current=null,l(p,{loading:false,isCancel:true});},[p,K]),$=ne.useCallback(()=>{l(p,{loading:false,response:null});},[p]),j={...P,loading:A,refresh:f,abort:R,clear:$,response:P,isCancel:d,clone:(u,g)=>$e(t,u,g)};return ne.useEffect(()=>(ge(p,j),()=>{Re(p);}),[j,p]),[P?.data,j]}async function on(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var je=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(je||{}),Ve=(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))(Ve||{});var un=(e,t,n)=>{let{format:o}=M();return t==="number"?Je(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?_e(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?We(e,n):t==="string"?ze(e,n):e?.toString()??""};function We(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function ze(e,t){if(!L(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=le(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Je(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;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 c=0;if(o==="auto"){let l=a.toString(),d=l.indexOf(".");d!==-1&&(c=l.length-d-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function _e(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function mn(e,{interval:t,lead:n}){let o=ne.useRef(null);ne.useEffect(()=>{o.current=e;},[e]),ne.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function Rn(e,t,n){let[o,s]=ne.useState(false),a=(l,d)=>typeof e=="string"&&l===e||typeof e=="number"&&d===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:d,keyCode:A}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(d,A)&&(t==="ctrl"&&P||t==="alt"&&w||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(S=>S==="ctrl"?P:S==="alt"?w:S==="shift"?h:false);a(d,A)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(d,A)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:d})=>{a(l,d)&&s(false);};return ne.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var An=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:d,encryptResponse:A,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:C}=z(),S=(y,f,i,b)=>{let D=b?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:A)&&R){let m=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:P;try{R=h(R,m);}catch{try{R=h(R,C);}catch{}}}let u={...o({...y,data:R,isCancel:D,isUnauthorization:v},b),isCancel:D,isUnauthorization:v,httpCode:y.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!D||!g)&&c(u),!x&&(!D||!i?.disabledHandleUnauthorized)){let m=i?.onUnauthorized||a;m&&m(u);}if(f)f(u);else return u},H=(y,f=()=>{})=>Ze__default.default.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(f).catch(b=>f(b.response,b)),q=(y,f,i,b,D)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},$={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&($.Authorization=`Bearer ${t}`):R.token&&($.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:d)&&i){let u=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?C:D.passphrase:P;i=w(i,u);}return H({url:f,method:y,data:i,headers:$,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>S(u,b,R,g))};return {client:H,post:(y,f,i,b)=>q("POST",`${y}`,f,i,b),put:(y,f,i,b)=>q("PUT",`${y}`,f,i,b),patch:(y,f,i,b)=>q("PATCH",`${y}`,f,i,b),delete:(y,f,i)=>q("DELETE",`${y}`,null,f,i),get:(y,f,i)=>q("GET",`${y}`,null,f,i),upload:(y,f,i,b)=>{let D=new FormData;return Object.keys(f).forEach(v=>D.append(v,f[v])),q("POST",`${y}`,D,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function On(e,t){let[n,o]=ne.useState(false),[s,a]=ne.useState(),[c,r]=ne.useState(0),p=ne.useRef(null);return ne.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async P=>{p.current?.abort();let w=new AbortController;p.current=w,o(true),t?.beforeRequest&&(P=t?.beforeRequest(P)),t?.logging&&console.log("Before request",P);let h={...t,signal:w.signal,onUploadProgress:S=>{let H=Math.round(S.loaded*100/(S.total||1));r(H);}},C=e.__isVoid?await e(void 0,h):await e(P,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function tt(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var nt=typeof window<"u"?window:null;function Un(e={}){let{getTrigger:t=tt,target:n=nt,disableHysteresis:o=false,threshold:s=100}=e,a=ne__default.default.useRef(0),[c,r]=ne__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne__default.default.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var Kn=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=B(shallow.useShallow(d=>{let A=d.states[n]??J;return [A.loading,A.isCancel,A.response]})),{refresh:c,abort:r,clear:p,clone:l}=he(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:c,abort:r,clear:p,clone:l}]};var Mn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},Bn=(e,t)=>{let n={};n.others=[];let o=s=>{ne__default.default.Children.forEach(s,a=>{if(ne__default.default.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function $n(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=ne.useRef(r?r(t):t);return ne.useSyncExternalStore(s,()=>{let l=r?r(t):t,d=p.current;return Object.is(d,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function at(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=at(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=Fe;exports.DataTypeEnum=Ve;exports.HttpMethod=je;exports.capitalizeWords=le;exports.createApiHelper=An;exports.createElement=Mn;exports.createStore=$n;exports.debounce=yt;exports.decrypt=Y;exports.decryptString=me;exports.defaultState=J;exports.diffJson=lt;exports.encrypt=G;exports.encryptString=de;exports.generateCacheKey=ie;exports.generateUUID=it;exports.getApiActions=he;exports.getFieldValue=k;exports.isArray=ct;exports.isNotEmpty=L;exports.jsonCopy=mt;exports.labelFormatter=ae;exports.mappingUndefinedtoNull=pt;exports.moment=E;exports.registerApi=ge;exports.renderChildren=ut;exports.sorting=ft;exports.splitElement=Bn;exports.stableStringify=Ce;exports.summary=dt;exports.unregisterApi=Re;exports.useApiLoad=$e;exports.useApiLoadStore=B;exports.useApiSend=On;exports.useApiStore=Kn;exports.useBgsCore=M;exports.useCrypto=z;exports.useDelay=on;exports.useFormatted=un;exports.useInterval=mn;exports.useKeyPress=Rn;exports.useScrollTrigger=Un;exports.useStorage=ye;exports.wrapApi=at;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import ne,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import q from'dayjs';import De from'dayjs/plugin/utc';import Ae 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 qe from'dayjs/plugin/isSameOrBefore';import Ue from'dayjs/plugin/isSameOrAfter';import ve from'dayjs/plugin/weekOfYear';import Ne from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import ue from'crypto-js/aes';import fe from'crypto-js/pbkdf2';import Me from'crypto-js/enc-utf8';import W from'crypto-js/enc-base64';import ce from'crypto-js/lib-typedarrays';import {create}from'zustand';import Ze from'axios';function at(){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 it(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var lt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function pt(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function L(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 ae={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 n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ae.snackCase(ae.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function ct(e,t){return typeof e=="function"?e(t):e}var k=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},ut={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},ft=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?k(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function dt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ce(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ie(e,t){return Ce([t??"undefined",e??"undefined"])}function le(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function mt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}q.extend(De);q.extend(Ae);q.extend(Pe);q.extend(Se);q.extend(Oe);q.extend(we);q.extend(qe);q.extend(Ue);q.extend(ve);q.extend(Ne);var E=q;var pe=createContext(void 0);function M(){let e=useContext(pe);return e||{}}var Fe=({children:e,value:t})=>{let n={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:s,object:a,isLocal:c}=t.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??{},c);}})();},[t.localeConfig]),jsx(pe.Provider,{value:n,children:e})};function G(e,t){let n=ce.random(16),o=ce.random(16),s=fe(t,n,{keySize:256/32,iterations:1e3}),a=ue.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W),iv:o.toString(W),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe(t,W.parse(n),{keySize:256/32,iterations:1e3}),r=ue.decrypt(s,a,{iv:W.parse(o)}).toString(Me);return JSON.parse(r)}function de(e,t){return JSON.stringify(G(e,t))}function me(e,t){return Y(JSON.parse(e),t)}function z(){let{passphrase:e}=M();return {passphrase:e,encrypt(t,n){return G(t,n||e)},decrypt(t,n){return Y(t,n||e)},encryptString(t,n){return de(t,n||e)},decryptString(t,n){return me(t,n||e)}}}var ye=()=>{let{encrypt:e,decrypt:t}=z(),n=useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=y=>{if(y.key===c)if(y.newValue)try{p(t(JSON.parse(y.newValue)));}catch(U){console.error("Decrypt error from storage event",U);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var J={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||J,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:J}}))}));var Z=new Map,ge=(e,t)=>{Z.set(e,t);},Re=e=>{Z.delete(e);},he=e=>Z.get(e);function $e(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),y=B(({states:u})=>u[p]?.isCancel??false),U=B(({states:u})=>u[p]?.loading??false),A=B(({states:u})=>u[p]?.response??void 0),{storageKey:O,cache:h,clearPreviousData:C,refetchOnWindowFocus:P}=M(),H=ye(),w=useRef(void 0),K=useRef(null),{cacheName:I,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:m}=useMemo(()=>{let u=O?H.get(O):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),d=false;typeof h?.enabled=="boolean"&&(d=h.enabled);let S=false;typeof h?.persistence=="boolean"&&(S=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(S=r?.cache?.persistence??false);let T=60*5,N="s";return L(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,N="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?d=r.cache.enabled:d=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,N=r.cache.timeout.unit)):d=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:N,persistence:S,cacheEnabled:d}},[r?.cache,c,O,h,a]);useEffect(()=>{let u=JSON.stringify(L(w.current)?w.current:""),g=JSON.stringify(L(c)?c:""),x=w.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),w.current=c),r?.onChange&&r?.onChange(c,j);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),useEffect(()=>{let u=async()=>{!_&&I&&F&&(await caches.open(I)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,I,F,p,K]);let f=useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),m&&!u&&!y){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),S=await(await x.match(F))?.json();if(S){let{data:T,expired:N}=S;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let d=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&d?.data&&(d.data=r?.afterResponse(d.data)),r?.logging&&console.log("After request",d),r?.onAfterResponse&&r?.onAfterResponse(d),l(p,{loading:false,...d,response:d,isCancel:false}),m&&d.status){let S=E().add(re,oe).toISOString(),T={data:d,expired:S},N=await caches.open(I),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[c,t,r,y]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=useRef(null),{enabledRefetch:b,timeoutRefetch:D,timeoutUnitRefetch:v}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??P?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??P?.timeout,x=typeof g=="number"?g:g?.value??60*5,d=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:d}},[r?.refetchOnWindowFocus,P]);useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),g=()=>{let d=Date.now(),S=i.current;S!==null&&d-S>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,D,v,f]);let R=useCallback(()=>{K.current?.abort(),K.current=null,l(p,{loading:false,isCancel:true});},[p,K]),$=useCallback(()=>{l(p,{loading:false,response:null});},[p]),j={...A,loading:U,refresh:f,abort:R,clear:$,response:A,isCancel:y,clone:(u,g)=>$e(t,u,g)};return useEffect(()=>(ge(p,j),()=>{Re(p);}),[j,p]),[A?.data,j]}async function rn(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var je=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(je||{}),Ve=(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))(Ve||{});var cn=(e,t,n)=>{let{format:o}=M();return t==="number"?Je(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?_e(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?We(e,n):t==="string"?ze(e,n):e?.toString()??""};function We(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function ze(e,t){if(!L(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=le(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Je(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;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 c=0;if(o==="auto"){let l=a.toString(),y=l.indexOf(".");y!==-1&&(c=l.length-y-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function _e(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function dn(e,{interval:t,lead:n}){let o=useRef(null);useEffect(()=>{o.current=e;},[e]),useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function gn(e,t,n){let[o,s]=useState(false),a=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:y,keyCode:U}=l,A=l.ctrlKey,O=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(y,U)&&(t==="ctrl"&&A||t==="alt"&&O||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(P=>P==="ctrl"?A:P==="alt"?O:P==="shift"?h:false);a(y,U)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(y,U)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:y})=>{a(l,y)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var Dn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:y,encryptResponse:U,passphrase:A})=>{let{encrypt:O,decrypt:h,passphrase:C}=z(),P=(m,f,i,b)=>{let D=b?.code==="ERR_CANCELED",v=m?.status===401,R=m?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:U)&&R){let d=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:A;try{R=h(R,d);}catch{try{R=h(R,C);}catch{}}}let u={...o({...m,data:R,isCancel:D,isUnauthorization:v},b),isCancel:D,isUnauthorization:v,httpCode:m.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!D||!g)&&c(u),!x&&(!D||!i?.disabledHandleUnauthorized)){let d=i?.onUnauthorized||a;d&&d(u);}if(f)f(u);else return u},H=(m,f=()=>{})=>Ze.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:l})(m).then(f).catch(b=>f(b.response,b)),w=(m,f,i,b,D)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},$={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&($.Authorization=`Bearer ${t}`):R.token&&($.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:y)&&i){let u=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?C:D.passphrase:A;i=O(i,u);}return H({url:f,method:m,data:i,headers:$,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>P(u,b,R,g))};return {client:H,post:(m,f,i,b)=>w("POST",`${m}`,f,i,b),put:(m,f,i,b)=>w("PUT",`${m}`,f,i,b),patch:(m,f,i,b)=>w("PATCH",`${m}`,f,i,b),delete:(m,f,i)=>w("DELETE",`${m}`,null,f,i),get:(m,f,i)=>w("GET",`${m}`,null,f,i),upload:(m,f,i,b)=>{let D=new FormData;return Object.keys(f).forEach(v=>D.append(v,f[v])),w("POST",`${m}`,D,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function Sn(e,t){let[n,o]=useState(false),[s,a]=useState(),[c,r]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async A=>{p.current?.abort();let O=new AbortController;p.current=O,o(true),t?.beforeRequest&&(A=t?.beforeRequest(A)),t?.logging&&console.log("Before request",A);let h={...t,signal:O.signal,onUploadProgress:P=>{let H=Math.round(P.loaded*100/(P.total||1));r(H);}},C=e.__isVoid?await e(void 0,h):await e(A,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function tt(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var nt=typeof window<"u"?window:null;function qn(e={}){let{getTrigger:t=tt,target:n=nt,disableHysteresis:o=false,threshold:s=100}=e,a=ne.useRef(0),[c,r]=ne.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var kn=(e,t)=>{let n=t||e.__path||e.name,o=B(({states:p})=>p[n]??J),{refresh:s,abort:a,clear:c,clone:r}=he(n)||{};return [o?.data,{...o,refresh:s,abort:a,clear:c,clone:r}]};var Fn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},Ln=(e,t)=>{let n={};n.others=[];let o=s=>{ne.Children.forEach(s,a=>{if(ne.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function Hn(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=useRef(r?r(t):t);return useSyncExternalStore(s,()=>{let l=r?r(t):t,y=p.current;return Object.is(y,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function st(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=st(s,[...t,o]):n[o]=s;}return n}export{Fe as BgsCoreProvider,Ve as DataTypeEnum,je as HttpMethod,le as capitalizeWords,Dn as createApiHelper,Fn as createElement,Hn as createStore,mt as debounce,Y as decrypt,me as decryptString,J as defaultState,it as diffJson,G as encrypt,de as encryptString,ie as generateCacheKey,at as generateUUID,he as getApiActions,k as getFieldValue,pt as isArray,L as isNotEmpty,dt as jsonCopy,ae as labelFormatter,lt as mappingUndefinedtoNull,E as moment,ge as registerApi,ct as renderChildren,ut as sorting,Ln as splitElement,Ce as stableStringify,ft as summary,Re as unregisterApi,$e as useApiLoad,B as useApiLoadStore,Sn as useApiSend,kn as useApiStore,M as useBgsCore,z as useCrypto,rn as useDelay,cn as useFormatted,dn as useInterval,gn as useKeyPress,qn as useScrollTrigger,ye as useStorage,st as wrapApi};
1
+ import ne,{createContext,useContext,useEffect,useCallback,useRef,useMemo,useState,useSyncExternalStore}from'react';import U from'dayjs';import De from'dayjs/plugin/utc';import Ae 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 qe from'dayjs/plugin/isSameOrBefore';import Ue from'dayjs/plugin/isSameOrAfter';import ve from'dayjs/plugin/weekOfYear';import Ne from'dayjs/plugin/customParseFormat';import {jsx}from'react/jsx-runtime';import ue from'crypto-js/aes';import fe from'crypto-js/pbkdf2';import Me from'crypto-js/enc-utf8';import W from'crypto-js/enc-base64';import ce from'crypto-js/lib-typedarrays';import {create}from'zustand';import Ze from'axios';import {useShallow}from'zustand/react/shallow';function it(){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 lt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var pt=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ct(e,t){let n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function L(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 ae={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 n=e.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()).replace(/([A-Z])/g," $1");return n=n.charAt(0).toUpperCase()+n.slice(1),n},changeAll:(e="",t=false)=>{let n="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],n=ae.snackCase(ae.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function ut(e,t){return typeof e=="function"?e(t):e}var k=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),s=e;for(let a of o){if(s==null)return n;s=s[a];}return s===void 0?n:s},ft={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(n,t):"";return s<a?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=k(n,t)?k(n,t):"",a=k(o,t)?k(o,t):"";return s>a?1:-1}else return n>o?1:-1}))},dt=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?k(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function mt(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function Ce(e){let t=new WeakSet;return JSON.stringify(e,function(n,o){return o!==null&&typeof o=="object"?t.has(o)?void 0:(t.add(o),Object.keys(o).sort().reduce((s,a)=>(s[a]=o[a],s),{})):o})??""}function ie(e,t){return Ce([t??"undefined",e??"undefined"])}function le(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function yt(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}U.extend(De);U.extend(Ae);U.extend(Pe);U.extend(Se);U.extend(Oe);U.extend(we);U.extend(qe);U.extend(Ue);U.extend(ve);U.extend(Ne);var E=U;var pe=createContext(void 0);function M(){let e=useContext(pe);return e||{}}var Fe=({children:e,value:t})=>{let n={...t};return useEffect(()=>{(async()=>{if(!(typeof window>"u")&&t.localeConfig){let{preset:s,object:a,isLocal:c}=t.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??{},c);}})();},[t.localeConfig]),jsx(pe.Provider,{value:n,children:e})};function G(e,t){let n=ce.random(16),o=ce.random(16),s=fe(t,n,{keySize:256/32,iterations:1e3}),a=ue.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(W),iv:o.toString(W),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe(t,W.parse(n),{keySize:256/32,iterations:1e3}),r=ue.decrypt(s,a,{iv:W.parse(o)}).toString(Me);return JSON.parse(r)}function de(e,t){return JSON.stringify(G(e,t))}function me(e,t){return Y(JSON.parse(e),t)}function z(){let{passphrase:e}=M();return {passphrase:e,encrypt(t,n){return G(t,n||e)},decrypt(t,n){return Y(t,n||e)},encryptString(t,n){return de(t,n||e)},decryptString(t,n){return me(t,n||e)}}}var ye=()=>{let{encrypt:e,decrypt:t}=z(),n=useCallback((c,r)=>{try{let p=e(r);localStorage.setItem(c,JSON.stringify(p));}catch(p){console.error("Failed to save to storage:",p);}},[e]),o=useCallback(c=>{try{let r=localStorage.getItem(c);return r?t(JSON.parse(r)):null}catch(r){return console.error("Failed to get from storage:",r),null}},[t]),s=c=>{let[r,p]=useState(()=>{try{let l=localStorage.getItem(c);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=d=>{if(d.key===c)if(d.newValue)try{p(t(JSON.parse(d.newValue)));}catch(A){console.error("Decrypt error from storage event",A);}else p(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[c,t]),r},a=useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:a,useWatchStorage:s}};var J={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},B=create(e=>({states:{},updateState:(t,n)=>e(o=>({states:{...o.states,[t]:{...o.states[t]||J,...n}}})),resetState:t=>e(n=>({states:{...n.states,[t]:J}}))}));var Z=new Map,ge=(e,t)=>{Z.set(e,t);},Re=e=>{Z.delete(e);},he=e=>Z.get(e);function $e(...e){let[t,n,o]=e,s=t.__isVoid,a=t.__path||t.name,c=s?void 0:n,r=s?n:o,p=r?.storeName||a,{updateState:l}=B(),d=B(({states:u})=>u[p]?.isCancel??false),A=B(({states:u})=>u[p]?.loading??false),P=B(({states:u})=>u[p]?.response??void 0),{storageKey:w,cache:h,clearPreviousData:C,refetchOnWindowFocus:S}=M(),H=ye(),q=useRef(void 0),K=useRef(null),{cacheName:I,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:y}=useMemo(()=>{let u=w?H.get(w):void 0,g=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...c,session:u},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),m=false;typeof h?.enabled=="boolean"&&(m=h.enabled);let O=false;typeof h?.persistence=="boolean"&&(O=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(O=r?.cache?.persistence??false);let T=60*5,N="s";return L(h?.timeout)&&(typeof h?.timeout=="number"?(T=h.timeout,N="s"):typeof h?.timeout=="object"&&(T=h?.timeout.value,N=h?.timeout.unit)),r?.cache&&(typeof r.cache!="boolean"?(typeof r.cache.enabled=="boolean"?m=r.cache.enabled:m=true,typeof r.cache.timeout=="number"?(T=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(T=r.cache.timeout.value,N=r.cache.timeout.unit)):m=r.cache),{cacheName:g,cacheKey:x,timeout:T,timeoutUnit:N,persistence:O,cacheEnabled:m}},[r?.cache,c,w,h,a]);useEffect(()=>{let u=JSON.stringify(L(q.current)?q.current:""),g=JSON.stringify(L(c)?c:""),x=q.current===void 0;(u!==g||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(p,{response:null}),f(),q.current=c),r?.onChange&&r?.onChange(c,j);},[c,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),useEffect(()=>{let u=async()=>{!_&&I&&F&&(await caches.open(I)).delete(F);};return window.addEventListener("beforeunload",u),()=>{window.removeEventListener("beforeunload",u),K.current?.abort();}},[_,I,F,p,K]);let f=useCallback(async u=>{let g=c;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(g=r?.beforeRequest(c)),y&&!u&&!d){l(p,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(c);let x=await caches.open(I),O=await(await x.match(F))?.json();if(O){let{data:T,expired:N}=O;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&T?.data&&(T.data=r?.afterResponse(T.data)),r?.logging&&console.log("After request: Using Cache",T),r?.onAfterResponse&&r?.onAfterResponse(T),l(p,{loading:false,...T,response:T});return}}}if(typeof t=="function"){K.current?.abort();let x=new AbortController;K.current=x,l(p,{loading:true}),r?.logging&&console.log("Before request",c),r?.onBeforeRequest&&r?.onBeforeRequest(c);let m=s?await t(void 0,{...r,signal:x.signal}):await t(g,void 0,{...r,signal:x.signal});if(r?.afterResponse&&m?.data&&(m.data=r?.afterResponse(m.data)),r?.logging&&console.log("After request",m),r?.onAfterResponse&&r?.onAfterResponse(m),l(p,{loading:false,...m,response:m,isCancel:false}),y&&m.status){let O=E().add(re,oe).toISOString(),T={data:m,expired:O},N=await caches.open(I),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[c,t,r,d]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,g=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{f();},E.duration(u,g).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,f]);let i=useRef(null),{enabledRefetch:b,timeoutRefetch:D,timeoutUnitRefetch:v}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,g=r?.refetchOnWindowFocus?.timeout??S?.timeout,x=typeof g=="number"?g:g?.value??60*5,m=typeof g=="object"?g.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:m}},[r?.refetchOnWindowFocus,S]);useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),g=()=>{let m=Date.now(),O=i.current;O!==null&&m-O>=u&&f(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",g),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",g),window.removeEventListener("blur",x);}},[b,D,v,f]);let R=useCallback(()=>{K.current?.abort(),K.current=null,l(p,{loading:false,isCancel:true});},[p,K]),$=useCallback(()=>{l(p,{loading:false,response:null});},[p]),j={...P,loading:A,refresh:f,abort:R,clear:$,response:P,isCancel:d,clone:(u,g)=>$e(t,u,g)};return useEffect(()=>(ge(p,j),()=>{Re(p);}),[j,p]),[P?.data,j]}async function on(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var je=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(je||{}),Ve=(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))(Ve||{});var un=(e,t,n)=>{let{format:o}=M();return t==="number"?Je(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?_e(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?We(e,n):t==="string"?ze(e,n):e?.toString()??""};function We(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function ze(e,t){if(!L(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=le(n);break;case "uppercase":n=n.toUpperCase();break;case "lowercase":n=n.toLowerCase();break}return t?.ellipsis&&n.length>t.ellipsis&&(n=n.slice(0,t.ellipsis)+"..."),n}function Je(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let a=typeof e=="string"?parseFloat(e):e;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 c=0;if(o==="auto"){let l=a.toString(),d=l.indexOf(".");d!==-1&&(c=l.length-d-1);}let r={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return a.toLocaleString("en-US",r).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function _e(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function mn(e,{interval:t,lead:n}){let o=useRef(null);useEffect(()=>{o.current=e;},[e]),useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let a=setInterval(s,t);return ()=>clearInterval(a)}},[t]);}function Rn(e,t,n){let[o,s]=useState(false),a=(l,d)=>typeof e=="string"&&l===e||typeof e=="number"&&d===e,c=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:d,keyCode:A}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")a(d,A)&&(t==="ctrl"&&P||t==="alt"&&w||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let C=t.every(S=>S==="ctrl"?P:S==="alt"?w:S==="shift"?h:false);a(d,A)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(d,A)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},p=({key:l,keyCode:d})=>{a(l,d)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",p),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",p);}),[]),o}var An=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:c,handleAuthorization:r,disabledToastWhenCancel:p,withCredentials:l,encryptRequest:d,encryptResponse:A,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:C}=z(),S=(y,f,i,b)=>{let D=b?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:A)&&R){let m=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:P;try{R=h(R,m);}catch{try{R=h(R,C);}catch{}}}let u={...o({...y,data:R,isCancel:D,isUnauthorization:v},b),isCancel:D,isUnauthorization:v,httpCode:y.status},g=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:p,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&c&&(!D||!g)&&c(u),!x&&(!D||!i?.disabledHandleUnauthorized)){let m=i?.onUnauthorized||a;m&&m(u);}if(f)f(u);else return u},H=(y,f=()=>{})=>Ze.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(f).catch(b=>f(b.response,b)),q=(y,f,i,b,D)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...D},$={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&($.Authorization=`Bearer ${t}`):R.token&&($.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:d)&&i){let u=D?.passphrase?typeof D.passphrase=="boolean"&&D.passphrase?C:D.passphrase:P;i=w(i,u);}return H({url:f,method:y,data:i,headers:$,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,g)=>S(u,b,R,g))};return {client:H,post:(y,f,i,b)=>q("POST",`${y}`,f,i,b),put:(y,f,i,b)=>q("PUT",`${y}`,f,i,b),patch:(y,f,i,b)=>q("PATCH",`${y}`,f,i,b),delete:(y,f,i)=>q("DELETE",`${y}`,null,f,i),get:(y,f,i)=>q("GET",`${y}`,null,f,i),upload:(y,f,i,b)=>{let D=new FormData;return Object.keys(f).forEach(v=>D.append(v,f[v])),q("POST",`${y}`,D,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function On(e,t){let[n,o]=useState(false),[s,a]=useState(),[c,r]=useState(0),p=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{p.current?.abort();}},[]),[async P=>{p.current?.abort();let w=new AbortController;p.current=w,o(true),t?.beforeRequest&&(P=t?.beforeRequest(P)),t?.logging&&console.log("Before request",P);let h={...t,signal:w.signal,onUploadProgress:S=>{let H=Math.round(S.loaded*100/(S.total||1));r(H);}},C=e.__isVoid?await e(void 0,h):await e(P,void 0,h);t?.logging&&console.log("After response",C),a(C),o(false),r(0),C.status&&t?.onSuccess&&t?.onSuccess(C),!C.status&&t?.onError&&t?.onError(C),t?.afterResponse&&t?.afterResponse(C);},{...s,loading:n,abort:()=>{p.current?.abort(),p.current=null,o(false),r(0);},progress:c,reset:()=>{o(false),r(0),a(null);}}]}function tt(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,a=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&a!==void 0&&e.current<a?false:(e.current||0)>o}var nt=typeof window<"u"?window:null;function Un(e={}){let{getTrigger:t=tt,target:n=nt,disableHysteresis:o=false,threshold:s=100}=e,a=ne.useRef(0),[c,r]=ne.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne.useEffect(()=>{let p=()=>{r(t(a,{disableHysteresis:o,threshold:s,target:n}));};if(p(),n)return n.addEventListener("scroll",p,{passive:true}),()=>{n.removeEventListener("scroll",p);}},[n,t,o,s]),c}var Kn=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=B(useShallow(d=>{let A=d.states[n]??J;return [A.loading,A.isCancel,A.response]})),{refresh:c,abort:r,clear:p,clone:l}=he(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:c,abort:r,clear:p,clone:l}]};var Mn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},Bn=(e,t)=>{let n={};n.others=[];let o=s=>{ne.Children.forEach(s,a=>{if(ne.isValidElement(a)){let c=a.type.displayName;if(t.includes(c))n[c]=a;else {let r=a;r.props?.children?o(r.props.children):n.others.push(a);}}else n.others.push(a);});};return o(e),n};function $n(e){let t=e,n=new Set;function o(){return t}function s(r){return n.add(r),()=>n.delete(r)}function a(r){typeof r=="function"?t=r(t):t=r,n.forEach(p=>p());}function c(r){let p=useRef(r?r(t):t);return useSyncExternalStore(s,()=>{let l=r?r(t):t,d=p.current;return Object.is(d,l)||(p.current=l),p.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:c}}function at(e,t=[]){let n={};for(let o in e){let s=e[o];if(typeof s=="function"){let a=s.bind(null);a.__path=[...t,o].join("."),a.__isVoid=s.length===2,n[o]=a;}else typeof s=="object"&&s!==null?n[o]=at(s,[...t,o]):n[o]=s;}return n}export{Fe as BgsCoreProvider,Ve as DataTypeEnum,je as HttpMethod,le as capitalizeWords,An as createApiHelper,Mn as createElement,$n as createStore,yt as debounce,Y as decrypt,me as decryptString,J as defaultState,lt as diffJson,G as encrypt,de as encryptString,ie as generateCacheKey,it as generateUUID,he as getApiActions,k as getFieldValue,ct as isArray,L as isNotEmpty,mt as jsonCopy,ae as labelFormatter,pt as mappingUndefinedtoNull,E as moment,ge as registerApi,ut as renderChildren,ft as sorting,Bn as splitElement,Ce as stableStringify,dt as summary,Re as unregisterApi,$e as useApiLoad,B as useApiLoadStore,On as useApiSend,Kn as useApiStore,M as useBgsCore,z as useCrypto,on as useDelay,un as useFormatted,mn as useInterval,Rn as useKeyPress,Un as useScrollTrigger,ye as useStorage,at as wrapApi};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgscore/react-core",
3
- "version": "0.0.43",
3
+ "version": "0.0.44",
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",