oak-frontend-base/lib/features/contextMenuFactory.d.ts

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 {};