Portal/rsconcept/frontend/src/utils/constants.ts

187 lines
5.9 KiB
TypeScript
Raw Normal View History

2024-06-07 20:17:03 +03:00
/**
* Module: Global constants.
*/
/**
* Global application Parameters. The place where magic numbers are put to rest.
*/
export const PARAMETER = {
2024-08-23 22:53:32 +03:00
smallScreen: 640, // == tailwind:sm
2024-06-07 20:17:03 +03:00
smallTreeNodes: 50, // amount of nodes threshold for size increase for large graphs
refreshTimeout: 100, // milliseconds delay for post-refresh actions
minimalTimeout: 10, // milliseconds delay for fast updates
2024-07-23 23:03:58 +03:00
zoomDuration: 500, // milliseconds animation duration
2024-07-24 18:11:28 +03:00
ossImageWidth: 1280, // pixels - size of OSS image
ossImageHeight: 960, // pixels - size of OSS image
2024-07-26 17:30:37 +03:00
ossContextMenuWidth: 200, // pixels - width of OSS context menu
2024-09-01 13:52:18 +03:00
ossContextMenuHeight: 200, // pixels - height of OSS context menu
ossGridSize: 10, // pixels - size of OSS grid
ossMinDistance: 20, // pixels - minimum distance between node centers
2024-08-02 11:17:27 +03:00
ossDistanceX: 180, // pixels - insert x-distance between node centers
ossDistanceY: 100, // pixels - insert y-distance between node centers
2024-07-23 23:03:58 +03:00
2024-06-07 20:17:03 +03:00
graphHoverXLimit: 0.4, // ratio to clientWidth used to determine which side of screen popup should be
graphHoverYLimit: 0.6, // ratio to clientHeight used to determine which side of screen popup should be
graphPopupDelay: 500, // milliseconds delay for graph popup selections
graphRefreshDelay: 10, // milliseconds delay for graph viewpoint reset
typificationTruncate: 42, // characters - threshold for long typification - truncate
2024-08-19 11:56:46 +03:00
ossLongLabel: 14, // characters - threshold for long labels - small font
2024-08-28 16:50:01 +03:00
ossTruncateLabel: 32, // characters - threshold for long labels - truncate
2024-08-19 11:56:46 +03:00
2024-08-23 12:35:05 +03:00
statSmallThreshold: 3, // characters - threshold for small labels - small font
2024-06-09 20:40:41 +03:00
logicLabel: 'LOGIC',
errorNodeLabel: '[ERROR]',
exteorVersion: '4.9.5',
2024-06-09 20:40:41 +03:00
TOOLTIP_WIDTH: 'max-w-[29rem]'
2024-06-07 20:17:03 +03:00
};
/**
* Numeric limitations.
*/
export const limits = {
location_len: 500,
max_semantic_index: 900
2024-06-07 20:17:03 +03:00
};
/**
* Exteor file extension for RSForm.
*/
export const EXTEOR_TRS_FILE = '.trs';
/**
* Regex patterns for data validation.
*/
export const patterns = {
2024-08-19 10:55:52 +03:00
login: '^[a-zA-Z][a-zA-Z0-9_\\-]{1,}[a-zA-Z0-9]$'
2024-06-07 20:17:03 +03:00
};
/**
* Local URIs.
*/
export const resources = {
graph_font: '/DejaVu.ttf',
privacy_policy: '/privacy.pdf',
2024-07-28 13:07:00 +03:00
logo: '/logo_full.svg',
db_schema: '/db_schema.svg'
2024-06-07 20:17:03 +03:00
};
/**
* Youtube IDs for embedding.
*/
export const youtube = {
intro: '0Ty9mu9sOJo'
};
/**
* External URLs.
*/
export const external_urls = {
concept: 'https://www.acconcept.ru/',
exteor32: 'https://drive.google.com/open?id=1IHlMMwaYlAUBRSxU1RU_hXM5mFU9-oyK&usp=drive_fs',
exteor64: 'https://drive.google.com/open?id=1IJt25ZRQ-ZMA6t7hOqmo5cv05WJCQKMv&usp=drive_fs',
ponomarev: 'https://inponomarev.ru/textbook',
intro_video: 'https://www.youtube.com/watch?v=0Ty9mu9sOJo',
full_course: 'https://www.youtube.com/playlist?list=PLGe_JiAwpqu1C70ruQmCm_OWTWU3KJwDo',
zak_lectures:
'https://www.acconcept.ru/product/metody-konceptualnogo-analiza-i-sinteza-v-teoreticheskom-issledovanii-i-proektirovanii-socialno-jekonomicheskih-sistem-3-e-izdanie/',
2024-06-18 20:11:15 +03:00
git_portal: 'https://github.com/IRBorisov/ConceptPortal',
git_core: 'https://github.com/IRBorisov/ConceptCore',
git_cctext: 'https://github.com/IRBorisov/cctext',
2024-06-07 20:17:03 +03:00
mail_portal: 'mailto:portal@acconcept.ru',
restAPI: 'https://api.portal.acconcept.ru'
};
/**
* Local storage ID.
*/
export const storage = {
PREFIX: 'portal.',
themeDark: 'theme.dark',
optionsAdmin: 'options.admin',
optionsHelp: 'options.help',
rseditShowList: 'rsedit.show_list',
rseditShowControls: 'rsedit.show_controls',
librarySearchHead: 'library.search.head',
2024-06-19 22:09:31 +03:00
librarySearchFolderMode: 'library.search.folder_mode',
librarySearchSubfolders: 'library.search.subfolders',
2024-06-27 11:34:52 +03:00
librarySearchLocation: 'library.search.location',
2024-06-07 20:17:03 +03:00
librarySearchVisible: 'library.search.visible',
librarySearchOwned: 'library.search.owned',
librarySearchEditor: 'library.search.editor',
2024-09-27 12:03:13 +03:00
librarySearchUser: 'library.search.user',
2024-06-07 20:17:03 +03:00
libraryPagination: 'library.pagination',
rsgraphFilter: 'rsgraph.filter2',
rsgraphLayout: 'rsgraph.layout',
rsgraphColoring: 'rsgraph.coloring',
rsgraphSizing: 'rsgraph.sizing',
rsgraphFoldHidden: 'rsgraph.fold_hidden',
2024-07-24 18:11:28 +03:00
ossShowGrid: 'oss.show_grid',
2024-07-26 21:08:31 +03:00
ossEdgeStraight: 'oss.edge_straight',
ossEdgeAnimate: 'oss.edge_animate',
2024-07-24 18:11:28 +03:00
2024-06-07 20:17:03 +03:00
cstFilterMatch: 'cst.filter.match',
2024-08-03 11:30:47 +03:00
cstFilterGraph: 'cst.filter.graph',
cstFilterShowInherited: 'cst.filter.show_inherited'
2024-06-07 20:17:03 +03:00
};
/**
* Global element ID.
*/
export const globals = {
tooltip: 'global_tooltip',
value_tooltip: 'value_tooltip',
2024-06-07 20:17:03 +03:00
password_tooltip: 'password_tooltip',
email_tooltip: 'email_tooltip',
main_scroll: 'main_scroll',
library_item_editor: 'library_item_editor',
constituenta_editor: 'constituenta_editor',
graph_schemas: 'graph_schemas_tooltip'
2024-06-07 20:17:03 +03:00
};
/**
* Prefixes for generating unique keys for lists.
*/
export const prefixes = {
page_size: 'page_size_',
2024-08-01 00:35:49 +03:00
oss_list: 'oss_list_',
2024-06-07 20:17:03 +03:00
cst_list: 'cst_list_',
cst_inline_synth_list: 'cst_inline_synth_list_',
cst_inline_synth_substitutes: 'cst_inline_synth_substitutes_',
cst_side_table: 'cst_side_table_',
cst_hidden_list: 'cst_hidden_list_',
cst_modal_list: 'cst_modal_list_',
cst_template_ist: 'cst_template_list_',
cst_wordform_list: 'cst_wordform_list_',
cst_status_list: 'cst_status_list_',
cst_match_mode_list: 'cst_match_mode_list_',
cst_source_list: 'cst_source_list_',
cst_delete_list: 'cst_delete_list_',
cst_dependant_list: 'cst_dependant_list_',
schemas_list: 'schemas_list_',
2024-07-26 00:33:22 +03:00
operation_list: 'operation_list_',
2024-06-07 20:17:03 +03:00
csttype_list: 'csttype_',
policy_list: 'policy_list_',
library_filters_list: 'library_filters_list_',
location_head_list: 'location_head_list_',
2024-06-19 22:09:31 +03:00
folders_list: 'folders_list_',
2024-06-07 20:17:03 +03:00
topic_list: 'topic_list_',
topic_item: 'topic_item_',
library_list: 'library_list_',
user_subs: 'user_subs_',
user_editors: 'user_editors_',
wordform_list: 'wordform_list_',
rsedit_btn: 'rsedit_btn_',
dlg_cst_substitutes_list: 'dlg_cst_substitutes_list_'
};