vue-mf-module
Version:
A vue extension to create microfrontend module
49 lines (48 loc) • 1.45 kB
TypeScript
import { TinyEmitter } from 'tiny-emitter';
import { RouteParamsRaw } from 'vue-router';
export interface IMenuDefinition {
name: string;
description: string;
icon?: string;
routeName?: string;
routeParams?: RouteParamsRaw;
featureflags?: string[];
orderIndex?: number;
parents?: string[];
class?: string;
meta?: any;
hidden: () => boolean;
}
export declare enum menuType {
drawer = 0,
settings = 1,
header = 2,
footer = 3
}
export declare const MenuNotifications: {
menuDefinitionAdded: string;
menuDefinitionMoved: string;
};
export declare class MenuHelper {
menuDefinitions: IMenuDefinition[];
menuStructure: {
[key: string]: {
[key: string]: string[];
};
};
private notifications;
private static instance;
get Notifications(): TinyEmitter;
static get Instance(): MenuHelper;
addMenuDefinition(menuDefinition: IMenuDefinition, ...positions: {
section: menuType;
parent?: string;
}[]): void;
removeMenuDefinition(section: menuType, name: string, parent: string): IMenuDefinition | undefined;
moveMenu(section: menuType, name: string, parent: string, index?: number): IMenuDefinition | undefined;
getMenuItem(name: string): IMenuDefinition | undefined;
getMenu(menu: menuType): {
item: IMenuDefinition | undefined;
children: (IMenuDefinition | undefined)[];
}[];
}