/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 - 2 0 2 1 , ĠSimp lex ion , ĠH ung ary Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġz ak ad ab ar . core . browser . util Ċ Ċ import Ġorg . w 3 c . dom . DOM Token List Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ import Ġz ak ad ab ar . core . browser . layout . zk Layout Styles Ċ import Ġz ak ad ab ar . core . resource . css . Zk Css Style Rule Ċ import Ġz ak ad ab ar . core . resource . css . percent Ċ import Ġz ak ad ab ar . core . util . Public Api Ċ import Ġkotlin . math . max Ċ Ċ operator Ġfun ĠDOM Token List . plus Assign ( token : ĠString ?) Ġ{ ĊĠĠĠ Ġif Ġ( token Ġ!= Ġnull ) Ġthis . add ( token ) Ċ } Ċ Ċ operator Ġfun ĠDOM Token List . plus Assign ( tokens : ĠArray < out ĠString >) Ġ{ ĊĠĠĠ Ġtokens . forEach Ġ{ Ġthis . add ( it ) Ġ} Ċ } Ċ Ċ operator Ġfun ĠDOM Token List . minus Assign ( token : ĠString ?) Ġ{ ĊĠĠĠ Ġif Ġ( token Ġ!= Ġnull ) Ġthis . remove ( token ) Ċ } Ċ Ċ operator Ġfun ĠDOM Token List . plus Assign ( rule : ĠZ k Css Style Rule ?) Ġ{ ĊĠĠĠ Ġif Ġ( rule Ġ!= Ġnull ) Ġthis . add ( rule . css Class name ) Ċ } Ċ Ċ operator Ġfun ĠDOM Token List . plus Assign ( rules : ĠArray < out ĠZ k Css Style Rule >) Ġ{ ĊĠĠĠ Ġrules . forEach Ġ{ Ġthis . add ( it . css Class name ) Ġ} Ċ } Ċ Ċ operator Ġfun ĠDOM Token List . minus Assign ( rule : ĠZ k Css Style Rule ?) Ġ{ ĊĠĠĠ Ġif Ġ( rule Ġ!= Ġnull ) Ġthis . remove ( rule . css Class name ) Ċ } Ċ Ċ infix Ġfun ĠHTMLElement . margin Right ( size : ĠAny ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġthis . style . margin Right Ġ= Ġif Ġ( size Ġis ĠInt ) Ġ"${ size } px " Ġelse Ġsize . toString () ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ infix Ġfun ĠHTMLElement . margin Bottom ( size : ĠAny ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġthis . style . margin Bottom Ġ= Ġif Ġ( size Ġis ĠInt ) Ġ"${ size } px " Ġelse Ġsize . toString () ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ infix Ġfun ĠHTMLElement . width ( value : ĠAny ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġ 1 0 0 . percent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclass List Ġ+= Ġzk Layout Styles . w 1 0 0 ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . style . width Ġ= Ġvalue . toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ infix Ġfun ĠHTMLElement . height ( value : ĠAny ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġif Ġ( value Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . style . height Ġ= Ġvalue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . style . height Ġ= Ġ"${ value } px " ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ @ Deprecated (" EOL : Ġ 2 0 2 1 . 8 . 1 Ġ Ġ- Ġ Ġreplace Ġwith Ġcss ") Ċ infix Ġfun ĠHTMLElement . flex ( value : ĠString ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġ" grow ") Ġ{ ĊĠĠĠĠĠĠĠ Ġclass List Ġ+= Ġzk Layout Styles . grow ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" invalid Ġflex Ġvalue : Ġ$ value ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ @ Deprecated (" EOL : Ġ 2 0 2 1 . 8 . 1 Ġ Ġ- Ġ Ġreplace Ġwith Ġcss ") Ċ infix Ġfun ĠHTMLElement . style ( value : ĠString ): ĠHTMLElement Ġ{ ĊĠĠĠ Ġstyle . css Text Ġ= Ġvalue ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠAlign Ġthe Ġwidth Ġof Ġtwo Ġelements . ĠThe Ġ[ calc ] Ġfunction Ġis Ġused Ġto Ġcalculate Ġthe Ġaligned Ċ Ġ* Ġwidth Ġfrom Ġthe Ġwith Ġof Ġthe Ġtwo Ġelements . Ċ Ġ* Ċ Ġ* ĠSets Ġinline Ġstyles ĠminWidth , Ġwidth , ĠmaxWidth Ġof Ġthe . Ċ Ġ* Ċ Ġ* Ġ@ param Ġ Ġfirst ĠĠ ĠFirst Ġelement , Ġdoes Ġnothing Ġwhen Ġits Ġnull . Ċ Ġ* Ġ@ param Ġ Ġsecond Ġ ĠSecond Ġelement , Ġdoes Ġnothing Ġwhen Ġits Ġnull . Ċ Ġ* Ġ@ param Ġ Ġcalc ĠĠĠ ĠCalcul ation Ġfunction , Ġdefaults Ġto Ġ[ max ]. Ċ Ġ*/ Ċ @ Public Api Ċ fun Ġalign Width ( first : ĠHTMLElement ?, Ġsecond : ĠHTMLElement ?, Ġcalc : Ġ( Double , ĠDouble ) Ġ-> ĠDouble Ġ= Ġ:: max ) Ġ{ ĊĠĠĠ Ġif Ġ( first Ġ== Ġnull Ġ|| Ġsecond Ġ== Ġnull ) Ġreturn ĊĊĠĠĠ Ġval Ġfirst Width Ġ= Ġfirst . getBoundingClientRect (). width ĊĠĠĠ Ġval Ġsecond Width Ġ= Ġsecond . getBoundingClientRect (). width ĊĊĠĠĠ Ġval Ġaligned Width Px Ġ= Ġ"${ calc ( first Width , Ġsecond Width )} px " ĊĊĠĠĠ Ġwith ( first . style ) Ġ{ ĊĠĠĠĠĠĠĠ ĠminWidth Ġ= Ġaligned Width Px ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġaligned Width Px ĊĠĠĠĠĠĠĠ ĠmaxWidth Ġ= Ġaligned Width Px ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwith ( second . style ) Ġ{ ĊĠĠĠĠĠĠĠ ĠminWidth Ġ= Ġaligned Width Px ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġaligned Width Px ĊĠĠĠĠĠĠĠ ĠmaxWidth Ġ= Ġaligned Width Px ĊĠĠĠ Ġ} Ċ }