Управление графом связей

Точка расширения типа GraphExportItem позволяет встраивать в параметры графа дополнительную кнопку "Экспорт графа" (Рисунок 1).

Дополнительная кнопка "Экспорт графа"

Рисунок 1 - Дополнительная кнопка "Экспорт графа"

Объявление типа UEGraphExportItem:

type Resolver = (store: DlStructureStore) => boolean;

type Meta = {
    displayName: string;
    onSelect: (store: DlStructureStore) => void;
};

export type UEGraphExportItem = UeModuleBase<Resolver, Meta>;

Пример: Добавление пункта 'PDF' в меню экспорт графа

function exportToPdf (store: DlStructureStore) {
    if (store.application) {
        store.application.getUiHandler().reset();
    }

    store.setIsLoading(true);
    FileExportUtils.toPdf(store.idPrefix + DlStructureStore.GraphAreaClass, generateFileName(store))
        .then((pfd: jsPDF) => {
            store.setIsLoading(false);
        });
}

export const graphExportItemsUE: UniverseUE.IUeMeta['GraphExportItem'] =
   {
        moduleId: 'graphExportPdfItem',
        active: true,
        system: false,
        resolver: (store) =>  true,
        meta: {
            displayName: 'PDF',
            onSelect: (store: DlStructureStore) => exportToPdf(store)
        }
    };

ueModuleManager.addModule('GraphExportItem', graphExportItemsUE);