package Ġt amil . identify Ċ Ċ import ĠQuestion State Ċ import Ġkotlinx . css . fontSize Ċ import Ġkotlinx . css . height Ċ import Ġkotlinx . css . min Width Ċ import Ġkotlinx . css . px Ċ import Ġkotlinx . html . js . onClick Function Ċ import Ġreact . R Builder Ċ import Ġreact . R Component Ċ import Ġreact . R Props Ċ import Ġreact . R State Ċ import Ġreact . React Element Ċ import Ġreact . setState Ċ import Ġstyled . css Ċ import Ġstyled . styled Button Ċ import Ġstyled . styled Div Ċ Ċ external Ġinterface ĠT amil Level 1 Props Ġ: ĠR Props Ġ{ ĊĠĠĠ Ġvar Ġquestion State : ĠQuestion State ĊĠĠĠ Ġvar Ġon Show Answer Click : Ġ( Int ) Ġ-> ĠUnit Ċ } Ċ Ċ external Ġinterface ĠT amil Level 1 State Ġ: ĠR State Ġ{ ĊĠĠĠ Ġvar Ġcheck State : ĠMutable Map < String , ĠBoolean > ĊĠĠĠ Ġvar Ġshow Hint : ĠBoolean Ċ } Ċ Ċ class ĠT amil Level 1 ( props : ĠT amil Level 1 Props ) Ġ: ĠR Component < T amil Level 1 Props , ĠT amil Level 1 State >( props ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠT amil Level 1 State . init ( props : ĠT amil Level 1 Props ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġu y ir Me i Letters Ġ= Ġprops . question State . t amil State . get Uy ir Me i For Uy ir () ĊĠĠĠĠĠĠĠ Ġcheck State Ġ= Ġu y ir Me i Letters . associate With Ġ{ Ġtrue Ġ}. to Mutable Map () ĊĠĠĠĠĠĠĠ Ġshow Hint Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt amil State Ġ= Ġprops . question State . t amil State ĊĠĠĠĠĠĠĠ Ġval Ġshow Answer Ġ= Ġprops . question State . show Answer ĊĊĠĠĠĠĠĠĠ Ġif Ġ( show Answer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt amil Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion State Ġ= Ġprops . question State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt amil Question Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestion State Ġ= Ġprops . question State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Hint Ġ= Ġstate . show Hint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Hint Click Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! state . show Hint ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Hint Ġ= Ġ! show Hint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstyled Div Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcss Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasses Ġ= Ġmutable ListOf (" d - flex Ġflex - wrap ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġstate . check State . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Button Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Answer Ġ&& Ġentry . key Ġ== Ġt amil State . get Answer () Ġ-> Ġ" success " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . value Ġ-> Ġ" primary " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" danger " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasses Ġ= Ġmutable ListOf (" btn Ġbtn -$ style Ġm - 2 Ġp - 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 2 0 . px ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 8 0 . px ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠminWidth Ġ= Ġ 8 0 . px ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Function Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! show Answer Ġ&& Ġentry . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t amil State . get Answer () Ġ== Ġentry . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailed Count Ġ= Ġstate . check State . values . filter Ġ{ Ġ! it Ġ}. count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Points Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailed Count Ġ>= Ġ 3 Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . show Hint Ġ&& Ġfailed Count Ġ>= Ġ 1 Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . show Hint Ġ-> Ġ 1 Ġ- Ġfailed Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 3 Ġ- Ġfailed Count ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops . on Show Answer Click ( new Points ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetState Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck State [ entry . key ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ entry . key ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠR Builder . t amil Level 1 ( handler : ĠT amil Level 1 Props . () Ġ-> ĠUnit ): ĠReact Element Ġ{ ĊĠĠĠ Ġreturn Ġchild ( T amil Level 1 :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . attrs ( handler ) ĊĠĠĠ Ġ} Ċ } Ċ