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>

250 lines (241 loc) 6.41 kB
import { CommonModule } from '@angular/common'; import { Injectable, Optional, Inject, NgModule } from '@angular/core'; import { TranslateService, TranslateModule } from '@ngx-translate/core'; import { filter, map, mergeMap } from 'rxjs/operators'; import { Title } from '@angular/platform-browser'; import { NavigationEnd, Router, ActivatedRoute } from '@angular/router'; /** * @fileoverview added by tsickle * Generated from: lib/shared/title.factory.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const DEFAULT_TITLE = 'title.default'; /** * @param {?} route * @return {?} */ function getLastActivatedRoute(route) { while (route.firstChild) { route = route.firstChild; } return route; } /** * @param {?} routeData * @return {?} */ function getTitleKey(routeData) { return routeData.title ? routeData.title : DEFAULT_TITLE; } /** * @param {?} routeData * @return {?} */ function isPrimary(routeData) { const { outlet } = routeData; return outlet === 'primary'; } /** * @param {?} suffix * @return {?} */ function getTitleSuffix(suffix) { return suffix ? ` | ${suffix}` : ''; } /** * @fileoverview added by tsickle * Generated from: lib/shared/title.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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; } /** * @fileoverview added by tsickle * Generated from: lib/title.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class TitleModule { /** * @param {?} titleService */ constructor(titleService) { this.titleService = titleService; } /** * @param {?} titleConfig * @return {?} */ static forRoot(titleConfig) { return { ngModule: TitleModule, providers: [ { provide: 'titleConfig', useValue: titleConfig, } ] }; } } TitleModule.decorators = [ { type: NgModule, args: [{ imports: [ CommonModule, TranslateModule ], providers: [ TitleService, ], },] } ]; /** @nocollapse */ TitleModule.ctorParameters = () => [ { type: TitleService } ]; if (false) { /** @type {?} */ TitleModule.prototype.titleService; } /** * @fileoverview added by tsickle * Generated from: lib/shared/title.model.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @record */ function TitleConfig() { } if (false) { /** @type {?|undefined} */ TitleConfig.prototype.suffix; } /** * @fileoverview added by tsickle * Generated from: lib/shared/index.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: index.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: ngsm-title.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { DEFAULT_TITLE, TitleModule, TitleService, getLastActivatedRoute, getTitleKey, getTitleSuffix, isPrimary, TitleService as ɵa }; //# sourceMappingURL=ngsm-title.js.map