package Ġio . github . kar ino 2 . kot lit ex Ċ Ċ const Ġval ĠBASE SIZE Ġ= Ġ 6 Ċ val Ġsize Multip liers Ġ= ĠlistOf ( Ċ // Ġfont Metrics . js : getGlobal Metrics Ġalso Ġuses Ġsize Ġindexes , Ġso Ġif Ċ // Ġyou Ġchange Ġsize Ġindexes , Ġchange Ġthat Ġfunction . Ċ 0 . 5 , Ġ 0 . 6 , Ġ 0 . 7 , Ġ 0 . 8 , Ġ 0 . 9 , Ġ 1 . 0 , Ġ 1 . 2 , Ġ 1 . 4 4 , Ġ 1 . 7 2 8 , Ġ 2 . 0 7 4 , Ġ 2 . 4 8 8 Ċ ) Ċ Ċ // ĠA Ġfont Ġfamily Ġapplies Ġto Ġa Ġgroup Ġof Ġfonts Ġ( i . e . ĠSans Ser if ), Ġwhile Ġa Ġfont Ċ // Ġrepresents Ġa Ġspecific Ġfont Ġ( i . e . ĠSans Ser if ĠB old ). Ċ // ĠSee : Ġhttps :// tex . stack exchange . com / questions / 2 2 3 5 0 / difference - between - tex tr m - and - mathrm Ċ data Ġclass ĠOptions ( var Ġstyle : ĠStyle , Ġval Ġ_ color : ĠString ? Ġ= Ġnull , Ġvar Ġsize : ĠInt Ġ= ĠBASE SIZE , Ġval Ġfont : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfontFamily : ĠString Ġ= Ġ"", Ġval ĠfontWeight : ĠCss Class Ġ= ĠCss Class . EMPTY , Ġval Ġfont Shape : ĠCss Class Ġ= ĠCss Class . EMPTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Multiplier : ĠDouble Ġ= Ġsize Multip liers [ size Ġ- Ġ 1 ], Ġval ĠmaxSize : ĠDouble Ġ= ĠDouble . POSITIVE _ INFINITY ) Ġ{ ĊĊĠĠĠ Ġval Ġtext Size Ġ= Ġsize ĊĊĠĠĠ Ġval Ġcolor : ĠString ? ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ color ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfont Metrics : ĠFont Metrics ĊĠĠĠ Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFont Metrics . getGlobal Metrics ( size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe ĠCSS Ġs izing Ġclasses Ġrequired Ġto Ġswitch Ġto Ġthe Ġbase Ġsize . ĠLike ĊĠĠĠĠ Ġ* Ġ` this . having Size ( BASE SIZE ). sizing Classes ( this )`. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġbase S izing Classes : ĠArray < Css Class > ĊĠĠĠ Ġget () Ġ= Ġif Ġ( size Ġ!= ĠBASE SIZE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Css Class . sizing , ĠCss Class . reset Class ( size ), ĠCss Class . size Class ( BASE SIZE )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLike Ġ` this . having Size ( BASE SIZE ). having Style ( style )`. ĠIf Ġ` style ` Ġis Ġomitted , ĊĠĠĠĠ Ġ* Ġchanges Ġto Ġat Ġleast Ġ`\ text style `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhaving Base Style ( in _ style : ĠStyle ?): ĠOptions Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= Ġin _ style Ġ?: Ġthis . style . text () ĊĠĠĠĠĠĠĠ Ġval Ġwant Size Ġ= Ġsize At Style ( BASE SIZE , Ġstyle ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( this . size Ġ== Ġwant Size Ġ&& Ġthis . text Size Ġ== ĠBASE SIZE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġthis . style Ġ== Ġstyle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . copy ( style Ġ= Ġstyle , Ġsize Ġ= Ġwant Size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġs izing Classes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe ĠCSS Ġs izing Ġclasses Ġrequired Ġto Ġswitch Ġfrom Ġen closing Ġoptions ĊĠĠĠĠ Ġ* Ġ` old Options ` Ġto Ġ` this `. ĠReturns Ġan Ġarray Ġof Ġclasses . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġs izing Classes ( old Options : ĠOptions ): ĠMutable Set < Css Class > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( old Options . size Ġ!= Ġthis . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmutable Set Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCss Class . sizing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCss Class . reset Class ( old Options . size ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCss Class . size Class ( this . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmutable Set Of () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsize Style Map Ġ= ĠlistOf ( ĊĠĠĠ Ġ// ĠEach Ġelement Ġcontains Ġ[ text size , Ġscript size , Ġscript script size ]. ĊĠĠĠ Ġ// ĠThe Ġsize Ġmappings Ġare Ġtaken Ġfrom ĠTe X Ġwith Ġ\ normal size = 1 0 pt . ĊĠĠĠ ĠlistOf ( 1 , Ġ 1 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 1 : Ġ[ 5 , Ġ 5 , Ġ 5 ] ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ tiny ĊĠĠĠ ĠlistOf ( 2 , Ġ 1 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 2 : Ġ[ 6 , Ġ 5 , Ġ 5 ] ĊĠĠĠ ĠlistOf ( 3 , Ġ 1 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 3 : Ġ[ 7 , Ġ 5 , Ġ 5 ] ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ script size ĊĠĠĠ ĠlistOf ( 4 , Ġ 2 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 4 : Ġ[ 8 , Ġ 6 , Ġ 5 ] ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ footnotesize ĊĠĠĠ ĠlistOf ( 5 , Ġ 2 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 5 : Ġ[ 9 , Ġ 6 , Ġ 5 ] ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ small ĊĠĠĠ ĠlistOf ( 6 , Ġ 3 , Ġ 1 ), ĠĠĠ Ġ// Ġsize 6 : Ġ[ 1 0 , Ġ 7 , Ġ 5 ] ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ normal size ĊĠĠĠ ĠlistOf ( 7 , Ġ 4 , Ġ 2 ), ĠĠĠ Ġ// Ġsize 7 : Ġ[ 1 2 , Ġ 8 , Ġ 6 ] ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ large ĊĠĠĠ ĠlistOf ( 8 , Ġ 6 , Ġ 3 ), ĠĠĠ Ġ// Ġsize 8 : Ġ[ 1 4 . 4 , Ġ 1 0 , Ġ 7 ] ĠĠĠĠĠĠĠĠĠ Ġ\ Large ĊĠĠĠ ĠlistOf ( 9 , Ġ 7 , Ġ 6 ), ĠĠĠ Ġ// Ġsize 9 : Ġ[ 1 7 . 2 8 , Ġ 1 2 , Ġ 1 0 ] ĠĠĠĠĠĠĠ Ġ\ LARGE ĊĠĠĠ ĠlistOf ( 1 0 , Ġ 8 , Ġ 7 ), ĠĠ Ġ// Ġsize 1 0 : Ġ[ 2 0 . 7 4 , Ġ 1 4 . 4 , Ġ 1 2 ] ĠĠĠĠ Ġ\ huge ĊĠĠĠ ĠlistOf ( 1 1 , Ġ 1 0 , Ġ 9 ) Ġ Ġ// Ġsize 1 1 : Ġ[ 2 4 . 8 8 , Ġ 2 0 . 7 4 , Ġ 1 7 . 2 8 ] Ġ\ HU GE ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġsize At Style ( size : ĠInt , Ġstyle : ĠStyle ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( style . size Ġ< Ġ 2 ) Ġsize Ġelse Ġsize Style Map [ size Ġ- Ġ 1 ][ style . size Ġ- Ġ 1 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġan Ġoptions Ġobject Ġwith Ġthe Ġgiven Ġstyle . ĠIf Ġ` this . style Ġ=== Ġstyle `, ĊĠĠĠĠ Ġ* Ġreturns Ġ` this `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhaving Style ( style : ĠStyle ): ĠOptions Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . style Ġ== Ġstyle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOptions ( style Ġ= Ġstyle , Ġsize Ġ= Ġsize At Style ( this . text Size , Ġstyle )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġan Ġoptions Ġobject Ġwith Ġa Ġcr amp ed Ġversion Ġof Ġthe Ġcurrent Ġstyle . ĠIf ĊĠĠĠĠ Ġ* Ġthe Ġcurrent Ġstyle Ġis Ġcr amp ed , Ġreturns Ġ` this `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhaving Cr amp ed Style (): ĠOptions Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhaving Style ( style . cr amp ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġthe Ġeffect Ġof Ġs izing Ġchanges Ġsuch Ġas Ġ\ H uge . ĊĠĠĠĠ Ġ* ĠKeep Ġthe Ġeffect Ġof Ġthe Ġcurrent Ġstyle , Ġsuch Ġas Ġ\ script style . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhaving Base S izing (): ĠOptions Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Size Ġ= Ġwhen Ġ( this . style . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 , Ġ 5 Ġ-> Ġ 3 Ġ Ġ// Ġnormal size Ġin Ġscript style ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 , Ġ 7 -> Ġ 1 Ġ// Ġnormal size Ġin Ġscript script style ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 6 // Ġnormal size Ġin Ġtext style Ġor Ġdisplay style ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcopy ( style Ġ= Ġthis . style , Ġsize Ġ= Ġnew Size ) ĊĠĠĠ Ġ} Ċ }