package Ġui . components . validation . issue list Ċ Ċ import Ġcss . const .* Ċ import Ġcss . text . TextStyle Ċ import Ġkotlinx . css .* Ċ import Ġkotlinx . css . properties . border Bottom Ċ import Ġkotlinx . css . properties . border Left Ċ import Ġkotlinx . css . properties . border Right Ċ import Ġkotlinx . css . properties . border Top Ċ import Ġkotlinx . html . js . on Mouse Out Function Ċ import Ġkotlinx . html . js . on Mouse Over Function Ċ import Ġmodel . Issue Severity Ċ import Ġmodel . Validation Message Ċ import Ġreact .* Ċ import Ġstyled . StyleSheet Ċ import Ġstyled . css Ċ import Ġstyled . styled Div Ċ import Ġstyled . styled Span Ċ Ċ external Ġinterface ĠIssue Entry Props Ġ: ĠR Props Ġ{ ĊĠĠĠ Ġvar Ġvalidation Message : ĠValidation Message ĊĠĠĠ Ġvar Ġhighlighted : ĠBoolean ĊĊĠĠĠ Ġvar ĠonMouse Over : Ġ( Boolean ) Ġ-> ĠUnit Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġsingle Ġlist Ġentry Ġfor Ġa Ġvalidation Ġissue . ĠDisplays Ġthe Ġtype , Ġline Ġnumber , Ġand Ġexplanation . Ċ Ġ*/ Ċ class ĠIssue Entry Ġ: ĠR Component < Issue Entry Props , ĠR State >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġstyled Div Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcss Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Issue Entry Style . issue Container ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhighlight Color Ġ= Ġwhen Ġ( props . validation Message . get Level ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIssue Severity . INFORMATION Ġ-> ĠINFO _ BLUE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIssue Severity . WARNING Ġ-> ĠWARNING _ YELLOW ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIssue Severity . ERROR Ġ-> ĠERROR _ OR ANGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIssue Severity . FATAL Ġ-> ĠFAT AL _ PIN K ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBORDER _ GRAY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( props . highlighted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= Ġ" repe ating - linear - gradient (\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠ 4 5 deg ,\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ${ WHITE }, \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ${ WHITE } Ġ 1 0 px ,\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ${ highlight Color . change Alpha ( 0 . 2 )} Ġ 1 0 px ,\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ${ highlight Color . change Alpha ( 0 . 2 )} Ġ 2 0 px \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"); " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborder Left ( width Ġ= Ġ 4 . px , Ġstyle Ġ= ĠBorder Style . solid , Ġcolor Ġ= Ġhighlight Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonMouse Over Function Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops . on Mouse Over ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonMouse Out Function Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops . on Mouse Over ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Span Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Issue Entry Style . level And LineNumber ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ TextStyle . issue Line And Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" ${ props . validation Message . get Level (). display } ĠLine : Ġ${ props . validation Message . getLine () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Span Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Issue Entry Style . message Details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ TextStyle . code Text Base ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ props . validation Message . getMessage () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReact ĠComponent ĠBuilder Ċ Ġ*/ Ċ fun ĠR Builder . issue Entry ( handler : ĠIssue Entry Props . () Ġ-> ĠUnit ): ĠReact Element Ġ{ ĊĠĠĠ Ġreturn Ġchild ( Issue Entry :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . attrs ( handler ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCSS Ċ Ġ*/ Ċ object ĠIssue Entry Style Ġ: ĠStyleSheet (" Issue Entry Style ", Ġis Static Ġ= Ġtrue ) Ġ{ ĊĠĠĠ Ġval Ġissue Container Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠDisplay . flex ĊĠĠĠĠĠĠĠ ĠflexDirection Ġ= ĠFlex Direction . row ĊĠĠĠĠĠĠĠ ĠminHeight Ġ= Ġ 6 4 . px ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 1 0 0 . pct ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠWH ITE ĊĠĠĠĠĠĠĠ Ġborder Top ( width Ġ= Ġ 1 . px , Ġstyle Ġ= ĠBorder Style . solid , Ġcolor Ġ= ĠBORDER _ GRAY ) ĊĠĠĠĠĠĠĠ Ġborder Right ( width Ġ= Ġ 1 . px , Ġstyle Ġ= ĠBorder Style . solid , Ġcolor Ġ= ĠBORDER _ GRAY ) ĊĠĠĠĠĠĠĠ Ġborder Bottom ( width Ġ= Ġ 1 . px , Ġstyle Ġ= ĠBorder Style . solid , Ġcolor Ġ= ĠBORDER _ GRAY ) ĊĠĠĠĠĠĠĠ Ġpadding ( 1 6 . px ) ĊĠĠĠĠĠĠĠ Ġbox S izing Ġ= ĠBox S izing . border Box ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġlevel And LineNumber Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġpadding Right Ġ= Ġ 1 6 . px ĊĠĠĠĠĠĠĠ ĠminWidth Ġ= Ġ 2 5 . pct ĊĠĠĠĠĠĠĠ Ġalign Self Ġ= ĠAlign . center ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġmessage Details Ġby Ġcss Ġ{ ĊĠĠĠĠĠĠĠ Ġflex ( flex Basis Ġ= Ġ 1 0 0 . pct ) ĊĠĠĠĠĠĠĠ Ġalign Self Ġ= ĠAlign . center ĊĠĠĠĠĠĠĠ Ġoverflow Wrap Ġ= ĠOverflow Wrap . break Word ĊĠĠĠ Ġ} Ċ }