| 12345678910111213141516171819202122232425262728293031323334353637 | 
							- import { operate } from '../util/lift';
 
- import { innerFrom } from '../observable/innerFrom';
 
- import { createOperatorSubscriber } from './OperatorSubscriber';
 
- export function audit(durationSelector) {
 
-     return operate((source, subscriber) => {
 
-         let hasValue = false;
 
-         let lastValue = null;
 
-         let durationSubscriber = null;
 
-         let isComplete = false;
 
-         const endDuration = () => {
 
-             durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();
 
-             durationSubscriber = null;
 
-             if (hasValue) {
 
-                 hasValue = false;
 
-                 const value = lastValue;
 
-                 lastValue = null;
 
-                 subscriber.next(value);
 
-             }
 
-             isComplete && subscriber.complete();
 
-         };
 
-         const cleanupDuration = () => {
 
-             durationSubscriber = null;
 
-             isComplete && subscriber.complete();
 
-         };
 
-         source.subscribe(createOperatorSubscriber(subscriber, (value) => {
 
-             hasValue = true;
 
-             lastValue = value;
 
-             if (!durationSubscriber) {
 
-                 innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));
 
-             }
 
-         }, () => {
 
-             isComplete = true;
 
-             (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();
 
-         }));
 
-     });
 
- }
 
- //# sourceMappingURL=audit.js.map
 
 
  |