File

src/lib/window-config.ts

Index

Properties

Properties

actions
actions: WindowActions<D>
Type : WindowActions<D>
Optional
data
data: D
Type : D
Optional
draggable
draggable: boolean
Type : boolean
Optional
height
height: string
Type : string
Optional
icon
icon: IconConfig
Type : IconConfig
Optional
id
id: string
Type : string
Optional
maxHeight
maxHeight: string
Type : string
Optional
maxWidth
maxWidth: string
Type : string
Optional
minHeight
minHeight: string
Type : string
Optional
minimizable
minimizable: boolean
Type : boolean
Optional
minWidth
minWidth: string
Type : string
Optional
panelClass
panelClass: string
Type : string
Optional
resizeable
resizeable: boolean
Type : boolean
Optional
title
title: string
Type : string
Optional
width
width: string
Type : string
Optional
import { ComponentType } from '@angular/cdk/portal';
import {
  ComponentFactoryResolver,
  Injector,
  TemplateRef,
  ViewContainerRef,
} from '@angular/core';
import { ButtonDefinition } from '@rxap/rxjs';
import { IconConfig } from '@rxap/utilities';

export interface WindowActions<A> {
  position?: 'start' | 'end';
  definitions: ButtonDefinition<[ A ]>[];
}

export interface WindowSettings<D = any> {
  id?: string;
  title?: string;
  icon?: IconConfig;
  width?: string;
  height?: string;
  minWidth?: string;
  minHeight?: string;
  maxWidth?: string;
  maxHeight?: string;
  resizeable?: boolean;
  minimizable?: boolean;
  draggable?: boolean;
  panelClass?: string;
  data?: D;
  actions?: WindowActions<D>;
}

export interface WindowConfig<D = any, T = any> extends WindowSettings<D> {
  windowComponent?: ComponentType<T>;
  component?: ComponentType<T>;
  template?: TemplateRef<T>;
  injector?: Injector | null;
  injectorName?: string;
  componentFactoryResolver?: ComponentFactoryResolver | null;
  viewContainerRef?: ViewContainerRef | null;
}

export const DEFAULT_WINDOW_CONFIG: WindowConfig<any, any> = {
  resizeable: true,
  draggable: true,
  injector: null,
  componentFactoryResolver: null,
  minWidth: '384px',
  minHeight: '192px',
  maxWidth: '100vw',
  maxHeight: '100vh',
  minimizable: false,
};

results matching ""

    No results matching ""