UNPKG

@ngaox/seo

Version:

Easily generate and manage SEO-friendly meta tags, page title,...

27 lines 3.29 kB
import { Injectable } from '@angular/core'; import { PRIMARY_OUTLET } from '@angular/router'; import { SeoKey } from '../shared/models'; import * as i0 from "@angular/core"; export class RouteDataSeoLoader { resolve(snapshot) { let seoData; let route = snapshot.root; while (route !== undefined) { seoData = { ...(seoData ?? {}), ...(route.data[SeoKey] ?? {}) }; route = route.children.find(child => child.outlet === PRIMARY_OUTLET); } return seoData ?? {}; } } RouteDataSeoLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RouteDataSeoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); RouteDataSeoLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RouteDataSeoLoader, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RouteDataSeoLoader, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZGF0YS5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZW8vc3JjL2xpYi9sb2FkZXJzL3JvdXRlLWRhdGEubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEwQixjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUtwRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE9BQU8sQ0FBQyxRQUFnQztRQUN0QyxJQUFJLE9BQWlDLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQXVDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDOUQsT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzFCLE9BQU8sR0FBRztnQkFDUixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzlCLENBQUM7WUFDRixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OytHQVpVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFBSSU1BUllfT1VUTEVUIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElQYWdlU2VvRGF0YSwgSVNlb0xvYWRlciwgU2VvS2V5IH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlRGF0YVNlb0xvYWRlciBpbXBsZW1lbnRzIElTZW9Mb2FkZXIge1xuICByZXNvbHZlKHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogSVBhZ2VTZW9EYXRhIHtcbiAgICBsZXQgc2VvRGF0YTogSVBhZ2VTZW9EYXRhIHwgdW5kZWZpbmVkO1xuICAgIGxldCByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IHVuZGVmaW5lZCA9IHNuYXBzaG90LnJvb3Q7XG4gICAgd2hpbGUgKHJvdXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNlb0RhdGEgPSB7XG4gICAgICAgIC4uLihzZW9EYXRhID8/IHt9KSxcbiAgICAgICAgLi4uKHJvdXRlLmRhdGFbU2VvS2V5XSA/PyB7fSlcbiAgICAgIH07XG4gICAgICByb3V0ZSA9IHJvdXRlLmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4gY2hpbGQub3V0bGV0ID09PSBQUklNQVJZX09VVExFVCk7XG4gICAgfVxuICAgIHJldHVybiBzZW9EYXRhID8/IHt9O1xuICB9XG59XG4iXX0=