import External from "../core/External";
|
import Messages from "../utils/messages";
|
|
function getData(task) {
|
if (task && task.data) {
|
return {
|
...task,
|
data: JSON.stringify(task.data),
|
};
|
}
|
|
return task;
|
}
|
|
function getState(task) {
|
return {
|
annotations: task?.annotations,
|
completions: task?.completions,
|
predictions: task?.predictions,
|
};
|
}
|
|
/**
|
* LS will render in this part
|
*/
|
function rootElement(element) {
|
let root;
|
|
if (typeof element === "string") {
|
root = document.getElementById(element);
|
} else {
|
root = element;
|
}
|
|
root.innerHTML = "";
|
|
return root;
|
}
|
|
/**
|
* Function to configure application with callbacks
|
* @param {object} params
|
*/
|
function configureApplication(params) {
|
// callbacks for back compatibility
|
const osCB = params.submitAnnotation || params.onSubmitAnnotation;
|
const ouCB = params.updateAnnotation || params.onUpdateAnnotation;
|
const odCB = params.deleteAnnotation || params.onDeleteAnnotation;
|
|
const options = {
|
// communication with the server
|
// fetch: params.fetch || Requests.fetcher,
|
// patch: params.patch || Requests.patch,
|
// post: params.post || Requests.poster,
|
// remove: params.remove || Requests.remover,
|
|
// communication with the user
|
settings: params.settings || {},
|
messages: { ...Messages, ...params.messages },
|
|
// callbacks and event handlers
|
onSubmitAnnotation: params.onSubmitAnnotation ? osCB : External.onSubmitAnnotation,
|
onUpdateAnnotation: params.onUpdateAnnotation ? ouCB : External.onUpdateAnnotation,
|
onDeleteAnnotation: params.onDeleteAnnotation ? odCB : External.onDeleteAnnotation,
|
onSkipTask: params.onSkipTask ? params.onSkipTask : External.onSkipTask,
|
onUnskipTask: params.onUnskipTask ? params.onUnskipTask : External.onUnskipTask,
|
onSubmitDraft: params.onSubmitDraft,
|
onPresignUrlForProject: params.onPresignUrlForProject,
|
onTaskLoad: params.onTaskLoad || External.onTaskLoad,
|
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 { getData, getState, rootElement, configureApplication };
|