UNPKG

@ngsm/title

Version:

<p align="center"> <a href="https://github.com/ng-sm"> <img src="https://avatars2.githubusercontent.com/u/64587411?s=150"> </a> </p> <p align="center"> Title module based on the @ngx-translate/core package. </p>

122 lines 7.98 kB
/** * @fileoverview added by tsickle * Generated from: lib/shared/title.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { filter, map, mergeMap } from 'rxjs/operators'; import { Injectable, Inject, Optional } from '@angular/core'; import { Title } from '@angular/platform-browser'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { getLastActivatedRoute, getTitleKey, isPrimary, getTitleSuffix } from './title.factory'; export class TitleService { /** * @param {?} titleConfig * @param {?} title * @param {?} router * @param {?} activatedRoute * @param {?} translateService */ constructor(titleConfig, title, router, activatedRoute, translateService) { this.titleConfig = titleConfig; this.title = title; this.router = router; this.activatedRoute = activatedRoute; this.translateService = translateService; this.setConfigInitialValue(); this.init(); } /** * @return {?} */ setConfigInitialValue() { this.config = this.titleConfig || { suffix: '', }; } /** * @return {?} */ init() { this.router.events .pipe(filter((/** * @param {?} event * @return {?} */ event => event instanceof NavigationEnd)), map((/** * @return {?} */ () => getLastActivatedRoute(this.activatedRoute))), filter(isPrimary), mergeMap((/** * @param {?} __0 * @return {?} */ ({ data }) => data))) .subscribe((/** * @param {?} data * @return {?} */ data => this.setTitle(data))); } /** * @param {?} data * @return {?} */ setTitle(data) { const { suffix } = this.config; /** @type {?} */ const titleKey = getTitleKey(data); this.translateService .get([ titleKey, ...(!!suffix ? [suffix] : []), ]) .subscribe((/** * @param {?} data * @return {?} */ (data) => { this.title.setTitle(`${data[titleKey]} ${getTitleSuffix(data[suffix])}`); })); } } TitleService.decorators = [ { type: Injectable } ]; /** @nocollapse */ TitleService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['titleConfig',] }] }, { type: Title }, { type: Router }, { type: ActivatedRoute }, { type: TranslateService } ]; if (false) { /** @type {?} */ TitleService.prototype.config; /** * @type {?} * @private */ TitleService.prototype.titleConfig; /** * @type {?} * @private */ TitleService.prototype.title; /** * @type {?} * @private */ TitleService.prototype.router; /** * @type {?} * @private */ TitleService.prototype.activatedRoute; /** * @type {?} * @private */ TitleService.prototype.translateService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3NtL3RpdGxlLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC90aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFRLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUloRyxNQUFNLE9BQU8sWUFBWTs7Ozs7Ozs7SUFHdkIsWUFDNkMsV0FBd0IsRUFDM0QsS0FBWSxFQUNaLE1BQWMsRUFDZCxjQUE4QixFQUM5QixnQkFBa0M7UUFKQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMzRCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRTFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJO1lBQ2hDLE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQTtJQUNILENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUNILE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLEVBQUMsRUFDL0MsR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLEVBQ3JELE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDakIsUUFBUTs7OztRQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFDLENBQzdCO2FBQ0EsU0FBUzs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO0lBQzVDLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLElBQVU7Y0FDWCxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNOztjQUN4QixRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUVsQyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLEdBQUcsQ0FBQztZQUNILFFBQVE7WUFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzlCLENBQUM7YUFDRCxTQUFTOzs7O1FBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBNUNGLFVBQVU7Ozs7NENBS04sUUFBUSxZQUFJLE1BQU0sU0FBQyxhQUFhO1lBWjVCLEtBQUs7WUFDZ0MsTUFBTTtZQUEzQyxjQUFjO1lBQ2QsZ0JBQWdCOzs7O0lBT3ZCLDhCQUFvQjs7Ozs7SUFHbEIsbUNBQW1FOzs7OztJQUNuRSw2QkFBb0I7Ozs7O0lBQ3BCLDhCQUFzQjs7Ozs7SUFDdEIsc0NBQXNDOzs7OztJQUN0Qyx3Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgZ2V0TGFzdEFjdGl2YXRlZFJvdXRlLCBnZXRUaXRsZUtleSwgaXNQcmltYXJ5LCBnZXRUaXRsZVN1ZmZpeCB9IGZyb20gJy4vdGl0bGUuZmFjdG9yeSc7XG5pbXBvcnQgeyBUaXRsZUNvbmZpZyB9IGZyb20gJy4vdGl0bGUubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGl0bGVTZXJ2aWNlIHtcbiAgY29uZmlnOiBUaXRsZUNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCd0aXRsZUNvbmZpZycpIHByaXZhdGUgdGl0bGVDb25maWc6IFRpdGxlQ29uZmlnLFxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnNldENvbmZpZ0luaXRpYWxWYWx1ZSgpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgc2V0Q29uZmlnSW5pdGlhbFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy50aXRsZUNvbmZpZyB8fCB7XG4gICAgICBzdWZmaXg6ICcnLFxuICAgIH1cbiAgfVxuXG4gIGluaXQoKTogdm9pZCAge1xuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICBtYXAoKCkgPT4gZ2V0TGFzdEFjdGl2YXRlZFJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpKSxcbiAgICAgICAgZmlsdGVyKGlzUHJpbWFyeSksXG4gICAgICAgIG1lcmdlTWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5zZXRUaXRsZShkYXRhKSk7XG4gIH1cblxuICBzZXRUaXRsZShkYXRhOiBEYXRhKTogdm9pZCB7XG4gICAgY29uc3QgeyBzdWZmaXggfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHRpdGxlS2V5ID0gZ2V0VGl0bGVLZXkoZGF0YSk7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIC5nZXQoW1xuICAgICAgICB0aXRsZUtleSxcbiAgICAgICAgLi4uKCEhc3VmZml4ID8gW3N1ZmZpeF0gOiBbXSksXG4gICAgICBdKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKGAke2RhdGFbdGl0bGVLZXldfSAke2dldFRpdGxlU3VmZml4KGRhdGFbc3VmZml4XSl9YCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19