@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
105 lines (104 loc) • 4.52 kB
TypeScript
import { MessageBusTopicMediator } from "@omnia/fx";
import { ActionHandler, ActionRegistration, ActionHandlerRegistrationId, ApiPath, GuidValue, IActionHandlerInstance, IActionHandlerInstanceProperties, IActionHandlerSettings, IExtendApiManifestWithConfiguration, IMessageBusTopicPublishSubscriber, MultilingualString } from "@omnia/fx-models";
import { MessageBusExposeOnlySubscription } from "../../core";
export interface IActionHandlerTriggeredRendererComponent {
actionHandler: ActionHandlerInstance;
}
export interface IActionHandlerEventsApi {
actionTriggered: IMessageBusTopicPublishSubscriber<ActionHandlerInstance>;
actionInitialized: IMessageBusTopicPublishSubscriber<ActionHandlerInstance>;
actionCompleted: IMessageBusTopicPublishSubscriber<ActionHandlerInstance>;
}
export interface IActionApi {
registrations: Promise<IActionRegistrationApi>;
handlers: Promise<IActionHandlerRegisterApi>;
}
declare module "@omnia/fx-models/ux/UxApi" {
interface IOmniaUxApi {
actions: IActionApi;
}
interface IOmniaUxExtendApiManifest {
actions: {
registrations: ApiPath;
handlers: IExtendApiManifestWithConfiguration<ActionHandlerRegistrationId>;
};
}
}
export interface IActionHandlerRegisterApi {
register: (action: ActionHandlerRegistration) => void;
getActionHandler: (id: ActionHandlerRegistrationId) => Promise<new () => ActionHandlerBase>;
}
export interface IActionRegistrationApi {
registerActionHandler: (action: ActionRegistration | ActionRegistration[]) => void;
getAllHandlers: () => ActionRegistration[];
}
export declare abstract class ActionHandlerBase<TSettings extends IActionHandlerSettings = IActionHandlerSettings> implements IActionHandlerInstanceProperties<TSettings> {
abstract onActivated(): void | Promise<void>;
abstract onTriggered(renderingCallback: (elementName: string, themeTargetId?: string, domProps?: Object) => void, setFocusedElementCallback?: () => Promise<HTMLElement>): any;
abstract onDisposing(): any;
customTextColor?(settings: IActionHandlerSettings): string;
customBackgroundColor?(settings: IActionHandlerSettings): string;
constructor();
id: GuidValue;
typeId: ActionHandlerRegistrationId;
toolTip: MultilingualString;
settings: IActionHandlerSettings;
loading: boolean;
disabled: boolean;
displayText: MultilingualString;
text: MultilingualString;
customRendererElementName: string;
hidden: boolean;
isTriggered: boolean;
onChanged: MessageBusTopicMediator<{
propertyName: string;
newValue: any;
oldValue: any;
}>;
private _reactiveProps;
protected createReactiveProperty(propName: string, value: any): void;
private configProxy;
}
export declare class ActionHandlerRegistration {
typeId: ActionHandlerRegistrationId;
handler: new () => ActionHandlerBase;
constructor(typeId: ActionHandlerRegistrationId, handler: new () => ActionHandlerBase);
}
export declare class ActionHandlerContext {
private serviceContainerContext;
createInstance<T extends ActionHandlerInstance = ActionHandlerInstance>(actionHandler: ActionHandler): Promise<T>;
}
export declare class ActionHandlerInstance implements IActionHandlerInstance {
private instance;
private actionHandlerStore;
constructor(instance: ActionHandlerBase, actionHandler: ActionHandler);
id: GuidValue;
typeId: ActionHandlerRegistrationId;
toolTip: MultilingualString;
settings: IActionHandlerSettings;
loading: boolean;
disabled: boolean;
displayText: MultilingualString;
text: MultilingualString;
customRendererElementName: string;
hidden: boolean;
isTriggered: boolean;
private _initializedMessage;
private _triggeredMessage;
private _disposedMessage;
private _initialized;
initialized(): void | Promise<void>;
triggered(renderingCallback: (elementName: string, themeTargetId?: string, domProps?: Object) => void, setFocusedElementCallback?: () => Promise<HTMLElement>): void;
customTextColor(): string;
customBackgroundColor(): string;
dispose(): void;
onActivated(): MessageBusExposeOnlySubscription<void>;
onTriggered(): MessageBusExposeOnlySubscription<void>;
onDisposed(): MessageBusExposeOnlySubscription<void>;
onChanged(): MessageBusExposeOnlySubscription<{
propertyName: string;
newValue: any;
oldValue: any;
}>;
private configProxy;
}