UNPKG

8.96 kBJavaScriptView Raw
1!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("jotai/vanilla")):"function"==typeof define&&define.amd?define(["exports","react","jotai/vanilla"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).jotai={},n.React,n.vanilla)}(this,(function(n,e,r){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},t.apply(this,arguments)}function i(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function o(n,e){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(r)return(r=r.call(n)).next.bind(r);if(Array.isArray(n)||(r=function(n,e){if(n){if("string"==typeof n)return i(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(n,e):void 0}}(n))||e&&n&&"number"==typeof n.length){r&&(n=r);var t=0;return function(){return t>=n.length?{done:!0}:{done:!1,value:n[t++]}}}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 u=Symbol(),a=function(n){return!!n[u]},f=function(n){return!n[u].c},c=function(n){var e,r=n[u],t=r.b,i=r.c;i&&(i(),null==(e=s.get(t))||e())},v=function n(e,r){var t=e[u].o,i=r[u].o;return t===i||e===i||a(t)&&n(t,r)},l=function(n,e){var r={b:n,o:e,c:null},t=new Promise((function(n){r.c=function(){r.c=null,n()},e.finally(r.c)}));return t[u]=r,t},s=new WeakMap,d=function(n){return"init"in n},p="r",h="c",w=function(n){var e,r=new WeakMap,i=new WeakMap,s=new Map;if(n)for(var w,y=o(n);!(w=y()).done;){var m=w.value,g=m[0],E={v:m[1],r:0,y:!0,d:new Map};r.set(g,E)}var b=new WeakMap,S=new WeakMap,A=function(n){var e=S.get(n);return e||(e=new Map,S.set(n,e)),e},M=function n(e,t){if(e){var i=A(e),o=i.get(t);return o||((o=n(e.p,t))&&"p"in o&&f(o.p)&&(o=void 0),o&&i.set(t,o)),o}return r.get(t)},j=function(n,e,t){if(n){A(n).set(e,t)}else{var i=r.get(e);r.set(e,t),s.has(e)||s.set(e,i)}},P=function(n,e,r){if(void 0===e&&(e=new Map),!r)return e;var t=new Map,i=!1;return r.forEach((function(r){var o,u=(null==(o=M(n,r))?void 0:o.r)||0;t.set(r,u),e.get(r)!==u&&(i=!0)})),e.size!==t.size||i?t:e},T=function(n,e,r,t,i){var o=M(n,e);if(o){if(i&&(!("p"in o)||!v(o.p,i)))return o;"p"in o&&c(o.p)}var u={v:r,r:(null==o?void 0:o.r)||0,y:!0,d:P(n,null==o?void 0:o.d,t)},a=!(null!=o&&o.y);return o&&"v"in o&&Object.is(o.v,r)?u.d===o.d||u.d.size===o.d.size&&Array.from(u.d.keys()).every((function(n){return o.d.has(n)}))||(a=!0,Promise.resolve().then((function(){V(n)}))):(a=!0,++u.r,u.d.has(e)&&(u.d=new Map(u.d).set(e,u.r))),o&&!a?o:(j(n,e,u),u)},_=function(n,e,r,t,i){var o=M(n,e);if(o){if(i&&(!("p"in o)||!v(o.p,i)))return o;"p"in o&&c(o.p)}var u={e:r,r:((null==o?void 0:o.r)||0)+1,y:!0,d:P(n,null==o?void 0:o.d,t)};return j(n,e,u),u},R=function(n,e,r,i){var o=M(n,e);if(o&&"p"in o){if(v(o.p,r)&&!f(o.p))return o.y?o:t({},o,{y:!0});c(o.p)}!function(n,e,r){var t=b.get(e);t||(t=new Map,b.set(e,t)),r.then((function(){t.get(n)===r&&(t.delete(n),t.size||b.delete(e))})),t.set(n,r)}(n,e,r);var u={p:r,r:((null==o?void 0:o.r)||0)+1,y:!0,d:P(n,null==o?void 0:o.d,i)};return j(n,e,u),u},C=function(n,e,r,t){if(r instanceof Promise){var i=l(r,r.then((function(r){T(n,e,r,t,i)})).catch((function(r){if(r instanceof Promise)return a(r)?r.then((function(){z(n,e,!0)})):r;_(n,e,r,t,i)})));return R(n,e,i,t)}return T(n,e,r,t)},z=function n(e,r,o){if(!o){var c=M(e,r);if(c){if(c.y&&"p"in c&&!f(c.p))return c;if(c.d.forEach((function(t,o){if(o!==r)if(i.has(o)){var u=M(e,o);u&&!u.y&&n(e,o)}else n(e,o)})),Array.from(c.d).every((function(n){var r=n[0],t=n[1],i=M(e,r);return i&&!("p"in i)&&i.r===t})))return c.y?c:t({},c,{y:!0})}}var v=new Set;try{var s=r.read((function(t){v.add(t);var i=t===r?M(e,t):n(e,t);if(i){if("e"in i)throw i.e;if("p"in i)throw i.p;return i.v}if(d(t))return t.init;throw new Error("no atom init")}));return C(e,r,s,v)}catch(n){if(n instanceof Promise){var p=a(n)&&f(n)?function(n){return l(n[u].b,n[u].o)}(n):l(n,n);return R(e,r,p,v)}return _(e,r,n,v)}},k=function(n,e){return!e.l.size&&(!e.t.size||1===e.t.size&&e.t.has(n))},x=function n(e,r){var o=i.get(r);null==o||o.t.forEach((function(i){i!==r&&(!function(n,e){var r=M(n,e);if(r){var i=t({},r,{y:!1});j(n,e,i)}}(e,i),n(e,i))}))},N=function n(e,r,t){var i=!0,o=r.write((function n(r,t){var i=z(e,r);if("e"in i)throw i.e;if("p"in i){if(null!=t&&t.unstable_promise)return i.p.then((function(){var o=M(e,r);return o&&"p"in o&&o.p===i.p?new Promise((function(n){return setTimeout(n)})).then((function(){return n(r,t)})):n(r,t)}));throw i.p}if("v"in i)return i.v;throw new Error("no value found")}),(function(t,o){var u;if(t===r){if(!d(t))throw new Error("atom not writable");var a=function(n){var e=new Set,r=b.get(n);return r&&(b.delete(n),r.forEach((function(n,r){c(n),e.add(r)}))),e}(t);a.forEach((function(n){n!==e&&C(n,t,o)})),M(e,t)!==C(e,t,o)&&x(e,t)}else u=n(e,t,o);return i||V(e),u}),t);return i=!1,o},O=function(n,e,r){var t=N(r,n,e);return V(r),t},I=function n(e,r,t){var o={t:new Set(t&&[t]),l:new Set};if(i.set(r,o),z(void 0,r).d.forEach((function(t,o){var u=i.get(o);u?u.t.add(r):o!==r&&n(e,o,r)})),function(n){return!!n.write}(r)&&r.onMount){var u=r.onMount((function(n){return O(r,n,e)}));e=void 0,u&&(o.u=u)}return o},W=function n(e,r){var t,o=null==(t=i.get(r))?void 0:t.u;o&&o(),i.delete(r);var u=M(e,r);u&&("p"in u&&c(u.p),u.d.forEach((function(t,o){if(o!==r){var u=i.get(o);u&&(u.t.delete(r),k(o,u)&&n(e,o))}})))},L=function(n,e,r,t){var o=new Set(r.d.keys());null==t||t.forEach((function(r,t){if(o.has(t))o.delete(t);else{var u=i.get(t);u&&(u.t.delete(e),k(t,u)&&W(n,t))}})),o.forEach((function(r){var t=i.get(r);t?t.t.add(e):i.has(e)&&I(n,r,e)}))},V=function(n){if(n)A(n).forEach((function(e,t){if(e!==r.get(t)){var o=i.get(t);null==o||o.l.forEach((function(e){return e(n)}))}}));else for(;s.size;){var e=Array.from(s);s.clear(),e.forEach((function(n){var e=n[0],r=n[1],t=M(void 0,e);if(t&&t.d!==(null==r?void 0:r.d)&&L(void 0,e,t,null==r?void 0:r.d),!r||r.y||null==t||!t.y){var o=i.get(e);null==o||o.l.forEach((function(n){return n()}))}}))}};return(e={})[p]=function(n,e){return z(e,n)},e.w=O,e[h]=function(n,e){e&&function(n){A(n).forEach((function(e,t){var i=r.get(t);(!i||e.r>i.r||e.y!==i.y||e.r===i.r&&e.d!==i.d)&&(r.set(t,e),e.d!==(null==i?void 0:i.d)&&L(n,t,e,null==i?void 0:i.d))}))}(e),V(void 0)},e.s=function(n,e,r){var t=function(n,e){var r=i.get(e);return r||(r=I(n,e)),r}(r,n),o=t.l;return o.add(e),function(){o.delete(e),function(n,e){var r=i.get(e);r&&k(e,r)&&W(n,e)}(r,n)}},e.h=function(n,e){for(var r,t=o(n);!(r=t()).done;){var i=r.value,u=i[0],a=i[1];d(u)&&(C(e,u,a),x(e,u))}V(e)},e},y=function(n,e){return{s:e?e(n).SECRET_INTERNAL_store:w(n)}},m=new Map,g=function(n){return m.has(n)||m.set(n,e.createContext(y())),m.get(n)};function E(n,r){var t=g(r),i=e.useContext(t),o=i.s,u=i.v,a=function(e){var r=o[p](n,e);if("e"in r)throw r.e;if("p"in r)throw r.p;if("v"in r)return r.v;throw new Error("no atom value")},f=e.useReducer((function(e,r){var t=a(r);return Object.is(e[1],t)&&e[2]===n?e:[r,t,n]}),u,(function(e){return[e,a(e),n]})),c=f[0],v=c[0],l=c[1],s=c[2],d=f[1],w=l;return s!==n&&(d(v),w=a(v)),e.useEffect((function(){var e=i.v;e&&o[h](n,e);var r=o.s(n,d,e);return d(e),r}),[o,n,i]),e.useEffect((function(){o[h](n,v)})),e.useDebugValue(w),w}function b(n,r){var t=g(r),i=e.useContext(t),o=i.s,u=i.w;return e.useCallback((function(e){var r=function(r){return o.w(n,e,r)};return u?u(r):r()}),[o,u,n])}n.Provider=function(n){var r=n.children,t=n.initialValues,i=n.scope,o=n.unstable_createStore,u=n.unstable_enableVersionedWrite,a=e.useState({}),f=a[0],c=a[1];e.useEffect((function(){var n=v.current;n.w&&(n.s[h](null,f),delete f.p,n.v=f)}),[f]);var v=e.useRef();if(!v.current){var l=y(t,o);if(u){var s=0;l.w=function(n){c((function(e){var r=s?e:{p:e};return n(r),r}))},l.v=f,l.r=function(n){++s,n(),--s}}v.current=l}var d=g(i);return e.createElement(d.Provider,{value:v.current},r)},n.SECRET_INTERNAL_getScopeContext=g,n.SECRET_INTERNAL_registerPromiseAbort=function(n,e){s.set(n,e)},n.atom=function(n,e){return r.atom(n,e)},n.unstable_createStore=function(n){var e=w(n);return{get:function(n){var r=e[p](n);if("e"in r)throw r.e;if(!("p"in r))return r.v},asyncGet:function n(r){return new Promise((function(t,i){var o=e[p](r);"e"in o?i(o.e):t("p"in o?o.p.then((function(){return n(r)})):o.v)}))},set:function(n,r){return e.w(n,r)},sub:function(n,r){return e.s(n,r)},SECRET_INTERNAL_store:e}},n.useAtom=function(n,e){return"scope"in n&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),e=n.scope),[E(n,e),b(n,e)]},n.useAtomValue=E,n.useSetAtom=b}));