@bgscore/react-core 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var j=require('moment'),le=require('react'),jsxRuntime=require('react/jsx-runtime'),ee=require('crypto-js/aes'),te=require('crypto-js/pbkdf2'),he=require('crypto-js/enc-utf8'),K=require('crypto-js/enc-base64'),Q=require('crypto-js/lib-typedarrays'),Ke=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var j__default=/*#__PURE__*/_interopDefault(j);var le__default=/*#__PURE__*/_interopDefault(le);var ee__default=/*#__PURE__*/_interopDefault(ee);var te__default=/*#__PURE__*/_interopDefault(te);var he__default=/*#__PURE__*/_interopDefault(he);var K__default=/*#__PURE__*/_interopDefault(K);var Q__default=/*#__PURE__*/_interopDefault(Q);var Ke__default=/*#__PURE__*/_interopDefault(Ke);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 ze(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ve=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Je(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 q(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 X={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,a)=>a.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=X.snackCase(X.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function We(e,t){return typeof e=="function"?e(t):e}var O=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let r of o){if(a==null)return n;a=a[r];}return a===void 0?n:a},Ge={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let a=O(n,t)?O(n,t):"",r=O(o,t)?O(n,t):"";return a<r?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let a=O(n,t)?O(n,t):"",r=O(o,t)?O(o,t):"";return a>r?1:-1}else return n>o?1:-1}))},Xe=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?O(o,t)||0:o||0)),n.reduce((o,a)=>(o||0)+(a||0),0)||0};function _e(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function de(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((a,r)=>(a[r]=o[r],a),{})):o})??""}function _(e,t){return de([t??"undefined",e??"undefined"])}function Z(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ze(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var Y=le.createContext(void 0);function N(){let e=le.useContext(Y);return e||{}}var Re=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(Y.Provider,{value:n,children:e})};function I(e,t){let n=Q__default.default.random(16),o=Q__default.default.random(16),a=te__default.default(t,n,{keySize:256/32,iterations:1e3}),r=ee__default.default.encrypt(JSON.stringify(e),a,{iv:o}).toString();return {salt:n.toString(K__default.default),iv:o.toString(K__default.default),encrypted:r}}function L(e,t){let{salt:n,iv:o,encrypted:a}=e,r=te__default.default(t,K__default.default.parse(n),{keySize:256/32,iterations:1e3}),i=ee__default.default.decrypt(a,r,{iv:K__default.default.parse(o)}).toString(he__default.default);return JSON.parse(i)}function re(e,t){return JSON.stringify(I(e,t))}function ne(e,t){return L(JSON.parse(e),t)}function M(){let{passphrase:e}=N();return {passphrase:e,encrypt(t,n){return I(t,n||e)},decrypt(t,n){return L(t,n||e)},encryptString(t,n){return re(t,n||e)},decryptString(t,n){return ne(t,n||e)}}}var oe=()=>{let{encrypt:e,decrypt:t}=M(),n=le.useCallback((c,i)=>{try{let d=e(i);localStorage.setItem(c,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),o=le.useCallback(c=>{try{let i=localStorage.getItem(c);return i?t(JSON.parse(i)):null}catch(i){return console.error("Failed to get from storage:",i),null}},[t]),a=c=>{let[i,d]=le.useState(()=>{try{let p=localStorage.getItem(c);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return le.useEffect(()=>{let p=R=>{if(R.key===c)if(R.newValue)try{d(t(JSON.parse(R.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[c,t]),i},r=le.useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:r,useWatchStorage:a}};function se(e){let t=e,n=new Set;function o(){return t}function a(i){return n.add(i),()=>n.delete(i)}function r(i){typeof i=="function"?t=i(t):t=i,n.forEach(d=>d());}function c(i){return le.useSyncExternalStore(a,()=>i?i(t):t,()=>i?i(t):t)}return {getSnapshot:o,subscribe:a,setState:r,useStore:c}}var $=new Map;function F(e){return $.has(e)||$.set(e,se([null,{}])),$.get(e)}function Ae(e,t,n){let o=arguments.length===3,a=o?t:void 0,r=o?n:t,{storageKey:c,cache:i}=N(),d=oe(),[p,R]=le.useState(false),[S,b]=le.useState(false),[T,C]=le.useState(),g=le.useRef(void 0),x=le.useRef(null),{cacheName:P,cacheKey:A,timeout:J,timeoutUnit:W,persistence:G}=le.useMemo(()=>{let l=c?d.get(c):void 0,s=typeof r?.cache=="object"?r?.cache?.cacheName??e.name:e.name,f=_({...a,session:l},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),y=false;typeof i?.persistence=="boolean"&&(y=i?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(y=r?.cache?.persistence??false);let h=60*5,u="s";return q(i?.timeout)&&(typeof i?.timeout=="number"?(h=i.timeout,u="s"):typeof i?.timeout=="object"&&(h=i?.timeout.value,u=i?.timeout.unit)),r?.cache&&typeof r.cache!="boolean"&&(typeof r.cache.timeout=="number"?(h=r.cache.timeout,u="s"):typeof r.cache.timeout=="object"&&(h=r.cache.timeout.value,u=r.cache.timeout.unit)),{cacheName:s,cacheKey:f,timeout:h,timeoutUnit:u,persistence:y}},[r?.cache,c,i]);le.useEffect(()=>{let l=JSON.stringify(q(g.current)?g.current:""),s=JSON.stringify(q(a)?a:""),f=g.current===void 0;(l!==s||f)&&!r?.hold&&(C(null),U(),g.current=a),r?.onChange&&r?.onChange(a,m);},[a,r?.hold,...r?.trigger||[]]),le.useEffect(()=>{let l=async()=>{!G&&P&&A&&(await caches.open(P)).delete(A);};return window.addEventListener("beforeunload",l),()=>{window.removeEventListener("beforeunload",l),x.current?.abort();}},[]);let U=le.useCallback(async l=>{let s=a;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(s=r?.beforeRequest(a)),r?.cache&&!l&&!S){R(true),r?.onBeforeRequest&&r?.onBeforeRequest(a);let f=await caches.open(P),h=await(await f.match(A))?.json();if(h){let{data:u,expired:w}=h;if(j__default.default().isAfter(w))await f.delete(A);else {r?.afterResponse&&u?.data&&(u.data=r?.afterResponse(u.data)),r?.logging&&console.log("After request: Using Cache",u),r?.onAfterResponse&&r?.onAfterResponse(u),R(false),C(u);return}}}if(typeof e=="function"){x.current?.abort();let f=new AbortController;x.current=f,R(true),r?.logging&&console.log("Before request",a),r?.onBeforeRequest&&r?.onBeforeRequest(a);let y=o?await e(s,void 0,{...r,signal:f.signal}):await e(void 0,{...r,signal:f.signal});if(r?.afterResponse&&y?.data&&(y.data=r?.afterResponse(y.data)),r?.logging&&console.log("After request",y),r?.onAfterResponse&&r?.onAfterResponse(y),R(false),C(y),b(false),r?.cache&&y.status){let h=j__default.default().add(J,W).toISOString(),u={data:y,expired:h},w=await caches.open(P),E=new Response(JSON.stringify(u));await w.put(A,E);}}},[a,e,r]);le.useEffect(()=>{if(r?.refreshInterval){let l=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,s=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,f=setInterval(()=>{U();},j__default.default.duration(l,s).asMilliseconds());return ()=>clearInterval(f)}return ()=>{}},[r?.refreshInterval,U]),le.useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let l=()=>{U();};return window.addEventListener("focus",l),()=>{window.removeEventListener("focus",l);}},[r?.refetchOnWindowFocus,U]);let m={...T,loading:p,refresh:U,abort:()=>{x.current?.abort(),x.current=null,R(false),b(true);},clear:()=>{R(false),C(null);},response:T,isCancel:S,clone:(l,s)=>Ae(e,l,s)};return le.useEffect(()=>{r?.storeName&&F(r?.storeName).setState([T?.data,m]);},[T,m,r?.storeName]),[T?.data,m]}async function Ot(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Se=(r=>(r.POST="POST",r.PUT="PUT",r.PATCH="PATCH",r.DELETE="DELETE",r.GET="GET",r))(Se||{}),Pe=(s=>(s.number="number",s.currency="currency",s.percent="percent",s.date="date",s.dateTime="dateTime",s.month="month",s.year="year",s.time="time",s.timestamp="timestamp",s.string="string",s.textarea="textarea",s.code="code",s.password="password",s.boolean="boolean",s.toggle="toggle",s.email="email",s.phone="phone",s.url="url",s.json="json",s.file="file",s.image="image",s.array="array",s.object="object",s.enum="enum",s.user="user",s.department="department",s.status="status",s))(Pe||{});var Et=(e,t,n)=>{let{format:o}=N();return t==="number"?Ue(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(a=>a===t)?Ne(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?qe(e,n):t==="string"?we(e,n):e?.toString()??""};function qe(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return n?o:a}function we(e,t){if(!q(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=Z(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 Ue(e,{thouSep:t,decSep:n,decDigits:o,method:a}){if(e==null||isNaN(Number(e)))return "";let r=typeof e=="string"?parseFloat(e):e;if(a)if(typeof o=="number"){let p=Math.pow(10,o);r=Math[a](r*p)/p;}else r=Math[a](r);else if(typeof o=="number"){let p=Math.pow(10,o);r=Math.floor(r*p)/p;}let c=0;if(o==="auto"){let p=r.toString(),R=p.indexOf(".");R!==-1&&(c=p.length-R-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return r.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Ne(e,{display:t,value:n}){if(!q(e))return e;let o=j__default.default(e,n);return o.isValid()?o.format(t):e}function Mt(e,{interval:t,lead:n}){let o=le.useRef(null);le.useEffect(()=>{o.current=e;},[e]),le.useEffect(()=>{let a=()=>o.current();if(n&&a(),t!==null){let r=setInterval(a,t);return ()=>clearInterval(r)}},[t]);}function It(e,t,n){let[o,a]=le.useState(false),r=(p,R)=>typeof e=="string"&&p===e||typeof e=="number"&&R===e,c=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),i=p=>{let{key:R,keyCode:S}=p,b=p.ctrlKey,T=p.altKey,C=p.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")r(R,S)&&(t==="ctrl"&&b||t==="alt"&&T||t==="shift"&&C)&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));else {let g=t.every(x=>x==="ctrl"?b:x==="alt"?T:x==="shift"?C:false);r(R,S)&&g&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));}else r(R,S)&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));},d=({key:p,keyCode:R})=>{r(p,R)&&a(false);};return le.useEffect(()=>(window.addEventListener("keydown",i),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",d);}),[]),o}var Jt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:a,onUnauthorized:r,handleToast:c,handleAuthorization:i,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:R,encryptResponse:S,passphrase:b})=>{let{encrypt:T,decrypt:C,passphrase:g}=M(),x=(m,l,s,f)=>{let y=f?.code==="ERR_CANCELED",h=m.status===401,u=m?.data;if((typeof s?.encryptResponse=="boolean"?s?.encryptResponse:S)&&u){let v=s?.passphrase?typeof s.passphrase=="boolean"&&s.passphrase?g:s.passphrase:b;try{u=C(u,v);}catch{try{u=C(u,g);}catch{}}}let D={...o({...m,data:u,isCancel:y,isUnauthorization:h},f),isCancel:y,isUnauthorization:h,httpCode:m.status},B=typeof s?.disabledToastWhenCancel=="boolean"?s?.disabledToastWhenCancel:d,fe=i?i(D,s):!h;if((s?.infoSuccess&&D.status||s?.infoError&&!D.status)&&c&&(!y||!B)&&c(D),!fe&&(!y||!s?.disabledHandleUnauthorized)){let v=s?.onUnauthorized||r;v&&v(D);}if(l)l(D);else return D},P=(m,l=()=>{})=>Ke__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(f=>l(f.response,f)),A=(m,l,s,f,y)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...y},w={"Content-Type":"application/json",...a,...u.headers};if(u.token&&(typeof u.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):u.token&&(w.Authorization=`Bearer ${u.token}`)),n&&(s=n(s)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:R)&&s){let D=y?.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?g:y.passphrase:b;s=T(s,D);}return P({url:l,method:m,data:s,headers:w,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:D=>{u?.onUploadProgress&&u?.onUploadProgress(D);}},(D,B)=>x(D,f,u,B))};return {client:P,post:(m,l,s,f)=>A("POST",`${m}`,l,s,f),put:(m,l,s,f)=>A("PUT",`${m}`,l,s,f),patch:(m,l,s,f)=>A("PATCH",`${m}`,l,s,f),delete:(m,l,s)=>A("DELETE",`${m}`,null,l,s),get:(m,l,s)=>A("GET",`${m}`,null,l,s),upload:(m,l,s,f)=>{let y=new FormData;return Object.keys(l).forEach(h=>y.append(h,l[h])),A("POST",`${m}`,y,s,{infoSuccess:false,...f,headers:{"Content-Type":"multipart/form-data",...f?.headers}})}}};function _t(e,t){let[n,o]=le.useState(false),[a,r]=le.useState(),[c,i]=le.useState(0),d=le.useRef(null);return le.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async b=>{d.current?.abort();let T=new AbortController;d.current=T,o(true),t?.beforeRequest&&(b=t?.beforeRequest(b)),t?.logging&&console.log("Before request",b);let C={...t,signal:T.signal,onUploadProgress:x=>{let P=Math.round(x.loaded*100/(x.total||1));i(P);}},g=q(b)?await e(b,void 0,C):await e(void 0,C);t?.logging&&console.log("After response",g),r(g),o(false),i(0),g.status&&t?.onSuccess&&t?.onSuccess(g),!g.status&&t?.onError&&t?.onError(g),t?.afterResponse&&t?.afterResponse(g);},{...a,loading:n,abort:()=>{d.current?.abort(),d.current=null,o(false),i(0);},progress:c,reset:()=>{o(false),i(0),r(null);}}]}function Qt(e="vertical"){let t=le.useRef(null),[n,o]=le.useState(false),[a,r]=le.useState(false),c=le.useCallback(()=>{let i=t.current;if(i)if(e==="vertical"){let d=Math.ceil(i.scrollTop+i.clientHeight),p=Math.floor(i.scrollHeight);o(i.scrollTop>0),r(d<p);}else {let d=Math.ceil(i.scrollLeft+i.clientWidth),p=Math.floor(i.scrollWidth);o(i.scrollLeft>0),r(d<p);}},[e]);return le.useEffect(()=>{let i=t.current;if(i)return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)},[c]),{ref:t,showStartShadow:n,showEndShadow:a}}var rr=(e,t)=>F(t).useStore();var sr=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},ar=(e,t)=>{let n={};n.others=[];let o=a=>{le__default.default.Children.forEach(a,r=>{if(le__default.default.isValidElement(r)){let c=r.type.displayName;if(t.includes(c))n[c]=r;else {let i=r;i.props?.children?o(i.props.children):n.others.push(r);}}else n.others.push(r);});};return o(e),n};exports.BgsCoreProvider=Re;exports.DataTypeEnum=Pe;exports.HttpMethod=Se;exports.capitalizeWords=Z;exports.createApiHelper=Jt;exports.createElement=sr;exports.createStore=se;exports.debounce=Ze;exports.decrypt=L;exports.decryptString=ne;exports.diffJson=ze;exports.encrypt=I;exports.encryptString=re;exports.generateCacheKey=_;exports.generateUUID=je;exports.getFieldValue=O;exports.isArray=Je;exports.isNotEmpty=q;exports.jsonCopy=_e;exports.labelFormatter=X;exports.mappingUndefinedtoNull=Ve;exports.renderChildren=We;exports.sorting=Ge;exports.splitElement=ar;exports.stableStringify=de;exports.summary=Xe;exports.useApiLoad=Ae;exports.useApiSend=_t;exports.useApiStore=rr;exports.useBgsCore=N;exports.useCrypto=M;exports.useDelay=Ot;exports.useFormatted=Et;exports.useInterval=Mt;exports.useKeyPress=It;exports.useScroll=Qt;exports.useStorage=oe;
1
+ 'use strict';var j=require('moment'),V=require('react'),jsxRuntime=require('react/jsx-runtime'),te=require('crypto-js/aes'),re=require('crypto-js/pbkdf2'),he=require('crypto-js/enc-utf8'),K=require('crypto-js/enc-base64'),ee=require('crypto-js/lib-typedarrays'),Ke=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var j__default=/*#__PURE__*/_interopDefault(j);var V__default=/*#__PURE__*/_interopDefault(V);var te__default=/*#__PURE__*/_interopDefault(te);var re__default=/*#__PURE__*/_interopDefault(re);var he__default=/*#__PURE__*/_interopDefault(he);var K__default=/*#__PURE__*/_interopDefault(K);var ee__default=/*#__PURE__*/_interopDefault(ee);var Ke__default=/*#__PURE__*/_interopDefault(Ke);function $e(){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 je(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 n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function q(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 Y={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=Y.snackCase(Y.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ve(e,t){return typeof e=="function"?e(t):e}var O=(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 r of o){if(s==null)return n;s=s[r];}return s===void 0?n:s},Je={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=O(n,t)?O(n,t):"",r=O(o,t)?O(n,t):"";return s<r?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=O(n,t)?O(n,t):"",r=O(o,t)?O(o,t):"";return s>r?1:-1}else return n>o?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?O(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function de(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,r)=>(s[r]=o[r],s),{})):o})??""}function _(e,t){return de([t??"undefined",e??"undefined"])}function Z(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var Q=V.createContext(void 0);function N(){let e=V.useContext(Q);return e||{}}var ge=({children:e,value:t})=>{let n={...t};return jsxRuntime.jsx(Q.Provider,{value:n,children:e})};function H(e,t){let n=ee__default.default.random(16),o=ee__default.default.random(16),s=re__default.default(t,n,{keySize:256/32,iterations:1e3}),r=te__default.default.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(K__default.default),iv:o.toString(K__default.default),encrypted:r}}function I(e,t){let{salt:n,iv:o,encrypted:s}=e,r=re__default.default(t,K__default.default.parse(n),{keySize:256/32,iterations:1e3}),i=te__default.default.decrypt(s,r,{iv:K__default.default.parse(o)}).toString(he__default.default);return JSON.parse(i)}function ne(e,t){return JSON.stringify(H(e,t))}function oe(e,t){return I(JSON.parse(e),t)}function F(){let{passphrase:e}=N();return {passphrase:e,encrypt(t,n){return H(t,n||e)},decrypt(t,n){return I(t,n||e)},encryptString(t,n){return ne(t,n||e)},decryptString(t,n){return oe(t,n||e)}}}var se=()=>{let{encrypt:e,decrypt:t}=F(),n=V.useCallback((u,i)=>{try{let d=e(i);localStorage.setItem(u,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),o=V.useCallback(u=>{try{let i=localStorage.getItem(u);return i?t(JSON.parse(i)):null}catch(i){return console.error("Failed to get from storage:",i),null}},[t]),s=u=>{let[i,d]=V.useState(()=>{try{let p=localStorage.getItem(u);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return V.useEffect(()=>{let p=g=>{if(g.key===u)if(g.newValue)try{d(t(JSON.parse(g.newValue)));}catch(P){console.error("Decrypt error from storage event",P);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[u,t]),i},r=V.useCallback(u=>{u?localStorage.removeItem(u):localStorage.clear();},[]);return {save:n,get:o,clear:r,useWatchStorage:s}};function ae(e){let t=e,n=new Set;function o(){return t}function s(i){return n.add(i),()=>n.delete(i)}function r(i){typeof i=="function"?t=i(t):t=i,n.forEach(d=>d());}function u(i){return V.useSyncExternalStore(s,()=>i?i(t):t,()=>i?i(t):t)}return {getSnapshot:o,subscribe:s,setState:r,useStore:u}}var $=new Map;function M(e){return $.has(e)||$.set(e,ae([null,{}])),$.get(e)}function Ae(e,t,n){let o=arguments.length===3,s=o?t:void 0,r=o?n:t,{storageKey:u,cache:i}=N(),d=se(),[p,g]=V.useState(false),[P,b]=V.useState(false),[x,C]=V.useState(),R=V.useRef(void 0),T=V.useRef(null),{cacheName:S,cacheKey:A,timeout:J,timeoutUnit:G,persistence:X}=V.useMemo(()=>{let l=u?d.get(u):void 0,a=typeof r?.cache=="object"?r?.cache?.cacheName??e.name:e.name,f=_({...s,session:l},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),y=false;typeof i?.persistence=="boolean"&&(y=i?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(y=r?.cache?.persistence??false);let h=60*5,c="s";return q(i?.timeout)&&(typeof i?.timeout=="number"?(h=i.timeout,c="s"):typeof i?.timeout=="object"&&(h=i?.timeout.value,c=i?.timeout.unit)),r?.cache&&typeof r.cache!="boolean"&&(typeof r.cache.timeout=="number"?(h=r.cache.timeout,c="s"):typeof r.cache.timeout=="object"&&(h=r.cache.timeout.value,c=r.cache.timeout.unit)),{cacheName:a,cacheKey:f,timeout:h,timeoutUnit:c,persistence:y}},[r?.cache,u,i]);V.useEffect(()=>{let l=JSON.stringify(q(R.current)?R.current:""),a=JSON.stringify(q(s)?s:""),f=R.current===void 0;(l!==a||f)&&!r?.hold&&(C(null),U(),R.current=s),r?.onChange&&r?.onChange(s,m);},[s,r?.hold,...r?.trigger||[]]),V.useEffect(()=>{let l=async()=>{!X&&S&&A&&(await caches.open(S)).delete(A);};return window.addEventListener("beforeunload",l),()=>{window.removeEventListener("beforeunload",l),T.current?.abort();}},[]);let U=V.useCallback(async l=>{let a=s;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(a=r?.beforeRequest(s)),r?.cache&&!l&&!P){g(true),r?.onBeforeRequest&&r?.onBeforeRequest(s);let f=await caches.open(S),h=await(await f.match(A))?.json();if(h){let{data:c,expired:w}=h;if(j__default.default().isAfter(w))await f.delete(A);else {r?.afterResponse&&c?.data&&(c.data=r?.afterResponse(c.data)),r?.logging&&console.log("After request: Using Cache",c),r?.onAfterResponse&&r?.onAfterResponse(c),g(false),C(c);return}}}if(typeof e=="function"){T.current?.abort();let f=new AbortController;T.current=f,g(true),r?.logging&&console.log("Before request",s),r?.onBeforeRequest&&r?.onBeforeRequest(s);let y=o?await e(a,void 0,{...r,signal:f.signal}):await e(void 0,{...r,signal:f.signal});if(r?.afterResponse&&y?.data&&(y.data=r?.afterResponse(y.data)),r?.logging&&console.log("After request",y),r?.onAfterResponse&&r?.onAfterResponse(y),g(false),C(y),b(false),r?.cache&&y.status){let h=j__default.default().add(J,G).toISOString(),c={data:y,expired:h},w=await caches.open(S),E=new Response(JSON.stringify(c));await w.put(A,E);}}},[s,e,r]);V.useEffect(()=>{if(r?.refreshInterval){let l=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,a=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,f=setInterval(()=>{U();},j__default.default.duration(l,a).asMilliseconds());return ()=>clearInterval(f)}return ()=>{}},[r?.refreshInterval,U]),V.useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let l=()=>{U();};return window.addEventListener("focus",l),()=>{window.removeEventListener("focus",l);}},[r?.refetchOnWindowFocus,U]);let m={...x,loading:p,refresh:U,abort:()=>{T.current?.abort(),T.current=null,g(false),b(true);},clear:()=>{g(false),C(null);},response:x,isCancel:P,clone:(l,a)=>Ae(e,l,a)};return V.useEffect(()=>{r?.storeName&&M(r?.storeName).setState([x?.data,m]);},[x,m,r?.storeName]),[x?.data,m]}async function St(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Pe=(r=>(r.POST="POST",r.PUT="PUT",r.PATCH="PATCH",r.DELETE="DELETE",r.GET="GET",r))(Pe||{}),Se=(a=>(a.number="number",a.currency="currency",a.percent="percent",a.date="date",a.dateTime="dateTime",a.month="month",a.year="year",a.time="time",a.timestamp="timestamp",a.string="string",a.textarea="textarea",a.code="code",a.password="password",a.boolean="boolean",a.toggle="toggle",a.email="email",a.phone="phone",a.url="url",a.json="json",a.file="file",a.image="image",a.array="array",a.object="object",a.enum="enum",a.user="user",a.department="department",a.status="status",a))(Se||{});var kt=(e,t,n)=>{let{format:o}=N();return t==="number"?Ue(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ne(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?qe(e,n):t==="string"?we(e,n):e?.toString()??""};function qe(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function we(e,t){if(!q(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=Z(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 Ue(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let r=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let p=Math.pow(10,o);r=Math[s](r*p)/p;}else r=Math[s](r);else if(typeof o=="number"){let p=Math.pow(10,o);r=Math.floor(r*p)/p;}let u=0;if(o==="auto"){let p=r.toString(),g=p.indexOf(".");g!==-1&&(u=p.length-g-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?u:o||0,maximumFractionDigits:o==="auto"?u:o||0,minimumIntegerDigits:1};return r.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Ne(e,{display:t,value:n}){if(!q(e))return e;let o=j__default.default(e,n);return o.isValid()?o.format(t):e}function Kt(e,{interval:t,lead:n}){let o=V.useRef(null);V.useEffect(()=>{o.current=e;},[e]),V.useEffect(()=>{let s=()=>o.current();if(n&&s(),t!==null){let r=setInterval(s,t);return ()=>clearInterval(r)}},[t]);}function Bt(e,t,n){let[o,s]=V.useState(false),r=(p,g)=>typeof e=="string"&&p===e||typeof e=="number"&&g===e,u=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),i=p=>{let{key:g,keyCode:P}=p,b=p.ctrlKey,x=p.altKey,C=p.shiftKey;if(!u(document.activeElement))if(t)if(typeof t=="string")r(g,P)&&(t==="ctrl"&&b||t==="alt"&&x||t==="shift"&&C)&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));else {let R=t.every(T=>T==="ctrl"?b:T==="alt"?x:T==="shift"?C:false);r(g,P)&&R&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));}else r(g,P)&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));},d=({key:p,keyCode:g})=>{r(p,g)&&s(false);};return V.useEffect(()=>(window.addEventListener("keydown",i),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",d);}),[]),o}var zt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:r,handleToast:u,handleAuthorization:i,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:g,encryptResponse:P,passphrase:b})=>{let{encrypt:x,decrypt:C,passphrase:R}=F(),T=(m,l,a,f)=>{let y=f?.code==="ERR_CANCELED",h=m.status===401,c=m?.data;if((typeof a?.encryptResponse=="boolean"?a?.encryptResponse:P)&&c){let v=a?.passphrase?typeof a.passphrase=="boolean"&&a.passphrase?R:a.passphrase:b;try{c=C(c,v);}catch{try{c=C(c,R);}catch{}}}let D={...o({...m,data:c,isCancel:y,isUnauthorization:h},f),isCancel:y,isUnauthorization:h,httpCode:m.status},B=typeof a?.disabledToastWhenCancel=="boolean"?a?.disabledToastWhenCancel:d,fe=i?i(D,a):!h;if((a?.infoSuccess&&D.status||a?.infoError&&!D.status)&&u&&(!y||!B)&&u(D),!fe&&(!y||!a?.disabledHandleUnauthorized)){let v=a?.onUnauthorized||r;v&&v(D);}if(l)l(D);else return D},S=(m,l=()=>{})=>Ke__default.default.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(f=>l(f.response,f)),A=(m,l,a,f,y)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...y},w={"Content-Type":"application/json",...s,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):c.token&&(w.Authorization=`Bearer ${c.token}`)),n&&(a=n(a)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:g)&&a){let D=y?.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?R:y.passphrase:b;a=x(a,D);}return S({url:l,method:m,data:a,headers:w,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:D=>{c?.onUploadProgress&&c?.onUploadProgress(D);}},(D,B)=>T(D,f,c,B))};return {client:S,post:(m,l,a,f)=>A("POST",`${m}`,l,a,f),put:(m,l,a,f)=>A("PUT",`${m}`,l,a,f),patch:(m,l,a,f)=>A("PATCH",`${m}`,l,a,f),delete:(m,l,a)=>A("DELETE",`${m}`,null,l,a),get:(m,l,a)=>A("GET",`${m}`,null,l,a),upload:(m,l,a,f)=>{let y=new FormData;return Object.keys(l).forEach(h=>y.append(h,l[h])),A("POST",`${m}`,y,a,{infoSuccess:false,...f,headers:{"Content-Type":"multipart/form-data",...f?.headers}})}}};function Xt(e,t){let[n,o]=V.useState(false),[s,r]=V.useState(),[u,i]=V.useState(0),d=V.useRef(null);return V.useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async b=>{d.current?.abort();let x=new AbortController;d.current=x,o(true),t?.beforeRequest&&(b=t?.beforeRequest(b)),t?.logging&&console.log("Before request",b);let C={...t,signal:x.signal,onUploadProgress:T=>{let S=Math.round(T.loaded*100/(T.total||1));i(S);}},R=q(b)?await e(b,void 0,C):await e(void 0,C);t?.logging&&console.log("After response",R),r(R),o(false),i(0),R.status&&t?.onSuccess&&t?.onSuccess(R),!R.status&&t?.onError&&t?.onError(R),t?.afterResponse&&t?.afterResponse(R);},{...s,loading:n,abort:()=>{d.current?.abort(),d.current=null,o(false),i(0);},progress:u,reset:()=>{o(false),i(0),r(null);}}]}function Be(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,r=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&r!==void 0&&e.current<r?false:(e.current||0)>o}var He=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=Be,target:n=He,disableHysteresis:o=false,threshold:s=100}=e,r=V__default.default.useRef(0),[u,i]=V__default.default.useState(()=>t(r,{disableHysteresis:o,threshold:s,target:n}));return V__default.default.useEffect(()=>{let d=()=>{i(t(r,{disableHysteresis:o,threshold:s,target:n}));};if(d(),n)return n.addEventListener("scroll",d,{passive:true}),()=>{n.removeEventListener("scroll",d);}},[n,t,o,s]),u}var tr=(e,t)=>M(t).useStore();var or=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},sr=(e,t)=>{let n={};n.others=[];let o=s=>{V__default.default.Children.forEach(s,r=>{if(V__default.default.isValidElement(r)){let u=r.type.displayName;if(t.includes(u))n[u]=r;else {let i=r;i.props?.children?o(i.props.children):n.others.push(r);}}else n.others.push(r);});};return o(e),n};exports.BgsCoreProvider=ge;exports.DataTypeEnum=Se;exports.HttpMethod=Pe;exports.capitalizeWords=Z;exports.createApiHelper=zt;exports.createElement=or;exports.createStore=ae;exports.debounce=Ye;exports.decrypt=I;exports.decryptString=oe;exports.diffJson=je;exports.encrypt=H;exports.encryptString=ne;exports.generateCacheKey=_;exports.generateUUID=$e;exports.getFieldValue=O;exports.isArray=ze;exports.isNotEmpty=q;exports.jsonCopy=Xe;exports.labelFormatter=Y;exports.mappingUndefinedtoNull=We;exports.renderChildren=Ve;exports.sorting=Je;exports.splitElement=sr;exports.stableStringify=de;exports.summary=Ge;exports.useApiLoad=Ae;exports.useApiSend=Xt;exports.useApiStore=tr;exports.useBgsCore=N;exports.useCrypto=F;exports.useDelay=St;exports.useFormatted=kt;exports.useInterval=Kt;exports.useKeyPress=Bt;exports.useScrollTrigger=Zt;exports.useStorage=se;
package/dist/index.d.cts CHANGED
@@ -1,7 +1,6 @@
1
1
  import moment from 'moment';
2
2
  import { GenericAbortSignal, AxiosProgressEvent, AxiosResponse, AxiosRequestConfig } from 'axios';
3
- import * as React$1 from 'react';
4
- import React__default, { PropsWithChildren } from 'react';
3
+ import React$1, { PropsWithChildren } from 'react';
5
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
5
 
7
6
  type Children<T = unknown> = ChildFunction<T> | React.ReactNode;
@@ -395,12 +394,17 @@ declare const createApiHelper: <DReq = any, DRes = any>({ url, token, beforeRequ
395
394
  declare function useApiSend<DReq, DRes>(api: ApiMethod<DReq, DRes>, props?: UseApiSendProps<DReq, DRes>): UseApiSendReturnType<DReq, DRes>;
396
395
  declare function useApiSend<DRes>(api: ApiMethodVoid<DRes>, props?: UseApiSendProps<undefined, DRes>): UseApiSendReturnType<undefined, DRes>;
397
396
 
398
- type Direction = "vertical" | "horizontal";
399
- declare function useScroll<T extends HTMLDivElement>(direction?: Direction): {
400
- ref: React$1.RefObject<T | null>;
401
- showStartShadow: boolean;
402
- showEndShadow: boolean;
403
- };
397
+ interface UseScrollTriggerOptions {
398
+ disableHysteresis?: boolean;
399
+ target?: Node | Window | null;
400
+ threshold?: number;
401
+ getTrigger?: (store: ReturnType<typeof React$1.useRef<number | undefined>>, options: {
402
+ disableHysteresis?: boolean;
403
+ threshold?: number;
404
+ target?: Node | Window | null;
405
+ }) => boolean;
406
+ }
407
+ declare function useScrollTrigger(options?: UseScrollTriggerOptions): boolean;
404
408
 
405
409
  declare const useStorage: () => {
406
410
  save: <T = any>(key: string, data: T) => void;
@@ -432,15 +436,15 @@ type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : never;
432
436
  declare const useApiStore: <T extends ApiMethod<any, any>>(api: T, key: string) => UseCallReturnType<InferApiRequest<T>, InferApiResponse<T>>;
433
437
 
434
438
  type CreateElementProps<P = unknown> = {
435
- (element: (props: P) => React__default.JSX.Element, elementName: string): React__default.FC<P>;
439
+ (element: (props: P) => React$1.JSX.Element, elementName: string): React$1.FC<P>;
436
440
  };
437
- declare const createElement: <T>(element: (props: T) => React__default.JSX.Element, elementName: string) => React__default.FC<T>;
441
+ declare const createElement: <T>(element: (props: T) => React$1.JSX.Element, elementName: string) => React$1.FC<T>;
438
442
  type SplitElementResult<T extends string> = {
439
- [K in T]?: React__default.ReactNode;
443
+ [K in T]?: React$1.ReactNode;
440
444
  } & {
441
- others?: React__default.ReactNode[];
445
+ others?: React$1.ReactNode[];
442
446
  };
443
- declare const splitElement: <T extends string>(children: React__default.ReactNode, elementNames: T[]) => SplitElementResult<T>;
447
+ declare const splitElement: <T extends string>(children: React$1.ReactNode, elementNames: T[]) => SplitElementResult<T>;
444
448
 
445
449
  declare function generateUUID(): string;
446
450
  declare function diffJson(data1: any, data2: any): boolean;
@@ -500,4 +504,4 @@ interface BgsCoreProviderProps {
500
504
  }
501
505
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
502
506
 
503
- 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 TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, 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, useScroll, useStorage };
507
+ 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 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 };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import moment from 'moment';
2
2
  import { GenericAbortSignal, AxiosProgressEvent, AxiosResponse, AxiosRequestConfig } from 'axios';
3
- import * as React$1 from 'react';
4
- import React__default, { PropsWithChildren } from 'react';
3
+ import React$1, { PropsWithChildren } from 'react';
5
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
5
 
7
6
  type Children<T = unknown> = ChildFunction<T> | React.ReactNode;
@@ -395,12 +394,17 @@ declare const createApiHelper: <DReq = any, DRes = any>({ url, token, beforeRequ
395
394
  declare function useApiSend<DReq, DRes>(api: ApiMethod<DReq, DRes>, props?: UseApiSendProps<DReq, DRes>): UseApiSendReturnType<DReq, DRes>;
396
395
  declare function useApiSend<DRes>(api: ApiMethodVoid<DRes>, props?: UseApiSendProps<undefined, DRes>): UseApiSendReturnType<undefined, DRes>;
397
396
 
398
- type Direction = "vertical" | "horizontal";
399
- declare function useScroll<T extends HTMLDivElement>(direction?: Direction): {
400
- ref: React$1.RefObject<T | null>;
401
- showStartShadow: boolean;
402
- showEndShadow: boolean;
403
- };
397
+ interface UseScrollTriggerOptions {
398
+ disableHysteresis?: boolean;
399
+ target?: Node | Window | null;
400
+ threshold?: number;
401
+ getTrigger?: (store: ReturnType<typeof React$1.useRef<number | undefined>>, options: {
402
+ disableHysteresis?: boolean;
403
+ threshold?: number;
404
+ target?: Node | Window | null;
405
+ }) => boolean;
406
+ }
407
+ declare function useScrollTrigger(options?: UseScrollTriggerOptions): boolean;
404
408
 
405
409
  declare const useStorage: () => {
406
410
  save: <T = any>(key: string, data: T) => void;
@@ -432,15 +436,15 @@ type InferApiResponse<T> = T extends ApiMethod<any, infer Res> ? Res : never;
432
436
  declare const useApiStore: <T extends ApiMethod<any, any>>(api: T, key: string) => UseCallReturnType<InferApiRequest<T>, InferApiResponse<T>>;
433
437
 
434
438
  type CreateElementProps<P = unknown> = {
435
- (element: (props: P) => React__default.JSX.Element, elementName: string): React__default.FC<P>;
439
+ (element: (props: P) => React$1.JSX.Element, elementName: string): React$1.FC<P>;
436
440
  };
437
- declare const createElement: <T>(element: (props: T) => React__default.JSX.Element, elementName: string) => React__default.FC<T>;
441
+ declare const createElement: <T>(element: (props: T) => React$1.JSX.Element, elementName: string) => React$1.FC<T>;
438
442
  type SplitElementResult<T extends string> = {
439
- [K in T]?: React__default.ReactNode;
443
+ [K in T]?: React$1.ReactNode;
440
444
  } & {
441
- others?: React__default.ReactNode[];
445
+ others?: React$1.ReactNode[];
442
446
  };
443
- declare const splitElement: <T extends string>(children: React__default.ReactNode, elementNames: T[]) => SplitElementResult<T>;
447
+ declare const splitElement: <T extends string>(children: React$1.ReactNode, elementNames: T[]) => SplitElementResult<T>;
444
448
 
445
449
  declare function generateUUID(): string;
446
450
  declare function diffJson(data1: any, data2: any): boolean;
@@ -500,4 +504,4 @@ interface BgsCoreProviderProps {
500
504
  }
501
505
  declare const BgsCoreProvider: ({ children, value: options }: PropsWithChildren<BgsCoreProviderProps>) => react_jsx_runtime.JSX.Element;
502
506
 
503
- 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 TextTransform, type UseApiSendProps, type UseApiSendReturnType, type UseCallOptionsProps, type UseCallReturnType, type UseHelperProps, 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, useScroll, useStorage };
507
+ 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 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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import j from'moment';import le,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import ee from'crypto-js/aes';import te from'crypto-js/pbkdf2';import he from'crypto-js/enc-utf8';import K from'crypto-js/enc-base64';import Q from'crypto-js/lib-typedarrays';import Ke 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 ze(e,t){try{return JSON.stringify(e)!==JSON.stringify(t)}catch{return false}}var Ve=e=>(Object.keys(e).forEach(t=>{e[t]===void 0&&(e[t]=null);}),e);function Je(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 q(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 X={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,a)=>a.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=X.snackCase(X.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function We(e,t){return typeof e=="function"?e(t):e}var O=(e,t,n="")=>{if(!e)return n;if(e.hasOwnProperty(t))return e[t];let o=t.replace(/\[(\d+)\]/g,".$1").split("."),a=e;for(let r of o){if(a==null)return n;a=a[r];}return a===void 0?n:a},Ge={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let a=O(n,t)?O(n,t):"",r=O(o,t)?O(n,t):"";return a<r?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let a=O(n,t)?O(n,t):"",r=O(o,t)?O(o,t):"";return a>r?1:-1}else return n>o?1:-1}))},Xe=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?O(o,t)||0:o||0)),n.reduce((o,a)=>(o||0)+(a||0),0)||0};function _e(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function de(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((a,r)=>(a[r]=o[r],a),{})):o})??""}function _(e,t){return de([t??"undefined",e??"undefined"])}function Z(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ze(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var Y=createContext(void 0);function N(){let e=useContext(Y);return e||{}}var Re=({children:e,value:t})=>{let n={...t};return jsx(Y.Provider,{value:n,children:e})};function I(e,t){let n=Q.random(16),o=Q.random(16),a=te(t,n,{keySize:256/32,iterations:1e3}),r=ee.encrypt(JSON.stringify(e),a,{iv:o}).toString();return {salt:n.toString(K),iv:o.toString(K),encrypted:r}}function L(e,t){let{salt:n,iv:o,encrypted:a}=e,r=te(t,K.parse(n),{keySize:256/32,iterations:1e3}),i=ee.decrypt(a,r,{iv:K.parse(o)}).toString(he);return JSON.parse(i)}function re(e,t){return JSON.stringify(I(e,t))}function ne(e,t){return L(JSON.parse(e),t)}function M(){let{passphrase:e}=N();return {passphrase:e,encrypt(t,n){return I(t,n||e)},decrypt(t,n){return L(t,n||e)},encryptString(t,n){return re(t,n||e)},decryptString(t,n){return ne(t,n||e)}}}var oe=()=>{let{encrypt:e,decrypt:t}=M(),n=useCallback((c,i)=>{try{let d=e(i);localStorage.setItem(c,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),o=useCallback(c=>{try{let i=localStorage.getItem(c);return i?t(JSON.parse(i)):null}catch(i){return console.error("Failed to get from storage:",i),null}},[t]),a=c=>{let[i,d]=useState(()=>{try{let p=localStorage.getItem(c);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===c)if(R.newValue)try{d(t(JSON.parse(R.newValue)));}catch(S){console.error("Decrypt error from storage event",S);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[c,t]),i},r=useCallback(c=>{c?localStorage.removeItem(c):localStorage.clear();},[]);return {save:n,get:o,clear:r,useWatchStorage:a}};function se(e){let t=e,n=new Set;function o(){return t}function a(i){return n.add(i),()=>n.delete(i)}function r(i){typeof i=="function"?t=i(t):t=i,n.forEach(d=>d());}function c(i){return useSyncExternalStore(a,()=>i?i(t):t,()=>i?i(t):t)}return {getSnapshot:o,subscribe:a,setState:r,useStore:c}}var $=new Map;function F(e){return $.has(e)||$.set(e,se([null,{}])),$.get(e)}function Ae(e,t,n){let o=arguments.length===3,a=o?t:void 0,r=o?n:t,{storageKey:c,cache:i}=N(),d=oe(),[p,R]=useState(false),[S,b]=useState(false),[T,C]=useState(),g=useRef(void 0),x=useRef(null),{cacheName:P,cacheKey:A,timeout:J,timeoutUnit:W,persistence:G}=useMemo(()=>{let l=c?d.get(c):void 0,s=typeof r?.cache=="object"?r?.cache?.cacheName??e.name:e.name,f=_({...a,session:l},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),y=false;typeof i?.persistence=="boolean"&&(y=i?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(y=r?.cache?.persistence??false);let h=60*5,u="s";return q(i?.timeout)&&(typeof i?.timeout=="number"?(h=i.timeout,u="s"):typeof i?.timeout=="object"&&(h=i?.timeout.value,u=i?.timeout.unit)),r?.cache&&typeof r.cache!="boolean"&&(typeof r.cache.timeout=="number"?(h=r.cache.timeout,u="s"):typeof r.cache.timeout=="object"&&(h=r.cache.timeout.value,u=r.cache.timeout.unit)),{cacheName:s,cacheKey:f,timeout:h,timeoutUnit:u,persistence:y}},[r?.cache,c,i]);useEffect(()=>{let l=JSON.stringify(q(g.current)?g.current:""),s=JSON.stringify(q(a)?a:""),f=g.current===void 0;(l!==s||f)&&!r?.hold&&(C(null),U(),g.current=a),r?.onChange&&r?.onChange(a,m);},[a,r?.hold,...r?.trigger||[]]),useEffect(()=>{let l=async()=>{!G&&P&&A&&(await caches.open(P)).delete(A);};return window.addEventListener("beforeunload",l),()=>{window.removeEventListener("beforeunload",l),x.current?.abort();}},[]);let U=useCallback(async l=>{let s=a;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(s=r?.beforeRequest(a)),r?.cache&&!l&&!S){R(true),r?.onBeforeRequest&&r?.onBeforeRequest(a);let f=await caches.open(P),h=await(await f.match(A))?.json();if(h){let{data:u,expired:w}=h;if(j().isAfter(w))await f.delete(A);else {r?.afterResponse&&u?.data&&(u.data=r?.afterResponse(u.data)),r?.logging&&console.log("After request: Using Cache",u),r?.onAfterResponse&&r?.onAfterResponse(u),R(false),C(u);return}}}if(typeof e=="function"){x.current?.abort();let f=new AbortController;x.current=f,R(true),r?.logging&&console.log("Before request",a),r?.onBeforeRequest&&r?.onBeforeRequest(a);let y=o?await e(s,void 0,{...r,signal:f.signal}):await e(void 0,{...r,signal:f.signal});if(r?.afterResponse&&y?.data&&(y.data=r?.afterResponse(y.data)),r?.logging&&console.log("After request",y),r?.onAfterResponse&&r?.onAfterResponse(y),R(false),C(y),b(false),r?.cache&&y.status){let h=j().add(J,W).toISOString(),u={data:y,expired:h},w=await caches.open(P),E=new Response(JSON.stringify(u));await w.put(A,E);}}},[a,e,r]);useEffect(()=>{if(r?.refreshInterval){let l=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,s=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,f=setInterval(()=>{U();},j.duration(l,s).asMilliseconds());return ()=>clearInterval(f)}return ()=>{}},[r?.refreshInterval,U]),useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let l=()=>{U();};return window.addEventListener("focus",l),()=>{window.removeEventListener("focus",l);}},[r?.refetchOnWindowFocus,U]);let m={...T,loading:p,refresh:U,abort:()=>{x.current?.abort(),x.current=null,R(false),b(true);},clear:()=>{R(false),C(null);},response:T,isCancel:S,clone:(l,s)=>Ae(e,l,s)};return useEffect(()=>{r?.storeName&&F(r?.storeName).setState([T?.data,m]);},[T,m,r?.storeName]),[T?.data,m]}async function Ot(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Se=(r=>(r.POST="POST",r.PUT="PUT",r.PATCH="PATCH",r.DELETE="DELETE",r.GET="GET",r))(Se||{}),Pe=(s=>(s.number="number",s.currency="currency",s.percent="percent",s.date="date",s.dateTime="dateTime",s.month="month",s.year="year",s.time="time",s.timestamp="timestamp",s.string="string",s.textarea="textarea",s.code="code",s.password="password",s.boolean="boolean",s.toggle="toggle",s.email="email",s.phone="phone",s.url="url",s.json="json",s.file="file",s.image="image",s.array="array",s.object="object",s.enum="enum",s.user="user",s.department="department",s.status="status",s))(Pe||{});var Et=(e,t,n)=>{let{format:o}=N();return t==="number"?Ue(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(a=>a===t)?Ne(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?qe(e,n):t==="string"?we(e,n):e?.toString()??""};function qe(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",a=t?.falseLabel??"No";return n?o:a}function we(e,t){if(!q(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=Z(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 Ue(e,{thouSep:t,decSep:n,decDigits:o,method:a}){if(e==null||isNaN(Number(e)))return "";let r=typeof e=="string"?parseFloat(e):e;if(a)if(typeof o=="number"){let p=Math.pow(10,o);r=Math[a](r*p)/p;}else r=Math[a](r);else if(typeof o=="number"){let p=Math.pow(10,o);r=Math.floor(r*p)/p;}let c=0;if(o==="auto"){let p=r.toString(),R=p.indexOf(".");R!==-1&&(c=p.length-R-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?c:o||0,maximumFractionDigits:o==="auto"?c:o||0,minimumIntegerDigits:1};return r.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Ne(e,{display:t,value:n}){if(!q(e))return e;let o=j(e,n);return o.isValid()?o.format(t):e}function Mt(e,{interval:t,lead:n}){let o=useRef(null);useEffect(()=>{o.current=e;},[e]),useEffect(()=>{let a=()=>o.current();if(n&&a(),t!==null){let r=setInterval(a,t);return ()=>clearInterval(r)}},[t]);}function It(e,t,n){let[o,a]=useState(false),r=(p,R)=>typeof e=="string"&&p===e||typeof e=="number"&&R===e,c=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),i=p=>{let{key:R,keyCode:S}=p,b=p.ctrlKey,T=p.altKey,C=p.shiftKey;if(!c(document.activeElement))if(t)if(typeof t=="string")r(R,S)&&(t==="ctrl"&&b||t==="alt"&&T||t==="shift"&&C)&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));else {let g=t.every(x=>x==="ctrl"?b:x==="alt"?T:x==="shift"?C:false);r(R,S)&&g&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));}else r(R,S)&&(p.preventDefault(),n&&p.stopPropagation(),a(!o));},d=({key:p,keyCode:R})=>{r(p,R)&&a(false);};return useEffect(()=>(window.addEventListener("keydown",i),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",d);}),[]),o}var Jt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:a,onUnauthorized:r,handleToast:c,handleAuthorization:i,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:R,encryptResponse:S,passphrase:b})=>{let{encrypt:T,decrypt:C,passphrase:g}=M(),x=(m,l,s,f)=>{let y=f?.code==="ERR_CANCELED",h=m.status===401,u=m?.data;if((typeof s?.encryptResponse=="boolean"?s?.encryptResponse:S)&&u){let v=s?.passphrase?typeof s.passphrase=="boolean"&&s.passphrase?g:s.passphrase:b;try{u=C(u,v);}catch{try{u=C(u,g);}catch{}}}let D={...o({...m,data:u,isCancel:y,isUnauthorization:h},f),isCancel:y,isUnauthorization:h,httpCode:m.status},B=typeof s?.disabledToastWhenCancel=="boolean"?s?.disabledToastWhenCancel:d,fe=i?i(D,s):!h;if((s?.infoSuccess&&D.status||s?.infoError&&!D.status)&&c&&(!y||!B)&&c(D),!fe&&(!y||!s?.disabledHandleUnauthorized)){let v=s?.onUnauthorized||r;v&&v(D);}if(l)l(D);else return D},P=(m,l=()=>{})=>Ke.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(f=>l(f.response,f)),A=(m,l,s,f,y)=>{let u={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...y},w={"Content-Type":"application/json",...a,...u.headers};if(u.token&&(typeof u.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):u.token&&(w.Authorization=`Bearer ${u.token}`)),n&&(s=n(s)),(typeof u?.encryptRequest=="boolean"?u?.encryptRequest:R)&&s){let D=y?.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?g:y.passphrase:b;s=T(s,D);}return P({url:l,method:m,data:s,headers:w,responseType:u.responseType,signal:u.signal,withCredentials:u.withCredentials,onUploadProgress:D=>{u?.onUploadProgress&&u?.onUploadProgress(D);}},(D,B)=>x(D,f,u,B))};return {client:P,post:(m,l,s,f)=>A("POST",`${m}`,l,s,f),put:(m,l,s,f)=>A("PUT",`${m}`,l,s,f),patch:(m,l,s,f)=>A("PATCH",`${m}`,l,s,f),delete:(m,l,s)=>A("DELETE",`${m}`,null,l,s),get:(m,l,s)=>A("GET",`${m}`,null,l,s),upload:(m,l,s,f)=>{let y=new FormData;return Object.keys(l).forEach(h=>y.append(h,l[h])),A("POST",`${m}`,y,s,{infoSuccess:false,...f,headers:{"Content-Type":"multipart/form-data",...f?.headers}})}}};function _t(e,t){let[n,o]=useState(false),[a,r]=useState(),[c,i]=useState(0),d=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async b=>{d.current?.abort();let T=new AbortController;d.current=T,o(true),t?.beforeRequest&&(b=t?.beforeRequest(b)),t?.logging&&console.log("Before request",b);let C={...t,signal:T.signal,onUploadProgress:x=>{let P=Math.round(x.loaded*100/(x.total||1));i(P);}},g=q(b)?await e(b,void 0,C):await e(void 0,C);t?.logging&&console.log("After response",g),r(g),o(false),i(0),g.status&&t?.onSuccess&&t?.onSuccess(g),!g.status&&t?.onError&&t?.onError(g),t?.afterResponse&&t?.afterResponse(g);},{...a,loading:n,abort:()=>{d.current?.abort(),d.current=null,o(false),i(0);},progress:c,reset:()=>{o(false),i(0),r(null);}}]}function Qt(e="vertical"){let t=useRef(null),[n,o]=useState(false),[a,r]=useState(false),c=useCallback(()=>{let i=t.current;if(i)if(e==="vertical"){let d=Math.ceil(i.scrollTop+i.clientHeight),p=Math.floor(i.scrollHeight);o(i.scrollTop>0),r(d<p);}else {let d=Math.ceil(i.scrollLeft+i.clientWidth),p=Math.floor(i.scrollWidth);o(i.scrollLeft>0),r(d<p);}},[e]);return useEffect(()=>{let i=t.current;if(i)return c(),i.addEventListener("scroll",c),()=>i.removeEventListener("scroll",c)},[c]),{ref:t,showStartShadow:n,showEndShadow:a}}var rr=(e,t)=>F(t).useStore();var sr=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},ar=(e,t)=>{let n={};n.others=[];let o=a=>{le.Children.forEach(a,r=>{if(le.isValidElement(r)){let c=r.type.displayName;if(t.includes(c))n[c]=r;else {let i=r;i.props?.children?o(i.props.children):n.others.push(r);}}else n.others.push(r);});};return o(e),n};export{Re as BgsCoreProvider,Pe as DataTypeEnum,Se as HttpMethod,Z as capitalizeWords,Jt as createApiHelper,sr as createElement,se as createStore,Ze as debounce,L as decrypt,ne as decryptString,ze as diffJson,I as encrypt,re as encryptString,_ as generateCacheKey,je as generateUUID,O as getFieldValue,Je as isArray,q as isNotEmpty,_e as jsonCopy,X as labelFormatter,Ve as mappingUndefinedtoNull,We as renderChildren,Ge as sorting,ar as splitElement,de as stableStringify,Xe as summary,Ae as useApiLoad,_t as useApiSend,rr as useApiStore,N as useBgsCore,M as useCrypto,Ot as useDelay,Et as useFormatted,Mt as useInterval,It as useKeyPress,Qt as useScroll,oe as useStorage};
1
+ import j from'moment';import V,{createContext,useContext,useCallback,useState,useRef,useMemo,useEffect,useSyncExternalStore}from'react';import {jsx}from'react/jsx-runtime';import te from'crypto-js/aes';import re from'crypto-js/pbkdf2';import he from'crypto-js/enc-utf8';import K from'crypto-js/enc-base64';import ee from'crypto-js/lib-typedarrays';import Ke from'axios';function $e(){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 je(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 n=false;return e&&typeof e=="object"&&Array.isArray(e)&&(typeof t=="number"?e.length>t&&(n=true):n=true),n}function q(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 Y={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=Y.snackCase(Y.camelCase(e)),t&&(n=n?.split(" ")?.map(o=>o?.length<=3?o?.toUpperCase():o)?.join(" "));}catch{}return n?.trim()}};function Ve(e,t){return typeof e=="function"?e(t):e}var O=(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 r of o){if(s==null)return n;s=s[r];}return s===void 0?n:s},Je={desc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=O(n,t)?O(n,t):"",r=O(o,t)?O(n,t):"";return s<r?1:-1}else return n<o?1:-1})),asc:(e,t)=>(e||(e=[]),e.sort((n,o)=>{if(t){let s=O(n,t)?O(n,t):"",r=O(o,t)?O(o,t):"";return s>r?1:-1}else return n>o?1:-1}))},Ge=(e,t)=>{Array.isArray(e)||(e=[]);let n=[];return n=e.map(o=>Number(t?O(o,t)||0:o||0)),n.reduce((o,s)=>(o||0)+(s||0),0)||0};function Xe(e){try{return e&&JSON.parse(JSON.stringify(e))}catch{return e}}function de(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,r)=>(s[r]=o[r],s),{})):o})??""}function _(e,t){return de([t??"undefined",e??"undefined"])}function Z(e=""){return typeof e!="string"&&(e=""),e.replace(/\b\w/g,t=>t.toUpperCase())}function Ye(e,t=0){let n;return function(...o){clearTimeout(n),n=setTimeout(()=>{e(...o);},t*1e3);}}var Q=createContext(void 0);function N(){let e=useContext(Q);return e||{}}var ge=({children:e,value:t})=>{let n={...t};return jsx(Q.Provider,{value:n,children:e})};function H(e,t){let n=ee.random(16),o=ee.random(16),s=re(t,n,{keySize:256/32,iterations:1e3}),r=te.encrypt(JSON.stringify(e),s,{iv:o}).toString();return {salt:n.toString(K),iv:o.toString(K),encrypted:r}}function I(e,t){let{salt:n,iv:o,encrypted:s}=e,r=re(t,K.parse(n),{keySize:256/32,iterations:1e3}),i=te.decrypt(s,r,{iv:K.parse(o)}).toString(he);return JSON.parse(i)}function ne(e,t){return JSON.stringify(H(e,t))}function oe(e,t){return I(JSON.parse(e),t)}function F(){let{passphrase:e}=N();return {passphrase:e,encrypt(t,n){return H(t,n||e)},decrypt(t,n){return I(t,n||e)},encryptString(t,n){return ne(t,n||e)},decryptString(t,n){return oe(t,n||e)}}}var se=()=>{let{encrypt:e,decrypt:t}=F(),n=useCallback((u,i)=>{try{let d=e(i);localStorage.setItem(u,JSON.stringify(d));}catch(d){console.error("Failed to save to storage:",d);}},[e]),o=useCallback(u=>{try{let i=localStorage.getItem(u);return i?t(JSON.parse(i)):null}catch(i){return console.error("Failed to get from storage:",i),null}},[t]),s=u=>{let[i,d]=useState(()=>{try{let p=localStorage.getItem(u);return p?t(JSON.parse(p)):null}catch(p){return console.error("Failed to parse localStorage value",p),null}});return useEffect(()=>{let p=g=>{if(g.key===u)if(g.newValue)try{d(t(JSON.parse(g.newValue)));}catch(P){console.error("Decrypt error from storage event",P);}else d(null);};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[u,t]),i},r=useCallback(u=>{u?localStorage.removeItem(u):localStorage.clear();},[]);return {save:n,get:o,clear:r,useWatchStorage:s}};function ae(e){let t=e,n=new Set;function o(){return t}function s(i){return n.add(i),()=>n.delete(i)}function r(i){typeof i=="function"?t=i(t):t=i,n.forEach(d=>d());}function u(i){return useSyncExternalStore(s,()=>i?i(t):t,()=>i?i(t):t)}return {getSnapshot:o,subscribe:s,setState:r,useStore:u}}var $=new Map;function M(e){return $.has(e)||$.set(e,ae([null,{}])),$.get(e)}function Ae(e,t,n){let o=arguments.length===3,s=o?t:void 0,r=o?n:t,{storageKey:u,cache:i}=N(),d=se(),[p,g]=useState(false),[P,b]=useState(false),[x,C]=useState(),R=useRef(void 0),T=useRef(null),{cacheName:S,cacheKey:A,timeout:J,timeoutUnit:G,persistence:X}=useMemo(()=>{let l=u?d.get(u):void 0,a=typeof r?.cache=="object"?r?.cache?.cacheName??e.name:e.name,f=_({...s,session:l},typeof r?.cache=="object"?r?.cache?.cacheKey:void 0),y=false;typeof i?.persistence=="boolean"&&(y=i?.persistence),typeof r?.cache=="object"&&typeof r?.cache?.persistence=="boolean"&&(y=r?.cache?.persistence??false);let h=60*5,c="s";return q(i?.timeout)&&(typeof i?.timeout=="number"?(h=i.timeout,c="s"):typeof i?.timeout=="object"&&(h=i?.timeout.value,c=i?.timeout.unit)),r?.cache&&typeof r.cache!="boolean"&&(typeof r.cache.timeout=="number"?(h=r.cache.timeout,c="s"):typeof r.cache.timeout=="object"&&(h=r.cache.timeout.value,c=r.cache.timeout.unit)),{cacheName:a,cacheKey:f,timeout:h,timeoutUnit:c,persistence:y}},[r?.cache,u,i]);useEffect(()=>{let l=JSON.stringify(q(R.current)?R.current:""),a=JSON.stringify(q(s)?s:""),f=R.current===void 0;(l!==a||f)&&!r?.hold&&(C(null),U(),R.current=s),r?.onChange&&r?.onChange(s,m);},[s,r?.hold,...r?.trigger||[]]),useEffect(()=>{let l=async()=>{!X&&S&&A&&(await caches.open(S)).delete(A);};return window.addEventListener("beforeunload",l),()=>{window.removeEventListener("beforeunload",l),T.current?.abort();}},[]);let U=useCallback(async l=>{let a=s;if(r?.hold&&r?.logging&&console.log("Hold active"),r?.beforeRequest&&(a=r?.beforeRequest(s)),r?.cache&&!l&&!P){g(true),r?.onBeforeRequest&&r?.onBeforeRequest(s);let f=await caches.open(S),h=await(await f.match(A))?.json();if(h){let{data:c,expired:w}=h;if(j().isAfter(w))await f.delete(A);else {r?.afterResponse&&c?.data&&(c.data=r?.afterResponse(c.data)),r?.logging&&console.log("After request: Using Cache",c),r?.onAfterResponse&&r?.onAfterResponse(c),g(false),C(c);return}}}if(typeof e=="function"){T.current?.abort();let f=new AbortController;T.current=f,g(true),r?.logging&&console.log("Before request",s),r?.onBeforeRequest&&r?.onBeforeRequest(s);let y=o?await e(a,void 0,{...r,signal:f.signal}):await e(void 0,{...r,signal:f.signal});if(r?.afterResponse&&y?.data&&(y.data=r?.afterResponse(y.data)),r?.logging&&console.log("After request",y),r?.onAfterResponse&&r?.onAfterResponse(y),g(false),C(y),b(false),r?.cache&&y.status){let h=j().add(J,G).toISOString(),c={data:y,expired:h},w=await caches.open(S),E=new Response(JSON.stringify(c));await w.put(A,E);}}},[s,e,r]);useEffect(()=>{if(r?.refreshInterval){let l=typeof r.refreshInterval=="number"?r.refreshInterval:r.refreshInterval.value,a=typeof r.refreshInterval=="number"?"s":r.refreshInterval.unit,f=setInterval(()=>{U();},j.duration(l,a).asMilliseconds());return ()=>clearInterval(f)}return ()=>{}},[r?.refreshInterval,U]),useEffect(()=>{if(!r?.refetchOnWindowFocus)return;let l=()=>{U();};return window.addEventListener("focus",l),()=>{window.removeEventListener("focus",l);}},[r?.refetchOnWindowFocus,U]);let m={...x,loading:p,refresh:U,abort:()=>{T.current?.abort(),T.current=null,g(false),b(true);},clear:()=>{g(false),C(null);},response:x,isCancel:P,clone:(l,a)=>Ae(e,l,a)};return useEffect(()=>{r?.storeName&&M(r?.storeName).setState([x?.data,m]);},[x,m,r?.storeName]),[x?.data,m]}async function St(e,t=()=>{}){let n=e*1e3;return new Promise(o=>{setInterval(()=>{t();},1e3);setTimeout(async()=>{await t(),o(true);},n);})}var Pe=(r=>(r.POST="POST",r.PUT="PUT",r.PATCH="PATCH",r.DELETE="DELETE",r.GET="GET",r))(Pe||{}),Se=(a=>(a.number="number",a.currency="currency",a.percent="percent",a.date="date",a.dateTime="dateTime",a.month="month",a.year="year",a.time="time",a.timestamp="timestamp",a.string="string",a.textarea="textarea",a.code="code",a.password="password",a.boolean="boolean",a.toggle="toggle",a.email="email",a.phone="phone",a.url="url",a.json="json",a.file="file",a.image="image",a.array="array",a.object="object",a.enum="enum",a.user="user",a.department="department",a.status="status",a))(Se||{});var kt=(e,t,n)=>{let{format:o}=N();return t==="number"?Ue(e,{thouSep:o.number.thouSep,decDigits:o.number.decDigits,decSep:o.number.decSep,...n}):["date","dateTime","month","year","time"].some(s=>s===t)?Ne(e,{display:o[t]?.display,value:o[t]?.value,...n}):t==="boolean"?qe(e,n):t==="string"?we(e,n):e?.toString()??""};function qe(e,t){let n=typeof e=="string"?e==="true":!!e,o=t?.trueLabel??"Yes",s=t?.falseLabel??"No";return n?o:s}function we(e,t){if(!q(e))return "";let n=String(e);switch(t?.textTransform){case "capitalize":n=Z(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 Ue(e,{thouSep:t,decSep:n,decDigits:o,method:s}){if(e==null||isNaN(Number(e)))return "";let r=typeof e=="string"?parseFloat(e):e;if(s)if(typeof o=="number"){let p=Math.pow(10,o);r=Math[s](r*p)/p;}else r=Math[s](r);else if(typeof o=="number"){let p=Math.pow(10,o);r=Math.floor(r*p)/p;}let u=0;if(o==="auto"){let p=r.toString(),g=p.indexOf(".");g!==-1&&(u=p.length-g-1);}let i={style:"decimal",useGrouping:true,minimumFractionDigits:o==="auto"?u:o||0,maximumFractionDigits:o==="auto"?u:o||0,minimumIntegerDigits:1};return r.toLocaleString("en-US",i).replace(/\./g,"decSep").replace(/,/g,"thouSep").replace(/decSep/g,n).replace(/thouSep/g,t)}function Ne(e,{display:t,value:n}){if(!q(e))return e;let o=j(e,n);return o.isValid()?o.format(t):e}function Kt(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 r=setInterval(s,t);return ()=>clearInterval(r)}},[t]);}function Bt(e,t,n){let[o,s]=useState(false),r=(p,g)=>typeof e=="string"&&p===e||typeof e=="number"&&g===e,u=p=>p!==null&&(["INPUT","TEXTAREA","SELECT","BUTTON"].includes(p.tagName)||p.hasAttribute("contentEditable")),i=p=>{let{key:g,keyCode:P}=p,b=p.ctrlKey,x=p.altKey,C=p.shiftKey;if(!u(document.activeElement))if(t)if(typeof t=="string")r(g,P)&&(t==="ctrl"&&b||t==="alt"&&x||t==="shift"&&C)&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));else {let R=t.every(T=>T==="ctrl"?b:T==="alt"?x:T==="shift"?C:false);r(g,P)&&R&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));}else r(g,P)&&(p.preventDefault(),n&&p.stopPropagation(),s(!o));},d=({key:p,keyCode:g})=>{r(p,g)&&s(false);};return useEffect(()=>(window.addEventListener("keydown",i),window.addEventListener("keyup",d),()=>{window.removeEventListener("keydown",i),window.removeEventListener("keyup",d);}),[]),o}var zt=({url:e,token:t,beforeRequest:n,onCallback:o,headers:s,onUnauthorized:r,handleToast:u,handleAuthorization:i,disabledToastWhenCancel:d,withCredentials:p,encryptRequest:g,encryptResponse:P,passphrase:b})=>{let{encrypt:x,decrypt:C,passphrase:R}=F(),T=(m,l,a,f)=>{let y=f?.code==="ERR_CANCELED",h=m.status===401,c=m?.data;if((typeof a?.encryptResponse=="boolean"?a?.encryptResponse:P)&&c){let v=a?.passphrase?typeof a.passphrase=="boolean"&&a.passphrase?R:a.passphrase:b;try{c=C(c,v);}catch{try{c=C(c,R);}catch{}}}let D={...o({...m,data:c,isCancel:y,isUnauthorization:h},f),isCancel:y,isUnauthorization:h,httpCode:m.status},B=typeof a?.disabledToastWhenCancel=="boolean"?a?.disabledToastWhenCancel:d,fe=i?i(D,a):!h;if((a?.infoSuccess&&D.status||a?.infoError&&!D.status)&&u&&(!y||!B)&&u(D),!fe&&(!y||!a?.disabledHandleUnauthorized)){let v=a?.onUnauthorized||r;v&&v(D);}if(l)l(D);else return D},S=(m,l=()=>{})=>Ke.create({baseURL:`${e}`,withCredentials:typeof m.withCredentials=="boolean"?m.withCredentials:p})(m).then(l).catch(f=>l(f.response,f)),A=(m,l,a,f,y)=>{let c={...{token:true,infoError:true,infoSuccess:true,responseType:"json"},...y},w={"Content-Type":"application/json",...s,...c.headers};if(c.token&&(typeof c.token=="boolean"?t&&(w.Authorization=`Bearer ${t}`):c.token&&(w.Authorization=`Bearer ${c.token}`)),n&&(a=n(a)),(typeof c?.encryptRequest=="boolean"?c?.encryptRequest:g)&&a){let D=y?.passphrase?typeof y.passphrase=="boolean"&&y.passphrase?R:y.passphrase:b;a=x(a,D);}return S({url:l,method:m,data:a,headers:w,responseType:c.responseType,signal:c.signal,withCredentials:c.withCredentials,onUploadProgress:D=>{c?.onUploadProgress&&c?.onUploadProgress(D);}},(D,B)=>T(D,f,c,B))};return {client:S,post:(m,l,a,f)=>A("POST",`${m}`,l,a,f),put:(m,l,a,f)=>A("PUT",`${m}`,l,a,f),patch:(m,l,a,f)=>A("PATCH",`${m}`,l,a,f),delete:(m,l,a)=>A("DELETE",`${m}`,null,l,a),get:(m,l,a)=>A("GET",`${m}`,null,l,a),upload:(m,l,a,f)=>{let y=new FormData;return Object.keys(l).forEach(h=>y.append(h,l[h])),A("POST",`${m}`,y,a,{infoSuccess:false,...f,headers:{"Content-Type":"multipart/form-data",...f?.headers}})}}};function Xt(e,t){let[n,o]=useState(false),[s,r]=useState(),[u,i]=useState(0),d=useRef(null);return useEffect(()=>{if(t?.abortOnUnmount)return ()=>{d.current?.abort();}},[]),[async b=>{d.current?.abort();let x=new AbortController;d.current=x,o(true),t?.beforeRequest&&(b=t?.beforeRequest(b)),t?.logging&&console.log("Before request",b);let C={...t,signal:x.signal,onUploadProgress:T=>{let S=Math.round(T.loaded*100/(T.total||1));i(S);}},R=q(b)?await e(b,void 0,C):await e(void 0,C);t?.logging&&console.log("After response",R),r(R),o(false),i(0),R.status&&t?.onSuccess&&t?.onSuccess(R),!R.status&&t?.onError&&t?.onError(R),t?.afterResponse&&t?.afterResponse(R);},{...s,loading:n,abort:()=>{d.current?.abort(),d.current=null,o(false),i(0);},progress:u,reset:()=>{o(false),i(0),r(null);}}]}function Be(e,t){let{disableHysteresis:n=false,threshold:o=100,target:s}=t,r=e.current;return s&&(typeof s.pageYOffset=="number"?e.current=s.pageYOffset:s.scrollTop!==void 0&&(e.current=s.scrollTop)),!n&&r!==void 0&&e.current<r?false:(e.current||0)>o}var He=typeof window<"u"?window:null;function Zt(e={}){let{getTrigger:t=Be,target:n=He,disableHysteresis:o=false,threshold:s=100}=e,r=V.useRef(0),[u,i]=V.useState(()=>t(r,{disableHysteresis:o,threshold:s,target:n}));return V.useEffect(()=>{let d=()=>{i(t(r,{disableHysteresis:o,threshold:s,target:n}));};if(d(),n)return n.addEventListener("scroll",d,{passive:true}),()=>{n.removeEventListener("scroll",d);}},[n,t,o,s]),u}var tr=(e,t)=>M(t).useStore();var or=(e,t)=>{let n=o=>e(o);return n.displayName=t,n},sr=(e,t)=>{let n={};n.others=[];let o=s=>{V.Children.forEach(s,r=>{if(V.isValidElement(r)){let u=r.type.displayName;if(t.includes(u))n[u]=r;else {let i=r;i.props?.children?o(i.props.children):n.others.push(r);}}else n.others.push(r);});};return o(e),n};export{ge as BgsCoreProvider,Se as DataTypeEnum,Pe as HttpMethod,Z as capitalizeWords,zt as createApiHelper,or as createElement,ae as createStore,Ye as debounce,I as decrypt,oe as decryptString,je as diffJson,H as encrypt,ne as encryptString,_ as generateCacheKey,$e as generateUUID,O as getFieldValue,ze as isArray,q as isNotEmpty,Xe as jsonCopy,Y as labelFormatter,We as mappingUndefinedtoNull,Ve as renderChildren,Je as sorting,sr as splitElement,de as stableStringify,Ge as summary,Ae as useApiLoad,Xt as useApiSend,tr as useApiStore,N as useBgsCore,F as useCrypto,St as useDelay,kt as useFormatted,Kt as useInterval,Bt as useKeyPress,Zt as useScrollTrigger,se as useStorage};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgscore/react-core",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
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",