UNPKG

@ngaox/seo

Version:

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

60 lines 6.41 kB
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 { SeoComponent } from './seo.component'; 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 } ] }; } } SeoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SeoModule, deps: [{ token: i1.SeoDataLoader }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.SeoService }], target: i0.ɵɵFactoryTarget.NgModule }); SeoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SeoModule, declarations: [SeoComponent], exports: [SeoComponent] }); SeoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SeoModule, providers: [ { provide: SeoDataLoader, useClass: RouteDataSeoLoader } ] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SeoModule, decorators: [{ type: NgModule, args: [{ declarations: [SeoComponent], imports: [], providers: [ { provide: SeoDataLoader, useClass: RouteDataSeoLoader } ], exports: [SeoComponent] }] }], ctorParameters: function () { return [{ type: i1.SeoDataLoader }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.SeoService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Nlby9zcmMvbGliL3Nlby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQWEvQyxNQUFNLE9BQU8sU0FBUztJQUNwQixZQUNFLE1BQXFCLEVBQ3JCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixHQUFlO1FBRWYsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsTUFBTTtpQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2lCQUNyRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsV0FBeUI7UUFDdkIsS0FBSyxFQUFFLHdDQUF3QztLQUNoRDtRQUVELE9BQU87WUFDTCxRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUU7Z0JBQ1QsVUFBVTtnQkFDVjtvQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsUUFBUTtpQkFDbkI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztzR0EvQlUsU0FBUzt1R0FBVCxTQUFTLGlCQVZMLFlBQVksYUFRakIsWUFBWTt1R0FFWCxTQUFTLGFBUlQ7UUFDVDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFFBQVEsRUFBRSxrQkFBa0I7U0FDN0I7S0FDRjsyRkFHVSxTQUFTO2tCQVhyQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDNUIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixRQUFRLEVBQUUsa0JBQWtCO3lCQUM3QjtxQkFDRjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi9zZW8uc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZURhdGFTZW9Mb2FkZXIsIFNlb0RhdGFMb2FkZXIgfSBmcm9tICcuL2xvYWRlcnMnO1xuXG5pbXBvcnQgeyBjdXJyZW50UGFnZVJvdXRlIH0gZnJvbSAnLi9zaGFyZWQvaGVscGVycyc7XG5pbXBvcnQgeyBJUGFnZVNlb0RhdGEsIFNlb0RlZmF1bHRzVG9rZW4gfSBmcm9tICcuL3NoYXJlZC9tb2RlbHMnO1xuaW1wb3J0IHsgU2VvQ29tcG9uZW50IH0gZnJvbSAnLi9zZW8uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2VvQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlb0RhdGFMb2FkZXIsXG4gICAgICB1c2VDbGFzczogUm91dGVEYXRhU2VvTG9hZGVyXG4gICAgfVxuICBdLFxuICBleHBvcnRzOiBbU2VvQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTZW9Nb2R1bGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBMb2FkZXI6IFNlb0RhdGFMb2FkZXIsXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHNlbzogU2VvU2VydmljZVxuICApIHtcbiAgICBpZiAoTG9hZGVyKSB7XG4gICAgICByb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzZW8uc2V0KExvYWRlci5yZXNvbHZlKGN1cnJlbnRQYWdlUm91dGUocm91dGUpLnNuYXBzaG90KSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgICBkZWZhdWx0czogSVBhZ2VTZW9EYXRhID0ge1xuICAgICAgdGl0bGU6ICfwn5OdIERlZmF1bHQgTmdhb3hTZW8gVGl0bGUgLSBDaGFuZ2UgbWUhJ1xuICAgIH1cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTZW9Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNlb01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBTZW9TZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2VvRGVmYXVsdHNUb2tlbixcbiAgICAgICAgICB1c2VWYWx1ZTogZGVmYXVsdHNcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==