UNPKG

@nova-ui/dashboards

Version:

Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and

30 lines (29 loc) 1.33 kB
import { ComponentPortal } from "@angular/cdk/portal"; import { ComponentRef } from "@angular/core"; import { Observable } from "rxjs"; import { DashboardComponent } from "../../components/dashboard/dashboard.component"; import { IWidget } from "../../components/widget/types"; import { PizzagnaComponent } from "../../pizzagna/components/pizzagna/pizzagna.component"; import { IPizzagna } from "../../types"; export interface IComponentPortalBundle<T> { portal: ComponentPortal<T>; attached?: (componentRef: ComponentRef<T>) => void; } export interface IConfiguratorSource { dashboardComponent: DashboardComponent; widget?: IWidget; previewPizzagnaComponent?: () => PizzagnaComponent; } export interface IConfigurator<T = any> extends IConfiguratorSource { trySubmit?: WidgetUpdateOperation; portalBundle?: IComponentPortalBundle<T>; } export interface IWidgetSelector<T = any> extends IConfigurator<T> { widgetSelectionComponentType: Function; } export interface IWidgetEditor<T = any> extends IConfigurator<T> { formPizzagna: IPizzagna; paths: Record<string, string>; } export type WidgetUpdateOperation = (widget: IWidget, source: IConfiguratorSource) => Observable<IWidget>; export type WidgetRemovalOperation = (widgetId: string, source: IConfiguratorSource) => Observable<string>;