21 lines
898 B
TypeScript
21 lines
898 B
TypeScript
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|
import { EntityDict } from 'oak-domain/lib/types';
|
|
import { Cache } from './cache';
|
|
import { Feature } from '../types/Feature';
|
|
interface IMenu<ED extends EntityDict & BaseEntityDict, T extends keyof ED> {
|
|
name: string;
|
|
entity?: T;
|
|
action?: ED[T]['Action'] | ED[T]['Action'][];
|
|
paths?: string[];
|
|
url?: string;
|
|
}
|
|
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict> extends Feature {
|
|
cache: Cache<ED>;
|
|
menus?: IMenu<ED, keyof ED>[];
|
|
constructor(cache: Cache<ED>);
|
|
setMenus(menus: IMenu<ED, keyof ED>[]): void;
|
|
makeMenuFilters(destEntity: keyof ED, paths: string[], entity: keyof ED, entityId: string): (true | ED[keyof ED]["Filter"])[];
|
|
getMenusByContext<OMenu extends IMenu<ED, keyof ED>>(entity: keyof ED, entityId: string): OMenu[];
|
|
}
|
|
export {};
|