@ngaox/seo
Version:
Easily generate and manage SEO-friendly meta tags, page title,...
27 lines • 3.35 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 ?? {};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RouteDataSeoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RouteDataSeoLoader, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RouteDataSeoLoader, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZGF0YS5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zZW8vc3JjL2xpYi9sb2FkZXJzL3JvdXRlLWRhdGEubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUEwQixjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUtwRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE9BQU8sQ0FBQyxRQUFnQztRQUN0QyxJQUFJLE9BQWlDLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQXVDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDOUQsT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0IsT0FBTyxHQUFHO2dCQUNSLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNsQixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDOUIsQ0FBQztZQUNGLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUNELE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzhHQVpVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFBSSU1BUllfT1VUTEVUIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSVBhZ2VTZW9EYXRhLCBJU2VvTG9hZGVyLCBTZW9LZXkgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvdXRlRGF0YVNlb0xvYWRlciBpbXBsZW1lbnRzIElTZW9Mb2FkZXIge1xyXG4gIHJlc29sdmUoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBJUGFnZVNlb0RhdGEge1xyXG4gICAgbGV0IHNlb0RhdGE6IElQYWdlU2VvRGF0YSB8IHVuZGVmaW5lZDtcclxuICAgIGxldCByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IHVuZGVmaW5lZCA9IHNuYXBzaG90LnJvb3Q7XHJcbiAgICB3aGlsZSAocm91dGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzZW9EYXRhID0ge1xyXG4gICAgICAgIC4uLihzZW9EYXRhID8/IHt9KSxcclxuICAgICAgICAuLi4ocm91dGUuZGF0YVtTZW9LZXldID8/IHt9KVxyXG4gICAgICB9O1xyXG4gICAgICByb3V0ZSA9IHJvdXRlLmNoaWxkcmVuLmZpbmQoY2hpbGQgPT4gY2hpbGQub3V0bGV0ID09PSBQUklNQVJZX09VVExFVCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2VvRGF0YSA/PyB7fTtcclxuICB9XHJcbn1cclxuIl19