UNPKG

7.5 kBJavaScriptView Raw
1import { createFeatureSelector, createSelector, } from '@ngrx/store';
2import { DEFAULT_ROUTER_FEATURENAME } from './router_store_module';
3export function createRouterSelector() {
4 return createFeatureSelector(DEFAULT_ROUTER_FEATURENAME);
5}
6export function getSelectors(selectState = createRouterSelector()) {
7 const selectRouterState = createSelector(selectState, (router) => router && router.state);
8 const selectRootRoute = createSelector(selectRouterState, (routerState) => routerState && routerState.root);
9 const selectCurrentRoute = createSelector(selectRootRoute, (rootRoute) => {
10 if (!rootRoute) {
11 return undefined;
12 }
13 let route = rootRoute;
14 while (route.firstChild) {
15 route = route.firstChild;
16 }
17 return route;
18 });
19 const selectFragment = createSelector(selectRootRoute, (route) => route && route.fragment);
20 const selectQueryParams = createSelector(selectRootRoute, (route) => route && route.queryParams);
21 const selectQueryParam = (param) => createSelector(selectQueryParams, (params) => params && params[param]);
22 const selectRouteParams = createSelector(selectCurrentRoute, (route) => route && route.params);
23 const selectRouteParam = (param) => createSelector(selectRouteParams, (params) => params && params[param]);
24 const selectRouteData = createSelector(selectCurrentRoute, (route) => route && route.data);
25 const selectUrl = createSelector(selectRouterState, (routerState) => routerState && routerState.url);
26 const selectTitle = createSelector(selectCurrentRoute, (route) => route && route.routeConfig?.title);
27 return {
28 selectCurrentRoute,
29 selectFragment,
30 selectQueryParams,
31 selectQueryParam,
32 selectRouteParams,
33 selectRouteParam,
34 selectRouteData,
35 selectUrl,
36 selectTitle,
37 };
38}
39//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyX3NlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvcm91dGVyLXN0b3JlL3NyYy9yb3V0ZXJfc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsY0FBYyxHQUVmLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE1BQU0sVUFBVSxvQkFBb0I7SUFHbEMsT0FBTyxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixjQUFxRCxvQkFBb0IsRUFBSztJQUU5RSxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FDdEMsV0FBVyxFQUNYLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FDbkMsQ0FBQztJQUNGLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FDcEMsaUJBQWlCLEVBQ2pCLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FDakQsQ0FBQztJQUNGLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDMUI7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUNuQyxlQUFlLEVBQ2YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUNuQyxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQ3RDLGVBQWUsRUFDZixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQ3RDLENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDekMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQ3RDLGtCQUFrQixFQUNsQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQ2pDLENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDekMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUNwQyxrQkFBa0IsRUFDbEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUMvQixDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUM5QixpQkFBaUIsRUFDakIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUNoRCxDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUNoQyxrQkFBa0IsRUFDbEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FDN0MsQ0FBQztJQUVGLE9BQU87UUFDTCxrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsU0FBUztRQUNULFdBQVc7S0FDWixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3RvcixcbiAgY3JlYXRlU2VsZWN0b3IsXG4gIE1lbW9pemVkU2VsZWN0b3IsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFJvdXRlclN0YXRlU2VsZWN0b3JzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUm91dGVyUmVkdWNlclN0YXRlIH0gZnJvbSAnLi9yZWR1Y2VyJztcbmltcG9ydCB7IERFRkFVTFRfUk9VVEVSX0ZFQVRVUkVOQU1FIH0gZnJvbSAnLi9yb3V0ZXJfc3RvcmVfbW9kdWxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlclNlbGVjdG9yPFxuICBTdGF0ZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT5cbj4oKTogTWVtb2l6ZWRTZWxlY3RvcjxTdGF0ZSwgUm91dGVyUmVkdWNlclN0YXRlPiB7XG4gIHJldHVybiBjcmVhdGVGZWF0dXJlU2VsZWN0b3IoREVGQVVMVF9ST1VURVJfRkVBVFVSRU5BTUUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0b3JzPFY+KFxuICBzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBSb3V0ZXJSZWR1Y2VyU3RhdGU8YW55PiA9IGNyZWF0ZVJvdXRlclNlbGVjdG9yPFY+KClcbik6IFJvdXRlclN0YXRlU2VsZWN0b3JzPFY+IHtcbiAgY29uc3Qgc2VsZWN0Um91dGVyU3RhdGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzZWxlY3RTdGF0ZSxcbiAgICAocm91dGVyKSA9PiByb3V0ZXIgJiYgcm91dGVyLnN0YXRlXG4gICk7XG4gIGNvbnN0IHNlbGVjdFJvb3RSb3V0ZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNlbGVjdFJvdXRlclN0YXRlLFxuICAgIChyb3V0ZXJTdGF0ZSkgPT4gcm91dGVyU3RhdGUgJiYgcm91dGVyU3RhdGUucm9vdFxuICApO1xuICBjb25zdCBzZWxlY3RDdXJyZW50Um91dGUgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSb290Um91dGUsIChyb290Um91dGUpID0+IHtcbiAgICBpZiAoIXJvb3RSb3V0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbGV0IHJvdXRlID0gcm9vdFJvdXRlO1xuICAgIHdoaWxlIChyb3V0ZS5maXJzdENoaWxkKSB7XG4gICAgICByb3V0ZSA9IHJvdXRlLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdEZyYWdtZW50ID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc2VsZWN0Um9vdFJvdXRlLFxuICAgIChyb3V0ZSkgPT4gcm91dGUgJiYgcm91dGUuZnJhZ21lbnRcbiAgKTtcbiAgY29uc3Qgc2VsZWN0UXVlcnlQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzZWxlY3RSb290Um91dGUsXG4gICAgKHJvdXRlKSA9PiByb3V0ZSAmJiByb3V0ZS5xdWVyeVBhcmFtc1xuICApO1xuICBjb25zdCBzZWxlY3RRdWVyeVBhcmFtID0gKHBhcmFtOiBzdHJpbmcpID0+XG4gICAgY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UXVlcnlQYXJhbXMsIChwYXJhbXMpID0+IHBhcmFtcyAmJiBwYXJhbXNbcGFyYW1dKTtcbiAgY29uc3Qgc2VsZWN0Um91dGVQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzZWxlY3RDdXJyZW50Um91dGUsXG4gICAgKHJvdXRlKSA9PiByb3V0ZSAmJiByb3V0ZS5wYXJhbXNcbiAgKTtcbiAgY29uc3Qgc2VsZWN0Um91dGVQYXJhbSA9IChwYXJhbTogc3RyaW5nKSA9PlxuICAgIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJvdXRlUGFyYW1zLCAocGFyYW1zKSA9PiBwYXJhbXMgJiYgcGFyYW1zW3BhcmFtXSk7XG4gIGNvbnN0IHNlbGVjdFJvdXRlRGF0YSA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHNlbGVjdEN1cnJlbnRSb3V0ZSxcbiAgICAocm91dGUpID0+IHJvdXRlICYmIHJvdXRlLmRhdGFcbiAgKTtcbiAgY29uc3Qgc2VsZWN0VXJsID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgc2VsZWN0Um91dGVyU3RhdGUsXG4gICAgKHJvdXRlclN0YXRlKSA9PiByb3V0ZXJTdGF0ZSAmJiByb3V0ZXJTdGF0ZS51cmxcbiAgKTtcbiAgY29uc3Qgc2VsZWN0VGl0bGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgICBzZWxlY3RDdXJyZW50Um91dGUsXG4gICAgKHJvdXRlKSA9PiByb3V0ZSAmJiByb3V0ZS5yb3V0ZUNvbmZpZz8udGl0bGVcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHNlbGVjdEN1cnJlbnRSb3V0ZSxcbiAgICBzZWxlY3RGcmFnbWVudCxcbiAgICBzZWxlY3RRdWVyeVBhcmFtcyxcbiAgICBzZWxlY3RRdWVyeVBhcmFtLFxuICAgIHNlbGVjdFJvdXRlUGFyYW1zLFxuICAgIHNlbGVjdFJvdXRlUGFyYW0sXG4gICAgc2VsZWN0Um91dGVEYXRhLFxuICAgIHNlbGVjdFVybCxcbiAgICBzZWxlY3RUaXRsZSxcbiAgfTtcbn1cbiJdfQ==
\No newline at end of file