@junte/ui
Version:
Quality Angular UI components kit
23 lines • 2.35 kB
JavaScript
import { Observable } from 'rxjs';
export function untilJSONChanged() {
return function (source) {
let prev = null;
return new Observable(observer => {
return source.subscribe({
next(x) {
if (JSON.stringify(x) !== JSON.stringify(prev)) {
prev = x;
observer.next(x);
}
},
error(err) {
observer.error(err);
},
complete() {
observer.complete();
}
});
});
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3V0aWxzL3J4anMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sVUFBVSxNQUF1QjtRQUN0QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUM5QyxJQUFJLEdBQUcsQ0FBQyxDQUFDO3dCQUNULFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2xCO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxDQUFDLEdBQUc7b0JBQ1AsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxRQUFRO29CQUNOLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHVudGlsSlNPTkNoYW5nZWQoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBsZXQgcHJldiA9IG51bGw7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh4KSB7XG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHgpICE9PSBKU09OLnN0cmluZ2lmeShwcmV2KSkge1xuICAgICAgICAgICAgcHJldiA9IHg7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG4iXX0=