UNPKG

ngx-router-meta

Version:

Configure HTML meta tags in route configuration of Angular

20 lines 6.11 kB
import { InjectionToken } from '@angular/core'; import { catchError, EMPTY, map, scan, startWith, switchAll, switchMapTo, } from 'rxjs'; /** @internal */ export const ROUTE_META_CONFIG = new InjectionToken('ROUTE_META_CONFIG'); /** * Check if {@link Route#data} contains {@link RouteMeta} object */ export function isDataWithMeta(data) { return !!data.meta; } /** * Allows to accumulate many context objects streams into one stream * while merging all context objects together * and running any transformation function */ export function unfoldContext(ctx$$, mapFn) { return (o$) => o$.pipe(switchMapTo(ctx$$.pipe(switchAll(), catchError(() => EMPTY), map((ctx) => mapFn(ctx)), scan((acc, ctx) => ({ ...acc, ...ctx })), // Merge contexts startWith({})))); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcm91dGVyLW1ldGEvc3JjL2xpYi9yb3V0ZXItbWV0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE9BQU8sRUFDTCxVQUFVLEVBQ1YsS0FBSyxFQUNMLEdBQUcsRUFHSCxJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxNQUFNLENBQUM7QUEyRWQsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFVO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixLQUEwQyxFQUMxQyxLQUE4QjtJQUU5QixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDWixFQUFFLENBQUMsSUFBSSxDQUNMLFdBQVcsQ0FDVCxLQUFLLENBQUMsSUFBSSxDQUNSLFNBQVMsRUFBRSxFQUNYLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFDdkIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQjtJQUMzRCxTQUFTLENBQUMsRUFBTyxDQUFDLENBQ25CLENBQ0YsQ0FDRixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhRGVmaW5pdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGF0YSwgUm91dGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBFTVBUWSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBPcGVyYXRvckZ1bmN0aW9uLFxuICBzY2FuLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaEFsbCxcbiAgc3dpdGNoTWFwVG8sXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJbmRleGFibGUsIEluZmVyQXJyYXksIFVuaW9uVG9JbnRlcnNlY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgaWRlbnRpZmllcnMgb2YgaW50ZXJwb2xhdGlvbnMgaW4gbWV0YSBzdHJpbmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyTWV0YUludGVycG9sYXRpb24ge1xuICBzdGFydDogc3RyaW5nO1xuICBlbmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9mIHtAbGluayBSb3V0ZXJNZXRhTW9kdWxlfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlck1ldGFDb25maWcge1xuICBkZWZhdWx0TWV0YT86IFJvdXRlTWV0YTtcbiAgaW50ZXJwb2xhdGlvbj86IFJvdXRlck1ldGFJbnRlcnBvbGF0aW9uO1xufVxuXG4vKipcbiAqIENvbnRleHQgZm9yIHJlbmRlcmluZyBtZXRhIHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhQ29udGV4dCBleHRlbmRzIEluZGV4YWJsZTxhbnk+IHt9XG5cbi8qKlxuICogVGVtcGxhdGUgc3RyaW5ncyBmb3IgcmVuZGVyaW5nIG1ldGEgdGFnc1xuICpcbiAqIEV2ZXJ5IGtleSBtdXN0IG1hdGNoIGEgdGFnIG5hbWUgaXQncyBhcHBsaWVkIHRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVNZXRhVGVtcGxhdGVzIGV4dGVuZHMgSW5kZXhhYmxlPHN0cmluZz4ge31cblxuLyoqXG4gKiBNZXRhIHRhZ3Mgb2YgdGhlIHtAbGluayBSb3V0ZX0gd2l0aCB0ZW1wbGF0ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZU1ldGFcbiAgZXh0ZW5kcyBJbmRleGFibGU8c3RyaW5nIHwgTWV0YURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgX3RlbXBsYXRlc18/OiBSb3V0ZU1ldGFUZW1wbGF0ZXM7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IE1ldGFEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB7QGxpbmsgUm91dGUjZGF0YX0gd2l0aCB7QGxpbmsgUm91dGVNZXRhfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFXaXRoTWV0YSBleHRlbmRzIERhdGEge1xuICBtZXRhPzogUm91dGVNZXRhO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB7QGxpbmsgUm91dGV9IHdpdGgge0BsaW5rIERhdGFXaXRoTWV0YX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVdpdGhNZXRhIGV4dGVuZHMgUm91dGUge1xuICBkYXRhPzogRGF0YVdpdGhNZXRhO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB7QGxpbmsgUm91dGVzfSBhcyBhcnJheSBvZiB7QGxpbmsgUm91dGVXaXRoTWV0YX1cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVzV2l0aE1ldGEgPSBSb3V0ZVdpdGhNZXRhW107XG5cbi8qKlxuICogVXNlZnVsIGhlbHBlciB0byBjb21iaW5lIGRpZmZlcmVudCByb3V0ZSBkZWZpbml0aW9ucyBpbnRvIHNpbmdsZSBvbmVcbiAqXG4gKiBGb3IgZXhhbXBsZSwgeW91IHdhbnQgdG8gdXNlIHtAbGluayBSb3V0ZXNXaXRoTWV0YX0gYW5kIHNvbWUgb3RoZXIge0BsaW5rIFJvdXRlc1dpdGhTb21ldGhpbmd9XG4gKiB0aGVuIHlvdSBjYW4gY29tYmluZSB0aGVtIGxpa2Ugc286XG4gKiBgYGB0c1xuICogY29uc3Qgcm91dGVzOiBNZXJnZVJvdXRlczxSb3V0ZXNXaXRoTWV0YSB8IFJvdXRlc1dpdGhTb21ldGhpbmc+O1xuICogLy8gcm91dGVzW10uZGF0YSB3aWxsIGJlIHVuaW9uIG9mIHttZXRhOi4uLn0gYW5kIHtzb21ldGhpbmc6Li4ufVxuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIE1lcmdlUm91dGVzPFQgZXh0ZW5kcyBSb3V0ZXM+ID0gVW5pb25Ub0ludGVyc2VjdGlvbjxcbiAgSW5mZXJBcnJheTxUPlxuPltdO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgY29uc3QgUk9VVEVfTUVUQV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Um91dGVyTWV0YUNvbmZpZz4oXG4gICdST1VURV9NRVRBX0NPTkZJRycsXG4pO1xuXG4vKipcbiAqIENoZWNrIGlmIHtAbGluayBSb3V0ZSNkYXRhfSBjb250YWlucyB7QGxpbmsgUm91dGVNZXRhfSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YVdpdGhNZXRhKGRhdGE6IERhdGEpOiBkYXRhIGlzIFJlcXVpcmVkPERhdGFXaXRoTWV0YT4ge1xuICByZXR1cm4gISFkYXRhLm1ldGE7XG59XG5cbi8qKlxuICogQWxsb3dzIHRvIGFjY3VtdWxhdGUgbWFueSBjb250ZXh0IG9iamVjdHMgc3RyZWFtcyBpbnRvIG9uZSBzdHJlYW1cbiAqIHdoaWxlIG1lcmdpbmcgYWxsIGNvbnRleHQgb2JqZWN0cyB0b2dldGhlclxuICogYW5kIHJ1bm5pbmcgYW55IHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmZvbGRDb250ZXh0PFI+KFxuICBjdHgkJDogT2JzZXJ2YWJsZTxPYnNlcnZhYmxlPE1ldGFDb250ZXh0Pj4sXG4gIG1hcEZuOiAoY3R4OiBNZXRhQ29udGV4dCkgPT4gUixcbik6IE9wZXJhdG9yRnVuY3Rpb248YW55LCBSPiB7XG4gIHJldHVybiAobyQpID0+XG4gICAgbyQucGlwZShcbiAgICAgIHN3aXRjaE1hcFRvKFxuICAgICAgICBjdHgkJC5waXBlKFxuICAgICAgICAgIHN3aXRjaEFsbCgpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpLFxuICAgICAgICAgIG1hcCgoY3R4KSA9PiBtYXBGbihjdHgpKSxcbiAgICAgICAgICBzY2FuKChhY2MsIGN0eCkgPT4gKHsgLi4uYWNjLCAuLi5jdHggfSkpLCAvLyBNZXJnZSBjb250ZXh0c1xuICAgICAgICAgIHN0YXJ0V2l0aCh7fSBhcyBSKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cbiJdfQ==