1 import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';
2 export function takeUntil(notifier) {
3 return (source) => source.lift(new TakeUntilOperator(notifier));
5 class TakeUntilOperator {
6 constructor(notifier) {
7 this.notifier = notifier;
9 call(subscriber, source) {
10 const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
11 const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));
12 if (notifierSubscription && !takeUntilSubscriber.seenValue) {
13 takeUntilSubscriber.add(notifierSubscription);
14 return source.subscribe(takeUntilSubscriber);
16 return takeUntilSubscriber;
19 class TakeUntilSubscriber extends SimpleOuterSubscriber {
20 constructor(destination) {
22 this.seenValue = false;
25 this.seenValue = true;
31 //# sourceMappingURL=takeUntil.js.map