| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- "use strict";
 
- var __extends = (this && this.__extends) || (function () {
 
-     var extendStatics = function (d, b) {
 
-         extendStatics = Object.setPrototypeOf ||
 
-             ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
 
-             function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
 
-         return extendStatics(d, b);
 
-     }
 
-     return function (d, b) {
 
-         extendStatics(d, b);
 
-         function __() { this.constructor = d; }
 
-         d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 
-     };
 
- })();
 
- Object.defineProperty(exports, "__esModule", { value: true });
 
- var innerSubscribe_1 = require("../innerSubscribe");
 
- function debounce(durationSelector) {
 
-     return function (source) { return source.lift(new DebounceOperator(durationSelector)); };
 
- }
 
- exports.debounce = debounce;
 
- var DebounceOperator = (function () {
 
-     function DebounceOperator(durationSelector) {
 
-         this.durationSelector = durationSelector;
 
-     }
 
-     DebounceOperator.prototype.call = function (subscriber, source) {
 
-         return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
 
-     };
 
-     return DebounceOperator;
 
- }());
 
- var DebounceSubscriber = (function (_super) {
 
-     __extends(DebounceSubscriber, _super);
 
-     function DebounceSubscriber(destination, durationSelector) {
 
-         var _this = _super.call(this, destination) || this;
 
-         _this.durationSelector = durationSelector;
 
-         _this.hasValue = false;
 
-         return _this;
 
-     }
 
-     DebounceSubscriber.prototype._next = function (value) {
 
-         try {
 
-             var result = this.durationSelector.call(this, value);
 
-             if (result) {
 
-                 this._tryNext(value, result);
 
-             }
 
-         }
 
-         catch (err) {
 
-             this.destination.error(err);
 
-         }
 
-     };
 
-     DebounceSubscriber.prototype._complete = function () {
 
-         this.emitValue();
 
-         this.destination.complete();
 
-     };
 
-     DebounceSubscriber.prototype._tryNext = function (value, duration) {
 
-         var subscription = this.durationSubscription;
 
-         this.value = value;
 
-         this.hasValue = true;
 
-         if (subscription) {
 
-             subscription.unsubscribe();
 
-             this.remove(subscription);
 
-         }
 
-         subscription = innerSubscribe_1.innerSubscribe(duration, new innerSubscribe_1.SimpleInnerSubscriber(this));
 
-         if (subscription && !subscription.closed) {
 
-             this.add(this.durationSubscription = subscription);
 
-         }
 
-     };
 
-     DebounceSubscriber.prototype.notifyNext = function () {
 
-         this.emitValue();
 
-     };
 
-     DebounceSubscriber.prototype.notifyComplete = function () {
 
-         this.emitValue();
 
-     };
 
-     DebounceSubscriber.prototype.emitValue = function () {
 
-         if (this.hasValue) {
 
-             var value = this.value;
 
-             var subscription = this.durationSubscription;
 
-             if (subscription) {
 
-                 this.durationSubscription = undefined;
 
-                 subscription.unsubscribe();
 
-                 this.remove(subscription);
 
-             }
 
-             this.value = undefined;
 
-             this.hasValue = false;
 
-             _super.prototype._next.call(this, value);
 
-         }
 
-     };
 
-     return DebounceSubscriber;
 
- }(innerSubscribe_1.SimpleOuterSubscriber));
 
- //# sourceMappingURL=debounce.js.map
 
 
  |