UNPKG

@jamarsto/kiunzi-micro-frontend-tools

Version:
42 lines 5.64 kB
import { Injectable } from '@angular/core'; import { NavigationEnd } from '@angular/router'; import { filter } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "../active-module-path/active-module-path.service"; export class SyncRouteModule { constructor(activeModulePath) { this.activeModulePath = activeModulePath; } sync(router, module) { router .events .pipe(filter((event) => event instanceof NavigationEnd)) .subscribe(() => this.dispatchEvent(module)); window.addEventListener('popstate', () => this.navigate(router)); window.addEventListener('shellNavigationEvent', (event) => this.updateRoute(router, event, module)); this.navigate(router); } details(module) { return { detail: module }; } dispatchEvent(module) { window.dispatchEvent(new CustomEvent('mfeNavigationEvent', this.details(module))); } navigate(router) { router.navigateByUrl(window.location.pathname); } updateRoute(router, event, module) { if (event.detail === module) { this.navigate(router); } } } SyncRouteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SyncRouteModule, deps: [{ token: i1.ActiveModulePath }], target: i0.ɵɵFactoryTarget.Injectable }); SyncRouteModule.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SyncRouteModule, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.10", ngImport: i0, type: SyncRouteModule, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.ActiveModulePath }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yb3V0ZS1tb2R1bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdW56aS1taWNyby1mcm9udGVuZC10b29scy9zcmMvbGliL3NlcnZpY2Uvc3luYy1yb3V0ZS1tb2R1bGUvc3luYy1yb3V0ZS1tb2R1bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNOUIsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFELElBQUksQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNqQyxNQUFNO2FBQ0QsTUFBTTthQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQTBCLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDL0UsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxPQUFPLENBQUMsTUFBYztRQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBYztRQUNsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyxRQUFRLENBQUMsTUFBYztRQUM3QixNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFjLEVBQUUsS0FBa0IsRUFBRSxNQUFjO1FBQ3BFLElBQUcsS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7OzZHQTdCVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZlTW9kdWxlUGF0aCB9IGZyb20gJy4uL2FjdGl2ZS1tb2R1bGUtcGF0aC9hY3RpdmUtbW9kdWxlLXBhdGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN5bmNSb3V0ZU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZlTW9kdWxlUGF0aDogQWN0aXZlTW9kdWxlUGF0aCkge31cblxuICBzeW5jKHJvdXRlcjogUm91dGVyLCBtb2R1bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHJvdXRlclxuICAgICAgICAuZXZlbnRzXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5kaXNwYXRjaEV2ZW50KG1vZHVsZSkpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsICgpID0+IHRoaXMubmF2aWdhdGUocm91dGVyKSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3NoZWxsTmF2aWdhdGlvbkV2ZW50JywgKGV2ZW50KSA9PiB0aGlzLnVwZGF0ZVJvdXRlKHJvdXRlciwgZXZlbnQgYXMgQ3VzdG9tRXZlbnQsIG1vZHVsZSkpO1xuICAgIHRoaXMubmF2aWdhdGUocm91dGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWlscyhtb2R1bGU6IHN0cmluZyk6IEN1c3RvbUV2ZW50SW5pdCB7XG4gICAgcmV0dXJuIHsgZGV0YWlsOiBtb2R1bGUgfTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hFdmVudChtb2R1bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWZlTmF2aWdhdGlvbkV2ZW50JywgdGhpcy5kZXRhaWxzKG1vZHVsZSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGUocm91dGVyOiBSb3V0ZXIpOiB2b2lkIHtcbiAgICByb3V0ZXIubmF2aWdhdGVCeVVybCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3V0ZShyb3V0ZXI6IFJvdXRlciwgZXZlbnQ6IEN1c3RvbUV2ZW50LCBtb2R1bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmKGV2ZW50LmRldGFpbCA9PT0gbW9kdWxlKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlKHJvdXRlcik7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==