@bgscore/react-core 0.0.19 → 0.0.21
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.d.cts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var z=require('moment'),X=require('react'),jsxRuntime=require('react/jsx-runtime'),ie=require('crypto-js/aes'),pe=require('crypto-js/pbkdf2'),xe=require('crypto-js/enc-utf8'),B=require('crypto-js/enc-base64'),ae=require('crypto-js/lib-typedarrays'),Fe=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var z__default=/*#__PURE__*/_interopDefault(z);var X__default=/*#__PURE__*/_interopDefault(X);var ie__default=/*#__PURE__*/_interopDefault(ie);var pe__default=/*#__PURE__*/_interopDefault(pe);var xe__default=/*#__PURE__*/_interopDefault(xe);var B__default=/*#__PURE__*/_interopDefault(B);var ae__default=/*#__PURE__*/_interopDefault(ae);var Fe__default=/*#__PURE__*/_interopDefault(Fe);function je(){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 Ve(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var We=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ze(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function N(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 re={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,a)=>a.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=re.snackCase(re.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Je(e,t){return typeof e=="function"?e(t):e}var U=(e,t,r="")=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let s of n){if(a==null)return r;a=a[s];}return a===void 0?r:a},_e={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=U(r,t)?U(r,t):"",s=U(n,t)?U(r,t):"";return a<s?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=U(r,t)?U(r,t):"",s=U(n,t)?U(n,t):"";return a>s?1:-1}else return r>n?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?U(n,t)||0:n||0)),r.reduce((n,a)=>(n||0)+(a||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ge(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{})):n})??""}function ne(e,t){return ge([t??"undefined",e??"undefined"])}function oe(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var se=X.createContext(void 0);function k(){let e=X.useContext(se);return e||{}}var be=({children:e,value:t})=>{let r={...t};return jsxRuntime.jsx(se.Provider,{value:r,children:e})};function $(e,t){let r=ae__default.default.random(16),n=ae__default.default.random(16),a=pe__default.default(t,r,{keySize:256/32,iterations:1e3}),s=ie__default.default.encrypt(JSON.stringify(e),a,{iv:n}).toString();return {salt:r.toString(B__default.default),iv:n.toString(B__default.default),encrypted:s}}function j(e,t){let{salt:r,iv:n,encrypted:a}=e,s=pe__default.default(t,B__default.default.parse(r),{keySize:256/32,iterations:1e3}),l=ie__default.default.decrypt(a,s,{iv:B__default.default.parse(n)}).toString(xe__default.default);return JSON.parse(l)}function le(e,t){return JSON.stringify($(e,t))}function ce(e,t){return j(JSON.parse(e),t)}function H(){let{passphrase:e}=k();return {passphrase:e,encrypt(t,r){return $(t,r||e)},decrypt(t,r){return j(t,r||e)},encryptString(t,r){return le(t,r||e)},decryptString(t,r){return ce(t,r||e)}}}var ue=()=>{let{encrypt:e,decrypt:t}=H(),r=X.useCallback((o,l)=>{try{let d=e(l);localStorage.setItem(o,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),n=X.useCallback(o=>{try{let l=localStorage.getItem(o);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to get from storage:",l),null}},[t]),a=o=>{let[l,d]=X.useState(()=>{try{let p=localStorage.getItem(o);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return X.useEffect(()=>{let p=R=>{if(R.key===o)if(R.newValue)try{d(t(JSON.parse(R.newValue)));}catch(O){console.error("Decrypt error from storage event",O);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[o,t]),l},s=X.useCallback(o=>{o?localStorage.removeItem(o):localStorage.clear();},[]);return {save:r,get:n,clear:s,useWatchStorage:a}};function fe(e){let t=e,r=new Set;function n(){return t}function a(l){return r.add(l),()=>r.delete(l)}function s(l){typeof l=="function"?t=l(t):t=l,r.forEach(d=>d());}function o(l){return X.useSyncExternalStore(a,()=>l?l(t):t,()=>l?l(t):t)}return {getSnapshot:n,subscribe:a,setState:s,useStore:o}}var W=new Map;function M(e){return W.has(e)||W.set(e,fe([null,{}])),W.get(e)}function _(e,t,r){let n=!e.__isVoid,a=e.__path||e.name,s=n?t:void 0,o=n?r:t,l=o?.storeName||a,{storageKey:d,cache:p}=k(),R=ue(),[O,T]=X.useState(false),[q,P]=X.useState(false),[x,D]=X.useState(),w=X.useRef(void 0),A=X.useRef(null),{cacheName:v,cacheKey:E,timeout:Y,timeoutUnit:Z,persistence:Q,cacheEnabled:L}=X.useMemo(()=>{let m=d?R.get(d):void 0,b=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,c=ne({...s,session:m},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),g=false;typeof p?.enabled=="boolean"&&(g=p.enabled);let S=false;typeof p?.persistence=="boolean"&&(S=p?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(S=o?.cache?.persistence??false);let u=60*5,C="s";return N(p?.timeout)&&(typeof p?.timeout=="number"?(u=p.timeout,C="s"):typeof p?.timeout=="object"&&(u=p?.timeout.value,C=p?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?g=o.cache.enabled:g=true,typeof o.cache.timeout=="number"?(u=o.cache.timeout,C="s"):typeof o.cache.timeout=="object"&&(u=o.cache.timeout.value,C=o.cache.timeout.unit)):g=o.cache),{cacheName:b,cacheKey:c,timeout:u,timeoutUnit:C,persistence:S,cacheEnabled:g}},[o?.cache,d,p]);X.useEffect(()=>{let m=JSON.stringify(N(w.current)?w.current:""),b=JSON.stringify(N(s)?s:""),c=w.current===void 0;(m!==b||c)&&!o?.hold&&(D(null),f(),w.current=s),o?.onChange&&o?.onChange(s,h);},[s,o?.hold,...o?.trigger||[]]),X.useEffect(()=>{let m=async()=>{!Q&&v&&E&&(await caches.open(v)).delete(E);};return window.addEventListener("beforeunload",m),()=>{window.removeEventListener("beforeunload",m),A.current?.abort();}},[]);let f=X.useCallback(async m=>{let b=s;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(b=o?.beforeRequest(s)),L&&!m&&!q){T(true),o?.onBeforeRequest&&o?.onBeforeRequest(s);let c=await caches.open(v),S=await(await c.match(E))?.json();if(S){let{data:u,expired:C}=S;if(z__default.default().isAfter(C))await c.delete(E);else {o?.afterResponse&&u?.data&&(u.data=o?.afterResponse(u.data)),o?.logging&&console.log("After request: Using Cache",u),o?.onAfterResponse&&o?.onAfterResponse(u),T(false),D(u),l&&M(l).setState([u.data,{...u,loading:false,refresh:f,abort:y,clear:i,response:u,isCancel:false,clone:(ee,te)=>_(e,ee,te)}]);return}}}if(typeof e=="function"){A.current?.abort();let c=new AbortController;A.current=c,T(true),o?.logging&&console.log("Before request",s),o?.onBeforeRequest&&o?.onBeforeRequest(s);let g=n?await e(b,void 0,{...o,signal:c.signal}):await e(void 0,{...o,signal:c.signal});if(o?.afterResponse&&g?.data&&(g.data=o?.afterResponse(g.data)),o?.logging&&console.log("After request",g),o?.onAfterResponse&&o?.onAfterResponse(g),T(false),D(g),P(false),l&&M(l).setState([g?.data,{...g,loading:false,refresh:f,abort:y,clear:i,response:g,isCancel:false,clone:(u,C)=>_(e,u,C)}]),L&&g.status){let S=z__default.default().add(Y,Z).toISOString(),u={data:g,expired:S},C=await caches.open(v),F=new Response(JSON.stringify(u));await C.put(E,F);}}},[s,e,o]);X.useEffect(()=>{if(o?.refreshInterval){let m=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,b=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,c=setInterval(()=>{f();},z__default.default.duration(m,b).asMilliseconds());return ()=>clearInterval(c)}return ()=>{}},[o?.refreshInterval,f]),X.useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let m=()=>{f();};return window.addEventListener("focus",m),()=>{window.removeEventListener("focus",m);}},[o?.refetchOnWindowFocus,f]);let y=()=>{A.current?.abort(),A.current=null,T(false),P(true);},i=()=>{T(false),D(null);},h={...x,loading:O,refresh:f,abort:y,clear:i,response:x,isCancel:q,clone:(m,b)=>_(e,m,b)};return [x?.data,h]}async function Ot(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var Oe=(s=>(s.POST="POST",s.PUT="PUT",s.PATCH="PATCH",s.DELETE="DELETE",s.GET="GET",s))(Oe||{}),qe=(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))(qe||{});var Et=(e,t,r)=>{let{format:n}=k();return t==="number"?ke(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(a=>a===t)?Ee(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?Ue(e,r):t==="string"?Ne(e,r):e?.toString()??""};function Ue(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return r?n:a}function Ne(e,t){if(!N(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=oe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}function ke(e,{thouSep:t,decSep:r,decDigits:n,method:a}){if(e==null||isNaN(Number(e)))return "";let s=typeof e=="string"?parseFloat(e):e;if(a)if(typeof n=="number"){let p=Math.pow(10,n);s=Math[a](s*p)/p;}else s=Math[a](s);else if(typeof n=="number"){let p=Math.pow(10,n);s=Math.floor(s*p)/p;}let o=0;if(n==="auto"){let p=s.toString(),R=p.indexOf(".");R!==-1&&(o=p.length-R-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return s.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function Ee(e,{display:t,value:r}){if(!N(e))return e;let n=z__default.default(e,r);return n.isValid()?n.format(t):e}function Mt(e,{interval:t,lead:r}){let n=X.useRef(null);X.useEffect(()=>{n.current=e;},[e]),X.useEffect(()=>{let a=()=>n.current();if(r&&a(),t!==null){let s=setInterval(a,t);return ()=>clearInterval(s)}},[t]);}function Ht(e,t,r){let[n,a]=X.useState(false),s=(p,R)=>typeof e=="string"&&p===e||typeof e=="number"&&R===e,o=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),l=p=>{let{key:R,keyCode:O}=p,T=p.ctrlKey,q=p.altKey,P=p.shiftKey;if(!o(document.activeElement))if(t)if(typeof t=="string")s(R,O)&&(t==="ctrl"&&T||t==="alt"&&q||t==="shift"&&P)&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));else {let x=t.every(D=>D==="ctrl"?T:D==="alt"?q:D==="shift"?P:false);s(R,O)&&x&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));}else s(R,O)&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));},d=({key:p,keyCode:R})=>{s(p,R)&&a(false);};return X.useEffect(()=>(window.addEventListener("keydown",l),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",l),window.removeEventListener("keyup",d);}),[]),n}var zt=({url:e,token:t,beforeRequest:r,onCallback:n,headers:a,onUnauthorized:s,handleToast:o,handleAuthorization:l,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:R,encryptResponse:O,passphrase:T})=>{let{encrypt:q,decrypt:P,passphrase:x}=H(),D=(f,y,i,h)=>{let m=h?.code==="ERR_CANCELED",b=f.status===401,c=f?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:O)&&c){let K=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?x:i.passphrase:T;try{c=P(c,K);}catch{try{c=P(c,x);}catch{}}}let u={...n({...f,data:c,isCancel:m,isUnauthorization:b},h),isCancel:m,isUnauthorization:b,httpCode:f.status},C=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:d,F=l?l(u,i):!b;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&o&&(!m||!C)&&o(u),!F&&(!m||!i?.disabledHandleUnauthorized)){let K=i?.onUnauthorized||s;K&&K(u);}if(y)y(u);else return u},w=(f,y=()=>{})=>Fe__default.default.create({baseURL:`${e}`,withCredentials:typeof f.withCredentials=="boolean"?f.withCredentials:p})(f).then(y).catch(h=>y(h.response,h)),A=(f,y,i,h,m)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...m},g={"Content-Type":"application/json",...a,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(g.Authorization=`Bearer ${t}`):c.token&&(g.Authorization=`Bearer ${c.token}`)),r&&(i=r(i)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:R)&&i){let u=m?.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?x:m.passphrase:T;i=q(i,u);}return w({url:y,method:f,data:i,headers:g,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:u=>{c?.onUploadProgress&&c?.onUploadProgress(u);}},(u,C)=>D(u,h,c,C))};return {client:w,post:(f,y,i,h)=>A("POST",`${f}`,y,i,h),put:(f,y,i,h)=>A("PUT",`${f}`,y,i,h),patch:(f,y,i,h)=>A("PATCH",`${f}`,y,i,h),delete:(f,y,i)=>A("DELETE",`${f}`,null,y,i),get:(f,y,i)=>A("GET",`${f}`,null,y,i),upload:(f,y,i,h)=>{let m=new FormData;return Object.keys(y).forEach(b=>m.append(b,y[b])),A("POST",`${f}`,m,i,{infoSuccess:false,...h,headers:{"Content-Type":"multipart/form-data",...h?.headers}})}}};function Gt(e,t){let[r,n]=X.useState(false),[a,s]=X.useState(),[o,l]=X.useState(0),d=X.useRef(null);return X.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async T=>{d.current?.abort();let q=new AbortController;d.current=q,n(true),t?.beforeRequest&&(T=t?.beforeRequest(T)),t?.logging&&console.log("Before request",T);let P={...t,signal:q.signal,onUploadProgress:D=>{let w=Math.round(D.loaded*100/(D.total||1));l(w);}},x=e.__isVoid?await e(void 0,P):await e(T,void 0,P);t?.logging&&console.log("After response",x),s(x),n(false),l(0),x.status&&t?.onSuccess&&t?.onSuccess(x),!x.status&&t?.onError&&t?.onError(x),t?.afterResponse&&t?.afterResponse(x);},{...a,loading:r,abort:()=>{d.current?.abort(),d.current=null,n(false),l(0);},progress:o,reset:()=>{n(false),l(0),s(null);}}]}function Ie(e,t){let{disableHysteresis:r=false,threshold:n=100,target:a}=t,s=e.current;return a&&(typeof a.pageYOffset=="number"?e.current=a.pageYOffset:a.scrollTop!==void 0&&(e.current=a.scrollTop)),!r&&s!==void 0&&e.current<s?false:(e.current||0)>n}var Le=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=Ie,target:r=Le,disableHysteresis:n=false,threshold:a=100}=e,s=X__default.default.useRef(0),[o,l]=X__default.default.useState(()=>t(s,{disableHysteresis:n,threshold:a,target:r}));return X__default.default.useEffect(()=>{let d=()=>{l(t(s,{disableHysteresis:n,threshold:a,target:r}));};if(d(),r)return r.addEventListener("scroll",d,{passive:true}),()=>{r.removeEventListener("scroll",d);}},[r,t,n,a]),o}var tr=(e,t)=>{let r=t||e.__path||e.name;return M(r).useStore()};var or=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},sr=(e,t)=>{let r={};r.others=[];let n=a=>{X__default.default.Children.forEach(a,s=>{if(X__default.default.isValidElement(s)){let o=s.type.displayName;if(t.includes(o))r[o]=s;else {let l=s;l.props?.children?n(l.props.children):r.others.push(s);}}else r.others.push(s);});};return n(e),r};function $e(e,t=[]){let r={};for(let n in e){let a=e[n];if(typeof a=="function"){let s=a.bind(null);s.__path=[...t,n].join("."),s.__isVoid=a.length===2,r[n]=s;}else typeof a=="object"&&a!==null?r[n]=$e(a,[...t,n]):r[n]=a;}return r}exports.BgsCoreProvider=be;exports.DataTypeEnum=qe;exports.HttpMethod=Oe;exports.capitalizeWords=oe;exports.createApiHelper=zt;exports.createElement=or;exports.createStore=fe;exports.debounce=Ye;exports.decrypt=j;exports.decryptString=ce;exports.diffJson=Ve;exports.encrypt=$;exports.encryptString=le;exports.generateCacheKey=ne;exports.generateUUID=je;exports.getFieldValue=U;exports.isArray=ze;exports.isNotEmpty=N;exports.jsonCopy=Xe;exports.labelFormatter=re;exports.mappingUndefinedtoNull=We;exports.renderChildren=Je;exports.sorting=_e;exports.splitElement=sr;exports.stableStringify=ge;exports.summary=Ge;exports.useApiLoad=_;exports.useApiSend=Gt;exports.useApiStore=tr;exports.useBgsCore=k;exports.useCrypto=H;exports.useDelay=Ot;exports.useFormatted=Et;exports.useInterval=Mt;exports.useKeyPress=Ht;exports.useScrollTrigger=Zt;exports.useStorage=ue;exports.wrapApi=$e;
|
|
1
|
+
'use strict';var J=require('moment'),Y=require('react'),jsxRuntime=require('react/jsx-runtime'),ae=require('crypto-js/aes'),ie=require('crypto-js/pbkdf2'),Te=require('crypto-js/enc-utf8'),M=require('crypto-js/enc-base64'),se=require('crypto-js/lib-typedarrays'),Fe=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var J__default=/*#__PURE__*/_interopDefault(J);var Y__default=/*#__PURE__*/_interopDefault(Y);var ae__default=/*#__PURE__*/_interopDefault(ae);var ie__default=/*#__PURE__*/_interopDefault(ie);var Te__default=/*#__PURE__*/_interopDefault(Te);var M__default=/*#__PURE__*/_interopDefault(M);var se__default=/*#__PURE__*/_interopDefault(se);var Fe__default=/*#__PURE__*/_interopDefault(Fe);function je(){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 Ve(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var We=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ze(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function E(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 te={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,a)=>a.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=te.snackCase(te.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Je(e,t){return typeof e=="function"?e(t):e}var k=(e,t,r="")=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let s of n){if(a==null)return r;a=a[s];}return a===void 0?r:a},_e={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=k(r,t)?k(r,t):"",s=k(n,t)?k(r,t):"";return a<s?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=k(r,t)?k(r,t):"",s=k(n,t)?k(n,t):"";return a>s?1:-1}else return r>n?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?k(n,t)||0:n||0)),r.reduce((n,a)=>(n||0)+(a||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ye(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{})):n})??""}function re(e,t){return ye([t??"undefined",e??"undefined"])}function ne(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var oe=Y.createContext(void 0);function v(){let e=Y.useContext(oe);return e||{}}var he=({children:e,value:t})=>{let r={...t};return jsxRuntime.jsx(oe.Provider,{value:r,children:e})};function j(e,t){let r=se__default.default.random(16),n=se__default.default.random(16),a=ie__default.default(t,r,{keySize:256/32,iterations:1e3}),s=ae__default.default.encrypt(JSON.stringify(e),a,{iv:n}).toString();return {salt:r.toString(M__default.default),iv:n.toString(M__default.default),encrypted:s}}function V(e,t){let{salt:r,iv:n,encrypted:a}=e,s=ie__default.default(t,M__default.default.parse(r),{keySize:256/32,iterations:1e3}),p=ae__default.default.decrypt(a,s,{iv:M__default.default.parse(n)}).toString(Te__default.default);return JSON.parse(p)}function le(e,t){return JSON.stringify(j(e,t))}function pe(e,t){return V(JSON.parse(e),t)}function B(){let{passphrase:e}=v();return {passphrase:e,encrypt(t,r){return j(t,r||e)},decrypt(t,r){return V(t,r||e)},encryptString(t,r){return le(t,r||e)},decryptString(t,r){return pe(t,r||e)}}}var ce=()=>{let{encrypt:e,decrypt:t}=B(),r=Y.useCallback((o,p)=>{try{let d=e(p);localStorage.setItem(o,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),n=Y.useCallback(o=>{try{let p=localStorage.getItem(o);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to get from storage:",p),null}},[t]),a=o=>{let[p,d]=Y.useState(()=>{try{let l=localStorage.getItem(o);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return Y.useEffect(()=>{let l=y=>{if(y.key===o)if(y.newValue)try{d(t(JSON.parse(y.newValue)));}catch(w){console.error("Decrypt error from storage event",w);}else d(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[o,t]),p},s=Y.useCallback(o=>{o?localStorage.removeItem(o):localStorage.clear();},[]);return {save:r,get:n,clear:s,useWatchStorage:a}};function ue(e){let t=e,r=new Set;function n(){return t}function a(p){return r.add(p),()=>r.delete(p)}function s(p){typeof p=="function"?t=p(t):t=p,r.forEach(d=>d());}function o(p){return Y.useSyncExternalStore(a,()=>p?p(t):t,()=>p?p(t):t)}return {getSnapshot:n,subscribe:a,setState:s,useStore:o}}var z=new Map;function H(e){return z.has(e)||z.set(e,ue([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}])),z.get(e)}function Pe(e,t,r){let n=!e.__isVoid,a=e.__path||e.name,s=n?t:void 0,o=n?r:t,p=o?.storeName||a,{storageKey:d,cache:l}=v(),y=ce(),[w,h]=Y.useState(false),[U,q]=Y.useState(false),[b,P]=Y.useState(),N=Y.useRef(void 0),S=Y.useRef(null),{cacheName:F,cacheKey:K,timeout:Z,timeoutUnit:Q,persistence:ee,cacheEnabled:L}=Y.useMemo(()=>{let c=d?y.get(d):void 0,R=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,C=re({...s,session:c},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),f=false;typeof l?.enabled=="boolean"&&(f=l.enabled);let O=false;typeof l?.persistence=="boolean"&&(O=l?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(O=o?.cache?.persistence??false);let T=60*5,A="s";return E(l?.timeout)&&(typeof l?.timeout=="number"?(T=l.timeout,A="s"):typeof l?.timeout=="object"&&(T=l?.timeout.value,A=l?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?f=o.cache.enabled:f=true,typeof o.cache.timeout=="number"?(T=o.cache.timeout,A="s"):typeof o.cache.timeout=="object"&&(T=o.cache.timeout.value,A=o.cache.timeout.unit)):f=o.cache),{cacheName:R,cacheKey:C,timeout:T,timeoutUnit:A,persistence:O,cacheEnabled:f}},[o?.cache,d,l]);Y.useEffect(()=>{let c=JSON.stringify(E(N.current)?N.current:""),R=JSON.stringify(E(s)?s:""),C=N.current===void 0;(c!==R||C)&&!o?.hold&&(P(null),u(),N.current=s),o?.onChange&&o?.onChange(s,x);},[s,o?.hold,...o?.trigger||[]]),Y.useEffect(()=>{let c=async()=>{!ee&&F&&K&&(await caches.open(F)).delete(K);};return window.addEventListener("beforeunload",c),()=>{window.removeEventListener("beforeunload",c),S.current?.abort();}},[]);let u=Y.useCallback(async c=>{let R=s;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(R=o?.beforeRequest(s)),L&&!c&&!U){h(true),D({loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(s);let C=await caches.open(F),O=await(await C.match(K))?.json();if(O){let{data:T,expired:A}=O;if(J__default.default().isAfter(A))await C.delete(K);else {o?.afterResponse&&T?.data&&(T.data=o?.afterResponse(T.data)),o?.logging&&console.log("After request: Using Cache",T),o?.onAfterResponse&&o?.onAfterResponse(T),h(false),P(T),D({loading:false,response:T});return}}}if(typeof e=="function"){S.current?.abort();let C=new AbortController;S.current=C,h(true),D({loading:true}),o?.logging&&console.log("Before request",s),o?.onBeforeRequest&&o?.onBeforeRequest(s);let f=n?await e(R,void 0,{...o,signal:C.signal}):await e(void 0,{...o,signal:C.signal});if(o?.afterResponse&&f?.data&&(f.data=o?.afterResponse(f.data)),o?.logging&&console.log("After request",f),o?.onAfterResponse&&o?.onAfterResponse(f),h(false),P(f),q(false),D({response:f,loading:false,isCancel:false}),L&&f.status){let O=J__default.default().add(Z,Q).toISOString(),T={data:f,expired:O},A=await caches.open(F),$=new Response(JSON.stringify(T));await A.put(K,$);}}},[s,e,o]);Y.useEffect(()=>{if(o?.refreshInterval){let c=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,R=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,C=setInterval(()=>{u();},J__default.default.duration(c,R).asMilliseconds());return ()=>clearInterval(C)}return ()=>{}},[o?.refreshInterval,u]),Y.useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let c=()=>{u();};return window.addEventListener("focus",c),()=>{window.removeEventListener("focus",c);}},[o?.refetchOnWindowFocus,u]);let m=()=>{S.current?.abort(),S.current=null,h(false),q(true),D({isCancel:true,loading:false});},i=()=>{h(false),P(null),D({response:void 0,loading:false});},g=Y.useCallback((c,R)=>Pe(e,c,R),[e]),x={...b,loading:w,refresh:u,abort:m,clear:i,response:b,isCancel:U,clone:g},D=Y.useCallback(({response:c,loading:R,isCancel:C})=>{H(p).setState([c?.data,{...c,loading:R,refresh:u,abort:m,clear:i,response:c,isCancel:C,clone:g}]);},[u,m,i,g,p]);return [b?.data,x]}async function Ot(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var Se=(s=>(s.POST="POST",s.PUT="PUT",s.PATCH="PATCH",s.DELETE="DELETE",s.GET="GET",s))(Se||{}),Oe=(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))(Oe||{});var Et=(e,t,r)=>{let{format:n}=v();return t==="number"?Ne(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(a=>a===t)?ke(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?we(e,r):t==="string"?Ue(e,r):e?.toString()??""};function we(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return r?n:a}function Ue(e,t){if(!E(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=ne(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:a}){if(e==null||isNaN(Number(e)))return "";let s=typeof e=="string"?parseFloat(e):e;if(a)if(typeof n=="number"){let l=Math.pow(10,n);s=Math[a](s*l)/l;}else s=Math[a](s);else if(typeof n=="number"){let l=Math.pow(10,n);s=Math.floor(s*l)/l;}let o=0;if(n==="auto"){let l=s.toString(),y=l.indexOf(".");y!==-1&&(o=l.length-y-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return s.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function ke(e,{display:t,value:r}){if(!E(e))return e;let n=J__default.default(e,r);return n.isValid()?n.format(t):e}function Ft(e,{interval:t,lead:r}){let n=Y.useRef(null);Y.useEffect(()=>{n.current=e;},[e]),Y.useEffect(()=>{let a=()=>n.current();if(r&&a(),t!==null){let s=setInterval(a,t);return ()=>clearInterval(s)}},[t]);}function Ht(e,t,r){let[n,a]=Y.useState(false),s=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,o=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),p=l=>{let{key:y,keyCode:w}=l,h=l.ctrlKey,U=l.altKey,q=l.shiftKey;if(!o(document.activeElement))if(t)if(typeof t=="string")s(y,w)&&(t==="ctrl"&&h||t==="alt"&&U||t==="shift"&&q)&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));else {let b=t.every(P=>P==="ctrl"?h:P==="alt"?U:P==="shift"?q:false);s(y,w)&&b&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));}else s(y,w)&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));},d=({key:l,keyCode:y})=>{s(l,y)&&a(false);};return Y.useEffect(()=>(window.addEventListener("keydown",p),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",p),window.removeEventListener("keyup",d);}),[]),n}var zt=({url:e,token:t,beforeRequest:r,onCallback:n,headers:a,onUnauthorized:s,handleToast:o,handleAuthorization:p,disabledToastWhenCancel:d,withCredentials:l,encryptRequest:y,encryptResponse:w,passphrase:h})=>{let{encrypt:U,decrypt:q,passphrase:b}=B(),P=(u,m,i,g)=>{let x=g?.code==="ERR_CANCELED",D=u.status===401,c=u?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:w)&&c){let A=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?b:i.passphrase:h;try{c=q(c,A);}catch{try{c=q(c,b);}catch{}}}let f={...n({...u,data:c,isCancel:x,isUnauthorization:D},g),isCancel:x,isUnauthorization:D,httpCode:u.status},O=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:d,T=p?p(f,i):!D;if((i?.infoSuccess&&f.status||i?.infoError&&!f.status)&&o&&(!x||!O)&&o(f),!T&&(!x||!i?.disabledHandleUnauthorized)){let A=i?.onUnauthorized||s;A&&A(f);}if(m)m(f);else return f},N=(u,m=()=>{})=>Fe__default.default.create({baseURL:`${e}`,withCredentials:typeof u.withCredentials=="boolean"?u.withCredentials:l})(u).then(m).catch(g=>m(g.response,g)),S=(u,m,i,g,x)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},R={"Content-Type":"application/json",...a,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(R.Authorization=`Bearer ${t}`):c.token&&(R.Authorization=`Bearer ${c.token}`)),r&&(i=r(i)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:y)&&i){let f=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?b:x.passphrase:h;i=U(i,f);}return N({url:m,method:u,data:i,headers:R,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:f=>{c?.onUploadProgress&&c?.onUploadProgress(f);}},(f,O)=>P(f,g,c,O))};return {client:N,post:(u,m,i,g)=>S("POST",`${u}`,m,i,g),put:(u,m,i,g)=>S("PUT",`${u}`,m,i,g),patch:(u,m,i,g)=>S("PATCH",`${u}`,m,i,g),delete:(u,m,i)=>S("DELETE",`${u}`,null,m,i),get:(u,m,i)=>S("GET",`${u}`,null,m,i),upload:(u,m,i,g)=>{let x=new FormData;return Object.keys(m).forEach(D=>x.append(D,m[D])),S("POST",`${u}`,x,i,{infoSuccess:false,...g,headers:{"Content-Type":"multipart/form-data",...g?.headers}})}}};function Gt(e,t){let[r,n]=Y.useState(false),[a,s]=Y.useState(),[o,p]=Y.useState(0),d=Y.useRef(null);return Y.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async h=>{d.current?.abort();let U=new AbortController;d.current=U,n(true),t?.beforeRequest&&(h=t?.beforeRequest(h)),t?.logging&&console.log("Before request",h);let q={...t,signal:U.signal,onUploadProgress:P=>{let N=Math.round(P.loaded*100/(P.total||1));p(N);}},b=e.__isVoid?await e(void 0,q):await e(h,void 0,q);t?.logging&&console.log("After response",b),s(b),n(false),p(0),b.status&&t?.onSuccess&&t?.onSuccess(b),!b.status&&t?.onError&&t?.onError(b),t?.afterResponse&&t?.afterResponse(b);},{...a,loading:r,abort:()=>{d.current?.abort(),d.current=null,n(false),p(0);},progress:o,reset:()=>{n(false),p(0),s(null);}}]}function He(e,t){let{disableHysteresis:r=false,threshold:n=100,target:a}=t,s=e.current;return a&&(typeof a.pageYOffset=="number"?e.current=a.pageYOffset:a.scrollTop!==void 0&&(e.current=a.scrollTop)),!r&&s!==void 0&&e.current<s?false:(e.current||0)>n}var Ie=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=He,target:r=Ie,disableHysteresis:n=false,threshold:a=100}=e,s=Y__default.default.useRef(0),[o,p]=Y__default.default.useState(()=>t(s,{disableHysteresis:n,threshold:a,target:r}));return Y__default.default.useEffect(()=>{let d=()=>{p(t(s,{disableHysteresis:n,threshold:a,target:r}));};if(d(),r)return r.addEventListener("scroll",d,{passive:true}),()=>{r.removeEventListener("scroll",d);}},[r,t,n,a]),o}var tr=(e,t)=>{let r=t||e.__path||e.name;return H(r).useStore()};var or=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},sr=(e,t)=>{let r={};r.others=[];let n=a=>{Y__default.default.Children.forEach(a,s=>{if(Y__default.default.isValidElement(s)){let o=s.type.displayName;if(t.includes(o))r[o]=s;else {let p=s;p.props?.children?n(p.props.children):r.others.push(s);}}else r.others.push(s);});};return n(e),r};function Le(e,t=[]){let r={};for(let n in e){let a=e[n];if(typeof a=="function"){let s=a.bind(null);s.__path=[...t,n].join("."),s.__isVoid=a.length===2,r[n]=s;}else typeof a=="object"&&a!==null?r[n]=Le(a,[...t,n]):r[n]=a;}return r}exports.BgsCoreProvider=he;exports.DataTypeEnum=Oe;exports.HttpMethod=Se;exports.capitalizeWords=ne;exports.createApiHelper=zt;exports.createElement=or;exports.createStore=ue;exports.debounce=Ye;exports.decrypt=V;exports.decryptString=pe;exports.diffJson=Ve;exports.encrypt=j;exports.encryptString=le;exports.generateCacheKey=re;exports.generateUUID=je;exports.getFieldValue=k;exports.isArray=ze;exports.isNotEmpty=E;exports.jsonCopy=Xe;exports.labelFormatter=te;exports.mappingUndefinedtoNull=We;exports.renderChildren=Je;exports.sorting=_e;exports.splitElement=sr;exports.stableStringify=ye;exports.summary=Ge;exports.useApiLoad=Pe;exports.useApiSend=Gt;exports.useApiStore=tr;exports.useBgsCore=v;exports.useCrypto=B;exports.useDelay=Ot;exports.useFormatted=Et;exports.useInterval=Ft;exports.useKeyPress=Ht;exports.useScrollTrigger=Zt;exports.useStorage=ce;exports.wrapApi=Le;
|
package/dist/index.d.cts
CHANGED
|
@@ -345,6 +345,11 @@ type NestedKeyOf<T> = T extends object ? T extends Array<infer U> ? `${number}`
|
|
|
345
345
|
type PathValue<T, P extends string> = P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R> : never : never : P extends `${infer K}[${infer I}]` ? K extends keyof T ? T[K] extends Array<infer U> ? U : never : never : P extends `${infer K}.${infer R}` ? K extends keyof T ? PathValue<T[K], R> : never : P extends keyof T ? T[P] : never;
|
|
346
346
|
type SelectedNested<T> = Partial<Record<NestedKeyOf<T>, any>>;
|
|
347
347
|
type TextTransform = "capitalize" | "uppercase" | "lowercase";
|
|
348
|
+
type StorePayload<DRes> = {
|
|
349
|
+
response?: ApiResponse<DRes> | undefined | null;
|
|
350
|
+
loading?: boolean;
|
|
351
|
+
isCancel?: boolean;
|
|
352
|
+
};
|
|
348
353
|
|
|
349
354
|
declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
|
|
350
355
|
declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
|
|
@@ -505,7 +510,7 @@ type TWithName<T> = {
|
|
|
505
510
|
__isVoid?: boolean;
|
|
506
511
|
} : T[K] extends object ? TWithName<T[K]> : T[K];
|
|
507
512
|
};
|
|
508
|
-
declare function wrapApi<T extends object>(obj: T, path?: string[]):
|
|
513
|
+
declare function wrapApi<T extends object>(obj: T, path?: string[]): T;
|
|
509
514
|
|
|
510
515
|
type FormatType = {
|
|
511
516
|
display: string;
|
|
@@ -531,4 +536,4 @@ interface BgsCoreProviderProps {
|
|
|
531
536
|
}
|
|
532
537
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
533
538
|
|
|
534
|
-
export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type SupportedFormattedType, type TWithName, type TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, renderChildren, sorting, splitElement, stableStringify, summary, useApiLoad, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
539
|
+
export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, renderChildren, sorting, splitElement, stableStringify, summary, useApiLoad, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -345,6 +345,11 @@ type NestedKeyOf<T> = T extends object ? T extends Array<infer U> ? `${number}`
|
|
|
345
345
|
type PathValue<T, P extends string> = P extends `${infer K}[${infer I}].${infer R}` ? K extends keyof T ? T[K] extends Array<infer U> ? PathValue<U, R> : never : never : P extends `${infer K}[${infer I}]` ? K extends keyof T ? T[K] extends Array<infer U> ? U : never : never : P extends `${infer K}.${infer R}` ? K extends keyof T ? PathValue<T[K], R> : never : P extends keyof T ? T[P] : never;
|
|
346
346
|
type SelectedNested<T> = Partial<Record<NestedKeyOf<T>, any>>;
|
|
347
347
|
type TextTransform = "capitalize" | "uppercase" | "lowercase";
|
|
348
|
+
type StorePayload<DRes> = {
|
|
349
|
+
response?: ApiResponse<DRes> | undefined | null;
|
|
350
|
+
loading?: boolean;
|
|
351
|
+
isCancel?: boolean;
|
|
352
|
+
};
|
|
348
353
|
|
|
349
354
|
declare function useApiLoad<DRes>(api: ApiMethodVoid<DRes>, options?: Partial<UseCallOptionsProps<undefined, DRes>>): UseCallReturnType<undefined, DRes>;
|
|
350
355
|
declare function useApiLoad<DReq, DRes>(api: ApiMethod<DReq, DRes>, data: DReq, options?: Partial<UseCallOptionsProps<DReq, DRes>>): UseCallReturnType<DReq, DRes>;
|
|
@@ -505,7 +510,7 @@ type TWithName<T> = {
|
|
|
505
510
|
__isVoid?: boolean;
|
|
506
511
|
} : T[K] extends object ? TWithName<T[K]> : T[K];
|
|
507
512
|
};
|
|
508
|
-
declare function wrapApi<T extends object>(obj: T, path?: string[]):
|
|
513
|
+
declare function wrapApi<T extends object>(obj: T, path?: string[]): T;
|
|
509
514
|
|
|
510
515
|
type FormatType = {
|
|
511
516
|
display: string;
|
|
@@ -531,4 +536,4 @@ interface BgsCoreProviderProps {
|
|
|
531
536
|
}
|
|
532
537
|
declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
|
|
533
538
|
|
|
534
|
-
export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type SupportedFormattedType, type TWithName, type TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, renderChildren, sorting, splitElement, stableStringify, summary, useApiLoad, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
|
539
|
+
export { type ApiActionState, type ApiDefaultFetch, type ApiDefaultMethod, type ApiMethod, type ApiMethodVoid, type ApiResponse, type BgsCoreProps, BgsCoreProvider, type CacheData, type CacheProps, type CallbackHelper, type Children, type ClientCallback, type CombinationType, type CreateElementProps, type DataType, DataTypeEnum, type EncryptedPayload, HttpMethod, type NestedKeyOf, type OptionsCallReturn, type OptionsHelper, type OptionsNumberProps, type PaginationMeta, type PathValue, type ResponseType, type SelectedNested, type SplitElementResult, type StorePayload, type SupportedFormattedType, type TWithName, type TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, type UseScrollTriggerOptions, capitalizeWords, createApiHelper, createElement, createStore, debounce, decrypt, decryptString, diffJson, encrypt, encryptString, generateCacheKey, generateUUID, getFieldValue, isArray, isNotEmpty, jsonCopy, labelFormatter, mappingUndefinedtoNull, renderChildren, sorting, splitElement, stableStringify, summary, useApiLoad, useApiSend, useApiStore, useBgsCore, useCrypto, useDelay, useFormatted, useInterval, useKeyPress, useScrollTrigger, useStorage, wrapApi };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import z from'moment';import X,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import ie from'crypto-js/aes';import pe from'crypto-js/pbkdf2';import xe from'crypto-js/enc-utf8';import B from'crypto-js/enc-base64';import ae from'crypto-js/lib-typedarrays';import Fe from'axios';function je(){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 Ve(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var We=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ze(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function N(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 re={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,a)=>a.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=re.snackCase(re.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Je(e,t){return typeof e=="function"?e(t):e}var U=(e,t,r="")=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let s of n){if(a==null)return r;a=a[s];}return a===void 0?r:a},_e={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=U(r,t)?U(r,t):"",s=U(n,t)?U(r,t):"";return a<s?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=U(r,t)?U(r,t):"",s=U(n,t)?U(n,t):"";return a>s?1:-1}else return r>n?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?U(n,t)||0:n||0)),r.reduce((n,a)=>(n||0)+(a||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ge(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{})):n})??""}function ne(e,t){return ge([t??"undefined",e??"undefined"])}function oe(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var se=createContext(void 0);function k(){let e=useContext(se);return e||{}}var be=({children:e,value:t})=>{let r={...t};return jsx(se.Provider,{value:r,children:e})};function $(e,t){let r=ae.random(16),n=ae.random(16),a=pe(t,r,{keySize:256/32,iterations:1e3}),s=ie.encrypt(JSON.stringify(e),a,{iv:n}).toString();return {salt:r.toString(B),iv:n.toString(B),encrypted:s}}function j(e,t){let{salt:r,iv:n,encrypted:a}=e,s=pe(t,B.parse(r),{keySize:256/32,iterations:1e3}),l=ie.decrypt(a,s,{iv:B.parse(n)}).toString(xe);return JSON.parse(l)}function le(e,t){return JSON.stringify($(e,t))}function ce(e,t){return j(JSON.parse(e),t)}function H(){let{passphrase:e}=k();return {passphrase:e,encrypt(t,r){return $(t,r||e)},decrypt(t,r){return j(t,r||e)},encryptString(t,r){return le(t,r||e)},decryptString(t,r){return ce(t,r||e)}}}var ue=()=>{let{encrypt:e,decrypt:t}=H(),r=useCallback((o,l)=>{try{let d=e(l);localStorage.setItem(o,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),n=useCallback(o=>{try{let l=localStorage.getItem(o);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to get from storage:",l),null}},[t]),a=o=>{let[l,d]=useState(()=>{try{let p=localStorage.getItem(o);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=R=>{if(R.key===o)if(R.newValue)try{d(t(JSON.parse(R.newValue)));}catch(O){console.error("Decrypt error from storage event",O);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[o,t]),l},s=useCallback(o=>{o?localStorage.removeItem(o):localStorage.clear();},[]);return {save:r,get:n,clear:s,useWatchStorage:a}};function fe(e){let t=e,r=new Set;function n(){return t}function a(l){return r.add(l),()=>r.delete(l)}function s(l){typeof l=="function"?t=l(t):t=l,r.forEach(d=>d());}function o(l){return useSyncExternalStore(a,()=>l?l(t):t,()=>l?l(t):t)}return {getSnapshot:n,subscribe:a,setState:s,useStore:o}}var W=new Map;function M(e){return W.has(e)||W.set(e,fe([null,{}])),W.get(e)}function _(e,t,r){let n=!e.__isVoid,a=e.__path||e.name,s=n?t:void 0,o=n?r:t,l=o?.storeName||a,{storageKey:d,cache:p}=k(),R=ue(),[O,T]=useState(false),[q,P]=useState(false),[x,D]=useState(),w=useRef(void 0),A=useRef(null),{cacheName:v,cacheKey:E,timeout:Y,timeoutUnit:Z,persistence:Q,cacheEnabled:L}=useMemo(()=>{let m=d?R.get(d):void 0,b=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,c=ne({...s,session:m},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),g=false;typeof p?.enabled=="boolean"&&(g=p.enabled);let S=false;typeof p?.persistence=="boolean"&&(S=p?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(S=o?.cache?.persistence??false);let u=60*5,C="s";return N(p?.timeout)&&(typeof p?.timeout=="number"?(u=p.timeout,C="s"):typeof p?.timeout=="object"&&(u=p?.timeout.value,C=p?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?g=o.cache.enabled:g=true,typeof o.cache.timeout=="number"?(u=o.cache.timeout,C="s"):typeof o.cache.timeout=="object"&&(u=o.cache.timeout.value,C=o.cache.timeout.unit)):g=o.cache),{cacheName:b,cacheKey:c,timeout:u,timeoutUnit:C,persistence:S,cacheEnabled:g}},[o?.cache,d,p]);useEffect(()=>{let m=JSON.stringify(N(w.current)?w.current:""),b=JSON.stringify(N(s)?s:""),c=w.current===void 0;(m!==b||c)&&!o?.hold&&(D(null),f(),w.current=s),o?.onChange&&o?.onChange(s,h);},[s,o?.hold,...o?.trigger||[]]),useEffect(()=>{let m=async()=>{!Q&&v&&E&&(await caches.open(v)).delete(E);};return window.addEventListener("beforeunload",m),()=>{window.removeEventListener("beforeunload",m),A.current?.abort();}},[]);let f=useCallback(async m=>{let b=s;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(b=o?.beforeRequest(s)),L&&!m&&!q){T(true),o?.onBeforeRequest&&o?.onBeforeRequest(s);let c=await caches.open(v),S=await(await c.match(E))?.json();if(S){let{data:u,expired:C}=S;if(z().isAfter(C))await c.delete(E);else {o?.afterResponse&&u?.data&&(u.data=o?.afterResponse(u.data)),o?.logging&&console.log("After request: Using Cache",u),o?.onAfterResponse&&o?.onAfterResponse(u),T(false),D(u),l&&M(l).setState([u.data,{...u,loading:false,refresh:f,abort:y,clear:i,response:u,isCancel:false,clone:(ee,te)=>_(e,ee,te)}]);return}}}if(typeof e=="function"){A.current?.abort();let c=new AbortController;A.current=c,T(true),o?.logging&&console.log("Before request",s),o?.onBeforeRequest&&o?.onBeforeRequest(s);let g=n?await e(b,void 0,{...o,signal:c.signal}):await e(void 0,{...o,signal:c.signal});if(o?.afterResponse&&g?.data&&(g.data=o?.afterResponse(g.data)),o?.logging&&console.log("After request",g),o?.onAfterResponse&&o?.onAfterResponse(g),T(false),D(g),P(false),l&&M(l).setState([g?.data,{...g,loading:false,refresh:f,abort:y,clear:i,response:g,isCancel:false,clone:(u,C)=>_(e,u,C)}]),L&&g.status){let S=z().add(Y,Z).toISOString(),u={data:g,expired:S},C=await caches.open(v),F=new Response(JSON.stringify(u));await C.put(E,F);}}},[s,e,o]);useEffect(()=>{if(o?.refreshInterval){let m=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,b=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,c=setInterval(()=>{f();},z.duration(m,b).asMilliseconds());return ()=>clearInterval(c)}return ()=>{}},[o?.refreshInterval,f]),useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let m=()=>{f();};return window.addEventListener("focus",m),()=>{window.removeEventListener("focus",m);}},[o?.refetchOnWindowFocus,f]);let y=()=>{A.current?.abort(),A.current=null,T(false),P(true);},i=()=>{T(false),D(null);},h={...x,loading:O,refresh:f,abort:y,clear:i,response:x,isCancel:q,clone:(m,b)=>_(e,m,b)};return [x?.data,h]}async function Ot(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var Oe=(s=>(s.POST="POST",s.PUT="PUT",s.PATCH="PATCH",s.DELETE="DELETE",s.GET="GET",s))(Oe||{}),qe=(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))(qe||{});var Et=(e,t,r)=>{let{format:n}=k();return t==="number"?ke(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(a=>a===t)?Ee(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?Ue(e,r):t==="string"?Ne(e,r):e?.toString()??""};function Ue(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return r?n:a}function Ne(e,t){if(!N(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=oe(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}function ke(e,{thouSep:t,decSep:r,decDigits:n,method:a}){if(e==null||isNaN(Number(e)))return "";let s=typeof e=="string"?parseFloat(e):e;if(a)if(typeof n=="number"){let p=Math.pow(10,n);s=Math[a](s*p)/p;}else s=Math[a](s);else if(typeof n=="number"){let p=Math.pow(10,n);s=Math.floor(s*p)/p;}let o=0;if(n==="auto"){let p=s.toString(),R=p.indexOf(".");R!==-1&&(o=p.length-R-1);}let l={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return s.toLocaleString("en-US",l).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function Ee(e,{display:t,value:r}){if(!N(e))return e;let n=z(e,r);return n.isValid()?n.format(t):e}function Mt(e,{interval:t,lead:r}){let n=useRef(null);useEffect(()=>{n.current=e;},[e]),useEffect(()=>{let a=()=>n.current();if(r&&a(),t!==null){let s=setInterval(a,t);return ()=>clearInterval(s)}},[t]);}function Ht(e,t,r){let[n,a]=useState(false),s=(p,R)=>typeof e=="string"&&p===e||typeof e=="number"&&R===e,o=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),l=p=>{let{key:R,keyCode:O}=p,T=p.ctrlKey,q=p.altKey,P=p.shiftKey;if(!o(document.activeElement))if(t)if(typeof t=="string")s(R,O)&&(t==="ctrl"&&T||t==="alt"&&q||t==="shift"&&P)&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));else {let x=t.every(D=>D==="ctrl"?T:D==="alt"?q:D==="shift"?P:false);s(R,O)&&x&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));}else s(R,O)&&(p.preventDefault(),r&&p.stopPropagation(),a(!n));},d=({key:p,keyCode:R})=>{s(p,R)&&a(false);};return useEffect(()=>(window.addEventListener("keydown",l),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",l),window.removeEventListener("keyup",d);}),[]),n}var zt=({url:e,token:t,beforeRequest:r,onCallback:n,headers:a,onUnauthorized:s,handleToast:o,handleAuthorization:l,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:R,encryptResponse:O,passphrase:T})=>{let{encrypt:q,decrypt:P,passphrase:x}=H(),D=(f,y,i,h)=>{let m=h?.code==="ERR_CANCELED",b=f.status===401,c=f?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:O)&&c){let K=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?x:i.passphrase:T;try{c=P(c,K);}catch{try{c=P(c,x);}catch{}}}let u={...n({...f,data:c,isCancel:m,isUnauthorization:b},h),isCancel:m,isUnauthorization:b,httpCode:f.status},C=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:d,F=l?l(u,i):!b;if((i?.infoSuccess&&u.status||i?.infoError&&!u.status)&&o&&(!m||!C)&&o(u),!F&&(!m||!i?.disabledHandleUnauthorized)){let K=i?.onUnauthorized||s;K&&K(u);}if(y)y(u);else return u},w=(f,y=()=>{})=>Fe.create({baseURL:`${e}`,withCredentials:typeof f.withCredentials=="boolean"?f.withCredentials:p})(f).then(y).catch(h=>y(h.response,h)),A=(f,y,i,h,m)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...m},g={"Content-Type":"application/json",...a,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(g.Authorization=`Bearer ${t}`):c.token&&(g.Authorization=`Bearer ${c.token}`)),r&&(i=r(i)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:R)&&i){let u=m?.passphrase?typeof m.passphrase=="boolean"&&m.passphrase?x:m.passphrase:T;i=q(i,u);}return w({url:y,method:f,data:i,headers:g,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:u=>{c?.onUploadProgress&&c?.onUploadProgress(u);}},(u,C)=>D(u,h,c,C))};return {client:w,post:(f,y,i,h)=>A("POST",`${f}`,y,i,h),put:(f,y,i,h)=>A("PUT",`${f}`,y,i,h),patch:(f,y,i,h)=>A("PATCH",`${f}`,y,i,h),delete:(f,y,i)=>A("DELETE",`${f}`,null,y,i),get:(f,y,i)=>A("GET",`${f}`,null,y,i),upload:(f,y,i,h)=>{let m=new FormData;return Object.keys(y).forEach(b=>m.append(b,y[b])),A("POST",`${f}`,m,i,{infoSuccess:false,...h,headers:{"Content-Type":"multipart/form-data",...h?.headers}})}}};function Gt(e,t){let[r,n]=useState(false),[a,s]=useState(),[o,l]=useState(0),d=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async T=>{d.current?.abort();let q=new AbortController;d.current=q,n(true),t?.beforeRequest&&(T=t?.beforeRequest(T)),t?.logging&&console.log("Before request",T);let P={...t,signal:q.signal,onUploadProgress:D=>{let w=Math.round(D.loaded*100/(D.total||1));l(w);}},x=e.__isVoid?await e(void 0,P):await e(T,void 0,P);t?.logging&&console.log("After response",x),s(x),n(false),l(0),x.status&&t?.onSuccess&&t?.onSuccess(x),!x.status&&t?.onError&&t?.onError(x),t?.afterResponse&&t?.afterResponse(x);},{...a,loading:r,abort:()=>{d.current?.abort(),d.current=null,n(false),l(0);},progress:o,reset:()=>{n(false),l(0),s(null);}}]}function Ie(e,t){let{disableHysteresis:r=false,threshold:n=100,target:a}=t,s=e.current;return a&&(typeof a.pageYOffset=="number"?e.current=a.pageYOffset:a.scrollTop!==void 0&&(e.current=a.scrollTop)),!r&&s!==void 0&&e.current<s?false:(e.current||0)>n}var Le=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=Ie,target:r=Le,disableHysteresis:n=false,threshold:a=100}=e,s=X.useRef(0),[o,l]=X.useState(()=>t(s,{disableHysteresis:n,threshold:a,target:r}));return X.useEffect(()=>{let d=()=>{l(t(s,{disableHysteresis:n,threshold:a,target:r}));};if(d(),r)return r.addEventListener("scroll",d,{passive:true}),()=>{r.removeEventListener("scroll",d);}},[r,t,n,a]),o}var tr=(e,t)=>{let r=t||e.__path||e.name;return M(r).useStore()};var or=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},sr=(e,t)=>{let r={};r.others=[];let n=a=>{X.Children.forEach(a,s=>{if(X.isValidElement(s)){let o=s.type.displayName;if(t.includes(o))r[o]=s;else {let l=s;l.props?.children?n(l.props.children):r.others.push(s);}}else r.others.push(s);});};return n(e),r};function $e(e,t=[]){let r={};for(let n in e){let a=e[n];if(typeof a=="function"){let s=a.bind(null);s.__path=[...t,n].join("."),s.__isVoid=a.length===2,r[n]=s;}else typeof a=="object"&&a!==null?r[n]=$e(a,[...t,n]):r[n]=a;}return r}export{be as BgsCoreProvider,qe as DataTypeEnum,Oe as HttpMethod,oe as capitalizeWords,zt as createApiHelper,or as createElement,fe as createStore,Ye as debounce,j as decrypt,ce as decryptString,Ve as diffJson,$ as encrypt,le as encryptString,ne as generateCacheKey,je as generateUUID,U as getFieldValue,ze as isArray,N as isNotEmpty,Xe as jsonCopy,re as labelFormatter,We as mappingUndefinedtoNull,Je as renderChildren,_e as sorting,sr as splitElement,ge as stableStringify,Ge as summary,_ as useApiLoad,Gt as useApiSend,tr as useApiStore,k as useBgsCore,H as useCrypto,Ot as useDelay,Et as useFormatted,Mt as useInterval,Ht as useKeyPress,Zt as useScrollTrigger,ue as useStorage,$e as wrapApi};
|
|
1
|
+
import J from'moment';import Y,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import ae from'crypto-js/aes';import ie from'crypto-js/pbkdf2';import Te from'crypto-js/enc-utf8';import M from'crypto-js/enc-base64';import se from'crypto-js/lib-typedarrays';import Fe from'axios';function je(){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 Ve(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var We=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function ze(e,t){let r=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(r=true):r=true),r}function E(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 te={camelCase:(e="")=>(e=e.split(".").map(t=>(t=t.charAt(0).toUpperCase()+t.slice(1),t)).join(" "),e=e.replace(/([a-z0-9])([A-Z])/g,"$1 $2"),e.charAt(0).toUpperCase()+e.slice(1)),snackCase:(e="")=>{let r=e.replace(/_([a-z])/g,(n,a)=>a.toUpperCase()).replace(/([A-Z])/g," $1");return r=r.charAt(0).toUpperCase()+r.slice(1),r},changeAll:(e="",t=false)=>{let r="";try{e=e?.split(".")[e?.split(".")?.length-1],e=e?.split("[]")[e?.split("[]")?.length-1],r=te.snackCase(te.camelCase(e)),t&&(r=r?.split(" ")?.map(n=>n?.length<=3?n?.toUpperCase():n)?.join(" "));}catch{}return r?.trim()}};function Je(e,t){return typeof e=="function"?e(t):e}var k=(e,t,r="")=>{if(!e)return r;if(e.hasOwnProperty(t))return e[t];let n=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let s of n){if(a==null)return r;a=a[s];}return a===void 0?r:a},_e={desc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=k(r,t)?k(r,t):"",s=k(n,t)?k(r,t):"";return a<s?1:-1}else return r<n?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((r,n)=>{if(t){let a=k(r,t)?k(r,t):"",s=k(n,t)?k(n,t):"";return a>s?1:-1}else return r>n?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let r=[];return r=e.map(n=>Number(t?k(n,t)||0:n||0)),r.reduce((n,a)=>(n||0)+(a||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function ye(e){let t=new WeakSet;return JSON.stringify(e,function(r,n){return n!==null&&typeof n=="object"?t.has(n)?void 0:(t.add(n),Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{})):n})??""}function re(e,t){return ye([t??"undefined",e??"undefined"])}function ne(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{e(...n);},t*1e3);}}var oe=createContext(void 0);function v(){let e=useContext(oe);return e||{}}var he=({children:e,value:t})=>{let r={...t};return jsx(oe.Provider,{value:r,children:e})};function j(e,t){let r=se.random(16),n=se.random(16),a=ie(t,r,{keySize:256/32,iterations:1e3}),s=ae.encrypt(JSON.stringify(e),a,{iv:n}).toString();return {salt:r.toString(M),iv:n.toString(M),encrypted:s}}function V(e,t){let{salt:r,iv:n,encrypted:a}=e,s=ie(t,M.parse(r),{keySize:256/32,iterations:1e3}),p=ae.decrypt(a,s,{iv:M.parse(n)}).toString(Te);return JSON.parse(p)}function le(e,t){return JSON.stringify(j(e,t))}function pe(e,t){return V(JSON.parse(e),t)}function B(){let{passphrase:e}=v();return {passphrase:e,encrypt(t,r){return j(t,r||e)},decrypt(t,r){return V(t,r||e)},encryptString(t,r){return le(t,r||e)},decryptString(t,r){return pe(t,r||e)}}}var ce=()=>{let{encrypt:e,decrypt:t}=B(),r=useCallback((o,p)=>{try{let d=e(p);localStorage.setItem(o,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),n=useCallback(o=>{try{let p=localStorage.getItem(o);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to get from storage:",p),null}},[t]),a=o=>{let[p,d]=useState(()=>{try{let l=localStorage.getItem(o);return l?t(JSON.parse(l)):null}catch(l){return console.error("Failed to parse localStorage value",l),null}});return useEffect(()=>{let l=y=>{if(y.key===o)if(y.newValue)try{d(t(JSON.parse(y.newValue)));}catch(w){console.error("Decrypt error from storage event",w);}else d(null);};return window.addEventListener("storage",l),()=>window.removeEventListener("storage",l)},[o,t]),p},s=useCallback(o=>{o?localStorage.removeItem(o):localStorage.clear();},[]);return {save:r,get:n,clear:s,useWatchStorage:a}};function ue(e){let t=e,r=new Set;function n(){return t}function a(p){return r.add(p),()=>r.delete(p)}function s(p){typeof p=="function"?t=p(t):t=p,r.forEach(d=>d());}function o(p){return useSyncExternalStore(a,()=>p?p(t):t,()=>p?p(t):t)}return {getSnapshot:n,subscribe:a,setState:s,useStore:o}}var z=new Map;function H(e){return z.has(e)||z.set(e,ue([null,{loading:false,isCancel:false,refresh:()=>{},abort:()=>{},clear:()=>{},clone:()=>{}}])),z.get(e)}function Pe(e,t,r){let n=!e.__isVoid,a=e.__path||e.name,s=n?t:void 0,o=n?r:t,p=o?.storeName||a,{storageKey:d,cache:l}=v(),y=ce(),[w,h]=useState(false),[U,q]=useState(false),[b,P]=useState(),N=useRef(void 0),S=useRef(null),{cacheName:F,cacheKey:K,timeout:Z,timeoutUnit:Q,persistence:ee,cacheEnabled:L}=useMemo(()=>{let c=d?y.get(d):void 0,R=typeof o?.cache=="object"?o?.cache?.cacheName??a:a,C=re({...s,session:c},typeof o?.cache=="object"?o?.cache?.cacheKey:void 0),f=false;typeof l?.enabled=="boolean"&&(f=l.enabled);let O=false;typeof l?.persistence=="boolean"&&(O=l?.persistence),typeof o?.cache=="object"&&typeof o?.cache?.persistence=="boolean"&&(O=o?.cache?.persistence??false);let T=60*5,A="s";return E(l?.timeout)&&(typeof l?.timeout=="number"?(T=l.timeout,A="s"):typeof l?.timeout=="object"&&(T=l?.timeout.value,A=l?.timeout.unit)),o?.cache&&(typeof o.cache!="boolean"?(typeof o.cache.enabled=="boolean"?f=o.cache.enabled:f=true,typeof o.cache.timeout=="number"?(T=o.cache.timeout,A="s"):typeof o.cache.timeout=="object"&&(T=o.cache.timeout.value,A=o.cache.timeout.unit)):f=o.cache),{cacheName:R,cacheKey:C,timeout:T,timeoutUnit:A,persistence:O,cacheEnabled:f}},[o?.cache,d,l]);useEffect(()=>{let c=JSON.stringify(E(N.current)?N.current:""),R=JSON.stringify(E(s)?s:""),C=N.current===void 0;(c!==R||C)&&!o?.hold&&(P(null),u(),N.current=s),o?.onChange&&o?.onChange(s,x);},[s,o?.hold,...o?.trigger||[]]),useEffect(()=>{let c=async()=>{!ee&&F&&K&&(await caches.open(F)).delete(K);};return window.addEventListener("beforeunload",c),()=>{window.removeEventListener("beforeunload",c),S.current?.abort();}},[]);let u=useCallback(async c=>{let R=s;if(o?.hold&&o?.logging&&console.log("Hold active"),o?.beforeRequest&&(R=o?.beforeRequest(s)),L&&!c&&!U){h(true),D({loading:true}),o?.onBeforeRequest&&o?.onBeforeRequest(s);let C=await caches.open(F),O=await(await C.match(K))?.json();if(O){let{data:T,expired:A}=O;if(J().isAfter(A))await C.delete(K);else {o?.afterResponse&&T?.data&&(T.data=o?.afterResponse(T.data)),o?.logging&&console.log("After request: Using Cache",T),o?.onAfterResponse&&o?.onAfterResponse(T),h(false),P(T),D({loading:false,response:T});return}}}if(typeof e=="function"){S.current?.abort();let C=new AbortController;S.current=C,h(true),D({loading:true}),o?.logging&&console.log("Before request",s),o?.onBeforeRequest&&o?.onBeforeRequest(s);let f=n?await e(R,void 0,{...o,signal:C.signal}):await e(void 0,{...o,signal:C.signal});if(o?.afterResponse&&f?.data&&(f.data=o?.afterResponse(f.data)),o?.logging&&console.log("After request",f),o?.onAfterResponse&&o?.onAfterResponse(f),h(false),P(f),q(false),D({response:f,loading:false,isCancel:false}),L&&f.status){let O=J().add(Z,Q).toISOString(),T={data:f,expired:O},A=await caches.open(F),$=new Response(JSON.stringify(T));await A.put(K,$);}}},[s,e,o]);useEffect(()=>{if(o?.refreshInterval){let c=typeof o.refreshInterval=="number"?o.refreshInterval:o.refreshInterval.value,R=typeof o.refreshInterval=="number"?"s":o.refreshInterval.unit,C=setInterval(()=>{u();},J.duration(c,R).asMilliseconds());return ()=>clearInterval(C)}return ()=>{}},[o?.refreshInterval,u]),useEffect(()=>{if(!o?.refetchOnWindowFocus)return;let c=()=>{u();};return window.addEventListener("focus",c),()=>{window.removeEventListener("focus",c);}},[o?.refetchOnWindowFocus,u]);let m=()=>{S.current?.abort(),S.current=null,h(false),q(true),D({isCancel:true,loading:false});},i=()=>{h(false),P(null),D({response:void 0,loading:false});},g=useCallback((c,R)=>Pe(e,c,R),[e]),x={...b,loading:w,refresh:u,abort:m,clear:i,response:b,isCancel:U,clone:g},D=useCallback(({response:c,loading:R,isCancel:C})=>{H(p).setState([c?.data,{...c,loading:R,refresh:u,abort:m,clear:i,response:c,isCancel:C,clone:g}]);},[u,m,i,g,p]);return [b?.data,x]}async function Ot(e,t=()=>{}){let r=e*1e3;return new Promise(n=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),n(true);},r);})}var Se=(s=>(s.POST="POST",s.PUT="PUT",s.PATCH="PATCH",s.DELETE="DELETE",s.GET="GET",s))(Se||{}),Oe=(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))(Oe||{});var Et=(e,t,r)=>{let{format:n}=v();return t==="number"?Ne(e,{thouSep:n.number.thouSep,decDigits:n.number.decDigits,decSep:n.number.decSep,...r}):["date","dateTime","month","year","time"].some(a=>a===t)?ke(e,{display:n[t]?.display,value:n[t]?.value,...r}):t==="boolean"?we(e,r):t==="string"?Ue(e,r):e?.toString()??""};function we(e,t){let r=typeof e=="string"?e==="true":!!e,n=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return r?n:a}function Ue(e,t){if(!E(e))return "";let r=String(e);switch(t?.textTransform){case "capitalize":r=ne(r);break;case "uppercase":r=r.toUpperCase();break;case "lowercase":r=r.toLowerCase();break}return t?.ellipsis&&r.length>t.ellipsis&&(r=r.slice(0,t.ellipsis)+"..."),r}function Ne(e,{thouSep:t,decSep:r,decDigits:n,method:a}){if(e==null||isNaN(Number(e)))return "";let s=typeof e=="string"?parseFloat(e):e;if(a)if(typeof n=="number"){let l=Math.pow(10,n);s=Math[a](s*l)/l;}else s=Math[a](s);else if(typeof n=="number"){let l=Math.pow(10,n);s=Math.floor(s*l)/l;}let o=0;if(n==="auto"){let l=s.toString(),y=l.indexOf(".");y!==-1&&(o=l.length-y-1);}let p={style:"decimal",useGrouping:true,minimumFractionDigits:n==="auto"?o:n||0,maximumFractionDigits:n==="auto"?o:n||0,minimumIntegerDigits:1};return s.toLocaleString("en-US",p).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,r).replace(/thouSep/g,t)}function ke(e,{display:t,value:r}){if(!E(e))return e;let n=J(e,r);return n.isValid()?n.format(t):e}function Ft(e,{interval:t,lead:r}){let n=useRef(null);useEffect(()=>{n.current=e;},[e]),useEffect(()=>{let a=()=>n.current();if(r&&a(),t!==null){let s=setInterval(a,t);return ()=>clearInterval(s)}},[t]);}function Ht(e,t,r){let[n,a]=useState(false),s=(l,y)=>typeof e=="string"&&l===e||typeof e=="number"&&y===e,o=l=>l!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(l.tagName)||l.hasAttribute("contentEditable")),p=l=>{let{key:y,keyCode:w}=l,h=l.ctrlKey,U=l.altKey,q=l.shiftKey;if(!o(document.activeElement))if(t)if(typeof t=="string")s(y,w)&&(t==="ctrl"&&h||t==="alt"&&U||t==="shift"&&q)&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));else {let b=t.every(P=>P==="ctrl"?h:P==="alt"?U:P==="shift"?q:false);s(y,w)&&b&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));}else s(y,w)&&(l.preventDefault(),r&&l.stopPropagation(),a(!n));},d=({key:l,keyCode:y})=>{s(l,y)&&a(false);};return useEffect(()=>(window.addEventListener("keydown",p),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",p),window.removeEventListener("keyup",d);}),[]),n}var zt=({url:e,token:t,beforeRequest:r,onCallback:n,headers:a,onUnauthorized:s,handleToast:o,handleAuthorization:p,disabledToastWhenCancel:d,withCredentials:l,encryptRequest:y,encryptResponse:w,passphrase:h})=>{let{encrypt:U,decrypt:q,passphrase:b}=B(),P=(u,m,i,g)=>{let x=g?.code==="ERR_CANCELED",D=u.status===401,c=u?.data;if((typeof i?.encryptResponse=="boolean"?i?.encryptResponse:w)&&c){let A=i?.passphrase?typeof i.passphrase=="boolean"&&i.passphrase?b:i.passphrase:h;try{c=q(c,A);}catch{try{c=q(c,b);}catch{}}}let f={...n({...u,data:c,isCancel:x,isUnauthorization:D},g),isCancel:x,isUnauthorization:D,httpCode:u.status},O=typeof i?.disabledToastWhenCancel=="boolean"?i?.disabledToastWhenCancel:d,T=p?p(f,i):!D;if((i?.infoSuccess&&f.status||i?.infoError&&!f.status)&&o&&(!x||!O)&&o(f),!T&&(!x||!i?.disabledHandleUnauthorized)){let A=i?.onUnauthorized||s;A&&A(f);}if(m)m(f);else return f},N=(u,m=()=>{})=>Fe.create({baseURL:`${e}`,withCredentials:typeof u.withCredentials=="boolean"?u.withCredentials:l})(u).then(m).catch(g=>m(g.response,g)),S=(u,m,i,g,x)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...x},R={"Content-Type":"application/json",...a,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(R.Authorization=`Bearer ${t}`):c.token&&(R.Authorization=`Bearer ${c.token}`)),r&&(i=r(i)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:y)&&i){let f=x?.passphrase?typeof x.passphrase=="boolean"&&x.passphrase?b:x.passphrase:h;i=U(i,f);}return N({url:m,method:u,data:i,headers:R,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:f=>{c?.onUploadProgress&&c?.onUploadProgress(f);}},(f,O)=>P(f,g,c,O))};return {client:N,post:(u,m,i,g)=>S("POST",`${u}`,m,i,g),put:(u,m,i,g)=>S("PUT",`${u}`,m,i,g),patch:(u,m,i,g)=>S("PATCH",`${u}`,m,i,g),delete:(u,m,i)=>S("DELETE",`${u}`,null,m,i),get:(u,m,i)=>S("GET",`${u}`,null,m,i),upload:(u,m,i,g)=>{let x=new FormData;return Object.keys(m).forEach(D=>x.append(D,m[D])),S("POST",`${u}`,x,i,{infoSuccess:false,...g,headers:{"Content-Type":"multipart/form-data",...g?.headers}})}}};function Gt(e,t){let[r,n]=useState(false),[a,s]=useState(),[o,p]=useState(0),d=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async h=>{d.current?.abort();let U=new AbortController;d.current=U,n(true),t?.beforeRequest&&(h=t?.beforeRequest(h)),t?.logging&&console.log("Before request",h);let q={...t,signal:U.signal,onUploadProgress:P=>{let N=Math.round(P.loaded*100/(P.total||1));p(N);}},b=e.__isVoid?await e(void 0,q):await e(h,void 0,q);t?.logging&&console.log("After response",b),s(b),n(false),p(0),b.status&&t?.onSuccess&&t?.onSuccess(b),!b.status&&t?.onError&&t?.onError(b),t?.afterResponse&&t?.afterResponse(b);},{...a,loading:r,abort:()=>{d.current?.abort(),d.current=null,n(false),p(0);},progress:o,reset:()=>{n(false),p(0),s(null);}}]}function He(e,t){let{disableHysteresis:r=false,threshold:n=100,target:a}=t,s=e.current;return a&&(typeof a.pageYOffset=="number"?e.current=a.pageYOffset:a.scrollTop!==void 0&&(e.current=a.scrollTop)),!r&&s!==void 0&&e.current<s?false:(e.current||0)>n}var Ie=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=He,target:r=Ie,disableHysteresis:n=false,threshold:a=100}=e,s=Y.useRef(0),[o,p]=Y.useState(()=>t(s,{disableHysteresis:n,threshold:a,target:r}));return Y.useEffect(()=>{let d=()=>{p(t(s,{disableHysteresis:n,threshold:a,target:r}));};if(d(),r)return r.addEventListener("scroll",d,{passive:true}),()=>{r.removeEventListener("scroll",d);}},[r,t,n,a]),o}var tr=(e,t)=>{let r=t||e.__path||e.name;return H(r).useStore()};var or=(e,t)=>{let r=n=>e(n);return r.displayName=t,r},sr=(e,t)=>{let r={};r.others=[];let n=a=>{Y.Children.forEach(a,s=>{if(Y.isValidElement(s)){let o=s.type.displayName;if(t.includes(o))r[o]=s;else {let p=s;p.props?.children?n(p.props.children):r.others.push(s);}}else r.others.push(s);});};return n(e),r};function Le(e,t=[]){let r={};for(let n in e){let a=e[n];if(typeof a=="function"){let s=a.bind(null);s.__path=[...t,n].join("."),s.__isVoid=a.length===2,r[n]=s;}else typeof a=="object"&&a!==null?r[n]=Le(a,[...t,n]):r[n]=a;}return r}export{he as BgsCoreProvider,Oe as DataTypeEnum,Se as HttpMethod,ne as capitalizeWords,zt as createApiHelper,or as createElement,ue as createStore,Ye as debounce,V as decrypt,pe as decryptString,Ve as diffJson,j as encrypt,le as encryptString,re as generateCacheKey,je as generateUUID,k as getFieldValue,ze as isArray,E as isNotEmpty,Xe as jsonCopy,te as labelFormatter,We as mappingUndefinedtoNull,Je as renderChildren,_e as sorting,sr as splitElement,ye as stableStringify,Ge as summary,Pe as useApiLoad,Gt as useApiSend,tr as useApiStore,v as useBgsCore,B as useCrypto,Ot as useDelay,Et as useFormatted,Ft as useInterval,Ht as useKeyPress,Zt as useScrollTrigger,ce as useStorage,Le 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.21",
|
|
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",
|