@omnia/foundation
Version:
Provide omnia foundation typings and tooling work on client side for omnia extension.
87 lines (86 loc) • 2.65 kB
TypeScript
import * as Models from './index';
import { Type, ModuleWithProviders, SchemaMetadata, Component, Provider } from '@angular/core';
export interface ITokenCookie {
loginName: string;
token: string;
}
export interface INavSourcesPermissionCookie {
navSourceUrl: string;
hasReadPermission: boolean;
}
export interface IOmniaControlDependency {
id: string;
scope: string;
hostId: string;
viewId: string;
enableSettings: boolean;
priority?: number;
ignoreView?: boolean;
}
export interface IViewPortControl {
viewPortSettings?: Models.Control.IControlViewPortSettings;
svc?: any;
html?: string;
bootstrapped?: boolean;
}
export interface BootstrapQueue {
data?: any;
priority: number;
bootstrapFunction: (data) => void;
}
export interface ComponentTemplate {
templateId: string;
target: any;
}
export interface IOmniaControlTemplate {
controlId: string;
ngfactoryModulePath: string;
templates: Array<{
id: string;
title: string;
component: Type<any>;
}>;
}
export interface IOmniaControlTemplateExtend extends IOmniaControlTemplate {
moduleTarget: any;
}
export interface IOmniaControlMetadataExtend extends Models.IOmniaControlMetadata {
moduleTarget?: any;
forceBootstrapJit?: boolean;
isNg1Control?: boolean;
}
export interface OmniaAngular2Bootstrapper {
bootstrapAngular2HybridApp: (container, modules, configs) => void;
bootstrapAngular2App: (component) => void;
}
export interface IOmniaAdminControlMetadataExtend extends IOmniaAdminControlMetadata {
componentTarget?: any;
moduleTarget?: any;
}
export interface IOmniaAdminControlMetadata extends Component {
ngsummaryModulePath?: string;
ngModulePath?: string;
templateId?: string;
navigation?: Models.INavigationNode;
providers?: Provider[];
declarations?: Array<Type<any> | any[]>;
imports?: Array<Type<any> | ModuleWithProviders | any[]>;
schemas?: Array<SchemaMetadata | any[]>;
exports?: Array<Type<any> | any[]>;
}
export interface IOmniaControlNg1 {
id: string;
title: string;
icon: string;
group: string;
viewId: string;
enableSettings: boolean;
enableSkeletonLoading: boolean;
angularModuleName: string;
}
export interface INg1Hanlder {
getRegisteredControls: () => Array<IOmniaControlNg1>;
bootstrapAngularNg1: (elementId, moduleName) => void;
destroyAngularNg1: (elementId) => void;
bootstrapControlNg1: (containerId: string, container: JQuery, svc: any) => void;
}