package Ġcomponent Ċ Ċ import Ġcontainer . filter Link Ċ import Ġdata . Visibility Filter Ċ import Ġh oc . with DisplayName Ċ import Ġorg . w 3 c . dom . events . Event Ċ import Ġreact .* Ċ import Ġreact . dom .* Ċ import Ġreact . functional Component Ċ import Ġreact . router . dom . nav Link Ċ Ċ interface ĠAny Full Props < O , ĠS > Ġ: ĠR Props Ġ{ ĊĠĠĠ Ġvar Ġobj : ĠPair < Int , ĠO > ĊĠĠĠ Ġvar Ġsub objs : ĠMap < Int , ĠS > ĊĠĠĠ Ġvar Ġpresents : ĠMap < Int , ĠBoolean >? ĊĠĠĠ Ġvar ĠonClick : Ġ( Int ) Ġ-> Ġ( Event ) Ġ-> ĠUnit Ċ } Ċ Ċ fun Ġ< O , ĠS > Ġf Any Full ( ĊĠĠĠ Ġr Component : ĠR Builder .( S , ĠString , Ġ( Event ) Ġ-> ĠUnit ) Ġ-> ĠReact Element Ċ ) Ġ= ĊĠĠĠ Ġfunctional Component < Any Full Props < O , ĠS >> Ġ{ Ġprops Ġ-> ĊĠĠĠĠĠĠĠ Ġh 3 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ props . obj . second . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . filter Ġ= ĠVisibility Filter . SHOW _ ALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" All " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . filter Ġ= ĠVisibility Filter . SHOW _ PRESENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Present " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs . filter Ġ= ĠVisibility Filter . SHOW _ AB SENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Absent " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġul Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprops . sub objs . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpresent Ġ= Ġprops . presents ?. get ( it . key ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss Class Ġ= Ġif Ġ( present ) Ġ" present " Ġelse Ġ" abs ent " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġli Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Component ( it . value , Ġcss Class , Ġprops . onClick ( it . key )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊ Ċ fun Ġ< O , ĠS > ĠR Builder . any Full ( ĊĠĠĠ Ġr Component : ĠR Builder .( S , ĠString , Ġ( Event ) Ġ-> ĠUnit ) Ġ-> ĠReact Element , ĊĠĠĠ Ġobj : ĠPair < Int , ĠO >, ĊĠĠĠ Ġsub objs : ĠMap < Int , ĠS >, ĊĠĠĠ Ġpresents : ĠMap < Int , ĠBoolean > ?, ĊĠĠĠ ĠonClick : Ġ( Int ) Ġ-> Ġ( Event ) Ġ-> ĠUnit Ċ ) Ġ= Ġchild ( ĊĠĠĠ Ġwith DisplayName (" Full ", Ġf Any Full < O , ĠS >( r Component )) Ċ ) Ġ{ ĊĠĠĠ Ġattrs . obj Ġ= Ġobj ĊĠĠĠ Ġattrs . sub objs Ġ= Ġsub objs ĊĠĠĠ Ġattrs . presents Ġ= Ġpresents ĊĠĠĠ Ġattrs . onClick Ġ= ĠonClick Ċ }