/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable no-unused-vars */ import External from "../core/External"; import Messages from "../utils/messages"; import { ClassificationMixed } from "../examples/classification_mixed"; /** * Custom Data */ // import { AllTypes } from "../examples/all_types"; const data = ClassificationMixed; function getData(task) { if (task && task.data) { return { ...task, data: JSON.stringify(task.data), }; } return task; } /** * Get current config * @param {string} pathToConfig */ async function getConfig(pathToConfig) { const response = await fetch(pathToConfig); const config = await response.text(); return config; } /** * Get custom config */ async function getExample() { const datatype = data; const config = await getConfig(datatype.config); const annotations = datatype.annotation.annotations; const predictions = datatype.tasks[0].predictions; const task = { annotations, predictions, data: JSON.stringify(datatype.tasks[0].data), }; return { config, task, annotations, predictions }; } /** * Function to return App element */ function rootElement(element) { let root; if (typeof element === "string") { root = document.getElementById(element); } else { root = element; } root.innerHTML = ""; root.style.width = "auto"; return root; } /** * Function to configure application with callbacks * @param {object} params */ function configureApplication(params) { const options = { settings: params.settings || {}, messages: { ...Messages, ...params.messages }, onSubmitAnnotation: params.onSubmitAnnotation ? params.onSubmitAnnotation : External.onSubmitAnnotation, onUpdateAnnotation: params.onUpdateAnnotation ? params.onUpdateAnnotation : External.onUpdateAnnotation, onDeleteAnnotation: params.onDeleteAnnotation ? params.onDeleteAnnotation : External.onDeleteAnnotation, onSkipTask: params.onSkipTask ? params.onSkipTask : External.onSkipTask, onUnskipTask: params.onUnskipTask ? params.onUnskipTask : External.onUnskipTask, onPresignUrlForProject: params.onPresignUrlForProject, onSubmitDraft: params.onSubmitDraft, onTaskLoad: params.onTaskLoad ? params.onTaskLoad : External.onTaskLoad, onLabelStudioLoad: params.onLabelStudioLoad ? params.onLabelStudioLoad : External.onLabelStudioLoad, onEntityCreate: params.onEntityCreate || External.onEntityCreate, onEntityDelete: params.onEntityDelete || External.onEntityDelete, onGroundTruth: params.onGroundTruth || External.onGroundTruth, onSelectAnnotation: params.onSelectAnnotation || External.onSelectAnnotation, onAcceptAnnotation: params.onAcceptAnnotation || External.onAcceptAnnotation, onRejectAnnotation: params.onRejectAnnotation || External.onRejectAnnotation, onStorageInitialized: params.onStorageInitialized || External.onStorageInitialized, onNextTask: params.onNextTask || External.onNextTask, onPrevTask: params.onPrevTask || External.onPrevTask, // other settings aka flags forceAutoAnnotation: params.forceAutoAnnotation ?? false, forceAutoAcceptSuggestions: params.forceAutoAcceptSuggestions ?? false, }; return options; } export default { rootElement, getExample, getData, configureApplication };