From e7dbbd907d1ac602c807d09bab60e69a8262af50 Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 21 Oct 2024 10:46:04 +0000 Subject: [PATCH] fix chart css --- dashboard/dist/index.971f1a07.css | 2 ++ dashboard/dist/index.971f1a07.css.map | 1 + dashboard/dist/index.f38e4744.js | 2 ++ dashboard/dist/index.f38e4744.js.map | 1 + dashboard/dist/index.html | 2 +- dashboard/main.css | 4 ++-- 6 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 dashboard/dist/index.971f1a07.css create mode 100644 dashboard/dist/index.971f1a07.css.map create mode 100644 dashboard/dist/index.f38e4744.js create mode 100644 dashboard/dist/index.f38e4744.js.map diff --git a/dashboard/dist/index.971f1a07.css b/dashboard/dist/index.971f1a07.css new file mode 100644 index 0000000..207b455 --- /dev/null +++ b/dashboard/dist/index.971f1a07.css @@ -0,0 +1,2 @@ +*,:after,:before{box-sizing:border-box}.debug *{outline:1px solid red}.contain{max-width:70em;transition:opacity .2 ease;margin:0 auto;padding:2em .5em}html{font-family:monospace;font-size:16px}body{margin:0;overflow-y:scroll}.static{z-index:9000;background-color:#fff;border-bottom:1px solid #ccc;position:sticky;top:0;left:0;right:0;box-shadow:-1px 13px 8px 3px #fff}a{color:#000}.theme-dark a{color:#fff}.text-lg{font-size:1.3rem}@media (max-width:50em){#pageviews-chart{overflow-x:scroll}.charts-css{min-width:150vw}.text-lg{font-size:1.15rem}}ul,ol{margin-left:0;padding-left:0}li{word-break:break-word;padding-top:.25em;padding-bottom:.25em;list-style-type:none;display:block}select{margin-bottom:2em;padding:.5em 1em;display:inline-block}.favicon{height:1rem;width:1rem;margin-right:.5em}.hidden{display:none}.opaque{opacity:.9}.grid{display:flex}.grid>*{padding:.25rem}.w-50{width:50%}.w-50-lg{width:100%}@media (max-width:70em){.w-50{width:100%}}@media (min-width:60em){.grid-lg{display:flex}.w-50-lg{width:50%}}.filterable:before{content:"";height:.5em;bottom:-.4em;left:0;right:var(--data-percentage);background-color:#000;display:inline-block;position:absolute}.filterable{height:1.4em;text-overflow:ellipsis;word-break:break-all;border-bottom:1px dotted #ccc;margin-bottom:.5em;padding:0 .25em;font-weight:700;line-height:1.3;position:relative;overflow:hidden}.filterable.active{background:#fe1}.theme-dark .filterable.active,.theme-dark .filterable:hover{color:#000}.filterable.active:not(.static-filter){padding-left:2em}.filterable:not(.static-filter).active:after{height:100%;width:1.8em;content:"[x]";display:block;position:absolute;top:0;bottom:0;left:0;background-color:#fff!important}.filterable:hover,.filterable:focus,.filterable:active{cursor:pointer;background:#fe1;border-bottom:1px dotted #ccc;outline:none;text-decoration:underline}.opaque .filterable,.opaque .filterable,.opaque .filterable{background:#fe1}.opaque .filterable:hover,.opaque .filterable:focus,.opaque .filterable:active{background:#ff7b001a}.select-timeframe,.select-resolution{cursor:pointer;border-bottom:1px dotted #000;outline:none;display:inline-block}#filters{z-index:100;max-width:40em;background-color:#fafafa;padding:.25em;font-size:.8em;position:fixed;top:.5em;right:.5em}@media (max-width:40em){#filters{max-width:100%}}.pad{padding:.5em}#notice{max-width:40em;border:1px solid #000;margin:1em auto;padding:1em .5em;position:relative}#notice>span{position:absolute;top:.5em;right:.5em}details{margin-top:1em}.visitor{width:1em;height:1em;display:inline-block}.pageview{border-bottom:1px dotted #000;margin:0;padding:.5em 0}.pageview p{margin:0;padding:0}@media (max-width:40em){.charts-css.line .data{display:none}}#pageviews-chart{margin-top:1em;margin-bottom:1em}.charts-css{--color:#222;height:25rem;margin:0 auto;padding:1em 8em 4em;position:relative;overflow:hidden}.charts-css tr{position:relative}.charts-css td{color:#fff}.charts-css.line .data{color:#333}.charts-css tr:hover td{background:#333!important}.charts-css tr:hover .tooltip{visibility:visible;opacity:1}.active{border-bottom:2px solid #000}.charts-css .tooltip{position:absolute;bottom:-4em;transition:none!important}.charts-css .tooltip:after{display:none}@media (max-width:70em){.charts-css{padding-left:0;padding-right:0}.charts-css tr{position:initial}.charts-css.column tbody tr,.charts-css.column tbody tr td{position:initial!important}.charts-css .tooltip{bottom:0}.charts-css.column tbody tr td .data{display:none}}.stats{padding-top:1em;padding-bottom:1em}h1,h2,h3,h4,h5,h6{font-size:1em}.views{min-width:2.5em;display:inline-block}.loading{opacity:.75;transition:opacity .3s}.dot{height:.5em;width:.5em;vertical-align:middle;border-radius:50%;display:inline-block}.live-dot{height:.5em;width:.5em;vertical-align:middle;background:#20ff58;border-radius:50%;display:inline-block}#live-pages{min-height:10em}.search{width:100%;border:1px solid #ccc;border-radius:4px;padding:1em;font-size:1.1em}.theme-toggle{float:right;-webkit-user-select:none;user-select:none;padding:1em}.theme-dark{color:#fff;background:#111} +/*# sourceMappingURL=index.971f1a07.css.map */ diff --git a/dashboard/dist/index.971f1a07.css.map b/dashboard/dist/index.971f1a07.css.map new file mode 100644 index 0000000..1e54b5a --- /dev/null +++ b/dashboard/dist/index.971f1a07.css.map @@ -0,0 +1 @@ +{"mappings":"ACAA,uCAGA,+BAGA,kFAOA,0CAIA,gCAIA,+IAWA,aAGA,yBAIA,0BAGA,wBACE,mCAGA,4BAGA,4BAMF,mCAIA,mGAOA,+DAMA,kDAMA,qBAIA,mBAKA,mBAGA,uBAIA,gBAGA,oBAGA,wBACE,kBAIF,wBACE,sBAGA,oBAcF,wJAUA,wMAYA,mCAGA,wEAGA,wDAGA,yKAWA,2JAOA,4EAGA,oGAGA,oHAMA,6HAUA,wBACE,yBAQF,kBASA,gGAOA,mDAMA,uBAUA,mDAKA,gEAKA,+BAWA,wBACE,qCASF,kDAKA,0GAcA,iCAGA,0BAIA,kCAIA,kDAGA,2DAIA,qCAGA,6EAKA,wCAKA,wBACE,2CAIA,gCAGA,sFAMA,8BAGA,mDAcF,0CASA,gCAGA,4CAKA,4CAKA,yFAQA,iHASA,4BAKA,uFAoBA,gFAMA","sources":["index.971f1a07.css","main.css"],"sourcesContent":["*, :after, :before {\n box-sizing: border-box;\n}\n\n.debug * {\n outline: 1px solid red;\n}\n\n.contain {\n max-width: 70em;\n transition: opacity .2 ease;\n margin: 0 auto;\n padding: 2em .5em;\n}\n\nhtml {\n font-family: monospace;\n font-size: 16px;\n}\n\nbody {\n margin: 0;\n overflow-y: scroll;\n}\n\n.static {\n z-index: 9000;\n background-color: #fff;\n border-bottom: 1px solid #ccc;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n box-shadow: -1px 13px 8px 3px #fff;\n}\n\na {\n color: #000;\n}\n\n.theme-dark a {\n color: #fff;\n}\n\n.text-lg {\n font-size: 1.3rem;\n}\n\n@media (max-width: 50em) {\n #pageviews-chart {\n overflow-x: scroll;\n }\n\n .charts-css {\n min-width: 150vw;\n }\n\n .text-lg {\n font-size: 1.15rem;\n }\n}\n\nul, ol {\n margin-left: 0;\n padding-left: 0;\n}\n\nli {\n word-break: break-word;\n padding-top: .25em;\n padding-bottom: .25em;\n list-style-type: none;\n display: block;\n}\n\nselect {\n margin-bottom: 2em;\n padding: .5em 1em;\n display: inline-block;\n}\n\n.favicon {\n height: 1rem;\n width: 1rem;\n margin-right: .5em;\n}\n\n.hidden {\n display: none;\n}\n\n.opaque {\n opacity: .9;\n}\n\n.grid {\n display: flex;\n}\n\n.grid > * {\n padding: .25rem;\n}\n\n.w-50 {\n width: 50%;\n}\n\n.w-50-lg {\n width: 100%;\n}\n\n@media (max-width: 70em) {\n .w-50 {\n width: 100%;\n }\n}\n\n@media (min-width: 60em) {\n .grid-lg {\n display: flex;\n }\n\n .w-50-lg {\n width: 50%;\n }\n}\n\n.filterable:before {\n content: \"\";\n height: .5em;\n bottom: -.4em;\n left: 0;\n right: var(--data-percentage);\n background-color: #000;\n display: inline-block;\n position: absolute;\n}\n\n.filterable {\n height: 1.4em;\n text-overflow: ellipsis;\n word-break: break-all;\n border-bottom: 1px dotted #ccc;\n margin-bottom: .5em;\n padding: 0 .25em;\n font-weight: bold;\n line-height: 1.3;\n position: relative;\n overflow: hidden;\n}\n\n.filterable.active {\n background: #fe1;\n}\n\n.theme-dark .filterable.active, .theme-dark .filterable:hover {\n color: #000;\n}\n\n.filterable.active:not(.static-filter) {\n padding-left: 2em;\n}\n\n.filterable:not(.static-filter).active:after {\n height: 100%;\n width: 1.8em;\n content: \"[x]\";\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: #fff !important;\n}\n\n.filterable:hover, .filterable:focus, .filterable:active {\n cursor: pointer;\n background: #fe1;\n border-bottom: 1px dotted #ccc;\n outline: none;\n text-decoration: underline;\n}\n\n.opaque .filterable, .opaque .filterable, .opaque .filterable {\n background: #fe1;\n}\n\n.opaque .filterable:hover, .opaque .filterable:focus, .opaque .filterable:active {\n background: #ff7b001a;\n}\n\n.select-timeframe, .select-resolution {\n cursor: pointer;\n border-bottom: 1px dotted #000;\n outline: none;\n display: inline-block;\n}\n\n#filters {\n z-index: 100;\n max-width: 40em;\n background-color: #fafafa;\n padding: .25em;\n font-size: .8em;\n position: fixed;\n top: .5em;\n right: .5em;\n}\n\n@media (max-width: 40em) {\n #filters {\n max-width: 100%;\n }\n}\n\n.pad {\n padding: .5em;\n}\n\n#notice {\n max-width: 40em;\n border: 1px solid #000;\n margin: 1em auto;\n padding: 1em .5em;\n position: relative;\n}\n\n#notice > span {\n position: absolute;\n top: .5em;\n right: .5em;\n}\n\ndetails {\n margin-top: 1em;\n}\n\n.visitor {\n width: 1em;\n height: 1em;\n display: inline-block;\n}\n\n.pageview {\n border-bottom: 1px dotted #000;\n margin: 0;\n padding: .5em 0;\n}\n\n.pageview p {\n margin: 0;\n padding: 0;\n}\n\n@media (max-width: 40em) {\n .charts-css.line .data {\n display: none;\n }\n}\n\n#pageviews-chart {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\n.charts-css {\n --color: #222;\n height: 25rem;\n margin: 0 auto;\n padding: 1em 8em 4em;\n position: relative;\n overflow: hidden;\n}\n\n.charts-css tr {\n position: relative;\n}\n\n.charts-css td {\n color: #fff;\n}\n\n.charts-css.line .data {\n color: #333;\n}\n\n.charts-css tr:hover td {\n background: #333 !important;\n}\n\n.charts-css tr:hover .tooltip {\n visibility: visible;\n opacity: 1;\n}\n\n.active {\n border-bottom: 2px solid #000;\n}\n\n.charts-css .tooltip {\n position: absolute;\n bottom: -4em;\n transition: none !important;\n}\n\n.charts-css .tooltip:after {\n display: none;\n}\n\n@media (max-width: 70em) {\n .charts-css {\n padding-left: 0;\n padding-right: 0;\n }\n\n .charts-css tr {\n position: initial;\n }\n\n .charts-css.column tbody tr, .charts-css.column tbody tr td {\n position: initial !important;\n }\n\n .charts-css .tooltip {\n bottom: 0;\n }\n\n .charts-css.column tbody tr td .data {\n display: none;\n }\n}\n\n.stats {\n padding-top: 1em;\n padding-bottom: 1em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: 1em;\n}\n\n.views {\n min-width: 2.5em;\n display: inline-block;\n}\n\n.loading {\n opacity: .75;\n transition: opacity .3s;\n}\n\n.dot {\n height: .5em;\n width: .5em;\n vertical-align: middle;\n border-radius: 50%;\n display: inline-block;\n}\n\n.live-dot {\n height: .5em;\n width: .5em;\n vertical-align: middle;\n background: #20ff58;\n border-radius: 50%;\n display: inline-block;\n}\n\n#live-pages {\n min-height: 10em;\n}\n\n.search {\n width: 100%;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 1em;\n font-size: 1.1em;\n}\n\n.theme-toggle {\n float: right;\n -webkit-user-select: none;\n user-select: none;\n padding: 1em;\n}\n\n.theme-dark {\n color: #fff;\n background: #111;\n}\n\n/*# sourceMappingURL=index.971f1a07.css.map */\n","*, *:after, *:before {\n box-sizing: border-box;\n}\n.debug * {\n outline: 1px solid red;\n}\n.contain {\n max-width: 70em;\n margin: 0 auto;\n padding: 2em 0.5em;\n transition: opacity 0.2 ease;\n}\n\nhtml {\n font-family: monospace;\n font-size: 16px;\n}\nbody {\n overflow-y: scroll;\n margin: 0;\n}\n.static {\n background-color: white;\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 9000;\n box-shadow: -1px 13px 8px 3px white;\n border-bottom: 1px solid #ccc;\n}\n\na {\n color: black;\n}\n.theme-dark a {\n color: white;\n}\n\n.text-lg {\n font-size: 1.3rem;\n}\n@media all and (max-width: 50em) {\n #pageviews-chart {\n overflow-x: scroll;\n }\n .charts-css {\n min-width: 150vw;\n }\n .text-lg {\n font-size: 1.15rem;\n }\n}\n\n\nul, ol {\n margin-left: 0;\n padding-left: 0;\n}\nli {\n display: block;\n list-style-type: none;\n padding-top: 0.25em;\n padding-bottom: 0.25em;\n word-break: break-word;\n}\nselect {\n display: inline-block;\n padding: 0.5em 1em;\n margin-bottom: 2em;\n}\n\n.favicon {\n height: 1rem;\n width: 1rem;\n margin-right: 0.5em;\n}\n\n.hidden {\n display: none;\n}\n\n.opaque {\n opacity: 0.9;\n}\n\n\n.grid {\n display: flex;\n}\n.grid > * {\n padding: .25rem;\n}\n\n.w-50 {\n width: 50%;\n}\n.w-50-lg {\n width: 100%;\n}\n@media all and (max-width: 70em) {\n .w-50 {\n width: 100%;\n }\n}\n@media all and (min-width: 60em) {\n .grid-lg {\n display: flex;\n }\n .w-50-lg {\n width: 50%;\n }\n}\n\n\n\n\n\n\n\n/*\nFILTERS\n*/\n.filterable::before {\n content: '';\n display: inline-block;\n background-color: #000000;\n position: absolute;\n height: 0.5em;\n left: 0;\n bottom: -0.4em;\n right: var(--data-percentage); \n}\n.filterable {\n position: relative;\n height: 1.4em;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-all;\n font-weight: bold;\n margin-bottom: 0.5em;\n padding: 0 0.25em;\n border-bottom: 1px dotted #ccc;\n line-height: 1.3;\n}\n.filterable.active {\n background: #fe1;\n}\n.theme-dark .filterable.active, .theme-dark .filterable:hover {\n color: black;\n}\n.filterable.active:not(.static-filter) {\n padding-left: 2em;\n}\n.filterable:not(.static-filter).active::after {\n position: absolute;\n display: block;\n left: 0;\n top: 0;\n bottom: 0;\n height: 100%;\n width: 1.8em;\n content: '[x]';\n background-color: white !important;\n}\n.filterable:hover, .filterable:focus, .filterable:active {\n background: #fe1;\n cursor: pointer;\n text-decoration: underline;\n outline: none;\n border-bottom: 1px dotted #ccc;\n}\n.opaque .filterable, .opaque .filterable, .opaque .filterable {\n background: #fe1;\n}\n.opaque .filterable:hover, .opaque .filterable:focus, .opaque .filterable:active {\n background: rgba(255, 123, 0, 0.1);\n}\n.select-timeframe, .select-resolution {\n cursor: pointer;\n outline: none;\n border-bottom: 1px dotted #000;\n display: inline-block;\n}\n#filters {\n position: fixed;\n top: 0.5em;\n right: 0.5em;\n padding: 0.25em;\n z-index: 100;\n background-color: rgb(250,250,250);\n max-width: 40em;\n font-size: 0.8em;\n}\n@media all and (max-width: 40em) {\n #filters {\n max-width: 100%;\n }\n}\n\n\n\n\n.pad {\n padding: 0.5em;\n}\n\n\n\n\n\n\n#notice {\n border: 1px solid #000;\n padding: 1em 0.5em;\n position: relative;\n max-width: 40em;\n margin: 1em auto;\n}\n#notice > span {\n position: absolute;\n top: 0.5em;\n right: 0.5em;\n}\n\ndetails {\n margin-top: 1em;\n}\n\n\n\n/*\nHISTORY\n*/\n\n.visitor {\n width: 1em;\n height: 1em;\n display: inline-block;\n}\n.pageview {\n margin: 0;\n padding: 0.5em 0;\n border-bottom: 1px dotted #000;\n}\n.pageview p {\n margin: 0;\n padding: 0;\n}\n\n\n\n\n\n\n\n@media all and (max-width: 40em) {\n .charts-css.line .data {\n display: none;\n }\n}\n\n/*\nCHART\n*/\n\n#pageviews-chart {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\n.charts-css {\n --color: #222;\n height: 25rem;\n margin: 0 auto;\n overflow: hidden;\n padding-top: 1em;\n padding-bottom: 4em;\n padding-left: 8em;\n padding-right: 8em;\n}\n\n.charts-css {\n position: relative;\n}\n.charts-css tr {\n position: relative;\n}\n.charts-css td {\n color: #fff;\n /* position: inherit; */\n}\n.charts-css.line .data {\n /* display: none; */\n color: #333;\n}\n.charts-css tr:hover td {\n background: #333 !important;\n}\n.charts-css tr:hover .tooltip {\n visibility: visible;\n opacity: 1;\n}\n.active {\n border-bottom: 2px solid black;;\n}\n.charts-css .tooltip {\n position: absolute;\n transition: none !important;\n bottom: -4em;\n}\n.charts-css .tooltip::after {\n display: none;\n}\n\n\n@media all and (max-width: 70em) {\n .charts-css {\n padding-left: 0;\n padding-right: 0;\n }\n .charts-css tr {\n position: initial;\n } \n .charts-css.column tbody tr {\n position: initial !important;\n }\n .charts-css.column tbody tr td {\n position: initial !important;\n } \n .charts-css .tooltip {\n bottom: 0;\n }\n .charts-css.column tbody tr td .data {\n display: none;\n }\n}\n\n\n\n\n\n\n/*\nstats container\n*/\n\n.stats {\n padding-top: 1em;\n padding-bottom: 1em;\n}\n\n\n\n\n\nh1, h2, h3, h4, h5, h6 {\n font-size: 1em;\n}\n.views {\n min-width: 2.5em;\n display: inline-block;\n}\n\n.loading {\n transition: opacity 0.3s ease;\n opacity: 0.75;\n}\n\n.dot {\n display: inline-block;\n height: 0.5em;\n width: 0.5em;\n border-radius: 50%;\n vertical-align: middle;\n}\n\n.live-dot {\n display: inline-block;\n height: 0.5em;\n width: 0.5em;\n background:rgb(32, 255, 88);\n border-radius: 50%;\n vertical-align: middle;\n}\n\n#live-pages {\n min-height: 10em;\n}\n\n\n.search {\n font-size: 1.1em;\n border: 1px solid #ccc;\n border-radius: 4px;\n padding: 1em 1em;\n width: 100%;\n}\n\n\n\n\n\n\n\n\n\n\n/*\nTHEME\n*/\n.theme-toggle {\n float: right;\n padding: 1em;\n user-select: none;\n}\n/* .theme-light {} */\n.theme-dark {\n background: #111;\n color: white;\n}"],"names":[],"version":3,"file":"index.971f1a07.css.map"} \ No newline at end of file diff --git a/dashboard/dist/index.f38e4744.js b/dashboard/dist/index.f38e4744.js new file mode 100644 index 0000000..e943afc --- /dev/null +++ b/dashboard/dist/index.f38e4744.js @@ -0,0 +1,2 @@ +var e,t,n,i,r,o,a={},l=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(e,t){for(var n in t)e[n]=t[n];return e}function u(e){var t=e.parentNode;t&&t.removeChild(e)}function _(t,n,i){var r,o,a,l={};for(a in n)"key"==a?r=n[a]:"ref"==a?o=n[a]:l[a]=n[a];if(arguments.length>2&&(l.children=arguments.length>3?e.call(arguments,2):i),"function"==typeof t&&null!=t.defaultProps)for(a in t.defaultProps)void 0===l[a]&&(l[a]=t.defaultProps[a]);return d(t,l,r,o,null)}function d(e,i,r,o,a){var l={type:e,props:i,key:r,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==a?++n:a};return null==a&&null!=t.vnode&&t.vnode(l),l}function h(e){return e.children}function f(e,t){this.props=e,this.context=t}function p(e,t){if(null==t)return e.__?p(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?d(g.type,g.props,g.key,g.ref?g.ref:null,g.__v):g)){if(g.__=n,g.__b=n.__b+1,null===(v=N[f])||v&&g.key==v.key&&g.type===v.type)N[f]=void 0;else for(m=0;m2&&(l.children=arguments.length>3?e.call(arguments,2):i),d(t.type,l,r||t.key,o||t.ref,null)}e=l.slice,t={__e:function(e,t,n,i){for(var r,o,a;t=t.__;)if((r=t.__c)&&!r.__)try{if((o=r.constructor)&&null!=o.getDerivedStateFromError&&(r.setState(o.getDerivedStateFromError(e)),a=r.__d),null!=r.componentDidCatch&&(r.componentDidCatch(e,i||{}),a=r.__d),a)return r.__E=r}catch(t){e=t}throw e}},n=0,f.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),"function"==typeof e&&(e=e(c({},n),this.props)),e&&c(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),v(this))},f.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),v(this))},f.prototype.render=h,i=[],g.__r=0,o=0;var R=function(e,t,n,i){var r;t[0]=0;for(var o=1;ot.rank?-1:e.index-t.index}function ie(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:re(e.props.path).map(oe).join("")}(e),e.props}function re(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function oe(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var ae,le,se={},ce=[],ue=[],_e=null,de={url:fe()},he=(le={__c:ae="__cC"+o++,__:de,Consumer:function(e,t){return e.children(t)},Provider:function(e){var t,n;return this.getChildContext||(t=[],(n={})[ae]=this,this.getChildContext=function(){return n},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&t.some(v)},this.sub=function(e){t.push(e);var n=e.componentWillUnmount;e.componentWillUnmount=function(){t.splice(t.indexOf(e),1),n&&n.call(e)}}),e.children}}).Provider.__=le.Consumer.contextType=le;function fe(){var e;return""+((e=_e&&_e.location?_e.location:_e&&_e.getCurrentLocation?_e.getCurrentLocation():"undefined"!=typeof location?location:se).pathname||"")+(e.search||"")}function pe(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=ce.length;t--;)if(ce[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),_e&&_e[t]?_e[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),me(e)}function me(e){for(var t=!1,n=0;n{t(+new Date(e.target.value),+r.to)},value:new Date(+r.from).toISOString().substring(0,16)})]}),r.from&&r.to&&E("div",{children:[r.to&&E("span",{className:"filterable static-filter",children:"To "}),r.to&&E("input",{type:"datetime-local",onChange:e=>{t(+r.from,+new Date(e.target.value))},value:new Date(+r.to).toISOString().substring(0,16)})]}),(r.from||r.to)&&E("div",{className:"filterable static-filter",onClick:()=>n(),children:"Clear [x]"})]});function o(t,n){return E("a",{href:"#",onClick:n=>{n.preventDefault(),e(t)},className:`select-timeframe filterable static-filter ${r.timeframe===t&&"active"}`,name:t,id:t,children:n})}function a(e,t){return E("a",{href:"#",onClick:t=>{t.preventDefault(),i(e)},className:`select-resolution filterable static-filter ${r.resolution===e&&"active"}`,name:e,id:e,children:t})}}function Ce({theme:e,toggleTheme:t=Function.prototype}){return E("div",{className:"theme-toggle",onClick:t,children:["dark"===e?"light":"dark"," theme"]})}function Ne({searchTerm:e="",updateSearchTerm:t=Function.prototype}={}){return E("div",{className:"contain",children:E("input",{className:"search",placeholder:"Filter by page or referrer",onKeyUp:e=>{console.log("changed",e.target.value),t(e.target.value)}})})}function Te({data:e,filters:t={},updateCustomTimeframe:n}){if(!e)return null;if(!Array.isArray(e.chartData))return null;if(e.chartData.length<2)return E("div",{id:"pageviews-chart",style:{textAlign:"center"},children:["Insufficient data to show chart..",E("br",{}),"Try to change timeframe or resolution."]});const i=Math.max(...e.chartData.map((e=>e[1])));return E("div",{id:"pageviews-chart",children:E("table",{className:"charts-css column show-labels show-primary-axis",children:[E("thead",{children:E("tr",{children:[E("th",{scope:"col",children:"Date"}),E("th",{scope:"col",children:"Pageviews"})]})}),E("tbody",{children:e.chartData.map(((o,a)=>E("tr",{onClick:()=>n(+new Date(o[0])),children:E("td",{style:{"--start":0===a?0:e.chartData[a-1][1]/i,"--size":o[1]/i},children:[e.chartData.length<50&&E("span",{className:"data",children:o[1]}),E("span",{className:"tooltip",children:[r(o[0],t.resolution),E("br",{}),`${o[1]} pageviews`]})]})},o[0])))})]})});function r(e,t){return"daily"===t||"monthly"===t?new Date(e).toLocaleDateString():new Date(e).toLocaleString()}}function Se({data:e,filters:t={},toggleFilter:n}){if(!e)return null;if(!Number.isFinite(e.visitorsCount))return null;if(!Number.isFinite(e.pageviewsCount))return null;let i=e.live||{};return Object.keys(t).length>2&&(i=Object.keys(i).reduce(((e,n)=>Object.keys(t).filter((e=>["p","r","v"].includes(e))).every((e=>i[n].pageview[e]===t[e]))?Object.assign(e,{[n]:i[n]}):e),{})),E("div",{className:"stats",children:[E("div",{className:"grid contain text-lg",children:[E("div",{className:"w-50",children:[E("h2",{children:"Visitors"}),E("div",{id:"visitors-count",children:e.visitorsCount})]}),E("div",{className:"w-50",children:[E("h2",{children:"Pageviews"}),E("div",{id:"pageviews-count",children:e.pageviewsCount})]}),E("div",{className:"w-50",children:[E("h2",{children:"Bounce rate"}),E("div",{id:"bounce-rate",children:(e.visitorsCount/e.pageviewsCount*100).toFixed(0)+"%"})]}),E("div",{className:"w-50",children:[E("h2",{children:"Live"}),E("div",{id:"live",children:Object.keys(i).length})]})]}),E("div",{className:"contain",id:"live-pages",children:Object.keys(i).length>0&&E("div",{children:[E("h2",{children:["Live pages ",E("span",{className:"live-dot"})]}),E("ul",{children:Object.keys(i).reduce(((e,t)=>{const n=e.find((({p:e})=>e===i[t].pageview.p));return n?(n.c++,e):e.concat([{p:i[t].pageview.p,c:1}])}),[]).sort(((e,t)=>e.c-t.c)).map((({p:e,c:i})=>E("li",{className:`filterable ${t.p===e&&"active"}`,onClick:()=>n("p",e),children:`${i} · ${e}`},e)))})]})}),E("div",{className:"contain",id:"live-referrers",children:Object.keys(i).length>0&&E("div",{children:[E("h2",{children:["Live referrers ",E("span",{className:"live-dot"})]}),E("ul",{children:Object.keys(i).reduce(((e,t)=>{const n=e.find((({r:e})=>e===i[t].pageview.r));return n?(n.c++,e):e.concat([{r:i[t].pageview.r,c:1}])}),[]).sort(((e,t)=>e.c-t.c)).map((({r:e,c:i})=>E("li",{className:`filterable ${t.r===e&&"active"}`,onClick:()=>n("r",e),children:`${i} · ${(e||"").replace("https://","").replace("http://","")||"none"}`},e)))})]})})]})}function je(e){if(!e)return"/";const t=document.createElement("a");return t.href=e,t.hostname}function Oe({data:e,loading:t,filters:n={},toggleFilter:i}){if(!e)return null;const{referrers:r=[]}=e,{pages:o=[]}=e,{events:a=[]}=e,l=Math.max(...a.map((e=>e.views))),s=Math.max(...r.map((e=>e.views))),c=Math.max(...o.map((e=>e.views)));return E("div",{children:E("div",{className:`${t&&"loading"}`,children:[E("div",{className:"grid-lg contain",children:[E("div",{className:"w-50-lg",id:"referrers",children:[E("h2",{children:"Top Referrers"}),E("ul",{id:"top-referrers",children:r.map((e=>{const t=`https://icons.duckduckgo.com/ip3/${je(e.r)}.ico`;return E("li",{className:`filterable ${n.r===e.r&&"active"}`,style:{"--data-percentage":100-80*e.views/s+"%"},onClick:()=>i("r",e.r),children:E("div",{children:[E("b",{className:"views",children:e.views}),E("img",{loading:"lazy",className:"favicon",src:t}),e.r.replace("https://","").replace("http://","")||"none"]})},e.r)}))})]}),E("div",{className:"w-50-lg",id:"pages",children:[E("h2",{children:"Top Pages"}),E("ul",{id:"top-pages",children:o.map((e=>E("li",{onClick:()=>i("p",e.p),className:`filterable ${n.p===e.p&&"active"}`,style:{"--data-percentage":100-80*e.views/c+"%"},children:[E("b",{className:"views",children:e.views}),e.p]},e.p)))})]})]}),E("div",{className:"contain",children:[E("h2",{children:"Top Events"}),E("ul",{id:"top-events",children:a.map((e=>E("li",{className:`filterable ${n.e===e.e&&"active"}`,style:{"--data-percentage":100-80*e.views/l+"%"},onClick:()=>i("e",e.e),children:E("div",{children:[E("b",{className:"views",children:e.views}),e.e]})},e.e)))})]})]})})}function $e({data:e,filters:t={},toggleFilter:n}){return e&&Array.isArray(e.data)?E("div",{className:"contain",children:E("ul",{children:e.data.map(((e,i)=>{return"event"!==e.t&&E("li",{className:"pageview",children:[E("div",{className:`filterable ${t.v===e.v&&"active"}`,onClick:()=>n("v",e.v),children:[E("time",{children:e.d.substring(0,19)}),e.v," ",E("span",{style:{"background-color":(r=e.v,"#"+function(e){const t=(16777215&e).toString(16).toUpperCase();return"00000".substring(0,6-t.length)+t}(function(e){let t=0;for(let n=0;nn("p",e.p),children:E("b",{children:e.p})}),e.r&&E("div",{className:`filterable ${t.r===e.r&&"active"}`,onClick:()=>n("r",e.r),children:["from",E("img",{className:"favicon",src:`https://icons.duckduckgo.com/ip3/${je(e.r)}.ico`}),e.r.replace("https://","").replace("http://","")]})]},e.d);var r}))})}):null}class xe extends f{render({data:e,filters:t,loading:n,theme:i,searchTerm:r,updateResolution:o,updateTimeframe:a,updateCustomTimeframe:l,clearCustomTimeframe:s,toggleFilter:c,toggleTheme:u,updateSearchTerm:_}={}){return 0===Object.keys(e).length?null:E("div",{className:`${n&&"loading"}`,children:[E(Ce,{theme:i,toggleTheme:u}),E(Ne,{searchTerm:r,updateSearchTerm:_}),E(we,{filters:t,clearCustomTimeframe:s,updateResolution:o,updateTimeframe:a,updateCustomTimeframe:l}),E(Te,{data:e,filters:t,updateCustomTimeframe:l}),E(Se,{data:e,filters:t,toggleFilter:c}),E(Oe,{data:e,filters:t,toggleFilter:c}),E($e,{data:e,filters:t,toggleFilter:c})]})}}const De={data:{},mounted:!1,loading:!1,filters:{timeframe:"today",resolution:"hourly"},theme:"light"};const Ue=function(e){var t=F.get(this);return t||(t=new Map,F.set(this,t)),(t=R(this,t.get(e)||(t.set(e,t=function(e){for(var t,n,i=1,r="",o="",a=[0],l=function(e){1===i&&(e||(r=r.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?a.push(0,e,r):3===i&&(e||r)?(a.push(3,e,r),i=2):2===i&&"..."===r&&e?a.push(4,e,0):2===i&&r&&!e?a.push(5,0,!0,r):i>=5&&((r||!e&&5===i)&&(a.push(i,0,r,n),i=6),e&&(a.push(i,e,0,n),i=6)),r=""},s=0;s"===t?(i=1,r=""):r=t+r[0]:o?t===o?o="":r+=t:'"'===t||"'"===t?o=t:">"===t?(l(),i=1):i&&("="===t?(i=5,n=r,r=""):"/"===t&&(i<5||">"===e[s][c+1])?(l(),3===i&&(a=a[0]),i=a,(a=a[0]).push(2,0,i),i=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(l(),i=2):r+=t),3===i&&"!--"===r&&(i=4,a=a[0])}return l(),a}(e)),t),arguments,[])).length>1?t:t[0]}.bind(_);U(Ue`<${class extends f{state=De;componentDidMount(){if(window.location.search){const e=window.location.search.substring(1).split("&").map((e=>e.split("="))).reduce(((e,t)=>Object.assign(e,{[t[0]]:decodeURIComponent(t[1])})),{});this.setState({mounted:!0,filters:Object.assign({},this.state.filters,e)},(()=>this.getData()))}else this.setState({mounted:!0},(()=>this.getData()));setInterval((()=>this.getData()),6e4);new window.EventSource("/").onmessage=e=>{if(!e||!e.data)return console.error("skipping empty message");try{const t=JSON.parse(e.data,{});this.setState({data:Object.assign({},this.state.data,{live:t})})}catch(e){console.error("sse parse error",e)}}}async handleRoute(e){if(this.state.mounted)if(window.location.search){const e=window.location.search.substring(1).split("&").map((e=>e.split("="))).reduce(((e,t)=>Object.assign(e,{[t[0]]:decodeURIComponent(t[1])})),{});this.setState({filters:Object.assign({},this.state.filters,e)},(()=>this.getData()))}else this.getData()}async getData(){if(this.state.loading)return;if(this.setState({loading:!0}),this.state.filters.s&&""!==this.state.filters.s){console.log("filtering by search term");let e="";const t=Object.assign({},this.state.filters);delete t.p,delete t.r,delete t.v,Object.keys(t).length>0&&(e="?"+Object.keys(t).reduce(((e,n)=>e.concat([`${n}=${encodeURIComponent(t[n])}`])),[]).join("&"));const n=/(localhost|127\.0\.0\.1|0\.0\.0\.0)/.test(window.location.origin)?"http://127.0.0.1:8080":window.location.origin,i=await window.fetch(n+"/api/"+e),r=await i.json();return void this.setState({data:r,loading:!1})}let e="";Object.keys(this.state.filters).length>0&&(e="?"+Object.keys(this.state.filters).reduce(((e,t)=>e.concat([`${t}=${encodeURIComponent(this.state.filters[t])}`])),[]).join("&"));const t=/(localhost|127\.0\.0\.1|0\.0\.0\.0)/.test(window.location.origin)?"http://127.0.0.1:8080":window.location.origin,n=await window.fetch(t+"/api/"+e),i=await n.json();this.setState({data:i,loading:!1})}clearCustomTimeframe(){const e=Object.assign({},this.state.filters,{timeframe:"past-day"});delete e.from,delete e.to,this.setState({filters:e},(()=>pe("?"+Object.keys(e).reduce(((t,n)=>t.concat([`${n}=${encodeURIComponent(e[n])}`])),[]).join("&"))))}updateCustomTimeframe(e,t=Date.now()){if(!Number.isFinite(+new Date(e)))return;if(!Number.isFinite(+new Date(t)))return;const n=Object.assign({},this.state.filters,{from:e,to:t});delete n.timeframe,this.setState({filters:n},(()=>pe("?"+Object.keys(n).reduce(((e,t)=>e.concat([`${t}=${encodeURIComponent(n[t])}`])),[]).join("&"))))}updateTimeframe(e){const t=Object.assign({},this.state.filters,{timeframe:e});["today","past-day"].includes(e)&&["monthly","daily"].includes(t.resolution)&&(t.resolution="hourly"),["past-week"].includes(e)&&["monthly"].includes(t.resolution)&&(t.resolution="daily"),["past-month"].includes(e)&&["minutes","monthly"].includes(t.resolution)&&(t.resolution="daily"),["past-6-months"].includes(e)&&["minutes"].includes(t.resolution)&&(t.resolution="daily"),["past-year"].includes(e)&&["minutes","hourly"].includes(t.resolution)&&(t.resolution="monthly"),this.setState({filters:t},(()=>pe("?"+Object.keys(t).reduce(((e,n)=>e.concat([`${n}=${encodeURIComponent(t[n])}`])),[]).join("&"))))}updateResolution(e){const t=Object.assign({},this.state.filters,{resolution:e});this.setState({filters:t},(()=>pe("?"+Object.keys(t).reduce(((e,n)=>e.concat([`${n}=${encodeURIComponent(t[n])}`])),[]).join("&"))))}toggleFilter(e,t){const n=Object.assign({},this.state.filters);n[e]===t?delete n[e]:n[e]=t,this.setState({filters:n},(()=>pe("?"+Object.keys(n).reduce(((e,t)=>e.concat([`${t}=${encodeURIComponent(n[t])}`])),[]).join("&"))))}toggleTheme(){this.setState({theme:"dark"===this.state.theme?"light":"dark"})}updateSearchTerm(e=""){const t=Object.assign({},this.state.filters,{s:e});this.setState({filters:t},(()=>pe("?"+Object.keys(this.state.filters).reduce(((e,t)=>e.concat([`${t}=${encodeURIComponent(this.state.filters[t])}`])),[]).join("&"))))}render(){return E("div",{id:"app",className:`theme-${this.state.theme}`,children:E(ke,{onChange:this.handleRoute.bind(this),children:E(xe,{data:this.state.data,filters:this.state.filters,loading:this.state.loading,theme:this.state.theme,updateResolution:this.updateResolution.bind(this),updateTimeframe:this.updateTimeframe.bind(this),updateCustomTimeframe:this.updateCustomTimeframe.bind(this),clearCustomTimeframe:this.clearCustomTimeframe.bind(this),toggleFilter:this.toggleFilter.bind(this),toggleTheme:this.toggleTheme.bind(this),updateSearchTerm:this.updateSearchTerm.bind(this),path:"/"})})})}}}/>`,document.body); +//# sourceMappingURL=index.f38e4744.js.map diff --git a/dashboard/dist/index.f38e4744.js.map b/dashboard/dist/index.f38e4744.js.map new file mode 100644 index 0000000..7d6d7e2 --- /dev/null +++ b/dashboard/dist/index.f38e4744.js.map @@ -0,0 +1 @@ +{"mappings":"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","sources":["node_modules/preact/src/util.js","node_modules/preact/src/options.js","node_modules/preact/src/create-element.js","node_modules/preact/src/component.js","node_modules/preact/src/create-context.js","node_modules/preact/src/constants.js","node_modules/preact/src/diff/children.js","node_modules/preact/src/diff/props.js","node_modules/preact/src/diff/index.js","node_modules/preact/src/render.js","node_modules/preact/src/clone-element.js","node_modules/preact/src/diff/catch-error.js","node_modules/htm/dist/htm.module.js","node_modules/preact/jsx-runtime/src/index.js","node_modules/preact/hooks/src/index.js","node_modules/preact-router/src/util.js","node_modules/preact-router/src/index.js","components/filters.js","components/theme-toggle.js","components/search.js","components/pageviews-chart.js","components/stats.js","lib/domain-from-url.js","components/breakdown.js","components/history.js","lib/visitor-color.js","components/dashboard.js","components/app.js","index.js"],"sourcesContent":["import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix