@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
JavaScript
/**
* @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