ng2-multi-modal
Version:
Multi Modal Component for Angular 19+
60 lines (59 loc) • 2.56 kB
TypeScript
import { ApplicationRef, ComponentRef, EnvironmentInjector, Injector, InputSignal, ModelSignal, TemplateRef, WritableSignal } from '@angular/core';
import { Router } from '@angular/router';
import { Ng2MultiModalComponent } from "./ng2-multi-modal.component";
import { DockComponent } from "./components/dock/dock.component";
import * as i0 from "@angular/core";
export interface ModalConfig {
content: TemplateRef<any>;
title?: InputSignal<string | TemplateRef<any>>;
icon?: InputSignal<string | TemplateRef<any> | null>;
align?: InputSignal<"leftTop" | "rightTop" | "leftBottom" | "rightBottom">;
bodyStyle?: InputSignal<{
[key: string]: any;
}>;
closeOnNavigation?: InputSignal<boolean>;
closable?: InputSignal<boolean>;
minHeight?: InputSignal<number>;
minWidth?: InputSignal<number>;
maximizable?: InputSignal<boolean>;
minimizable?: InputSignal<boolean>;
resizable?: InputSignal<boolean>;
outOfBounds?: InputSignal<boolean>;
loadingTip?: InputSignal<string | TemplateRef<any>>;
height?: ModelSignal<number>;
width?: ModelSignal<number>;
zIndex?: ModelSignal<number>;
offsetY?: ModelSignal<number>;
offsetX?: ModelSignal<number>;
loading?: ModelSignal<boolean>;
theme?: ModelSignal<"light" | "dark">;
draggable?: ModelSignal<boolean>;
contentScrollable?: ModelSignal<boolean>;
minimized?: ModelSignal<boolean>;
maximized?: ModelSignal<boolean>;
}
export declare class Ng2MultiModalService {
private _appRef;
private _injector;
private _environmentInjector;
private router;
private unsubscribe$;
constructor(_appRef: ApplicationRef, _injector: Injector, _environmentInjector: EnvironmentInjector, router: Router);
readonly dockTheme: WritableSignal<"light" | "dark">;
readonly language: WritableSignal<"es" | "en">;
maxZIndex: number;
instances: ComponentRef<Ng2MultiModalComponent>[];
selectedWindow: WritableSignal<string | null>;
dockComponentRef: ComponentRef<DockComponent> | null;
destroy(modalId: string): void;
addMinimizeItem(windowComponent: Ng2MultiModalComponent): void;
createDock(): void;
destroyDock(): void;
createWrapper(): void;
destroyWrapper(): void;
create(options: ModalConfig): Promise<Ng2MultiModalComponent>;
detachView(componentRef: ComponentRef<any>): void;
private _appendToPage;
static ɵfac: i0.ɵɵFactoryDeclaration<Ng2MultiModalService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<Ng2MultiModalService>;
}