{"ast":null,"code":"import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n  return source => source.lift(new SampleOperator(notifier));\n}\n\nclass SampleOperator {\n  constructor(notifier) {\n    this.notifier = notifier;\n  }\n\n  call(subscriber, source) {\n    const sampleSubscriber = new SampleSubscriber(subscriber);\n    const subscription = source.subscribe(sampleSubscriber);\n    subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n    return subscription;\n  }\n\n}\n\nclass SampleSubscriber extends OuterSubscriber {\n  constructor() {\n    super(...arguments);\n    this.hasValue = false;\n  }\n\n  _next(value) {\n    this.value = value;\n    this.hasValue = true;\n  }\n\n  notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n    this.emitValue();\n  }\n\n  notifyComplete() {\n    this.emitValue();\n  }\n\n  emitValue() {\n    if (this.hasValue) {\n      this.hasValue = false;\n      this.destination.next(this.value);\n    }\n  }\n\n} //# sourceMappingURL=sample.js.map","map":null,"metadata":{},"sourceType":"module"}