ConceptPortal-public/rsconcept/frontend/src/models/miscellaneous.ts

222 lines
5.1 KiB
TypeScript
Raw Normal View History

/**
2023-12-26 14:23:51 +03:00
* Module: Miscellaneous frontend model types. Future targets for refactoring aimed at extracting modules.
*/
2023-09-11 20:31:54 +03:00
2024-07-26 17:31:57 +03:00
import { Node } from 'reactflow';
2024-06-19 22:10:15 +03:00
import { LibraryItemType, LocationHead } from './library';
2024-07-26 17:31:57 +03:00
import { IOperation } from './oss';
2023-11-01 14:09:44 +03:00
/**
* Represents graph dependency mode.
2023-12-28 14:04:44 +03:00
*/
2023-09-11 20:31:54 +03:00
export enum DependencyMode {
ALL = 0,
EXPRESSION,
OUTPUTS,
INPUTS,
EXPAND_OUTPUTS,
EXPAND_INPUTS
}
2024-07-26 17:31:57 +03:00
/**
* Represents graph OSS node data.
*/
export interface OssNode extends Node {
id: string;
data: {
label: string;
operation: IOperation;
};
position: { x: number; y: number };
}
/**
* Represents graph OSS node internal data.
*/
export interface OssNodeInternal {
id: string;
data: {
label: string;
operation: IOperation;
};
2024-07-26 21:09:16 +03:00
dragging: boolean;
2024-07-26 17:31:57 +03:00
xPos: number;
yPos: number;
}
/**
* Represents graph node coloring scheme.
2023-12-28 14:04:44 +03:00
*/
2024-04-07 19:22:19 +03:00
export type GraphColoring = 'none' | 'status' | 'type';
/**
* Represents graph node sizing scheme.
*/
export type GraphSizing = 'none' | 'complex' | 'derived';
2024-03-26 12:49:38 +03:00
/**
* Represents font styles.
*/
export type FontStyle = 'controls' | 'main' | 'math' | 'math2';
2023-11-01 14:09:44 +03:00
/**
* Represents manuals topic.
2023-12-28 14:04:44 +03:00
*/
2023-09-11 20:31:54 +03:00
export enum HelpTopic {
MAIN = 'main',
2024-05-13 20:55:48 +03:00
2024-08-21 12:37:50 +03:00
THESAURUS = 'thesaurus',
2024-05-13 20:55:48 +03:00
INTERFACE = 'user-interface',
2024-05-15 02:51:50 +03:00
UI_LIBRARY = 'ui-library',
2024-05-16 22:39:28 +03:00
UI_RS_MENU = 'ui-rsform-menu',
2024-05-16 14:01:06 +03:00
UI_RS_CARD = 'ui-rsform-card',
UI_RS_LIST = 'ui-rsform-list',
UI_RS_EDITOR = 'ui-rsform-editor',
2024-05-16 22:39:28 +03:00
UI_GRAPH_TERM = 'ui-graph-term',
UI_FORMULA_TREE = 'ui-formula-tree',
2024-05-15 02:51:50 +03:00
UI_CST_STATUS = 'ui-rsform-cst-status',
UI_CST_CLASS = 'ui-rsform-cst-class',
2024-06-10 11:58:23 +03:00
UI_OSS_GRAPH = 'ui-oss-graph',
2024-05-13 20:55:48 +03:00
CONCEPTUAL = 'concept',
2024-06-07 13:42:50 +03:00
CC_SYSTEM = 'concept-rsform',
CC_CONSTITUENTA = 'concept-constituenta',
CC_RELATIONS = 'concept-relations',
CC_SYNTHESIS = 'concept-synthesis',
CC_OSS = 'concept-operations-schema',
2024-08-19 22:03:39 +03:00
CC_PROPAGATION = 'concept-change-propagation',
2024-05-13 20:55:48 +03:00
2023-09-29 16:22:49 +03:00
RSLANG = 'rslang',
2024-05-13 20:55:48 +03:00
RSL_TYPES = 'rslang-types',
RSL_CORRECT = 'rslang-correctness',
RSL_INTERPRET = 'rslang-interpretation',
RSL_OPERATIONS = 'rslang-operations',
2024-05-16 16:05:39 +03:00
RSL_TEMPLATES = 'rslang-templates',
2024-05-13 20:55:48 +03:00
2023-09-29 16:22:49 +03:00
TERM_CONTROL = 'terminology-control',
2024-06-04 16:06:48 +03:00
ACCESS = 'access',
2024-03-12 13:47:19 +03:00
VERSIONS = 'versions',
2024-06-07 13:42:50 +03:00
INFO = 'documentation',
INFO_RULES = 'rules',
INFO_CONTRIB = 'contributors',
INFO_PRIVACY = 'privacy',
INFO_API = 'api',
2024-06-04 16:06:48 +03:00
EXTEOR = 'exteor'
2023-09-11 20:31:54 +03:00
}
2024-05-15 02:51:50 +03:00
/**
* Manual topics hierarchy.
*/
2024-08-06 14:39:00 +03:00
export const topicParent = new Map<HelpTopic, HelpTopic>([
2024-05-15 02:51:50 +03:00
[HelpTopic.MAIN, HelpTopic.MAIN],
2024-08-21 12:37:50 +03:00
[HelpTopic.THESAURUS, HelpTopic.THESAURUS],
2024-05-15 02:51:50 +03:00
[HelpTopic.INTERFACE, HelpTopic.INTERFACE],
[HelpTopic.UI_LIBRARY, HelpTopic.INTERFACE],
2024-05-16 22:39:28 +03:00
[HelpTopic.UI_RS_MENU, HelpTopic.INTERFACE],
2024-05-16 14:01:06 +03:00
[HelpTopic.UI_RS_CARD, HelpTopic.INTERFACE],
[HelpTopic.UI_RS_LIST, HelpTopic.INTERFACE],
[HelpTopic.UI_RS_EDITOR, HelpTopic.INTERFACE],
[HelpTopic.UI_GRAPH_TERM, HelpTopic.INTERFACE],
2024-05-16 22:39:28 +03:00
[HelpTopic.UI_FORMULA_TREE, HelpTopic.INTERFACE],
2024-05-16 14:01:06 +03:00
[HelpTopic.UI_CST_STATUS, HelpTopic.INTERFACE],
[HelpTopic.UI_CST_CLASS, HelpTopic.INTERFACE],
2024-06-10 11:58:23 +03:00
[HelpTopic.UI_OSS_GRAPH, HelpTopic.INTERFACE],
2024-05-15 02:51:50 +03:00
[HelpTopic.CONCEPTUAL, HelpTopic.CONCEPTUAL],
[HelpTopic.CC_SYSTEM, HelpTopic.CONCEPTUAL],
[HelpTopic.CC_CONSTITUENTA, HelpTopic.CONCEPTUAL],
[HelpTopic.CC_RELATIONS, HelpTopic.CONCEPTUAL],
2024-05-16 22:39:28 +03:00
[HelpTopic.CC_SYNTHESIS, HelpTopic.CONCEPTUAL],
2024-06-07 13:42:50 +03:00
[HelpTopic.CC_OSS, HelpTopic.CONCEPTUAL],
2024-08-19 22:03:39 +03:00
[HelpTopic.CC_PROPAGATION, HelpTopic.CONCEPTUAL],
2024-05-15 02:51:50 +03:00
[HelpTopic.RSLANG, HelpTopic.RSLANG],
[HelpTopic.RSL_TYPES, HelpTopic.RSLANG],
[HelpTopic.RSL_CORRECT, HelpTopic.RSLANG],
[HelpTopic.RSL_INTERPRET, HelpTopic.RSLANG],
[HelpTopic.RSL_OPERATIONS, HelpTopic.RSLANG],
2024-05-16 16:05:39 +03:00
[HelpTopic.RSL_TEMPLATES, HelpTopic.RSLANG],
2024-05-15 02:51:50 +03:00
[HelpTopic.TERM_CONTROL, HelpTopic.TERM_CONTROL],
2024-06-04 16:06:48 +03:00
[HelpTopic.ACCESS, HelpTopic.ACCESS],
2024-05-15 02:51:50 +03:00
[HelpTopic.VERSIONS, HelpTopic.VERSIONS],
2024-06-07 13:42:50 +03:00
[HelpTopic.INFO, HelpTopic.INFO],
[HelpTopic.INFO_RULES, HelpTopic.INFO],
[HelpTopic.INFO_CONTRIB, HelpTopic.INFO],
[HelpTopic.INFO_PRIVACY, HelpTopic.INFO],
[HelpTopic.INFO_API, HelpTopic.INFO],
2024-06-04 16:06:48 +03:00
[HelpTopic.EXTEOR, HelpTopic.EXTEOR]
2024-05-15 02:51:50 +03:00
]);
/**
* Topics that can be folded.
*/
2024-06-07 13:42:50 +03:00
export const foldableTopics = [HelpTopic.INTERFACE, HelpTopic.RSLANG, HelpTopic.CONCEPTUAL, HelpTopic.INFO];
2024-05-15 02:51:50 +03:00
2023-11-01 14:09:44 +03:00
/**
* Represents {@link IConstituenta} matching mode.
2023-12-28 14:04:44 +03:00
*/
2023-09-11 20:31:54 +03:00
export enum CstMatchMode {
ALL = 1,
EXPR,
TERM,
TEXT,
NAME
}
2023-11-01 14:09:44 +03:00
/**
* Represents Library filter parameters.
2023-12-28 14:04:44 +03:00
*/
2023-09-11 20:31:54 +03:00
export interface ILibraryFilter {
2024-06-19 22:10:15 +03:00
type?: LibraryItemType;
2023-12-28 14:04:44 +03:00
query?: string;
2024-06-19 22:10:15 +03:00
2024-06-27 11:35:26 +03:00
folderMode?: boolean;
path?: string;
head?: LocationHead;
2024-06-27 11:35:26 +03:00
location?: string;
2024-06-19 22:10:15 +03:00
isVisible?: boolean;
isOwned?: boolean;
isEditor?: boolean;
2023-09-11 20:31:54 +03:00
}
2023-11-01 14:09:44 +03:00
/**
* Represents parameters for GraphEditor.
2023-12-28 14:04:44 +03:00
*/
export interface GraphFilterParams {
2023-12-28 14:04:44 +03:00
noHermits: boolean;
noTransitive: boolean;
noTemplates: boolean;
noText: boolean;
foldDerived: boolean;
2023-11-01 14:09:44 +03:00
2024-04-09 13:47:18 +03:00
focusShowInputs: boolean;
focusShowOutputs: boolean;
2023-12-28 14:04:44 +03:00
allowBase: boolean;
allowStruct: boolean;
allowTerm: boolean;
allowAxiom: boolean;
allowFunction: boolean;
allowPredicate: boolean;
allowConstant: boolean;
allowTheorem: boolean;
}
2024-07-21 15:19:57 +03:00
/**
* Represents XY Position.
*/
export interface Position2D {
x: number;
y: number;
}