@bgscore/react-core 0.0.45 → 0.0.46
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 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'),z=require('crypto-js/enc-base64'),ce=require('crypto-js/lib-typedarrays'),zustand=require('zustand'),shallow=require('zustand/react/shallow'),Qe=require('axios');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 z__default=/*#__PURE__*/_interopDefault(z);var ce__default=/*#__PURE__*/_interopDefault(ce);var Qe__default=/*#__PURE__*/_interopDefault(Qe);function lt(){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 pt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ct=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ut(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 ft(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},dt={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}))},mt=(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 yt(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 gt(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: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(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(z__default.default),iv:o.toString(z__default.default),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe__default.default(t,z__default.default.parse(n),{keySize:256/32,iterations:1e3}),r=ue__default.default.decrypt(s,a,{iv:z__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 J(){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}=J(),n=ne.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=ne.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]=ne.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 ne.useEffect(()=>{let l=g=>{if(g.key===p)if(g.newValue)try{c(t(JSON.parse(g.newValue)));}catch(C){console.error("Decrypt error from storage event",C);}else c(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[p,t]),r},a=ne.useCallback(p=>{p?localStorage.removeItem(p):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},V=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 je(...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}=V(),[g,C,P]=V(shallow.useShallow(u=>{let f=u.states[c]??j;return [f.loading,f.isCancel,f.response]})),{storageKey:w,cache:h,clearPreviousData:D,refetchOnWindowFocus:S}=M(),B=ye(),q=ne.useRef(void 0),K=ne.useRef(null),{cacheName:H,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:y}=ne.useMemo(()=>{let u=w?B.get(w):void 0,f=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...p,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:f,cacheKey:x,timeout:T,timeoutUnit:N,persistence:O,cacheEnabled:m}},[r?.cache,p,w,h,a]);ne.useEffect(()=>{let u=JSON.stringify(L(q.current)?q.current:""),f=JSON.stringify(L(p)?p:""),x=q.current===void 0;(u!==f||x)&&!r?.hold&&((r?.clearPreviousData??D)&&l(c,{response:null}),d(),q.current=p),r?.onChange&&r?.onChange(p,$);},[p,r?.clearPreviousData,D,r?.hold,...r?.trigger||[]]),ne.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 d=ne.useCallback(async u=>{let f=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(f=r?.beforeRequest(p)),y&&!u&&!C){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(H),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(c,{loading:false,...T,response:T});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 m=s?await t(void 0,{...r,signal:x.signal}):await t(f,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(c,{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(H),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[p,t,r,C]);ne.useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,f=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{d();},E.duration(u,f).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,d]);let i=ne.useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:v}=ne.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,f=r?.refetchOnWindowFocus?.timeout??S?.timeout,x=typeof f=="number"?f:f?.value??60*5,m=typeof f=="object"?f.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:m}},[r?.refetchOnWindowFocus,S]);ne.useEffect(()=>{if(!b)return;let u=E.duration(A,v).asMilliseconds(),f=()=>{let m=Date.now(),O=i.current;O!==null&&m-O>=u&&d(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",x);}},[b,A,v,d]);let R=ne.useCallback(()=>{K.current?.abort(),K.current=null,l(c,{loading:false,isCancel:true});},[c,K]),I=ne.useCallback(()=>{l(c,{loading:false,response:null});},[c]),$={...P,loading:g,refresh:d,abort:R,clear:I,response:P,isCancel:C,clone:(u,f)=>je(t,u,f)};return ne.useEffect(()=>(ge(c,$),()=>{Re(c);}),[$,c]),[P?.data,$]}async function an(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ve||{}),We=(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))(We||{});var dn=(e,t,n)=>{let{format:o}=M();return t==="number"?_e(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ge(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ze(e,n):t==="string"?Je(e,n):e?.toString()??""};function ze(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Je(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 _e(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(),g=l.indexOf(".");g!==-1&&(p=l.length-g-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 Ge(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function gn(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 bn(e,t,n){let[o,s]=ne.useState(false),a=(l,g)=>typeof e=="string"&&l===e||typeof e=="number"&&g===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:g,keyCode:C}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(g,C)&&(t==="ctrl"&&P||t==="alt"&&w||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let D=t.every(S=>S==="ctrl"?P:S==="alt"?w:S==="shift"?h:false);a(g,C)&&D&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(g,C)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:g})=>{a(l,g)&&s(false);};return ne.useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var Sn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:g,encryptResponse:C,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:D}=J(),S=(y,d,i,b)=>{let A=b?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:C)&&R){let m=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?D:i.passphrase:P;try{R=h(R,m);}catch{try{R=h(R,D);}catch{}}}let u={...o({...y,data:R,isCancel:A,isUnauthorization:v},b),isCancel:A,isUnauthorization:v,httpCode:y.status},f=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&p&&(!A||!f)&&p(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let m=i?.onUnauthorized||a;m&&m(u);}if(d)d(u);else return u},B=(y,d=()=>{})=>Qe__default.default.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(d).catch(b=>d(b.response,b)),q=(y,d,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},I={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(I.Authorization=`Bearer ${t}`):R.token&&(I.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:g)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?D:A.passphrase:P;i=w(i,u);}return B({url:d,method:y,data:i,headers:I,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,f)=>S(u,b,R,f))};return {client:B,post:(y,d,i,b)=>q("POST",`${y}`,d,i,b),put:(y,d,i,b)=>q("PUT",`${y}`,d,i,b),patch:(y,d,i,b)=>q("PATCH",`${y}`,d,i,b),delete:(y,d,i)=>q("DELETE",`${y}`,null,d,i),get:(y,d,i)=>q("GET",`${y}`,null,d,i),upload:(y,d,i,b)=>{let A=new FormData;return Object.keys(d).forEach(v=>A.append(v,d[v])),q("POST",`${y}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function qn(e,t){let[n,o]=ne.useState(false),[s,a]=ne.useState(),[p,r]=ne.useState(0),c=ne.useRef(null);return ne.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{c.current?.abort();}},[]),[async P=>{c.current?.abort();let w=new AbortController;c.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 B=Math.round(S.loaded*100/(S.total||1));r(B);}},D=e.__isVoid?await e(void 0,h):await e(P,void 0,h);t?.logging&&console.log("After response",D),a(D),o(false),r(0),D.status&&t?.onSuccess&&t?.onSuccess(D),!D.status&&t?.onError&&t?.onError(D),t?.afterResponse&&t?.afterResponse(D);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function nt(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 rt=typeof window<"u"?window:null;function Nn(e={}){let{getTrigger:t=nt,target:n=rt,disableHysteresis:o=false,threshold:s=100}=e,a=ne__default.default.useRef(0),[p,r]=ne__default.default.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne__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 Ln=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=V(shallow.useShallow(g=>{let C=g.states[n]??j;return [C.loading,C.isCancel,C.response]})),{refresh:p,abort:r,clear:c,clone:l}=he(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:p,abort:r,clear:c,clone:l}]};var Hn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},In=(e,t)=>{let n={};n.others=[];let o=s=>{ne__default.default.Children.forEach(s,a=>{if(ne__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 Vn(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=ne.useRef(r?r(t):t);return ne.useSyncExternalStore(s,()=>{let l=r?r(t):t,g=c.current;return Object.is(g,l)||(c.current=l),c.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function it(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]=it(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=Fe;exports.DataTypeEnum=We;exports.HttpMethod=Ve;exports.capitalizeWords=le;exports.createApiHelper=Sn;exports.createElement=Hn;exports.createStore=Vn;exports.debounce=gt;exports.decrypt=Y;exports.decryptString=me;exports.defaultState=j;exports.diffJson=pt;exports.encrypt=G;exports.encryptString=de;exports.generateCacheKey=ie;exports.generateUUID=lt;exports.getApiActions=he;exports.getFieldValue=k;exports.isArray=ut;exports.isNotEmpty=L;exports.jsonCopy=yt;exports.labelFormatter=ae;exports.mappingUndefinedtoNull=ct;exports.moment=E;exports.registerApi=ge;exports.renderChildren=ft;exports.sorting=dt;exports.splitElement=In;exports.stableStringify=Ce;exports.summary=mt;exports.unregisterApi=Re;exports.useApiLoad=je;exports.useApiLoadStore=V;exports.useApiSend=qn;exports.useApiStore=Ln;exports.useBgsCore=M;exports.useCrypto=J;exports.useDelay=an;exports.useFormatted=dn;exports.useInterval=gn;exports.useKeyPress=bn;exports.useScrollTrigger=Nn;exports.useStorage=ye;exports.wrapApi=it;
|
|
1
|
+
'use strict';var re=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'),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'),Qe=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var re__default=/*#__PURE__*/_interopDefault(re);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 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 Qe__default=/*#__PURE__*/_interopDefault(Qe);function lt(){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 pt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ct=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ut(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 ft(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},dt={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}))},mt=(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 yt(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 gt(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 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(T){console.error("Decrypt error from storage event",T);}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}};var j={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},V=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,Re=(e,t)=>{Z.set(e,t);},he=e=>{Z.delete(e);},be=e=>Z.get(e);function je(...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}=V(),[m,T,P]=V(shallow.useShallow(u=>{let d=u.states[c]??j;return [d.loading,d.isCancel,d.response]})),{storageKey:w,cache:h,clearPreviousData:C,refetchOnWindowFocus:S}=B(),H=ge(),q=re.useRef(void 0),K=re.useRef(null),{cacheName:I,cacheKey:F,timeout:oe,timeoutUnit:se,persistence:_,cacheEnabled:y}=re.useMemo(()=>{let u=w?H.get(w):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 O=false;typeof h?.persistence=="boolean"&&(O=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(O=r?.cache?.persistence??false);let A=60*5,N="s";return M(h?.timeout)&&(typeof h?.timeout=="number"?(A=h.timeout,N="s"):typeof h?.timeout=="object"&&(A=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"?(A=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(A=r.cache.timeout.value,N=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:x,timeout:A,timeoutUnit:N,persistence:O,cacheEnabled:g}},[r?.cache,p,w,h,a]);re.useEffect(()=>{let u=JSON.stringify(M(q.current)?q.current:""),d=JSON.stringify(M(p)?p:""),x=q.current===void 0;(u!==d||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(c,{response:null}),f(),q.current=p),r?.onChange&&r?.onChange(p,$);},[p,r?.clearPreviousData,C,r?.hold,...r?.trigger||[]]),re.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,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&&!T){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(I),O=await(await x.match(F))?.json();if(O){let{data:A,expired:N}=O;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&A?.data&&(A.data=r?.afterResponse(A.data)),r?.logging&&console.log("After request: Using Cache",A),r?.onAfterResponse&&r?.onAfterResponse(A),l(c,{loading:false,response:A});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 O=E().add(oe,se).toISOString(),A={data:g,expired:O},N=await caches.open(I),ae=new Response(JSON.stringify(A));await N.put(F,ae);}}},[p,t,r,T]);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:b,timeoutRefetch:D,timeoutUnitRefetch:v}=re.useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??S?.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,S]);re.useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),d=()=>{let g=Date.now(),O=i.current;O!==null&&g-O>=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);}},[b,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(()=>({...P,loading:m,refresh:f,abort:R,clear:L,response:P,isCancel:T,clone:(u,d)=>je(t,u,d)}),[P,m,f,R,L,T,t]);return re.useEffect(()=>(Re(c,$),()=>{he(c);}),[$,c]),[P?.data,$]}async function an(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ve||{}),We=(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))(We||{});var dn=(e,t,n)=>{let{format:o}=B();return t==="number"?_e(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ge(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ze(e,n):t==="string"?Je(e,n):e?.toString()??""};function ze(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Je(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 _e(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 Ge(e,{display:t,value:n}){if(!M(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function gn(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 bn(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:T}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(m,T)&&(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(m,T)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(m,T)&&(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 Sn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:T,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:C}=J(),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:T)&&R){let g=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:P;try{R=h(R,g);}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},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},H=(y,f=()=>{})=>Qe__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},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?C:D.passphrase:P;i=w(i,u);}return H({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)=>S(u,b,R,d))};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 qn(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 P=>{c.current?.abort();let w=new AbortController;c.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:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function nt(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 rt=typeof window<"u"?window:null;function Nn(e={}){let{getTrigger:t=nt,target:n=rt,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 Ln=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=V(shallow.useShallow(m=>{let T=m.states[n]??j;return [T.loading,T.isCancel,T.response]})),{refresh:p,abort:r,clear:c,clone:l}=be(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:p,abort:r,clear:c,clone:l}]};var Hn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},In=(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 Vn(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 it(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]=it(s,[...t,o]):n[o]=s;}return n}exports.BgsCoreProvider=Fe;exports.DataTypeEnum=We;exports.HttpMethod=Ve;exports.capitalizeWords=pe;exports.createApiHelper=Sn;exports.createElement=Hn;exports.createStore=Vn;exports.debounce=gt;exports.decrypt=Y;exports.decryptString=ye;exports.defaultState=j;exports.diffJson=pt;exports.encrypt=G;exports.encryptString=me;exports.generateCacheKey=le;exports.generateUUID=lt;exports.getApiActions=be;exports.getFieldValue=k;exports.isArray=ut;exports.isNotEmpty=M;exports.jsonCopy=yt;exports.labelFormatter=ie;exports.mappingUndefinedtoNull=ct;exports.moment=E;exports.registerApi=Re;exports.renderChildren=ft;exports.sorting=dt;exports.splitElement=In;exports.stableStringify=Ce;exports.summary=mt;exports.unregisterApi=he;exports.useApiLoad=je;exports.useApiLoadStore=V;exports.useApiSend=qn;exports.useApiStore=Ln;exports.useBgsCore=B;exports.useCrypto=J;exports.useDelay=an;exports.useFormatted=dn;exports.useInterval=gn;exports.useKeyPress=bn;exports.useScrollTrigger=Nn;exports.useStorage=ge;exports.wrapApi=it;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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 z from'crypto-js/enc-base64';import ce from'crypto-js/lib-typedarrays';import {create}from'zustand';import {useShallow}from'zustand/react/shallow';import Qe from'axios';function lt(){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 pt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ct=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ut(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 ft(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},dt={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}))},mt=(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 yt(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 gt(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: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(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(z),iv:o.toString(z),encrypted:a}}function Y(e,t){let{salt:n,iv:o,encrypted:s}=e,a=fe(t,z.parse(n),{keySize:256/32,iterations:1e3}),r=ue.decrypt(s,a,{iv:z.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 J(){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}=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=g=>{if(g.key===p)if(g.newValue)try{c(t(JSON.parse(g.newValue)));}catch(C){console.error("Decrypt error from storage event",C);}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}};var j={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},V=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 je(...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}=V(),[g,C,P]=V(useShallow(u=>{let f=u.states[c]??j;return [f.loading,f.isCancel,f.response]})),{storageKey:w,cache:h,clearPreviousData:D,refetchOnWindowFocus:S}=M(),B=ye(),q=useRef(void 0),K=useRef(null),{cacheName:H,cacheKey:F,timeout:re,timeoutUnit:oe,persistence:_,cacheEnabled:y}=useMemo(()=>{let u=w?B.get(w):void 0,f=typeof r?.cache=="object"?r?.cache?.cacheName??a:a,x=ie({...p,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:f,cacheKey:x,timeout:T,timeoutUnit:N,persistence:O,cacheEnabled:m}},[r?.cache,p,w,h,a]);useEffect(()=>{let u=JSON.stringify(L(q.current)?q.current:""),f=JSON.stringify(L(p)?p:""),x=q.current===void 0;(u!==f||x)&&!r?.hold&&((r?.clearPreviousData??D)&&l(c,{response:null}),d(),q.current=p),r?.onChange&&r?.onChange(p,$);},[p,r?.clearPreviousData,D,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 d=useCallback(async u=>{let f=p;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(f=r?.beforeRequest(p)),y&&!u&&!C){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(H),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(c,{loading:false,...T,response:T});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 m=s?await t(void 0,{...r,signal:x.signal}):await t(f,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(c,{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(H),se=new Response(JSON.stringify(T));await N.put(F,se);}}},[p,t,r,C]);useEffect(()=>{if(r?.refreshInterval){let u=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,f=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,x=setInterval(()=>{d();},E.duration(u,f).asMilliseconds());return ()=>clearInterval(x)}return ()=>{}},[r?.refreshInterval,d]);let i=useRef(null),{enabledRefetch:b,timeoutRefetch:A,timeoutUnitRefetch:v}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,f=r?.refetchOnWindowFocus?.timeout??S?.timeout,x=typeof f=="number"?f:f?.value??60*5,m=typeof f=="object"?f.unit:"s";return {enabledRefetch:u,timeoutRefetch:x,timeoutUnitRefetch:m}},[r?.refetchOnWindowFocus,S]);useEffect(()=>{if(!b)return;let u=E.duration(A,v).asMilliseconds(),f=()=>{let m=Date.now(),O=i.current;O!==null&&m-O>=u&&d(),i.current=null;},x=()=>{i.current=Date.now();};return window.addEventListener("focus",f),window.addEventListener("blur",x),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",x);}},[b,A,v,d]);let R=useCallback(()=>{K.current?.abort(),K.current=null,l(c,{loading:false,isCancel:true});},[c,K]),I=useCallback(()=>{l(c,{loading:false,response:null});},[c]),$={...P,loading:g,refresh:d,abort:R,clear:I,response:P,isCancel:C,clone:(u,f)=>je(t,u,f)};return useEffect(()=>(ge(c,$),()=>{Re(c);}),[$,c]),[P?.data,$]}async function an(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ve||{}),We=(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))(We||{});var dn=(e,t,n)=>{let{format:o}=M();return t==="number"?_e(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ge(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ze(e,n):t==="string"?Je(e,n):e?.toString()??""};function ze(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Je(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 _e(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(),g=l.indexOf(".");g!==-1&&(p=l.length-g-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 Ge(e,{display:t,value:n}){if(!L(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function gn(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 bn(e,t,n){let[o,s]=useState(false),a=(l,g)=>typeof e=="string"&&l===e||typeof e=="number"&&g===e,p=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),r=l=>{let{key:g,keyCode:C}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(g,C)&&(t==="ctrl"&&P||t==="alt"&&w||t==="shift"&&h)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));else {let D=t.every(S=>S==="ctrl"?P:S==="alt"?w:S==="shift"?h:false);a(g,C)&&D&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(g,C)&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));},c=({key:l,keyCode:g})=>{a(l,g)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",r),window.addEventListener("keyup",c),()=>{window.removeEventListener("keydown",r),window.removeEventListener("keyup",c);}),[]),o}var Sn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:g,encryptResponse:C,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:D}=J(),S=(y,d,i,b)=>{let A=b?.code==="ERR_CANCELED",v=y?.status===401,R=y?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:C)&&R){let m=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?D:i.passphrase:P;try{R=h(R,m);}catch{try{R=h(R,D);}catch{}}}let u={...o({...y,data:R,isCancel:A,isUnauthorization:v},b),isCancel:A,isUnauthorization:v,httpCode:y.status},f=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:c,x=r?r(u,i):!v;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&p&&(!A||!f)&&p(u),!x&&(!A||!i?.disabledHandleUnauthorized)){let m=i?.onUnauthorized||a;m&&m(u);}if(d)d(u);else return u},B=(y,d=()=>{})=>Qe.create({baseURL:`${e}`,withCredentials:typeof y.withCredentials=="boolean"?y.withCredentials:l})(y).then(d).catch(b=>d(b.response,b)),q=(y,d,i,b,A)=>{let R={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...A},I={"Content-Type":"application/json",...s,...R.headers};if(R.token&&(typeof R.token=="boolean"?t&&(I.Authorization=`Bearer ${t}`):R.token&&(I.Authorization=`Bearer ${R.token}`)),n&&(i=n(i)),(typeof R?.encryptRequest=="boolean"?R?.encryptRequest:g)&&i){let u=A?.passphrase?typeof A.passphrase=="boolean"&&A.passphrase?D:A.passphrase:P;i=w(i,u);}return B({url:d,method:y,data:i,headers:I,responseType:R.responseType,signal:R.signal,withCredentials:R.withCredentials,onUploadProgress:u=>{R?.onUploadProgress&&R?.onUploadProgress(u);}},(u,f)=>S(u,b,R,f))};return {client:B,post:(y,d,i,b)=>q("POST",`${y}`,d,i,b),put:(y,d,i,b)=>q("PUT",`${y}`,d,i,b),patch:(y,d,i,b)=>q("PATCH",`${y}`,d,i,b),delete:(y,d,i)=>q("DELETE",`${y}`,null,d,i),get:(y,d,i)=>q("GET",`${y}`,null,d,i),upload:(y,d,i,b)=>{let A=new FormData;return Object.keys(d).forEach(v=>A.append(v,d[v])),q("POST",`${y}`,A,i,{infoSuccess:false,...b,headers:{"Content-Type":"multipart/form-data",...b?.headers}})}}};function qn(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 P=>{c.current?.abort();let w=new AbortController;c.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 B=Math.round(S.loaded*100/(S.total||1));r(B);}},D=e.__isVoid?await e(void 0,h):await e(P,void 0,h);t?.logging&&console.log("After response",D),a(D),o(false),r(0),D.status&&t?.onSuccess&&t?.onSuccess(D),!D.status&&t?.onError&&t?.onError(D),t?.afterResponse&&t?.afterResponse(D);},{...s,loading:n,abort:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function nt(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 rt=typeof window<"u"?window:null;function Nn(e={}){let{getTrigger:t=nt,target:n=rt,disableHysteresis:o=false,threshold:s=100}=e,a=ne.useRef(0),[p,r]=ne.useState(()=>t(a,{disableHysteresis:o,threshold:s,target:n}));return ne.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 Ln=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=V(useShallow(g=>{let C=g.states[n]??j;return [C.loading,C.isCancel,C.response]})),{refresh:p,abort:r,clear:c,clone:l}=he(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:p,abort:r,clear:c,clone:l}]};var Hn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},In=(e,t)=>{let n={};n.others=[];let o=s=>{ne.Children.forEach(s,a=>{if(ne.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 Vn(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,g=c.current;return Object.is(g,l)||(c.current=l),c.current},()=>r?r(t):t)}return {getSnapshot:o,subscribe:s,setState:a,useStore:p}}function it(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]=it(s,[...t,o]):n[o]=s;}return n}export{Fe as BgsCoreProvider,We as DataTypeEnum,Ve as HttpMethod,le as capitalizeWords,Sn as createApiHelper,Hn as createElement,Vn as createStore,gt as debounce,Y as decrypt,me as decryptString,j as defaultState,pt as diffJson,G as encrypt,de as encryptString,ie as generateCacheKey,lt as generateUUID,he as getApiActions,k as getFieldValue,ut as isArray,L as isNotEmpty,yt as jsonCopy,ae as labelFormatter,ct as mappingUndefinedtoNull,E as moment,ge as registerApi,ft as renderChildren,dt as sorting,In as splitElement,Ce as stableStringify,mt as summary,Re as unregisterApi,je as useApiLoad,V as useApiLoadStore,qn as useApiSend,Ln as useApiStore,M as useBgsCore,J as useCrypto,an as useDelay,dn as useFormatted,gn as useInterval,bn as useKeyPress,Nn as useScrollTrigger,ye as useStorage,it as wrapApi};
|
|
1
|
+
import re,{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 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 Qe from'axios';function lt(){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 pt(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var ct=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ut(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 ft(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},dt={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}))},mt=(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 yt(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 gt(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 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(T){console.error("Decrypt error from storage event",T);}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}};var j={loading:false,response:void 0,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{},data:void 0},V=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,Re=(e,t)=>{Z.set(e,t);},he=e=>{Z.delete(e);},be=e=>Z.get(e);function je(...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}=V(),[m,T,P]=V(useShallow(u=>{let d=u.states[c]??j;return [d.loading,d.isCancel,d.response]})),{storageKey:w,cache:h,clearPreviousData:C,refetchOnWindowFocus:S}=B(),H=ge(),q=useRef(void 0),K=useRef(null),{cacheName:I,cacheKey:F,timeout:oe,timeoutUnit:se,persistence:_,cacheEnabled:y}=useMemo(()=>{let u=w?H.get(w):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 O=false;typeof h?.persistence=="boolean"&&(O=h?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(O=r?.cache?.persistence??false);let A=60*5,N="s";return M(h?.timeout)&&(typeof h?.timeout=="number"?(A=h.timeout,N="s"):typeof h?.timeout=="object"&&(A=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"?(A=r.cache.timeout,N="s"):typeof r.cache.timeout=="object"&&(A=r.cache.timeout.value,N=r.cache.timeout.unit)):g=r.cache),{cacheName:d,cacheKey:x,timeout:A,timeoutUnit:N,persistence:O,cacheEnabled:g}},[r?.cache,p,w,h,a]);useEffect(()=>{let u=JSON.stringify(M(q.current)?q.current:""),d=JSON.stringify(M(p)?p:""),x=q.current===void 0;(u!==d||x)&&!r?.hold&&((r?.clearPreviousData??C)&&l(c,{response:null}),f(),q.current=p),r?.onChange&&r?.onChange(p,$);},[p,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,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&&!T){l(c,{loading:true}),r?.onBeforeRequest&&r?.onBeforeRequest(p);let x=await caches.open(I),O=await(await x.match(F))?.json();if(O){let{data:A,expired:N}=O;if(E().isAfter(N))await x.delete(F);else {r?.afterResponse&&A?.data&&(A.data=r?.afterResponse(A.data)),r?.logging&&console.log("After request: Using Cache",A),r?.onAfterResponse&&r?.onAfterResponse(A),l(c,{loading:false,response:A});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 O=E().add(oe,se).toISOString(),A={data:g,expired:O},N=await caches.open(I),ae=new Response(JSON.stringify(A));await N.put(F,ae);}}},[p,t,r,T]);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:b,timeoutRefetch:D,timeoutUnitRefetch:v}=useMemo(()=>{let u=r?.refetchOnWindowFocus?.enabled??S?.enabled??false,d=r?.refetchOnWindowFocus?.timeout??S?.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,S]);useEffect(()=>{if(!b)return;let u=E.duration(D,v).asMilliseconds(),d=()=>{let g=Date.now(),O=i.current;O!==null&&g-O>=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);}},[b,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(()=>({...P,loading:m,refresh:f,abort:R,clear:L,response:P,isCancel:T,clone:(u,d)=>je(t,u,d)}),[P,m,f,R,L,T,t]);return useEffect(()=>(Re(c,$),()=>{he(c);}),[$,c]),[P?.data,$]}async function an(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Ve=(a=>(a.POST="POST",a.PUT="PUT",a.PATCH="PATCH",a.DELETE="DELETE",a.GET="GET",a))(Ve||{}),We=(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))(We||{});var dn=(e,t,n)=>{let{format:o}=B();return t==="number"?_e(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ge(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?ze(e,n):t==="string"?Je(e,n):e?.toString()??""};function ze(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function Je(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 _e(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 Ge(e,{display:t,value:n}){if(!M(e))return e;let o=E(e,n);return o.isValid()?o.format(t):e}function gn(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 bn(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:T}=l,P=l.ctrlKey,w=l.altKey,h=l.shiftKey;if(!p(document.activeElement))if(t)if(typeof t=="string")a(m,T)&&(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(m,T)&&C&&(l.preventDefault(),n&&l.stopPropagation(),s(!o));}else a(m,T)&&(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 Sn=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:a,handleToast:p,handleAuthorization:r,disabledToastWhenCancel:c,withCredentials:l,encryptRequest:m,encryptResponse:T,passphrase:P})=>{let{encrypt:w,decrypt:h,passphrase:C}=J(),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:T)&&R){let g=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?C:i.passphrase:P;try{R=h(R,g);}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},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},H=(y,f=()=>{})=>Qe.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},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?C:D.passphrase:P;i=w(i,u);}return H({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)=>S(u,b,R,d))};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 qn(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 P=>{c.current?.abort();let w=new AbortController;c.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:()=>{c.current?.abort(),c.current=null,o(false),r(0);},progress:p,reset:()=>{o(false),r(0),a(null);}}]}function nt(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 rt=typeof window<"u"?window:null;function Nn(e={}){let{getTrigger:t=nt,target:n=rt,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 Ln=(e,t)=>{let n=t||e.__path||e.name,[o,s,a]=V(useShallow(m=>{let T=m.states[n]??j;return [T.loading,T.isCancel,T.response]})),{refresh:p,abort:r,clear:c,clone:l}=be(n)||{};return [a?.data,{...a,loading:o,isCancel:s,refresh:p,abort:r,clear:c,clone:l}]};var Hn=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},In=(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 Vn(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 it(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]=it(s,[...t,o]):n[o]=s;}return n}export{Fe as BgsCoreProvider,We as DataTypeEnum,Ve as HttpMethod,pe as capitalizeWords,Sn as createApiHelper,Hn as createElement,Vn as createStore,gt as debounce,Y as decrypt,ye as decryptString,j as defaultState,pt as diffJson,G as encrypt,me as encryptString,le as generateCacheKey,lt as generateUUID,be as getApiActions,k as getFieldValue,ut as isArray,M as isNotEmpty,yt as jsonCopy,ie as labelFormatter,ct as mappingUndefinedtoNull,E as moment,Re as registerApi,ft as renderChildren,dt as sorting,In as splitElement,Ce as stableStringify,mt as summary,he as unregisterApi,je as useApiLoad,V as useApiLoadStore,qn as useApiSend,Ln as useApiStore,B as useBgsCore,J as useCrypto,an as useDelay,dn as useFormatted,gn as useInterval,bn as useKeyPress,Nn as useScrollTrigger,ge as useStorage,it 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.46",
|
|
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",
|