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