{"ast":null,"code":"import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n  return source => source.lift(new TakeUntilOperator(notifier));\n}\n\nclass TakeUntilOperator {\n  constructor(notifier) {\n    this.notifier = notifier;\n  }\n\n  call(subscriber, source) {\n    const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n    const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n\n    if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n      takeUntilSubscriber.add(notifierSubscription);\n      return source.subscribe(takeUntilSubscriber);\n    }\n\n    return takeUntilSubscriber;\n  }\n\n}\n\nclass TakeUntilSubscriber extends OuterSubscriber {\n  constructor(destination) {\n    super(destination);\n    this.seenValue = false;\n  }\n\n  notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n    this.seenValue = true;\n    this.complete();\n  }\n\n  notifyComplete() {}\n\n} //# sourceMappingURL=takeUntil.js.map","map":null,"metadata":{},"sourceType":"module"}