diff --git a/build.sbt b/build.sbt index 1e84b19..b65174d 100644 --- a/build.sbt +++ b/build.sbt @@ -11,7 +11,7 @@ val diodeVersion = "1.1.14" lazy val token = sys.env.getOrElse("GITHUB_TOKEN", "No Token") val publishSettings = Seq( - version := "0.3.0-SNAPSHOT", + version := "0.3.2-SNAPSHOT", versionScheme := Some(sbt.VersionScheme.SemVerSpec), organization := "rocks.earlyeffect", organizationName := "earlyeffect", @@ -48,7 +48,7 @@ val baseSettings = Seq( scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature"), libraryDependencies ++= Seq( "org.scala-js" %%% "scalajs-dom" % "1.1.0", - "org.scalameta" %%% "munit" % "0.7.23" % Test, + "org.scalameta" %%% "munit" % "0.7.25" % Test, ), testFrameworks += new TestFramework("munit.Framework"), installJsdom / version.withRank(KeyRanks.Invisible) := "16.4.0", @@ -89,6 +89,27 @@ lazy val core = project baseDirectory.value / "webpack" / "no-fs-config.js" ), ) +lazy val jsdocs = project + .enablePlugins(ScalaJSBundlerPlugin) + .dependsOn(core) + .settings( + webpackBundlingMode := BundlingMode.LibraryOnly(), + scalaJSUseMainModuleInitializer := true, + scalaVersion := "2.13.5", + libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "1.1.0" + ) +lazy val docs = project + .in(file("core-docs")) + .enablePlugins(MdocPlugin) + .dependsOn(core) + .settings( + publish / skip := true, + scalaVersion := "2.13.5", + mdocJS := Some(jsdocs), + mdocOut := file("mdoc-output"), + mdocJSLibraries := webpack.in(jsdocs, Compile, fullOptJS).value + ) + lazy val diodeSupport = project .in(file("diode-support")) @@ -104,7 +125,7 @@ lazy val diodeSupport = project ) lazy val formable = project .in(file("formable")) - .dependsOn(core) + .dependsOn(core % "compile->compile", core % "test->test") .enablePlugins(ScalaJSBundlerPlugin) .settings( baseSettings, @@ -114,6 +135,7 @@ lazy val formable = project libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value, Compile / fastOptJS / webpackEmitSourceMaps := true, Compile / fullOptJS / webpackEmitSourceMaps := false, + Test / webpackConfigFile := (core / Test / webpackConfigFile).value ) lazy val demoModel = project diff --git a/core/src/test/scala/anode/AnodeOps.scala b/core/src/test/scala/anode/AnodeOps.scala index df78a78..2b89248 100644 --- a/core/src/test/scala/anode/AnodeOps.scala +++ b/core/src/test/scala/anode/AnodeOps.scala @@ -4,9 +4,11 @@ import org.scalajs.dom import org.scalajs.dom.Element import scala.scalajs.js +import scala.scalajs.js.timers.SetTimeoutHandle trait AnodeOps { def render(vn: VNode): Unit = preact.render(vn, parent) + def render(args: Args): Unit = preact.render(E.div(args), parent) val parent: Element = { val res = dom.document.createElement("div") @@ -14,6 +16,6 @@ trait AnodeOps { res } - def check(s: String) = munit.Assertions.assertEquals(parent.innerHTML, s) - def checkAfter(n: Int)(s: String) = js.timers.setTimeout(n)(check(s)) + def check(s: String): Unit = munit.Assertions.assertEquals(parent.innerHTML, s) + def checkAfter(n: Int)(s: String): SetTimeoutHandle = js.timers.setTimeout(n)(check(s)) } diff --git a/demo-app/src/main/scala/todo/App.scala b/demo-app/src/main/scala/todo/App.scala index e3620d8..a07d3b2 100644 --- a/demo-app/src/main/scala/todo/App.scala +++ b/demo-app/src/main/scala/todo/App.scala @@ -1,10 +1,14 @@ package todo +import anode.dsl.Elements.div import anode.dsl.css.CssClass -import anode.{ClassSelector, E, S, VNode, fragment, when} +import anode.{A, Args, ClassSelector, E, S, VNode, args, fragment, log, when} import diode.ModelR +import org.scalajs.dom import todo.model.{Root, TodoList} + + object App extends TodoComponent[Unit, TodoList] with ClassSelector { object css { @@ -61,9 +65,22 @@ object App extends TodoComponent[Unit, TodoList] with ClassSelector { override def modelReader(p: Unit): ModelR[Root, TodoList] = zoom(_.todoList) import anode.Formable import Formable.defaultImplicits._ - + sealed trait Foo{ + def a:String + } + case class Bar(a:String,b:Map[String, String]) extends Foo + implicit val showMap:Formable[Map[String,String]] = Formable(formProps => { + implicit val tuple:Formable[(String,String)] = Formable(tupleProps =>{ + args(E.div(tupleProps.field._1), E.input(tupleProps.field._2, A.onKeyUp(x => { + tupleProps.update(tupleProps.field._1, x.target.asInstanceOf[dom.html.Input].value) + }))) + }) + args(formProps.field.toSeq.map[Args](x => Formable("",x)(x => formProps.update(formProps.field + x)))) + }) + val f = Bar("Russ",Map("Foo" -> "Bar", "baz" -> "bonk")) override def render(props: Unit, l: TodoList): VNode = E.body( + Formable("",f)(f => log("f",f)), css.App, E.section( css.TodoApp, diff --git a/docs/intro.md b/docs/intro.md new file mode 100644 index 0000000..43eee95 --- /dev/null +++ b/docs/intro.md @@ -0,0 +1,28 @@ +# Anode Components + +```scala mdoc:js:shared +import anode._ +import preact.render +``` + +## Constructing a Simple Component + +Define a stateless component function with only a property type \[String\]: + +```scala mdoc:js:shared +val sayHello:Component[String] = {name => + E.div(s"Hello $name!",A.style(S.color("blue"))) +} +``` + +A VNode is created when we apply a property instance to the component + +```scala mdoc:js:shared +val vnode = sayHello("Russ") +``` + +Then we can render it by calling `render` with the VNode as well as a dom node to render within + +```scala mdoc:js +render(vnode,node) +``` \ No newline at end of file diff --git a/formable/src/main/scala/anode/Formable.scala b/formable/src/main/scala/anode/Formable.scala index c8ee3ce..620a7a0 100644 --- a/formable/src/main/scala/anode/Formable.scala +++ b/formable/src/main/scala/anode/Formable.scala @@ -1,31 +1,31 @@ package anode import anode.Formable._ -import magnolia.{CaseClass, Magnolia} +import magnolia.{CaseClass, Magnolia, SealedTrait} import org.scalajs.dom import scala.language.experimental.macros import scala.language.implicitConversions sealed trait Formable[A] { self => - def apply(props: Props[A, _]): Args + def apply(context: Context[A, _]): Args - def form(p: Props[A, A]): VNode = + def form(context: Context[A, A]): VNode = E.form( - self(p) + self(context) ) } object Formable { type Typeclass[A] = Formable[A] - case class Props[Field, Product] private[anode] (label: String, field: Field, update: Field => Product) + case class Context[Field, Product] private[anode] (label: String, field: Field, update: Field => Product) - def apply[Field, Product](label: String, field: Field)(update: Field => Product): Props[Field, Product] = - Props(label, field, update) + def apply[Field, Product](label: String, field: Field)(update: Field => Product): Context[Field, Product] = + Context(label, field, update) - def apply[Product, Result](product: Product)(effect: Product => Result): Props[Product, Product] = - Props[Product, Product]( + def apply[Product, Result](product: Product)(effect: Product => Result): Context[Product, Product] = + Context[Product, Product]( label = "form", product, x => { @@ -39,28 +39,40 @@ object Formable { def apply[A](effect: Product => A): anode.Args = f(Formable[Product, A](product)(effect)) } - def apply[A](f: Props[A, _] => Args): Formable[A] = - new Formable[A] { override def apply(props: Props[A, _]): Args = f(props) } + def apply[A](f: Context[A, _] => Args): Formable[A] = + new Formable[A] { override def apply(context: Context[A, _]): Args = f(context) } def combine[Product](caseClass: CaseClass[Typeclass, Product]): Formable[Product] = - Formable { props => + Formable { context => args(caseClass.parameters.map { productParam => type ParamType = productParam.PType val update: ParamType => Product = (x: ParamType) => { val product = caseClass.construct { constructorParam => if (constructorParam == productParam) x - else constructorParam.dereference(props.field) + else constructorParam.dereference(context.field) } - props.update(product) + context.update(product) product } - productParam.typeclass(apply(productParam.label, productParam.dereference(props.field))(update)) + productParam.typeclass(apply(productParam.label, productParam.dereference(context.field))(update)) }) } + + def dispatch[Product](sealedTrait: SealedTrait[Formable, Product]): Formable[Product] = + Formable { context => + sealedTrait.dispatch(context.field) { subtype => + type S = subtype.SType + subtype.typeclass.apply(Formable[S,Product](context.label, subtype.cast(context.field))((s:S) => { + context.update(s) + s + })) + } + } + implicit def formable[A]: Formable[A] = macro Magnolia.gen[A] - implicit def summonArgsFromProps[Field](props: Props[Field, _])(implicit formable: Formable[Field]): Args = - formable(props) + implicit def summonArgsFromProps[Field](context: Context[Field, _])(implicit formable: Formable[Field]): Args = + formable(context) object defaultImplicits { diff --git a/formable/src/test/scala/anode/formable/FormableSpecs.scala b/formable/src/test/scala/anode/formable/FormableSpecs.scala new file mode 100644 index 0000000..4845eb2 --- /dev/null +++ b/formable/src/test/scala/anode/formable/FormableSpecs.scala @@ -0,0 +1,32 @@ +package anode.formable + +import anode._ +import munit.FunSuite + +class FormableSpecs extends FunSuite with AnodeOps { + type Form[A] = Formable.Context[A, A] + + object Form { + def apply[A](a: A): Form[A] = Formable(s"label-$a", a)(identity) + + def apply[A]: Formable[A] = Formable[A](a => args(text((a.label, a.field.toString).toString()))) + } + + implicit val formString: Formable[String] = Form[String] + implicit val formInt: Formable[Int] = Form[Int] + + case class Foo(a: String, b: Int) + + test("Formable String") { + render(Form("a")) + check("
(label-a,a)
") + } + test("Formable int") { + render(Form(1)) + check("
(label-1,1)
") + } + test("Formable Foo") { + render(Form(Foo("foo", 1))) + check("
(a,foo)(b,1)
") + } +} diff --git a/jsdocs/src/main/scala/Main.scala b/jsdocs/src/main/scala/Main.scala new file mode 100644 index 0000000..a7ac998 --- /dev/null +++ b/jsdocs/src/main/scala/Main.scala @@ -0,0 +1,8 @@ +object Main { + + def main(args: Array[String]): Unit = { + import anode._ + val s:Component[String] = {s => E.div()} + val x = E.span() + } +} diff --git a/mdoc-output/intro.md b/mdoc-output/intro.md new file mode 100644 index 0000000..303ebd5 --- /dev/null +++ b/mdoc-output/intro.md @@ -0,0 +1,34 @@ +# Anode Components + +```scala +import anode._ +import preact.render +``` + +## Constructing a Simple Component + +Define a stateless component function with only a property type \[String\]: + +```scala +val sayHello:Component[String] = {name => + E.div(s"Hello $name!",A.style(S.color("blue"))) +} +``` + +A VNode is created when we apply a property instance to the component + +```scala +val vnode = sayHello("Russ") +``` + +Then we can render it by calling `render` with the VNode as well as a dom node to render within + +```scala +render(vnode,node) +``` +
+ + + + + diff --git a/mdoc-output/intro.md.js b/mdoc-output/intro.md.js new file mode 100644 index 0000000..a7ff680 --- /dev/null +++ b/mdoc-output/intro.md.js @@ -0,0 +1,286 @@ +'use strict';var d,aa=require("preact"),ba=Object.freeze({assumingES6:!0,productionMode:!0,linkerVersion:"1.5.0",fileLevelThis:this}),l=Math.imul,ca=Math.clz32,da;function ea(a){for(var b in a)return b}function fa(a){this.vf=a}fa.prototype.toString=function(){return String.fromCharCode(this.vf)};var ia=function ha(a,b,c){var f=new a.B(b[c]);if(c>24===a?n(ma):a<<16>>16===a?n(na):n(oa):n(pa);case "boolean":return n(qa);case "undefined":return n(ra);default:return null===a?a.$g():a instanceof p?n(sa):a instanceof fa?n(ta):a&&a.$classData?n(a.$classData):null}} +function ua(a){switch(typeof a){case "string":return"java.lang.String";case "number":return la(a)?a<<24>>24===a?"java.lang.Byte":a<<16>>16===a?"java.lang.Short":"java.lang.Integer":"java.lang.Float";case "boolean":return"java.lang.Boolean";case "undefined":return"java.lang.Void";default:return null===a?a.$g():a instanceof p?"java.lang.Long":a instanceof fa?"java.lang.Character":a&&a.$classData?a.$classData.name:null.Za.name}} +function va(a,b){switch(typeof a){case "string":return a===b;case "number":return Object.is(a,b);case "boolean":return a===b;case "undefined":return a===b;default:return a&&a.$classData||null===a?a.P(b):a instanceof fa?b instanceof fa?wa(a)===wa(b):!1:xa.prototype.P.call(a,b)}} +function ya(a){switch(typeof a){case "string":return za(a);case "number":return Aa(a);case "boolean":return a?1231:1237;case "undefined":return 0;default:return a&&a.$classData||null===a?a.Q():a instanceof fa?wa(a):xa.prototype.Q.call(a)}}function Ba(a,b,c){return"string"===typeof a?a.substring(b,c):a.ff(b,c)}function Ca(a){return void 0===a?"undefined":a.toString()}function Da(){return aa&&"object"===typeof aa&&"default"in aa?aa["default"]:aa} +function Ea(a,b,c,e,f){if(a!==c||e>=BigInt(32);return b;case "boolean":return a?1231:1237;case "undefined":return 0;case "symbol":return a=a.description,void 0===a?0:za(a);default:if(null===a)return 0;b=Ga.get(a);void 0===b&&(Fa=b=Fa+1|0,Ga.set(a,b));return b}}function la(a){return"number"===typeof a&&(a|0)===a&&1/a!==1/-0} +function Ha(a){return new fa(a)}function wa(a){return null===a?0:a.vf}function Ia(a){return null===a?da:a}function xa(){}xa.prototype.constructor=xa;function u(){}u.prototype=xa.prototype;xa.prototype.Q=function(){return r(this)};xa.prototype.P=function(a){return this===a};xa.prototype.u=function(){var a=this.Q();return ua(this)+"@"+(+(a>>>0)).toString(16)};xa.prototype.toString=function(){return this.u()}; +function v(a){if("number"===typeof a){this.a=Array(a);for(var b=0;bg===f;f.name=c;f.isPrimitive=!0;f.isInstance=()=>!1;void 0!==e&&(f.kd=Va(f,e));return f} +function w(a,b,c,e){var f=new Ta,g=ea(a);f.J=c;f.ec="L"+b+";";f.hc=h=>!!h.J[g];f.name=b;f.isInterface=!1;f.isInstance=e||(h=>!!(h&&h.$classData&&h.$classData.J[g]));return f}function Va(a,b,c){var e=new Ta;b.prototype.$classData=e;var f="["+a.ec;e.B=b;e.J={b:1,Mc:1,c:1};e.nd=a;e.ld=a;e.md=1;e.ec=f;e.name=f;e.isArrayClass=!0;e.hc=c||(g=>e===g);e.isInstance=g=>g instanceof b;return e} +function Wa(a){function b(k){if("number"===typeof k){this.a=Array(k);for(var m=0;m{var m=k.md;return m===f?e.hc(k.ld):m>f&&e===x};c.hc=h;c.isInstance=k=>{k=k&&k.$classData;return!!k&&(k===c||h(k))};return c} +function y(a){a.kd||(a.kd=Wa(a));return a.kd}function n(a){a.Ae||(a.Ae=new Xa(a));return a.Ae}Ta.prototype.isAssignableFrom=function(a){return this===a||this.hc(a)};Ta.prototype.checkCast=function(){};Ta.prototype.getSuperclass=function(){return this.Kh?n(this.Kh):null};Ta.prototype.getComponentType=function(){return this.nd?n(this.nd):null};Ta.prototype.newArrayOfThisClass=function(a){for(var b=this,c=0;c!a.isPrimitive;x.name="java.lang.Object";x.isInstance=a=>null!==a;x.kd=Va(x,v,a=>{var b=a.md;return 1===b?!a.ld.isPrimitive:1h=>{f.Zg(h,g);f.Yg(h)})(a,a,c)):a&&a.$classData&&a.$classData.J.xg?jb(b,((e,f)=>g=>{f.Yg(g)})(a,a)):a&&a.$classData&&a.$classData.J.Bg?jb(b,((e,f,g)=>h=>{f.Zg(h,g)})(a,a,c)):b}function kb(){}kb.prototype=new u;kb.prototype.constructor=kb;kb.prototype.$classData=w({yg:0},"anode.ClassSelector$",{yg:1,b:1});var lb;function mb(){this.ze=null}mb.prototype=new u;mb.prototype.constructor=mb; +function nb(){}nb.prototype=mb.prototype;function ob(a){this.Hg=a}ob.prototype=new u;ob.prototype.constructor=ob;ob.prototype.$classData=w({Gg:0},"anode.dsl.ElementConstructor",{Gg:1,b:1});function pb(){}pb.prototype=new u;pb.prototype.constructor=pb;pb.prototype.$classData=w({Jg:0},"anode.dsl.css.Styles$",{Jg:1,b:1});var qb;function rb(){this.lf=null}rb.prototype=new u;rb.prototype.constructor=rb;function sb(){}sb.prototype=rb.prototype;function tb(){}tb.prototype=new u; +tb.prototype.constructor=tb;tb.prototype.$classData=w({Lg:0},"anode.impl.Anode$",{Lg:1,b:1});var ub;function vb(){ub||(ub=new tb)}function wb(){this.mf=this.Nd=this.nf=null;this.Od=0;xb=this;yb||(yb=new zb);this.Nd=yb;Ab||(Ab=new Gb);this.mf=Ab;qb||(qb=new pb);Hb||(Hb=new Ib);var a=Hb;0===(16&a.Pd)&&0===(16&a.Pd)&&(a.Tg=Event,a.Pd|=16)}wb.prototype=new u;wb.prototype.constructor=wb;function Jb(){var a=Kb();0===(2&a.Od)<<24>>24&&0===(2&a.Od)<<24>>24&&(a.nf=Da(),a.Od=(2|a.Od)<<24>>24);return a.nf} +wb.prototype.$classData=w({Ng:0},"anode.package$",{Ng:1,b:1});var xb;function Kb(){xb||(xb=new wb);return xb}function Lb(){this.of="_anode_props";this.pf="_anode_state"}Lb.prototype=new u;Lb.prototype.constructor=Lb;Lb.prototype.$classData=w({Og:0},"anode.package$dictionaryNames$",{Og:1,b:1});var Mb;function Nb(){Mb||(Mb=new Lb);return Mb}function Ob(){}Ob.prototype=new u;Ob.prototype.constructor=Ob;Ob.prototype.$classData=w({Pg:0},"anode.package$preact$",{Pg:1,b:1});var Pb; +function Xa(a){this.Za=a}Xa.prototype=new u;Xa.prototype.constructor=Xa;Xa.prototype.u=function(){return(this.Za.isInterface?"interface ":this.Za.isPrimitive?"":"class ")+this.Za.name};function Qb(a){return a.Za.getComponentType()}function Rb(a,b){return a.Za.newArrayOfThisClass(b)}Xa.prototype.$classData=w({fh:0},"java.lang.Class",{fh:1,b:1}); +function Sb(){this.zf=this.Vd=this.qd=null;Tb=this;this.qd=new ArrayBuffer(8);this.Vd=new Int32Array(this.qd,0,2);new Float32Array(this.qd,0,2);this.zf=new Float64Array(this.qd,0,1);this.Vd[0]=16909060;new Int8Array(this.qd,0,8)}Sb.prototype=new u;Sb.prototype.constructor=Sb;function Ub(a,b){var c=b|0;if(c===b&&-Infinity!==1/b)return c;a.zf[0]=b;return(a.Vd[0]|0)^(a.Vd[1]|0)}Sb.prototype.$classData=w({hh:0},"java.lang.FloatingPointBits$",{hh:1,b:1});var Tb; +function Vb(){Tb||(Tb=new Sb);return Tb} +function Wb(){this.Cf=this.De=null;Xb=this;var a={"java.version":"1.8","java.vm.specification.version":"1.8","java.vm.specification.vendor":"Oracle Corporation","java.vm.specification.name":"Java Virtual Machine Specification","java.vm.name":"Scala.js"};a["java.vm.version"]=ba.linkerVersion;a["java.specification.version"]="1.8";a["java.specification.vendor"]="Oracle Corporation";a["java.specification.name"]="Java Platform API Specification";a["file.separator"]="/";a["path.separator"]=":";a["line.separator"]= +"\n";this.De=a;this.Cf=null}Wb.prototype=new u;Wb.prototype.constructor=Wb;function Yb(a,b,c){null!==a.De?(Zb||(Zb=new $b),a=a.De,ac||(ac=new bc),b=ac.Ef.call(a,b)?a[b]:c):b=Yb(a.Cf,b,c);return b}Wb.prototype.$classData=w({th:0},"java.lang.System$SystemProperties$",{th:1,b:1});var Xb;function cc(){Xb||(Xb=new Wb);return Xb}function $b(){}$b.prototype=new u;$b.prototype.constructor=$b;$b.prototype.$classData=w({yh:0},"java.lang.Utils$",{yh:1,b:1});var Zb; +function bc(){this.Ef=null;ac=this;this.Ef=Object.prototype.hasOwnProperty}bc.prototype=new u;bc.prototype.constructor=bc;bc.prototype.$classData=w({zh:0},"java.lang.Utils$Cache$",{zh:1,b:1});var ac,ra=w({Ah:0},"java.lang.Void",{Ah:1,b:1},a=>void 0===a);function dc(){}dc.prototype=new u;dc.prototype.constructor=dc;dc.prototype.$classData=w({Bh:0},"java.lang.reflect.Array$",{Bh:1,b:1});var ec;function fc(){ec||(ec=new dc)}function gc(){}gc.prototype=new u;gc.prototype.constructor=gc; +function z(a,b,c){a=hc(ic(),Qb(ja(b)));if(0>c)throw new jc;var e=b.a.length;e=ce)throw kc(c+" \x3e "+e);e=e-c|0;var f=b.a.length-c|0;f=e>24&&0===(1&a.Qb)<<24>>24&&(a.sf=a.qf,a.Qb=(1|a.Qb)<<24>>24);var b=a.sf;var c=pc().Kf,e=new D(Nb().of,"Russ");if(0===(2&a.Qb)<<24>>24&&0===(2&a.Qb)<<24>>24){lb||(lb=new kb);var f=ua(a);var g=qc().Hf.exec("[^\\w]");if(null!==g){g=g[1];if(void 0===g)throw new rc("undefined.get");for(var h="",k=0;k<(g.length|0);){var m=65535&(g.charCodeAt(k)|0);switch(m){case 92:case 46:case 40:case 41:case 91:case 93:case 123:case 125:case 124:case 63:case 42:case 43:case 94:case 36:m= +"\\"+Ha(m);break;default:m=Ha(m)}h=""+h+m;k=1+k|0}g=new sc(new D(h,0))}else g=xc();if(g.e())if(m=qc().Gf.exec("[^\\w]"),null!==m){g=m[0];if(void 0===g)throw new rc("undefined.get");g="[^\\w]".substring(g.length|0);k=0;h=m[1];if(void 0!==h)for(var q=h.length|0,t=0;t=A):A=!1,A)q=1+q|0;else break; +t="-".substring(t,q);t=Hc(Ic(),t);t=Jc(k)[t];Kc||(Kc=new Lc);t=void 0===t?null:t;null!==t&&Gc(m,t);break;case 92:q=1+q|0;q=g?"":f.substring(0,g));a.rf=f;a.Qb=(2|a.Qb)<< +24>>24}a=c.Qa.jb(new Oc([e,new D("key",a.rf)]));a=Pc(Qc(),a);b=Da().h(b,a);this.uf=new Rc(b)}mc.prototype=new u;mc.prototype.constructor=mc;mc.prototype.$classData=w({Qg:0},"mdocjs$",{Qg:1,b:1});var nc;function Ib(){this.Tg=null;this.Pd=0}Ib.prototype=new u;Ib.prototype.constructor=Ib;Ib.prototype.$classData=w({Sg:0},"org.scalajs.dom.package$",{Sg:1,b:1});var Hb;function Sc(a,b){for(a=a.i();a.l();)b.o(a.m())} +function Tc(a,b,c,e){a=a.i();var f=c,g=Uc(Vc(),b)-c|0;for(e=c+(e>>h|0;h=f>>>h|0;e&=-1+m|0;f&=-1+m|0;if(0===e)if(0===f)f=c,md(a,b,0===k&&h===f.a.length?f:B(C(),f,k,h));else{h>k&&(e=c,md(a,b,0===k&&h===e.a.length?e:B(C(),e,k,h)));h=c.a[h];b=-1+b|0;c=h;e=0;continue}else if(h===k){h=c.a[k];b=-1+b|0;c=h;continue}else if(ld(a,-1+b|0,c.a[k],e,m),0===f)h>(1+k|0)&&(f=c,k=1+k|0,md(a,b,0===k&&h===f.a.length?f:B(C(),f,k,h)));else{h> +(1+k|0)&&(e=c,k=1+k|0,md(a,b,0===k&&h===e.a.length?e:B(C(),e,k,h)));h=c.a[h];b=-1+b|0;c=h;e=0;continue}}break}};function md(a,b,c){b<=a.ma?b=11-b|0:(a.ma=b,b=-1+b|0);a.g.a[b]=c} +var pd=function od(a,b){if(null===a.g.a[-1+b|0])if(b===a.ma)a.g.a[-1+b|0]=a.g.a[11-b|0],a.g.a[11-b|0]=null;else{od(a,1+b|0);var e=a.g.a[-1+(1+b|0)|0];a.g.a[-1+b|0]=e.a[0];if(1===e.a.length)a.g.a[-1+(1+b|0)|0]=null,a.ma===(1+b|0)&&null===a.g.a[11-(1+b|0)|0]&&(a.ma=b);else{var f=e.a.length;a.g.a[-1+(1+b|0)|0]=B(C(),e,1,f)}}},rd=function qd(a,b){if(null===a.g.a[11-b|0])if(b===a.ma)a.g.a[11-b|0]=a.g.a[-1+b|0],a.g.a[-1+b|0]=null;else{qd(a,1+b|0);var e=a.g.a[11-(1+b|0)|0];a.g.a[11-b|0]=e.a[-1+e.a.length| +0];if(1===e.a.length)a.g.a[11-(1+b|0)|0]=null,a.ma===(1+b|0)&&null===a.g.a[-1+(1+b|0)|0]&&(a.ma=b);else{var f=-1+e.a.length|0;a.g.a[11-(1+b|0)|0]=B(C(),e,0,f)}}};function sd(a,b){this.g=null;this.ma=this.fd=this.fb=0;this.hg=a;this.gg=b;this.g=new (y(y(x)).B)(11);this.ma=this.fd=this.fb=0}sd.prototype=new u;sd.prototype.constructor=sd;function F(a,b,c){var e=l(c.a.length,1<f&&(nd(a,b,c,f,g),a.fb=a.fb+(g-f|0)|0);a.fd=a.fd+e|0} +sd.prototype.lb=function(){if(32>=this.fb){if(0===this.fb)return td();var a=this.g.a[0],b=this.g.a[10];if(null!==a)if(null!==b){var c=a.a.length+b.a.length|0,e=z(C(),a,c);b.I(0,e,a.a.length,b.a.length);var f=e}else f=a;else if(null!==b)f=b;else{var g=this.g.a[1];f=null!==g?g.a[0]:this.g.a[9].a[0]}return new ud(f)}pd(this,1);rd(this,1);var h=this.ma;if(6>h){var k=this.g.a[-1+this.ma|0],m=this.g.a[11-this.ma|0];if(null!==k&&null!==m)if(30>=(k.a.length+m.a.length|0)){var q=this.g,t=this.ma,A=k.a.length+ +m.a.length|0,M=z(C(),k,A);m.I(0,M,k.a.length,m.a.length);q.a[-1+t|0]=M;this.g.a[11-this.ma|0]=null}else h=1+h|0;else 30<(null!==k?k:m).a.length&&(h=1+h|0)}var J=this.g.a[0],Na=this.g.a[10],W=J.a.length,Bb=h;switch(Bb){case 2:var xh=G().pb,Gd=this.g.a[1];if(null!==Gd)var Hd=Gd;else{var Jf=this.g.a[9];Hd=null!==Jf?Jf:xh}var Cb=new vd(J,W,Hd,Na,this.fb);break;case 3:var Id=G().pb,Jd=this.g.a[1],Kf=null!==Jd?Jd:Id,Lf=G().Xb,Mf=this.g.a[2];if(null!==Mf)var Kd=Mf;else{var tc=this.g.a[8];Kd=null!==tc?tc: +Lf}var uc=Kd,yh=G().pb,Nf=this.g.a[9];Cb=new wd(J,W,Kf,W+(Kf.a.length<<5)|0,uc,null!==Nf?Nf:yh,Na,this.fb);break;case 4:var Of=G().pb,Pf=this.g.a[1],Ld=null!==Pf?Pf:Of,Qf=G().Xb,Rf=this.g.a[2],Md=null!==Rf?Rf:Qf,Sf=G().gd,Tf=this.g.a[3];if(null!==Tf)var Uf=Tf;else{var Vf=this.g.a[7];Uf=null!==Vf?Vf:Sf}var zh=Uf,Nd=G().Xb,Od=this.g.a[8],Ah=null!==Od?Od:Nd,Wf=G().pb,Pd=this.g.a[9],Xf=W+(Ld.a.length<<5)|0;Cb=new xd(J,W,Ld,Xf,Md,Xf+(Md.a.length<<10)|0,zh,Ah,null!==Pd?Pd:Wf,Na,this.fb);break;case 5:var Yf= +G().pb,vc=this.g.a[1],Db=null!==vc?vc:Yf,Eb=G().Xb,Zf=this.g.a[2],$f=null!==Zf?Zf:Eb,ag=G().gd,bg=this.g.a[3],Qd=null!==bg?bg:ag,cg=G().qe,dg=this.g.a[4];if(null!==dg)var Rd=dg;else{var Sd=this.g.a[6];Rd=null!==Sd?Sd:cg}var Bh=Rd,eg=G().gd,Td=this.g.a[7],Ch=null!==Td?Td:eg,Dh=G().Xb,fg=this.g.a[8],Eh=null!==fg?fg:Dh,Fh=G().pb,gg=this.g.a[9],wc=W+(Db.a.length<<5)|0,Ud=wc+($f.a.length<<10)|0;Cb=new yd(J,W,Db,wc,$f,Ud,Qd,Ud+(Qd.a.length<<15)|0,Bh,Ch,Eh,null!==gg?gg:Fh,Na,this.fb);break;case 6:var Gh= +G().pb,Vd=this.g.a[1],Wd=null!==Vd?Vd:Gh,hg=G().Xb,ig=this.g.a[2],Xd=null!==ig?ig:hg,Yd=G().gd,Fb=this.g.a[3],Za=null!==Fb?Fb:Yd,$a=G().qe,jg=this.g.a[4],kg=null!==jg?jg:$a,lg=G().ig,mg=this.g.a[5];if(null!==mg)var Zd=mg;else{var $d=this.g.a[5];Zd=null!==$d?$d:lg}var Hh=Zd,ng=G().qe,ae=this.g.a[6],Ih=null!==ae?ae:ng,og=G().gd,be=this.g.a[7],Jh=null!==be?be:og,pg=G().Xb,ce=this.g.a[8],Kh=null!==ce?ce:pg,Lh=G().pb,qg=this.g.a[9],rg=W+(Wd.a.length<<5)|0,sg=rg+(Xd.a.length<<10)|0,tg=sg+(Za.a.length<< +15)|0;Cb=new zd(J,W,Wd,rg,Xd,sg,Za,tg,kg,tg+(kg.a.length<<20)|0,Hh,Ih,Jh,Kh,null!==qg?qg:Lh,Na,this.fb);break;default:throw new E(Bb);}return Cb};sd.prototype.u=function(){return"VectorSliceBuilder(lo\x3d"+this.hg+", hi\x3d"+this.gg+", len\x3d"+this.fb+", pos\x3d"+this.fd+", maxDim\x3d"+this.ma+")"};sd.prototype.$classData=w({Fj:0},"scala.collection.immutable.VectorSliceBuilder",{Fj:1,b:1}); +function Ad(){this.ig=this.qe=this.gd=this.Xb=this.pb=this.Ve=null;Bd=this;this.Ve=new v(0);this.pb=new (y(y(x)).B)(0);this.Xb=new (y(y(y(x))).B)(0);this.gd=new (y(y(y(y(x)))).B)(0);this.qe=new (y(y(y(y(y(x))))).B)(0);this.ig=new (y(y(y(y(y(y(x)))))).B)(0)}Ad.prototype=new u;Ad.prototype.constructor=Ad;function Cd(a,b,c){a=Qb(ja(c));var e=1+c.a.length|0;fc();a=Rb(a,[e]);c.I(0,a,1,c.a.length);a.a[0]=b;return a} +function Dd(a,b,c,e){var f=0,g=c.a.length;if(0===b)for(;f>31;break a}}c=null===b?null===c:va(b,c)}else c=b instanceof fa?Te(b,c):null===b?null===c:va(b,c);return c} +function Se(a,b){if("number"===typeof a){a=+a;if("number"===typeof b)return a===+b;if(b instanceof p){var c=Ia(b);b=c.za;c=c.ya;return a===Ue(Ve(),b,c)}return!1}if(a instanceof p){c=Ia(a);a=c.za;c=c.ya;if(b instanceof p){b=Ia(b);var e=b.ya;return a===b.za&&c===e}return"number"===typeof b?(b=+b,Ue(Ve(),a,c)===b):!1}return null===a?null===b:va(a,b)} +function Te(a,b){if(b instanceof fa)return wa(a)===wa(b);if(Re(b)){if("number"===typeof b)return+b===wa(a);if(b instanceof p){b=Ia(b);var c=b.ya;a=wa(a);return b.za===a&&c===a>>31}return null===b?null===a:va(b,a)}return null===a&&null===b}Qe.prototype.$classData=w({pk:0},"scala.runtime.BoxesRunTime$",{pk:1,b:1});var We;function O(){We||(We=new Qe);return We}var Xe=w({sk:0},"scala.runtime.Null$",{sk:1,b:1});function Ye(){}Ye.prototype=new u;Ye.prototype.constructor=Ye; +function Wc(a,b,c,e){if(b instanceof v)b.a[c]=e;else if(b instanceof Pa)b.a[c]=e|0;else if(b instanceof Sa)b.a[c]=+e;else if(b instanceof Qa)b.a[c]=Ia(e);else if(b instanceof Ra)b.a[c]=+e;else if(b instanceof La)b.a[c]=wa(e);else if(b instanceof Ma)b.a[c]=e|0;else if(b instanceof Oa)b.a[c]=e|0;else if(b instanceof Ka)b.a[c]=!!e;else{if(null===b)throw new Ze;throw new E(b);}} +function Uc(a,b){fc();if(b instanceof v||b instanceof Ka||b instanceof La||b instanceof Ma||b instanceof Oa||b instanceof Pa||b instanceof Qa||b instanceof Ra||b instanceof Sa)a=b.a.length;else throw kc("argument type mismatch");return a}function $e(a){Vc();return Xc(new af(a),a.ia()+"(",",",")")}Ye.prototype.$classData=w({uk:0},"scala.runtime.ScalaRunTime$",{uk:1,b:1});var bf;function Vc(){bf||(bf=new Ye);return bf}function cf(){}cf.prototype=new u;cf.prototype.constructor=cf; +function P(a,b){if(null===b)return 0;if("number"===typeof b){a=+b;b=2147483647a?-2147483648:a|0;if(b===a)a=b;else{b=Ve();if(-9223372036854775808>a){b.Qd=-2147483648;var c=0}else if(0x7fffffffffffffff<=a)b.Qd=2147483647,c=-1;else{c=a|0;var e=a/4294967296|0;b.Qd=0>a&&0!==c?-1+e|0:e}b=b.Qd;a=Ue(Ve(),c,b)===a?c^b:Ub(Vb(),a)}return a}return b instanceof p?(a=Ia(b),b=new p(a.za,a.ya),a=b.za,b=b.ya,b===a>>31?a:a^b):ya(b)}function df(a,b){throw ef(new Q,""+b);} +cf.prototype.$classData=w({xk:0},"scala.runtime.Statics$",{xk:1,b:1});var ff;function R(){ff||(ff=new cf);return ff}function gf(){}gf.prototype=new u;gf.prototype.constructor=gf;function hf(a,b,c){a=b.length|0;for(var e=0;eg=>{f[g.bc]=g.cc})(a,c)));return c}of.prototype.$classData=w({gk:0},"scala.scalajs.js.special.package$",{gk:1,b:1});var pf;function Qc(){pf||(pf=new of);return pf} +function qf(){}qf.prototype=new u;qf.prototype.constructor=qf;function rf(a,b){if(b instanceof Oc)return b.df;var c=[];b.kb(new S(((e,f)=>g=>f.push(g)|0)(a,c)));return c}qf.prototype.$classData=w({lk:0},"scala.scalajs.runtime.Compat$",{lk:1,b:1});var sf;function tf(){sf||(sf=new qf);return sf}function uf(){}uf.prototype=new u;uf.prototype.constructor=uf;function vf(a){wf||(wf=new uf);return a instanceof xf?a.Jd:a}uf.prototype.$classData=w({ok:0},"scala.scalajs.runtime.package$",{ok:1,b:1});var wf; +function yf(){}yf.prototype=new u;yf.prototype.constructor=yf;function zf(){}zf.prototype=yf.prototype;function T(a,b){a=Af(a,b);return-430675100+l(5,a<<13|a>>>19|0)|0}function Af(a,b){b=l(-862048943,b);b=l(461845907,b<<15|b>>>17|0);return a^b}function Bf(a){a=l(-2048144789,a^(a>>>16|0));a=l(-1028477387,a^(a>>>13|0));return a^(a>>>16|0)} +function Cf(a){Df();var b=a.sa();if(0===b)return za(a.ia());var c=T(-889275714,za(a.ia()));for(var e=0;ec=>null!==c)(a))).N(new S((()=>c=>new D(c.id,c.jd))(a)));a=Pc(Qc(),a);return new Ff("style",a)} +function Gf(a){0===(32&a.Ud)<<24>>24&&0===(32&a.Ud)<<24>>24&&(a.yf=new Pa(new Int32Array([1632,1776,1984,2406,2534,2662,2790,2918,3046,3174,3302,3430,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,42528,43216,43264,43472,43600,44016,65296,66720,69734,69872,69942,70096,71360,120782,120792,120802,120812,120822])),a.Ud=(32|a.Ud)<<24>>24);return a.yf}function Hf(){this.yf=null;this.Ud=0}Hf.prototype=new u;Hf.prototype.constructor=Hf; +Hf.prototype.$classData=w({eh:0},"java.lang.Character$",{eh:1,b:1,c:1});var If;function ug(a){throw new vg('For input string: "'+a+'"');}function wg(){}wg.prototype=new u;wg.prototype.constructor=wg; +function Hc(a,b){a=null===b?0:b.length|0;0===a&&ug(b);var c=65535&(b.charCodeAt(0)|0),e=45===c,f=e?2147483648:2147483647;c=e||43===c?1:0;c>=(b.length|0)&&ug(b);for(var g=0;c!==a;){If||(If=new Hf);var h=If;var k=65535&(b.charCodeAt(c)|0);if(256>k)h=48<=k&&57>=k?-48+k|0:65<=k&&90>=k?-55+k|0:97<=k&&122>=k?-87+k|0:-1;else if(65313<=k&&65338>=k)h=-65303+k|0;else if(65345<=k&&65370>=k)h=-65335+k|0;else{var m=Gf(h);a:{C();for(var q=k,t=0,A=m.a.length;;){if(t===A){m=-1-t|0;break a}var M=(t+A|0)>>>1|0,J=m.a[M]; +if(qm?-2-m|0:m;0>m?h=-1:(h=k-Gf(h).a[m]|0,h=9h?h:-1;g=10*g+h;(-1===h||g>f)&&ug(b);c=1+c|0}return e?-g|0:g|0}function xg(a,b){a=b-(1431655765&b>>1)|0;a=(858993459&a)+(858993459&a>>2)|0;return l(16843009,252645135&(a+(a>>4)|0))>>24}wg.prototype.$classData=w({kh:0},"java.lang.Integer$",{kh:1,b:1,c:1});var yg;function Ic(){yg||(yg=new wg);return yg}function zg(){}zg.prototype=new u;zg.prototype.constructor=zg;function Ag(){} +Ag.prototype=zg.prototype;function Re(a){return a instanceof zg||"number"===typeof a}function U(a,b){a.Df=b;a.uh=null;a.vh=!0;a.wh=!0;a.wf()} +class Bg extends Error{constructor(){super();this.uh=this.Df=null;this.wh=this.vh=!1}Td(){return this.Df}wf(){"[object Error]"!==Object.prototype.toString.call(this)&&void 0!==Error.captureStackTrace&&Error.captureStackTrace(this)}u(){var a=ua(this),b=this.Td();return null===b?a:a+": "+b}Q(){return xa.prototype.Q.call(this)}P(a){return xa.prototype.P.call(this,a)}get ["message"](){var a=this.Td();return null===a?"":a}get ["name"](){return ua(this)}["toString"](){return this.u()}} +function Jc(a){if(null===a.Sb)throw new jd("No match available");return a.Sb}function zc(a,b,c,e){this.Sb=this.Pc=this.Xd=null;this.Wd=this.Fe=!1;this.Oc=0;this.Ff=null;this.Gh=a;this.Ee=b;this.Yd=c;this.Ge=e;a=this.Gh;b=new RegExp(a.Qc);this.Xd=Object.is(b,a.Qc)?new RegExp(a.Qc.source,(a.Qc.global?"g":"")+(a.Qc.ignoreCase?"i":"")+(a.Qc.multiline?"m":"")):b;this.Pc=Ca(Ba(this.Ee,this.Yd,this.Ge));this.Sb=null;this.Fe=!1;this.Wd=!0;this.Oc=0}zc.prototype=new u;zc.prototype.constructor=zc; +function Ec(a){if(a.Wd){a.Fe=!0;a.Sb=a.Xd.exec(a.Pc);if(null!==a.Sb){var b=a.Sb[0];if(void 0===b)throw new rc("undefined.get");""===b&&(b=a.Xd,b.lastIndex=1+(b.lastIndex|0)|0)}else a.Wd=!1;a.Ff=null;return null!==a.Sb}return!1}function Fc(a){return(Jc(a).index|0)+a.Yd|0}zc.prototype.$classData=w({Fh:0},"java.util.regex.Matcher",{Fh:1,b:1,Vk:1});function Ac(a,b){this.Qc=a;this.Jh=b}Ac.prototype=new u;Ac.prototype.constructor=Ac;Ac.prototype.u=function(){return this.Jh}; +Ac.prototype.$classData=w({Hh:0},"java.util.regex.Pattern",{Hh:1,b:1,c:1});function Cg(){this.Gf=this.Hf=null;Dg=this;this.Hf=/^\\Q(.|\n|\r)\\E$/;this.Gf=/^\(\?([idmsuxU]*)(?:-([idmsuxU]*))?\)/}Cg.prototype=new u;Cg.prototype.constructor=Cg;function yc(a,b){switch(b){case 105:return 2;case 100:return 1;case 109:return 8;case 115:return 32;case 117:return 64;case 120:return 4;case 85:return 256;default:throw kc("bad in-pattern flag");}} +Cg.prototype.$classData=w({Ih:0},"java.util.regex.Pattern$",{Ih:1,b:1,c:1});var Dg;function qc(){Dg||(Dg=new Cg);return Dg} +function Eg(a,b){if(0===(-2097152&b))b=""+(4294967296*b+ +(a>>>0));else{var c=(32+ca(1E9)|0)-(0!==b?ca(b):32+ca(a)|0)|0,e=c,f=0===(32&e)?1E9<>>(31-e|0)|0|0<=(-2147483648^q):(-2147483648^m)>=(-2147483648^t))k=h,m=e,h=g-f|0,k=(-2147483648^h)>(-2147483648^g)?-1+(k-m|0)|0:k-m|0,g=h,h=k,32>c?b|=1<>>1|0;f=f>>>1|0|e<<31;e=k}c=h;if(0===c?-1147483648<=(-2147483648^ +g):-2147483648<=(-2147483648^c))c=4294967296*h+ +(g>>>0),g=c/1E9,f=g/4294967296|0,e=b,b=g=e+(g|0)|0,a=(-2147483648^g)<(-2147483648^e)?1+(a+f|0)|0:a+f|0,g=c%1E9|0;c=""+g;b=""+(4294967296*a+ +(b>>>0))+"000000000".substring(c.length|0)+c}return b}function Fg(){this.Qd=0}Fg.prototype=new u;Fg.prototype.constructor=Fg;function Ue(a,b,c){return 0>c?-(4294967296*+((0!==b?~c:-c|0)>>>0)+ +((-b|0)>>>0)):4294967296*c+ +(b>>>0)} +Fg.prototype.$classData=w({Vg:0},"org.scalajs.linker.runtime.RuntimeLong$",{Vg:1,b:1,c:1});var Gg;function Ve(){Gg||(Gg=new Fg);return Gg}function Lc(){Kc=this}Lc.prototype=new u;Lc.prototype.constructor=Lc;Lc.prototype.$classData=w({Lh:0},"scala.$less$colon$less$",{Lh:1,b:1,c:1});var Kc;function Hg(){}Hg.prototype=new u;Hg.prototype.constructor=Hg; +function Ig(a,b,c,e,f,g){a=ja(b);var h;if(h=!!a.Za.isArrayClass)h=!!ja(e).Za.isAssignableFrom(a.Za);if(h)b.I(c,e,f,g);else for(a=c,c=c+g|0;ag=>{if(null!==g)if(g instanceof Element)f(g);else if(g instanceof Rh()){g=g.eBase;var h=Sh(Th(),f);void 0!==g&&h.o(g)}else if(null!==g)Mg||(Mg=new Lg),g=g.base,g=null===g?xc():new sc(g),g.e()?g=xc():(g=g.od(),g=new sc(g)),h=Sh(Th(),f),g.e()||h.o(g.od());else throw new E(g);})(a,void 0===c?b:((e,f,g)=>h=>{f(h);g(h)})(a,c,b)))}function Uh(){this.lf="color"}Uh.prototype=new sb;Uh.prototype.constructor=Uh; +Uh.prototype.$classData=w({Kg:0},"anode.dsl.css.Styles$color$",{Kg:1,Sk:1,b:1,Uk:1});var Vh,qa=w({bh:0},"java.lang.Boolean",{bh:1,b:1,c:1,Rb:1},a=>"boolean"===typeof a),ta=w({dh:0},"java.lang.Character",{dh:1,b:1,c:1,Rb:1},a=>a instanceof fa);class Wh extends Bg{}Wh.prototype.$classData=w({pa:0},"java.lang.Exception",{pa:1,qa:1,b:1,c:1});function oc(){this.rf=this.qf=this.sf=null;this.Qb=0;this.qf=Xh(this)}oc.prototype=new u;oc.prototype.constructor=oc; +oc.prototype.$classData=w({Rg:0},"mdocjs$$anonfun$1",{Rg:1,b:1,Ak:1,zk:1});function Yh(){this.Rc=null}Yh.prototype=new u;Yh.prototype.constructor=Yh;function Zh(){}Zh.prototype=Yh.prototype;Yh.prototype.U=function(a){return this.Rc.U(a)};Yh.prototype.$=function(){return this.Rc.$()};function $h(a,b){if(0>b)return 1;var c=a.s();if(0<=c)return c===b?0:c()=>e.i())(a,b)));a=ki(L(),b);return li(new mi,a)}hi.prototype.$=function(){var a=new ni;return new oi(a,new S((()=>b=>ii(pi(),b))(this)))};hi.prototype.U=function(a){return ii(this,a)};hi.prototype.$classData=w({Oi:0},"scala.collection.View$",{Oi:1,b:1,ja:1,c:1});var qi;function pi(){qi||(qi=new hi);return qi}function ri(a,b){this.hj=a;this.ij=b}ri.prototype=new u; +ri.prototype.constructor=ri;ri.prototype.j=function(){return this.hj};ri.prototype.T=function(){return this.ij};ri.prototype.$classData=w({gj:0},"scala.collection.immutable.LazyList$State$Cons",{gj:1,b:1,fj:1,c:1});function si(){}si.prototype=new u;si.prototype.constructor=si;si.prototype.pd=function(){throw new rc("head of empty lazy list");};si.prototype.T=function(){throw ti("tail of empty lazy list");};si.prototype.j=function(){this.pd()}; +si.prototype.$classData=w({jj:0},"scala.collection.immutable.LazyList$State$Empty$",{jj:1,b:1,fj:1,c:1});var ui;function vi(){ui||(ui=new si);return ui}function Be(){}Be.prototype=new u;Be.prototype.constructor=Be;Be.prototype.$classData=w({Sh:0},"scala.math.Equiv$",{Sh:1,b:1,Xk:1,c:1});var Ae;function Je(){}Je.prototype=new u;Je.prototype.constructor=Je;Je.prototype.$classData=w({Xh:0},"scala.math.Ordering$",{Xh:1,b:1,Yk:1,c:1});var Ie,kh=w({rk:0},"scala.runtime.Nothing$",{rk:1,qa:1,b:1,c:1}); +function wi(){}wi.prototype=new u;wi.prototype.constructor=wi;function Sh(a,b){return new S(((c,e)=>f=>e(f))(a,b))}wi.prototype.$classData=w({Zj:0},"scala.scalajs.js.Any$",{Zj:1,b:1,ll:1,ml:1});var xi;function Th(){xi||(xi=new wi);return xi}function V(a){this.ik=a}V.prototype=new sh;V.prototype.constructor=V;function cd(a){return(0,a.ik)()}V.prototype.$classData=w({hk:0},"scala.scalajs.runtime.AnonFunction0",{hk:1,nl:1,b:1,yk:1});function S(a){this.kk=a}S.prototype=new uh; +S.prototype.constructor=S;S.prototype.o=function(a){return(0,this.kk)(a)};S.prototype.$classData=w({jk:0},"scala.scalajs.runtime.AnonFunction1",{jk:1,ol:1,b:1,Z:1});function zb(){}zb.prototype=new u;zb.prototype.constructor=zb;zb.prototype.$classData=w({Fg:0},"anode.dsl.Attributes$",{Fg:1,b:1,Jk:1,Ck:1,Hk:1});var yb;function Rc(a){this.ib=a}Rc.prototype=new u;Rc.prototype.constructor=Rc;Rc.prototype.hf=function(){return this.ib}; +Rc.prototype.$classData=w({Mg:0},"anode.impl.VNodeJS$VN",{Mg:1,b:1,Bk:1,we:1,hd:1});var ma=w({ch:0},"java.lang.Byte",{ch:1,rd:1,b:1,c:1,Rb:1},a=>"number"===typeof a&&a<<24>>24===a&&1/a!==1/-0);function Aa(a){a=+a;return Ub(Vb(),a)}var pa=w({gh:0},"java.lang.Float",{gh:1,rd:1,b:1,c:1,Rb:1},a=>"number"===typeof a),oa=w({jh:0},"java.lang.Integer",{jh:1,rd:1,b:1,c:1,Rb:1},a=>la(a)),sa=w({lh:0},"java.lang.Long",{lh:1,rd:1,b:1,c:1,Rb:1},a=>a instanceof p);class yi extends Wh{} +yi.prototype.$classData=w({Ca:0},"java.lang.RuntimeException",{Ca:1,pa:1,qa:1,b:1,c:1});var na=w({ph:0},"java.lang.Short",{ph:1,rd:1,b:1,c:1,Rb:1},a=>"number"===typeof a&&a<<16>>16===a&&1/a!==1/-0);function za(a){for(var b=0,c=1,e=-1+(a.length|0)|0;0<=e;)b=b+l(65535&(a.charCodeAt(e)|0),c)|0,c=l(31,c),e=-1+e|0;return b}var ka=w({Wg:0},"java.lang.String",{Wg:1,b:1,c:1,Rb:1,Ce:1},a=>"string"===typeof a);function Bc(){this.Nc=null}Bc.prototype=new u;Bc.prototype.constructor=Bc;Bc.prototype.n=function(){return this.Nc.n()}; +function Gc(a,b){a=a.Nc;a.d=""+a.d+b}function Mc(a,b){a=a.Nc;b=String.fromCharCode(b);a.d=""+a.d+b}Bc.prototype.ff=function(a,b){return this.Nc.d.substring(a,b)};Bc.prototype.u=function(){return this.Nc.d};Bc.prototype.$classData=w({qh:0},"java.lang.StringBuffer",{qh:1,b:1,Ce:1,ah:1,c:1});function Cc(a){a.d="";return a}function zi(a){var b=new Dc;Cc(b);if(null===a)throw new Ze;b.d=a;return b}function Dc(){this.d=null}Dc.prototype=new u;Dc.prototype.constructor=Dc;Dc.prototype.u=function(){return this.d}; +Dc.prototype.n=function(){return this.d.length|0};function Ai(a,b){return 65535&(a.d.charCodeAt(b)|0)}Dc.prototype.ff=function(a,b){return this.d.substring(a,b)};Dc.prototype.$classData=w({rh:0},"java.lang.StringBuilder",{rh:1,b:1,Ce:1,ah:1,c:1});function p(a,b){this.za=a;this.ya=b}p.prototype=new Ag;p.prototype.constructor=p;p.prototype.P=function(a){return a instanceof p?this.za===a.za&&this.ya===a.ya:!1};p.prototype.Q=function(){return this.za^this.ya}; +p.prototype.u=function(){Ve();var a=this.za,b=this.ya;return b===a>>31?""+a:0>b?"-"+Eg(-a|0,0!==a?~b:-b|0):Eg(a,b)};p.prototype.$classData=w({Ug:0},"org.scalajs.linker.runtime.RuntimeLong",{Ug:1,rd:1,b:1,c:1,Rb:1});function Bi(){}Bi.prototype=new u;Bi.prototype.constructor=Bi;function Ci(){}d=Ci.prototype=Bi.prototype;d.i=function(){return this};d.e=function(){return!this.l()};d.fc=function(a){return(new Di(this)).fc(a)};d.Jc=function(a){return ci(this,a)};d.u=function(){return"\x3citerator\x3e"}; +d.Ka=function(a,b,c){return Tc(this,a,b,c)};d.dc=function(a,b,c,e){return Zc(this,a,b,c,e)};d.s=function(){return-1};function ne(){this.Rc=null;Ei||(Ei=new Fi);this.Rc=Ei}ne.prototype=new Zh;ne.prototype.constructor=ne;ne.prototype.$classData=w({wi:0},"scala.collection.Iterable$",{wi:1,xi:1,b:1,ja:1,c:1});var me;function Gi(){this.Qa=null}Gi.prototype=new u;Gi.prototype.constructor=Gi;function Hi(){}Hi.prototype=Gi.prototype;Gi.prototype.gc=function(a){return this.Qa.U(a)};Gi.prototype.$=function(){return this.Qa.$()}; +Gi.prototype.U=function(a){return this.gc(a)};Gi.prototype.jb=function(a){return this.Qa.jb(a)};function Ii(a,b){var c=a.s();if(-1!==c){var e=b.s();c=-1!==e&&c!==e}else c=!1;if(c)return!1;a:{a=a.i();for(b=b.i();a.l()&&b.l();)if(!N(O(),a.m(),b.m())){b=!1;break a}b=a.l()===b.l()}return b}function Ji(a,b){var c=a.ha().$();for(a=a.i();a.l();){var e=b.o(a.m());c.Ba(e)}return c.Da()}function Fi(){this.Rc=null;this.Rc=re()}Fi.prototype=new Zh;Fi.prototype.constructor=Fi; +Fi.prototype.U=function(a){return a&&a.$classData&&a.$classData.J.ka?a:Yh.prototype.U.call(this,a)};Fi.prototype.$classData=w({$i:0},"scala.collection.immutable.Iterable$",{$i:1,xi:1,b:1,ja:1,c:1});var Ei;function Ki(){this.Bd=null;Li=this;this.Bd=Mi(new X(new V((()=>()=>vi())(this))))}Ki.prototype=new u;Ki.prototype.constructor=Ki;Ki.prototype.jb=function(a){return ki(this,a)}; +function Ni(a,b,c,e){return new X(new V(((f,g,h,k)=>()=>{for(var m=null,q=!1,t=g.Ld;!q&&!t.e();)m=Y(t).j(),q=!!h.o(m)!==k,t=Y(t).T(),g.Ld=t;return q?(L(),t=Ni(L(),t,h,k),new ri(m,t)):vi()})(a,new wh(b),c,e)))}function Oi(a,b,c){return new X(new V(((e,f,g)=>()=>{for(var h=f.Ld,k=g.ef;0()=>Qi(L(),e.i()))(a,b)))} +function Ri(a,b,c){if(b.l()){var e=b.m();return new ri(e,new X(new V(((f,g,h)=>()=>Ri(L(),g,h))(a,b,c))))}return cd(c)}function Qi(a,b){if(b.l()){var c=b.m();return new ri(c,new X(new V(((e,f)=>()=>Qi(L(),f))(a,b))))}return vi()}Ki.prototype.$=function(){return new Si};Ki.prototype.U=function(a){return ki(this,a)};Ki.prototype.$classData=w({bj:0},"scala.collection.immutable.LazyList$",{bj:1,b:1,db:1,ja:1,c:1});var Li;function L(){Li||(Li=new Ki);return Li}function Ti(){}Ti.prototype=new u; +Ti.prototype.constructor=Ti;Ti.prototype.jb=function(a){return Ui(this,a)};function Ui(a,b){return b instanceof Vi?b:Wi(a,b.i())}function Wi(a,b){return b.l()?new Xi(b.m(),new V(((c,e)=>()=>Wi(ue(),e))(a,b))):Yi()}Ti.prototype.$=function(){var a=new ni;return new oi(a,new S((()=>b=>Ui(ue(),b))(this)))};function Zi(a,b,c,e){var f=b.j();return new Xi(f,new V(((g,h,k,m)=>()=>$i(h.k(),k,m))(a,b,c,e)))}Ti.prototype.U=function(a){return Ui(this,a)}; +Ti.prototype.$classData=w({sj:0},"scala.collection.immutable.Stream$",{sj:1,b:1,db:1,ja:1,c:1});var aj;function ue(){aj||(aj=new Ti);return aj}function bj(){cj=this}bj.prototype=new u;bj.prototype.constructor=bj;function dj(a,b){a=a.$();var c=b.s();0<=c&&a.sb(c);a.Aa(b);return a.Da()}bj.prototype.$=function(){var a=Yc();return new oi(a,new S((()=>b=>new ej(b))(this)))};bj.prototype.$classData=w({Ij:0},"scala.collection.immutable.WrappedString$",{Ij:1,b:1,jl:1,il:1,c:1});var cj; +function fj(){cj||(cj=new bj);return cj}function oi(a,b){this.lg=this.Hd=null;if(null===a)throw vf(null);this.Hd=a;this.lg=b}oi.prototype=new u;oi.prototype.constructor=oi;d=oi.prototype;d.sb=function(a){this.Hd.sb(a)};d.Da=function(){return this.lg.o(this.Hd.Da())};d.Aa=function(a){this.Hd.Aa(a);return this};d.Ba=function(a){this.Hd.Ba(a)};d.$classData=w({Pj:0},"scala.collection.mutable.Builder$$anon$1",{Pj:1,b:1,Yb:1,Nb:1,Mb:1});function gj(){this.Ic=null}gj.prototype=new u; +gj.prototype.constructor=gj;function hj(){}d=hj.prototype=gj.prototype;d.sb=function(){};d.Aa=function(a){this.Ic.Aa(a);return this};d.Ba=function(a){this.Ic.Ba(a)};d.Da=function(){return this.Ic};d.$classData=w({mg:0},"scala.collection.mutable.GrowableBuilder",{mg:1,b:1,Yb:1,Nb:1,Mb:1});function ij(a){this.cf=null;this.Kd=0;this.fk=a;this.cf=Object.keys(a);this.Kd=0}ij.prototype=new u;ij.prototype.constructor=ij;d=ij.prototype;d.i=function(){return this};d.e=function(){return!this.l()};d.fc=function(a){return(new Di(this)).fc(a)}; +d.Jc=function(a){return ci(this,a)};d.u=function(){return"\x3citerator\x3e"};d.Ka=function(a,b,c){return Tc(this,a,b,c)};d.dc=function(a,b,c,e){return Zc(this,a,b,c,e)};d.s=function(){return-1};d.l=function(){return this.Kd<(this.cf.length|0)};function jj(a){var b=a.cf[a.Kd];a.Kd=1+a.Kd|0;a=a.fk;nf||(nf=new mf);if(nf.sg.call(a,b))a=a[b];else throw new rc("key not found: "+b);return new D(b,a)}d.m=function(){return jj(this)}; +d.$classData=w({ek:0},"scala.scalajs.js.WrappedDictionary$DictionaryIterator",{ek:1,b:1,Pa:1,p:1,q:1}); +function kj(a){if(0===(2&a.Ja)<<24>>24){var b=[],c=[];if(null!==a.Zb&&(a.Zb.kb(new S(((f,g,h)=>k=>{if(k&&k.$classData&&k.$classData.J.wg)return g.push(k)|0;if(k instanceof lj)return k=mj(k),k=nj(qe(),oj(new pj,k)),g.push(...rf(tf(),k))|0;if(k instanceof qj)return h.push(k)|0})(a,b,c))),0!==(c.length|0))){var e=Kb().Nd;c=nj(qe(),oj(new pj,c));b.push(Ef(e,c))}a.ue=b;a.Ja=(2|a.Ja)<<24>>24}return a.ue} +function rj(a){if(0===(4&a.Ja)<<24>>24){var b=[];null!==a.Zb&&a.Zb.kb(new S(((c,e)=>f=>{if(f&&f.$classData&&f.$classData.J.we)return e.push(f)|0;if(f instanceof lj)return f=sj(f),f=nj(qe(),oj(new pj,f)),e.push(...rf(tf(),f))|0;null===f?(f=e.push,tj||(tj=new uj),f=f.call(e,tj)|0):f=void 0;return f})(a,b)));a.ve=b;a.Ja=(4|a.Ja)<<24>>24}return a.ve}function lj(a){this.ve=this.ue=this.jf=null;this.Ja=0;this.Zb=a}lj.prototype=new u;lj.prototype.constructor=lj; +function vj(a,b){var c=K();c=Pc(Qc(),c);b.kb(new S(((e,f)=>g=>{for(g=new ij(g.ac);g.l();){var h=jj(g);f[h.bc]=h.cc}})(a,c)));return new Ff("style",c)}function mj(a){return 0===(2&a.Ja)<<24>>24?kj(a):a.ue}function sj(a){return 0===(4&a.Ja)<<24>>24?rj(a):a.ve}d=lj.prototype;d.ia=function(){return"Args"};d.sa=function(){return 1};d.ta=function(a){return 0===a?this.Zb:df(R(),a)};d.Q=function(){return Cf(this)};d.u=function(){return $e(this)}; +d.P=function(a){if(this===a)return!0;if(a instanceof lj){var b=this.Zb;a=a.Zb;return null===b?null===a:b.P(a)}return!1};d.$classData=w({vg:0},"anode.Args",{vg:1,b:1,hd:1,La:1,t:1,c:1});var wj; +function Rh(){wj||(wj=class extends aa.Component{constructor(){super()}get ["eBase"](){return this.base}get ["eProps"](){return this.lookupProps()}get ["eState"](){return this.lookupState()}["eSetState"](a){this.setComponentState(a)}["cast"](a,b){return a[b]}["lookupProps"](...a){return this.cast(void 0===a[0]?this.props:a[0],Nb().of)}["lookupState"](...a){return this.cast(void 0===a[0]?this.state:a[0],Nb().pf)}["setComponentState"](a){var b=Nb().pf;a=new Oc([new D(b,a)]);this.setState(Pc(Qc(),a))}["componentWillReceiveProps"](){}}); +return wj}function xj(a,b){this.xe=this.ze=null;this.ye=b;if(null===a)throw vf(null);this.xe=a;this.ze=b}xj.prototype=new nb;xj.prototype.constructor=xj;d=xj.prototype;d.ia=function(){return"SimpleConstructor"};d.sa=function(){return 1};d.ta=function(a){return 0===a?this.ye:df(R(),a)};d.Q=function(){return Cf(this)};d.u=function(){return $e(this)};d.P=function(a){return this===a?!0:a instanceof xj&&a.xe===this.xe?this.ye===a.ye:!1}; +d.$classData=w({Eg:0},"anode.dsl.AttributSet$SimpleConstructor",{Eg:1,Dk:1,b:1,La:1,t:1,c:1});function kc(a){var b=new yj;U(b,a);return b}class yj extends yi{}yj.prototype.$classData=w({Af:0},"java.lang.IllegalArgumentException",{Af:1,Ca:1,pa:1,qa:1,b:1,c:1});class jd extends yi{constructor(a){super();U(this,a)}}jd.prototype.$classData=w({ih:0},"java.lang.IllegalStateException",{ih:1,Ca:1,pa:1,qa:1,b:1,c:1});function ef(a,b){U(a,b);return a}class Q extends yi{} +Q.prototype.$classData=w({Bf:0},"java.lang.IndexOutOfBoundsException",{Bf:1,Ca:1,pa:1,qa:1,b:1,c:1});class jc extends yi{constructor(){super();U(this,null)}}jc.prototype.$classData=w({mh:0},"java.lang.NegativeArraySizeException",{mh:1,Ca:1,pa:1,qa:1,b:1,c:1});class Ze extends yi{constructor(){super();U(this,null)}}Ze.prototype.$classData=w({nh:0},"java.lang.NullPointerException",{nh:1,Ca:1,pa:1,qa:1,b:1,c:1});function ti(a){var b=new bi;U(b,a);return b}class bi extends yi{} +bi.prototype.$classData=w({xh:0},"java.lang.UnsupportedOperationException",{xh:1,Ca:1,pa:1,qa:1,b:1,c:1});class zj extends yi{constructor(){super();U(this,"mutation occurred during iteration")}}zj.prototype.$classData=w({Dh:0},"java.util.ConcurrentModificationException",{Dh:1,Ca:1,pa:1,qa:1,b:1,c:1});class rc extends yi{constructor(a){super();U(this,a)}}rc.prototype.$classData=w({Eh:0},"java.util.NoSuchElementException",{Eh:1,Ca:1,pa:1,qa:1,b:1,c:1}); +class E extends yi{constructor(a){super();this.If=null;this.He=!1;this.Zd=a;U(this,null)}Td(){if(!this.He&&!this.He){if(null===this.Zd)var a="null";else try{a=Ca(this.Zd)+" (of class "+ua(this.Zd)+")"}catch(b){if(wf||(wf=new uf),null!==(b instanceof Bg?b:new xf(b)))a="an instance of class "+ua(this.Zd);else throw b;}this.If=a;this.He=!0}return this.If}}E.prototype.$classData=w({Nh:0},"scala.MatchError",{Nh:1,Ca:1,pa:1,qa:1,b:1,c:1});function Aj(){}Aj.prototype=new u;Aj.prototype.constructor=Aj; +function Bj(){}Bj.prototype=Aj.prototype;Aj.prototype.e=function(){return this===xc()};Aj.prototype.s=function(){return this.e()?0:1};Aj.prototype.i=function(){if(this.e())return I().va;I();var a=this.od();return new Cj(a)};function D(a,b){this.bc=a;this.cc=b}D.prototype=new u;D.prototype.constructor=D;d=D.prototype;d.sa=function(){return 2};d.ta=function(a){a:switch(a){case 0:a=this.bc;break a;case 1:a=this.cc;break a;default:throw ef(new Q,a+" is out of bounds (min 0, max 1)");}return a}; +d.u=function(){return"("+this.bc+","+this.cc+")"};d.ia=function(){return"Tuple2"};d.Q=function(){return Cf(this)};d.P=function(a){return this===a?!0:a instanceof D?N(O(),this.bc,a.bc)&&N(O(),this.cc,a.cc):!1};d.$classData=w({Xg:0},"scala.Tuple2",{Xg:1,b:1,Wk:1,La:1,t:1,c:1});function Dj(a,b){return a.Lc(new Ej(a,b))}function Fj(a,b){return a.ha().U(new Gj(a,b))}function fi(){}fi.prototype=new Ci;fi.prototype.constructor=fi;fi.prototype.l=function(){return!1};fi.prototype.s=function(){return 0}; +fi.prototype.m=function(){throw new rc("next on empty iterator");};fi.prototype.$classData=w({zi:0},"scala.collection.Iterator$$anon$19",{zi:1,mb:1,b:1,Pa:1,p:1,q:1});function Cj(a){this.Bi=a;this.Je=!1}Cj.prototype=new Ci;Cj.prototype.constructor=Cj;Cj.prototype.l=function(){return!this.Je};Cj.prototype.m=function(){if(this.Je)return I().va.m();this.Je=!0;return this.Bi};Cj.prototype.$classData=w({Ai:0},"scala.collection.Iterator$$anon$20",{Ai:1,mb:1,b:1,Pa:1,p:1,q:1}); +function Hj(a,b,c){this.ee=null;this.fe=!1;this.Pf=this.td=null;this.Of=!1;if(null===a)throw vf(null);this.td=a;this.Pf=b;this.Of=c;this.fe=!1}Hj.prototype=new Ci;Hj.prototype.constructor=Hj;Hj.prototype.l=function(){if(!this.fe){if(!this.td.l())return!1;for(this.ee=this.td.m();!!this.Pf.o(this.ee)===this.Of;){if(!this.td.l())return!1;this.ee=this.td.m()}this.fe=!0}return!0};Hj.prototype.m=function(){return this.l()?(this.fe=!1,this.ee):I().va.m()}; +Hj.prototype.$classData=w({Di:0},"scala.collection.Iterator$$anon$6",{Di:1,mb:1,b:1,Pa:1,p:1,q:1});function Ij(a,b){this.Qf=this.ge=null;if(null===a)throw vf(null);this.ge=a;this.Qf=b}Ij.prototype=new Ci;Ij.prototype.constructor=Ij;Ij.prototype.s=function(){return this.ge.s()};Ij.prototype.l=function(){return this.ge.l()};Ij.prototype.m=function(){return this.Qf.o(this.ge.m())};Ij.prototype.$classData=w({Ei:0},"scala.collection.Iterator$$anon$9",{Ei:1,mb:1,b:1,Pa:1,p:1,q:1}); +function Di(a){this.Fa=a;this.nb=this.cb=null;this.lc=!1}Di.prototype=new Ci;Di.prototype.constructor=Di; +Di.prototype.l=function(){if(this.lc)return!0;if(null!==this.Fa){if(this.Fa.l())return this.lc=!0;a:for(;;){if(null===this.cb){this.nb=this.Fa=null;var a=!1;break a}this.Fa=cd(this.cb.Hi).i();this.nb===this.cb&&(this.nb=this.nb.he);for(this.cb=this.cb.he;this.Fa instanceof Di;)a=this.Fa,this.Fa=a.Fa,this.lc=a.lc,null!==a.cb&&(null===this.nb&&(this.nb=a.nb),a.nb.he=this.cb,this.cb=a.cb);if(this.lc){a=!0;break a}if(null!==this.Fa&&this.Fa.l()){a=this.lc=!0;break a}}return a}return!1}; +Di.prototype.m=function(){return this.l()?(this.lc=!1,this.Fa.m()):I().va.m()};Di.prototype.fc=function(a){a=new $c(a,null);null===this.cb?this.cb=a:this.nb.he=a;this.nb=a;null===this.Fa&&(this.Fa=I().va);return this};Di.prototype.$classData=w({Fi:0},"scala.collection.Iterator$ConcatIterator",{Fi:1,mb:1,b:1,Pa:1,p:1,q:1});function Jj(a){this.ie=this.Tf=null;this.Tf=a;this.ie=new ad(this,new V((b=>()=>b.Tf)(this)))}Jj.prototype=new Ci;Jj.prototype.constructor=Jj;Jj.prototype.l=function(){return!bd(this.ie).e()}; +Jj.prototype.m=function(){if(this.l()){var a=bd(this.ie),b=a.j();this.ie=new ad(this,new V(((c,e)=>()=>e.k())(this,a)));return b}return I().va.m()};Jj.prototype.$classData=w({Ii:0},"scala.collection.LinearSeqIterator",{Ii:1,mb:1,b:1,Pa:1,p:1,q:1});function Kj(a){for(var b=0;!a.e();)b=1+b|0,a=a.k();return b}function Lj(a,b){if(0>b)throw ef(new Q,""+b);a=a.ba(b);if(a.e())throw ef(new Q,""+b);return a.j()} +function Mj(a,b){if(b&&b.$classData&&b.$classData.J.ud)a:for(;;){if(a===b){a=!0;break a}if((a.e()?0:!b.e())&&N(O(),a.j(),b.j()))a=a.k(),b=b.k();else{a=a.e()&&b.e();break a}}else a=Ii(a,b);return a}function Nj(a,b){for(var c=0;;){if(c===b)return a.e()?0:1;if(a.e())return-1;c=1+c|0;a=a.k()}}function Oj(a){this.le=a}Oj.prototype=new Ci;Oj.prototype.constructor=Oj;Oj.prototype.l=function(){return!this.le.e()};Oj.prototype.m=function(){var a=this.le.j();this.le=this.le.k();return a}; +Oj.prototype.$classData=w({Li:0},"scala.collection.StrictOptimizedLinearSeqOps$$anon$1",{Li:1,mb:1,b:1,Pa:1,p:1,q:1});function Pj(){this.Qa=null;this.Qa=ve()}Pj.prototype=new Hi;Pj.prototype.constructor=Pj;function nj(a,b){return Qj(b)?b:Gi.prototype.gc.call(a,b)}Pj.prototype.U=function(a){return nj(this,a)};Pj.prototype.gc=function(a){return nj(this,a)};Pj.prototype.$classData=w({Yi:0},"scala.collection.immutable.IndexedSeq$",{Yi:1,Le:1,b:1,db:1,ja:1,c:1});var Rj; +function qe(){Rj||(Rj=new Pj);return Rj}function Si(){this.$f=this.Uc=null;Sj(this)}Si.prototype=new u;Si.prototype.constructor=Si;d=Si.prototype;d.sb=function(){};function Sj(a){var b=new hd;L();a.$f=new X(new V(((c,e)=>()=>id(e))(a,b)));a.Uc=b}function Tj(a){kd(a.Uc,new V((()=>()=>vi())(a)));return a.$f}function Uj(a,b){var c=new hd;kd(a.Uc,new V(((e,f,g)=>()=>{L();L();return new ri(f,new X(new V(((h,k)=>()=>id(k))(e,g))))})(a,b,c)));a.Uc=c} +function Vj(a,b){if(0!==b.s()){var c=new hd;kd(a.Uc,new V(((e,f,g)=>()=>Ri(L(),f.i(),new V(((h,k)=>()=>id(k))(e,g))))(a,b,c)));a.Uc=c}return a}d.Aa=function(a){return Vj(this,a)};d.Ba=function(a){Uj(this,a)};d.Da=function(){return Tj(this)};d.$classData=w({cj:0},"scala.collection.immutable.LazyList$LazyBuilder",{cj:1,b:1,se:1,Yb:1,Nb:1,Mb:1});function Wj(a){this.Ad=a}Wj.prototype=new Ci;Wj.prototype.constructor=Wj;Wj.prototype.l=function(){return!this.Ad.e()}; +Wj.prototype.m=function(){if(this.Ad.e())return I().va.m();var a=Y(this.Ad).j();this.Ad=Y(this.Ad).T();return a};Wj.prototype.$classData=w({ej:0},"scala.collection.immutable.LazyList$LazyIterator",{ej:1,mb:1,b:1,Pa:1,p:1,q:1});function Xj(){Yj=this;K();K()}Xj.prototype=new u;Xj.prototype.constructor=Xj;Xj.prototype.jb=function(a){return Zj(K(),a)};Xj.prototype.$=function(){return new ak};Xj.prototype.U=function(a){return Zj(K(),a)}; +Xj.prototype.$classData=w({lj:0},"scala.collection.immutable.List$",{lj:1,b:1,wd:1,db:1,ja:1,c:1});var Yj;function re(){Yj||(Yj=new Xj);return Yj} +function bk(a){a.wa<=a.R&&I().va.m();a.tc=1+a.tc|0;for(var b=a.cg.hb(a.tc);0===b.a.length;)a.tc=1+a.tc|0,b=a.cg.hb(a.tc);a.pe=a.Wc;var c=a.nj/2|0,e=a.tc-c|0;a.sc=(1+c|0)-(0>e?-e|0:e)|0;c=a.sc;switch(c){case 1:a.eb=b;break;case 2:a.pc=b;break;case 3:a.qc=b;break;case 4:a.rc=b;break;case 5:a.Vc=b;break;case 6:a.Te=b;break;default:throw new E(c);}a.Wc=a.pe+l(b.a.length,1<a.Wb&&(a.Wc=a.Wb);1c?a.eb=a.pc.a[31&(b>>>5|0)]:(32768>c?a.pc=a.qc.a[31&(b>>>10|0)]:(1048576>c?a.qc=a.rc.a[31&(b>>>15|0)]:(33554432>c?a.rc=a.Vc.a[31&(b>>>20|0)]:(a.Vc=a.Te.a[b>>>25|0],a.rc=a.Vc.a[0]),a.qc=a.rc.a[0]),a.pc=a.qc.a[0]),a.eb=a.pc.a[0]);a.Cd=b}a.wa=a.wa-a.R|0;b=a.eb.a.length;c=a.wa;a.Vb=bthis.R};d.m=function(){this.R===this.Vb&&ck(this);var a=this.eb.a[this.R];this.R=1+this.R|0;return a}; +d.Jc=function(a){if(0=this.Wc;)bk(this);b=a-this.pe|0;if(1c||(32768>c||(1048576>c||(33554432>c||(this.Vc=this.Te.a[b>>>25|0]),this.rc=this.Vc.a[31&(b>>>20|0)]),this.qc=this.rc.a[31&(b>>>15|0)]),this.pc=this.qc.a[31&(b>>>10|0)]);this.eb=this.pc.a[31&(b>>>5|0)];this.Cd=b}this.Vb=this.eb.a.length;this.R=31&b;this.wa=this.R+(this.Wb-a|0)|0;this.Vb>this.wa&& +(this.Vb=this.wa)}}return this};d.Ka=function(a,b,c){var e=Uc(Vc(),a),f=this.wa-this.R|0;c=c=b?(a&&a.$classData&&a.$classData.J.ka?(b=new v(b),a.Ka(b,0,2147483647),a=b):(b=new v(b),a.i().Ka(b,0,2147483647),a=b),new ud(a)):ik(new jk,a).lb()}ek.prototype.$=function(){return new jk};ek.prototype.U=function(a){return gk(a)};ek.prototype.$classData=w({wj:0},"scala.collection.immutable.Vector$",{wj:1,b:1,wd:1,db:1,ja:1,c:1});var fk;function ve(){fk||(fk=new ek);return fk} +function kk(a,b){var c=b.a.length;if(0h?-h|0:h)|0;1===g?kk(a,f):Dd(G(),-2+g|0,f,new S((k=>m=>{kk(k,m)})(a)));e=1+e|0}return a} +function lk(a){var b=32+a.V|0,c=b^a.V;a.V=b;a.y=0;if(1024>c)1===a.L&&(a.x=new (y(y(x)).B)(32),a.x.a[0]=a.C,a.L=1+a.L|0),a.C=new v(32),a.x.a[31&(b>>>5|0)]=a.C;else if(32768>c)2===a.L&&(a.z=new (y(y(y(x))).B)(32),a.z.a[0]=a.x,a.L=1+a.L|0),a.C=new v(32),a.x=new (y(y(x)).B)(32),a.x.a[31&(b>>>5|0)]=a.C,a.z.a[31&(b>>>10|0)]=a.x;else if(1048576>c)3===a.L&&(a.H=new (y(y(y(y(x)))).B)(32),a.H.a[0]=a.z,a.L=1+a.L|0),a.C=new v(32),a.x=new (y(y(x)).B)(32),a.z=new (y(y(y(x))).B)(32),a.x.a[31&(b>>>5|0)]=a.C,a.z.a[31& +(b>>>10|0)]=a.x,a.H.a[31&(b>>>15|0)]=a.z;else if(33554432>c)4===a.L&&(a.O=new (y(y(y(y(y(x))))).B)(32),a.O.a[0]=a.H,a.L=1+a.L|0),a.C=new v(32),a.x=new (y(y(x)).B)(32),a.z=new (y(y(y(x))).B)(32),a.H=new (y(y(y(y(x)))).B)(32),a.x.a[31&(b>>>5|0)]=a.C,a.z.a[31&(b>>>10|0)]=a.x,a.H.a[31&(b>>>15|0)]=a.z,a.O.a[31&(b>>>20|0)]=a.H;else if(1073741824>c)5===a.L&&(a.Y=new (y(y(y(y(y(y(x)))))).B)(64),a.Y.a[0]=a.O,a.L=1+a.L|0),a.C=new v(32),a.x=new (y(y(x)).B)(32),a.z=new (y(y(y(x))).B)(32),a.H=new (y(y(y(y(x)))).B)(32), +a.O=new (y(y(y(y(y(x))))).B)(32),a.x.a[31&(b>>>5|0)]=a.C,a.z.a[31&(b>>>10|0)]=a.x,a.H.a[31&(b>>>15|0)]=a.z,a.O.a[31&(b>>>20|0)]=a.H,a.Y.a[31&(b>>>25|0)]=a.O;else throw kc("advance1("+b+", "+c+"): a1\x3d"+a.C+", a2\x3d"+a.x+", a3\x3d"+a.z+", a4\x3d"+a.H+", a5\x3d"+a.O+", a6\x3d"+a.Y+", depth\x3d"+a.L);}function jk(){this.C=this.x=this.z=this.H=this.O=this.Y=null;this.L=this.xa=this.V=this.y=0;this.C=new v(32);this.xa=this.V=this.y=0;this.L=1}jk.prototype=new u;jk.prototype.constructor=jk;d=jk.prototype; +d.sb=function(){};function nk(a,b){a.L=1;var c=b.a.length;a.y=31&c;a.V=c-a.y|0;a.C=32===b.a.length?b:B(C(),b,0,32);0===a.y&&0=a){if(32===b)return new ud(this.C);var c=this.C;return new ud(z(C(),c,b))}if(1024>=a){var e=31&(-1+a|0),f=(-1+a|0)>>>5|0,g=this.x,h=B(C(),g,1,f),k=this.x.a[0],m=this.x.a[f],q=1+e|0,t=m.a.length===q?m:z(C(),m,q);return new vd(k,32-this.xa|0,h,t,b)}if(32768>=a){var A=31&(-1+a|0),M=31&((-1+a|0)>>>5|0),J=(-1+a|0)>>>10|0,Na=this.z,W=B(C(),Na,1,J),Bb=this.z.a[0],xh=Bb.a.length,Gd=B(C(),Bb,1,xh),Hd=this.z.a[0].a[0],Jf=this.z.a[J], +Cb=z(C(),Jf,M),Id=this.z.a[J].a[M],Jd=1+A|0,Kf=Id.a.length===Jd?Id:z(C(),Id,Jd),Lf=Hd.a.length;return new wd(Hd,Lf,Gd,Lf+(Gd.a.length<<5)|0,W,Cb,Kf,b)}if(1048576>=a){var Mf=31&(-1+a|0),Kd=31&((-1+a|0)>>>5|0),tc=31&((-1+a|0)>>>10|0),uc=(-1+a|0)>>>15|0,yh=this.H,Nf=B(C(),yh,1,uc),Of=this.H.a[0],Pf=Of.a.length,Ld=B(C(),Of,1,Pf),Qf=this.H.a[0].a[0],Rf=Qf.a.length,Md=B(C(),Qf,1,Rf),Sf=this.H.a[0].a[0].a[0],Tf=this.H.a[uc],Uf=z(C(),Tf,tc),Vf=this.H.a[uc].a[tc],zh=z(C(),Vf,Kd),Nd=this.H.a[uc].a[tc].a[Kd], +Od=1+Mf|0,Ah=Nd.a.length===Od?Nd:z(C(),Nd,Od),Wf=Sf.a.length,Pd=Wf+(Md.a.length<<5)|0;return new xd(Sf,Wf,Md,Pd,Ld,Pd+(Ld.a.length<<10)|0,Nf,Uf,zh,Ah,b)}if(33554432>=a){var Xf=31&(-1+a|0),Yf=31&((-1+a|0)>>>5|0),vc=31&((-1+a|0)>>>10|0),Db=31&((-1+a|0)>>>15|0),Eb=(-1+a|0)>>>20|0,Zf=this.O,$f=B(C(),Zf,1,Eb),ag=this.O.a[0],bg=ag.a.length,Qd=B(C(),ag,1,bg),cg=this.O.a[0].a[0],dg=cg.a.length,Rd=B(C(),cg,1,dg),Sd=this.O.a[0].a[0].a[0],Bh=Sd.a.length,eg=B(C(),Sd,1,Bh),Td=this.O.a[0].a[0].a[0].a[0],Ch=this.O.a[Eb], +Dh=z(C(),Ch,Db),fg=this.O.a[Eb].a[Db],Eh=z(C(),fg,vc),Fh=this.O.a[Eb].a[Db].a[vc],gg=z(C(),Fh,Yf),wc=this.O.a[Eb].a[Db].a[vc].a[Yf],Ud=1+Xf|0,Gh=wc.a.length===Ud?wc:z(C(),wc,Ud),Vd=Td.a.length,Wd=Vd+(eg.a.length<<5)|0,hg=Wd+(Rd.a.length<<10)|0;return new yd(Td,Vd,eg,Wd,Rd,hg,Qd,hg+(Qd.a.length<<15)|0,$f,Dh,Eh,gg,Gh,b)}var ig=31&(-1+a|0),Xd=31&((-1+a|0)>>>5|0),Yd=31&((-1+a|0)>>>10|0),Fb=31&((-1+a|0)>>>15|0),Za=31&((-1+a|0)>>>20|0),$a=(-1+a|0)>>>25|0,jg=this.Y,kg=B(C(),jg,1,$a),lg=this.Y.a[0],mg=lg.a.length, +Zd=B(C(),lg,1,mg),$d=this.Y.a[0].a[0],Hh=$d.a.length,ng=B(C(),$d,1,Hh),ae=this.Y.a[0].a[0].a[0],Ih=ae.a.length,og=B(C(),ae,1,Ih),be=this.Y.a[0].a[0].a[0].a[0],Jh=be.a.length,pg=B(C(),be,1,Jh),ce=this.Y.a[0].a[0].a[0].a[0].a[0],Kh=this.Y.a[$a],Lh=z(C(),Kh,Za),qg=this.Y.a[$a].a[Za],rg=z(C(),qg,Fb),sg=this.Y.a[$a].a[Za].a[Fb],tg=z(C(),sg,Yd),Am=this.Y.a[$a].a[Za].a[Fb].a[Yd],Bm=z(C(),Am,Xd),Pi=this.Y.a[$a].a[Za].a[Fb].a[Yd].a[Xd],el=1+ig|0,Cm=Pi.a.length===el?Pi:z(C(),Pi,el),fl=ce.a.length,gl=fl+(pg.a.length<< +5)|0,hl=gl+(og.a.length<<10)|0,il=hl+(ng.a.length<<15)|0;return new zd(ce,fl,pg,gl,og,hl,ng,il,Zd,il+(Zd.a.length<<20)|0,kg,Lh,rg,tg,Bm,Cm,b)};d.u=function(){return"VectorBuilder(len1\x3d"+this.y+", lenRest\x3d"+this.V+", offset\x3d"+this.xa+", depth\x3d"+this.L+")"};d.Da=function(){return this.lb()};d.Aa=function(a){return ik(this,a)};d.Ba=function(a){ok(this,a)};d.$classData=w({Ej:0},"scala.collection.immutable.VectorBuilder",{Ej:1,b:1,se:1,Yb:1,Nb:1,Mb:1});function pk(){}pk.prototype=new u; +pk.prototype.constructor=pk;pk.prototype.jb=function(a){return qk(a)};function qk(a){var b=a.s();if(0<=b){var c=new v(16a=>new Oc(a.Ob))(this)))};Mk.prototype.U=function(a){return Nk(this,a)};Mk.prototype.$classData=w({nk:0},"scala.scalajs.runtime.WrappedVarArgs$",{nk:1,b:1,wd:1,db:1,ja:1,c:1});var Ok;function Pk(){Ok||(Ok=new Mk);return Ok}var Qk=Symbol(); +function Xh(a){var $superClass=Rh();return class extends $superClass{constructor(){super();this[Qk]=null;if(null===a)throw vf(null);this[Qk]=a}["componentDidMount"](){this[Qk]}["componentWillMount"](){this[Qk]}["componentWillUnmount"](){this[Qk]}["render"](c){var e=this[Qk],f=this.lookupProps(c);c=Kb().mf.kf;f=new Rk("Hello "+f+"!");var g=Kb().Nd;Vh||(Vh=new Uh);f=[f,Ef(g,new Oc([new qj(Vh.lf,Ca("blue"))]))];f=new lj(new Oc(f));vb();c=c.Hg;if(0===(1&f.Ja)<<24>>24&&0===(1&f.Ja)<<24>>24){g=mj(f);for(var h= +[],k=g.length|0,m=0;m=(h.length|0))){k=Kb().Nd;k=new xj(k,"class");m=h.length|0;q=Array(m);for(var t=0;t=(h.length|0))){k=[];m=g.length|0;for(q=0;q>24}g=f.jf;f=sj(f);h=Da();k=f.length|0;m=Array(k);for(q=0;qa?0:a);return this};d.$classData=w({ti:0},"scala.collection.IndexedSeqView$IndexedSeqViewIterator",{ti:1,mb:1,b:1,Pa:1,p:1,q:1,c:1});function gi(){this.Id=null;this.Id=I().va}gi.prototype=new zk;gi.prototype.constructor=gi;function bl(a,b){a.Id=a.Id.fc(new V(((c,e)=>()=>{I();return new Cj(e)})(a,b)))}gi.prototype.Ba=function(a){bl(this,a)}; +gi.prototype.$classData=w({Ci:0},"scala.collection.Iterator$$anon$21",{Ci:1,kl:1,b:1,se:1,Yb:1,Nb:1,Mb:1});function ph(a){this.ae=a}ph.prototype=new u;ph.prototype.constructor=ph;d=ph.prototype;d.P=function(a){if(a&&a.$classData&&a.$classData.J.Ea){var b=this.ua();a=a.ua();b=b===a}else b=!1;return b};d.Q=function(){var a=this.ae;return P(R(),a)};d.u=function(){return Hk(this,this.ae)};d.ua=function(){return this.ae};d.ra=function(a){var b=this.ae;fc();return Rb(b,[a])}; +d.$classData=w({$h:0},"scala.reflect.ClassTag$GenericClassTag",{$h:1,b:1,Ea:1,Ma:1,Na:1,c:1,t:1});function cl(){this.X=null;this.F=0}cl.prototype=new u;cl.prototype.constructor=cl;function dl(){}dl.prototype=cl.prototype;cl.prototype.u=function(){return this.X};cl.prototype.P=function(a){return this===a};cl.prototype.Q=function(){return this.F};function jl(){}jl.prototype=new u;jl.prototype.constructor=jl;function kl(){}kl.prototype=jl.prototype; +class xf extends yi{constructor(a){super();this.Jd=a;U(this,null)}Td(){return Ca(this.Jd)}wf(){}ia(){return"JavaScriptException"}sa(){return 1}ta(a){return 0===a?this.Jd:df(R(),a)}Q(){return Cf(this)}P(a){if(this===a)return!0;if(a instanceof xf){var b=this.Jd;a=a.Jd;return N(O(),b,a)}return!1}}xf.prototype.$classData=w({ak:0},"scala.scalajs.js.JavaScriptException",{ak:1,Ca:1,pa:1,qa:1,b:1,c:1,La:1,t:1});function ll(){this.X=null;this.F=0}ll.prototype=new dl;ll.prototype.constructor=ll; +function ml(){}ml.prototype=ll.prototype;ll.prototype.ua=function(){return n(ab)};ll.prototype.ra=function(a){return new Ka(a)};function nl(){this.X=null;this.F=0}nl.prototype=new dl;nl.prototype.constructor=nl;function ol(){}ol.prototype=nl.prototype;nl.prototype.ua=function(){return n(cb)};nl.prototype.ra=function(a){return new Ma(a)};function pl(){this.X=null;this.F=0}pl.prototype=new dl;pl.prototype.constructor=pl;function ql(){}ql.prototype=pl.prototype;pl.prototype.ua=function(){return n(bb)}; +pl.prototype.ra=function(a){return new La(a)};function rl(){this.X=null;this.F=0}rl.prototype=new dl;rl.prototype.constructor=rl;function sl(){}sl.prototype=rl.prototype;rl.prototype.ua=function(){return n(hb)};rl.prototype.ra=function(a){return new Sa(a)};function tl(){this.X=null;this.F=0}tl.prototype=new dl;tl.prototype.constructor=tl;function ul(){}ul.prototype=tl.prototype;tl.prototype.ua=function(){return n(gb)};tl.prototype.ra=function(a){return new Ra(a)}; +function vl(){this.X=null;this.F=0}vl.prototype=new dl;vl.prototype.constructor=vl;function wl(){}wl.prototype=vl.prototype;vl.prototype.ua=function(){return n(eb)};vl.prototype.ra=function(a){return new Pa(a)};function xl(){this.X=null;this.F=0}xl.prototype=new dl;xl.prototype.constructor=xl;function yl(){}yl.prototype=xl.prototype;xl.prototype.ua=function(){return n(fb)};xl.prototype.ra=function(a){return new Qa(a)};function zl(){this.be=null;this.ic=0}zl.prototype=new kl; +zl.prototype.constructor=zl;function Al(){}Al.prototype=zl.prototype;zl.prototype.u=function(){return this.be};zl.prototype.P=function(a){return this===a};zl.prototype.Q=function(){return this.ic};function Bl(){this.X=null;this.F=0}Bl.prototype=new dl;Bl.prototype.constructor=Bl;function Cl(){}Cl.prototype=Bl.prototype;Bl.prototype.ua=function(){return n(db)};Bl.prototype.ra=function(a){return new Oa(a)};function Dl(){this.X=null;this.F=0}Dl.prototype=new dl;Dl.prototype.constructor=Dl; +function El(){}El.prototype=Dl.prototype;Dl.prototype.ua=function(){return n(Ya)};Dl.prototype.ra=function(a){return new (y(ra).B)(a)};function Fl(){}Fl.prototype=new Wk;Fl.prototype.constructor=Fl;function Gl(){}Gl.prototype=Fl.prototype;Fl.prototype.ha=function(){return pi()};Fl.prototype.u=function(){return this.Ya()+"(\x3cnot computed\x3e)"};Fl.prototype.da=function(){return"View"};function fh(){this.F=0;this.X="Boolean";this.F=r(this)}fh.prototype=new ml;fh.prototype.constructor=fh; +fh.prototype.$classData=w({ai:0},"scala.reflect.ManifestFactory$BooleanManifest$",{ai:1,Zk:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var eh;function Sg(){this.F=0;this.X="Byte";this.F=r(this)}Sg.prototype=new ol;Sg.prototype.constructor=Sg;Sg.prototype.$classData=w({bi:0},"scala.reflect.ManifestFactory$ByteManifest$",{bi:1,$k:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var Rg;function Wg(){this.F=0;this.X="Char";this.F=r(this)}Wg.prototype=new ql;Wg.prototype.constructor=Wg; +Wg.prototype.$classData=w({ci:0},"scala.reflect.ManifestFactory$CharManifest$",{ci:1,al:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var Vg;function dh(){this.F=0;this.X="Double";this.F=r(this)}dh.prototype=new sl;dh.prototype.constructor=dh;dh.prototype.$classData=w({di:0},"scala.reflect.ManifestFactory$DoubleManifest$",{di:1,bl:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var ch;function bh(){this.F=0;this.X="Float";this.F=r(this)}bh.prototype=new ul;bh.prototype.constructor=bh; +bh.prototype.$classData=w({ei:0},"scala.reflect.ManifestFactory$FloatManifest$",{ei:1,cl:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var ah;function Yg(){this.F=0;this.X="Int";this.F=r(this)}Yg.prototype=new wl;Yg.prototype.constructor=Yg;Yg.prototype.$classData=w({fi:0},"scala.reflect.ManifestFactory$IntManifest$",{fi:1,dl:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var Xg;function $g(){this.F=0;this.X="Long";this.F=r(this)}$g.prototype=new yl;$g.prototype.constructor=$g; +$g.prototype.$classData=w({gi:0},"scala.reflect.ManifestFactory$LongManifest$",{gi:1,el:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var Zg;function mh(){this.ic=0;this.be="Nothing";xc();pc();n(kh);this.ic=r(this)}mh.prototype=new Al;mh.prototype.constructor=mh;mh.prototype.ua=function(){return n(kh)};mh.prototype.ra=function(a){return new v(a)};mh.prototype.$classData=w({hi:0},"scala.reflect.ManifestFactory$NothingManifest$",{hi:1,Mf:1,Lf:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var lh; +function oh(){this.ic=0;this.be="Null";xc();pc();n(Xe);this.ic=r(this)}oh.prototype=new Al;oh.prototype.constructor=oh;oh.prototype.ua=function(){return n(Xe)};oh.prototype.ra=function(a){return new v(a)};oh.prototype.$classData=w({ii:0},"scala.reflect.ManifestFactory$NullManifest$",{ii:1,Mf:1,Lf:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var nh;function jh(){this.ic=0;this.be="Object";xc();pc();n(x);this.ic=r(this)}jh.prototype=new Al;jh.prototype.constructor=jh;jh.prototype.ua=function(){return n(x)}; +jh.prototype.ra=function(a){return new v(a)};jh.prototype.$classData=w({ji:0},"scala.reflect.ManifestFactory$ObjectManifest$",{ji:1,Mf:1,Lf:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var ih;function Ug(){this.F=0;this.X="Short";this.F=r(this)}Ug.prototype=new Cl;Ug.prototype.constructor=Ug;Ug.prototype.$classData=w({ki:0},"scala.reflect.ManifestFactory$ShortManifest$",{ki:1,fl:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var Tg;function hh(){this.F=0;this.X="Unit";this.F=r(this)}hh.prototype=new El; +hh.prototype.constructor=hh;hh.prototype.$classData=w({li:0},"scala.reflect.ManifestFactory$UnitManifest$",{li:1,gl:1,Tb:1,b:1,ab:1,Ea:1,Ma:1,Na:1,c:1,t:1});var gh;function Hl(a,b){return a===b?!0:b&&b.$classData&&b.$classData.J.aa&&b.Sd(a)?a.jc(b):!1}function ji(a){this.Qi=a}ji.prototype=new Gl;ji.prototype.constructor=ji;ji.prototype.i=function(){return cd(this.Qi)};ji.prototype.$classData=w({Pi:0},"scala.collection.View$$anon$1",{Pi:1,bb:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,Ta:1,c:1}); +function Yk(a,b,c){a.xd=b;a.me=c;a.Tc=0>31;var k=g>>>31|0|g>>31<<1;for(g=(h===k?(-2147483648^c)>(-2147483648^g<<1):h>k)?g:c;f()=>{if(e.e())return vi();L();var g=f.o(Y(e).j()),h=fm(Y(e).T(),f);return new ri(g,h)})(a,b)))}; +function hm(a,b,c,e,f){b.d=""+b.d+c;if(!a.Ga)b.d+="\x3cnot computed\x3e";else if(!a.e()){c=Y(a).j();b.d=""+b.d+c;c=a;var g=Y(a).T();if(c!==g&&(!g.Ga||Y(c)!==Y(g))&&(c=g,g.Ga&&!g.e()))for(g=Y(g).T();c!==g&&g.Ga&&!g.e()&&Y(c)!==Y(g);){b.d=""+b.d+e;var h=Y(c).j();b.d=""+b.d+h;c=Y(c).T();g=Y(g).T();g.Ga&&!g.e()&&(g=Y(g).T())}if(!g.Ga||g.e()){for(;c!==g;)b.d=""+b.d+e,a=Y(c).j(),b.d=""+b.d+a,c=Y(c).T();c.Ga||(b.d=""+b.d+e,b.d+="\x3cnot computed\x3e")}else{h=a;for(a=0;;){var k=h,m=g;if(k!==m&&Y(k)!==Y(m))h= +Y(h).T(),g=Y(g).T(),a=1+a|0;else break}h=c;k=g;(h===k||Y(h)===Y(k))&&0a?1:Nj(this,a)};d.v=function(a){return Lj(this,a)};d.jc=function(a){return Mj(this,a)};function Y(a){if(!a.Re&&!a.Re){if(a.Se)throw a=new yi,U(a,"self-referential LazyList or a derivation thereof has no more elements"),vf(a);a.Se=!0;try{var b=cd(a.ag)}finally{a.Se=!1}a.Ga=!0;a.ag=null;a.bg=b;a.Re=!0}return a.bg}d.e=function(){return Y(this)===vi()};d.s=function(){return this.Ga&&this.e()?0:-1};d.j=function(){return Y(this).j()}; +function Mi(a){var b=a,c=a;for(b.e()||(b=Y(b).T());c!==b&&!b.e();){b=Y(b).T();if(b.e())break;b=Y(b).T();if(b===c)break;c=Y(c).T()}return a}d.i=function(){return this.Ga&&this.e()?I().va:new Wj(this)};d.kb=function(a){for(var b=this;!b.e();)a.o(Y(b).j()),b=Y(b).T()};d.Ya=function(){return"LazyList"};d.dc=function(a,b,c,e){Mi(this);hm(this,a.W,b,c,e);return a};d.u=function(){return hm(this,zi("LazyList"),"(",", ",")").d};d.o=function(a){return Lj(this,a|0)}; +d.ba=function(a){return 0>=a?this:this.Ga&&this.e()?L().Bd:Oi(L(),this,a)};d.N=function(a){return this.Ga&&this.e()?L().Bd:gm(this,a)};d.Kc=function(a){return this.Ga&&this.e()?L().Bd:Ni(L(),this,a,!1)};d.k=function(){return Y(this).T()};d.ha=function(){return L()};d.$classData=w({aj:0},"scala.collection.immutable.LazyList",{aj:1,Va:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,la:1,ka:1,Ha:1,ne:1,ud:1,je:1,oe:1,c:1}); +function im(a,b,c,e,f){b.d=""+b.d+c;if(!a.e()){c=a.j();b.d=""+b.d+c;c=a;if(a.Pb()){var g=a.k();if(c!==g&&(c=g,g.Pb()))for(g=g.k();c!==g&&g.Pb();){b.d=""+b.d+e;var h=c.j();b.d=""+b.d+h;c=c.k();g=g.k();g.Pb()&&(g=g.k())}if(g.Pb()){for(h=0;a!==g;)a=a.k(),g=g.k(),h=1+h|0;c===g&&0a?1:Nj(this,a)};d.v=function(a){return Lj(this,a)};d.jc=function(a){return Mj(this,a)};d.Ya=function(){return"Stream"}; +d.kb=function(a){for(var b=this;!b.e();)a.o(b.j()),b=b.k()};function $i(a,b,c){for(;!a.e()&&!!b.o(a.j())===c;)a=a.k();return a.e()?Yi():Zi(ue(),a,b,c)}function km(a,b){if(a.e())return Yi();var c=b.o(a.j());return new Xi(c,new V(((e,f)=>()=>km(e.k(),f))(a,b)))}d.dc=function(a,b,c,e){this.xf();im(this,a.W,b,c,e);return a};d.u=function(){return im(this,zi("Stream"),"(",", ",")").d};d.o=function(a){return Lj(this,a|0)};d.N=function(a){return km(this,a)};d.Kc=function(a){return $i(this,a,!1)};d.ha=function(){return ue()}; +function ej(a){this.na=a}ej.prototype=new Zl;ej.prototype.constructor=ej;d=ej.prototype;d.Sd=function(a){return am(this,a)};d.da=function(){return"IndexedSeq"};d.i=function(){return new al(new cm(this.na))};d.ba=function(a){return Dj(this,a)};d.N=function(a){return Fj(this,a)};d.j=function(){return Ha(65535&(this.na.charCodeAt(0)|0))};d.S=function(a){var b=this.na.length|0;return b===a?0:b(e.length|0)||0>c||0>c)throw a=new Sk,U(a,"Index out of Bound"),a;b=b-0|0;for(var f=0;fA=>!!m.o(A)!==q?ok(t,A):void 0)(a,b,!1,g)));return g.lb()}if(0===e)return td();b=new v(e);a.f.I(0,b,0,c);for(g=1+c|0;c!==e;)0!==(1<A=>!!m.o(A)!==q?ok(t,A):void 0)(a,b,!1,c))),c.lb()):a}d.Ya=function(){return"Vector"};d.Ka=function(a,b,c){return this.i().Ka(a,b,c)};d.Rd=function(){return ve().eg};d.ga=function(a){return ef(new Q,a+" is out of bounds (min 0, max "+(-1+this.n()|0)+")")};d.j=function(){if(0===this.f.a.length)throw new rc("empty.head");return this.f.a[0]}; +d.kb=function(a){for(var b=this.gb(),c=0;cg?-g|0:g)|0)|0,this.hb(c),a);c=1+c|0}};d.ba=function(a){var b=this.n();a=0a)a=1;else a:for(var b=this,c=0;;){if(c===a){a=b.e()?0:1;break a}if(b.e()){a=-1;break a}c=1+c|0;b=b.k()}return a};d.Ya=function(){return"List"};d.P=function(a){var b;if(a instanceof Ph)a:for(b=this;;){if(b===a){b=!0;break a}var c=b.e(),e=a.e();if(c||e||!N(O(),b.j(),a.j())){b=c&&e;break a}b=b.k();a=a.k()}else b=Hl(this,a);return b};d.o=function(a){return Lj(this,a|0)}; +d.ba=function(a){a:for(var b=this;;){if(0>=a||b.e())break a;a=-1+a|0;b=b.k()}return b}; +d.Kc=function(a){a:for(var b=this;;){if(b.e()){a=K();break a}var c=b.j(),e=b.k();if(!1!==!!a.o(c)){b:for(;;){if(e.e()){a=b;break b}c=e.j();if(!1!==!!a.o(c))e=e.k();else{var f=b;c=e;b=new Z(f.j(),K());f=f.k();for(e=b;f!==c;){var g=new Z(f.j(),K());e=e.Ua=g;f=f.k()}for(f=c=c.k();!c.e();){g=c.j();if(!1===!!a.o(g)){for(;f!==c;)g=new Z(f.j(),K()),e=e.Ua=g,f=f.k();f=c.k()}c=c.k()}f.e()||(e.Ua=f);a=b;break b}}break a}b=e}return a}; +d.N=function(a){if(this===K())a=K();else{for(var b=new Z(a.o(this.j()),K()),c=b,e=this.k();e!==K();){var f=new Z(a.o(e.j()),K());c=c.Ua=f;e=e.k()}a=b}return a};d.ha=function(){return re()};function vm(){this.f=null}vm.prototype=new pm;vm.prototype.constructor=vm;function wm(){}wm.prototype=vm.prototype;function xm(a,b,c,e){a.r=c;a.w=e;a.f=b}function rm(){this.r=this.f=null;this.w=0}rm.prototype=new wm;rm.prototype.constructor=rm;function ym(){}ym.prototype=rm.prototype; +function sm(a,b){for(var c=a.gb(),e=1;eh?-h|0:h)|0)|0,a.hb(e),b);e=1+e|0}}function ud(a){this.f=a}ud.prototype=new wm;ud.prototype.constructor=ud;d=ud.prototype;d.v=function(a){if(0<=a&&a>>5|0,a>>5|0,b>>10|0;var c=31&(b>>>5|0);b&=31;return a=this.uc?(b=a-this.uc|0,this.vc.a[b>>>5|0].a[31&b]):this.f.a[a]}throw this.ga(a);}; +d.$a=function(a){var b=Ed(G(),this.f,a),c=H(G(),2,this.vc,a),e=H(G(),3,this.yb,a),f=H(G(),2,this.zb,a);a=Ed(G(),this.r,a);return new wd(b,this.uc,c,this.Dd,e,f,a,this.w)};d.Xa=function(a,b){a=new sd(a,b);F(a,1,this.f);F(a,2,this.vc);F(a,3,this.yb);F(a,2,this.zb);F(a,1,this.r);return a.lb()};d.Ia=function(){if(1>>10|0;var c=31&(a>>>5|0);a&=31;return b=this.uc?(a=b-this.uc|0,this.vc.a[a>>>5|0].a[31&a]):this.f.a[b]}throw this.ga(b);};d.$classData=w({Aj:0},"scala.collection.immutable.Vector3",{Aj:1,zd:1,ed:1,Xc:1,Va:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,la:1,ka:1,Ha:1,vb:1,Oa:1,fa:1,Ub:1,wb:1,Sa:1,Ra:1,ob:1,c:1}); +function xd(a,b,c,e,f,g,h,k,m,q,t){this.r=this.f=null;this.w=0;this.wc=b;this.xc=c;this.Zc=e;this.yc=f;this.Ed=g;this.Ab=h;this.Cb=k;this.Bb=m;xm(this,a,q,t)}xd.prototype=new ym;xd.prototype.constructor=xd;d=xd.prototype; +d.v=function(a){if(0<=a&&a>>15|0;var c=31&(b>>>10|0),e=31&(b>>>5|0);b&=31;return a=this.Zc?(b=a-this.Zc|0,this.yc.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.wc?(b=a-this.wc|0,this.xc.a[b>>>5|0].a[31&b]):this.f.a[a]}throw this.ga(a);}; +d.$a=function(a){var b=Ed(G(),this.f,a),c=H(G(),2,this.xc,a),e=H(G(),3,this.yc,a),f=H(G(),4,this.Ab,a),g=H(G(),3,this.Cb,a),h=H(G(),2,this.Bb,a);a=Ed(G(),this.r,a);return new xd(b,this.wc,c,this.Zc,e,this.Ed,f,g,h,a,this.w)};d.Xa=function(a,b){a=new sd(a,b);F(a,1,this.f);F(a,2,this.xc);F(a,3,this.yc);F(a,4,this.Ab);F(a,3,this.Cb);F(a,2,this.Bb);F(a,1,this.r);return a.lb()}; +d.Ia=function(){if(1>>15|0;var c=31&(a>>>10|0),e=31&(a>>>5|0);a&=31;return b=this.Zc?(a=b-this.Zc|0,this.yc.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>=this.wc?(a=b-this.wc|0,this.xc.a[a>>>5|0].a[31&a]):this.f.a[b]}throw this.ga(b);}; +d.$classData=w({Bj:0},"scala.collection.immutable.Vector4",{Bj:1,zd:1,ed:1,Xc:1,Va:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,la:1,ka:1,Ha:1,vb:1,Oa:1,fa:1,Ub:1,wb:1,Sa:1,Ra:1,ob:1,c:1});function yd(a,b,c,e,f,g,h,k,m,q,t,A,M,J){this.r=this.f=null;this.w=0;this.zc=b;this.Ac=c;this.$c=e;this.Bc=f;this.ad=g;this.Cc=h;this.Fd=k;this.Db=m;this.Gb=q;this.Fb=t;this.Eb=A;xm(this,a,M,J)}yd.prototype=new ym;yd.prototype.constructor=yd;d=yd.prototype; +d.v=function(a){if(0<=a&&a>>20|0;var c=31&(b>>>15|0),e=31&(b>>>10|0),f=31&(b>>>5|0);b&=31;return a=this.ad?(b=a-this.ad|0,this.Cc.a[b>>>15|0].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31&b]):a>=this.$c?(b=a-this.$c|0,this.Bc.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.zc? +(b=a-this.zc|0,this.Ac.a[b>>>5|0].a[31&b]):this.f.a[a]}throw this.ga(a);};d.$a=function(a){var b=Ed(G(),this.f,a),c=H(G(),2,this.Ac,a),e=H(G(),3,this.Bc,a),f=H(G(),4,this.Cc,a),g=H(G(),5,this.Db,a),h=H(G(),4,this.Gb,a),k=H(G(),3,this.Fb,a),m=H(G(),2,this.Eb,a);a=Ed(G(),this.r,a);return new yd(b,this.zc,c,this.$c,e,this.ad,f,this.Fd,g,h,k,m,a,this.w)}; +d.Xa=function(a,b){a=new sd(a,b);F(a,1,this.f);F(a,2,this.Ac);F(a,3,this.Bc);F(a,4,this.Cc);F(a,5,this.Db);F(a,4,this.Gb);F(a,3,this.Fb);F(a,2,this.Eb);F(a,1,this.r);return a.lb()};d.Ia=function(){if(1>>20|0;var c=31&(a>>>15|0),e=31&(a>>>10|0),f=31&(a>>>5|0);a&=31;return b=this.ad?(a=b-this.ad|0,this.Cc.a[a>>>15|0].a[31&(a>>>10|0)].a[31&(a>>>5|0)].a[31&a]):b>=this.$c?(a=b-this.$c|0,this.Bc.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>= +this.zc?(a=b-this.zc|0,this.Ac.a[a>>>5|0].a[31&a]):this.f.a[b]}throw this.ga(b);};d.$classData=w({Cj:0},"scala.collection.immutable.Vector5",{Cj:1,zd:1,ed:1,Xc:1,Va:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,la:1,ka:1,Ha:1,vb:1,Oa:1,fa:1,Ub:1,wb:1,Sa:1,Ra:1,ob:1,c:1}); +function zd(a,b,c,e,f,g,h,k,m,q,t,A,M,J,Na,W,Bb){this.r=this.f=null;this.w=0;this.Dc=b;this.Ec=c;this.bd=e;this.Fc=f;this.cd=g;this.Gc=h;this.dd=k;this.Hc=m;this.Gd=q;this.Hb=t;this.Lb=A;this.Kb=M;this.Jb=J;this.Ib=Na;xm(this,a,W,Bb)}zd.prototype=new ym;zd.prototype.constructor=zd;d=zd.prototype; +d.v=function(a){if(0<=a&&a>>25|0;var c=31&(b>>>20|0),e=31&(b>>>15|0),f=31&(b>>>10|0),g=31&(b>>>5|0);b&=31;return a=this.dd?(b=a-this.dd|0,this.Hc.a[b>>>20|0].a[31&(b>>>15|0)].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31& +b]):a>=this.cd?(b=a-this.cd|0,this.Gc.a[b>>>15|0].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31&b]):a>=this.bd?(b=a-this.bd|0,this.Fc.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.Dc?(b=a-this.Dc|0,this.Ec.a[b>>>5|0].a[31&b]):this.f.a[a]}throw this.ga(a);}; +d.$a=function(a){var b=Ed(G(),this.f,a),c=H(G(),2,this.Ec,a),e=H(G(),3,this.Fc,a),f=H(G(),4,this.Gc,a),g=H(G(),5,this.Hc,a),h=H(G(),6,this.Hb,a),k=H(G(),5,this.Lb,a),m=H(G(),4,this.Kb,a),q=H(G(),3,this.Jb,a),t=H(G(),2,this.Ib,a);a=Ed(G(),this.r,a);return new zd(b,this.Dc,c,this.bd,e,this.cd,f,this.dd,g,this.Gd,h,k,m,q,t,a,this.w)}; +d.Xa=function(a,b){a=new sd(a,b);F(a,1,this.f);F(a,2,this.Ec);F(a,3,this.Fc);F(a,4,this.Gc);F(a,5,this.Hc);F(a,6,this.Hb);F(a,5,this.Lb);F(a,4,this.Kb);F(a,3,this.Jb);F(a,2,this.Ib);F(a,1,this.r);return a.lb()};d.Ia=function(){if(1>>25|0;var c=31&(a>>>20|0),e=31&(a>>>15|0),f=31&(a>>>10|0),g=31&(a>>>5|0);a&=31;return b=this.dd?(a=b-this.dd|0,this.Hc.a[a>>>20|0].a[31&(a>>>15|0)].a[31&(a>>>10|0)].a[31&(a>>> +5|0)].a[31&a]):b>=this.cd?(a=b-this.cd|0,this.Gc.a[a>>>15|0].a[31&(a>>>10|0)].a[31&(a>>>5|0)].a[31&a]):b>=this.bd?(a=b-this.bd|0,this.Fc.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>=this.Dc?(a=b-this.Dc|0,this.Ec.a[a>>>5|0].a[31&a]):this.f.a[b]}throw this.ga(b);};d.$classData=w({Dj:0},"scala.collection.immutable.Vector6",{Dj:1,zd:1,ed:1,Xc:1,Va:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,la:1,ka:1,Ha:1,vb:1,Oa:1,fa:1,Ub:1,wb:1,Sa:1,Ra:1,ob:1,c:1}); +function Yc(){var a=new Gm;a.W=Cc(new Dc);return a}function Gm(){this.W=null}Gm.prototype=new em;Gm.prototype.constructor=Gm;d=Gm.prototype;d.da=function(){return"IndexedSeq"};d.i=function(){var a=new Xl(this);return new al(a)};d.ba=function(a){return Dj(this,a)};d.N=function(a){return Fj(this,a)};d.j=function(){return Ha(Ai(this.W,0))};d.S=function(a){var b=this.W.n();return b===a?0:b()=>a.$e)(this)))};d.v=function(a){return Lj(this.rb,a)};d.n=function(){return this.oa};d.s=function(){return this.oa}; +d.e=function(){return 0===this.oa};function um(a){a.re=!a.e();return a.rb}function Dk(a,b){if(b===a)0>31,g=b>>31;if(!(g===f?(-2147483648^b)<=(-2147483648^e):g>>31|0|g.ya<<1;g=(0===g?-2147483632<(-2147483648^f):0>31;var k=f,m=g;if(h===m?(-2147483648^b)>(-2147483648^k):h>m)g=f>>>31|0|g<<1,f<<=1;else break}b=g;if(0===b?-1<(-2147483648^f):0a)throw ef(new Q,a+" is out of bounds (min 0, max "+(-1+this.M|0)+")");if(b>this.M)throw ef(new Q,(-1+b|0)+" is out of bounds (min 0, max "+(-1+this.M|0)+")");return this.qb.a[a]};d.n=function(){return this.M};function sk(a,b){b instanceof rk?(wk(a,a.M+b.M|0),Ig(Kg(),b.qb,0,a.qb,a.M,b.M),a.M=a.M+b.M|0):Ng(a,b);return a}d.da=function(){return"ArrayBuffer"}; +d.Ka=function(a,b,c){var e=this.M,f=Uc(Vc(),a);c=cb)throw ef(new Q,b+" is out of bounds (min 0, max "+(-1+this.M|0)+")");if(c>this.M)throw ef(new Q,(-1+c|0)+" is out of bounds (min 0, max "+(-1+this.M|0)+")");this.qb.a[b]=a};d.ha=function(){return vk()};d.o=function(a){return this.v(a|0)}; +d.$classData=w({Jj:0},"scala.collection.mutable.ArrayBuffer",{Jj:1,jg:1,We:1,ea:1,G:1,b:1,A:1,p:1,E:1,q:1,D:1,aa:1,ca:1,Z:1,K:1,t:1,af:1,Ze:1,bf:1,Ye:1,Mc:1,kg:1,Nb:1,Mb:1,rg:1,Qj:1,ng:1,Oa:1,fa:1,og:1,Sa:1,Ra:1,ob:1,c:1});function oj(a,b){a.Ob=b;return a}function Kk(){var a=new pj;oj(a,[]);return a}function pj(){this.Ob=null}pj.prototype=new om;pj.prototype.constructor=pj;d=pj.prototype;d.sb=function(){};d.da=function(){return"IndexedSeq"};d.i=function(){var a=new Xl(this);return new al(a)}; +d.ba=function(a){return Dj(this,a)};d.N=function(a){return Fj(this,a)};d.j=function(){return this.Ob[0]};d.S=function(a){var b=this.Ob.length|0;return b===a?0:b3)for(t=[t],o=3;o0?y(v.type,v.props,v.key,null,v.__v):v)){if(v.__=t,v.__b=t.__b+1,null===(h=S[p])||h&&v.key==h.key&&v.type===h.type)S[p]=void 0;else for(a=0;a3)for(t=[t],o=3;o} [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 > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = 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 ? ++options._vnodeId : original\n\t};\n\n\tif (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) this._renderCallbacks.push(callback);\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 * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\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 || defer)(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}\nprocess._rerenderCount = 0;\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.childNodes.length\n\t\t\t? EMPTY_ARR.slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\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","/**\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","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\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\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\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 (typeof childVNode == 'string' || typeof childVNode == 'number') {\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\tnull,\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 != null && // Can be null if childVNode suspended\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\texcessDomChildren,\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\t// Browsers will infer an option's `value` from `textContent` when\n\t\t\t// no value is present. This essentially bypasses our code to set it\n\t\t\t// later in `diff()`. It works fine in all browsers except for IE11\n\t\t\t// where it breaks setting `select.value`. There it will be always set\n\t\t\t// to an empty string. Re-applying an options value will fix that, so\n\t\t\t// there are probably some internal data structures that aren't\n\t\t\t// updated properly.\n\t\t\t//\n\t\t\t// To fix it we make sure to reset the inferred value, so that our own\n\t\t\t// value check in `diff()` won't be skipped.\n\t\t\tif (!isHydrating && newParentVNode.type === 'option') {\n\t\t\t\t// @ts-ignore We have validated that the type of parentDOM is 'option'\n\t\t\t\t// in the above check\n\t\t\t\tparentDom.value = '';\n\t\t\t} else if (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 children that are not part of any vnode.\n\tif (excessDomChildren != null && typeof newParentVNode.type != 'function') {\n\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t}\n\t}\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\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\tfor (let tmp = 0; tmp < childVNode._children.length; tmp++) {\n\t\tlet vnode = childVNode._children[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(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tchildVNode._children,\n\t\t\t\t\tnull,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\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\texcessDomChildren,\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\texcessDomChildren == oldVNode ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t// The values only have the same type when `null`.\n\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} 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}\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\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\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.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\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 i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; 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 != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\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 (newVNode.type === 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\tnewVNode.type\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\tnewVNode.type,\n\t\t\t\tnewProps.is && { is: newProps.is }\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 (newVNode.type === 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\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\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 (let 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\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\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 || (newVNode.type === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { assign } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\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 > 3) {\n\t\tchildren = [children];\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tconst wasHydrating = vnode._hydrating;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\tvnode._hydrating = wasHydrating;\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/mdoc-output/jsdocs-opt-loader.js b/mdoc-output/jsdocs-opt-loader.js new file mode 100644 index 0000000..c706ccd --- /dev/null +++ b/mdoc-output/jsdocs-opt-loader.js @@ -0,0 +1,4 @@ + +var exports = window; +exports.require = window["ScalaJSBundlerLibrary"].require; + \ No newline at end of file diff --git a/mdoc-output/mdoc.js b/mdoc-output/mdoc.js new file mode 100644 index 0000000..675cef1 --- /dev/null +++ b/mdoc-output/mdoc.js @@ -0,0 +1,14 @@ +(function(global) { + function findDivs() { + return Array.from(global.document.querySelectorAll("div[data-mdoc-js]")); + } + + function loadAll(scope) { + findDivs().forEach(function(el) { + var id = el.getAttribute("id").replace("-html-", "_js_"); + eval(id)(el); + }); + } + + loadAll(global); +})(window); diff --git a/project/build.properties b/project/build.properties index b366316..1a1496c 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version = 1.5.0 +sbt.version = 1.5.2 diff --git a/project/plugins.sbt b/project/plugins.sbt index 4486c9b..eb15be4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,6 @@ -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.5.1") -addSbtPlugin("ch.epfl.scala" % "sbt-scalajs-bundler" % "0.20.0") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") -addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2") \ No newline at end of file +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.5.1") +addSbtPlugin("ch.epfl.scala" % "sbt-scalajs-bundler" % "0.20.0") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") +addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.1.2") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.20")