import { c as create_ssr_component, a as subscribe, v as validate_component, d as add_attribute, e as escape, h as each, l as compute_rest_props, f as spread, n as escape_attribute_value, g as escape_object, p as add_styles, s as setContext, j as getContext, q as compute_slots } from './ssr-6MZFlfLu.js';
import { w as writable } from './index2-f61NAEsz.js';
import 'exceljs';
import './ProgressBar.svelte_svelte_type_style_lang-H22V2Yrx.js';
import { L as LlmSelector } from './LlmSelector-fG0hpxMx.js';
import { S as SearchTypeSelector } from './SearchTypeSelector-iwYUZlnB.js';
import 'docx';
import 'file-saver';
import './stores-0qksNY90.js';
const cBase$2 = "textarea relative flex justify-center items-center";
const cInput = "w-full absolute top-0 left-0 right-0 bottom-0 z-[1] opacity-0 disabled:!opacity-0 cursor-pointer";
const cInterface$1 = "flex justify-center items-center text-center";
const FileDropzone = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let classesBase;
let classesInput;
let classesInterface;
let $$restProps = compute_rest_props($$props, [
"files",
"fileInput",
"name",
"border",
"padding",
"rounded",
"regionInterface",
"regionInterfaceText",
"slotLead",
"slotMessage",
"slotMeta"
]);
let $$slots = compute_slots(slots);
let { files = void 0 } = $$props;
let { fileInput = void 0 } = $$props;
let { name } = $$props;
let { border = "border-2 border-dashed" } = $$props;
let { padding = "p-4 py-8" } = $$props;
let { rounded = "rounded-container-token" } = $$props;
let { regionInterface = "" } = $$props;
let { regionInterfaceText = "" } = $$props;
let { slotLead = "mb-4" } = $$props;
let { slotMessage = "" } = $$props;
let { slotMeta = "opacity-75" } = $$props;
function prunedRestProps() {
delete $$restProps.class;
return $$restProps;
}
if ($$props.files === void 0 && $$bindings.files && files !== void 0)
$$bindings.files(files);
if ($$props.fileInput === void 0 && $$bindings.fileInput && fileInput !== void 0)
$$bindings.fileInput(fileInput);
if ($$props.name === void 0 && $$bindings.name && name !== void 0)
$$bindings.name(name);
if ($$props.border === void 0 && $$bindings.border && border !== void 0)
$$bindings.border(border);
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0)
$$bindings.padding(padding);
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0)
$$bindings.rounded(rounded);
if ($$props.regionInterface === void 0 && $$bindings.regionInterface && regionInterface !== void 0)
$$bindings.regionInterface(regionInterface);
if ($$props.regionInterfaceText === void 0 && $$bindings.regionInterfaceText && regionInterfaceText !== void 0)
$$bindings.regionInterfaceText(regionInterfaceText);
if ($$props.slotLead === void 0 && $$bindings.slotLead && slotLead !== void 0)
$$bindings.slotLead(slotLead);
if ($$props.slotMessage === void 0 && $$bindings.slotMessage && slotMessage !== void 0)
$$bindings.slotMessage(slotMessage);
if ($$props.slotMeta === void 0 && $$bindings.slotMeta && slotMeta !== void 0)
$$bindings.slotMeta(slotMeta);
classesBase = `${cBase$2} ${border} ${padding} ${rounded} ${$$props.class ?? ""}`;
classesInput = `${cInput}`;
classesInterface = `${cInterface$1}`;
return `
${$$slots.lead ? `
${slots.lead ? slots.lead({}) : ``}
` : ``}
${slots.message ? slots.message({}) : `Upload a file or drag and drop`}
${$$slots.meta ? `
${slots.meta ? slots.meta({}) : ``}` : ``}
`;
});
const css = {
code: ".anim-indeterminate.svelte-12wvf64{transform-origin:0% 50%;animation:svelte-12wvf64-anim-indeterminate 2s infinite linear}@keyframes svelte-12wvf64-anim-indeterminate{0%{transform:translateX(0) scaleX(0)}40%{transform:translateX(0) scaleX(0.4)}100%{transform:translateX(100%) scaleX(0.5)}}",
map: null
};
const cTrack = "w-full overflow-hidden";
const cMeter = "h-full";
const ProgressBar = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let fillPercent;
let indeterminate;
let classesIndeterminate;
let classesTrack;
let classesMeter;
let { value = void 0 } = $$props;
let { min = 0 } = $$props;
let { max = 100 } = $$props;
let { height = "h-2" } = $$props;
let { rounded = "rounded-token" } = $$props;
let { transition = "transition-[width]" } = $$props;
let { animIndeterminate = "anim-indeterminate" } = $$props;
let { meter = "bg-surface-900-50-token" } = $$props;
let { track = "bg-surface-200-700-token" } = $$props;
let { labelledby = "" } = $$props;
if ($$props.value === void 0 && $$bindings.value && value !== void 0)
$$bindings.value(value);
if ($$props.min === void 0 && $$bindings.min && min !== void 0)
$$bindings.min(min);
if ($$props.max === void 0 && $$bindings.max && max !== void 0)
$$bindings.max(max);
if ($$props.height === void 0 && $$bindings.height && height !== void 0)
$$bindings.height(height);
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0)
$$bindings.rounded(rounded);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.animIndeterminate === void 0 && $$bindings.animIndeterminate && animIndeterminate !== void 0)
$$bindings.animIndeterminate(animIndeterminate);
if ($$props.meter === void 0 && $$bindings.meter && meter !== void 0)
$$bindings.meter(meter);
if ($$props.track === void 0 && $$bindings.track && track !== void 0)
$$bindings.track(track);
if ($$props.labelledby === void 0 && $$bindings.labelledby && labelledby !== void 0)
$$bindings.labelledby(labelledby);
$$result.css.add(css);
fillPercent = value ? 100 * (value - min) / (max - min) : 0;
indeterminate = value === void 0 || value < 0;
classesIndeterminate = indeterminate ? animIndeterminate : "";
classesTrack = `${cTrack} ${track} ${height} ${rounded} ${$$props.class ?? ""}`;
classesMeter = `${cMeter} ${meter} ${rounded} ${classesIndeterminate} ${transition}`;
return ` `;
});
const cBase$1 = "space-y-4";
const cList = "flex overflow-x-auto hide-scrollbar";
const cPanel = "";
const TabGroup = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let classesBase;
let classesList;
let classesPanel;
let $$slots = compute_slots(slots);
let { justify = "justify-start" } = $$props;
let { border = "border-b border-surface-400-500-token" } = $$props;
let { active = "border-b-2 border-surface-900-50-token" } = $$props;
let { hover = "hover:variant-soft" } = $$props;
let { flex = "flex-none" } = $$props;
let { padding = "px-4 py-2" } = $$props;
let { rounded = "rounded-tl-container-token rounded-tr-container-token" } = $$props;
let { spacing = "space-y-1" } = $$props;
let { regionList = "" } = $$props;
let { regionPanel = "" } = $$props;
let { labelledby = "" } = $$props;
let { panel = "" } = $$props;
setContext("active", active);
setContext("hover", hover);
setContext("flex", flex);
setContext("padding", padding);
setContext("rounded", rounded);
setContext("spacing", spacing);
if ($$props.justify === void 0 && $$bindings.justify && justify !== void 0)
$$bindings.justify(justify);
if ($$props.border === void 0 && $$bindings.border && border !== void 0)
$$bindings.border(border);
if ($$props.active === void 0 && $$bindings.active && active !== void 0)
$$bindings.active(active);
if ($$props.hover === void 0 && $$bindings.hover && hover !== void 0)
$$bindings.hover(hover);
if ($$props.flex === void 0 && $$bindings.flex && flex !== void 0)
$$bindings.flex(flex);
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0)
$$bindings.padding(padding);
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0)
$$bindings.rounded(rounded);
if ($$props.spacing === void 0 && $$bindings.spacing && spacing !== void 0)
$$bindings.spacing(spacing);
if ($$props.regionList === void 0 && $$bindings.regionList && regionList !== void 0)
$$bindings.regionList(regionList);
if ($$props.regionPanel === void 0 && $$bindings.regionPanel && regionPanel !== void 0)
$$bindings.regionPanel(regionPanel);
if ($$props.labelledby === void 0 && $$bindings.labelledby && labelledby !== void 0)
$$bindings.labelledby(labelledby);
if ($$props.panel === void 0 && $$bindings.panel && panel !== void 0)
$$bindings.panel(panel);
classesBase = `${cBase$1} ${$$props.class ?? ""}`;
classesList = `${cList} ${justify} ${border} ${regionList}`;
classesPanel = `${cPanel} ${regionPanel}`;
return ` ${slots.default ? slots.default({}) : ``}
${$$slots.panel ? `
${slots.panel ? slots.panel({}) : ``}
` : ``}
`;
});
const cBase = "text-center cursor-pointer transition-colors duration-100";
const cInterface = "";
const Tab = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let selected;
let classesActive;
let classesBase;
let classesInterface;
let classesTab;
let $$restProps = compute_rest_props($$props, [
"group",
"name",
"value",
"title",
"controls",
"regionTab",
"active",
"hover",
"flex",
"padding",
"rounded",
"spacing"
]);
let $$slots = compute_slots(slots);
let { group } = $$props;
let { name } = $$props;
let { value } = $$props;
let { title = "" } = $$props;
let { controls = "" } = $$props;
let { regionTab = "" } = $$props;
let { active = getContext("active") } = $$props;
let { hover = getContext("hover") } = $$props;
let { flex = getContext("flex") } = $$props;
let { padding = getContext("padding") } = $$props;
let { rounded = getContext("rounded") } = $$props;
let { spacing = getContext("spacing") } = $$props;
let elemInput;
function prunedRestProps() {
delete $$restProps.class;
return $$restProps;
}
if ($$props.group === void 0 && $$bindings.group && group !== void 0)
$$bindings.group(group);
if ($$props.name === void 0 && $$bindings.name && name !== void 0)
$$bindings.name(name);
if ($$props.value === void 0 && $$bindings.value && value !== void 0)
$$bindings.value(value);
if ($$props.title === void 0 && $$bindings.title && title !== void 0)
$$bindings.title(title);
if ($$props.controls === void 0 && $$bindings.controls && controls !== void 0)
$$bindings.controls(controls);
if ($$props.regionTab === void 0 && $$bindings.regionTab && regionTab !== void 0)
$$bindings.regionTab(regionTab);
if ($$props.active === void 0 && $$bindings.active && active !== void 0)
$$bindings.active(active);
if ($$props.hover === void 0 && $$bindings.hover && hover !== void 0)
$$bindings.hover(hover);
if ($$props.flex === void 0 && $$bindings.flex && flex !== void 0)
$$bindings.flex(flex);
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0)
$$bindings.padding(padding);
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0)
$$bindings.rounded(rounded);
if ($$props.spacing === void 0 && $$bindings.spacing && spacing !== void 0)
$$bindings.spacing(spacing);
selected = value === group;
classesActive = selected ? active : hover;
classesBase = `${cBase} ${flex} ${padding} ${rounded} ${classesActive} ${$$props.class ?? ""}`;
classesInterface = `${cInterface} ${spacing}`;
classesTab = `${regionTab}`;
return ``;
});
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $files, $$unsubscribe_files;
let $progressBarState, $$unsubscribe_progressBarState;
let $activeTab, $$unsubscribe_activeTab;
let $expandedRequest, $$unsubscribe_expandedRequest;
let $expandedExpertAnswer, $$unsubscribe_expandedExpertAnswer;
let $expandedLlmAnswer, $$unsubscribe_expandedLlmAnswer;
let $expandedEvaluation, $$unsubscribe_expandedEvaluation;
let $tabSet, $$unsubscribe_tabSet;
let { data } = $$props;
data.Model;
let selectedExpertLlm;
let selectedStudentLlm;
let isInvestigatorEnabled = false;
let enableQueryExpansionSearch = false;
let enableOlympicSearch = false;
let runExpertLlm = true;
let llmThreadsCount = 1;
let activeFile = "";
new AbortController();
const tabSet = writable(0);
$$unsubscribe_tabSet = subscribe(tabSet, (value) => $tabSet = value);
let files = writable([]);
$$unsubscribe_files = subscribe(files, (value) => $files = value);
let activeTab = writable(null);
$$unsubscribe_activeTab = subscribe(activeTab, (value) => $activeTab = value);
let expandedLlmAnswer = writable({});
$$unsubscribe_expandedLlmAnswer = subscribe(expandedLlmAnswer, (value) => $expandedLlmAnswer = value);
let expandedEvaluation = writable({});
$$unsubscribe_expandedEvaluation = subscribe(expandedEvaluation, (value) => $expandedEvaluation = value);
let expandedRequest = writable({});
$$unsubscribe_expandedRequest = subscribe(expandedRequest, (value) => $expandedRequest = value);
let expandedExpertAnswer = writable({});
$$unsubscribe_expandedExpertAnswer = subscribe(expandedExpertAnswer, (value) => $expandedExpertAnswer = value);
let progressBarState = writable({});
$$unsubscribe_progressBarState = subscribe(progressBarState, (value) => $progressBarState = value);
let startProcessingButtonText = "Запустить обработку";
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
let $$settled;
let $$rendered;
let previous_head = $$result.head;
do {
$$settled = true;
$$result.head = previous_head;
activeFile = $files.find((file) => file.id === $activeTab);
$$rendered = ` ${validate_component(FileDropzone, "FileDropzone").$$render($$result, {}, {}, {
meta: () => {
return `Только xlsx`;
},
message: () => {
return `Перетащите файл сюда или нажмите, чтобы выбрать файл.`;
}
})} ${$files.length > 0 ? ` ${validate_component(TabGroup, "TabGroup").$$render($$result, {}, {}, {
panel: () => {
return `
${activeFile ? `${$progressBarState[activeFile.id].processingStarted ? `${validate_component(ProgressBar, "ProgressBar").$$render(
$$result,
{
value: $progressBarState[activeFile.id].completedTasks / $progressBarState[activeFile.id].totalTasks * 100,
max: 100
},
{},
{}
)}` : ``}
Отвечает: ${validate_component(LlmSelector, "LlmSelector").$$render(
$$result,
{ selectedLLM: selectedStudentLlm },
{
selectedLLM: ($$value) => {
selectedStudentLlm = $$value;
$$settled = false;
}
},
{}
)}
${`
Оценивает: ${validate_component(LlmSelector, "LlmSelector").$$render(
$$result,
{ selectedLLM: selectedExpertLlm },
{
selectedLLM: ($$value) => {
selectedExpertLlm = $$value;
$$settled = false;
}
},
{}
)}
`}
Вопрос пользователя | Ответ эксперта | Ответ LLM | Ответ оценки LLM | Оценка |
${each(activeFile.data, (row) => {
return `${$expandedRequest[row.id] ? `${row.request?.replace(/\n/g, " ")} ").length > 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-4wwxnw">Свернуть` : `${row.request?.replace(/\n/g, " ").length > 100 ? row.request?.replace(/\n/g, " ").slice(0, 100) + "..." : row.request?.replace(/\n/g, " ")} ").length <= 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-ywkf0q">Развернуть`} | ${$expandedExpertAnswer[row.id] ? `${row.expertAnswer.replace(/\n/g, " ")} ").length > 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-12lel02">Свернуть` : `${row.expertAnswer?.replace(/\n/g, " ").length > 100 ? row.expertAnswer?.replace(/\n/g, " ").slice(0, 100) + "..." : row.expertAnswer?.replace(/\n/g, " ")} ").length <= 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-vvsd3m">Развернуть`} | | ${row.evaluation ? `${$expandedEvaluation[row.id] ? `${row.evaluation?.replace(/\n/g, " ")} ").length > 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-1ympil6">Свернуть` : `${row.evaluation?.replace(/\n/g, " ").length > 100 ? row.evaluation?.replace(/\n/g, " ").slice(0, 100) + "..." : row.evaluation?.replace(/\n/g, " ")} ").length <= 100 ? "hidden" : ""
].join(" ").trim()}" data-svelte-h="svelte-ank2y6">Развернуть`} ` : ``} | ${escape(row.mark)} |
`;
})}
` : ``} `;
},
default: () => {
return `${each($files, (file, index) => {
return `${validate_component(Tab, "Tab").$$render(
$$result,
{
name: file.name,
value: index,
group: $tabSet
},
{
group: ($$value) => {
$tabSet = $$value;
$$settled = false;
}
},
{
default: () => {
return `
${escape(file.id)} ${escape(file.name)} `;
}
}
)}`;
})}`;
}
})}` : ``}
`;
} while (!$$settled);
$$unsubscribe_files();
$$unsubscribe_progressBarState();
$$unsubscribe_activeTab();
$$unsubscribe_expandedRequest();
$$unsubscribe_expandedExpertAnswer();
$$unsubscribe_expandedLlmAnswer();
$$unsubscribe_expandedEvaluation();
$$unsubscribe_tabSet();
return $$rendered;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-jJOEjq71.js.map