import Ġcom . github . kotlin . every where . browser . Attribute . Companion . onClick Ċ import Ġcom . github . kotlin . every where . browser . Cmd Ċ import Ġcom . github . kotlin . every where . browser . Html Ċ import Ġcom . github . kotlin . every where . browser . run Program Ċ import Ġkotlin . browser . window Ċ Ċ private Ġdata Ġclass ĠModel ( val Ġcount : ĠInt Ġ= Ġ 0 ) Ċ Ċ private Ġsealed Ġclass ĠMsg Ċ private Ġobject ĠIncrement Ġ: ĠMsg () Ċ private Ġobject ĠDec rement Ġ: ĠMsg () Ċ Ċ private Ġval Ġupdate : Ġ( Msg , ĠModel ) Ġ-> ĠPair < Model , ĠCmd < Msg >> Ġ= Ġ{ Ġmsg , Ġmodel Ġ-> ĊĠĠĠ Ġval Ġnew Model Ġ= Ġwhen Ġ( msg ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIncrement Ġ-> Ġmodel . copy ( count Ġ= Ġmodel . count Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠDec rement Ġ-> Ġmodel . copy ( count Ġ= Ġmodel . count Ġ- Ġ 1 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġnew Model Ġto ĠCmd . none () Ċ } Ċ Ċ private Ġval Ġview : Ġ( Model ) Ġ-> ĠHtml < Msg > Ġ= Ġ{ Ġ( count ) Ġ-> ĊĠĠĠ ĠHtml . div Ġ{ ĊĠĠĠĠĠĠĠ Ġ+ "$ count " ĊĠĠĠĠĠĠĠ Ġ+" Ġ" ĊĠĠĠĠĠĠĠ Ġbutton ( onClick ( Increment )) Ġ{ Ġ+ "+ " Ġ} ĊĠĠĠĠĠĠĠ Ġbutton ( onClick ( De crement )) Ġ{ Ġ+" -" Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġrun Program ( window . document . getElementById (" app ") !! , ĠModel (), Ġupdate , Ġview ) Ċ }