govuk_publishing_components 17.20.0 → 17.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +8 -0
- data/app/views/govuk_publishing_components/components/_subscription-links.html.erb +15 -5
- data/app/views/govuk_publishing_components/components/docs/subscription-links.yml +13 -2
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/accessible-autocomplete/package.json +1 -1
- data/node_modules/graceful-fs/package.json +13 -13
- data/node_modules/graceful-fs/polyfills.js +17 -11
- data/node_modules/hosted-git-info/CHANGELOG.md +40 -0
- data/node_modules/hosted-git-info/git-host-info.js +5 -3
- data/node_modules/hosted-git-info/git-host.js +35 -10
- data/node_modules/hosted-git-info/index.js +17 -15
- data/node_modules/hosted-git-info/package.json +40 -30
- data/node_modules/lru-cache/LICENSE +15 -0
- data/node_modules/lru-cache/README.md +166 -0
- data/node_modules/lru-cache/index.js +334 -0
- data/node_modules/lru-cache/package.json +108 -0
- data/node_modules/pkg-conf/package.json +1 -1
- data/node_modules/preact/debug.js +630 -2
- data/node_modules/preact/debug.js.map +1 -1
- data/node_modules/preact/debug/dist/debug.js +2 -0
- data/node_modules/preact/debug/dist/debug.js.map +1 -0
- data/node_modules/preact/debug/dist/debug.mjs +681 -0
- data/node_modules/preact/debug/dist/debug.mjs.map +1 -0
- data/node_modules/preact/debug/dist/debug.module.js +2 -0
- data/node_modules/preact/debug/dist/debug.module.js.map +1 -0
- data/node_modules/preact/debug/dist/debug.umd.js +2 -0
- data/node_modules/preact/debug/dist/debug.umd.js.map +1 -0
- data/node_modules/preact/debug/index.js +2 -1
- data/node_modules/preact/dist/preact.d.ts +808 -3
- data/node_modules/preact/dist/preact.dev.js +727 -727
- data/node_modules/preact/dist/preact.dev.js.map +1 -1
- data/node_modules/preact/dist/preact.js +1 -1
- data/node_modules/preact/dist/preact.js.flow +3 -3
- data/node_modules/preact/dist/preact.js.map +1 -1
- data/node_modules/preact/dist/preact.min.js +1 -1
- data/node_modules/preact/dist/preact.min.js.map +1 -1
- data/node_modules/preact/dist/preact.mjs +724 -724
- data/node_modules/preact/dist/preact.mjs.map +1 -1
- data/node_modules/preact/dist/preact.umd.js +751 -0
- data/node_modules/preact/dist/preact.umd.js.map +1 -0
- data/node_modules/preact/package.json +43 -26
- data/node_modules/preact/src/preact.d.ts +808 -3
- data/node_modules/preact/src/preact.js.flow +3 -3
- data/node_modules/preact/src/util.js +1 -1
- data/node_modules/yallist/LICENSE +15 -0
- data/node_modules/yallist/README.md +204 -0
- data/node_modules/yallist/iterator.js +8 -0
- data/node_modules/yallist/package.json +97 -0
- data/node_modules/yallist/yallist.js +376 -0
- metadata +21 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["debug/index.js"],"names":[],"mappings":"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","file":"debug.js","sourcesContent":["/* eslint-disable no-console */\n\nif (process.env.NODE_ENV === 'development') {\n\tconst preact = require('preact');\n\tconst options = preact.options;\n\tconst oldVnodeOption = options.vnode;\n\n\toptions.vnode = function(vnode) {\n\t\tconst { nodeName, attributes, children } = vnode;\n\n\t\tif (nodeName === void 0) {\n\t\t\tconsole.error('Undefined component passed to preact.h()\\n'+serializeVNode(vnode));\n\t\t}\n\n\t\tif (\n\t\t\tattributes && attributes.ref !== void 0 &&\n\t\t\ttypeof attributes.ref !== 'function' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function,` +\n\t\t\t\t` but [${typeof attributes.ref}] passed\\n` + serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\t{\n\t\t\tconst keys = {};\n\n\t\t\tinspectChildren(children, (deepChild) => {\n\t\t\t\tif (!deepChild || deepChild.key==null) return;\n\n\t\t\t\t// In Preact, all keys are stored as object values, i.e. being strings\n\t\t\t\tconst key = deepChild.key + '';\n\n\t\t\t\tif (keys.hasOwnProperty(key)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t'same \"key\" attribute. This may cause glitches and misbehavior ' +\n\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\n\t\t\t\t\t// Return early to not spam the console\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tkeys[key] = true;\n\t\t\t});\n\t\t}\n\n\t\tif (oldVnodeOption) oldVnodeOption.call(this, vnode);\n\t};\n\n\ttry {\n\t\tconst oldRender = preact.render;\n\t\tpreact.render = function (vnode, parent, merge) {\n\t\t\tif (parent == null && merge == null) {\n\t\t\t\t// render(vnode, parent, merge) can't have both parent and merge be undefined\n\t\t\t\tconsole.error('The \"containerNode\" or \"replaceNode\" is not defined in the render method. ' +\n\t\t\t\t\t'Component: \\n\\n' + serializeVNode(vnode));\n\t\t\t}\n\t\t\telse if (parent == merge) {\n\t\t\t\t// if parent == merge, it doesn't reason well and would cause trouble when preact\n\t\t\t\t// tries to update or replace that 'replaceNode' element\n\t\t\t\tconsole.error(\n\t\t\t\t\t'The \"containerNode\" and \"replaceNode\" are the same in render method, ' +\n\t\t\t\t\t'when the \"replaceNode\" DOM node is expected to be a child of \"containerNode\". ' +\n\t\t\t\t\t'docs-ref: https://preactjs.com/guide/api-reference#-preact-render-. Component: \\n\\n' +\n\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn oldRender(vnode, parent, merge);\n\t\t};\n\t}\n\tcatch (e) {}\n\n\tconst inspectChildren = (children, inspect) => {\n\t\tif (!Array.isArray(children)) {\n\t\t\tchildren = [children];\n\t\t}\n\t\treturn children.some((child, i) => {\n\t\t\tif (Array.isArray(child)) {\n\t\t\t\treturn inspectChildren(child, inspect);\n\t\t\t}\n\n\t\t\treturn inspect(child, i);\n\t\t});\n\t};\n\n\tconst serializeVNode = ({ nodeName, attributes, children }) => {\n\t\tif (typeof nodeName==='function') {\n\t\t\tnodeName = nodeName.name || nodeName.displayName;\n\t\t}\n\n\t\tlet props = '';\n\t\tif (attributes) {\n\t\t\tfor (let attr in attributes) {\n\t\t\t\tif (attributes.hasOwnProperty(attr) && attr!=='children') {\n\t\t\t\t\tlet value = attributes[attr];\n\n\t\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (Object(value) === value && !value.toString) {\n\t\t\t\t\t\tvalue = Object.prototype.toString.call(value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = value + '';\n\t\t\t\t\t}\n\n\t\t\t\t\tprops += ` ${attr}=${JSON.stringify(value)}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn `<${nodeName}${props}${children && children.length ? ('>..</'+nodeName+'>') : ' />'}`;\n\t};\n\n\trequire('preact/devtools');\n}\n"]}
|
1
|
+
{"version":3,"sources":["debug/dist/debug.js","debug/dist/debug.module.js","debug/dist/debug.umd.js","debug/index.js"],"names":[],"mappings":"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","file":"debug.js","sourcesContent":["var n=require(\"preact\"),e={};function t(e){return e.type===n.Fragment?\"Wrapper\":\"function\"==typeof e.type?\"Composite\":\"string\"==typeof e.type?\"Native\":\"Text\"}function r(e){return e.type===n.Fragment?\"Fragment\":\"function\"==typeof e.type?e.type.displayName||e.type.name:\"string\"==typeof e.type?e.type:\"#text\"}function o(n,e,t){var r=e.pop(),o=e.reduce(function(n,e){return n?n[e]:null},n);o&&(o[r]=t)}function i(e){var i=e.__c,u=null;null!=i&&i instanceof n.Component&&(u={setState:i.setState.bind(i),forceUpdate:i.forceUpdate.bind(i),setInState:function(n,e){i.setState(function(t){return o(t,n,e),t})},setInProps:function(n,t){o(e.props,n,t),i.setState({})},setInContext:function(n,e){o(i.context,n,e),i.setState({})}});var s=a(e),c=e.endTime-e.startTime;return{nodeType:t(e),type:e.type,name:r(e),ref:e.ref||null,key:e.key||null,updater:u,text:null===e.type?e.props:null,state:null!=i&&i instanceof n.Component?i.state:null,props:e.props,children:null!==e.type?null!=s&&1==s.length&&null===s[0].type?s[0].props:s:null,publicInstance:l(e),memoizedInteractions:[],actualDuration:c,actualStartTime:e.startTime,treeBaseDuration:c}}function a(n){return null==n.__c?null!=n.__k?n.__k.filter(Boolean):[]:null!=n.__k?n.__k.filter(Boolean):null}function u(e){return e.type===n.Fragment&&null===e.__p}function l(e){return u(e)?e.__k.length>0&&null!=e.__k[0]&&null!=e.__k[0].__e?e.__k[0].__e.parentNode:e:null!=e.__c?e.__c:e.type===n.Fragment?e.props:e.__e}function s(n,e,t){if(null==n||null==e)return!1;for(var r in n)if((!t||\"children\"!=r||null==e[r])&&n[r]!==e[r])return!1;return Object.keys(n).length===Object.keys(e).length}function c(n){var e=n.props,t=r(n),o=\"\";if(e)for(var i in e)if(e.hasOwnProperty(i)&&\"children\"!==i){var a=e[i];\"function\"==typeof a&&(a=\"function \"+(a.displayName||a.name)+\"() {}\"),a=Object(a)!==a||a.toString?a+\"\":Object.prototype.toString.call(a),o+=\" \"+i+\"=\"+JSON.stringify(a)}var u=e.children;return\"<\"+t+o+(u&&u.length?\">..</\"+t+\">\":\" />\")}var f=function(n,e){this.rid=e,this.hook=n,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function d(n){return function(e){try{return n(e)}catch(n){console.error(\"The react devtools encountered an error\"),console.error(n)}}}f.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},f.prototype.flushPendingEvents=function(){if(this.connected){var n=this.pending;this.pending=[];for(var e=0;e<n.length;e++){var t=n[e];this.hook.emit(t.type,t)}}},f.prototype.mount=function(n){this.inst2vnode.set(l(n),n);var e=i(n),t=[{internalInstance:n,data:e,renderer:this.rid,type:\"mount\"}];if(Array.isArray(e.children))for(var r,o=e.children.slice();null!=(r=o.pop());){var s=a(r);o.push.apply(o,s),this.inst2vnode.set(l(r),r);var c=i(r);t.push({internalInstance:r,data:c,renderer:this.rid,type:\"mount\"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);u(n)&&this.pending.push({internalInstance:n,data:e,renderer:this.rid,type:\"root\"})},f.prototype.update=function(n){var e=i(n);if(Array.isArray(e.children))for(var t=0;t<e.children.length;t++){var r=e.children[t],o=l(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),e.children[t]=this.inst2vnode.get(o)}var a=this.inst2vnode.get(e.publicInstance);!function(n,e){return n.props!==e.props&&!s(n.props,e.props,!0)||null!=n.__c&&!s(e.__c.__u,e.__c.state)||n.__e!==e.__e||n.ref!==e.ref}(a,n)?this.pending.push({internalInstance:a,data:e,renderer:this.rid,type:\"updateProfileTimes\"}):this.pending.push({internalInstance:a,data:e,renderer:this.rid,type:\"update\"})},f.prototype.handleCommitFiberRoot=function(n){var e=l(n);this.inst2vnode.has(e)?this.update(n):this.mount(n);var t=null;if(u(n))n.treeBaseDuration=0,t=n;else for(t=n;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:i(t),type:\"rootCommitted\"}),this.flushPendingEvents(),n},f.prototype.handleCommitFiberUnmount=function(n){var e=l(n);this.inst2vnode.delete(e),this.pending.push({internalInstance:n,renderer:this.rid,type:\"unmount\"})},f.prototype.getNativeFromReactElement=function(n){return n.__e},f.prototype.getReactElementFromNative=function(n){return this.inst2vnode.get(n)||null},f.prototype.walkTree=function(){},f.prototype.cleanup=function(){};var h=function(){},p=Date.now;try{p=performance.now.bind(performance)}catch(n){}\"development\"===process.env.NODE_ENV&&(function(){var t=n.options.__b,o=n.options.diffed,i=n.options.vnode,a=n.options.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};n.options.__e=function(n,e,t){if(e&&e.__c&&\"function\"==typeof n.then){var o=n;n=new Error(\"Missing Suspense. The throwing component was: \"+r(e));for(var i=e;i;i=i.__p)if(i.__c&&i.__c.t){n=o;break}}a(n,e,t)},n.options.__p=function(n,e){if(!e)throw new Error(\"Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.\");var t;switch(e.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error(\"\\n\\t\\t\\tExpected a valid HTML node as a second argument to render.\\n\\t\\t\\tReceived \"+e+\" instead: render(<\"+(n.type.name||n.type)+\" />, \"+e+\");\\n\\t\\t\")},n.options.__b=function(n){if(null!=n){var o,i,a,l,s=n.type,f=function n(e){return e?\"function\"==typeof e.type?n(e.__p):e:{}}(n.__p);if(void 0===s)throw new Error(\"Undefined component passed to createElement()\\n\\nYou likely forgot to export your component or might have mixed up default and named imports\"+c(n));if(null!=s&&\"object\"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var d=\"Did you accidentally pass a JSX literal as JSX twice?\\n\\n let My\"+r(s)+\" = \"+c(s)+\";\\n let vnode = <My\"+r(s)+\" />;\\n\\nThis usually happens when you export a JSX literal and not the component.\";throw new Error(\"Invalid type passed to createElement(): \"+s+\"\\n\\n\"+d+\"\\n\")}throw new Error(\"Invalid type passed to createElement(): \"+(Array.isArray(s)?\"array\":s))}if(\"thead\"!==s&&\"tfoot\"!==s&&\"thead\"!==s||\"table\"===f.type?\"tr\"===s&&\"thead\"!==f.type&&\"tfoot\"!==f.type&&\"tbody\"!==f.type&&\"table\"!==f.type?console.error(\"Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent.\"+c(n)):\"td\"===s&&\"tr\"!==f.type?console.error(\"Improper nesting of table.Your <td> should have a <tr> parent.\"+c(n)):\"th\"===s&&\"tr\"!==f.type&&console.error(\"Improper nesting of table.Your <th> should have a <tr>.\"+c(n)):console.error(\"Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent.\"+c(n)),void 0!==n.ref&&\"function\"!=typeof n.ref&&\"object\"!=typeof n.ref&&!(\"$$typeof\"in n))throw new Error('Component\\'s \"ref\" property should be a function, or an object created by createRef(), but got ['+typeof n.ref+\"] instead\\n\"+c(n));if(\"string\"==typeof n.type)for(var h in n.props)if(\"o\"===h[0]&&\"n\"===h[1]&&\"function\"!=typeof n.props[h]&&null!=n.props[h])throw new Error(\"Component's \\\"\"+h+'\" property should be a function, but got ['+typeof n.props[h]+\"] instead\\n\"+c(n));if(\"function\"==typeof n.type&&n.type.propTypes){if(\"Lazy\"===n.type.displayName&&!u.lazyPropTypes[n.type]){var p=\"PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. \";try{var v=n.type();u.lazyPropTypes[n.type]=!0,console.warn(p+\"Component wrapped in lazy() is \"+(v.type.displayName||v.type.name))}catch(n){console.warn(p+\"We will log the wrapped component's name once it is loaded.\")}}o=n.type.propTypes,i=n.props,a=r(n),l=c(n),Object.keys(o).forEach(function(n){var t;try{t=o[n](i,n,l,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(n){t=n}!t||t.message in e||(e[t.message]=!0,console.error(\"Failed \"+a+\" type: \"+t.message))})}t&&t(n)}},n.options.__h=function(n){if(!n)throw new Error(\"Hook can only be invoked from render methods.\")};var l=function(n,e){return{get:function(){throw new Error(\"getting vnode.\"+n+\" is deprecated, \"+e)},set:function(){throw new Error(\"setting vnode.\"+n+\" is not allowed, \"+e)}}},s={nodeName:l(\"nodeName\",\"use vnode.type\"),attributes:l(\"attributes\",\"use vnode.props\"),children:l(\"children\",\"use vnode.props.children\")};n.options.vnode=function(n){var e,t;n.props&&n.props.i&&(e=n.props.i,delete n.props.i),n.props&&n.props.u&&(t=n.props.u,delete n.props.u),n.u=t,n.i=e,Object.defineProperties(n,s),i&&i(n)},n.options.diffed=function(n){if(null!=n){if(n.__c&&n.__c.l){var e=n.__c.l;e.s.forEach(function(e){!e.h||e.p&&Array.isArray(e.p)||console.warn(\"In \"+(n.type.name||n.type)+\" you are calling useMemo/useCallback without passing arguments.\\nThis is a noop since it will not be able to memoize, it will execute it every render.\")}),e.v.length>0&&e.v.forEach(function(e){e.p&&Array.isArray(e.p)||u.useEffect[n.type]||(u.useEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(n.type.name||n.type)+\".\"))}),e.m.length>0&&e.m.forEach(function(e){e.p&&Array.isArray(e.p)||u.useLayoutEffect[n.type]||(u.useLayoutEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(n.type.name||n.type)+\".\"))})}if(null!=n.__k)for(var t=[],r=0;r<n.__k.length;r++){var i=n.__k[r];if(i&&null!=i.key){var a=i.key;if(-1!==t.indexOf(a)){console.error('Following component has two or more children with the same key attribute: \"'+a+'\". This may cause glitches and misbehavior in rendering process. Component: \\n\\n'+c(n));break}t.push(a)}}o&&o(n)}}}(),function(){var e=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=e){var t=h,r=h,o=Math.random().toString(16).slice(2),i=new f(e,o);d(function(){var a=!1;try{a=\"production\"!==process.env.NODE_ENV}catch(n){}window.parent.postMessage({source:\"react-devtools-detector\",reactBuildType:a?\"development\":\"production\"},\"*\");var u={bundleType:a?1:0,version:\"16.5.2\",rendererPackageName:\"preact\",findHostInstanceByFiber:function(n){return n.__e},findFiberByHostInstance:function(n){return i.inst2vnode.get(n)||null}};e._renderers[o]=u,Object.defineProperty(e.helpers,o,{get:function(){return i},set:function(){i.connected||l.markConnected()}});var l=e.helpers[o];e.emit(\"renderer-attached\",{id:o,renderer:u,helpers:l}),t=d(function(t){if(t.type!==n.Fragment||0!=t.__k.length){var r=e.getFiberRoots(o);t=l.handleCommitFiberRoot(t),r.has(t)||r.add(t)}}),r=d(function(n){e.onCommitFiberUnmount(o,n)})})();var a=n.options.vnode,u=n.options.__c,l=n.options.unmount,s=n.options.__b,c=n.options.diffed;n.options.vnode=function(n){n.startTime=NaN,n.endTime=NaN,n.startTime=0,n.endTime=-1,a&&a(n)},n.options.__b=function(n){n.startTime=p(),null!=s&&s(n)},n.options.diffed=function(n){n.endTime=p(),null!=c&&c(n)},n.options.__c=d(function(n){null!=u&&u(n),null!=n&&t(n)}),n.options.unmount=d(function(n){null!=l&&l(n),r(n)});var v=n.Component.prototype.setState;n.Component.prototype.setState=function(n,e){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),v.call(this,n,e)}}}());\n//# sourceMappingURL=debug.js.map\n","import{Component as n,Fragment as e,options as t}from\"preact\";var r={};function o(n){return n.type===e?\"Wrapper\":\"function\"==typeof n.type?\"Composite\":\"string\"==typeof n.type?\"Native\":\"Text\"}function i(n){return n.type===e?\"Fragment\":\"function\"==typeof n.type?n.type.displayName||n.type.name:\"string\"==typeof n.type?n.type:\"#text\"}function a(n,e,t){var r=e.pop(),o=e.reduce(function(n,e){return n?n[e]:null},n);o&&(o[r]=t)}function u(e){var t=e.__c,r=null;null!=t&&t instanceof n&&(r={setState:t.setState.bind(t),forceUpdate:t.forceUpdate.bind(t),setInState:function(n,e){t.setState(function(t){return a(t,n,e),t})},setInProps:function(n,r){a(e.props,n,r),t.setState({})},setInContext:function(n,e){a(t.context,n,e),t.setState({})}});var u=l(e),s=e.endTime-e.startTime;return{nodeType:o(e),type:e.type,name:i(e),ref:e.ref||null,key:e.key||null,updater:r,text:null===e.type?e.props:null,state:null!=t&&t instanceof n?t.state:null,props:e.props,children:null!==e.type?null!=u&&1==u.length&&null===u[0].type?u[0].props:u:null,publicInstance:c(e),memoizedInteractions:[],actualDuration:s,actualStartTime:e.startTime,treeBaseDuration:s}}function l(n){return null==n.__c?null!=n.__k?n.__k.filter(Boolean):[]:null!=n.__k?n.__k.filter(Boolean):null}function s(n){return n.type===e&&null===n.__p}function c(n){return s(n)?n.__k.length>0&&null!=n.__k[0]&&null!=n.__k[0].__e?n.__k[0].__e.parentNode:n:null!=n.__c?n.__c:n.type===e?n.props:n.__e}function f(n,e,t){if(null==n||null==e)return!1;for(var r in n)if((!t||\"children\"!=r||null==e[r])&&n[r]!==e[r])return!1;return Object.keys(n).length===Object.keys(e).length}function d(n){var e=n.props,t=i(n),r=\"\";if(e)for(var o in e)if(e.hasOwnProperty(o)&&\"children\"!==o){var a=e[o];\"function\"==typeof a&&(a=\"function \"+(a.displayName||a.name)+\"() {}\"),a=Object(a)!==a||a.toString?a+\"\":Object.prototype.toString.call(a),r+=\" \"+o+\"=\"+JSON.stringify(a)}var u=e.children;return\"<\"+t+r+(u&&u.length?\">..</\"+t+\">\":\" />\")}var h=function(n,e){this.rid=e,this.hook=n,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function p(n){return function(e){try{return n(e)}catch(n){console.error(\"The react devtools encountered an error\"),console.error(n)}}}h.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},h.prototype.flushPendingEvents=function(){if(this.connected){var n=this.pending;this.pending=[];for(var e=0;e<n.length;e++){var t=n[e];this.hook.emit(t.type,t)}}},h.prototype.mount=function(n){this.inst2vnode.set(c(n),n);var e=u(n),t=[{internalInstance:n,data:e,renderer:this.rid,type:\"mount\"}];if(Array.isArray(e.children))for(var r,o=e.children.slice();null!=(r=o.pop());){var i=l(r);o.push.apply(o,i),this.inst2vnode.set(c(r),r);var a=u(r);t.push({internalInstance:r,data:a,renderer:this.rid,type:\"mount\"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);s(n)&&this.pending.push({internalInstance:n,data:e,renderer:this.rid,type:\"root\"})},h.prototype.update=function(n){var e=u(n);if(Array.isArray(e.children))for(var t=0;t<e.children.length;t++){var r=e.children[t],o=c(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),e.children[t]=this.inst2vnode.get(o)}var i=this.inst2vnode.get(e.publicInstance);!function(n,e){return n.props!==e.props&&!f(n.props,e.props,!0)||null!=n.__c&&!f(e.__c.__u,e.__c.state)||n.__e!==e.__e||n.ref!==e.ref}(i,n)?this.pending.push({internalInstance:i,data:e,renderer:this.rid,type:\"updateProfileTimes\"}):this.pending.push({internalInstance:i,data:e,renderer:this.rid,type:\"update\"})},h.prototype.handleCommitFiberRoot=function(n){var e=c(n);this.inst2vnode.has(e)?this.update(n):this.mount(n);var t=null;if(s(n))n.treeBaseDuration=0,t=n;else for(t=n;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:u(t),type:\"rootCommitted\"}),this.flushPendingEvents(),n},h.prototype.handleCommitFiberUnmount=function(n){var e=c(n);this.inst2vnode.delete(e),this.pending.push({internalInstance:n,renderer:this.rid,type:\"unmount\"})},h.prototype.getNativeFromReactElement=function(n){return n.__e},h.prototype.getReactElementFromNative=function(n){return this.inst2vnode.get(n)||null},h.prototype.walkTree=function(){},h.prototype.cleanup=function(){};var v=function(){},y=Date.now;try{y=performance.now.bind(performance)}catch(n){}\"development\"===process.env.NODE_ENV&&(function(){var n=t.__b,e=t.diffed,o=t.vnode,a=t.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};t.__e=function(n,e,t){if(e&&e.__c&&\"function\"==typeof n.then){var r=n;n=new Error(\"Missing Suspense. The throwing component was: \"+i(e));for(var o=e;o;o=o.__p)if(o.__c&&o.__c.t){n=r;break}}a(n,e,t)},t.__p=function(n,e){if(!e)throw new Error(\"Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.\");var t;switch(e.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error(\"\\n\\t\\t\\tExpected a valid HTML node as a second argument to render.\\n\\t\\t\\tReceived \"+e+\" instead: render(<\"+(n.type.name||n.type)+\" />, \"+e+\");\\n\\t\\t\")},t.__b=function(e){if(null!=e){var t,o,a,l,s=e.type,c=function n(e){return e?\"function\"==typeof e.type?n(e.__p):e:{}}(e.__p);if(void 0===s)throw new Error(\"Undefined component passed to createElement()\\n\\nYou likely forgot to export your component or might have mixed up default and named imports\"+d(e));if(null!=s&&\"object\"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var f=\"Did you accidentally pass a JSX literal as JSX twice?\\n\\n let My\"+i(s)+\" = \"+d(s)+\";\\n let vnode = <My\"+i(s)+\" />;\\n\\nThis usually happens when you export a JSX literal and not the component.\";throw new Error(\"Invalid type passed to createElement(): \"+s+\"\\n\\n\"+f+\"\\n\")}throw new Error(\"Invalid type passed to createElement(): \"+(Array.isArray(s)?\"array\":s))}if(\"thead\"!==s&&\"tfoot\"!==s&&\"thead\"!==s||\"table\"===c.type?\"tr\"===s&&\"thead\"!==c.type&&\"tfoot\"!==c.type&&\"tbody\"!==c.type&&\"table\"!==c.type?console.error(\"Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent.\"+d(e)):\"td\"===s&&\"tr\"!==c.type?console.error(\"Improper nesting of table.Your <td> should have a <tr> parent.\"+d(e)):\"th\"===s&&\"tr\"!==c.type&&console.error(\"Improper nesting of table.Your <th> should have a <tr>.\"+d(e)):console.error(\"Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent.\"+d(e)),void 0!==e.ref&&\"function\"!=typeof e.ref&&\"object\"!=typeof e.ref&&!(\"$$typeof\"in e))throw new Error('Component\\'s \"ref\" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+\"] instead\\n\"+d(e));if(\"string\"==typeof e.type)for(var h in e.props)if(\"o\"===h[0]&&\"n\"===h[1]&&\"function\"!=typeof e.props[h]&&null!=e.props[h])throw new Error(\"Component's \\\"\"+h+'\" property should be a function, but got ['+typeof e.props[h]+\"] instead\\n\"+d(e));if(\"function\"==typeof e.type&&e.type.propTypes){if(\"Lazy\"===e.type.displayName&&!u.lazyPropTypes[e.type]){var p=\"PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. \";try{var v=e.type();u.lazyPropTypes[e.type]=!0,console.warn(p+\"Component wrapped in lazy() is \"+(v.type.displayName||v.type.name))}catch(n){console.warn(p+\"We will log the wrapped component's name once it is loaded.\")}}t=e.type.propTypes,o=e.props,a=i(e),l=d(e),Object.keys(t).forEach(function(n){var e;try{e=t[n](o,n,l,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(n){e=n}!e||e.message in r||(r[e.message]=!0,console.error(\"Failed \"+a+\" type: \"+e.message))})}n&&n(e)}},t.__h=function(n){if(!n)throw new Error(\"Hook can only be invoked from render methods.\")};var l=function(n,e){return{get:function(){throw new Error(\"getting vnode.\"+n+\" is deprecated, \"+e)},set:function(){throw new Error(\"setting vnode.\"+n+\" is not allowed, \"+e)}}},s={nodeName:l(\"nodeName\",\"use vnode.type\"),attributes:l(\"attributes\",\"use vnode.props\"),children:l(\"children\",\"use vnode.props.children\")};t.vnode=function(n){var e,t;n.props&&n.props.i&&(e=n.props.i,delete n.props.i),n.props&&n.props.u&&(t=n.props.u,delete n.props.u),n.u=t,n.i=e,Object.defineProperties(n,s),o&&o(n)},t.diffed=function(n){if(null!=n){if(n.__c&&n.__c.l){var t=n.__c.l;t.s.forEach(function(e){!e.h||e.p&&Array.isArray(e.p)||console.warn(\"In \"+(n.type.name||n.type)+\" you are calling useMemo/useCallback without passing arguments.\\nThis is a noop since it will not be able to memoize, it will execute it every render.\")}),t.v.length>0&&t.v.forEach(function(e){e.p&&Array.isArray(e.p)||u.useEffect[n.type]||(u.useEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(n.type.name||n.type)+\".\"))}),t.m.length>0&&t.m.forEach(function(e){e.p&&Array.isArray(e.p)||u.useLayoutEffect[n.type]||(u.useLayoutEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(n.type.name||n.type)+\".\"))})}if(null!=n.__k)for(var r=[],o=0;o<n.__k.length;o++){var i=n.__k[o];if(i&&null!=i.key){var a=i.key;if(-1!==r.indexOf(a)){console.error('Following component has two or more children with the same key attribute: \"'+a+'\". This may cause glitches and misbehavior in rendering process. Component: \\n\\n'+d(n));break}r.push(a)}}e&&e(n)}}}(),function(){var r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=r){var o=v,i=v,a=Math.random().toString(16).slice(2),u=new h(r,a);p(function(){var n=!1;try{n=\"production\"!==process.env.NODE_ENV}catch(n){}window.parent.postMessage({source:\"react-devtools-detector\",reactBuildType:n?\"development\":\"production\"},\"*\");var t={bundleType:n?1:0,version:\"16.5.2\",rendererPackageName:\"preact\",findHostInstanceByFiber:function(n){return n.__e},findFiberByHostInstance:function(n){return u.inst2vnode.get(n)||null}};r._renderers[a]=t,Object.defineProperty(r.helpers,a,{get:function(){return u},set:function(){u.connected||l.markConnected()}});var l=r.helpers[a];r.emit(\"renderer-attached\",{id:a,renderer:t,helpers:l}),o=p(function(n){if(n.type!==e||0!=n.__k.length){var t=r.getFiberRoots(a);n=l.handleCommitFiberRoot(n),t.has(n)||t.add(n)}}),i=p(function(n){r.onCommitFiberUnmount(a,n)})})();var l=t.vnode,s=t.__c,c=t.unmount,f=t.__b,d=t.diffed;t.vnode=function(n){n.startTime=NaN,n.endTime=NaN,n.startTime=0,n.endTime=-1,l&&l(n)},t.__b=function(n){n.startTime=y(),null!=f&&f(n)},t.diffed=function(n){n.endTime=y(),null!=d&&d(n)},t.__c=p(function(n){null!=s&&s(n),null!=n&&o(n)}),t.unmount=p(function(n){null!=c&&c(n),i(n)});var m=n.prototype.setState;n.prototype.setState=function(n,e){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),m.call(this,n,e)}}}());\n//# sourceMappingURL=debug.module.js.map\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(require(\"preact\")):\"function\"==typeof define&&define.amd?define([\"preact\"],n):n(e.preact)}(this,function(e){var n={};function t(n){return n.type===e.Fragment?\"Wrapper\":\"function\"==typeof n.type?\"Composite\":\"string\"==typeof n.type?\"Native\":\"Text\"}function r(n){return n.type===e.Fragment?\"Fragment\":\"function\"==typeof n.type?n.type.displayName||n.type.name:\"string\"==typeof n.type?n.type:\"#text\"}function o(e,n,t){var r=n.pop(),o=n.reduce(function(e,n){return e?e[n]:null},e);o&&(o[r]=t)}function i(n){var i=n.__c,u=null;null!=i&&i instanceof e.Component&&(u={setState:i.setState.bind(i),forceUpdate:i.forceUpdate.bind(i),setInState:function(e,n){i.setState(function(t){return o(t,e,n),t})},setInProps:function(e,t){o(n.props,e,t),i.setState({})},setInContext:function(e,n){o(i.context,e,n),i.setState({})}});var s=a(n),c=n.endTime-n.startTime;return{nodeType:t(n),type:n.type,name:r(n),ref:n.ref||null,key:n.key||null,updater:u,text:null===n.type?n.props:null,state:null!=i&&i instanceof e.Component?i.state:null,props:n.props,children:null!==n.type?null!=s&&1==s.length&&null===s[0].type?s[0].props:s:null,publicInstance:l(n),memoizedInteractions:[],actualDuration:c,actualStartTime:n.startTime,treeBaseDuration:c}}function a(e){return null==e.__c?null!=e.__k?e.__k.filter(Boolean):[]:null!=e.__k?e.__k.filter(Boolean):null}function u(n){return n.type===e.Fragment&&null===n.__p}function l(n){return u(n)?n.__k.length>0&&null!=n.__k[0]&&null!=n.__k[0].__e?n.__k[0].__e.parentNode:n:null!=n.__c?n.__c:n.type===e.Fragment?n.props:n.__e}function s(e,n,t){if(null==e||null==n)return!1;for(var r in e)if((!t||\"children\"!=r||null==n[r])&&e[r]!==n[r])return!1;return Object.keys(e).length===Object.keys(n).length}function c(e){var n=e.props,t=r(e),o=\"\";if(n)for(var i in n)if(n.hasOwnProperty(i)&&\"children\"!==i){var a=n[i];\"function\"==typeof a&&(a=\"function \"+(a.displayName||a.name)+\"() {}\"),a=Object(a)!==a||a.toString?a+\"\":Object.prototype.toString.call(a),o+=\" \"+i+\"=\"+JSON.stringify(a)}var u=n.children;return\"<\"+t+o+(u&&u.length?\">..</\"+t+\">\":\" />\")}var f=function(e,n){this.rid=n,this.hook=e,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function d(e){return function(n){try{return e(n)}catch(e){console.error(\"The react devtools encountered an error\"),console.error(e)}}}f.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},f.prototype.flushPendingEvents=function(){if(this.connected){var e=this.pending;this.pending=[];for(var n=0;n<e.length;n++){var t=e[n];this.hook.emit(t.type,t)}}},f.prototype.mount=function(e){this.inst2vnode.set(l(e),e);var n=i(e),t=[{internalInstance:e,data:n,renderer:this.rid,type:\"mount\"}];if(Array.isArray(n.children))for(var r,o=n.children.slice();null!=(r=o.pop());){var s=a(r);o.push.apply(o,s),this.inst2vnode.set(l(r),r);var c=i(r);t.push({internalInstance:r,data:c,renderer:this.rid,type:\"mount\"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);u(e)&&this.pending.push({internalInstance:e,data:n,renderer:this.rid,type:\"root\"})},f.prototype.update=function(e){var n=i(e);if(Array.isArray(n.children))for(var t=0;t<n.children.length;t++){var r=n.children[t],o=l(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),n.children[t]=this.inst2vnode.get(o)}var a=this.inst2vnode.get(n.publicInstance);!function(e,n){return e.props!==n.props&&!s(e.props,n.props,!0)||null!=e.__c&&!s(n.__c.__u,n.__c.state)||e.__e!==n.__e||e.ref!==n.ref}(a,e)?this.pending.push({internalInstance:a,data:n,renderer:this.rid,type:\"updateProfileTimes\"}):this.pending.push({internalInstance:a,data:n,renderer:this.rid,type:\"update\"})},f.prototype.handleCommitFiberRoot=function(e){var n=l(e);this.inst2vnode.has(n)?this.update(e):this.mount(e);var t=null;if(u(e))e.treeBaseDuration=0,t=e;else for(t=e;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:i(t),type:\"rootCommitted\"}),this.flushPendingEvents(),e},f.prototype.handleCommitFiberUnmount=function(e){var n=l(e);this.inst2vnode.delete(n),this.pending.push({internalInstance:e,renderer:this.rid,type:\"unmount\"})},f.prototype.getNativeFromReactElement=function(e){return e.__e},f.prototype.getReactElementFromNative=function(e){return this.inst2vnode.get(e)||null},f.prototype.walkTree=function(){},f.prototype.cleanup=function(){};var h=function(){},p=Date.now;try{p=performance.now.bind(performance)}catch(e){}\"development\"===process.env.NODE_ENV&&(function(){var t=e.options.__b,o=e.options.diffed,i=e.options.vnode,a=e.options.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};e.options.__e=function(e,n,t){if(n&&n.__c&&\"function\"==typeof e.then){var o=e;e=new Error(\"Missing Suspense. The throwing component was: \"+r(n));for(var i=n;i;i=i.__p)if(i.__c&&i.__c.t){e=o;break}}a(e,n,t)},e.options.__p=function(e,n){if(!n)throw new Error(\"Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.\");var t;switch(n.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error(\"\\n\\t\\t\\tExpected a valid HTML node as a second argument to render.\\n\\t\\t\\tReceived \"+n+\" instead: render(<\"+(e.type.name||e.type)+\" />, \"+n+\");\\n\\t\\t\")},e.options.__b=function(e){if(null!=e){var o,i,a,l,s=e.type,f=function e(n){return n?\"function\"==typeof n.type?e(n.__p):n:{}}(e.__p);if(void 0===s)throw new Error(\"Undefined component passed to createElement()\\n\\nYou likely forgot to export your component or might have mixed up default and named imports\"+c(e));if(null!=s&&\"object\"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var d=\"Did you accidentally pass a JSX literal as JSX twice?\\n\\n let My\"+r(s)+\" = \"+c(s)+\";\\n let vnode = <My\"+r(s)+\" />;\\n\\nThis usually happens when you export a JSX literal and not the component.\";throw new Error(\"Invalid type passed to createElement(): \"+s+\"\\n\\n\"+d+\"\\n\")}throw new Error(\"Invalid type passed to createElement(): \"+(Array.isArray(s)?\"array\":s))}if(\"thead\"!==s&&\"tfoot\"!==s&&\"thead\"!==s||\"table\"===f.type?\"tr\"===s&&\"thead\"!==f.type&&\"tfoot\"!==f.type&&\"tbody\"!==f.type&&\"table\"!==f.type?console.error(\"Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent.\"+c(e)):\"td\"===s&&\"tr\"!==f.type?console.error(\"Improper nesting of table.Your <td> should have a <tr> parent.\"+c(e)):\"th\"===s&&\"tr\"!==f.type&&console.error(\"Improper nesting of table.Your <th> should have a <tr>.\"+c(e)):console.error(\"Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent.\"+c(e)),void 0!==e.ref&&\"function\"!=typeof e.ref&&\"object\"!=typeof e.ref&&!(\"$$typeof\"in e))throw new Error('Component\\'s \"ref\" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+\"] instead\\n\"+c(e));if(\"string\"==typeof e.type)for(var h in e.props)if(\"o\"===h[0]&&\"n\"===h[1]&&\"function\"!=typeof e.props[h]&&null!=e.props[h])throw new Error(\"Component's \\\"\"+h+'\" property should be a function, but got ['+typeof e.props[h]+\"] instead\\n\"+c(e));if(\"function\"==typeof e.type&&e.type.propTypes){if(\"Lazy\"===e.type.displayName&&!u.lazyPropTypes[e.type]){var p=\"PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. \";try{var v=e.type();u.lazyPropTypes[e.type]=!0,console.warn(p+\"Component wrapped in lazy() is \"+(v.type.displayName||v.type.name))}catch(e){console.warn(p+\"We will log the wrapped component's name once it is loaded.\")}}o=e.type.propTypes,i=e.props,a=r(e),l=c(e),Object.keys(o).forEach(function(e){var t;try{t=o[e](i,e,l,a,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(e){t=e}!t||t.message in n||(n[t.message]=!0,console.error(\"Failed \"+a+\" type: \"+t.message))})}t&&t(e)}},e.options.__h=function(e){if(!e)throw new Error(\"Hook can only be invoked from render methods.\")};var l=function(e,n){return{get:function(){throw new Error(\"getting vnode.\"+e+\" is deprecated, \"+n)},set:function(){throw new Error(\"setting vnode.\"+e+\" is not allowed, \"+n)}}},s={nodeName:l(\"nodeName\",\"use vnode.type\"),attributes:l(\"attributes\",\"use vnode.props\"),children:l(\"children\",\"use vnode.props.children\")};e.options.vnode=function(e){var n,t;e.props&&e.props.i&&(n=e.props.i,delete e.props.i),e.props&&e.props.u&&(t=e.props.u,delete e.props.u),e.u=t,e.i=n,Object.defineProperties(e,s),i&&i(e)},e.options.diffed=function(e){if(null!=e){if(e.__c&&e.__c.l){var n=e.__c.l;n.s.forEach(function(n){!n.h||n.p&&Array.isArray(n.p)||console.warn(\"In \"+(e.type.name||e.type)+\" you are calling useMemo/useCallback without passing arguments.\\nThis is a noop since it will not be able to memoize, it will execute it every render.\")}),n.v.length>0&&n.v.forEach(function(n){n.p&&Array.isArray(n.p)||u.useEffect[e.type]||(u.useEffect[e.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(e.type.name||e.type)+\".\"))}),n.m.length>0&&n.m.forEach(function(n){n.p&&Array.isArray(n.p)||u.useLayoutEffect[e.type]||(u.useLayoutEffect[e.type]=!0,console.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\nNot doing so will invoke this effect on every render.\\n\\nThis effect can be found in the render of '+(e.type.name||e.type)+\".\"))})}if(null!=e.__k)for(var t=[],r=0;r<e.__k.length;r++){var i=e.__k[r];if(i&&null!=i.key){var a=i.key;if(-1!==t.indexOf(a)){console.error('Following component has two or more children with the same key attribute: \"'+a+'\". This may cause glitches and misbehavior in rendering process. Component: \\n\\n'+c(e));break}t.push(a)}}o&&o(e)}}}(),function(){var n=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=n){var t=h,r=h,o=Math.random().toString(16).slice(2),i=new f(n,o);d(function(){var a=!1;try{a=\"production\"!==process.env.NODE_ENV}catch(e){}window.parent.postMessage({source:\"react-devtools-detector\",reactBuildType:a?\"development\":\"production\"},\"*\");var u={bundleType:a?1:0,version:\"16.5.2\",rendererPackageName:\"preact\",findHostInstanceByFiber:function(e){return e.__e},findFiberByHostInstance:function(e){return i.inst2vnode.get(e)||null}};n._renderers[o]=u,Object.defineProperty(n.helpers,o,{get:function(){return i},set:function(){i.connected||l.markConnected()}});var l=n.helpers[o];n.emit(\"renderer-attached\",{id:o,renderer:u,helpers:l}),t=d(function(t){if(t.type!==e.Fragment||0!=t.__k.length){var r=n.getFiberRoots(o);t=l.handleCommitFiberRoot(t),r.has(t)||r.add(t)}}),r=d(function(e){n.onCommitFiberUnmount(o,e)})})();var a=e.options.vnode,u=e.options.__c,l=e.options.unmount,s=e.options.__b,c=e.options.diffed;e.options.vnode=function(e){e.startTime=NaN,e.endTime=NaN,e.startTime=0,e.endTime=-1,a&&a(e)},e.options.__b=function(e){e.startTime=p(),null!=s&&s(e)},e.options.diffed=function(e){e.endTime=p(),null!=c&&c(e)},e.options.__c=d(function(e){null!=u&&u(e),null!=e&&t(e)}),e.options.unmount=d(function(e){null!=l&&l(e),r(e)});var v=e.Component.prototype.setState;e.Component.prototype.setState=function(e,n){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),v.call(this,e,n)}}}())});\n//# sourceMappingURL=debug.umd.js.map\n","/* eslint-disable no-console */\n\nif (process.env.NODE_ENV === 'development') {\n\tconst preact = require('preact');\n\tconst options = preact.options;\n\tconst oldVnodeOption = options.vnode;\n\n\toptions.vnode = function(vnode) {\n\t\tconst { nodeName, attributes, children } = vnode;\n\n\t\tif (nodeName === void 0) {\n\t\t\tconsole.error('Undefined component passed to preact.h()\\n'+serializeVNode(vnode));\n\t\t}\n\n\t\tif (\n\t\t\tattributes && attributes.ref !== void 0 &&\n\t\t\ttypeof attributes.ref !== 'function' &&\n\t\t\ttypeof attributes.ref !== 'object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function or createRef() object,` +\n\t\t\t\t` but [${typeof attributes.ref}] passed\\n` + serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\t{\n\t\t\tconst keys = {};\n\n\t\t\tinspectChildren(children, (deepChild) => {\n\t\t\t\tif (!deepChild || deepChild.key==null) return;\n\n\t\t\t\t// In Preact, all keys are stored as object values, i.e. being strings\n\t\t\t\tconst key = deepChild.key + '';\n\n\t\t\t\tif (keys.hasOwnProperty(key)) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t'same \"key\" attribute. This may cause glitches and misbehavior ' +\n\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\n\t\t\t\t\t// Return early to not spam the console\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tkeys[key] = true;\n\t\t\t});\n\t\t}\n\n\t\tif (oldVnodeOption) oldVnodeOption.call(this, vnode);\n\t};\n\n\ttry {\n\t\tconst oldRender = preact.render;\n\t\tpreact.render = function (vnode, parent, merge) {\n\t\t\tif (parent == null && merge == null) {\n\t\t\t\t// render(vnode, parent, merge) can't have both parent and merge be undefined\n\t\t\t\tconsole.error('The \"containerNode\" or \"replaceNode\" is not defined in the render method. ' +\n\t\t\t\t\t'Component: \\n\\n' + serializeVNode(vnode));\n\t\t\t}\n\t\t\telse if (parent == merge) {\n\t\t\t\t// if parent == merge, it doesn't reason well and would cause trouble when preact\n\t\t\t\t// tries to update or replace that 'replaceNode' element\n\t\t\t\tconsole.error(\n\t\t\t\t\t'The \"containerNode\" and \"replaceNode\" are the same in render method, ' +\n\t\t\t\t\t'when the \"replaceNode\" DOM node is expected to be a child of \"containerNode\". ' +\n\t\t\t\t\t'docs-ref: https://preactjs.com/guide/api-reference#-preact-render-. Component: \\n\\n' +\n\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn oldRender(vnode, parent, merge);\n\t\t};\n\t}\n\tcatch (e) {}\n\n\tconst inspectChildren = (children, inspect) => {\n\t\tif (!Array.isArray(children)) {\n\t\t\tchildren = [children];\n\t\t}\n\t\treturn children.some((child, i) => {\n\t\t\tif (Array.isArray(child)) {\n\t\t\t\treturn inspectChildren(child, inspect);\n\t\t\t}\n\n\t\t\treturn inspect(child, i);\n\t\t});\n\t};\n\n\tconst serializeVNode = ({ nodeName, attributes, children }) => {\n\t\tif (typeof nodeName==='function') {\n\t\t\tnodeName = nodeName.name || nodeName.displayName;\n\t\t}\n\n\t\tlet props = '';\n\t\tif (attributes) {\n\t\t\tfor (let attr in attributes) {\n\t\t\t\tif (attributes.hasOwnProperty(attr) && attr!=='children') {\n\t\t\t\t\tlet value = attributes[attr];\n\n\t\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (Object(value) === value && !value.toString) {\n\t\t\t\t\t\tvalue = Object.prototype.toString.call(value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvalue = value + '';\n\t\t\t\t\t}\n\n\t\t\t\t\tprops += ` ${attr}=${JSON.stringify(value)}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn `<${nodeName}${props}${children && children.length ? ('>..</'+nodeName+'>') : ' />'}`;\n\t};\n\n\trequire('preact/devtools');\n}\n"]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
var n=require("preact"),e={};function t(e){return e.type===n.Fragment?"Wrapper":"function"==typeof e.type?"Composite":"string"==typeof e.type?"Native":"Text"}function r(e){return e.type===n.Fragment?"Fragment":"function"==typeof e.type?e.type.displayName||e.type.name:"string"==typeof e.type?e.type:"#text"}function o(n,e,t){var r=e.pop(),o=e.reduce(function(n,e){return n?n[e]:null},n);o&&(o[r]=t)}function i(e){var i=e.__c,u=null;null!=i&&i instanceof n.Component&&(u={setState:i.setState.bind(i),forceUpdate:i.forceUpdate.bind(i),setInState:function(n,e){i.setState(function(t){return o(t,n,e),t})},setInProps:function(n,t){o(e.props,n,t),i.setState({})},setInContext:function(n,e){o(i.context,n,e),i.setState({})}});var s=a(e),c=e.endTime-e.startTime;return{nodeType:t(e),type:e.type,name:r(e),ref:e.ref||null,key:e.key||null,updater:u,text:null===e.type?e.props:null,state:null!=i&&i instanceof n.Component?i.state:null,props:e.props,children:null!==e.type?null!=s&&1==s.length&&null===s[0].type?s[0].props:s:null,publicInstance:l(e),memoizedInteractions:[],actualDuration:c,actualStartTime:e.startTime,treeBaseDuration:c}}function a(n){return null==n.__c?null!=n.__k?n.__k.filter(Boolean):[]:null!=n.__k?n.__k.filter(Boolean):null}function u(e){return e.type===n.Fragment&&null===e.__p}function l(e){return u(e)?e.__k.length>0&&null!=e.__k[0]&&null!=e.__k[0].__e?e.__k[0].__e.parentNode:e:null!=e.__c?e.__c:e.type===n.Fragment?e.props:e.__e}function s(n,e,t){if(null==n||null==e)return!1;for(var r in n)if((!t||"children"!=r||null==e[r])&&n[r]!==e[r])return!1;return Object.keys(n).length===Object.keys(e).length}function c(n){var e=n.props,t=r(n),o="";if(e)for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),o+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+t+o+(u&&u.length?">..</"+t+">":" />")}var f=function(n,e){this.rid=e,this.hook=n,this.pending=[],this.inst2vnode=new WeakMap,this.connected=!1};function d(n){return function(e){try{return n(e)}catch(n){console.error("The react devtools encountered an error"),console.error(n)}}}f.prototype.markConnected=function(){this.connected=!0,this.flushPendingEvents()},f.prototype.flushPendingEvents=function(){if(this.connected){var n=this.pending;this.pending=[];for(var e=0;e<n.length;e++){var t=n[e];this.hook.emit(t.type,t)}}},f.prototype.mount=function(n){this.inst2vnode.set(l(n),n);var e=i(n),t=[{internalInstance:n,data:e,renderer:this.rid,type:"mount"}];if(Array.isArray(e.children))for(var r,o=e.children.slice();null!=(r=o.pop());){var s=a(r);o.push.apply(o,s),this.inst2vnode.set(l(r),r);var c=i(r);t.push({internalInstance:r,data:c,renderer:this.rid,type:"mount"})}for(var f=t.length;--f>=0;)this.pending.push(t[f]);u(n)&&this.pending.push({internalInstance:n,data:e,renderer:this.rid,type:"root"})},f.prototype.update=function(n){var e=i(n);if(Array.isArray(e.children))for(var t=0;t<e.children.length;t++){var r=e.children[t],o=l(r);null==this.inst2vnode.get(o)?this.mount(r):this.update(r),e.children[t]=this.inst2vnode.get(o)}var a=this.inst2vnode.get(e.publicInstance);!function(n,e){return n.props!==e.props&&!s(n.props,e.props,!0)||null!=n.__c&&!s(e.__c.__u,e.__c.state)||n.__e!==e.__e||n.ref!==e.ref}(a,n)?this.pending.push({internalInstance:a,data:e,renderer:this.rid,type:"updateProfileTimes"}):this.pending.push({internalInstance:a,data:e,renderer:this.rid,type:"update"})},f.prototype.handleCommitFiberRoot=function(n){var e=l(n);this.inst2vnode.has(e)?this.update(n):this.mount(n);var t=null;if(u(n))n.treeBaseDuration=0,t=n;else for(t=n;null!=t.__p;)t=t.__p;return this.pending.push({internalInstance:t,renderer:this.rid,data:i(t),type:"rootCommitted"}),this.flushPendingEvents(),n},f.prototype.handleCommitFiberUnmount=function(n){var e=l(n);this.inst2vnode.delete(e),this.pending.push({internalInstance:n,renderer:this.rid,type:"unmount"})},f.prototype.getNativeFromReactElement=function(n){return n.__e},f.prototype.getReactElementFromNative=function(n){return this.inst2vnode.get(n)||null},f.prototype.walkTree=function(){},f.prototype.cleanup=function(){};var h=function(){},p=Date.now;try{p=performance.now.bind(performance)}catch(n){}"development"===process.env.NODE_ENV&&(function(){var t=n.options.__b,o=n.options.diffed,i=n.options.vnode,a=n.options.__e,u={useEffect:{},useLayoutEffect:{},lazyPropTypes:{}};n.options.__e=function(n,e,t){if(e&&e.__c&&"function"==typeof n.then){var o=n;n=new Error("Missing Suspense. The throwing component was: "+r(e));for(var i=e;i;i=i.__p)if(i.__c&&i.__c.t){n=o;break}}a(n,e,t)},n.options.__p=function(n,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var t;switch(e.nodeType){case 1:case 11:case 9:t=!0;break;default:t=!1}if(!t)throw new Error("\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived "+e+" instead: render(<"+(n.type.name||n.type)+" />, "+e+");\n\t\t")},n.options.__b=function(n){if(null!=n){var o,i,a,l,s=n.type,f=function n(e){return e?"function"==typeof e.type?n(e.__p):e:{}}(n.__p);if(void 0===s)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+c(n));if(null!=s&&"object"==typeof s){if(void 0!==s.o&&void 0!==s.__e){var d="Did you accidentally pass a JSX literal as JSX twice?\n\n let My"+r(s)+" = "+c(s)+";\n let vnode = <My"+r(s)+" />;\n\nThis usually happens when you export a JSX literal and not the component.";throw new Error("Invalid type passed to createElement(): "+s+"\n\n"+d+"\n")}throw new Error("Invalid type passed to createElement(): "+(Array.isArray(s)?"array":s))}if("thead"!==s&&"tfoot"!==s&&"thead"!==s||"table"===f.type?"tr"===s&&"thead"!==f.type&&"tfoot"!==f.type&&"tbody"!==f.type&&"table"!==f.type?console.error("Improper nesting of table.Your <tr> should have a <thead/tbody/tfoot/table> parent."+c(n)):"td"===s&&"tr"!==f.type?console.error("Improper nesting of table.Your <td> should have a <tr> parent."+c(n)):"th"===s&&"tr"!==f.type&&console.error("Improper nesting of table.Your <th> should have a <tr>."+c(n)):console.error("Improper nesting of table.Your <thead/tbody/tfoot> should have a <table> parent."+c(n)),void 0!==n.ref&&"function"!=typeof n.ref&&"object"!=typeof n.ref&&!("$$typeof"in n))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof n.ref+"] instead\n"+c(n));if("string"==typeof n.type)for(var h in n.props)if("o"===h[0]&&"n"===h[1]&&"function"!=typeof n.props[h]&&null!=n.props[h])throw new Error("Component's \""+h+'" property should be a function, but got ['+typeof n.props[h]+"] instead\n"+c(n));if("function"==typeof n.type&&n.type.propTypes){if("Lazy"===n.type.displayName&&!u.lazyPropTypes[n.type]){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var v=n.type();u.lazyPropTypes[n.type]=!0,console.warn(p+"Component wrapped in lazy() is "+(v.type.displayName||v.type.name))}catch(n){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}o=n.type.propTypes,i=n.props,a=r(n),l=c(n),Object.keys(o).forEach(function(n){var t;try{t=o[n](i,n,l,a,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(n){t=n}!t||t.message in e||(e[t.message]=!0,console.error("Failed "+a+" type: "+t.message))})}t&&t(n)}},n.options.__h=function(n){if(!n)throw new Error("Hook can only be invoked from render methods.")};var l=function(n,e){return{get:function(){throw new Error("getting vnode."+n+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+n+" is not allowed, "+e)}}},s={nodeName:l("nodeName","use vnode.type"),attributes:l("attributes","use vnode.props"),children:l("children","use vnode.props.children")};n.options.vnode=function(n){var e,t;n.props&&n.props.i&&(e=n.props.i,delete n.props.i),n.props&&n.props.u&&(t=n.props.u,delete n.props.u),n.u=t,n.i=e,Object.defineProperties(n,s),i&&i(n)},n.options.diffed=function(n){if(null!=n){if(n.__c&&n.__c.l){var e=n.__c.l;e.s.forEach(function(e){!e.h||e.p&&Array.isArray(e.p)||console.warn("In "+(n.type.name||n.type)+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.")}),e.v.length>0&&e.v.forEach(function(e){e.p&&Array.isArray(e.p)||u.useEffect[n.type]||(u.useEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(n.type.name||n.type)+"."))}),e.m.length>0&&e.m.forEach(function(e){e.p&&Array.isArray(e.p)||u.useLayoutEffect[n.type]||(u.useLayoutEffect[n.type]=!0,console.warn('You should provide an array of arguments as the second argument to the "useLayoutEffect" hook.\n\nNot doing so will invoke this effect on every render.\n\nThis effect can be found in the render of '+(n.type.name||n.type)+"."))})}if(null!=n.__k)for(var t=[],r=0;r<n.__k.length;r++){var i=n.__k[r];if(i&&null!=i.key){var a=i.key;if(-1!==t.indexOf(a)){console.error('Following component has two or more children with the same key attribute: "'+a+'". This may cause glitches and misbehavior in rendering process. Component: \n\n'+c(n));break}t.push(a)}}o&&o(n)}}}(),function(){var e=window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(null!=e){var t=h,r=h,o=Math.random().toString(16).slice(2),i=new f(e,o);d(function(){var a=!1;try{a="production"!==process.env.NODE_ENV}catch(n){}window.parent.postMessage({source:"react-devtools-detector",reactBuildType:a?"development":"production"},"*");var u={bundleType:a?1:0,version:"16.5.2",rendererPackageName:"preact",findHostInstanceByFiber:function(n){return n.__e},findFiberByHostInstance:function(n){return i.inst2vnode.get(n)||null}};e._renderers[o]=u,Object.defineProperty(e.helpers,o,{get:function(){return i},set:function(){i.connected||l.markConnected()}});var l=e.helpers[o];e.emit("renderer-attached",{id:o,renderer:u,helpers:l}),t=d(function(t){if(t.type!==n.Fragment||0!=t.__k.length){var r=e.getFiberRoots(o);t=l.handleCommitFiberRoot(t),r.has(t)||r.add(t)}}),r=d(function(n){e.onCommitFiberUnmount(o,n)})})();var a=n.options.vnode,u=n.options.__c,l=n.options.unmount,s=n.options.__b,c=n.options.diffed;n.options.vnode=function(n){n.startTime=NaN,n.endTime=NaN,n.startTime=0,n.endTime=-1,a&&a(n)},n.options.__b=function(n){n.startTime=p(),null!=s&&s(n)},n.options.diffed=function(n){n.endTime=p(),null!=c&&c(n)},n.options.__c=d(function(n){null!=u&&u(n),null!=n&&t(n)}),n.options.unmount=d(function(n){null!=l&&l(n),r(n)});var v=n.Component.prototype.setState;n.Component.prototype.setState=function(n,e){var t=this.__s!==this.state&&this.__s||(this.__s=Object.assign({},this.state));return this.__u=Object.assign({},t),v.call(this,n,e)}}}());
|
2
|
+
//# sourceMappingURL=debug.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"debug.js","sources":["../src/check-props.js","../src/devtools/custom.js","../src/debug.js","../src/devtools/renderer.js","../src/devtools/index.js","../src/index.js","../src/constants.js"],"sourcesContent":["const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\nexport function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\tObject.keys(typeSpecs).forEach((typeSpecName) => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t\t}\n\t\tcatch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(`Failed ${location} type: ${error.message}${getStack && getStack() || ''}`);\n\t\t}\n\t});\n}\n","import { Component, Fragment } from 'preact';\n\n/**\n * Get the type/category of a vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').NodeType}\n */\nexport function getNodeType(vnode) {\n\tif (vnode.type===Fragment) return 'Wrapper';\n\telse if (typeof vnode.type==='function') return 'Composite';\n\telse if (typeof vnode.type==='string') return 'Native';\n\treturn 'Text';\n}\n\n/**\n * Get human readable name of the component/dom element\n * @param {import('../internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type===Fragment) return 'Fragment';\n\telse if (typeof vnode.type==='function') return vnode.type.displayName || vnode.type.name;\n\telse if (typeof vnode.type==='string') return vnode.type;\n\treturn '#text';\n}\n\n/**\n * Deeply mutate a property by walking down an array of property keys\n * @param {object} obj\n * @param {Array<string | number>} path\n * @param {any} value\n */\nexport function setIn(obj, path, value) {\n\tlet last = path.pop();\n\tlet parent = path.reduce((acc, attr) => acc ? acc[attr] : null, obj);\n\tif (parent) {\n\t\tparent[last] = value;\n\t}\n}\n\n/**\n * Get devtools compatible data from vnode\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').DevtoolData}\n */\nexport function getData(vnode) {\n\tlet c = vnode._component;\n\n\t/** @type {import('../internal').DevtoolsUpdater | null} */\n\tlet updater = null;\n\n\tif (c!=null && c instanceof Component) {\n\t\t// These functions will be called when the user changes state, props or\n\t\t// context values via the devtools ui panel\n\t\tupdater = {\n\t\t\tsetState: c.setState.bind(c),\n\t\t\tforceUpdate: c.forceUpdate.bind(c),\n\t\t\tsetInState(path, value) {\n\t\t\t\tc.setState(prev => {\n\t\t\t\t\tsetIn(prev, path, value);\n\t\t\t\t\treturn prev;\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInProps(path, value) {\n\t\t\t\tsetIn(vnode.props, path, value);\n\t\t\t\tc.setState({});\n\t\t\t},\n\t\t\tsetInContext(path, value) {\n\t\t\t\tsetIn(c.context, path, value);\n\t\t\t\tc.setState({});\n\t\t\t}\n\t\t};\n\t}\n\n\tlet children = getChildren(vnode);\n\n\tlet duration = vnode.endTime - vnode.startTime;\n\treturn {\n\t\tnodeType: getNodeType(vnode),\n\t\ttype: vnode.type,\n\t\tname: getDisplayName(vnode),\n\t\tref: vnode.ref || null,\n\t\tkey: vnode.key || null,\n\t\tupdater,\n\t\ttext: vnode.type===null ? vnode.props : null,\n\t\tstate: c!=null && c instanceof Component ? c.state : null,\n\t\tprops: vnode.props,\n\t\t// The devtools inline text children if they are the only child\n\t\tchildren: vnode.type!==null\n\t\t\t? children!=null && children.length==1 && children[0].type===null\n\t\t\t\t? children[0].props\n\t\t\t\t: children\n\t\t\t: null,\n\t\tpublicInstance: getInstance(vnode),\n\t\tmemoizedInteractions: [],\n\n\t\t// Profiler data\n\t\tactualDuration: duration,\n\t\tactualStartTime: vnode.startTime,\n\t\ttreeBaseDuration: duration\n\t};\n}\n\n/**\n * Get all rendered vnode children as an array. Moreover we need to filter\n * out `null` or other falsy children.\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').VNode[]}\n */\nexport function getChildren(vnode) {\n\tif (vnode._component==null) {\n\t\treturn vnode._children!=null ? vnode._children.filter(Boolean) : [];\n\t}\n\n\treturn vnode._children != null ? vnode._children.filter(Boolean) : null;\n}\n\n/**\n * Check if a vnode is a root node\n * @param {import('../internal').VNode} vnode\n * @returns {boolean}\n */\nexport function isRoot(vnode) {\n\t// Timings of root vnodes will never be set\n\treturn vnode.type===Fragment && vnode._parent === null;\n}\n\n/**\n * Cache a vnode by its instance and retrieve previous vnodes by the next\n * instance.\n *\n * We need this to be able to identify the previous vnode of a given instance.\n * For components we want to check if we already rendered it and use the class\n * instance as key. For html elements we use the dom node as key.\n *\n * @param {import('../internal').VNode} vnode\n * @returns {import('../internal').Component | import('../internal').PreactElement | Text | null}\n */\nexport function getInstance(vnode) {\n\t// Use the parent element as instance for root nodes\n\tif (isRoot(vnode)) {\n\t\t// Edge case: When the tree only consists of components that have not rendered\n\t\t// anything into the DOM we revert to using the vnode as instance.\n\t\treturn vnode._children.length > 0 && vnode._children[0]!=null && vnode._children[0]._dom!=null\n\t\t\t? /** @type {import('../internal').PreactElement | null} */\n\t\t\t(vnode._children[0]._dom.parentNode)\n\t\t\t: vnode;\n\t}\n\tif (vnode._component!=null) return vnode._component;\n\tif (vnode.type===Fragment) return vnode.props;\n\treturn vnode._dom;\n}\n\n/**\n * Compare two objects\n * @param {object} a\n * @param {object} b\n * @param {boolean} [isProps]\n * @returns {boolean}\n */\nexport function shallowEqual(a, b, isProps) {\n\tif (a==null || b==null) return false;\n\n\tfor (let key in a) {\n\t\tif (isProps && key=='children' && b[key]!=null) continue;\n\t\tif (a[key]!==b[key]) return false;\n\t}\n\n\tif (Object.keys(a).length!==Object.keys(b).length) return false;\n\treturn true;\n}\n\n/**\n * Check if a vnode was actually updated\n * @param {import('../internal').VNode} next\n * @param {import('../internal').VNode} prev\n * @returns {boolean}\n */\nexport function hasDataChanged(prev, next) {\n\treturn (prev.props !== next.props && !shallowEqual(prev.props, next.props, true))\n\t\t|| (prev._component!=null &&\n\t\t\t!shallowEqual(next._component._prevState, next._component.state))\n\t\t|| prev._dom !== next._dom\n\t\t|| prev.ref !== next.ref;\n}\n","import { checkPropTypes } from './check-props';\nimport { getDisplayName } from './devtools/custom';\nimport { options } from 'preact';\nimport { ELEMENT_NODE, DOCUMENT_NODE, DOCUMENT_FRAGMENT_NODE } from './constants';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type === 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tconst warnedComponents = { useEffect: {}, useLayoutEffect: {}, lazyPropTypes: {} };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then === 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error('Missing Suspense. The throwing component was: ' + getDisplayName(vnode));\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error('Undefined parent passed to render(), this is the second argument.\\nCheck if the element is available in the DOM/has the correct id.');\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE: isValid = true; break;\n\t\t\tdefault: isValid = false;\n\t\t}\n\t\tif (!isValid) throw new Error(`\n\t\t\tExpected a valid HTML node as a second argument to render.\n\t\t\tReceived ${parentNode} instead: render(<${vnode.type.name || vnode.type} />, ${parentNode});\n\t\t`);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (vnode == null) { return; }\n\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type===undefined) {\n\t\t\tthrow new Error('Undefined component passed to createElement()\\n\\n'+\n\t\t\t'You likely forgot to export your component or might have mixed up default and named imports'+\n\t\t\tserializeVNode(vnode));\n\t\t}\n\t\telse if (type!=null && typeof type==='object') {\n\t\t\tif (type._lastDomChild!==undefined && type._dom!==undefined) {\n\t\t\t\tlet info = 'Did you accidentally pass a JSX literal as JSX twice?\\n\\n'+\n\t\t\t\t' let My'+getDisplayName(type)+' = '+serializeVNode(type)+';\\n'+\n\t\t\t\t' let vnode = <My'+getDisplayName(type)+' />;\\n\\n'+\n\t\t\t\t'This usually happens when you export a JSX literal and not the component.';\n\t\t\t\tthrow new Error('Invalid type passed to createElement(): '+type+'\\n\\n'+info+'\\n');\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid type passed to createElement(): '+(Array.isArray(type) ? 'array' : type));\n\t\t}\n\n\t\tif ((type==='thead' || type==='tfoot' || type==='thead') && parentVNode.type!=='table') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <thead/tbody/tfoot> should have a <table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (\n\t\t\ttype==='tr' && (\n\t\t\t\tparentVNode.type!=='thead' &&\n\t\t\t\tparentVNode.type!=='tfoot' &&\n\t\t\t\tparentVNode.type!=='tbody' &&\n\t\t\t\tparentVNode.type!=='table'\n\t\t\t)) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <tr> should have a <thead/tbody/tfoot/table> parent.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='td' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t\t'Your <td> should have a <tr> parent.'\n\t\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\t\telse if (type==='th' && parentVNode.type!=='tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table.' +\n\t\t\t\t'Your <th> should have a <tr>.'\n\t\t\t\t+ serializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref!==undefined &&\n\t\t\ttypeof vnode.ref!=='function' &&\n\t\t\ttypeof vnode.ref!=='object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\tserializeVNode(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type==='string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (key[0]==='o' && key[1]==='n' && typeof vnode.props[key]!=='function' && vnode.props[key]!=null) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type==='function' && vnode.type.propTypes) {\n\t\t\tif (vnode.type.displayName === 'Lazy' && !warnedComponents.lazyPropTypes[vnode.type]) {\n\t\t\t\tconst m = 'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes[vnode.type] = true;\n\t\t\t\t\tconsole.warn(m + 'Component wrapped in lazy() is ' + (lazyVNode.type.displayName || lazyVNode.type.name));\n\t\t\t\t}\n\t\t\t\tcatch (promise) {\n\t\t\t\t\tconsole.warn(m + 'We will log the wrapped component\\'s name once it is loaded.');\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(vnode.type.propTypes, vnode.props, getDisplayName(vnode), serializeVNode(vnode));\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = (comp) => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\toptions.vnode = (vnode) => {\n\t\tlet source, self;\n\t\tif (vnode.props && vnode.props.__source) {\n\t\t\tsource = vnode.props.__source;\n\t\t\tdelete vnode.props.__source;\n\t\t}\n\t\tif (vnode.props && vnode.props.__self) {\n\t\t\tself = vnode.props.__self;\n\t\t\tdelete vnode.props.__self;\n\t\t}\n\t\tvnode.__self = self;\n\t\tvnode.__source = source;\n\t\tObject.defineProperties(vnode, deprecatedAttributes);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tif (vnode == null) { return; }\n\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tlet hooks = vnode._component.__hooks;\n\t\t\thooks._list.forEach(hook => {\n\t\t\t\tif (hook._callback && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`In ${vnode.type.name || vnode.type} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (hooks._pendingEffects.length > 0) {\n\t\t\t\thooks._pendingEffects.forEach((effect) => {\n\t\t\t\t\tif ((!effect._args || !Array.isArray(effect._args)) && !warnedComponents.useEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (hooks._pendingLayoutEffects.length > 0) {\n\t\t\t\thooks._pendingLayoutEffects.forEach((layoutEffect) => {\n\t\t\t\t\tif ((!layoutEffect._args || !Array.isArray(layoutEffect._args)) && !warnedComponents.useLayoutEffect[vnode.type]) {\n\t\t\t\t\t\twarnedComponents.useLayoutEffect[vnode.type] = true;\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tconsole.warn('You should provide an array of arguments as the second argument to the \"useLayoutEffect\" hook.\\n\\n' +\n\t\t\t\t\t\t\t'Not doing so will invoke this effect on every render.\\n\\n' +\n\t\t\t\t\t\t\t'This effect can be found in the render of ' + (vnode.type.name || vnode.type) + '.');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key==null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\tserializeVNode(vnode)\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n}\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tif (props) {\n\t\tfor (let prop in props) {\n\t\t\tif (props.hasOwnProperty(prop) && prop!=='children') {\n\t\t\t\tlet value = props[prop];\n\n\t\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\t\tif (typeof value==='function') {\n\t\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t\t}\n\n\t\t\t\tvalue = Object(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${children && children.length\n\t\t? '>..</'+name+'>'\n\t\t: ' />'}`;\n}\n","import { getData, getChildren, getInstance, hasDataChanged, isRoot } from './custom';\n\n/**\n * Custom renderer tailored for Preact. It converts updated vnode trees\n * to events the devtools can understand.\n * @class Renderer\n */\nexport class Renderer {\n\tconstructor(hook, rid) {\n\n\t\t/** @type {string} */\n\t\tthis.rid = rid;\n\t\tthis.hook = hook;\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tthis.pending = [];\n\n\t\t/**\n\t\t * Store the instance of a vnode. This will be later used to decide if a\n\t\t * vnode needs to be mounted or updated. For components the instance refers\n\t\t * to the actuall class instance whereas for dom nodes it refers to the\n\t\t * underlying dom element.\n\t\t * @type {WeakMap<import('../internal').Component | import('../internal').PreactElement | HTMLElement | Text, import('../internal').VNode>}\n\t\t */\n\t\tthis.inst2vnode = new WeakMap();\n\t\tthis.connected = false;\n\t}\n\n\t/**\n\t * Mark the connection status as ready so that we can proceed\n\t * to actually flush events.\n\t */\n\tmarkConnected() {\n\t\tthis.connected = true;\n\t\tthis.flushPendingEvents();\n\t}\n\n\t/**\n\t * Flush all queued events\n\t */\n\tflushPendingEvents() {\n\t\tif (!this.connected) return;\n\n\t\tlet events = this.pending;\n\t\tthis.pending = [];\n\t\tfor (let i = 0; i < events.length; i++) {\n\t\t\tlet event = events[i];\n\t\t\tthis.hook.emit(event.type, event);\n\t\t}\n\t}\n\n\t/**\n\t * Recursively mount a vnode tree. Note that the devtools expectes the tree to\n\t * be mounted from the bottom up, otherwise the order will be messed up.\n\t * Therefore we mount children prior to mounting the vnode itself.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tmount(vnode) {\n\t\tthis.inst2vnode.set(getInstance(vnode), vnode);\n\t\tlet data = getData(vnode);\n\n\t\t/** @type {Array<import('../internal').DevtoolsEvent>} */\n\t\tlet work = [{\n\t\t\tinternalInstance: vnode,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'mount'\n\t\t}];\n\n\t\t// Children must be mounted first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tlet stack = data.children.slice();\n\t\t\tlet item;\n\t\t\twhile ((item = stack.pop())!=null) {\n\t\t\t\tlet children = getChildren(item);\n\t\t\t\tstack.push(...children);\n\n\t\t\t\tthis.inst2vnode.set(getInstance(item), item);\n\n\t\t\t\tlet data = getData(item);\n\n\t\t\t\twork.push({\n\t\t\t\t\tinternalInstance: item,\n\t\t\t\t\tdata,\n\t\t\t\t\trenderer: this.rid,\n\t\t\t\t\ttype: 'mount'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = work.length; --i>=0;) {\n\t\t\tthis.pending.push(work[i]);\n\t\t}\n\n\t\t// Special event if we have a root\n\t\tif (isRoot(vnode)) {\n\t\t\tthis.pending.push({\n\t\t\t\tinternalInstance: vnode,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'root'\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Update a vnode tree\n\t * @param {import('../internal').VNode} vnode\n\t */\n\tupdate(vnode) {\n\t\tlet data = getData(vnode);\n\n\t\t// Children must be updated first\n\t\tif (Array.isArray(data.children)) {\n\t\t\tfor (let i = 0; i < data.children.length; i++) {\n\t\t\t\tlet child = data.children[i];\n\t\t\t\tlet inst = getInstance(child);\n\n\t\t\t\tlet prevChild = this.inst2vnode.get(inst);\n\t\t\t\tif (prevChild==null) this.mount(child);\n\t\t\t\telse this.update(child);\n\n\t\t\t\t// Mutate child to keep referential equality intact\n\t\t\t\tdata.children[i] = this.inst2vnode.get(inst);\n\t\t\t}\n\t\t}\n\n\t\tlet prev = this.inst2vnode.get(data.publicInstance);\n\n\t\t// The `updateProfileTimes` event is a faster version of `updated` and\n\t\t// is processed much quicker inside the devtools extension.\n\t\tif (!hasDataChanged(prev, vnode)) {\n\t\t\t// Always assume profiling data has changed. When we skip an event here\n\t\t\t// the devtools element picker will somehow break.\n\t\t\tthis.pending.push({\n\t\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t\t// vnode/fiber shape.\n\t\t\t\tinternalInstance: prev,\n\t\t\t\tdata,\n\t\t\t\trenderer: this.rid,\n\t\t\t\ttype: 'updateProfileTimes'\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\t// This property is only used as an id inside the devtools. The\n\t\t\t// relevant data will be read from `.data` instead which is a\n\t\t\t// normalized structure that every react release adheres to. This\n\t\t\t// makes backwards-compatibility easier instead of relying on internal\n\t\t\t// vnode/fiber shape.\n\t\t\tinternalInstance: prev,\n\t\t\tdata,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'update'\n\t\t});\n\t}\n\n\t/**\n\t * Pass a rendered tree to the devtools. At this point elements have already\n\t * unmounted, so we don't need to check for removals and only update vs mount\n\t * instead.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberRoot(vnode) {\n\t\tlet inst = getInstance(vnode);\n\n\t\tif (this.inst2vnode.has(inst)) this.update(vnode);\n\t\telse this.mount(vnode);\n\n\t\t// The devtools checks via the existance of this property if the devtools\n\t\t// profiler should be enabled or not. If it is missing from the first root\n\t\t// node the \"Profiler\" tab won't show up.\n\t\t/** @type {import('../internal').VNode} */\n\t\tlet root = null;\n\t\tif (isRoot(vnode)) {\n\n\t\t\t/** @type {*} */\n\t\t\t(vnode).treeBaseDuration = 0;\n\t\t\troot = vnode;\n\t\t}\n\t\telse {\n\t\t\t// \"rootCommitted\" always needs the actual root node for the profiler\n\t\t\t// to be able to collect timings. The `_parent` property will\n\t\t\t// point to a vnode for a root node.\n\t\t\troot = vnode;\n\t\t\twhile (root._parent!=null) {\n\t\t\t\troot = root._parent;\n\t\t\t}\n\t\t}\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: root,\n\t\t\trenderer: this.rid,\n\t\t\tdata: getData(root),\n\t\t\ttype: 'rootCommitted'\n\t\t});\n\n\t\tthis.flushPendingEvents();\n\t\treturn vnode;\n\t}\n\n\t/**\n\t * Unmount a vnode recursively. Contrary to mounting or updating unmounting needs\n\t * to push the events in parent-first order. Because `options.unmount` is\n\t * already fired in parent-first order we don't need to traverse anything here.\n\t * @param {import('../internal').VNode} vnode\n\t */\n\thandleCommitFiberUnmount(vnode) {\n\t\tlet inst = getInstance(vnode);\n\t\tthis.inst2vnode.delete(inst);\n\n\t\t// Special case when unmounting a root (most prominently caused by webpack's\n\t\t// `hot-module-reloading`). If this happens we need to unmount the virtual\n\t\t// `Fragment` we're wrapping around each root just for the devtools.\n\n\t\tthis.pending.push({\n\t\t\tinternalInstance: vnode,\n\t\t\trenderer: this.rid,\n\t\t\ttype: 'unmount'\n\t\t});\n\t}\n\n\t/**\n\t * Get the dom element by a vnode\n\t * @param {import('../internal').VNode} vnode\n\t * @returns {import('../internal').PreactElement | Text}\n\t */\n\tgetNativeFromReactElement(vnode) {\n\t\treturn vnode._dom;\n\t}\n\n\t/**\n\t * Get a vnode by a dom element\n\t * @param {import('../internal').PreactElement | Text} dom\n\t * @returns {import('../internal').VNode | null}\n\t */\n\tgetReactElementFromNative(dom) {\n\t\treturn this.inst2vnode.get(dom) || null;\n\t}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\twalkTree() {}\n\n\t// Unused, but devtools expects it to be there\n\t/* istanbul ignore next */\n\tcleanup() {}\n}\n","import { options, Component, Fragment } from 'preact';\nimport { Renderer } from './renderer';\n\n/**\n * Wrap function with generic error logging\n *\n * @param {*} fn\n * @returns\n */\nfunction catchErrors(fn) {\n\treturn function(arg) {\n\t\ttry {\n\t\t\treturn fn(arg);\n\t\t}\n\t\tcatch (e) {\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error('The react devtools encountered an error');\n\t\t\t/* istanbul ignore next */\n\t\t\tconsole.error(e); // eslint-disable-line no-console\n\t\t}\n\t};\n}\n\n/* istanbul ignore next */\nlet noop = () => undefined;\n\nexport function initDevTools() {\n\t// This global variable is injected by the devtools\n\t/** @type {import('../internal').DevtoolsWindow} */\n\tlet hook = (window).__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\tif (hook==null) return;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitRoot = noop;\n\n\t/** @type {(vnode: import('../internal').VNode) => void} */\n\tlet onCommitUnmount = noop;\n\n\t// Initialize our custom renderer\n\tlet rid = Math.random().toString(16).slice(2);\n\tlet preactRenderer = new Renderer(hook, rid);\n\n\tcatchErrors(() => {\n\t\tlet isDev = false;\n\t\ttry {\n\t\t\tisDev = process.env.NODE_ENV!=='production';\n\t\t}\n\t\tcatch (e) {}\n\n\t\t// Tell devtools which bundle type we run in\n\t\twindow.parent.postMessage({\n\t\t\tsource: 'react-devtools-detector',\n\t\t\treactBuildType: /* istanbul ignore next */ isDev\n\t\t\t\t? 'development'\n\t\t\t\t: 'production'\n\t\t}, '*');\n\n\t\tlet renderer = {\n\t\t\tbundleType: /* istanbul ignore next */ isDev ? 1 : 0,\n\t\t\tversion: '16.5.2',\n\t\t\trendererPackageName: 'preact',\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindHostInstanceByFiber(vnode) {\n\t\t\t\treturn vnode._dom;\n\t\t\t},\n\t\t\t// We don't need this, but the devtools `attachRenderer` function relys\n\t\t\t// it being there.\n\t\t\tfindFiberByHostInstance(instance) {\n\t\t\t\treturn preactRenderer.inst2vnode.get(instance) || null;\n\t\t\t}\n\t\t};\n\n\t\thook._renderers[rid] = renderer;\n\n\t\t// We can't bring our own `attachRenderer` function therefore we simply\n\t\t// prevent the devtools from overwriting our custom renderer by creating\n\t\t// a noop setter.\n\t\tObject.defineProperty(hook.helpers, rid, {\n\t\t\tget: () => preactRenderer,\n\t\t\tset: () => {\n\t\t\t\tif (!preactRenderer.connected) {\n\t\t\t\t\thelpers.markConnected();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tlet helpers = hook.helpers[rid];\n\n\t\t// Tell the devtools that we are ready to start\n\t\thook.emit('renderer-attached', {\n\t\t\tid: rid,\n\t\t\trenderer,\n\t\t\thelpers\n\t\t});\n\n\t\tonCommitRoot = catchErrors(root => {\n\t\t\t// Empty root\n\t\t\tif (root.type===Fragment && root._children.length==0) return;\n\n\t\t\tlet roots = hook.getFiberRoots(rid);\n\t\t\troot = helpers.handleCommitFiberRoot(root);\n\t\t\tif (!roots.has(root)) roots.add(root);\n\t\t});\n\n\t\tonCommitUnmount = catchErrors(vnode => {\n\t\t\thook.onCommitFiberUnmount(rid, vnode);\n\t\t});\n\t})();\n\n\t// Store (possible) previous hooks so that we don't overwrite them\n\tlet prevVNodeHook = options.vnode;\n\tlet prevCommitRoot = options._commit;\n\tlet prevBeforeUnmount = options.unmount;\n\tlet prevBeforeDiff = options._diff;\n\tlet prevAfterDiff = options.diffed;\n\n\toptions.vnode = (vnode) => {\n\t\t// Tiny performance improvement by initializing fields as doubles\n\t\t// from the start. `performance.now()` will always return a double.\n\t\t// See https://github.com/facebook/react/issues/14365\n\t\t// and https://slidr.io/bmeurer/javascript-engine-fundamentals-the-good-the-bad-and-the-ugly\n\t\tvnode.startTime = NaN;\n\t\tvnode.endTime = NaN;\n\n\t\tvnode.startTime = 0;\n\t\tvnode.endTime = -1;\n\t\tif (prevVNodeHook) prevVNodeHook(vnode);\n\t};\n\n\toptions._diff = (vnode) => {\n\t\tvnode.startTime = now();\n\t\tif (prevBeforeDiff!=null) prevBeforeDiff(vnode);\n\t};\n\n\toptions.diffed = (vnode) => {\n\t\tvnode.endTime = now();\n\t\tif (prevAfterDiff!=null) prevAfterDiff(vnode);\n\t};\n\n\toptions._commit = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevCommitRoot!=null) prevCommitRoot(vnode);\n\n\t\t// These cases are already handled by `unmount`\n\t\tif (vnode==null) return;\n\t\tonCommitRoot(vnode);\n\t});\n\n\toptions.unmount = catchErrors((vnode) => {\n\t\t// Call previously defined hook\n\t\tif (prevBeforeUnmount!=null) prevBeforeUnmount(vnode);\n\t\tonCommitUnmount(vnode);\n\t});\n\n\t// Inject tracking into setState\n\tconst setState = Component.prototype.setState;\n\tComponent.prototype.setState = function(update, callback) {\n\t\t// Duplicated in setState() but doesn't matter due to the guard.\n\t\tlet s = (this._nextState!==this.state && this._nextState) || (this._nextState = Object.assign({}, this.state));\n\n\t\t// Needed in order to check if state has changed after the tree has been committed:\n\t\tthis._prevState = Object.assign({}, s);\n\n\t\treturn setState.call(this, update, callback);\n\t};\n}\n\n/**\n * Get current timestamp in ms. Used for profiling.\n * @returns {number}\n */\nexport let now = Date.now;\n\ntry {\n\t/* istanbul ignore else */\n\tnow = performance.now.bind(performance);\n}\ncatch (e) {}\n","import { initDebug } from './debug';\nimport { initDevTools } from './devtools';\n\nif (process.env.NODE_ENV==='development') {\n\tinitDebug();\n\tinitDevTools();\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n"],"names":["loggedTypeFailures","getNodeType","vnode","type","Fragment","getDisplayName","displayName","name","setIn","obj","path","value","last","pop","parent","reduce","acc","attr","getData","c","_component","updater","Component","setState","bind","forceUpdate","setInState","prev","setInProps","props","setInContext","context","children","getChildren","duration","endTime","startTime","nodeType","ref","key","text","state","length","publicInstance","getInstance","memoizedInteractions","actualDuration","actualStartTime","treeBaseDuration","_children","filter","Boolean","isRoot","_parent","_dom","parentNode","shallowEqual","a","b","isProps","let","Object","keys","serializeVNode","attrs","prop","hasOwnProperty","toString","prototype","call","JSON","stringify","Renderer","constructor","hook","rid","pending","inst2vnode","WeakMap","connected","catchErrors","fn","arg","e","console","error","markConnected","flushPendingEvents","this","events","i","event","emit","mount","set","data","work","renderer","Array","isArray","item","stack","slice","push","update","child","inst","get","next","_prevState","hasDataChanged","handleCommitFiberRoot","has","root","handleCommitFiberUnmount","delete","getNativeFromReactElement","getReactElementFromNative","dom","walkTree","cleanup","noop","now","Date","performance","process","env","NODE_ENV","oldBeforeDiff","options","_diff","oldDiffed","diffed","oldVnode","oldCatchError","_catchError","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","oldVNode","then","promise","Error","_childDidSuspend","_root","isValid","typeSpecs","values","location","componentName","parentVNode","getClosestDomNodeParent","undefined","_lastDomChild","info","const","propTypes","m","lazyVNode","warn","forEach","typeSpecName","message","_hook","comp","property","err","deprecatedAttributes","nodeName","attributes","source","self","__source","__self","defineProperties","__hooks","hooks","_list","_callback","_args","_pendingEffects","effect","_pendingLayoutEffects","layoutEffect","indexOf","initDebug","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","onCommitRoot","onCommitUnmount","Math","random","preactRenderer","isDev","postMessage","reactBuildType","bundleType","version","rendererPackageName","findHostInstanceByFiber","findFiberByHostInstance","instance","_renderers","defineProperty","helpers","id","roots","getFiberRoots","add","onCommitFiberUnmount","prevVNodeHook","prevCommitRoot","_commit","prevBeforeUnmount","unmount","prevBeforeDiff","prevAfterDiff","NaN","callback","s","_nextState","assign","initDevTools"],"mappings":"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"}
|
@@ -0,0 +1,681 @@
|
|
1
|
+
import { checkPropTypes } from 'prop-types';
|
2
|
+
import { Fragment, options, toChildArray, Component } from 'preact';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Get the type/category of a vnode
|
6
|
+
* @param {import('../internal').VNode} vnode
|
7
|
+
* @returns {import('../internal').NodeType}
|
8
|
+
*/
|
9
|
+
|
10
|
+
function getNodeType(vnode) {
|
11
|
+
if (vnode.type === Fragment) { return 'Wrapper'; }else if (typeof vnode.type === 'function') { return 'Composite'; }else if (typeof vnode.type === 'string') { return 'Native'; }
|
12
|
+
return 'Text';
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Get human readable name of the component/dom element
|
16
|
+
* @param {import('../internal').VNode} vnode
|
17
|
+
* @returns {string}
|
18
|
+
*/
|
19
|
+
|
20
|
+
function getDisplayName(vnode) {
|
21
|
+
if (vnode.type === Fragment) { return 'Fragment'; }else if (typeof vnode.type === 'function') { return vnode.type.displayName || vnode.type.name; }else if (typeof vnode.type === 'string') { return vnode.type; }
|
22
|
+
return '#text';
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* Deeply mutate a property by walking down an array of property keys
|
26
|
+
* @param {object} obj
|
27
|
+
* @param {Array<string | number>} path
|
28
|
+
* @param {any} value
|
29
|
+
*/
|
30
|
+
|
31
|
+
function setIn(obj, path, value) {
|
32
|
+
var last = path.pop();
|
33
|
+
var parent = path.reduce(function (acc, attr) { return acc ? acc[attr] : null; }, obj);
|
34
|
+
|
35
|
+
if (parent) {
|
36
|
+
parent[last] = value;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
/**
|
40
|
+
* Get devtools compatible data from vnode
|
41
|
+
* @param {import('../internal').VNode} vnode
|
42
|
+
* @returns {import('../internal').DevtoolData}
|
43
|
+
*/
|
44
|
+
|
45
|
+
function getData(vnode) {
|
46
|
+
var c = vnode._component;
|
47
|
+
/** @type {import('../internal').DevtoolsUpdater | null} */
|
48
|
+
|
49
|
+
var updater = null;
|
50
|
+
|
51
|
+
if (c != null) {
|
52
|
+
// These functions will be called when the user changes state, props or
|
53
|
+
// context values via the devtools ui panel
|
54
|
+
updater = {
|
55
|
+
setState: c.setState.bind(c),
|
56
|
+
forceUpdate: c.forceUpdate.bind(c),
|
57
|
+
|
58
|
+
setInState: function setInState(path, value) {
|
59
|
+
c.setState(function (prev) {
|
60
|
+
setIn(prev, path, value);
|
61
|
+
return prev;
|
62
|
+
});
|
63
|
+
},
|
64
|
+
|
65
|
+
setInProps: function setInProps(path, value) {
|
66
|
+
setIn(vnode.props, path, value);
|
67
|
+
c.setState({});
|
68
|
+
},
|
69
|
+
|
70
|
+
setInContext: function setInContext(path, value) {
|
71
|
+
setIn(c.context, path, value);
|
72
|
+
c.setState({});
|
73
|
+
}
|
74
|
+
|
75
|
+
};
|
76
|
+
}
|
77
|
+
|
78
|
+
var children = getChildren(vnode);
|
79
|
+
var duration = vnode.endTime - vnode.startTime;
|
80
|
+
return {
|
81
|
+
nodeType: getNodeType(vnode),
|
82
|
+
type: vnode.type,
|
83
|
+
name: getDisplayName(vnode),
|
84
|
+
ref: vnode.ref || null,
|
85
|
+
key: vnode.key || null,
|
86
|
+
updater: updater,
|
87
|
+
text: vnode.text,
|
88
|
+
state: c != null ? c.state : null,
|
89
|
+
props: vnode.props,
|
90
|
+
// The devtools inline text children if they are the only child
|
91
|
+
children: vnode.text == null ? children != null && children.length == 1 && children[0].text != null ? children[0].text : children : null,
|
92
|
+
publicInstance: getInstance(vnode),
|
93
|
+
memoizedInteractions: [],
|
94
|
+
// Profiler data
|
95
|
+
actualDuration: duration,
|
96
|
+
actualStartTime: vnode.startTime,
|
97
|
+
treeBaseDuration: duration
|
98
|
+
};
|
99
|
+
}
|
100
|
+
/**
|
101
|
+
* Get all rendered vnode children as an array. Moreover we need to filter
|
102
|
+
* out `null` or other falsy children.
|
103
|
+
* @param {import('../internal').VNode} vnode
|
104
|
+
* @returns {import('../internal').VNode[]}
|
105
|
+
*/
|
106
|
+
|
107
|
+
function getChildren(vnode) {
|
108
|
+
var c = vnode._component;
|
109
|
+
|
110
|
+
if (c == null) {
|
111
|
+
return vnode._children != null ? vnode._children.filter(Boolean) : [];
|
112
|
+
}
|
113
|
+
|
114
|
+
return !Array.isArray(c._prevVNode) && c._prevVNode != null ? [c._prevVNode] : null;
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Check if a vnode is a root node
|
118
|
+
* @param {import('../internal').VNode} vnode
|
119
|
+
* @returns {boolean}
|
120
|
+
*/
|
121
|
+
|
122
|
+
function isRoot(vnode) {
|
123
|
+
// Timings of root vnodes will never be set
|
124
|
+
return vnode.type === Fragment && vnode.endTime == -1;
|
125
|
+
}
|
126
|
+
/**
|
127
|
+
* Cache a vnode by its instance and retrieve previous vnodes by the next
|
128
|
+
* instance.
|
129
|
+
*
|
130
|
+
* We need this to be able to identify the previous vnode of a given instance.
|
131
|
+
* For components we want to check if we already rendered it and use the class
|
132
|
+
* instance as key. For html elements we use the dom node as key.
|
133
|
+
*
|
134
|
+
* @param {import('../internal').VNode} vnode
|
135
|
+
* @returns {import('../internal').Component | import('../internal').PreactElement | Text | null}
|
136
|
+
*/
|
137
|
+
|
138
|
+
function getInstance(vnode) {
|
139
|
+
// Use the parent element as instance for root nodes
|
140
|
+
if (isRoot(vnode)) {
|
141
|
+
// Edge case: When the tree only consists of components that have not rendered
|
142
|
+
// anything into the DOM we revert to using the vnode as instance.
|
143
|
+
return vnode._children.length > 0 && vnode._children[0]._dom != null ?
|
144
|
+
/** @type {import('../internal').PreactElement | null} */
|
145
|
+
vnode._children[0]._dom.parentNode : vnode;
|
146
|
+
}
|
147
|
+
|
148
|
+
if (vnode._component != null) { return vnode._component; }
|
149
|
+
if (vnode.type === Fragment) { return vnode.props; }
|
150
|
+
return vnode._dom;
|
151
|
+
}
|
152
|
+
/**
|
153
|
+
* Compare two objects
|
154
|
+
* @param {object} a
|
155
|
+
* @param {object} b
|
156
|
+
* @param {boolean} [isProps]
|
157
|
+
* @returns {boolean}
|
158
|
+
*/
|
159
|
+
|
160
|
+
function shallowEqual(a, b, isProps) {
|
161
|
+
if (a == null || b == null) { return false; }
|
162
|
+
|
163
|
+
for (var key in a) {
|
164
|
+
if (isProps && key == 'children' && b[key] != null) { continue; }
|
165
|
+
if (a[key] !== b[key]) { return false; }
|
166
|
+
}
|
167
|
+
|
168
|
+
if (Object.keys(a).length !== Object.keys(b).length) { return false; }
|
169
|
+
return true;
|
170
|
+
}
|
171
|
+
/**
|
172
|
+
* Check if a vnode was actually updated
|
173
|
+
* @param {import('../internal').VNode} next
|
174
|
+
* @param {import('../internal').VNode} prev
|
175
|
+
* @returns {boolean}
|
176
|
+
*/
|
177
|
+
|
178
|
+
function hasDataChanged(prev, next) {
|
179
|
+
return prev.props !== next.props && !shallowEqual(prev.props, next.props, true) || prev._component != null && !shallowEqual(next._component._prevState, next._component.state) || prev._dom !== next._dom || prev.ref !== next.ref;
|
180
|
+
}
|
181
|
+
/**
|
182
|
+
* Check if a the profiling data ahs changed between vnodes
|
183
|
+
* @param {import('../internal').VNode} next
|
184
|
+
* @param {import('../internal').VNode} prev
|
185
|
+
* @returns {boolean}
|
186
|
+
*/
|
187
|
+
|
188
|
+
function hasProfileDataChanged(prev, next) {
|
189
|
+
return prev.startTime !== next.startTime || prev.endTime !== next.endTime;
|
190
|
+
}
|
191
|
+
|
192
|
+
function initDebug() {
|
193
|
+
/* eslint-disable no-console */
|
194
|
+
var oldBeforeDiff = options.diff;
|
195
|
+
|
196
|
+
options.diff = function (vnode) {
|
197
|
+
var type = vnode.type;
|
198
|
+
var props = vnode.props;
|
199
|
+
var children = props && props.children;
|
200
|
+
|
201
|
+
if (type === undefined) {
|
202
|
+
throw new Error('Undefined component passed to createElement()\n' + serializeVNode(vnode));
|
203
|
+
}
|
204
|
+
|
205
|
+
if (vnode.ref !== undefined && typeof vnode.ref !== 'function' && typeof vnode.ref !== 'object' && !('$$typeof' in vnode) // allow string refs when preact-compat is installed
|
206
|
+
) {
|
207
|
+
throw new Error("Component's \"ref\" property should be a function, or an object created " + "by createRef(), but got [" + (typeof vnode.ref) + "] instead\n" + serializeVNode(vnode));
|
208
|
+
} // Check prop-types if available
|
209
|
+
|
210
|
+
|
211
|
+
if (typeof vnode.type === 'function' && vnode.type.propTypes) {
|
212
|
+
checkPropTypes(vnode.type.propTypes, vnode.props, getDisplayName(vnode), serializeVNode(vnode));
|
213
|
+
}
|
214
|
+
|
215
|
+
var keys = [];
|
216
|
+
|
217
|
+
for (var i = 0, list = toChildArray(children); i < list.length; i += 1) {
|
218
|
+
var deepChild = list[i];
|
219
|
+
|
220
|
+
if (!deepChild || deepChild.key == null) { continue; }
|
221
|
+
var key = deepChild.key;
|
222
|
+
|
223
|
+
if (keys.indexOf(key) !== -1) {
|
224
|
+
console.error('Following component has two or more children with the ' + "same key attribute: \"" + key + "\". This may cause glitches and misbehavior " + 'in rendering process. Component: \n\n' + serializeVNode(vnode)); // Break early to not spam the console
|
225
|
+
|
226
|
+
break;
|
227
|
+
}
|
228
|
+
|
229
|
+
keys.push(key);
|
230
|
+
}
|
231
|
+
|
232
|
+
if (oldBeforeDiff) { oldBeforeDiff(vnode); }
|
233
|
+
};
|
234
|
+
}
|
235
|
+
/**
|
236
|
+
* Serialize a vnode tree to a string
|
237
|
+
* @param {import('./internal').VNode} vnode
|
238
|
+
* @returns {string}
|
239
|
+
*/
|
240
|
+
|
241
|
+
function serializeVNode(vnode) {
|
242
|
+
var props = vnode.props;
|
243
|
+
var name = getDisplayName(vnode);
|
244
|
+
var attrs = '';
|
245
|
+
|
246
|
+
if (props) {
|
247
|
+
for (var prop in props) {
|
248
|
+
if (props.hasOwnProperty(prop) && prop !== 'children') {
|
249
|
+
var value = props[prop]; // If it is an object but doesn't have toString(), use Object.toString
|
250
|
+
|
251
|
+
if (typeof value === 'function') {
|
252
|
+
value = "function " + (value.displayName || value.name) + "() {}";
|
253
|
+
}
|
254
|
+
|
255
|
+
value = Object(value) === value && !value.toString ? Object.prototype.toString.call(value) : value + '';
|
256
|
+
attrs += " " + prop + "=" + (JSON.stringify(value));
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
var children = props.children;
|
262
|
+
return ("<" + name + attrs + (children && children.length ? '>..</' + name + '>' : ' />'));
|
263
|
+
}
|
264
|
+
|
265
|
+
/**
|
266
|
+
* Custom renderer tailored for Preact. It converts updated vnode trees
|
267
|
+
* to events the devtools can understand.
|
268
|
+
* @class Renderer
|
269
|
+
*/
|
270
|
+
|
271
|
+
var Renderer = function Renderer(hook, rid) {
|
272
|
+
/** @type {string} */
|
273
|
+
this.rid = rid;
|
274
|
+
this.hook = hook;
|
275
|
+
/** @type {Array<import('../internal').DevtoolsEvent>} */
|
276
|
+
|
277
|
+
this.pending = [];
|
278
|
+
/**
|
279
|
+
* Store the instance of a vnode. This will be later used to decide if a
|
280
|
+
* vnode needs to be mounted or updated. For components the instance refers
|
281
|
+
* to the actuall class instance whereas for dom nodes it refers to the
|
282
|
+
* underlying dom element.
|
283
|
+
* @type {WeakMap<import('../internal').Component | import('../internal').PreactElement | HTMLElement | Text, import('../internal').VNode>}
|
284
|
+
*/
|
285
|
+
|
286
|
+
this.inst2vnode = new WeakMap();
|
287
|
+
this.connected = false;
|
288
|
+
};
|
289
|
+
/**
|
290
|
+
* Mark the connection status as ready so that we can proceed
|
291
|
+
* to actually flush events.
|
292
|
+
*/
|
293
|
+
|
294
|
+
|
295
|
+
Renderer.prototype.markConnected = function markConnected () {
|
296
|
+
this.connected = true;
|
297
|
+
this.flushPendingEvents();
|
298
|
+
};
|
299
|
+
/**
|
300
|
+
* Flush all queued events
|
301
|
+
*/
|
302
|
+
|
303
|
+
|
304
|
+
Renderer.prototype.flushPendingEvents = function flushPendingEvents () {
|
305
|
+
if (!this.connected) { return; }
|
306
|
+
var events = this.pending;
|
307
|
+
this.pending = [];
|
308
|
+
|
309
|
+
for (var i = 0; i < events.length; i++) {
|
310
|
+
var event = events[i];
|
311
|
+
this.hook.emit(event.type, event);
|
312
|
+
}
|
313
|
+
};
|
314
|
+
/**
|
315
|
+
* Recursively mount a vnode tree. Note that the devtools expectes the tree to
|
316
|
+
* be mounted from the bottom up, otherwise the order will be messed up.
|
317
|
+
* Therefore we mount children prior to mounting the vnode itself.
|
318
|
+
* @param {import('../internal').VNode} vnode
|
319
|
+
*/
|
320
|
+
|
321
|
+
|
322
|
+
Renderer.prototype.mount = function mount (vnode) {
|
323
|
+
this.inst2vnode.set(getInstance(vnode), vnode);
|
324
|
+
var data = getData(vnode);
|
325
|
+
/** @type {Array<import('../internal').DevtoolsEvent>} */
|
326
|
+
|
327
|
+
var work = [{
|
328
|
+
internalInstance: vnode,
|
329
|
+
data: data,
|
330
|
+
renderer: this.rid,
|
331
|
+
type: 'mount'
|
332
|
+
}]; // Children must be mounted first
|
333
|
+
|
334
|
+
if (Array.isArray(data.children)) {
|
335
|
+
var stack = data.children.slice();
|
336
|
+
var item;
|
337
|
+
|
338
|
+
while ((item = stack.pop()) != null) {
|
339
|
+
var children = getChildren(item);
|
340
|
+
stack.push.apply(stack, children);
|
341
|
+
this.inst2vnode.set(getInstance(item), item);
|
342
|
+
var data$1 = getData(item);
|
343
|
+
work.push({
|
344
|
+
internalInstance: item,
|
345
|
+
data: data$1,
|
346
|
+
renderer: this.rid,
|
347
|
+
type: 'mount'
|
348
|
+
});
|
349
|
+
}
|
350
|
+
}
|
351
|
+
|
352
|
+
for (var i = work.length; --i >= 0;) {
|
353
|
+
this.pending.push(work[i]);
|
354
|
+
} // Special event if we have a root
|
355
|
+
|
356
|
+
|
357
|
+
if (isRoot(vnode)) {
|
358
|
+
this.pending.push({
|
359
|
+
internalInstance: vnode,
|
360
|
+
data: data,
|
361
|
+
renderer: this.rid,
|
362
|
+
type: 'root'
|
363
|
+
});
|
364
|
+
}
|
365
|
+
};
|
366
|
+
/**
|
367
|
+
* Update a vnode tree
|
368
|
+
* @param {import('../internal').VNode} vnode
|
369
|
+
*/
|
370
|
+
|
371
|
+
|
372
|
+
Renderer.prototype.update = function update (vnode) {
|
373
|
+
var data = getData(vnode); // Children must be updated first
|
374
|
+
|
375
|
+
if (Array.isArray(data.children)) {
|
376
|
+
for (var i = 0; i < data.children.length; i++) {
|
377
|
+
var child = data.children[i];
|
378
|
+
var inst = getInstance(child);
|
379
|
+
var prevChild = this.inst2vnode.get(inst);
|
380
|
+
if (prevChild == null) { this.mount(child); }else { this.update(child); } // Mutate child to keep referential equality intact
|
381
|
+
|
382
|
+
data.children[i] = this.inst2vnode.get(inst);
|
383
|
+
}
|
384
|
+
}
|
385
|
+
|
386
|
+
var prev = this.inst2vnode.get(data.publicInstance); // The `updateProfileTimes` event is a faster version of `updated` and
|
387
|
+
// is processed much quicker inside the devtools extension.
|
388
|
+
|
389
|
+
if (!hasDataChanged(prev, vnode) && hasProfileDataChanged(prev, vnode)) {
|
390
|
+
this.pending.push({
|
391
|
+
// This property is only used as an id inside the devtools. The
|
392
|
+
// relevant data will be read from `.data` instead which is a
|
393
|
+
// normalized structure that every react release adheres to. This
|
394
|
+
// makes backwards-compatibility easier instead of relying on internal
|
395
|
+
// vnode/fiber shape.
|
396
|
+
internalInstance: prev,
|
397
|
+
data: data,
|
398
|
+
renderer: this.rid,
|
399
|
+
type: 'updateProfileTimes'
|
400
|
+
});
|
401
|
+
return;
|
402
|
+
}
|
403
|
+
|
404
|
+
this.pending.push({
|
405
|
+
// This property is only used as an id inside the devtools. The
|
406
|
+
// relevant data will be read from `.data` instead which is a
|
407
|
+
// normalized structure that every react release adheres to. This
|
408
|
+
// makes backwards-compatibility easier instead of relying on internal
|
409
|
+
// vnode/fiber shape.
|
410
|
+
internalInstance: prev,
|
411
|
+
data: data,
|
412
|
+
renderer: this.rid,
|
413
|
+
type: 'update'
|
414
|
+
});
|
415
|
+
};
|
416
|
+
/**
|
417
|
+
* Pass a rendered tree to the devtools. At this point elements have already
|
418
|
+
* unmounted, so we don't need to check for removals and only update vs mount
|
419
|
+
* instead.
|
420
|
+
* @param {import('../internal').VNode} vnode
|
421
|
+
*/
|
422
|
+
|
423
|
+
|
424
|
+
Renderer.prototype.handleCommitFiberRoot = function handleCommitFiberRoot (vnode) {
|
425
|
+
var inst = getInstance(vnode);
|
426
|
+
if (this.inst2vnode.has(inst)) { this.update(vnode); }else { this.mount(vnode); } // The devtools checks via the existance of this property if the devtools
|
427
|
+
// profiler should be enabled or not. If it is missing from the first root
|
428
|
+
// node the "Profiler" tab won't show up.
|
429
|
+
|
430
|
+
/** @type {import('../internal').VNode} */
|
431
|
+
|
432
|
+
var root = null;
|
433
|
+
|
434
|
+
if (isRoot(vnode)) {
|
435
|
+
/** @type {*} */
|
436
|
+
vnode.treeBaseDuration = 0;
|
437
|
+
root = vnode;
|
438
|
+
} else {
|
439
|
+
// "rootCommitted" always needs the actual root node for the profiler
|
440
|
+
// to be able to collect timings. The `_ancestorComponent` property will
|
441
|
+
// point to a vnode for a root node.
|
442
|
+
root = vnode._component;
|
443
|
+
|
444
|
+
while (root._ancestorComponent != null) {
|
445
|
+
root = root._ancestorComponent;
|
446
|
+
}
|
447
|
+
}
|
448
|
+
|
449
|
+
this.pending.push({
|
450
|
+
internalInstance: root,
|
451
|
+
renderer: this.rid,
|
452
|
+
data: getData(root),
|
453
|
+
type: 'rootCommitted'
|
454
|
+
});
|
455
|
+
this.flushPendingEvents();
|
456
|
+
return vnode;
|
457
|
+
};
|
458
|
+
/**
|
459
|
+
* Unmount a vnode recursively. Contrary to mounting or updating unmounting needs
|
460
|
+
* to push the events in parent-first order. Because `options.unmount` is
|
461
|
+
* already fired in parent-first order we don't need to traverse anything here.
|
462
|
+
* @param {import('../internal').VNode} vnode
|
463
|
+
*/
|
464
|
+
|
465
|
+
|
466
|
+
Renderer.prototype.handleCommitFiberUnmount = function handleCommitFiberUnmount (vnode) {
|
467
|
+
var inst = getInstance(vnode);
|
468
|
+
this.inst2vnode.delete(inst); // Special case when unmounting a root (most prominently caused by webpack's
|
469
|
+
// `hot-module-reloading`). If this happens we need to unmount the virtual
|
470
|
+
// `Fragment` we're wrapping around each root just for the devtools.
|
471
|
+
|
472
|
+
this.pending.push({
|
473
|
+
internalInstance: vnode,
|
474
|
+
renderer: this.rid,
|
475
|
+
type: 'unmount'
|
476
|
+
});
|
477
|
+
};
|
478
|
+
/**
|
479
|
+
* Get the dom element by a vnode
|
480
|
+
* @param {import('../internal').VNode} vnode
|
481
|
+
* @returns {import('../internal').PreactElement | Text}
|
482
|
+
*/
|
483
|
+
|
484
|
+
|
485
|
+
Renderer.prototype.getNativeFromReactElement = function getNativeFromReactElement (vnode) {
|
486
|
+
return vnode._dom;
|
487
|
+
};
|
488
|
+
/**
|
489
|
+
* Get a vnode by a dom element
|
490
|
+
* @param {import('../internal').PreactElement | Text} dom
|
491
|
+
* @returns {import('../internal').VNode | null}
|
492
|
+
*/
|
493
|
+
|
494
|
+
|
495
|
+
Renderer.prototype.getReactElementFromNative = function getReactElementFromNative (dom) {
|
496
|
+
return this.inst2vnode.get(dom) || null;
|
497
|
+
}; // Unused, but devtools expects it to be there
|
498
|
+
|
499
|
+
/* istanbul ignore next */
|
500
|
+
|
501
|
+
|
502
|
+
Renderer.prototype.walkTree = function walkTree () {}; // Unused, but devtools expects it to be there
|
503
|
+
|
504
|
+
/* istanbul ignore next */
|
505
|
+
|
506
|
+
|
507
|
+
Renderer.prototype.cleanup = function cleanup () {};
|
508
|
+
|
509
|
+
/**
|
510
|
+
* Wrap function with generic error logging
|
511
|
+
*
|
512
|
+
* @param {*} fn
|
513
|
+
* @returns
|
514
|
+
*/
|
515
|
+
|
516
|
+
function catchErrors(fn) {
|
517
|
+
return function (arg) {
|
518
|
+
try {
|
519
|
+
return fn(arg);
|
520
|
+
} catch (e) {
|
521
|
+
/* istanbul ignore next */
|
522
|
+
console.error('The react devtools encountered an error');
|
523
|
+
/* istanbul ignore next */
|
524
|
+
|
525
|
+
console.error(e); // eslint-disable-line no-console
|
526
|
+
}
|
527
|
+
};
|
528
|
+
}
|
529
|
+
/* istanbul ignore next */
|
530
|
+
|
531
|
+
|
532
|
+
var noop = function () { return undefined; };
|
533
|
+
|
534
|
+
function initDevTools() {
|
535
|
+
// This global variable is injected by the devtools
|
536
|
+
|
537
|
+
/** @type {import('../internal').DevtoolsWindow} */
|
538
|
+
var hook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
539
|
+
if (hook == null) { return; }
|
540
|
+
/** @type {(vnode: import('../internal').VNode) => void} */
|
541
|
+
|
542
|
+
var onCommitRoot = noop;
|
543
|
+
/** @type {(vnode: import('../internal').VNode) => void} */
|
544
|
+
|
545
|
+
var onCommitUnmount = noop; // Initialize our custom renderer
|
546
|
+
|
547
|
+
var rid = Math.random().toString(16).slice(2);
|
548
|
+
var preactRenderer = new Renderer(hook, rid);
|
549
|
+
catchErrors(function () {
|
550
|
+
var isDev = false;
|
551
|
+
|
552
|
+
try {
|
553
|
+
isDev = process.env.NODE_ENV !== 'production';
|
554
|
+
} catch (e) {} // Tell devtools which bundle type we run in
|
555
|
+
|
556
|
+
|
557
|
+
window.parent.postMessage({
|
558
|
+
source: 'react-devtools-detector',
|
559
|
+
reactBuildType:
|
560
|
+
/* istanbul ignore next */
|
561
|
+
isDev ? 'development' : 'production'
|
562
|
+
}, '*');
|
563
|
+
var renderer = {
|
564
|
+
bundleType:
|
565
|
+
/* istanbul ignore next */
|
566
|
+
isDev ? 1 : 0,
|
567
|
+
version: '16.5.2',
|
568
|
+
rendererPackageName: 'preact',
|
569
|
+
|
570
|
+
// We don't need this, but the devtools `attachRenderer` function relys
|
571
|
+
// it being there.
|
572
|
+
findHostInstanceByFiber: function findHostInstanceByFiber(vnode) {
|
573
|
+
return vnode._dom;
|
574
|
+
},
|
575
|
+
|
576
|
+
// We don't need this, but the devtools `attachRenderer` function relys
|
577
|
+
// it being there.
|
578
|
+
findFiberByHostInstance: function findFiberByHostInstance(instance) {
|
579
|
+
return preactRenderer.inst2vnode.get(instance) || null;
|
580
|
+
}
|
581
|
+
|
582
|
+
};
|
583
|
+
hook._renderers[rid] = renderer; // We can't bring our own `attachRenderer` function therefore we simply
|
584
|
+
// prevent the devtools from overwriting our custom renderer by creating
|
585
|
+
// a noop setter.
|
586
|
+
|
587
|
+
Object.defineProperty(hook.helpers, rid, {
|
588
|
+
get: function () { return preactRenderer; },
|
589
|
+
set: function () {
|
590
|
+
if (!preactRenderer.connected) {
|
591
|
+
helpers.markConnected();
|
592
|
+
}
|
593
|
+
}
|
594
|
+
});
|
595
|
+
var helpers = hook.helpers[rid]; // Tell the devtools that we are ready to start
|
596
|
+
|
597
|
+
hook.emit('renderer-attached', {
|
598
|
+
id: rid,
|
599
|
+
renderer: renderer,
|
600
|
+
helpers: helpers
|
601
|
+
});
|
602
|
+
onCommitRoot = catchErrors(function (root) {
|
603
|
+
// Empty root
|
604
|
+
if (root.type === Fragment && root._children.length == 0) { return; }
|
605
|
+
var roots = hook.getFiberRoots(rid);
|
606
|
+
root = helpers.handleCommitFiberRoot(root);
|
607
|
+
if (!roots.has(root)) { roots.add(root); }
|
608
|
+
});
|
609
|
+
onCommitUnmount = catchErrors(function (vnode) {
|
610
|
+
hook.onCommitFiberUnmount(rid, vnode);
|
611
|
+
});
|
612
|
+
})(); // Store (possible) previous hooks so that we don't overwrite them
|
613
|
+
|
614
|
+
var prevVNodeHook = options.vnode;
|
615
|
+
var prevCommitRoot = options.commit;
|
616
|
+
var prevBeforeUnmount = options.unmount;
|
617
|
+
var prevBeforeDiff = options.diff;
|
618
|
+
var prevAfterDiff = options.diffed;
|
619
|
+
|
620
|
+
options.vnode = function (vnode) {
|
621
|
+
// Tiny performance improvement by initializing fields as doubles
|
622
|
+
// from the start. `performance.now()` will always return a double.
|
623
|
+
// See https://github.com/facebook/react/issues/14365
|
624
|
+
// and https://slidr.io/bmeurer/javascript-engine-fundamentals-the-good-the-bad-and-the-ugly
|
625
|
+
vnode.startTime = NaN;
|
626
|
+
vnode.endTime = NaN;
|
627
|
+
vnode.startTime = 0;
|
628
|
+
vnode.endTime = -1;
|
629
|
+
if (prevVNodeHook) { prevVNodeHook(vnode); }
|
630
|
+
};
|
631
|
+
|
632
|
+
options.diff = function (vnode) {
|
633
|
+
vnode.startTime = now();
|
634
|
+
if (prevBeforeDiff != null) { prevBeforeDiff(vnode); }
|
635
|
+
};
|
636
|
+
|
637
|
+
options.diffed = function (vnode) {
|
638
|
+
vnode.endTime = now();
|
639
|
+
if (prevAfterDiff != null) { prevAfterDiff(vnode); }
|
640
|
+
};
|
641
|
+
|
642
|
+
options.commit = catchErrors(function (vnode) {
|
643
|
+
// Call previously defined hook
|
644
|
+
if (prevCommitRoot != null) { prevCommitRoot(vnode); } // These cases are already handled by `unmount`
|
645
|
+
|
646
|
+
if (vnode == null) { return; }
|
647
|
+
onCommitRoot(vnode);
|
648
|
+
});
|
649
|
+
options.unmount = catchErrors(function (vnode) {
|
650
|
+
// Call previously defined hook
|
651
|
+
if (prevBeforeUnmount != null) { prevBeforeUnmount(vnode); }
|
652
|
+
onCommitUnmount(vnode);
|
653
|
+
}); // Inject tracking into setState
|
654
|
+
|
655
|
+
var setState = Component.prototype.setState;
|
656
|
+
|
657
|
+
Component.prototype.setState = function (update, callback) {
|
658
|
+
// Duplicated in setState() but doesn't matter due to the guard.
|
659
|
+
var s = this._nextState !== this.state && this._nextState || (this._nextState = Object.assign({}, this.state)); // Needed in order to check if state has changed after the tree has been committed:
|
660
|
+
|
661
|
+
this._prevState = Object.assign({}, s);
|
662
|
+
return setState.call(this, update, callback);
|
663
|
+
};
|
664
|
+
}
|
665
|
+
/**
|
666
|
+
* Get current timestamp in ms. Used for profiling.
|
667
|
+
* @returns {number}
|
668
|
+
*/
|
669
|
+
|
670
|
+
var now = Date.now;
|
671
|
+
|
672
|
+
try {
|
673
|
+
/* istanbul ignore else */
|
674
|
+
now = performance.now.bind(performance);
|
675
|
+
} catch (e) {}
|
676
|
+
|
677
|
+
if (process.env.NODE_ENV === 'development') {
|
678
|
+
initDebug();
|
679
|
+
initDevTools();
|
680
|
+
}
|
681
|
+
//# sourceMappingURL=debug.mjs.map
|