@jamarsto/kiunzi-micro-frontend-tools
Version:
Kiunzi framework Micro-frontend scaffolding
42 lines • 5.64 kB
JavaScript
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==