/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 / 2 0 1 9 Ġe - voy age urs Ġtechnologies Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġai . to ck . bot . connector . teams . messages Ċ Ċ import Ġcom . microsoft . bot . schema . models . Card Action Ċ import Ġcom . microsoft . bot . schema . models . Card Image Ċ import Ġai . to ck . bot . engine . action . Send Attachment Ċ import Ġai . to ck . bot . engine . message . Attachment Ċ import Ġai . to ck . bot . engine . message . Choice Ċ import Ġai . to ck . bot . engine . message . Generic Element Ċ import Ġai . to ck . bot . engine . message . Generic Message Ċ import Ġai . to ck . bot . engine . message . Generic Message . Companion . TITLE _ PARAM Ċ import Ġai . to ck . shared . map NotNull Values Ċ Ċ class ĠTeams Carousel ( val Ġlist Message : ĠList < Teams Bot Message >) Ġ: ĠTeams Bot Message ( null ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġto Generic Message (): ĠGeneric Message ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGeneric Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Elements Ġ= Ġlist Message . map Ġ{ ĠGeneric Element ( it . to Generic Message () Ġ?: ĠGeneric Message ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTeams Bot Text Message ( text : ĠString ) Ġ: ĠTeams Bot Message ( text ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠTeams Bot Text Message ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! super . equals ( other )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtext Ġ?: Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Generic Message (): ĠGeneric Message Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGeneric Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector Type Ġ= Ġconnector Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexts Ġ= Ġmap Of (" text " Ġto ĠtoString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTeams Hero Card ( ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġsubtitle : ĠString ?, ĊĠĠĠ Ġval Ġattachment Content : ĠString , ĊĠĠĠ Ġval Ġimages : ĠList < Card Image > ?, ĊĠĠĠ Ġval Ġbuttons : ĠList < Card Action > ?, ĊĠĠĠ Ġval Ġtap : ĠCard Action ? Ċ ) Ġ: ĠTeams Bot Message ( null ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġother ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠTeams Hero Card ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġother . title Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ!= Ġother . subtitle Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattachment Content Ġ!= Ġother . attachment Content ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(( images ?. size Ġ?: Ġ- 1 ) Ġ!= Ġ( other . images ?. size Ġ?: Ġ- 1 )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġimages ?. forEach Ġ{ self Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( other . images Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! other . images . any Ġ{ Ġ(( it . tap () Ġ!= Ġnull Ġ&& Ġself . tap () Ġ!= Ġnull Ġ&& Ġit . tap ()?. equals To ( self . tap ()) Ġ== Ġtrue ) Ġ|| Ġ( it . tap () Ġ== Ġnull Ġ&& Ġself . tap () Ġ== Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . alt () Ġ== Ġself . alt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . url () Ġ== Ġself . url () }) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(( buttons ?. size Ġ?: Ġ- 1 ) Ġ!= Ġ( other . buttons ?. size Ġ?: Ġ- 1 )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġbuttons ?. forEach Ġ{ self Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( other . buttons Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! other . buttons . any { Ġit . equals To ( self )}) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(( tap Ġ!= Ġnull Ġ&& Ġother . tap Ġ!= Ġnull ) Ġ&& Ġ! tap . equals To ( other . tap )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimages Ġ= Ġimages ?. map Ġ{ Ġit . url () Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= Ġbuttons ?. map Ġ{ Ġit . value () Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Teams Hero Card (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" title =$ title , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" subtitle =$ subtitle , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" attachment Content =$ attachment Content , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" images =$ images , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" buttons =$ buttons , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" tap =${ tap ?. value () })" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Generic Message (): ĠGeneric Message Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGeneric Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector Type Ġ= Ġconnector Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexts Ġ= Ġmap NotNull Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTITLE _ PARAM Ġto Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" subtitle " Ġto Ġsubtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" attachment Content " Ġto Ġattachment Content ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoices Ġ= Ġbuttons ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoice ( intent Name Ġ= Ġit . text ()?. toString () Ġ?: Ġit . title (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġmap NotNull Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" title " Ġto Ġit . title ()?. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value " Ġto Ġit . value ()?. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" display Text " Ġto Ġit . display Text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" text " Ġto Ġit . text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġit . type (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattachments Ġ= Ġimages ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttachment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġit . url (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠSend Attachment . Attachment Type . image ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠTeams Card Action ( ĊĠĠĠ Ġval Ġaction Title : ĠString , ĊĠĠĠ Ġval Ġbuttons : ĠList < Card Action >) Ġ: ĠTeams Bot Message ( null ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġto Generic Message (): ĠGeneric Message ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGeneric Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector Type Ġ= Ġconnector Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexts Ġ= Ġmap NotNull Values ( TITLE _ PARAM Ġto Ġaction Title ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoices Ġ= Ġbuttons . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoice ( intent Name Ġ= Ġit . text ()?. toString () Ġ?: Ġit . title (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġmap NotNull Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" title " Ġto Ġit . title ()?. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value " Ġto Ġit . value ()?. toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" display Text " Ġto Ġit . display Text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" text " Ġto Ġit . text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type " Ġto Ġit . type (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠTeams Card Action ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! super . equals ( other )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( action Title Ġ!= Ġother . action Title ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġbuttons . forEach Ġ{ self Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! other . buttons . any { Ġit . equals To ( self )}) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsuper . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġaction Title . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġbuttons . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġall Values Ġ= Ġbuttons . groupBy Ġ{ Ġit . title () Ġ}. map Values Ġ{ Ġit . value [ 0 ]. value () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Teams Card Action ( action Title ='$ action Title ', Ġbuttons =$ all Values )" ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠCard Action . equals To ( other : ĠCard Action ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġimage () Ġ== Ġother ?. image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġtext () Ġ== Ġother ?. text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġtitle () Ġ== Ġother ?. title () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġdisplay Text () Ġ== Ġother ?. display Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġtype ()?. name Ġ== Ġother ?. type ()?. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġvalue () Ġ== Ġother ?. value () Ċ }