package Ġde . west erm ann . k webview Ċ Ċ import Ġde . west erm ann . k observe . event . EventHandler Ċ import Ġde . west erm ann . k observe . ReadOnly Property Ċ import Ġde . west erm ann . k observe . property . property Ċ import Ġorg . w 3 c . dom . DOM Rect Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ import Ġorg . w 3 c . dom . events .* Ċ import Ġkotlin . browser . document Ċ import Ġkotlin . browser . window Ċ Ċ inline Ġfun Ġ< re ified ĠV Ġ: ĠHTMLElement > Ġcreate Html View ( tag : ĠString ? Ġ= Ġnull ): ĠV Ġ{ ĊĠĠĠ Ġvar ĠtagName : ĠString ĊĠĠĠ Ġif Ġ( tag Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtagName Ġ= Ġtag ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠtagName Ġ= ĠV :: class . js . name . toLowerCase (). replace (" html ([ a - z ]*) element ". to Regex (), Ġ"$ 1 ") ĊĠĠĠĠĠĠĠ Ġif Ġ( tagName . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtagName Ġ= Ġ" div " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġdocument . createElement ( tagName ) Ġas ĠV Ċ } Ċ Ċ fun ĠString . to Dash Case () Ġ= Ġreplace (" ([ a - z ]) ([ A - Z ]) ". to Regex (), Ġ"$ 1 -$ 2 "). toLowerCase () Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠEventHandler < T >. bind ( element : ĠEvent Target , Ġevent : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġlistener Ġ= Ġobject Ġ: ĠEvent Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Event ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ bind . emit ( event Ġas ĠT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġis Attached Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġupdate State Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty () Ġ&& Ġis Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . removeEventListener ( event , Ġlistener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Attached Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! isEmpty () Ġ&& Ġ! is Attached ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement . addEventListener ( event , Ġlistener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Attached Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġon Attach Ġ= Ġupdate State ĊĠĠĠ Ġon Detach Ġ= Ġupdate State ĊĠĠĠ Ġupdate State () Ċ } Ċ Ċ fun ĠMouseEvent . to Point (): ĠPoint Ġ= ĠPoint ( client X , Ġclient Y ) Ċ fun ĠDOM Rect . to Dimension (): ĠDimension Ġ= ĠDimension ( x , Ġy , Ġwidth , Ġheight ) Ċ Ċ fun ĠNumber . format ( digits : ĠInt ): ĠString Ġ= Ġthis . as Dynamic (). toFixed ( digits ) Ċ Ċ external Ġfun Ġdelete ( p : Ġdynamic ): ĠBoolean Ġ= Ġdefined Ex tern ally Ċ Ċ fun Ġdelete ( thing : Ġdynamic , Ġkey : ĠString ) Ġ{ ĊĠĠĠ Ġdelete ( thing [ key ]) Ċ } Ċ Ċ /** Ċ Ġ* ĠApply Ġcurrent Ġdom Ġchanges Ġand Ġre calculate Ġall Ġsizes . ĠExec utes Ġthe Ġgiven Ġblock Ġafterwards . Ċ Ġ* Ċ Ġ* Ġ@ param Ġtimeout ĠOptionally Ġset Ġa Ġtimeout Ġfor Ġthis Ġcall . ĠDefaults Ġto Ġ 1 . Ċ Ġ* Ġ@ param Ġblock ĠCallback Ċ Ġ*/ Ċ fun Ġasync ( timeout : ĠInt Ġ= Ġ 1 , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( timeout Ġ< Ġ 1 ) Ġthrow ĠIllegalArgumentException (" Timeout Ġmust Ġbe Ġgreater Ġthan Ġ 0 !") ĊĠĠĠ Ġwindow . setTimeout ( block , Ġtimeout ) Ċ } Ċ Ċ fun Ġinterval ( timeout : ĠInt , Ġblock : Ġ() Ġ-> ĠUnit ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( timeout Ġ< Ġ 1 ) Ġthrow ĠIllegalArgumentException (" Timeout Ġmust Ġbe Ġgreater Ġthan Ġ 0 !") ĊĠĠĠ Ġreturn Ġwindow . set Interval ( block , Ġtimeout ) Ċ } Ċ Ċ fun ĠclearInterval ( id : ĠInt ) Ġ{ ĊĠĠĠ Ġwindow . clear Interval ( id ) Ċ } Ċ Ċ fun Ġ< V Ġ: ĠView > ĠView Collection < V >. bind View ( var arg Ġproperties : ĠReadOnly Property <* >, Ġblock : Ġ() Ġ-> ĠV ): ĠReadOnly Property < V > Ġ{ ĊĠĠĠ Ġval Ġview Property Ġ= Ġproperty ( block ()) ĊĠĠĠ Ġvar Ġview Ġby Ġview Property ĊĠĠĠ Ġ+ view ĊĊĠĠĠ Ġfun Ġchange () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Ġ= Ġblock () ĊĠĠĠĠĠĠĠ Ġif Ġ( new Ġ!= Ġview ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( view , Ġnew ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= Ġnew ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( p Ġin Ġproperties ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp . onChange Ġ{ Ġchange () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġview Property Ċ } Ċ Ċ val ĠKeyboard Event . modifier Key : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġalt Key Ġ|| Ġctrl Key Ġ|| Ġshift Key