@redux-multipurpose/angular-router
Version:
Redux Multipurpose angular-router is available as a package on NPM:
23 lines • 3.65 kB
JavaScript
import { __decorate } from "tslib";
import { NavigationEnd } from '@angular/router';
import { store, select } from '@redux-multipurpose/core';
import { filter } from 'rxjs/operators';
import { router } from './router.selectors-dispatchers';
import { updateUrl } from './router.slice';
export class RouterService {
constructor(router) {
this.router = router;
}
init() {
this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((navigationEndEvent) => {
store.dispatch(updateUrl(navigationEndEvent.url));
});
this.router$.pipe(filter(url => url != null && url != undefined && this.router.url !== url)).subscribe(url => {
this.router.navigateByUrl(url);
});
}
}
__decorate([
select(router)
], RouterService.prototype, "router$", void 0);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZWR1eC1tdWx0aXB1cnBvc2UvYW5ndWxhci1yb3V0ZXIvc3JjL2xpYi9zZXJ2aWNlL3JvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFDWSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUN2QixDQUFDO0lBRUosSUFBSTtRQUVBLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkIsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUEwQixFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNuRixDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFpQyxFQUFFLEVBQUU7WUFDOUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FDNUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXBCRztJQURDLE1BQU0sQ0FBQyxNQUFNLENBQUM7OENBQ2EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIEV2ZW50LCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHN0b3JlLCBzZWxlY3QgfSBmcm9tICdAcmVkdXgtbXVsdGlwdXJwb3NlL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHJvdXRlciB9IGZyb20gJy4vcm91dGVyLnNlbGVjdG9ycy1kaXNwYXRjaGVycyc7XG5pbXBvcnQgeyB1cGRhdGVVcmwgfSBmcm9tICcuL3JvdXRlci5zbGljZSc7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlXG57XG4gICAgQHNlbGVjdChyb3V0ZXIpXG4gICAgcm91dGVyJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBpbml0KClcbiAgICB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudDogRXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgICAgKS5zdWJzY3JpYmUoKG5hdmlnYXRpb25FbmRFdmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlVXJsKG5hdmlnYXRpb25FbmRFdmVudC51cmwpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodXJsID0+IHVybCAhPSBudWxsICYmIHVybCAhPSB1bmRlZmluZWQgJiYgdGhpcy5yb3V0ZXIudXJsICE9PSB1cmwpXG4gICAgICAgICkuc3Vic2NyaWJlKHVybCA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn0iXX0=