Portal/rsconcept/frontend/src/features/library/labels.ts
2025-03-13 23:20:52 +03:00

91 lines
2.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { AccessPolicy, LibraryItemType } from './backend/types';
import { type FolderNode } from './models/folder-tree';
import { LocationHead } from './models/library';
import { validateLocation } from './models/library-api';
/**
* Retrieves label for {@link LocationHead}.
*/
export function labelLocationHead(head: LocationHead): string {
// prettier-ignore
switch (head) {
case LocationHead.USER: return '/U : личные';
case LocationHead.COMMON: return '/S : общие';
case LocationHead.LIBRARY: return '/L : примеры';
case LocationHead.PROJECTS: return '/P : проекты';
}
}
/**
* Retrieves description for {@link LocationHead}.
*/
export function describeLocationHead(head: LocationHead): string {
// prettier-ignore
switch (head) {
case LocationHead.USER: return 'Личные схемы пользователя';
case LocationHead.COMMON: return 'Рабочий каталог публичных схем';
case LocationHead.LIBRARY: return 'Каталог неизменных схем-примеров';
case LocationHead.PROJECTS: return 'Рабочий каталог проектных схем';
}
}
/**
* Retrieves label for {@link FolderNode}.
*/
export function labelFolderNode(node: FolderNode): string {
if (node.parent || !validateLocation('/' + node.text)) {
return node.text;
} else {
return labelLocationHead(('/' + node.text) as LocationHead);
}
}
/**
* Retrieves label for {@link AccessPolicy}.
*/
export function labelAccessPolicy(policy: AccessPolicy): string {
// prettier-ignore
switch (policy) {
case AccessPolicy.PRIVATE: return 'Личный';
case AccessPolicy.PROTECTED: return 'Защищенный';
case AccessPolicy.PUBLIC: return 'Открытый';
}
}
/**
* Retrieves description for {@link AccessPolicy}.
*/
export function describeAccessPolicy(policy: AccessPolicy): string {
// prettier-ignore
switch (policy) {
case AccessPolicy.PRIVATE:
return 'Доступ только для владельца';
case AccessPolicy.PROTECTED:
return 'Доступ для владельца и редакторов';
case AccessPolicy.PUBLIC:
return 'Открытый доступ';
}
}
/**
* Retrieves label for {@link LibraryItemType}.
*/
export function labelLibraryItemType(itemType: LibraryItemType): string {
// prettier-ignore
switch (itemType) {
case LibraryItemType.RSFORM: return 'КС';
case LibraryItemType.OSS: return 'ОСС';
}
}
/**
* Retrieves description for {@link LibraryItemType}.
*/
export function describeLibraryItemType(itemType: LibraryItemType): string {
// prettier-ignore
switch (itemType) {
case LibraryItemType.RSFORM: return 'Концептуальная схема';
case LibraryItemType.OSS: return 'Операционная схема синтеза';
}
}