@igo2/core
Version:
75 lines • 8.75 kB
JavaScript
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
export const ROUTE_SERVICE_OPTIONS = new InjectionToken('routeServiceOptions');
export function provideRouteServiceOptions(options) {
return {
provide: ROUTE_SERVICE_OPTIONS,
useValue: options
};
}
export class RouteService {
router;
route;
options;
constructor(router, route, options) {
this.router = router;
this.route = route;
const defaultOptions = {
centerKey: 'center',
zoomKey: 'zoom',
projectionKey: 'projection',
contextKey: 'context',
searchKey: 'search',
visibleOnLayersKey: 'visiblelayers',
visibleOffLayersKey: 'invisiblelayers',
directionsCoordKey: 'routing',
directionsOptionsKey: 'routingOptions',
toolKey: 'tool',
wmsUrlKey: 'wmsUrl',
wmsLayersKey: 'wmsLayers',
wmtsUrlKey: 'wmtsUrl',
wmtsLayersKey: 'wmtsLayers',
arcgisUrlKey: 'arcgisUrl',
arcgisLayersKey: 'arcgisLayers',
iarcgisUrlKey: 'iarcgisUrl',
iarcgisLayersKey: 'iarcgisLayers',
tarcgisUrlKey: 'tarcgisUrl',
tarcgisLayersKey: 'tarcgisLayers',
vectorKey: 'vector'
};
this.options = Object.assign({}, defaultOptions, options);
}
get queryParams() {
let url = decodeURIComponent(location.search);
if (url.includes('¢er=')) {
url = url.replace('¢er', '¢er');
const queryParams = url
.slice(1)
.split('&')
.map((p) => p.split('='))
.reduce((obj, pair) => {
const [key, value] = pair.map(decodeURIComponent);
obj[key] = value;
return obj;
}, {});
this.router.navigate([], { queryParams });
}
return this.route.queryParams;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouteService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: ROUTE_SERVICE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouteService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouteService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
type: Inject,
args: [ROUTE_SERVICE_OPTIONS]
}, {
type: Optional
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcm91dGUvc3JjL3JvdXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHFCQUFxQixDQUN0QixDQUFDO0FBRUYsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQTRCO0lBQ3JFLE9BQU87UUFDTCxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxPQUFPO0tBQ2xCLENBQUM7QUFDSixDQUFDO0FBS0QsTUFBTSxPQUFPLFlBQVk7SUFJYjtJQUNEO0lBSkYsT0FBTyxDQUFzQjtJQUVwQyxZQUNVLE1BQWMsRUFDZixLQUFxQixFQUc1QixPQUE0QjtRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFLNUIsTUFBTSxjQUFjLEdBQUc7WUFDckIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsWUFBWTtZQUMzQixVQUFVLEVBQUUsU0FBUztZQUNyQixTQUFTLEVBQUUsUUFBUTtZQUNuQixrQkFBa0IsRUFBRSxlQUFlO1lBQ25DLG1CQUFtQixFQUFFLGlCQUFpQjtZQUN0QyxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLG9CQUFvQixFQUFFLGdCQUFnQjtZQUN0QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLGVBQWUsRUFBRSxjQUFjO1lBQy9CLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGdCQUFnQixFQUFFLGVBQWU7WUFDakMsYUFBYSxFQUFFLFlBQVk7WUFDM0IsZ0JBQWdCLEVBQUUsZUFBZTtZQUNqQyxTQUFTLEVBQUUsUUFBUTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN6QixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEMsTUFBTSxXQUFXLEdBQVEsR0FBRztpQkFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDUixLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDeEIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNwQixNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDbEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDakIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7d0dBcERVLFlBQVksc0VBTWIscUJBQXFCOzRHQU5wQixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMscUJBQXFCOzswQkFDNUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJvdXRlU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL3JvdXRlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBST1VURV9TRVJWSUNFX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Um91dGVTZXJ2aWNlT3B0aW9ucz4oXG4gICdyb3V0ZVNlcnZpY2VPcHRpb25zJ1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSb3V0ZVNlcnZpY2VPcHRpb25zKG9wdGlvbnM6IFJvdXRlU2VydmljZU9wdGlvbnMpIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBST1VURV9TRVJWSUNFX09QVElPTlMsXG4gICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgfTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUm91dGVTZXJ2aWNlIHtcbiAgcHVibGljIG9wdGlvbnM6IFJvdXRlU2VydmljZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBJbmplY3QoUk9VVEVfU0VSVklDRV9PUFRJT05TKVxuICAgIEBPcHRpb25hbCgpXG4gICAgb3B0aW9uczogUm91dGVTZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICAgIGNlbnRlcktleTogJ2NlbnRlcicsXG4gICAgICB6b29tS2V5OiAnem9vbScsXG4gICAgICBwcm9qZWN0aW9uS2V5OiAncHJvamVjdGlvbicsXG4gICAgICBjb250ZXh0S2V5OiAnY29udGV4dCcsXG4gICAgICBzZWFyY2hLZXk6ICdzZWFyY2gnLFxuICAgICAgdmlzaWJsZU9uTGF5ZXJzS2V5OiAndmlzaWJsZWxheWVycycsXG4gICAgICB2aXNpYmxlT2ZmTGF5ZXJzS2V5OiAnaW52aXNpYmxlbGF5ZXJzJyxcbiAgICAgIGRpcmVjdGlvbnNDb29yZEtleTogJ3JvdXRpbmcnLFxuICAgICAgZGlyZWN0aW9uc09wdGlvbnNLZXk6ICdyb3V0aW5nT3B0aW9ucycsXG4gICAgICB0b29sS2V5OiAndG9vbCcsXG4gICAgICB3bXNVcmxLZXk6ICd3bXNVcmwnLFxuICAgICAgd21zTGF5ZXJzS2V5OiAnd21zTGF5ZXJzJyxcbiAgICAgIHdtdHNVcmxLZXk6ICd3bXRzVXJsJyxcbiAgICAgIHdtdHNMYXllcnNLZXk6ICd3bXRzTGF5ZXJzJyxcbiAgICAgIGFyY2dpc1VybEtleTogJ2FyY2dpc1VybCcsXG4gICAgICBhcmNnaXNMYXllcnNLZXk6ICdhcmNnaXNMYXllcnMnLFxuICAgICAgaWFyY2dpc1VybEtleTogJ2lhcmNnaXNVcmwnLFxuICAgICAgaWFyY2dpc0xheWVyc0tleTogJ2lhcmNnaXNMYXllcnMnLFxuICAgICAgdGFyY2dpc1VybEtleTogJ3RhcmNnaXNVcmwnLFxuICAgICAgdGFyY2dpc0xheWVyc0tleTogJ3RhcmNnaXNMYXllcnMnLFxuICAgICAgdmVjdG9yS2V5OiAndmVjdG9yJ1xuICAgIH07XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IHF1ZXJ5UGFyYW1zKCk6IE9ic2VydmFibGU8UGFyYW1zPiB7XG4gICAgbGV0IHVybCA9IGRlY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5zZWFyY2gpO1xuICAgIGlmICh1cmwuaW5jbHVkZXMoJ8KiZXI9JykpIHtcbiAgICAgIHVybCA9IHVybC5yZXBsYWNlKCfComVyJywgJyZjZW50ZXInKTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB1cmxcbiAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgIC5zcGxpdCgnJicpXG4gICAgICAgIC5tYXAoKHApID0+IHAuc3BsaXQoJz0nKSlcbiAgICAgICAgLnJlZHVjZSgob2JqLCBwYWlyKSA9PiB7XG4gICAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gcGFpci5tYXAoZGVjb2RlVVJJQ29tcG9uZW50KTtcbiAgICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcztcbiAgfVxufVxuIl19