package Ġorg . pro meth ist . core . dialog ue Ċ Ċ import Ġorg . pro meth ist . core . type . Dynamic Ċ Ċ fun ĠBasic Dialog ue . enumerate ( var arg Ġdata : ĠAny ?, Ġsub j Block : Ġ( Int ) Ġ-> ĠString , Ġbefore : ĠBoolean Ġ= Ġfalse , Ġconj : ĠString Ġ= Ġ"", Ġdetail : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data . asList (). map Ġ{ Ġdescribe ( it , Ġdetail ) Ġ}, Ġsub j Block , Ġbefore , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( var arg Ġdata : ĠAny ?, Ġsub j : ĠString Ġ= Ġ"", Ġbefore : ĠBoolean Ġ= Ġfalse , Ġconj : ĠString Ġ= Ġ"", Ġdetail : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data . asList (). map Ġ{ Ġdescribe ( it , Ġdetail ) Ġ}, Ġsub j , Ġbefore , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( data : ĠCollection < String >, Ġsub j Block : Ġ( Int ) Ġ-> ĠString , Ġbefore : ĠBoolean Ġ= Ġfalse , Ġconj : ĠString Ġ= Ġ"") : ĠString Ġ{ ĊĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( data Ġis ĠList < String >) Ġdata Ġelse Ġdata . toList () ĊĠĠĠ Ġval Ġsub j Ġ= Ġsub j Block ( list . size ) ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . isEmpty () Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty ( subj ) ĊĠĠĠĠĠĠĠ Ġlist . size Ġ== Ġ 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( if Ġ( before Ġ&& Ġsub j . isNotEmpty ()) Ġ"$ subj Ġ" Ġelse Ġ"") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . first () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ(! before Ġ&& Ġsub j . isNotEmpty ()) Ġ" Ġ$ subj " Ġelse Ġ"") ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġop Ġ= Ġif Ġ( conj Ġ== Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" en " Ġto Ġ" and ", Ġ" de " Ġto Ġ" und ", Ġ" cs " Ġto Ġ" a ")[ language ] Ġ?: Ġunsupported Language () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconj ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( before Ġ&& Ġsub j . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append ( subj ). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append ( if Ġ( i Ġ== Ġlist . size Ġ- Ġ 1 ) Ġ", Ġ$ op Ġ" Ġelse Ġ", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append ( list [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! before Ġ&& Ġsub j . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr . append (' Ġ'). append ( subj ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġstr . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBasic Dialog ue . enumerate ( subj Block : Ġ( Int ) Ġ-> ĠString , Ġdata : ĠCollection < String >, Ġconj : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data , Ġsub j Block , Ġtrue , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( subj : ĠString , Ġdata : ĠCollection < String >, Ġconj : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data , Ġsub j , Ġtrue , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( data : ĠCollection < String >, Ġsub j : ĠString Ġ= Ġ"", Ġbefore : ĠBoolean Ġ= Ġfalse , Ġconj : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data , Ġ{ Ġplural ( subj , Ġdata . size ) Ġ}, Ġbefore , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( data : ĠCollection < Number >, Ġbefore : ĠBoolean Ġ= Ġfalse , Ġconj : ĠString Ġ= Ġ"") Ġ= ĊĠĠĠĠĠĠĠ Ġenumerate ( data . map Ġ{ Ġdescribe ( it ) Ġ}, Ġ"", Ġbefore , Ġconj ) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( data : ĠMap < String , ĠNumber >): ĠString Ġ= Ġenumerate ( mutable ListOf < String >(). apply Ġ{ ĊĠĠĠ Ġdata . forEach Ġ{ Ġadd ( it . value Ġof Ġit . key ) Ġ} Ċ }) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( data : ĠDynamic ) Ġ= Ġenumerate ( mutable ListOf < String >(). apply Ġ{ ĊĠĠĠ Ġdata . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . value Ġis ĠNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( it . value Ġas ĠNumber Ġof Ġit . key ) ĊĠĠĠ Ġ} Ċ }) Ċ Ċ fun ĠBasic Dialog ue . enumerate ( var arg Ġpairs : ĠPair < String , ĠNumber >) Ġ= Ġenumerate ( pairs . toMap ())