UNPKG

@spartacus/core

Version:

Spartacus - the core framework

26 lines 4.71 kB
import { inject, InjectionToken } from '@angular/core'; import { RoutingConfigService } from '../configurable-routes'; import { UrlMatcherService } from '../services/url-matcher.service'; export function getDefaultUrlMatcherFactory(routingConfigService, urlMatcherService) { const factory = (route) => { const routeName = route.data && route.data['cxRoute']; const routeConfig = routingConfigService.getRouteConfig(routeName); const paths = (routeConfig && routeConfig.paths) || []; return urlMatcherService.getFromPaths(paths); }; return factory; } /** * Injection token with url matcher factory for spartacus routes containing property `data.cxRoute`. * The provided url matcher matches the configured `paths` from routing config. * * If this matcher doesn't fit the requirements, it can be replaced with custom matcher * or additional matchers can be added for a specific route. See for example PRODUCT_DETAILS_URL_MATCHER. * * Note: Matchers will "match" a route, but do not contribute to the creation of the route, nor do they guard routes. */ export const DEFAULT_URL_MATCHER = new InjectionToken('DEFAULT_URL_MATCHER', { providedIn: 'root', factory: () => getDefaultUrlMatcherFactory(inject(RoutingConfigService), inject(UrlMatcherService)), }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC11cmwtbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3JvdXRpbmcvdXJsLW1hdGNoZXIvZGVmYXVsdC11cmwtbWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdwRSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLG9CQUEwQyxFQUMxQyxpQkFBb0M7SUFFcEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtRQUMvQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkQsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ25ELHFCQUFxQixFQUNyQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWiwyQkFBMkIsQ0FDekIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzVCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUMxQjtDQUNKLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvdXRpbmdDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlndXJhYmxlLXJvdXRlcyc7XG5pbXBvcnQgeyBVcmxNYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VybC1tYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXJsTWF0Y2hlckZhY3RvcnkgfSBmcm9tICcuL3VybC1tYXRjaGVyLWZhY3RvcnknO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFVybE1hdGNoZXJGYWN0b3J5KFxuICByb3V0aW5nQ29uZmlnU2VydmljZTogUm91dGluZ0NvbmZpZ1NlcnZpY2UsXG4gIHVybE1hdGNoZXJTZXJ2aWNlOiBVcmxNYXRjaGVyU2VydmljZVxuKTogVXJsTWF0Y2hlckZhY3Rvcnkge1xuICBjb25zdCBmYWN0b3J5ID0gKHJvdXRlOiBSb3V0ZSkgPT4ge1xuICAgIGNvbnN0IHJvdXRlTmFtZSA9IHJvdXRlLmRhdGEgJiYgcm91dGUuZGF0YVsnY3hSb3V0ZSddO1xuICAgIGNvbnN0IHJvdXRlQ29uZmlnID0gcm91dGluZ0NvbmZpZ1NlcnZpY2UuZ2V0Um91dGVDb25maWcocm91dGVOYW1lKTtcbiAgICBjb25zdCBwYXRocyA9IChyb3V0ZUNvbmZpZyAmJiByb3V0ZUNvbmZpZy5wYXRocykgfHwgW107XG4gICAgcmV0dXJuIHVybE1hdGNoZXJTZXJ2aWNlLmdldEZyb21QYXRocyhwYXRocyk7XG4gIH07XG4gIHJldHVybiBmYWN0b3J5O1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB3aXRoIHVybCBtYXRjaGVyIGZhY3RvcnkgZm9yIHNwYXJ0YWN1cyByb3V0ZXMgY29udGFpbmluZyBwcm9wZXJ0eSBgZGF0YS5jeFJvdXRlYC5cbiAqIFRoZSBwcm92aWRlZCB1cmwgbWF0Y2hlciBtYXRjaGVzIHRoZSBjb25maWd1cmVkIGBwYXRoc2AgZnJvbSByb3V0aW5nIGNvbmZpZy5cbiAqXG4gKiBJZiB0aGlzIG1hdGNoZXIgZG9lc24ndCBmaXQgdGhlIHJlcXVpcmVtZW50cywgaXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggY3VzdG9tIG1hdGNoZXJcbiAqIG9yIGFkZGl0aW9uYWwgbWF0Y2hlcnMgY2FuIGJlIGFkZGVkIGZvciBhIHNwZWNpZmljIHJvdXRlLiBTZWUgZm9yIGV4YW1wbGUgUFJPRFVDVF9ERVRBSUxTX1VSTF9NQVRDSEVSLlxuICpcbiAqIE5vdGU6IE1hdGNoZXJzIHdpbGwgXCJtYXRjaFwiIGEgcm91dGUsIGJ1dCBkbyBub3QgY29udHJpYnV0ZSB0byB0aGUgY3JlYXRpb24gb2YgdGhlIHJvdXRlLCBub3IgZG8gdGhleSBndWFyZCByb3V0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1VSTF9NQVRDSEVSID0gbmV3IEluamVjdGlvblRva2VuPFVybE1hdGNoZXJGYWN0b3J5PihcbiAgJ0RFRkFVTFRfVVJMX01BVENIRVInLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+XG4gICAgICBnZXREZWZhdWx0VXJsTWF0Y2hlckZhY3RvcnkoXG4gICAgICAgIGluamVjdChSb3V0aW5nQ29uZmlnU2VydmljZSksXG4gICAgICAgIGluamVjdChVcmxNYXRjaGVyU2VydmljZSlcbiAgICAgICksXG4gIH1cbik7XG4iXX0=