package Ġio . data 2 viz . play . todo Ċ Ċ import Ġkotlinx . html .* ĊĊ Ċ fun ĠSECTION . todo Header ( state : ĠTodo AppState ) Ġ{ ĊĠĠĠ Ġheader (" header ") Ġ{ ĊĠĠĠĠĠĠĠ Ġh 1 Ġ{ Ġ+" todos " Ġ} ĊĠĠĠĠĠĠĠ Ġinput ( classes Ġ= Ġ" new - todo ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Ġ= Ġ" What Ġneeds Ġto Ġbe Ġdone ?" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġstate . new Todo ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠSECTION . todo Main ( state : ĠTodo AppState ) Ġ{ ĊĠĠĠ Ġsection (" main ") Ġ{ ĊĠĠĠĠĠĠĠ Ġstyle Ġ= Ġ" display : Ġblock ;" ĊĠĠĠĠĠĠĠ Ġinput ( classes Ġ= Ġ" toggle - all ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" toggle - all " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠInput Type . checkBox ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlabel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" for "] Ġ= Ġ" toggle - all " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Mark Ġall Ġas Ġcomplete " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġul (" todo - list ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . filtered Todos ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġto Do Ġ-> Ġtodo ( to Do ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠU L . todo ( to Do : ĠTo Do ) Ġ{ ĊĠĠĠ Ġval Ġcompleted Class Ġ= Ġif Ġ( to Do . completed ) Ġ" completed " Ġelse Ġ"" ĊĠĠĠ Ġli ( completed Class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv (" view ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput ( classes Ġ= Ġ" toggle Ġcomplete Todo ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠInput Type . checkBox ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġto Do . completed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ{ Ġ+ Ġto Do . text Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton ( classes Ġ= Ġ" destroy Ġdelete Todo ") Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinput ( classes Ġ= Ġ" edit ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġto Do . text ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠSECTION . todo Footer ( state : ĠTodo AppState ) Ġ{ ĊĠĠĠ Ġval Ġitem Left Ġ= Ġstate . todos . count Ġ{ Ġ! it . completed Ġ} ĊĠĠĠ Ġval Ġlabel Item Left Ġ= Ġif Ġ( item Left Ġ> Ġ 1 ) Ġ" Ġitems Ġleft " Ġelse Ġ" Ġitem Ġleft " ĊĊĠĠĠ Ġfun Ġlink Classes ( visibility Filter : ĠVisibility Filter ) Ġ= ĊĠĠĠĠĠĠĠ Ġ" visibility - filter " Ġ+ Ġif ( state . visibility Filter Ġ== Ġvisibility Filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġselected " Ġelse Ġ"" ĊĊĠĠĠ Ġfooter (" footer ") Ġ{ ĊĠĠĠĠĠĠĠ Ġstyle Ġ= Ġ" display : Ġblock ;" ĊĠĠĠĠĠĠĠ Ġspan (" todo - count ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstrong Ġ{ Ġ+ Ġ"$ item Left " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġlabel Item Left ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġul (" filters ") Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġli Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ( classes Ġ= Ġlink Classes ( Visibility Filter . ALL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠVisibility Filter . ALL . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" All " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġli Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ( classes Ġ= Ġlink Classes ( Visibility Filter . ACTIVE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠVisibility Filter . ACTIVE . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Active " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġli Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa ( classes Ġ= Ġlink Classes ( Visibility Filter . COMPLETED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠVisibility Filter . COMPLETED . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Completed " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton ( classes Ġ= Ġ" clear - completed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Clear Ġcompleted " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠDIV . messages ( messages : List < String > ){ ĊĠĠĠ Ġdiv Ġ{ Ġ// we Ġneed Ġa Ġunique Ġchild ĊĠĠĠĠĠĠĠ Ġmessages . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv (" message ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }