UNPKG

angular-admin-lte-teliqo

Version:
156 lines (155 loc) 15.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable } from '@angular/core'; import { NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router'; import { BehaviorSubject } from 'rxjs'; /** * @record */ export function Path() { } function Path_tsickle_Closure_declarations() { /** @type {?} */ Path.prototype.data; /** @type {?} */ Path.prototype.params; /** @type {?} */ Path.prototype.url; } /** * @record */ export function Paths() { } function Paths_tsickle_Closure_declarations() { } export class RoutingService { /** * \@method constructor * @param {?} router [description] */ constructor(router) { this.router = router; this.onChange = new BehaviorSubject(undefined); this.events = new BehaviorSubject(undefined); this.init(); } /** * [createUrl description] * \@method createUrl * @param {?} route [description] * @return {?} [description] */ static createUrl(route) { const /** @type {?} */ url = route.url.map(urlSegment => urlSegment.toString()).join('/'); return url; } /** * [isChildrenSelfRoute description] * \@method isChildrenSelfRoute * @param {?} route [description] * @return {?} [description] */ static isChildrenSelfRoute(route) { route.routeConfig.children.forEach(child => { if (child.path === '' && (child.component || child.loadChildren)) { return true; } }); return false; } /** * [createBreadcrumb description] * \@method createBreadcrumb * @param {?} route [description] * @param {?} url [description] * @return {?} [description] */ static createBreadcrumb(route, url) { let /** @type {?} */ isUrl = true; if (route.children.length !== 0 && route.firstChild.routeConfig.path) { if (url !== '/' && !route.routeConfig.loadChildren && !route.routeConfig.component && !RoutingService.isChildrenSelfRoute(route)) { isUrl = false; } } return { data: route.data, params: route.params, url: isUrl ? url : null }; } /** * [init description] * \@method init * @return {?} */ init() { this.router.events.subscribe(routeEvent => { // https://github.com/angular/angular/issues/17473: event not fired anymore on load for routed component. this.events.next(routeEvent); if (routeEvent instanceof NavigationEnd) { let /** @type {?} */ route = this.router.routerState.root.snapshot, /** @type {?} */ tmpUrl = '', /** @type {?} */ url = '', /** @type {?} */ rootRoot = true; const /** @type {?} */ paths = []; while (route.children.length) { route = route.firstChild; tmpUrl = `/${RoutingService.createUrl(route)}`; if (route.outlet !== PRIMARY_OUTLET || (!route.routeConfig.path && !rootRoot)) { continue; } rootRoot = false; if (route.params || route.data) { for (const /** @type {?} */ key in route.params) { if (!key) { continue; } if (route.data['title']) { route.data['title'] = route.data['title'].replace(`:${key}`, route.params[key]); route.data['title'] = route.data['title'].replace(`:${key}`, route.params[key]); } if (route.data['breadcrumbs']) { route.data['breadcrumbs'] = route.data['breadcrumbs'].replace(`:${key}`, route.params[key]); } if (route.data['description']) { route.data['description'] = route.data['description'].replace(`:${key}`, route.params[key]); } } } if (tmpUrl === '/') { paths.push(RoutingService.createBreadcrumb(route, tmpUrl)); } else { url += tmpUrl; paths.push(RoutingService.createBreadcrumb(route, url)); } } this.onChange.next(paths); } }); } } RoutingService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ RoutingService.ctorParameters = () => [ { type: Router, }, ]; function RoutingService_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ RoutingService.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ RoutingService.ctorParameters; /** @type {?} */ RoutingService.prototype.onChange; /** @type {?} */ RoutingService.prototype.events; /** @type {?} */ RoutingService.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hZG1pbi1sdGUtdGVsaXFvLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWdELGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCdkMsTUFBTTs7Ozs7SUFRSixZQUNVO1FBQUEsV0FBTSxHQUFOLE1BQU07d0JBUjBCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQztzQkFDMUIsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDO1FBUzFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUNiOzs7Ozs7O0lBUU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUE2QjtRQUNwRCx1QkFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsTUFBTSxDQUFDLEdBQUcsQ0FBQzs7Ozs7Ozs7SUFTTCxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBNkI7UUFDOUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDO2FB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b20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgRXZlbnQgYXMgUm91dGVyRXZlbnQsIE5hdmlnYXRpb25FbmQsIFBSSU1BUllfT1VUTEVULCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLypcbiAqXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aCB7XG4gIGRhdGE6IE9iamVjdDtcbiAgcGFyYW1zOiBPYmplY3Q7XG4gIHVybDogc3RyaW5nO1xufVxuXG4vKlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRocyBleHRlbmRzIEFycmF5PFBhdGg+IHt9XG5cblxuLypcbiAqXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSb3V0aW5nU2VydmljZSB7XG4gIHB1YmxpYyBvbkNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PFBhdGhzPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgcHVibGljIGV2ZW50czogQmVoYXZpb3JTdWJqZWN0PFJvdXRlckV2ZW50PiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogQG1ldGhvZCBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gcm91dGVyIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICAvKipcbiAgICogW2NyZWF0ZVVybCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBjcmVhdGVVcmxcbiAgICogQHBhcmFtIHJvdXRlIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVVcmwocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHJvdXRlLnVybC5tYXAodXJsU2VnbWVudCA9PiB1cmxTZWdtZW50LnRvU3RyaW5nKCkpLmpvaW4oJy8nKTtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc0NoaWxkcmVuU2VsZlJvdXRlIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGlzQ2hpbGRyZW5TZWxmUm91dGVcbiAgICogQHBhcmFtIHJvdXRlIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpc0NoaWxkcmVuU2VsZlJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgcm91dGUucm91dGVDb25maWcuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICBpZiAoY2hpbGQucGF0aCA9PT0gJycgJiYgKGNoaWxkLmNvbXBvbmVudCB8fCBjaGlsZC5sb2FkQ2hpbGRyZW4pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFtjcmVhdGVCcmVhZGNydW1iIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGNyZWF0ZUJyZWFkY3J1bWJcbiAgICogQHBhcmFtIHJvdXRlIFtkZXNjcmlwdGlvbl1cbiAgICogQHBhcmFtIHVybCAgIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVCcmVhZGNydW1iKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCB1cmw6IHN0cmluZyk6IFBhdGgge1xuICAgIGxldCBpc1VybCA9IHRydWU7XG5cbiAgICBpZiAocm91dGUuY2hpbGRyZW4ubGVuZ3RoICE9PSAwICYmIHJvdXRlLmZpcnN0Q2hpbGQucm91dGVDb25maWcucGF0aCkge1xuICAgICAgaWYgKHVybCAhPT0gJy8nICYmICFyb3V0ZS5yb3V0ZUNvbmZpZy5sb2FkQ2hpbGRyZW4gJiYgIXJvdXRlLnJvdXRlQ29uZmlnLmNvbXBvbmVudCAmJiAhUm91dGluZ1NlcnZpY2UuaXNDaGlsZHJlblNlbGZSb3V0ZShyb3V0ZSkpIHtcbiAgICAgICAgaXNVcmwgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogcm91dGUuZGF0YSxcbiAgICAgIHBhcmFtcyA6IHJvdXRlLnBhcmFtcyxcbiAgICAgIHVybDogaXNVcmwgPyB1cmwgOiBudWxsXG4gICAgfTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFtpbml0IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGluaXRcbiAgICovXG4gIHByaXZhdGUgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHJvdXRlRXZlbnQgPT4ge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTc0NzM6IGV2ZW50IG5vdCBmaXJlZCBhbnltb3JlIG9uIGxvYWQgZm9yIHJvdXRlZCBjb21wb25lbnQuXG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KHJvdXRlRXZlbnQpO1xuICAgICAgaWYgKHJvdXRlRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGxldCByb3V0ZSA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3Quc25hcHNob3QsXG4gICAgICAgICAgdG1wVXJsID0gJycsXG4gICAgICAgICAgdXJsID0gJycsXG4gICAgICAgICAgcm9vdFJvb3QgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHBhdGhzOiBQYXRocyA9IFtdO1xuXG4gICAgICAgIHdoaWxlIChyb3V0ZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICByb3V0ZSA9IHJvdXRlLmZpcnN0Q2hpbGQ7XG4gICAgICAgICAgdG1wVXJsID0gYC8ke1JvdXRpbmdTZXJ2aWNlLmNyZWF0ZVVybChyb3V0ZSl9YDtcblxuICAgICAgICAgIGlmIChyb3V0ZS5vdXRsZXQgIT09IFBSSU1BUllfT1VUTEVUIHx8ICghcm91dGUucm91dGVDb25maWcucGF0aCAmJiAhcm9vdFJvb3QpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByb290Um9vdCA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHJvdXRlLnBhcmFtcyB8fCByb3V0ZS5kYXRhKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByb3V0ZS5wYXJhbXMpIHtcbiAgICAgICAgICAgICAgaWYgKCFrZXkpIHsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgaWYgKHJvdXRlLmRhdGFbJ3RpdGxlJ10pIHtcbiAgICAgICAgICAgICAgICByb3V0ZS5kYXRhWyd0aXRsZSddID0gcm91dGUuZGF0YVsndGl0bGUnXS5yZXBsYWNlKGA6JHtrZXl9YCwgcm91dGUucGFyYW1zW2tleV0pO1xuICAgICAgICAgICAgICAgIHJvdXRlLmRhdGFbJ3RpdGxlJ10gPSByb3V0ZS5kYXRhWyd0aXRsZSddLnJlcGxhY2UoYDoke2tleX1gLCByb3V0ZS5wYXJhbXNba2V5XSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJvdXRlLmRhdGFbJ2JyZWFkY3J1bWJzJ10pIHtcbiAgICAgICAgICAgICAgICByb3V0ZS5kYXRhWydicmVhZGNydW1icyddID0gcm91dGUuZGF0YVsnYnJlYWRjcnVtYnMnXS5yZXBsYWNlKGA6JHtrZXl9YCwgcm91dGUucGFyYW1zW2tleV0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChyb3V0ZS5kYXRhWydkZXNjcmlwdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgcm91dGUuZGF0YVsnZGVzY3JpcHRpb24nXSA9IHJvdXRlLmRhdGFbJ2Rlc2NyaXB0aW9uJ10ucmVwbGFjZShgOiR7a2V5fWAsIHJvdXRlLnBhcmFtc1trZXldKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0bXBVcmwgPT09ICcvJykge1xuICAgICAgICAgICAgcGF0aHMucHVzaChSb3V0aW5nU2VydmljZS5jcmVhdGVCcmVhZGNydW1iKHJvdXRlLCB0bXBVcmwpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsICs9IHRtcFVybDtcbiAgICAgICAgICAgIHBhdGhzLnB1c2goUm91dGluZ1NlcnZpY2UuY3JlYXRlQnJlYWRjcnVtYihyb3V0ZSwgdXJsKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZS5uZXh0KHBhdGhzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19