@alauda-fe/common
Version:
Alauda frontend team common codes.
20 lines • 3.63 kB
JavaScript
import { inject } from '@angular/core';
import { ActivatedRoute, NavigationEnd, Router, } from '@angular/router';
import { distinctUntilChanged, filter, map, startWith } from 'rxjs';
import { publishRef } from './operators';
export function getParamFromParent(key, snapshot) {
const value = snapshot.paramMap.get(key);
if (value) {
return value;
}
if (snapshot.parent) {
return getParamFromParent(key, snapshot.parent);
}
return '';
}
export function initParamFromParent$(key) {
const router = inject(Router);
const route = inject(ActivatedRoute);
return router.events.pipe(filter(e => e instanceof NavigationEnd), map(({ url }) => url), startWith(route.url), distinctUntilChanged(), map(() => getParamFromParent(key, route.snapshot)), publishRef());
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdXRpbHMvcm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLGNBQWMsRUFFZCxhQUFhLEVBQ2IsTUFBTSxHQUNQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUFXLEVBQ1gsUUFBZ0M7SUFFaEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVc7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDLEVBQ3ZDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFpQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDcEIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDbEQsVUFBVSxFQUFFLENBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uRW5kLFxuICBSb3V0ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBwdWJsaXNoUmVmIH0gZnJvbSAnLi9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyYW1Gcm9tUGFyZW50KFxuICBrZXk6IHN0cmluZyxcbiAgc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4pOiBzdHJpbmcge1xuICBjb25zdCB2YWx1ZSA9IHNuYXBzaG90LnBhcmFtTWFwLmdldChrZXkpO1xuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHNuYXBzaG90LnBhcmVudCkge1xuICAgIHJldHVybiBnZXRQYXJhbUZyb21QYXJlbnQoa2V5LCBzbmFwc2hvdC5wYXJlbnQpO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRQYXJhbUZyb21QYXJlbnQkKGtleTogc3RyaW5nKSB7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJldHVybiByb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgIG1hcCgoeyB1cmwgfTogTmF2aWdhdGlvbkVuZCkgPT4gdXJsKSxcbiAgICBzdGFydFdpdGgocm91dGUudXJsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoKSA9PiBnZXRQYXJhbUZyb21QYXJlbnQoa2V5LCByb3V0ZS5zbmFwc2hvdCkpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcbn1cbiJdfQ==