package Ġnet . me il cli . d arch . common Ċ Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġnet . me il cli . d arch . common . properties . Combine Latest Reactive Property Ċ import Ġnet . me il cli . d arch . common . properties . Select Reactive Property Ċ import Ġnet . me il cli . d arch . common . properties . Where Reactive Property Ċ Ċ @ Experimental Cor outines Api Ċ interface ĠID arch ViewModel Ġ: ĠID arch Component Ġ{ ĊĊĠĠĠ Ġval Ġcoroutine Scope : ĠCor outine Scope ĊĊĠĠĠ Ġfun Ġ< T Parameter Ġ: ĠI Parameter , ĠTResult > Ġactive Query ( function : ĠFunction 1 < T Parameter , ĠTResult >): ĠI Active Query < T Parameter , ĠTResult > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActive Query ( logger , Ġfunction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Parameter Ġ: ĠI Parameter > Ġreactive Command (): ĠI Reactive Command < T Parameter > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠReactive Command ( logger ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< TSource , ĠTResult > ĠIReadOnly Reactive Property < TSource >. select ( selector : Ġ( TSource ) Ġ-> ĠTResult ): ĠIReadOnly Reactive Property < TResult > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSelect Reactive Property ( coroutine Scope , Ġthis , Ġselector ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > ĠIReadOnly Reactive Property < T >. where ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠIReadOnly Reactive Property < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWhere Reactive Property ( coroutine Scope , Ġthis , Ġpredicate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< TSource 1 , ĠT Source 2 , ĠTResult > Ġcombine Latest ( ĊĠĠĠĠĠĠĠ Ġsource 1 : ĠIReadOnly Reactive Property < TSource 1 >, ĊĠĠĠĠĠĠĠ Ġsource 2 : ĠIReadOnly Reactive Property < TSource 2 >, ĊĠĠĠĠĠĠĠ Ġselector : Ġ( TSource 1 , ĠT Source 2 ) Ġ-> ĠTResult ĊĠĠĠ Ġ): ĠIReadOnly Reactive Property < TResult > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCombine Latest Reactive Property ( coroutine Scope , Ġsource 1 , Ġsource 2 , Ġselector ) ĊĠĠĠ Ġ} Ċ }