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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGFibGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3JvdXRhYmxlLWRpYWxvZy9yb3V0YWJsZS1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBRXpDLE1BTXFCLGlCQUFpQjtJQU9sQztRQU5pQixVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDN0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRy9DLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDekUsSUFBSSxDQUNELFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNaLElBQUkscUJBQXFCLENBQVksTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDM0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUM1QyxDQUNKLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBWSxpQkFBaUI7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBekNnQixpQkFBaUI7bUdBQWpCLGlCQUFpQiwrRUFIeEIsRUFBRTs7ZUFHSyxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFOckMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOztBQTZDRCxTQUFTLE9BQU8sQ0FBQyxFQUFXO0lBQ3hCLE9BQU8sQ0FDSCxPQUFPLEVBQUUsS0FBSyxVQUFVO1FBQ3hCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsUUFBUSxLQUFLLEtBQUssQ0FDdkUsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSU5KRUNUT1IsXG4gICAgdHlwZSBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1R1aURpYWxvZ1NlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7ZnJvbSwgb2YsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktcm91dGFibGUtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHVpUm91dGFibGVEaWFsb2cge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJTkpFQ1RPUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KFR1aURpYWxvZ1NlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IHtkaWFsb2d9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xuXG4gICAgICAgIGZyb20oaXNDbGFzcyhkaWFsb2cpID8gb2YoZGlhbG9nKSA6IGRpYWxvZygpLnRoZW4oKG06IGFueSkgPT4gbS5kZWZhdWx0ID8/IG0pKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChkaWFsb2c6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2cub3BlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQ8VHlwZTxhbnk+PihkaWFsb2csIHRoaXMuaW5qZWN0b3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydkaWFsb2dPcHRpb25zJ10sXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe2NvbXBsZXRlOiAoKSA9PiB0aGlzLm9uRGlhbG9nQ2xvc2luZygpfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbGF6eUxvYWRlZEJhY2tVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QudXJsIHx8IFtdKS5tYXAoKCkgPT4gJy4uJykuam9pbignLycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25EaWFsb2dDbG9zaW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsVXJsID09PSB0aGlzLnJvdXRlci51cmwpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1BhcmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuYXZpZ2F0ZVRvUGFyZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYWNrVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhWydpc0xhenknXVxuICAgICAgICAgICAgPyB0aGlzLmxhenlMb2FkZWRCYWNrVXJsXG4gICAgICAgICAgICA6IHRoaXMucm91dGUuc25hcHNob3QuZGF0YVsnYmFja1VybCddO1xuXG4gICAgICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2JhY2tVcmxdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzQ2xhc3MoZm46IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgICB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmbiwgJ3Byb3RvdHlwZScpPy53cml0YWJsZSA9PT0gZmFsc2VcbiAgICApO1xufVxuIl19