package Ġformula ide . api . search Ċ Ċ import Ġformula ide . api . data . Form Submission Ċ import Ġformula ide . api . fields . FormField Ċ import Ġformula ide . api . fields . Form Root Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ /** Ċ Ġ* ĠAPI ĠObject Ġto Ġrepresent Ġa Ġfilter Ġfor Ġa Ġquery . Ċ Ġ* Ċ Ġ* ĠEach Ġcriterion Ġapplies Ġto Ġa Ġ[ field ][ field Key ]. Ċ Ġ* ĠMost Ġcriterion Ġalso Ġstore Ġadditional Ġdata . Ċ Ġ*/ Ċ @ Serializable Ċ sealed Ġclass ĠSearch Criterion < F Ġ: ĠForm Field > Ġ{ ĊĊ ĉ /** Ċĉ Ġ* ĠThe Ġ[ FormField ] Ġthis Ġcriterion Ġapplies Ġto . Ċĉ Ġ* Ċĉ Ġ* ĠThis Ġkey Ġrepresents Ġthe Ġpath Ġfrom Ġthe Ġ[ Form Root ] Ġto Ġthe Ġfield Ġwe Ġwant Ġto Ġmention ; Ċĉ Ġ* Ġeach Ġtra versed Ġfield 's Ġ[ id ][ FormField . id ] Ġis Ġused , Ġseparated Ġby Ġsemi - col ons Ġ(` :` ). Ċĉ Ġ* Ċĉ Ġ* ĠUn like Ġ[ Form Submission ], Ġthis Ġkey Ġdoesn 't Ġhave Ġany Ġspecific Ġsyntax Ġfor Ġfields Ġwith Ġ[ arity ][ FormField . arity ] Ġgreater Ġthan Ġ 1 . Ċĉ Ġ* ĠThey Ġare Ġtreated Ġas Ġnormal Ġfields . Ċĉ Ġ* Ċĉ Ġ* ĠExample : Ċĉ Ġ* Ġ``` text Ċĉ Ġ* ĠForm Root : ĠĠĠĠĠĠĠĠĠ Ġkey Ċĉ Ġ* ĠĠĠ 1 . ĠSimple Ġtext ĠĠ Ġ" 1 " Ċĉ Ġ* ĠĠĠ 2 . ĠSimple Ġtext ĠĠ Ġ" 2 " Ċĉ Ġ* ĠĠĠ 3 . ĠUnion ĠĠĠĠĠĠĠĠ Ġ" 3 " Ċĉ Ġ* ĠĠĠĠĠĠ 1 . ĠOption Ġ 1 ĠĠ Ġ" 3 : 1 " Ċĉ Ġ* ĠĠĠĠĠĠ 2 . ĠOption Ġ 2 ĠĠ Ġ" 3 : 2 " Ċĉ Ġ* ĠĠĠ 4 . ĠComposite ĠĠĠĠ Ġ" 4 " Ċĉ Ġ* ĠĠĠĠĠĠ 1 . ĠField Ġ 1 ĠĠĠ Ġ" 4 : 1 " Ċĉ Ġ* ĠĠĠĠĠĠ 2 . ĠField Ġ 2 ĠĠĠ Ġ" 4 : 2 " Ċĉ Ġ* Ġ``` Ċĉ Ġ*/ Ċ ĉ abstract Ġval Ġfield Key : ĠString ĊĊ ĉ /** Ċĉ Ġ* ĠAccept s Ġelements Ġthat Ġcome Ġafter Ġ[ min ] Ġ( included ) Ġin Ġnatural Ġordering . Ċĉ Ġ*/ Ċ ĉ @ Serializable Ċ ĉ @ Serial Name (" AFTER ") Ċ ĉ data Ġclass ĠOrder After ( Ċĉ ĉ override Ġval Ġfield Key : ĠString , Ċĉ ĉ val Ġmin : ĠString , Ċ ĉ ) Ġ: ĠSearch Criterion < FormField . Simple >() ĊĊ ĉ /** Ċĉ Ġ* ĠAccept s Ġelements Ġthat Ġcome Ġbefore Ġ[ max ] Ġ( included ) Ġin Ġnatural Ġordering . Ċĉ Ġ*/ Ċ ĉ @ Serializable Ċ ĉ @ Serial Name (" BEFORE ") Ċ ĉ data Ġclass ĠOrder Before ( Ċĉ ĉ override Ġval Ġfield Key : ĠString , Ċĉ ĉ val Ġmax : ĠString , Ċ ĉ ) Ġ: ĠSearch Criterion < FormField . Simple >() ĊĊ ĉ /** Ċĉ Ġ* ĠAccept s Ġanswers Ġthat Ġcontain Ġ[ text ] Ġ( ign oring Ġcase ). Ċĉ Ġ*/ Ċ ĉ @ Serializable Ċ ĉ @ Serial Name (" CONTAIN S ") Ċ ĉ data Ġclass ĠText Contains ( Ċĉ ĉ override Ġval Ġfield Key : ĠString , Ċĉ ĉ val Ġtext : ĠString , Ċ ĉ ) Ġ: ĠSearch Criterion < FormField . Simple >() ĊĊ ĉ /** Ċĉ Ġ* ĠAccept s Ġanswers Ġthat Ġare Ġexactly Ġ[ text ]. Ċĉ Ġ*/ Ċ ĉ @ Serializable Ċ ĉ @ Serial Name (" EQUAL S ") Ċ ĉ data Ġclass ĠText Equals ( Ċĉ ĉ override Ġval Ġfield Key : ĠString , Ċĉ ĉ val Ġtext : ĠString , Ċ ĉ ) Ġ: ĠSearch Criterion < FormField . Simple >() ĊĊ ĉ /** Ċĉ Ġ* ĠAccept s Ġfields Ġthat Ġhave Ġbeen Ġanswered Ġ( eg . Ġexclude s Ġoptional Ġfields Ġthat Ġthe Ġuser Ġdidn 't Ġprovide Ġan Ġanswer Ġto ). Ċĉ Ġ*/ Ċ ĉ @ Serializable Ċ ĉ @ Serial Name (" EXISTS ") Ċ ĉ data Ġclass ĠEx ists ( Ċĉ ĉ override Ġval Ġfield Key : ĠString , Ċ ĉ ) Ġ: ĠSearch Criterion < FormField >() Ċ } Ċ