From d0793d0e1c3dea5623eb1fdf41fef5a51c586e31 Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Tue, 19 Nov 2024 22:30:33 +0300 Subject: [PATCH] F: Add TypeGraph manual page --- .vscode/settings.json | 3 ++ .../DlgShowTypification.tsx | 2 ++ .../frontend/src/models/miscellaneous.ts | 2 ++ .../src/pages/ManualsPage/TopicPage.tsx | 2 ++ .../items/cc/HelpConceptPropagation.tsx | 4 +++ .../ManualsPage/items/ui/HelpRelocateCst.tsx | 21 ++++++----- .../ManualsPage/items/ui/HelpTypeGraph.tsx | 35 +++++++++++++++++++ rsconcept/frontend/src/utils/labels.ts | 2 ++ 8 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpTypeGraph.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index 960cc2e5..9271082f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -169,6 +169,7 @@ "Биективная", "биективной", "Булеан", + "булеана", "Бурбаки", "Бурбакизатор", "Версионирование", @@ -186,12 +187,14 @@ "конституент", "Конституента", "конституентами", + "конституентах", "конституенте", "конституенту", "конституенты", "Крайнев", "Кучкаров", "Кучкарова", + "мультиграфа", "неинтерпретируемый", "неитерируемого", "Никанорова", diff --git a/rsconcept/frontend/src/dialogs/DlgShowTypification/DlgShowTypification.tsx b/rsconcept/frontend/src/dialogs/DlgShowTypification/DlgShowTypification.tsx index b2ab466f..3cc2b59f 100644 --- a/rsconcept/frontend/src/dialogs/DlgShowTypification/DlgShowTypification.tsx +++ b/rsconcept/frontend/src/dialogs/DlgShowTypification/DlgShowTypification.tsx @@ -5,6 +5,7 @@ import { toast } from 'react-toastify'; import { ReactFlowProvider } from 'reactflow'; import Modal, { ModalProps } from '@/components/ui/Modal'; +import { HelpTopic } from '@/models/miscellaneous'; import { IArgumentInfo } from '@/models/rslang'; import { TMGraph } from '@/models/TMGraph'; import { errors } from '@/utils/labels'; @@ -36,6 +37,7 @@ function DlgShowTypification({ hideWindow, alias, resultTypification, args }: Dl readonly hideWindow={hideWindow} className='flex flex-col justify-stretch w-[calc(100dvw-3rem)] h-[calc(100dvh-6rem)]' + helpTopic={HelpTopic.UI_TYPE_GRAPH} > diff --git a/rsconcept/frontend/src/models/miscellaneous.ts b/rsconcept/frontend/src/models/miscellaneous.ts index f643ac49..fe0b4e34 100644 --- a/rsconcept/frontend/src/models/miscellaneous.ts +++ b/rsconcept/frontend/src/models/miscellaneous.ts @@ -90,6 +90,7 @@ export enum HelpTopic { UI_RS_EDITOR = 'ui-rsform-editor', UI_GRAPH_TERM = 'ui-graph-term', UI_FORMULA_TREE = 'ui-formula-tree', + UI_TYPE_GRAPH = 'ui-type-graph', UI_CST_STATUS = 'ui-rsform-cst-status', UI_CST_CLASS = 'ui-rsform-cst-class', UI_OSS_GRAPH = 'ui-oss-graph', @@ -140,6 +141,7 @@ export const topicParent = new Map([ [HelpTopic.UI_RS_EDITOR, HelpTopic.INTERFACE], [HelpTopic.UI_GRAPH_TERM, HelpTopic.INTERFACE], [HelpTopic.UI_FORMULA_TREE, HelpTopic.INTERFACE], + [HelpTopic.UI_TYPE_GRAPH, HelpTopic.INTERFACE], [HelpTopic.UI_CST_STATUS, HelpTopic.INTERFACE], [HelpTopic.UI_CST_CLASS, HelpTopic.INTERFACE], [HelpTopic.UI_OSS_GRAPH, HelpTopic.INTERFACE], diff --git a/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx b/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx index 412b9f7a..b06c7803 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/TopicPage.tsx @@ -38,6 +38,7 @@ import HelpRSGraphTerm from './items/ui/HelpRSGraphTerm'; import HelpRSList from './items/ui/HelpRSList'; import HelpRSMenu from './items/ui/HelpRSMenu'; import HelpSubstitutions from './items/ui/HelpSubstitutions'; +import HelpTypeGraph from './items/ui/HelpTypeGraph'; // PDF Viewer setup const OFFSET_X_SMALL = 32; @@ -64,6 +65,7 @@ function TopicPage({ topic }: TopicPageProps) { if (topic === HelpTopic.UI_RS_EDITOR) return ; if (topic === HelpTopic.UI_GRAPH_TERM) return ; if (topic === HelpTopic.UI_FORMULA_TREE) return ; + if (topic === HelpTopic.UI_TYPE_GRAPH) return ; if (topic === HelpTopic.UI_CST_STATUS) return ; if (topic === HelpTopic.UI_CST_CLASS) return ; if (topic === HelpTopic.UI_OSS_GRAPH) return ; diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/cc/HelpConceptPropagation.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/cc/HelpConceptPropagation.tsx index 0a08a8d9..842922e6 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/cc/HelpConceptPropagation.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/cc/HelpConceptPropagation.tsx @@ -20,6 +20,10 @@ function HelpConceptPropagation() { созданию / удаление / обновлению наследованных конституент. Если удаляемые конституенты находятся в таблице отождествлений одной из операций, то такие отождествления будут автоматические отменены.

+

+ После отмены отождествления на заново восстановленную конституенту не обновляются ссылки в собственных + конституентах синтезированный схемы. +

Удаление концептуальной схемы, привязанной к операции приводит к автоматическому удалению всех наследованных конституент. В дальнейшем можно повторно выполнить как операцию загрузки, так и синтез. Однако дописанные diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpRelocateCst.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpRelocateCst.tsx index 18d34968..c2f58e5f 100644 --- a/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpRelocateCst.tsx +++ b/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpRelocateCst.tsx @@ -1,4 +1,4 @@ -import { IconMoveDown, IconMoveUp, IconPredecessor } from '@/components/Icons'; +import { IconMoveDown, IconMoveUp, IconOSS, IconPredecessor } from '@/components/Icons'; import LinkTopic from '@/components/ui/LinkTopic'; import { HelpTopic } from '@/models/miscellaneous'; @@ -7,24 +7,27 @@ function HelpRelocateCst() {

Перенос конституент

- Перенос конституент – операция, при которой выбранные конституенты переносятся в другую КС в рамках одной + Перенос конституент – операция, при которой выбранные конституенты переносятся из текущей КС (источника) в + другую КС (целевую) в рамках одной {' '} .

  • - только для собственных конституент схемы-источника + только для собственных конституент источника
  • направление переноса - вверх или вниз по дереву синтеза
  • + +

    Перенос вверх

    +
  • выбранные конституенты становятся наследованными, а их копии добавляются в целевую КС
  • +
  • нельзя выбирать конституенты, зависящие от конституент других концептуальных схем
  • + +

    Перенос вниз

  • - при переносе вверх собственные конституенты становятся наследованными, а их копии добавляются в целевую КС + выбранные конституенты становятся собственными конституентами целевой КС, удаляются из исходной КС и ее + наследников
  • -
  • - при переносе вниз собственные конституенты становятся собственными конституентами целевой КС и удаляются из - исходной КС -
  • -
  • при переносе вверх нельзя выбирать конституенты, зависящие от конституент КС, отличных от целевой
  • ); } diff --git a/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpTypeGraph.tsx b/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpTypeGraph.tsx new file mode 100644 index 00000000..461cf4b4 --- /dev/null +++ b/rsconcept/frontend/src/pages/ManualsPage/items/ui/HelpTypeGraph.tsx @@ -0,0 +1,35 @@ +import LinkTopic from '@/components/ui/LinkTopic'; +import { useConceptOptions } from '@/context/ConceptOptionsContext'; +import { HelpTopic } from '@/models/miscellaneous'; + +function HelpTypeGraph() { + const { colors } = useConceptOptions(); + return ( +
    +

    Граф ступеней

    +

    + Граф связей между ступенями, используемыми в данном выражении или{' '} + . Исторически отображался в форме мультиграфа (М-граф). В + Портале кратные ребра представлены перечислением индексов компонент произведения. +

    +
  • ребра без надписей означают взятие булеана
  • +
  • цифры означают номера компонент декартова произведения
  • +
  • основаниями дерева являются ступени базисных, константных множеств
  • +
  • ступень терм-функции - произведение ступеней результата и аргументов
  • +
  • ступень предикат-функции - произведение ступеней аргументов
  • + +

    Виды узлов

    +
  • + ступень-основание +
  • +
  • + ступень-булеан +
  • +
  • + ступень декартова произведения +
  • +
    + ); +} + +export default HelpTypeGraph; diff --git a/rsconcept/frontend/src/utils/labels.ts b/rsconcept/frontend/src/utils/labels.ts index 2e30f82a..78934562 100644 --- a/rsconcept/frontend/src/utils/labels.ts +++ b/rsconcept/frontend/src/utils/labels.ts @@ -376,6 +376,7 @@ export function labelHelpTopic(topic: HelpTopic): string { case HelpTopic.UI_RS_EDITOR: return 'Редактор конституенты'; case HelpTopic.UI_GRAPH_TERM: return 'Граф термов'; case HelpTopic.UI_FORMULA_TREE: return 'Дерево разбора'; + case HelpTopic.UI_TYPE_GRAPH: return 'Граф ступеней'; case HelpTopic.UI_CST_STATUS: return 'Статус конституенты'; case HelpTopic.UI_CST_CLASS: return 'Класс конституенты'; case HelpTopic.UI_OSS_GRAPH: return 'Граф синтеза'; @@ -429,6 +430,7 @@ export function describeHelpTopic(topic: HelpTopic): string { case HelpTopic.UI_RS_EDITOR: return 'редактирование конституенты'; case HelpTopic.UI_GRAPH_TERM: return 'интерфейс графа термов'; case HelpTopic.UI_FORMULA_TREE: return 'просмотр дерева разбора
    родоструктурного выражения'; + case HelpTopic.UI_TYPE_GRAPH: return 'просмотр графа ступеней'; case HelpTopic.UI_CST_STATUS: return 'нотация статуса конституенты'; case HelpTopic.UI_CST_CLASS: return 'нотация класса конституенты'; case HelpTopic.UI_OSS_GRAPH: return 'графическая форма
    операционной схемы синтеза';