@spartacus/core
Version:
Spartacus - the core framework
34 lines • 4.8 kB
JavaScript
import { Injectable } from '@angular/core';
import { map, shareReplay } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
import * as i2 from "../services/activated-routes.service";
/**
* Service to expose all parameters for the router, including child routes.
* This is convenient in case the parent route (component) requires awareness
* of child routes parameters.
*/
export class RoutingParamsService {
constructor(router, activatedRoutesService) {
this.router = router;
this.activatedRoutesService = activatedRoutesService;
this.params$ = this.activatedRoutesService.routes$.pipe(map((routes) => this.findAllParam(routes)), shareReplay({ refCount: true, bufferSize: 1 }));
}
/**
* Get the list of all parameters of the full route. This includes
* active child routes.
*/
getParams() {
return this.params$;
}
findAllParam(routes) {
return Object.assign({}, ...routes.map((route) => route.params));
}
}
RoutingParamsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: RoutingParamsService, deps: [{ token: i1.Router }, { token: i2.ActivatedRoutesService }], target: i0.ɵɵFactoryTarget.Injectable });
RoutingParamsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: RoutingParamsService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: RoutingParamsService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ActivatedRoutesService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy1wYXJhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3JvdXRpbmcvZmFjYWRlL3JvdXRpbmctcGFyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR2xEOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1ksTUFBYyxFQUNkLHNCQUE4QztRQUQ5QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVR2QyxZQUFPLEdBRXJCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDMUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUtDLENBQUM7SUFFSjs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFUyxZQUFZLENBQUMsTUFBZ0M7UUFHckQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7O2lIQXpCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQixjQURQLE1BQU07MkZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hY3RpdmF0ZWQtcm91dGVzLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gZXhwb3NlIGFsbCBwYXJhbWV0ZXJzIGZvciB0aGUgcm91dGVyLCBpbmNsdWRpbmcgY2hpbGQgcm91dGVzLlxuICogVGhpcyBpcyBjb252ZW5pZW50IGluIGNhc2UgdGhlIHBhcmVudCByb3V0ZSAoY29tcG9uZW50KSByZXF1aXJlcyBhd2FyZW5lc3NcbiAqIG9mIGNoaWxkIHJvdXRlcyBwYXJhbWV0ZXJzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJvdXRpbmdQYXJhbXNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtcyQ6IE9ic2VydmFibGU8e1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfT4gPSB0aGlzLmFjdGl2YXRlZFJvdXRlc1NlcnZpY2Uucm91dGVzJC5waXBlKFxuICAgIG1hcCgocm91dGVzKSA9PiB0aGlzLmZpbmRBbGxQYXJhbShyb3V0ZXMpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZXNTZXJ2aWNlOiBBY3RpdmF0ZWRSb3V0ZXNTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGFsbCBwYXJhbWV0ZXJzIG9mIHRoZSBmdWxsIHJvdXRlLiBUaGlzIGluY2x1ZGVzXG4gICAqIGFjdGl2ZSBjaGlsZCByb3V0ZXMuXG4gICAqL1xuICBnZXRQYXJhbXMoKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1zJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaW5kQWxsUGFyYW0ocm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90W10pOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgLi4ucm91dGVzLm1hcCgocm91dGUpID0+IHJvdXRlLnBhcmFtcykpO1xuICB9XG59XG4iXX0=