package Ġcom . example . ange lin ilo ren zo . html builder Ċ Ċ import Ġjava . util .* Ċ Ċ interface ĠSelector Ġ{ ĊĠĠĠ Ġfun Ġto External Form (): ĠString Ċ } Ċ Ċ interface ĠSelector Trait Ġ{ ĊĠĠĠ Ġfun Ġto External Form (): ĠString Ċ } Ċ Ċ object ĠEmpty Trait Ġ: ĠSelector Trait Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠStyle Class Ġ: ĠSelector Trait , ĠSelector Ġ{ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ". ${ name }" ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSimple Class Style ( override Ġval Ġname Ġ: ĠString ) Ġ: ĠStyle Class Ġ{ Ċ } Ċ Ċ class ĠComposite Style Class ( val Ġa : ĠStyle Class , Ġval Ġb : ĠStyle Class ) Ġ: ĠStyle Class Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname : ĠString Ġget () Ġ= Ġ"${ a . name } Ġ${ b . name }" ĊĊĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"${ a . to External Form ()} Ġ${ b . to External Form () }" ĊĠĠĠ Ġ} Ċ } Ċ Ċ operator Ġfun ĠStyle Class ?. plus ( another : ĠStyle Class ?): ĠStyle Class ? Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġthis Ġ== Ġnull Ġ&& Ġanother Ġ== Ġnull Ġ-> Ġnull ĊĠĠĠ Ġthis Ġ== Ġnull Ġ-> Ġanother ĊĠĠĠ Ġanother Ġ== Ġnull Ġ-> Ġthis ĊĠĠĠ Ġelse Ġ-> ĠComposite Style Class ( this , Ġanother ) Ċ } Ċ Ċ enum Ġclass ĠP seudo Class Ġ: ĠStyle Class Ġ{ ĊĠĠĠ Ġroot , Ġfirst Child , Ġlast Child , Ġfirst OfType , Ġlast OfType , Ġonly Child , Ġonly OfType , ĊĠĠĠ Ġempty , Ġlink , Ġvisited , Ġactive , Ġfocus , Ġhover , Ġtarget , Ġenabled , Ġdisabled , Ġchecked ; ĊĊĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ": ${ name }" ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġsingle Ġstylesheet Ġelement . Ċ Ġ*/ Ċ open Ġclass ĠCss Element () Ġ{ ĊĠĠĠ Ġval Ġchildren Ġ= Ġarray ListOf < Styled Element >() ĊĠĠĠ Ġval Ġattributes Ġ= ĠHashMap < String , ĠAny >() ĊĊĠĠĠ Ġinner Ġclass ĠId Selector ( val Ġname : ĠString ) Ġ: ĠSelector Trait , ĠSelector Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( body : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġany . invoke ( this , Ġbody Ġ= Ġbody ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"# $ name " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġopen Ġclass ĠTag Selector ( val Ġname : ĠString ) Ġ: ĠSelector Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġid ( name : ĠString ): ĠSelector Ġ= Ġinvoke ( Id Selector ( name )) ĊĠĠĠĠĠĠĠ Ġfun Ġid ( name : ĠString , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ= Ġid ( Id Selector ( name ), Ġbody ) ĊĠĠĠĠĠĠĠ Ġfun Ġid ( id : ĠId Selector , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ= Ġinvoke ( id , Ġbody Ġ= Ġbody ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġc ( var arg Ġklass : ĠStyle Class , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ= Ġinvoke (* klass , Ġbody Ġ= Ġbody ) ĊĠĠĠĠĠĠĠ Ġfun Ġc ( var arg Ġklass : ĠStyle Class ): ĠSelector Ġ= Ġinvoke (* klass ) ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( var arg Ġtraits : ĠSelector Trait , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ( Simple Selector ( this , Ġtraits ). to External Form (), Ġbody ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( classes : ĠString , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ( Simple Selector ( this , ĠarrayOf ( Simple Class Style ( classes ))). to External Form (), Ġbody ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( var arg Ġt : ĠSelector Trait ): ĠSelector Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimple Selector ( this , Ġt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Any (): ĠBoolean Ġ= Ġ"*" Ġ== Ġname ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġany : ĠTag Selector Ġget () Ġ= ĠTag Selector ("* ") ĊĠĠĠ Ġval Ġa : ĠTag Selector Ġget () Ġ= ĠTag Selector (" a ") ĊĠĠĠ Ġval Ġb : ĠTag Selector Ġget () Ġ= ĠTag Selector (" b ") ĊĠĠĠ Ġval Ġbody : ĠTag Selector Ġget () Ġ= ĠTag Selector (" body ") ĊĠĠĠ Ġval Ġbutton : ĠTag Selector Ġget () Ġ= ĠTag Selector (" button ") ĊĠĠĠ Ġval Ġcanvas : ĠTag Selector Ġget () Ġ= ĠTag Selector (" canvas ") ĊĠĠĠ Ġval Ġdiv : ĠTag Selector Ġget () Ġ= ĠTag Selector (" div ") ĊĠĠĠ Ġval Ġem : ĠTag Selector Ġget () Ġ= ĠTag Selector (" em ") ĊĠĠĠ Ġval Ġfield set : ĠTag Selector Ġget () Ġ= ĠTag Selector (" fieldset ") ĊĠĠĠ Ġval Ġform : ĠTag Selector Ġget () Ġ= ĠTag Selector (" form ") ĊĠĠĠ Ġval Ġh 1 : ĠTag Selector Ġget () Ġ= ĠTag Selector (" h 1 ") ĊĠĠĠ Ġval Ġh 2 : ĠTag Selector Ġget () Ġ= ĠTag Selector (" h 2 ") ĊĠĠĠ Ġval Ġh 3 : ĠTag Selector Ġget () Ġ= ĠTag Selector (" h 3 ") ĊĠĠĠ Ġval Ġh 4 : ĠTag Selector Ġget () Ġ= ĠTag Selector (" h 4 ") ĊĠĠĠ Ġval Ġh 5 : ĠTag Selector Ġget () Ġ= ĠTag Selector (" h 5 ") ĊĠĠĠ Ġval Ġhr : ĠTag Selector Ġget () Ġ= ĠTag Selector (" hr ") ĊĠĠĠ Ġval Ġi : ĠTag Selector Ġget () Ġ= ĠTag Selector (" i ") ĊĠĠĠ Ġval Ġimg : ĠTag Selector Ġget () Ġ= ĠTag Selector (" img ") ĊĠĠĠ Ġval Ġinput : ĠTag Selector Ġget () Ġ= ĠTag Selector (" input ") ĊĠĠĠ Ġval Ġlegend : ĠTag Selector Ġget () Ġ= ĠTag Selector (" legend ") ĊĠĠĠ Ġval Ġlabel : ĠTag Selector Ġget () Ġ= ĠTag Selector (" label ") ĊĠĠĠ Ġval Ġol : ĠTag Selector Ġget () Ġ= ĠTag Selector (" ol ") ĊĠĠĠ Ġval Ġp : ĠTag Selector Ġget () Ġ= ĠTag Selector (" p ") ĊĠĠĠ Ġval Ġselect : ĠTag Selector Ġget () Ġ= ĠTag Selector (" select ") ĊĠĠĠ Ġval Ġspan : ĠTag Selector Ġget () Ġ= ĠTag Selector (" span ") ĊĠĠĠ Ġval Ġsmall : ĠTag Selector Ġget () Ġ= ĠTag Selector (" small ") ĊĠĠĠ Ġval Ġstrong : ĠTag Selector Ġget () Ġ= ĠTag Selector (" strong ") ĊĠĠĠ Ġval Ġblock quote : ĠTag Selector Ġget () Ġ= ĠTag Selector (" blockquote ") ĊĠĠĠ Ġval Ġtable : ĠTag Selector Ġget () Ġ= ĠTag Selector (" table ") ĊĠĠĠ Ġval Ġtextarea : ĠTag Selector Ġget () Ġ= ĠTag Selector (" textarea ") ĊĠĠĠ Ġval Ġul : ĠTag Selector Ġget () Ġ= ĠTag Selector (" ul ") ĊĠĠĠ Ġval Ġli : ĠTag Selector Ġget () Ġ= ĠTag Selector (" li ") ĊĠĠĠ Ġval Ġoption : ĠTag Selector Ġget () Ġ= ĠTag Selector (" option ") ĊĠĠĠ Ġval Ġopt group : ĠTag Selector Ġget () Ġ= ĠTag Selector (" opt group ") ĊĠĠĠ Ġval Ġtr : ĠTag Selector Ġget () Ġ= ĠTag Selector (" tr ") ĊĠĠĠ Ġval Ġtbody : ĠTag Selector Ġget () Ġ= ĠTag Selector (" tbody ") ĊĠĠĠ Ġval Ġtd : ĠTag Selector Ġget () Ġ= ĠTag Selector (" td ") ĊĠĠĠ Ġval Ġth : ĠTag Selector Ġget () Ġ= ĠTag Selector (" th ") ĊĠĠĠ Ġval Ġdl : ĠTag Selector Ġget () Ġ= ĠTag Selector (" dl ") ĊĠĠĠ Ġval Ġdt : ĠTag Selector Ġget () Ġ= ĠTag Selector (" dt ") ĊĠĠĠ Ġval Ġdd : ĠTag Selector Ġget () Ġ= ĠTag Selector (" dd ") ĊĊĊĠĠĠ Ġfun Ġid ( name : ĠString , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġany . id ( name , Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġid ( name : ĠString ): ĠId Selector Ġ= ĠId Selector ( name ) ĊĊĠĠĠ Ġfun Ġc ( klass : ĠStyle Class , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġany . invoke ( klass , Ġbody Ġ= Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġatt ( name : ĠString ): ĠAttribute Ġ= ĠAttribute ( name , ĠHas Attribute ( name )) ĊĊĠĠĠ Ġclass ĠAttribute Ġinternal Ġconstructor ( val Ġname : ĠString , Ġval Ġfilter : ĠAtt Filter ) Ġ: ĠSelector Trait Ġ{ ĊĠĠĠĠĠĠĠ Ġin fix Ġfun Ġstart sWith ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠStart sWith ( value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġin fix Ġfun ĠequalTo ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠEquals ( value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġin fix Ġfun Ġend sWith ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠEnd sWith ( value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġin fix Ġfun Ġcontains ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠContains ( value , ĠAttribute Value Tokenizer . Substring )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġin fix Ġfun Ġcontains In Hy pen ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠContains ( value , ĠAttribute Value Tokenizer . Hy pen )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġin fix Ġfun Ġcontains In Spaces ( value : ĠString ): ĠAttribute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAttribute ( name , ĠContains ( value , ĠAttribute Value Tokenizer . Spaces )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" [$ name ${ filter . to External Form ()} ]" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSimple Selector ( val Ġtag : ĠTag Selector , Ġval Ġtraits : ĠArray < out ĠSelector Trait >) Ġ: ĠSelector Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Any Ġ= Ġtag . is Any () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Any ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( tag . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( t Ġin Ġtraits ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( t . to External Form ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( length Ġ== Ġ 0 Ġ&& Ġis Any ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"*" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfor Any ( var arg Ġselectors : ĠSelector , Ġbody : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs ( Union Selector ( selectors ). to External Form (), Ġbody ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfor Any ( var arg Ġselectors : ĠSelector ): ĠUnion Selector Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUnion Selector ( selectors ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠUnion Selector ( val Ġselectors : ĠArray < out ĠSelector >) Ġ: ĠSelector Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto External Form (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" (${ selectors . map Ġ({ Ġit . to External Form () Ġ}). join ToString (",") })" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġnew Ġchild Ġelement Ġwith Ġthe Ġgiven Ġselector Ġand Ġblock . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġs ( selector : ĠString , Ġinit : ĠStyled Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠStyled Element ( selector ) ĊĠĠĠĠĠĠĠ Ġelement . init () ĊĠĠĠĠĠĠĠ Ġchildren . add ( element ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ class ĠStyled Element ( val Ġselector : ĠString ) Ġ: ĠCss Element () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWrites Ġthe Ġelement Ġto Ġthe Ġbuilder Ġwith Ġthe Ġgiven Ġind enation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġbuild ( builder : ĠStringBuilder , Ġbase Selector : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthis Selector Ġ= Ġif Ġ( base Selector . length Ġ> Ġ 0 ) Ġif Ġ( selector . startsWith (': ')) Ġ"$ base Selector $ selector " Ġelse Ġ"$ base Selector Ġ$ selector " Ġelse Ġselector ĊĠĠĠĠĠĠĠ Ġbuilder . append ("$ this Selector Ġ{\ n ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( a Ġin Ġattributes . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattr Ġ= Ġattributes [ a ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" ĠĠĠ Ġ$ a : Ġ${ attr . toString ()}; \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . append (" }\ n ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( child Ġin Ġchildren ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild . build ( builder , Ġthis Selector ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠStr ong ly - typed Ġmethod Ġfor Ġpulling Ġattributes Ġout Ġof Ġthe Ġhash . Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġ< T : Any ?> Ġget Attribute ( name : ĠString ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attributes . containsKey ( name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġattributes [ name ] Ġas ĠT ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Element Ġhas Ġno Ġattribute Ġ$ name ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠStr ong ly - typed Ġmethod Ġfor Ġpulling Ġattributes Ġout Ġof Ġthe Ġhash , Ġwith Ġa Ġdefault Ġreturn Ġvalue . Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġfun Ġ< T > Ġget Attribute ( name : ĠString , Ġdefault : ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attributes . containsKey ( name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġattributes [ name ] Ġas ĠT ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdefault ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠSh orthand Ġfor Ġmaking Ġa Ġcolor Ġinside Ġa Ġstylesheet . Ġ*/ ĊĠĠĠ Ġfun Ġc ( color String : ĠString ): ĠColor Ġ= Ġcolor ( color String ) ĊĊĠĠĠ Ġvar Ġbackground Attachment : ĠBackground Attachment ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" background - attachment ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" background - attachment "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠbackgroundColor : ĠColor ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" background - color ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" background - color "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbackground Image : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" background - image ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" background - image "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbackground Position : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" background - position ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" background - position "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbackground Repeat : ĠBackground Repeat ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" background - repeat ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" background - repeat "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtokens Ġ= Ġvalue . split (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( token Ġin Ġtokens ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Linear Dimension ( token )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠborderWidth Ġ= ĠLinear Dimension . fromString ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is Color ( token )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠborderColor Ġ= Ġcolor ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is BorderStyle ( token )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborder Style Ġ= Ġmake BorderStyle ( token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Invalid Ġborder Ġproperty : Ġ$ token ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠborderColor : ĠColor ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - color ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - color "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠborderRadius : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - radius ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - radius "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder Bottom Left Radius : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - bottom - left - radius ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - bottom - left - radius "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder Bottom Right Radius : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - bottom - right - radius ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - bottom - right - radius "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder Top Left Radius : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - top - left - radius ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - top - left - radius "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder Top Right Radius : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - top - right - radius ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - top - right - radius "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġborder Style : ĠBorder Style ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - style ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - style "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠborderWidth : ĠLinear Dimension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" border - width ", Ġ 0 . px ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" border - width "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġclear : ĠClear ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" clear ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" clear "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcolor : ĠColor ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" color ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" color "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdisplay : ĠDisplay ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" display ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" display "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġfloat : ĠFloat Type ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" float ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" float "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠfontFamily : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" font - family ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" font - family "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠfontSize : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" font - size ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" font - size "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠfontWeight : ĠFontWeight ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" font - weight ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" font - weight "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġheight : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" height ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" height "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġline Height : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" line - height ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" line - height "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġmargin : ĠBox Dimensions ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" margin ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" margin "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmarginTop : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" margin - top ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" margin - top "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmarginBottom : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" margin - bottom ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" margin - bottom "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmarginLeft : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" margin - left ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" margin - left "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmarginRight : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" margin - right ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" margin - right "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmaxHeight : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" max - height ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" max - height "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠmaxWidth : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" max - width ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" max - width "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠminHeight : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" min - height ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" min - height "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠminWidth : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" min - width ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" min - width "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġoverflow : ĠOverflow ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" overflow ", ĠOverflow . inherit ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" overflow "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding : ĠBox Dimensions ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" padding ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" padding "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding Top : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" padding - top ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" padding - top "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding Bottom : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" padding - bottom ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" padding - bottom "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding Left : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" padding - left ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" padding - left "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpadding Right : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" padding - right ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" padding - right "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠtextAlign : ĠText Align ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" text - align ", ĠText Align . inherit ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" text - align "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġvertical Align : ĠVertical Align ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" vertical - align ", ĠVertical Align . inherit ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" vertical - align "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġwidth : ĠLinear Dimension ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Attribute (" width ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" width "] Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ