@pastable/react
Version:
3 lines (2 loc) • 5.92 kB
JavaScript
import{atom as t}from"jotai";import{atomWithStorage as n}from"jotai/utils";import{useRef as r,useEffect as e,useState as o,useCallback as u,useMemo as i}from"react";import{on as c,off as a,isBrowser as f,format as s,isDefined as l,isType as v,sortBy as d}from"@pastable/utils";function p(n,r){void 0===r&&(r=t);var e=r(n);return t(function(t){return t(e)},function(t,n,r){var o=null!=r?r:!t(e);n(e,o)})}function m(t,r,e){return p(r,function(r){return n(t,r,e)})}function y(){return y=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},y.apply(this,arguments)}function h(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=new Array(n);r<n;r++)e[r]=t[r];return e}function b(t,n){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,n){if(t){if("string"==typeof t)return h(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(t,n):void 0}}(t))||n&&t&&"number"==typeof t.length){r&&(t=r);var e=0;return function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var g=["mousedown","touchstart"],w=function(t,n,o){void 0===o&&(o=g);var u=r(n);e(function(){u.current=n},[n]),e(function(){for(var n,r=function(n){t.current&&!t.current.contains(n.target)&&u.current(n)},e=b(o);!(n=e()).done;)c(document,n.value,r);return function(){for(var t,n=b(o);!(t=n()).done;)a(document,t.value,r)}},[o,t])};function j(){var t=r(null);return e(function(){return t.current=!0,function(){t.current=!1}},[]),t}var A=function(){var t=o(!1),n=t[0],r=t[1];return e(function(){return r(!0),function(){return r(!1)}},[]),n};function S(t,n,o){void 0===o&&(o=window);var u=r(),i=r(),a=j(),f=r(function(){a.current&&u.current.apply(null,arguments)});e(function(){return n===u.current||(null==i.current||i.current(),u.current=n,u.current&&(i.current=c(o,t,f.current))),function(){return null==i.current?void 0:i.current()}},[n,o])}var I=function(){var t=o({})[1];return u(function(){return t({})},[])},O=function(t){void 0===t&&(t={});var n=t.setterFormater,r=t.toPath,o=F(t.getterFormater),u=C({formater:n,toPath:r});return e(function(){t.defaultValues&&u(y({},t.defaultValues,o))},[]),[o,u,function(t){return u(Object.fromEntries((t||Object.keys(o)).map(function(t){return[t,void 0]})))}]},P=function(){return f()?window.location:{search:{}}},F=function(t){var n=P(),r=new URLSearchParams(n.search),e=R(Object.fromEntries(r.entries()));return S("pushstate",I()),t?s(e,t):e},x=function(t,n){void 0===n&&(n={});var r=n.setterFormater,e=n.toPath,o=n.defaultValue,u=F(n.getterFormater),i=C({formater:r,toPath:e}),c=u[t]||o;return[c,function(n){var r,e=v(n,"function"==typeof n)?n(c):n;i(((r={})[t]=e,r))}]},E=function(){},U=function(){return f()?window.history:{pushState:E,replaceState:E}},C=function(t){var n=void 0===t?{}:t,r=n.toPath,e=B(n.formater);return function(t,n,o){void 0===n&&(n="push");var u=U(),i=P().pathname,c=i.endsWith("/")?i.slice(0,-1):i,a=o||r,f=(a?"string"==typeof a?a:a(c):c)+e(t);"push"===n?u.pushState(t,"",f):u.replaceState(t,"",f)}},B=function(t){var n=F();return function(r){return V(y({},n,r),t)}},R=function(t){return s(t,decodeURIComponent)},V=function(t,n){return"?"+Object.entries(t).map(function(t){var r=t[0];return[r,D(t[1],n,r)]}).filter(function(t){return n=t[1],Array.isArray(n)?n.length:"object"==typeof n?n instanceof Date:l(n);var n}).map(function(t){return t[0]+"="+decodeURIComponent(t[1])}).join("&")};function D(t,n,r){return(null==n?void 0:n(t,r))||t}function L(t){var n=window.history,r=n[t];n[t]=function(n){var e=r.apply(this,arguments),o=new Event(t.toLowerCase());return o.state=n,window.dispatchEvent(o),e}}f()&&(L("pushState"),L("replaceState"));var k=function(t,n){var r=j();return e(function(){r.current&&t()},n),r.current};function M(t){var n=t.getId,r=t.max,e=t.initial,c=void 0===e?[]:e,a=t.sortBy,f=t.sortDirection,s=void 0===f?"asc":f,l=t.sortFn,v=t.updateFromInitial,p=t.onUpdate,m=o(c),h=m[0],b=m[1],g=j(),w=u(function(t){if(g.current&&(b(t),p)){var n="function"==typeof t?t(h):t;p(n)}},[p]),A=u(function(t){var n=Array.isArray(t)?[].concat(t):y({},t);if(r){if(h.length>=r)return;Array.isArray(t)&&(n=t.slice(0,r-h.length))}w(h.concat(n))},[h,r]),S=u(function(t){var n=t;"number"!=typeof t&&(n=O(t,!0));var r=[].concat(h);r.splice(n,1),w([].concat(r))},[h]),I=u(function(){return w([])},[]),O=u(function(t,r){return h[r?"findIndex":"find"](function(r){return n(r)===n(t)})},[h]),P=u(function(t,r){return h[r?"findIndex":"find"](function(r){return n(r)===t})},[h]),F=u(function(t){return void 0!==O(t)},[h]),x=function(t){w(function(n){var r=O(t,!0),e=[].concat(n);return e[r]=t,e})},E=u(function(t){var n=F(t);return n?S(t):A(t),n},[h]),U=u(function(t){w(function(n){return[].concat(n).sort(t)})},[]),C=i(function(){return a?d(h,a,s):l?[].concat(h).sort(l):h},[h,a,l]),B=u(function(){return C},[C]),R=i(function(){return c},[c]),V=u(function(){return w(c)},[c]);return k(function(){v&&w(R)},[R,v]),[C,{get:B,set:w,clear:I,reset:V,add:A,remove:S,find:O,findById:P,has:F,toggle:E,update:x,upsert:function(t){return F(t)?x(t):A(t)},sortBy:U}]}export{p as atomWithToggle,m as atomWithToggleAndStorage,V as formatObjToQueryString,U as getHistory,P as getLocation,w as useClickAway,F as useCurrentQueryParams,S as useEvent,I as useForceUpdate,A as useIsMounted,j as useIsMountedRef,O as useQueryParams,B as useQueryParamsMerger,x as useQueryParamsState,M as useSelection,C as useSetQueryParams,k as useUpdateEffect};
//# sourceMappingURL=index.module.js.map