| import { Subscriber } from '../Subscriber'; | 
| export function find(predicate, thisArg) { | 
|     if (typeof predicate !== 'function') { | 
|         throw new TypeError('predicate is not a function'); | 
|     } | 
|     return (source) => source.lift(new FindValueOperator(predicate, source, false, thisArg)); | 
| } | 
| export class FindValueOperator { | 
|     constructor(predicate, source, yieldIndex, thisArg) { | 
|         this.predicate = predicate; | 
|         this.source = source; | 
|         this.yieldIndex = yieldIndex; | 
|         this.thisArg = thisArg; | 
|     } | 
|     call(observer, source) { | 
|         return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); | 
|     } | 
| } | 
| export class FindValueSubscriber extends Subscriber { | 
|     constructor(destination, predicate, source, yieldIndex, thisArg) { | 
|         super(destination); | 
|         this.predicate = predicate; | 
|         this.source = source; | 
|         this.yieldIndex = yieldIndex; | 
|         this.thisArg = thisArg; | 
|         this.index = 0; | 
|     } | 
|     notifyComplete(value) { | 
|         const destination = this.destination; | 
|         destination.next(value); | 
|         destination.complete(); | 
|         this.unsubscribe(); | 
|     } | 
|     _next(value) { | 
|         const { predicate, thisArg } = this; | 
|         const index = this.index++; | 
|         try { | 
|             const result = predicate.call(thisArg || this, value, index, this.source); | 
|             if (result) { | 
|                 this.notifyComplete(this.yieldIndex ? index : value); | 
|             } | 
|         } | 
|         catch (err) { | 
|             this.destination.error(err); | 
|         } | 
|     } | 
|     _complete() { | 
|         this.notifyComplete(this.yieldIndex ? -1 : undefined); | 
|     } | 
| } | 
| //# sourceMappingURL=find.js.map |