/
vshmidt
/
label-studio
Обзор
Документация
Войти
/
vshmidt
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/libs/editor/src/stores/Annotation/LinkingModes.js
87 строк
3 KB
hlomzik
feat: LEAP-1441: Allow to connect comments to classifications (#6486)
09 окт 2024, 18:17
Не верифицирован
09 окт 2024, 18:17
8484a84
Код
Авторство
О чём код?
import { types } from "mobx-state-tree"; import Constants from "../../core/Constants"; import { CommentMode } from "./LinkingModes/CommentMode"; import { RelationMode } from "./LinkingModes/RelationMode"; export const CREATE_RELATION_MODE = RelationMode.key; export const LINK_COMMENT_MODE = CommentMode.key; const LinkingModeUnion = types.union(CommentMode.model, RelationMode.model); export const LinkingModes = types .model("LinkingModes", { linkingModes: types.optional(types.map(LinkingModeUnion), () => ({ [RelationMode.key]: RelationMode.model.create({}), [CommentMode.key]: CommentMode.model.create({}), })), }) .volatile((self) => { return { linkingMode: false, }; }) .views((self) => ({ get currentLinkingMode() { return self.linkingMode && self.linkingModes.has(self.linkingMode) ? self.linkingModes.get(self.linkingMode) : null; }, get isLinkingMode() { return !!self.linkingMode; }, // @deprecated get relationMode() { console.warn("`relationMode` is deprecated. Use `isLinkingMode` instead."); return self.isLinkingMode; }, })) .actions((self) => { return { startLinkingMode(linkingModeName, obj) { if (self.isLinkingMode) { self.stopLinkingMode(); } self.linkingMode = linkingModeName; if (!self.currentLinkingMode) { self.linkingMode = false; return; } self.currentLinkingMode.start(obj); document.body.style.cursor = Constants.CHOOSE_CURSOR; }, stopLinkingMode() { document.body.style.cursor = Constants.DEFAULT_CURSOR; if (self.currentLinkingMode) { self.currentLinkingMode.stop(); } self.linkingMode = false; }, addLinkedRegion(region) { if (self.currentLinkingMode) { self.currentLinkingMode.addLinkedRegion?.(region); } }, addLinkedResult(region) { if (self.currentLinkingMode) { self.currentLinkingMode.addLinkedResult?.(region); } }, // @deprecated Use `startLinkingMode(CREATE_RELATION_MODE, obj)` instead startRelationMode(obj) { console.warn("`startRelationMode` is deprecated. Use `startLinkingMode(CREATE_RELATION_MODE, obj)` instead."); self.startLinkingMode(RelationMode.key, obj); }, // @deprecated Use `stopLinkingMode` instead stopRelationMode() { console.warn("`stopRelationMode` is deprecated. Use `stopLinkingMode` instead."); self.stopLinkingMode(); }, }; });