@ngaox/seo
Version:
Easily generate and manage SEO-friendly meta tags, page title,...
27 lines • 3.29 kB
JavaScript
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=