| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | import { Subscriber } from '../Subscriber';export function distinctUntilChanged(compare, keySelector) {    return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));}class DistinctUntilChangedOperator {    constructor(compare, keySelector) {        this.compare = compare;        this.keySelector = keySelector;    }    call(subscriber, source) {        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));    }}class DistinctUntilChangedSubscriber extends Subscriber {    constructor(destination, compare, keySelector) {        super(destination);        this.keySelector = keySelector;        this.hasKey = false;        if (typeof compare === 'function') {            this.compare = compare;        }    }    compare(x, y) {        return x === y;    }    _next(value) {        let key;        try {            const { keySelector } = this;            key = keySelector ? keySelector(value) : value;        }        catch (err) {            return this.destination.error(err);        }        let result = false;        if (this.hasKey) {            try {                const { compare } = this;                result = compare(this.key, key);            }            catch (err) {                return this.destination.error(err);            }        }        else {            this.hasKey = true;        }        if (!result) {            this.key = key;            this.destination.next(value);        }    }}//# sourceMappingURL=distinctUntilChanged.js.map
 |