UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

53 lines 8.75 kB
import { ChangeDetectionStrategy, Component, inject, INJECTOR } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { ActivatedRoute, Router } from '@angular/router'; import { TuiDialogService } from '@taiga-ui/core/components/dialog'; import { PolymorpheusComponent } from '@taiga-ui/polymorpheus'; import { from, of, switchMap } from 'rxjs'; import * as i0 from "@angular/core"; class TuiRoutableDialog { constructor() { this.route = inject(ActivatedRoute); this.router = inject(Router); this.injector = inject(INJECTOR); this.initialUrl = this.router.url; this.dialog = inject(TuiDialogService); const { dialog } = this.route.snapshot.data; from(isClass(dialog) ? of(dialog) : dialog().then((m) => m.default ?? m)) .pipe(switchMap((dialog) => this.dialog.open(new PolymorpheusComponent(dialog, this.injector), this.route.snapshot.data['dialogOptions'])), takeUntilDestroyed()) .subscribe({ complete: () => this.onDialogClosing() }); } get lazyLoadedBackUrl() { return (this.route.parent?.snapshot.url || []).map(() => '..').join('/'); } onDialogClosing() { if (this.initialUrl === this.router.url) { this.navigateToParent(); } } navigateToParent() { const backUrl = this.route.snapshot.data['isLazy'] ? this.lazyLoadedBackUrl : this.route.snapshot.data['backUrl']; void this.router.navigate([backUrl], { relativeTo: this.route, }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoutableDialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoutableDialog, isStandalone: true, selector: "tui-routable-dialog", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } export default TuiRoutableDialog; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoutableDialog, decorators: [{ type: Component, args: [{ standalone: true, selector: 'tui-routable-dialog', template: '', changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return []; } }); function isClass(fn) { return (typeof fn === 'function' && Object.getOwnPropertyDescriptor(fn, 'prototype')?.writable === false); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGFibGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3JvdXRhYmxlLWRpYWxvZy9yb3V0YWJsZS1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFekMsTUFNcUIsaUJBQWlCO0lBT2xDO1FBTmlCLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM3QixXQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFHL0MsTUFBTSxFQUFDLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUUxQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN6RSxJQUFJLENBQ0QsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1osSUFBSSxxQkFBcUIsQ0FBWSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQzVDLENBQ0osRUFDRCxrQkFBa0IsRUFBRSxDQUN2QjthQUNBLFNBQVMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFZLGlCQUFpQjtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDekIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6Q2dCLGlCQUFpQjttR0FBakIsaUJBQWlCLCtFQUh4QixFQUFFOztlQUdLLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQU5yQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7O0FBNkNELFNBQVMsT0FBTyxDQUFDLEVBQVc7SUFDeEIsT0FBTyxDQUNILE9BQU8sRUFBRSxLQUFLLFVBQVU7UUFDeEIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxRQUFRLEtBQUssS0FBSyxDQUN2RSxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJTkpFQ1RPUn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUdWlEaWFsb2dTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge2Zyb20sIG9mLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXJvdXRhYmxlLWRpYWxvZycsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFR1aVJvdXRhYmxlRGlhbG9nIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSU5KRUNUT1IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChUdWlEaWFsb2dTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCB7ZGlhbG9nfSA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YTtcblxuICAgICAgICBmcm9tKGlzQ2xhc3MoZGlhbG9nKSA/IG9mKGRpYWxvZykgOiBkaWFsb2coKS50aGVuKChtOiBhbnkpID0+IG0uZGVmYXVsdCA/PyBtKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoZGlhbG9nOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUG9seW1vcnBoZXVzQ29tcG9uZW50PFR5cGU8YW55Pj4oZGlhbG9nLCB0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnZGlhbG9nT3B0aW9ucyddLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtjb21wbGV0ZTogKCkgPT4gdGhpcy5vbkRpYWxvZ0Nsb3NpbmcoKX0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxhenlMb2FkZWRCYWNrVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnVybCB8fCBbXSkubWFwKCgpID0+ICcuLicpLmpvaW4oJy8nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRGlhbG9nQ2xvc2luZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFVybCA9PT0gdGhpcy5yb3V0ZXIudXJsKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9QYXJlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbmF2aWdhdGVUb1BhcmVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFja1VybCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnaXNMYXp5J11cbiAgICAgICAgICAgID8gdGhpcy5sYXp5TG9hZGVkQmFja1VybFxuICAgICAgICAgICAgOiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ2JhY2tVcmwnXTtcblxuICAgICAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFtiYWNrVXJsXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBpc0NsYXNzKGZuOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm4sICdwcm90b3R5cGUnKT8ud3JpdGFibGUgPT09IGZhbHNlXG4gICAgKTtcbn1cbiJdfQ==