UNPKG

@js-sugar/angular

Version:

JS-Sugar core package (Angular)

48 lines 6.97 kB
import { Injectable } from '@angular/core'; import { NavigationEnd } from '@angular/router'; import { BehaviorSubject } from 'rxjs'; import { RouterActivatedRoute, RouterNavigationEvent } from './types'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; export class RouterService { constructor(_router) { this._router = _router; this._navigateSubject = new BehaviorSubject(this._createNavigationEvent()); this.navigation = this._navigateSubject.asObservable(); this._subscription = this._router.events.subscribe({ next: (e) => { if (e instanceof NavigationEnd) { this._navigateSubject.next(this._createNavigationEvent()); } } }); } _createNavigationEvent() { const items = new Array(); let { root } = this._router.routerState.snapshot; do { root = root?.children[0]; const data = root?.routeConfig?.data; const r = new RouterActivatedRoute(root, { title: data?.title, description: data?.description, keywords: data?.keywords, resolvedTitle: data?.title, resolvedDescription: data?.description, resolvedKeywords: data?.keywords }); items.push(r); } while (root?.children.length > 0); return new RouterNavigationEvent(items); } ngOnDestroy() { this._subscription.unsubscribe(); } } RouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: RouterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); RouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: RouterService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: RouterService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.Router }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9saWIvcm91dGluZy9yb3V0ZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQWEsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQUdqRixNQUFNLE9BQU8sYUFBYTtJQUt0QixZQUFvQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUpsQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUVyRyxlQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBR3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RDtZQUNMLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUF3QixDQUFDO1FBQ2hELElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFFakQsR0FBRztZQUNDLElBQUksR0FBRyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUEwQixJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztZQUM1RCxNQUFNLENBQUMsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRTtnQkFDckMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO2dCQUNsQixXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVc7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUTtnQkFHeEIsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLO2dCQUMxQixtQkFBbUIsRUFBRSxJQUFJLEVBQUUsV0FBVztnQkFDdEMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFFBQVE7YUFDbkMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQixRQUFRLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUVwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OzBHQXpDUSxhQUFhOzhHQUFiLGFBQWEsY0FEQSxNQUFNOzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZURhdGEsIFJvdXRlckFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJOYXZpZ2F0aW9uRXZlbnQgfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Um91dGVyTmF2aWdhdGlvbkV2ZW50Pih0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uRXZlbnQoKSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHJlYWRvbmx5IG5hdmlnYXRpb24gPSB0aGlzLl9uYXZpZ2F0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0ZVN1YmplY3QubmV4dCh0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uRXZlbnQoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jcmVhdGVOYXZpZ2F0aW9uRXZlbnQoKTogUm91dGVyTmF2aWdhdGlvbkV2ZW50IHtcclxuICAgICAgICBjb25zdCBpdGVtcyA9IG5ldyBBcnJheTxSb3V0ZXJBY3RpdmF0ZWRSb3V0ZT4oKTtcclxuICAgICAgICBsZXQgeyByb290IH0gPSB0aGlzLl9yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Q7XHJcblxyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgcm9vdCA9IHJvb3Q/LmNoaWxkcmVuWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhOiBSb3V0ZURhdGEgfCB1bmRlZmluZWQgPSByb290Py5yb3V0ZUNvbmZpZz8uZGF0YTtcclxuICAgICAgICAgICAgY29uc3QgciA9IG5ldyBSb3V0ZXJBY3RpdmF0ZWRSb3V0ZShyb290LCB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YT8udGl0bGUsXHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogZGF0YT8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICBrZXl3b3JkczogZGF0YT8ua2V5d29yZHMsXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGxvY2FsaXplIHRoaXMgZmllbGRzIGluIHRoZSBmdXR1cmVcclxuICAgICAgICAgICAgICAgIHJlc29sdmVkVGl0bGU6IGRhdGE/LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZWREZXNjcmlwdGlvbjogZGF0YT8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZEtleXdvcmRzOiBkYXRhPy5rZXl3b3Jkc1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGl0ZW1zLnB1c2gocik7XHJcbiAgICAgICAgfSB3aGlsZSAocm9vdD8uY2hpbGRyZW4ubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgUm91dGVyTmF2aWdhdGlvbkV2ZW50KGl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=