@ngaox/seo
Version:
Easily generate and manage SEO-friendly meta tags, page title,...
58 lines • 6.16 kB
JavaScript
import { NgModule } from '@angular/core';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { filter } from 'rxjs/operators';
import { SeoService } from './seo.service';
import { RouteDataSeoLoader, SeoDataLoader } from './loaders';
import { currentPageRoute } from './shared/helpers';
import { SeoDefaultsToken } from './shared/models';
import * as i0 from "@angular/core";
import * as i1 from "./loaders";
import * as i2 from "@angular/router";
import * as i3 from "./seo.service";
export class SeoModule {
constructor(Loader, router, route, seo) {
if (Loader) {
router.events
.pipe(filter(event => event instanceof NavigationEnd))
.subscribe(() => {
seo.set(Loader.resolve(currentPageRoute(route).snapshot));
});
}
}
static forRoot(defaults = {
title: '📝 Default NgaoxSeo Title - Change me!'
}) {
return {
ngModule: SeoModule,
providers: [
SeoService,
{
provide: SeoDefaultsToken,
useValue: defaults
}
]
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SeoModule, deps: [{ token: i1.SeoDataLoader }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.SeoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: SeoModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SeoModule, providers: [
{
provide: SeoDataLoader,
useClass: RouteDataSeoLoader
}
] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SeoModule, decorators: [{
type: NgModule,
args: [{
imports: [],
providers: [
{
provide: SeoDataLoader,
useClass: RouteDataSeoLoader
}
],
exports: []
}]
}], ctorParameters: () => [{ type: i1.SeoDataLoader }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.SeoService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Nlby9zcmMvbGliL3Nlby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBWWpFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ0UsTUFBcUIsRUFDckIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLEdBQWU7UUFFZixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLE1BQU07aUJBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQztpQkFDckQsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsV0FBeUI7UUFDdkIsS0FBSyxFQUFFLHdDQUF3QztLQUNoRDtRQUVELE9BQU87WUFDTCxRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUU7Z0JBQ1QsVUFBVTtnQkFDVjtvQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsUUFBUTtpQkFDbkI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQS9CVSxTQUFTOytHQUFULFNBQVM7K0dBQVQsU0FBUyxhQVJUO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0I7U0FDRjs7MkZBR1UsU0FBUztrQkFWckIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFFBQVEsRUFBRSxrQkFBa0I7eUJBQzdCO3FCQUNGO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFNlb1NlcnZpY2UgfSBmcm9tICcuL3Nlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVEYXRhU2VvTG9hZGVyLCBTZW9EYXRhTG9hZGVyIH0gZnJvbSAnLi9sb2FkZXJzJztcclxuXHJcbmltcG9ydCB7IGN1cnJlbnRQYWdlUm91dGUgfSBmcm9tICcuL3NoYXJlZC9oZWxwZXJzJztcclxuaW1wb3J0IHsgSVBhZ2VTZW9EYXRhLCBTZW9EZWZhdWx0c1Rva2VuIH0gZnJvbSAnLi9zaGFyZWQvbW9kZWxzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFNlb0RhdGFMb2FkZXIsXHJcbiAgICAgIHVzZUNsYXNzOiBSb3V0ZURhdGFTZW9Mb2FkZXJcclxuICAgIH1cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW9Nb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgTG9hZGVyOiBTZW9EYXRhTG9hZGVyLFxyXG4gICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBzZW86IFNlb1NlcnZpY2VcclxuICApIHtcclxuICAgIGlmIChMb2FkZXIpIHtcclxuICAgICAgcm91dGVyLmV2ZW50c1xyXG4gICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgc2VvLnNldChMb2FkZXIucmVzb2x2ZShjdXJyZW50UGFnZVJvdXRlKHJvdXRlKS5zbmFwc2hvdCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KFxyXG4gICAgZGVmYXVsdHM6IElQYWdlU2VvRGF0YSA9IHtcclxuICAgICAgdGl0bGU6ICfwn5OdIERlZmF1bHQgTmdhb3hTZW8gVGl0bGUgLSBDaGFuZ2UgbWUhJ1xyXG4gICAgfVxyXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2VvTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogU2VvTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBTZW9TZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFNlb0RlZmF1bHRzVG9rZW4sXHJcbiAgICAgICAgICB1c2VWYWx1ZTogZGVmYXVsdHNcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==