package Ġio . un th rott led . dok i . icon Ċ Ċ import Ġcom . intellij . ui . Color Util Ċ import Ġcom . intellij . ui . JB Color . named Color Ċ import Ġio . un th rott led . dok i . h ax . Patch er Ċ import Ġio . un th rott led . dok i . h ax . Patch er Provider Ċ import Ġio . un th rott led . dok i . themes . Theme Manager Ċ import Ġio . un th rott led . dok i . util . run S af ely Ċ import Ġio . un th rott led . dok i . util . run S af ely With Result Ċ import Ġio . un th rott led . dok i . util . to HexString Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġjava . awt . Color Ċ import Ġjava . net . URL Ċ Ċ class ĠColor Patch er ( ĊĠ Ġprivate Ġval Ġother Color Patch er Provider : ĠPatch er Provider Ċ ) Ġ: ĠPatch er Provider Ġ{ ĊĊĠ Ġoverride Ġfun Ġfor Path ( path : ĠString ?) Ġ= ĊĠĠĠ Ġbuild Hack ed Patch er ( ĊĠĠĠĠĠ Ġrun S af ely With Result ({ ĊĠĠĠĠĠĠĠ Ġother Color Patch er Provider . for Path ( path ) ĊĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠ Ġoverride Ġfun Ġfor URL ( url : ĠURL ?) Ġ= ĊĠĠĠ Ġbuild Hack ed Patch er ( ĊĠĠĠĠĠ Ġrun S af ely With Result ({ ĊĠĠĠĠĠĠĠ Ġother Color Patch er Provider . for URL ( url ) ĊĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠ Ġprivate Ġfun Ġbuild Hack ed Patch er ( ĊĠĠĠ Ġother Patch er : ĠPatch er ? ĊĠ Ġ): ĠPatch er Ġ{ ĊĠĠĠ Ġval Ġself Ġ= Ġthis ĊĠĠĠ Ġreturn Ġobject Ġ: ĠPatch er Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġpatch Colors ( svg : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġself . patch Colors ( svg , Ġother Patch er ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġdigest (): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġpatch Colors ( ĊĠĠĠ Ġsvg : ĠElement , ĊĠĠĠ Ġother Patch er : ĠPatch er ? ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġrun S af ely ({ ĊĠĠĠĠĠ Ġother Patch er ?. patch Colors ( svg ) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġpatch Children ( ĊĠĠĠĠĠ Ġsvg , ĊĠĠĠĠĠ Ġother Patch er ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġpatch Children ( svg : ĠElement , Ġother Patch er : ĠPatch er ?) Ġ{ ĊĠĠĠ Ġpatch Accent ( svg . getAttribute (" accent Tint "), Ġsvg ) Ġ{ ĊĠĠĠĠĠ Ġit . to HexString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġpatch Accent ( svg . getAttribute (" accent Tint Dark er "), Ġsvg ) Ġ{ ĊĠĠĠĠĠ ĠColor Util . dark er ( it , Ġ 1 ). to HexString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġpatch Accent ( svg . getAttribute (" accent Contrast Tint "), Ġsvg ) Ġ{ ĊĠĠĠĠĠ Ġget Icon Accent Contrast Color (). to HexString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġpatch Accent ( svg . getAttribute (" stop Tint "), Ġsvg ) Ġ{ ĊĠĠĠĠĠ Ġget The med Stop Color () ĊĠĠĠ Ġ} ĊĠĠĠ Ġpatch Accent ( svg . getAttribute (" editor Accent Tint "), Ġsvg ) Ġ{ ĊĠĠĠĠĠ ĠTheme Manager . instance . current Theme ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . editor Accent Color . to HexString () Ġ} ĊĠĠĠĠĠĠĠ Ġ. orElse Get Ġ{ ĠColor . CY AN . to HexString () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġthe med Start Attr Ġ= Ġsvg . getAttribute (" the med Start ") ĊĠĠĠ Ġval Ġthe med Stop Attr Ġ= Ġsvg . getAttribute (" the med Stop ") ĊĠĠĠ Ġval Ġthe med Fill Attr Ġ= Ġsvg . getAttribute (" the med Fill ") ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠ Ġ" true " Ġ== Ġthe med Start Attr Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthe med Start Ġ= Ġget The med Start Color () ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" stop - color ", Ġthe med Start ) ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" fill ", Ġthe med Start ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" true " Ġ== Ġthe med Stop Attr Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthe med Stop Ġ= Ġget The med Stop Color () ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" stop - color ", Ġthe med Stop ) ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" fill ", Ġthe med Stop ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ" true " Ġ== Ġthe med Fill Attr Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthe med Start Ġ= Ġget The med Start Color () ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" fill ", Ġthe med Start ) ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" stroke ", Ġthe med Start ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnodes Ġ= Ġsvg . childNodes ĊĠĠĠ Ġval Ġlength Ġ= Ġnodes . length ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠ Ġval Ġitem Ġ= Ġnodes . item ( i ) ĊĠĠĠĠĠ Ġif Ġ( item Ġis ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpatch Colors ( item , Ġother Patch er ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġpatch Accent ( attribute : ĠString ?, Ġsvg : ĠElement , Ġcolor Decorator : Ġ( Color ) Ġ-> ĠString ) Ġ{ ĊĠĠĠ Ġwhen Ġ( attribute ) Ġ{ ĊĠĠĠĠĠ Ġ" fill " Ġ-> Ġsvg . setAttribute (" fill ", Ġcolor Decorator ( get Accent Color ())) ĊĠĠĠĠĠ Ġ" stroke " Ġ-> Ġsvg . setAttribute (" stroke ", Ġcolor Decorator ( get Accent Color ())) ĊĠĠĠĠĠ Ġ" both ", Ġ" partial Fill " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccent Color Ġ= Ġcolor Decorator ( get Accent Color ()) ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" stroke ", Ġaccent Color ) ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" stroke - opacity ", Ġif Ġ( attribute Ġ== Ġ" both ") Ġ" 1 " Ġelse Ġ" 0 . 2 5 ") ĊĠĠĠĠĠĠĠ Ġsvg . setAttribute (" fill ", Ġaccent Color ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Accent Color () Ġ= ĊĠĠĠ Ġnamed Color (" D oki . Accent . color ", ĠColor . CY AN ) ĊĊĠ Ġprivate Ġfun Ġget Icon Accent Contrast Color () Ġ= ĊĠĠĠ Ġnamed Color (" D oki . Icon . Accent . Contrast . color ", ĠColor . WHITE ) ĊĊĠ Ġprivate Ġfun Ġget The med Start Color () Ġ= ĊĠĠĠ Ġnamed Color (" D oki . start Color ", ĠColor . CY AN ). to HexString () ĊĊĠ Ġprivate Ġfun Ġget The med Stop Color () Ġ= ĊĠĠĠ Ġnamed Color (" D oki . stop Color ", ĠColor . CY AN ). to HexString () Ċ } Ċ