package Ġa ode v . blue . r xs andbox . model . operator . observable . filter Ċ Ċ import Ġa ode v . blue . r xs andbox . model . Config Ċ import Ġa ode v . blue . r xs andbox . model . Observable T Ċ import Ġa ode v . blue . r xs andbox . model . Single T Ċ import Ġa ode v . blue . r xs andbox . model . operator . Operator ĊĊ Ċ class ĠObservable First < T Ġ: ĠAny > Ġ: ĠOperator Ġ{ ĊĊĠĠĠ Ġfun Ġapply ( input : ĠObservable T < T >): ĠSingle T < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( input . events . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= Ġinput . events . first () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSingle T ( Single T . Result . Success ( event . time , Ġevent . value )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( input . termination ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠObservable T . Termination . None Ġ-> ĠSingle T ( Single T . Result . None ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠObservable T . Termination . Complete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle T ( Single T . Result . Error ( input . termination . time )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠObservable T . Termination . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle T ( Single T . Result . Error ( input . termination . time )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġexpression : ĠString Ġ= Ġ" first " ĊĊĠĠĠ Ġoverride Ġval Ġdoc Url : ĠString ? Ġ= Ġ"${ Config . operator Doc Url Prefix } first . html " Ċ } Ċ