UNPKG

6.96 kBJavaScriptView Raw
1!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("jotai")):"function"==typeof define&&define.amd?define(["exports","react","jotai"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).jotaiDevtools={},e.React,e.jotai)}(this,(function(e,n,t){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(this,arguments)}function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function u(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}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 a=function(e){return e.debugLabel||e.toString()},i=function(e){var n=e[0],t=e[1];return Object.fromEntries(t.flatMap((function(e){var t,o,u=null==(t=n.m)?void 0:t.call(n,e);if(!u)return[];var i=u.t,l=(null==(o=n.a)?void 0:o.call(n,e))||{};return[[a(e),r({},"e"in l&&{error:l.e},"p"in l&&{promise:l.p},"v"in l&&{value:l.v},{dependents:Array.from(i).map(a)})]]})))};var l=function(e){return e.debugLabel?e+":"+e.debugLabel:""+e},c=function(e){var n={};e.values.forEach((function(e,t){n[l(t)]=e}));var t={};return e.dependents.forEach((function(e,n){t[l(n)]=Array.from(e).map(l)})),{values:n,dependents:t}};e.useAtomDevtools=function(e,r,o){"string"!=typeof r&&void 0===o||(console.warn("DEPRECATED [useAtomDevtools] use DevtoolOptions"),r={name:r,scope:o});var u,a=r||{},i=a.enabled,l=a.name,c=a.scope;try{u=null!=i&&i&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(e){}var s=t.useAtom(e,c),f=s[0],v=s[1],d=n.useRef(f),p=n.useRef(!1),y=n.useRef(),b=l||e.debugLabel||e.toString();n.useEffect((function(){if(u){var n=function(n){"function"!=typeof v?console.warn("[Warn] you cannot do write operations (Time-travelling, etc) in read-only atoms\n",e):v(n)};y.current=u.connect({name:b});var t=y.current.subscribe((function(e){var t,r;if("ACTION"===e.type&&e.payload)try{n(JSON.parse(e.payload))}catch(e){console.error("please dispatch a serializable value that JSON.parse() support\n",e)}else if("DISPATCH"===e.type&&e.state){var o,u;"JUMP_TO_ACTION"!==(null==(o=e.payload)?void 0:o.type)&&"JUMP_TO_STATE"!==(null==(u=e.payload)?void 0:u.type)||(p.current=!0,n(JSON.parse(e.state)))}else if("DISPATCH"===e.type&&"COMMIT"===(null==(t=e.payload)?void 0:t.type)){var a;null==(a=y.current)||a.init(d.current)}else if("DISPATCH"===e.type&&"IMPORT_STATE"===(null==(r=e.payload)?void 0:r.type)){var i;((null==(i=e.payload.nextLiftedState)?void 0:i.computedStates)||[]).forEach((function(e,t){var r,o=e.state;0===t?null==(r=y.current)||r.init(o):n(o)}))}}));return y.current.shouldInit=!0,t}}),[e,u,b,v]),n.useEffect((function(){y.current&&(d.current=f,y.current.shouldInit?(y.current.init(f),y.current.shouldInit=!1):p.current?p.current=!1:y.current.send(b+" - "+(new Date).toLocaleString(),f))}),[e,u,b,f])},e.useAtomsDebugValue=function(e){var r,o=null!=(r=null==e?void 0:e.enabled)&&r,u=t.SECRET_INTERNAL_getScopeContext(null==e?void 0:e.scope),a=n.useContext(u).s,l=n.useState([]),c=l[0],s=l[1];n.useEffect((function(){var e;if(o){var n=function(){var e;s(Array.from((null==(e=a.l)?void 0:e.call(a))||[]))},t=null==(e=a.n)?void 0:e.call(a,n);return n(),t}}),[o,a]),n.useDebugValue([a,c],i)},e.useAtomsDevtools=function(e,r){void 0!==r&&"object"!=typeof r&&(console.warn("DEPRECATED [useAtomsDevtools] use DevtoolsOptions"),r={scope:r});var o,a=r||{},i=a.enabled,l=a.scope,s=t.SECRET_INTERNAL_getScopeContext(l),f=n.useContext(s),v=f.s,d=f.w;try{o=null!=i&&i&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(e){}if(o&&!v.n)throw new Error("useAtomsDevtools can only be used in dev mode.");var p=n.useState((function(){return{values:new Map,dependents:new Map}})),y=p[0],b=p[1];n.useEffect((function(){var e;if(o){var n=function(){for(var e,n=new Map,t=new Map,r=u((null==(o=v.l)?void 0:o.call(v))||[]);!(e=r()).done;){var o,a,i,l=e.value,c=null==(a=v.a)?void 0:a.call(v,l);if(c){if(c.r===c.i)return;"v"in c&&n.set(l,c.v)}var s=null==(i=v.m)?void 0:i.call(v,l);s&&t.set(l,s.t)}b((function(e){return r=e.values,o=n,r.size===o.size&&Array.from(r).every((function(e){var n=e[0],t=e[1];return Object.is(o.get(n),t)}))&&function(e,n){return e.size===n.size&&Array.from(e).every((function(e){var t=e[0],r=e[1],o=n.get(t);return o&&r.size===o.size&&Array.from(r).every((function(e){return o.has(e)}))}))}(e.dependents,t)?e:{values:n,dependents:t};var r,o}))},t=null==(e=v.n)?void 0:e.call(v,n);return n(),t}}),[o,v]);var E=n.useCallback((function(e){var n=e.values;d?d((function(e){v.h(n,e)})):v.h(n)}),[v,d]),m=n.useRef(!1),h=n.useRef(!0),A=n.useRef(),S=n.useRef([]);n.useEffect((function(){if(o){var n=function(e){void 0===e&&(e=S.current.length-1);var n=S.current[e>=0?e:0];if(!n)throw new Error("snaphost index out of bounds");return n},t=o.connect({name:e}),r=t.subscribe((function(e){var r;if("DISPATCH"===e.type)switch(null==(r=e.payload)?void 0:r.type){case"RESET":break;case"COMMIT":t.init(c(n())),S.current=[];break;case"JUMP_TO_ACTION":case"JUMP_TO_STATE":m.current=!0,E(n(e.payload.actionId-1));break;case"PAUSE_RECORDING":h.current=!h.current}}));return A.current=t,A.current.shouldInit=!0,r}}),[o,E,e]),n.useEffect((function(){if(A.current)return A.current.shouldInit?(A.current.init(void 0),void(A.current.shouldInit=!1)):void(m.current?m.current=!1:h.current&&(S.current.push(y),A.current.send({type:""+S.current.length,updatedAt:(new Date).toLocaleString()},c(y))))}),[y])},e.useAtomsSnapshot=function(e){var r=t.SECRET_INTERNAL_getScopeContext(e),o=n.useContext(r).s;if(!o.n)throw new Error("useAtomsSnapshot can only be used in dev mode.");var u=n.useState((function(){return new Map})),a=u[0],i=u[1];return n.useEffect((function(){var e,n=function(){var e,n=Array.from((null==(e=o.l)?void 0:e.call(o))||[]);i(function(e,n){var t=n.map((function(n){var t,r,o=null!=(t=null==(r=e.a)?void 0:r.call(e,n))?t:{};return[n,"v"in o?o.v:void 0]}));return new Map(t)}(o,n))},t=null==(e=o.n)?void 0:e.call(o,n);return n(),t}),[o]),a},e.useGotoAtomsSnapshot=function(e){var r=t.SECRET_INTERNAL_getScopeContext(e),o=n.useContext(r).s;if(!o.n)throw new Error("useGotoAtomsSnapshot can only be used in dev mode.");return n.useCallback((function(e){o.h(e)}),[o])},Object.defineProperty(e,"__esModule",{value:!0})}));