|
import { c as create_ssr_component, o as onDestroy, v as validate_component, e as escape, b as add_attribute, g as getContext, s as setContext, d as compute_rest_props, f as createEventDispatcher, h as spread, i as escape_attribute_value, j as escape_object, a as subscribe, k as each, l as set_store_value, n as hasContext, p as compute_slots, q as split_css_unit } from './ssr-IdY0EU5r.js'; |
|
import './client-_MkdHwD5.js'; |
|
import { w as writable } from './index2-KUnGpG6g.js'; |
|
import { p as prefersReducedMotionStore } from './ProgressBar.svelte_svelte_type_style_lang-5Gb3pa2y.js'; |
|
import 'docx'; |
|
import 'file-saver'; |
|
import './exports-mq_1S73-.js'; |
|
|
|
const DRAWER_STORE_KEY = "drawerStore"; |
|
function initializeDrawerStore() { |
|
const drawerStore = drawerService(); |
|
return setContext(DRAWER_STORE_KEY, drawerStore); |
|
} |
|
function drawerService() { |
|
const { subscribe: subscribe2, set, update: update2 } = writable({}); |
|
return { |
|
subscribe: subscribe2, |
|
set, |
|
update: update2, |
|
|
|
open: (newSettings) => update2(() => { |
|
return { open: true, ...newSettings }; |
|
}), |
|
|
|
close: () => update2((d) => { |
|
d.open = false; |
|
return d; |
|
}) |
|
}; |
|
} |
|
const MODAL_STORE_KEY = "modalStore"; |
|
function initializeModalStore() { |
|
const modalStore = modalService(); |
|
return setContext(MODAL_STORE_KEY, modalStore); |
|
} |
|
function modalService() { |
|
const { subscribe: subscribe2, set, update: update2 } = writable([]); |
|
return { |
|
subscribe: subscribe2, |
|
set, |
|
update: update2, |
|
|
|
trigger: (modal) => update2((mStore) => { |
|
mStore.push(modal); |
|
return mStore; |
|
}), |
|
|
|
close: () => update2((mStore) => { |
|
if (mStore.length > 0) |
|
mStore.shift(); |
|
return mStore; |
|
}), |
|
|
|
clear: () => set([]) |
|
}; |
|
} |
|
const toastDefaults = { message: "Missing Toast Message", autohide: true, timeout: 5e3 }; |
|
const TOAST_STORE_KEY = "toastStore"; |
|
function getToastStore() { |
|
const toastStore = getContext(TOAST_STORE_KEY); |
|
if (!toastStore) |
|
throw new Error("toastStore is not initialized. Please ensure that `initializeStores()` is invoked in the root layout file of this app!"); |
|
return toastStore; |
|
} |
|
function initializeToastStore() { |
|
const toastStore = toastService(); |
|
return setContext(TOAST_STORE_KEY, toastStore); |
|
} |
|
function randomUUID() { |
|
const random = Math.random(); |
|
return Number(random).toString(32); |
|
} |
|
function toastService() { |
|
const { subscribe: subscribe2, set, update: update2 } = writable([]); |
|
const close = (id) => update2((tStore) => { |
|
if (tStore.length > 0) { |
|
const index = tStore.findIndex((t) => t.id === id); |
|
const selectedToast = tStore[index]; |
|
if (selectedToast) { |
|
if (selectedToast.callback) |
|
selectedToast.callback({ id, status: "closed" }); |
|
if (selectedToast.timeoutId) |
|
clearTimeout(selectedToast.timeoutId); |
|
tStore.splice(index, 1); |
|
} |
|
} |
|
return tStore; |
|
}); |
|
function handleAutoHide(toast) { |
|
if (toast.autohide === true) { |
|
return setTimeout(() => { |
|
close(toast.id); |
|
}, toast.timeout); |
|
} |
|
} |
|
return { |
|
subscribe: subscribe2, |
|
close, |
|
|
|
trigger: (toast) => { |
|
const id = randomUUID(); |
|
update2((tStore) => { |
|
if (toast && toast.callback) |
|
toast.callback({ id, status: "queued" }); |
|
if (toast.hideDismiss) |
|
toast.autohide = true; |
|
const tMerged = { ...toastDefaults, ...toast, id }; |
|
tMerged.timeoutId = handleAutoHide(tMerged); |
|
tStore.push(tMerged); |
|
return tStore; |
|
}); |
|
return id; |
|
}, |
|
|
|
freeze: (index) => update2((tStore) => { |
|
if (tStore.length > 0) |
|
clearTimeout(tStore[index].timeoutId); |
|
return tStore; |
|
}), |
|
|
|
unfreeze: (index) => update2((tStore) => { |
|
if (tStore.length > 0) |
|
tStore[index].timeoutId = handleAutoHide(tStore[index]); |
|
return tStore; |
|
}), |
|
|
|
clear: () => set([]) |
|
}; |
|
} |
|
function initializeStores() { |
|
initializeModalStore(); |
|
initializeToastStore(); |
|
initializeDrawerStore(); |
|
} |
|
function cubicOut(t) { |
|
const f = t - 1; |
|
return f * f * f + 1; |
|
} |
|
function fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) { |
|
const style = getComputedStyle(node); |
|
const target_opacity = +style.opacity; |
|
const transform = style.transform === "none" ? "" : style.transform; |
|
const od = target_opacity * (1 - opacity); |
|
const [xValue, xUnit] = split_css_unit(x); |
|
const [yValue, yUnit] = split_css_unit(y); |
|
return { |
|
delay, |
|
duration, |
|
easing, |
|
css: (t, u) => ` |
|
transform: ${transform} translate(${(1 - t) * xValue}${xUnit}, ${(1 - t) * yValue}${yUnit}); |
|
opacity: ${target_opacity - od * u}` |
|
}; |
|
} |
|
function slide(node, { delay = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) { |
|
const style = getComputedStyle(node); |
|
const opacity = +style.opacity; |
|
const primary_property = axis === "y" ? "height" : "width"; |
|
const primary_property_value = parseFloat(style[primary_property]); |
|
const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"]; |
|
const capitalized_secondary_properties = secondary_properties.map( |
|
(e) => `${e[0].toUpperCase()}${e.slice(1)}` |
|
); |
|
const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]); |
|
const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]); |
|
const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]); |
|
const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]); |
|
const border_width_start_value = parseFloat( |
|
style[`border${capitalized_secondary_properties[0]}Width`] |
|
); |
|
const border_width_end_value = parseFloat( |
|
style[`border${capitalized_secondary_properties[1]}Width`] |
|
); |
|
return { |
|
delay, |
|
duration, |
|
easing, |
|
css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;` |
|
}; |
|
} |
|
const Accordion = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let classesBase; |
|
let $prefersReducedMotionStore, $$unsubscribe_prefersReducedMotionStore; |
|
$$unsubscribe_prefersReducedMotionStore = subscribe(prefersReducedMotionStore, (value) => $prefersReducedMotionStore = value); |
|
let { autocollapse = false } = $$props; |
|
let { width = "w-full" } = $$props; |
|
let { spacing = "space-y-1" } = $$props; |
|
let { disabled = false } = $$props; |
|
let { padding = "py-2 px-4" } = $$props; |
|
let { hover = "hover:bg-primary-hover-token" } = $$props; |
|
let { rounded = "rounded-container-token" } = $$props; |
|
let { caretOpen = "rotate-180" } = $$props; |
|
let { caretClosed = "" } = $$props; |
|
let { regionControl = "" } = $$props; |
|
let { regionPanel = "space-y-4" } = $$props; |
|
let { regionCaret = "" } = $$props; |
|
let { transitions = !$prefersReducedMotionStore } = $$props; |
|
let { transitionIn = slide } = $$props; |
|
let { transitionInParams = { duration: 200 } } = $$props; |
|
let { transitionOut = slide } = $$props; |
|
let { transitionOutParams = { duration: 200 } } = $$props; |
|
const active = writable(null); |
|
setContext("active", active); |
|
setContext("autocollapse", autocollapse); |
|
setContext("disabled", disabled); |
|
setContext("padding", padding); |
|
setContext("hover", hover); |
|
setContext("rounded", rounded); |
|
setContext("caretOpen", caretOpen); |
|
setContext("caretClosed", caretClosed); |
|
setContext("regionControl", regionControl); |
|
setContext("regionPanel", regionPanel); |
|
setContext("regionCaret", regionCaret); |
|
setContext("transitions", transitions); |
|
setContext("transitionIn", transitionIn); |
|
setContext("transitionInParams", transitionInParams); |
|
setContext("transitionOut", transitionOut); |
|
setContext("transitionOutParams", transitionOutParams); |
|
if ($$props.autocollapse === void 0 && $$bindings.autocollapse && autocollapse !== void 0) |
|
$$bindings.autocollapse(autocollapse); |
|
if ($$props.width === void 0 && $$bindings.width && width !== void 0) |
|
$$bindings.width(width); |
|
if ($$props.spacing === void 0 && $$bindings.spacing && spacing !== void 0) |
|
$$bindings.spacing(spacing); |
|
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0) |
|
$$bindings.disabled(disabled); |
|
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0) |
|
$$bindings.padding(padding); |
|
if ($$props.hover === void 0 && $$bindings.hover && hover !== void 0) |
|
$$bindings.hover(hover); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.caretOpen === void 0 && $$bindings.caretOpen && caretOpen !== void 0) |
|
$$bindings.caretOpen(caretOpen); |
|
if ($$props.caretClosed === void 0 && $$bindings.caretClosed && caretClosed !== void 0) |
|
$$bindings.caretClosed(caretClosed); |
|
if ($$props.regionControl === void 0 && $$bindings.regionControl && regionControl !== void 0) |
|
$$bindings.regionControl(regionControl); |
|
if ($$props.regionPanel === void 0 && $$bindings.regionPanel && regionPanel !== void 0) |
|
$$bindings.regionPanel(regionPanel); |
|
if ($$props.regionCaret === void 0 && $$bindings.regionCaret && regionCaret !== void 0) |
|
$$bindings.regionCaret(regionCaret); |
|
if ($$props.transitions === void 0 && $$bindings.transitions && transitions !== void 0) |
|
$$bindings.transitions(transitions); |
|
if ($$props.transitionIn === void 0 && $$bindings.transitionIn && transitionIn !== void 0) |
|
$$bindings.transitionIn(transitionIn); |
|
if ($$props.transitionInParams === void 0 && $$bindings.transitionInParams && transitionInParams !== void 0) |
|
$$bindings.transitionInParams(transitionInParams); |
|
if ($$props.transitionOut === void 0 && $$bindings.transitionOut && transitionOut !== void 0) |
|
$$bindings.transitionOut(transitionOut); |
|
if ($$props.transitionOutParams === void 0 && $$bindings.transitionOutParams && transitionOutParams !== void 0) |
|
$$bindings.transitionOutParams(transitionOutParams); |
|
classesBase = `${width} ${spacing} ${$$props.class ?? ""}`; |
|
$$unsubscribe_prefersReducedMotionStore(); |
|
return ` <div class="${"accordion " + escape(classesBase, true)}" data-testid="accordion">${slots.default ? slots.default({}) : ``}</div>`; |
|
}); |
|
const cBase$3 = ""; |
|
const cControl = "text-start w-full flex items-center space-x-4"; |
|
const cControlIcons = "fill-current w-3 transition-transform duration-[200ms]"; |
|
const cPanel = ""; |
|
const AccordionItem = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let openState; |
|
let classesBase; |
|
let classesControl; |
|
let classesCaretState; |
|
let classesControlCaret; |
|
let classesControlIcons; |
|
let classesPanel; |
|
let $$slots = compute_slots(slots); |
|
let $active, $$unsubscribe_active; |
|
const dispatch = createEventDispatcher(); |
|
let { open = false } = $$props; |
|
let { id = String(Math.random()) } = $$props; |
|
let { autocollapse = getContext("autocollapse") } = $$props; |
|
let { active = getContext("active") } = $$props; |
|
$$unsubscribe_active = subscribe(active, (value) => $active = value); |
|
let { disabled = getContext("disabled") } = $$props; |
|
let { padding = getContext("padding") } = $$props; |
|
let { hover = getContext("hover") } = $$props; |
|
let { rounded = getContext("rounded") } = $$props; |
|
let { caretOpen = getContext("caretOpen") } = $$props; |
|
let { caretClosed = getContext("caretClosed") } = $$props; |
|
let { regionControl = getContext("regionControl") } = $$props; |
|
let { regionPanel = getContext("regionPanel") } = $$props; |
|
let { regionCaret = getContext("regionCaret") } = $$props; |
|
let { transitions = getContext("transitions") } = $$props; |
|
let { transitionIn = getContext("transitionIn") } = $$props; |
|
let { transitionInParams = getContext("transitionInParams") } = $$props; |
|
let { transitionOut = getContext("transitionOut") } = $$props; |
|
let { transitionOutParams = getContext("transitionOutParams") } = $$props; |
|
const svgCaretIcon = ` |
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class={classesControlCaret}> |
|
<path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z" /> |
|
</svg>`; |
|
function setActive(event) { |
|
if (autocollapse === true) { |
|
active.set(id); |
|
} else { |
|
open = !open; |
|
} |
|
onToggle(event); |
|
} |
|
function onToggle(event) { |
|
const currentOpenState = autocollapse ? $active === id : open; |
|
dispatch("toggle", { |
|
event, |
|
id, |
|
panelId: `accordion-panel-${id}`, |
|
open: currentOpenState, |
|
autocollapse |
|
}); |
|
} |
|
if (autocollapse && open) |
|
setActive(); |
|
if ($$props.open === void 0 && $$bindings.open && open !== void 0) |
|
$$bindings.open(open); |
|
if ($$props.id === void 0 && $$bindings.id && id !== void 0) |
|
$$bindings.id(id); |
|
if ($$props.autocollapse === void 0 && $$bindings.autocollapse && autocollapse !== void 0) |
|
$$bindings.autocollapse(autocollapse); |
|
if ($$props.active === void 0 && $$bindings.active && active !== void 0) |
|
$$bindings.active(active); |
|
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0) |
|
$$bindings.disabled(disabled); |
|
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0) |
|
$$bindings.padding(padding); |
|
if ($$props.hover === void 0 && $$bindings.hover && hover !== void 0) |
|
$$bindings.hover(hover); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.caretOpen === void 0 && $$bindings.caretOpen && caretOpen !== void 0) |
|
$$bindings.caretOpen(caretOpen); |
|
if ($$props.caretClosed === void 0 && $$bindings.caretClosed && caretClosed !== void 0) |
|
$$bindings.caretClosed(caretClosed); |
|
if ($$props.regionControl === void 0 && $$bindings.regionControl && regionControl !== void 0) |
|
$$bindings.regionControl(regionControl); |
|
if ($$props.regionPanel === void 0 && $$bindings.regionPanel && regionPanel !== void 0) |
|
$$bindings.regionPanel(regionPanel); |
|
if ($$props.regionCaret === void 0 && $$bindings.regionCaret && regionCaret !== void 0) |
|
$$bindings.regionCaret(regionCaret); |
|
if ($$props.transitions === void 0 && $$bindings.transitions && transitions !== void 0) |
|
$$bindings.transitions(transitions); |
|
if ($$props.transitionIn === void 0 && $$bindings.transitionIn && transitionIn !== void 0) |
|
$$bindings.transitionIn(transitionIn); |
|
if ($$props.transitionInParams === void 0 && $$bindings.transitionInParams && transitionInParams !== void 0) |
|
$$bindings.transitionInParams(transitionInParams); |
|
if ($$props.transitionOut === void 0 && $$bindings.transitionOut && transitionOut !== void 0) |
|
$$bindings.transitionOut(transitionOut); |
|
if ($$props.transitionOutParams === void 0 && $$bindings.transitionOutParams && transitionOutParams !== void 0) |
|
$$bindings.transitionOutParams(transitionOutParams); |
|
{ |
|
if (open && autocollapse) |
|
setActive(); |
|
} |
|
openState = autocollapse ? $active === id : open; |
|
classesBase = `${cBase$3} ${$$props.class ?? ""}`; |
|
classesControl = `${cControl} ${padding} ${hover} ${rounded} ${regionControl}`; |
|
classesCaretState = openState ? caretOpen : caretClosed; |
|
classesControlCaret = `${cControlIcons} ${regionCaret} ${classesCaretState}`; |
|
classesControlIcons = `${cControlIcons} ${regionCaret}`; |
|
classesPanel = `${cPanel} ${padding} ${rounded} ${regionPanel}`; |
|
$$unsubscribe_active(); |
|
return ` <div class="${"accordion-item " + escape(classesBase, true)}" data-testid="accordion-item"> <button type="button" class="${"accordion-control " + escape(classesControl, true)}"${add_attribute("id", id, 0)}${add_attribute("aria-expanded", openState, 0)} aria-controls="${"accordion-panel-" + escape(id, true)}" ${disabled ? "disabled" : ""}> ${$$slots.lead ? `<div class="accordion-lead">${slots.lead ? slots.lead({}) : ``}</div>` : ``} <div class="accordion-summary flex-1">${slots.summary ? slots.summary({}) : `(summary)`}</div> ${$$slots.iconClosed || $$slots.iconOpen ? ` <div class="${"accordion-summary-icons " + escape(classesControlIcons, true)}">${openState ? `${slots.iconClosed ? slots.iconClosed({}) : `<!-- HTML_TAG_START -->${svgCaretIcon}<!-- HTML_TAG_END -->`}` : `${slots.iconOpen ? slots.iconOpen({}) : `<!-- HTML_TAG_START -->${svgCaretIcon}<!-- HTML_TAG_END -->`}`}</div>` : ` <div class="${"accordion-summary-caret " + escape(classesControlCaret, true)}"><!-- HTML_TAG_START -->${svgCaretIcon}<!-- HTML_TAG_END --></div>`}</button> ${openState ? `<div class="${"accordion-panel " + escape(classesPanel, true)}" id="${"accordion-panel-" + escape(id, true)}" role="region"${add_attribute("aria-hidden", !openState, 0)}${add_attribute("aria-labelledby", id, 0)}>${slots.content ? slots.content({}) : `(content)`}</div>` : ``}</div>`; |
|
}); |
|
const cBase$2 = "p-1"; |
|
const RadioGroup = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let classesBase; |
|
let { display = "inline-flex" } = $$props; |
|
let { flexDirection = "flex-row" } = $$props; |
|
let { gap = "gap-1" } = $$props; |
|
let { background = "bg-surface-200-700-token" } = $$props; |
|
let { border = "border-token border-surface-400-500-token" } = $$props; |
|
let { rounded = "rounded-token" } = $$props; |
|
let { padding = "px-4 py-1" } = $$props; |
|
let { active = "variant-filled" } = $$props; |
|
let { hover = "hover:variant-soft" } = $$props; |
|
let { color = "" } = $$props; |
|
let { fill = "" } = $$props; |
|
let { regionLabel = "" } = $$props; |
|
let { labelledby = "" } = $$props; |
|
setContext("rounded", rounded); |
|
setContext("padding", padding); |
|
setContext("active", active); |
|
setContext("hover", hover); |
|
setContext("color", color); |
|
setContext("fill", fill); |
|
setContext("regionLabel", regionLabel); |
|
if ($$props.display === void 0 && $$bindings.display && display !== void 0) |
|
$$bindings.display(display); |
|
if ($$props.flexDirection === void 0 && $$bindings.flexDirection && flexDirection !== void 0) |
|
$$bindings.flexDirection(flexDirection); |
|
if ($$props.gap === void 0 && $$bindings.gap && gap !== void 0) |
|
$$bindings.gap(gap); |
|
if ($$props.background === void 0 && $$bindings.background && background !== void 0) |
|
$$bindings.background(background); |
|
if ($$props.border === void 0 && $$bindings.border && border !== void 0) |
|
$$bindings.border(border); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0) |
|
$$bindings.padding(padding); |
|
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.color === void 0 && $$bindings.color && color !== void 0) |
|
$$bindings.color(color); |
|
if ($$props.fill === void 0 && $$bindings.fill && fill !== void 0) |
|
$$bindings.fill(fill); |
|
if ($$props.regionLabel === void 0 && $$bindings.regionLabel && regionLabel !== void 0) |
|
$$bindings.regionLabel(regionLabel); |
|
if ($$props.labelledby === void 0 && $$bindings.labelledby && labelledby !== void 0) |
|
$$bindings.labelledby(labelledby); |
|
classesBase = `${cBase$2} ${display} ${flexDirection} ${gap} ${background} ${border} ${rounded} ${$$props.class ?? ""}`; |
|
return `<div class="${"radio-group " + escape(classesBase, true)}" data-testid="radio-group" role="radiogroup"${add_attribute("aria-labelledby", labelledby, 0)}>${slots.default ? slots.default({}) : ``}</div>`; |
|
}); |
|
const cBase$1 = "flex-auto"; |
|
const cWrapper$1 = "text-base text-center cursor-pointer"; |
|
const cDisabled = "opacity-50 cursor-not-allowed"; |
|
const RadioItem = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let checked; |
|
let classesActive; |
|
let classesDisabled; |
|
let classsBase; |
|
let classesWrapper; |
|
let $$restProps = compute_rest_props($$props, [ |
|
"group", |
|
"name", |
|
"value", |
|
"title", |
|
"label", |
|
"rounded", |
|
"padding", |
|
"active", |
|
"hover", |
|
"color", |
|
"fill", |
|
"regionLabel" |
|
]); |
|
let { group } = $$props; |
|
let { name } = $$props; |
|
let { value } = $$props; |
|
let { title = "" } = $$props; |
|
let { label = "" } = $$props; |
|
let { rounded = getContext("rounded") } = $$props; |
|
let { padding = getContext("padding") } = $$props; |
|
let { active = getContext("active") } = $$props; |
|
let { hover = getContext("hover") } = $$props; |
|
let { color = getContext("color") } = $$props; |
|
let { fill = getContext("fill") } = $$props; |
|
let { regionLabel = getContext("regionLabel") } = $$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.label === void 0 && $$bindings.label && label !== void 0) |
|
$$bindings.label(label); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0) |
|
$$bindings.padding(padding); |
|
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.color === void 0 && $$bindings.color && color !== void 0) |
|
$$bindings.color(color); |
|
if ($$props.fill === void 0 && $$bindings.fill && fill !== void 0) |
|
$$bindings.fill(fill); |
|
if ($$props.regionLabel === void 0 && $$bindings.regionLabel && regionLabel !== void 0) |
|
$$bindings.regionLabel(regionLabel); |
|
checked = value === group; |
|
classesActive = checked ? `${active} ${color} ${fill}` : hover; |
|
classesDisabled = $$props.disabled ? cDisabled : ""; |
|
classsBase = `${cBase$1}`; |
|
classesWrapper = `${cWrapper$1} ${padding} ${rounded} ${classesActive} ${classesDisabled} ${$$props.class ?? ""}`; |
|
return `<label class="${"radio-label " + escape(classsBase, true) + " " + escape(regionLabel, true)}"> <div class="${"radio-item " + escape(classesWrapper, true)}" data-testid="radio-item" role="radio"${add_attribute("aria-checked", checked, 0)}${add_attribute("aria-label", label, 0)} tabindex="0"${add_attribute("title", title, 0)}> <div class="h-0 w-0 overflow-hidden"><input${spread( |
|
[ |
|
{ type: "radio" }, |
|
{ name: escape_attribute_value(name) }, |
|
{ value: escape_attribute_value(value) }, |
|
escape_object(prunedRestProps()), |
|
{ tabindex: "-1" } |
|
], |
|
{} |
|
)}${add_attribute("this", elemInput, 0)}${value === group ? add_attribute("checked", true, 1) : ""}></div> ${slots.default ? slots.default({}) : ``}</div></label>`; |
|
}); |
|
const cBase = "inline-block"; |
|
const cLabel = "unstyled flex items-center"; |
|
const cTrack = "flex transition-all duration-[200ms] cursor-pointer"; |
|
const cThumb = "w-[50%] h-full scale-[0.8] transition-all duration-[200ms] shadow"; |
|
const SlideToggle = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let cTrackActive; |
|
let cThumbBackground; |
|
let cThumbPos; |
|
let classesDisabled; |
|
let classesBase; |
|
let classesLabel; |
|
let classesTrack; |
|
let classesThumb; |
|
let $$restProps = compute_rest_props($$props, ["name", "checked", "size", "background", "active", "border", "rounded", "label"]); |
|
let $$slots = compute_slots(slots); |
|
createEventDispatcher(); |
|
let { name } = $$props; |
|
let { checked = false } = $$props; |
|
let { size = "md" } = $$props; |
|
let { background = "bg-surface-400 dark:bg-surface-700" } = $$props; |
|
let { active = "bg-surface-900 dark:bg-surface-300" } = $$props; |
|
let { border = "" } = $$props; |
|
let { rounded = "rounded-full" } = $$props; |
|
let { label = "" } = $$props; |
|
let trackSize; |
|
switch (size) { |
|
case "sm": |
|
trackSize = "w-12 h-6"; |
|
break; |
|
case "lg": |
|
trackSize = "w-20 h-10"; |
|
break; |
|
default: |
|
trackSize = "w-16 h-8"; |
|
} |
|
function prunedRestProps() { |
|
delete $$restProps.class; |
|
return $$restProps; |
|
} |
|
if ($$props.name === void 0 && $$bindings.name && name !== void 0) |
|
$$bindings.name(name); |
|
if ($$props.checked === void 0 && $$bindings.checked && checked !== void 0) |
|
$$bindings.checked(checked); |
|
if ($$props.size === void 0 && $$bindings.size && size !== void 0) |
|
$$bindings.size(size); |
|
if ($$props.background === void 0 && $$bindings.background && background !== void 0) |
|
$$bindings.background(background); |
|
if ($$props.active === void 0 && $$bindings.active && active !== void 0) |
|
$$bindings.active(active); |
|
if ($$props.border === void 0 && $$bindings.border && border !== void 0) |
|
$$bindings.border(border); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.label === void 0 && $$bindings.label && label !== void 0) |
|
$$bindings.label(label); |
|
cTrackActive = checked ? active : `${background} cursor-pointer`; |
|
cThumbBackground = checked ? "bg-white/75" : "bg-white"; |
|
cThumbPos = checked ? "translate-x-full" : ""; |
|
classesDisabled = $$props.disabled === true ? "opacity-50" : "hover:brightness-[105%] dark:hover:brightness-110 cursor-pointer"; |
|
classesBase = `${cBase} ${rounded} ${classesDisabled} ${$$props.class ?? ""}`; |
|
classesLabel = `${cLabel}`; |
|
classesTrack = `${cTrack} ${border} ${rounded} ${trackSize} ${cTrackActive}`; |
|
classesThumb = `${cThumb} ${rounded} ${cThumbBackground} ${cThumbPos}`; |
|
return `<div${add_attribute("id", label, 0)} class="${"slide-toggle " + escape(classesBase, true)}" data-testid="slide-toggle" role="switch"${add_attribute("aria-label", label, 0)}${add_attribute("aria-checked", checked, 0)} tabindex="0"><label class="${"slide-toggle-label " + escape(classesLabel, true)}"> <input${spread( |
|
[ |
|
{ type: "checkbox" }, |
|
{ class: "slide-toggle-input hidden" }, |
|
{ name: escape_attribute_value(name) }, |
|
escape_object(prunedRestProps()), |
|
{ disabled: $$props.disabled || null } |
|
], |
|
{} |
|
)}${add_attribute("checked", checked, 1)}> <div class="${[ |
|
"slide-toggle-track " + escape(classesTrack, true), |
|
$$props.disabled ? "cursor-not-allowed" : "" |
|
].join(" ").trim()}"><div class="${[ |
|
"slide-toggle-thumb " + escape(classesThumb, true), |
|
$$props.disabled ? "cursor-not-allowed" : "" |
|
].join(" ").trim()}"></div></div> ${$$slots.default ? `<div class="slide-toggle-text ml-3">${slots.default ? slots.default({}) : ``}</div>` : ``}</label></div>`; |
|
}); |
|
const cWrapper = "flex fixed top-0 left-0 right-0 bottom-0 pointer-events-none"; |
|
const cSnackbar = "flex flex-col gap-y-2"; |
|
const cToast = "flex justify-between items-center pointer-events-auto"; |
|
const cToastActions = "flex items-center space-x-2"; |
|
const Toast = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let classesWrapper; |
|
let classesSnackbar; |
|
let classesToast; |
|
let filteredToasts; |
|
let $toastStore, $$unsubscribe_toastStore; |
|
let $prefersReducedMotionStore, $$unsubscribe_prefersReducedMotionStore; |
|
$$unsubscribe_prefersReducedMotionStore = subscribe(prefersReducedMotionStore, (value) => $prefersReducedMotionStore = value); |
|
const toastStore = getToastStore(); |
|
$$unsubscribe_toastStore = subscribe(toastStore, (value) => $toastStore = value); |
|
let { position = "b" } = $$props; |
|
let { max = 3 } = $$props; |
|
let { background = "variant-filled-secondary" } = $$props; |
|
let { width = "max-w-[640px]" } = $$props; |
|
let { color = "" } = $$props; |
|
let { padding = "p-4" } = $$props; |
|
let { spacing = "space-x-4" } = $$props; |
|
let { rounded = "rounded-container-token" } = $$props; |
|
let { shadow = "shadow-lg" } = $$props; |
|
let { zIndex = "z-[888]" } = $$props; |
|
let { buttonAction = "btn variant-filled" } = $$props; |
|
let { buttonDismiss = "btn-icon btn-icon-sm variant-filled" } = $$props; |
|
let { buttonDismissLabel = "✕" } = $$props; |
|
let { transitions = !$prefersReducedMotionStore } = $$props; |
|
let { transitionIn = fly } = $$props; |
|
let { transitionInParams = { duration: 250 } } = $$props; |
|
let { transitionOut = fly } = $$props; |
|
let { transitionOutParams = { duration: 250 } } = $$props; |
|
let cPosition; |
|
let cAlign; |
|
switch (position) { |
|
case "t": |
|
cPosition = "justify-center items-start"; |
|
cAlign = "items-center"; |
|
break; |
|
case "b": |
|
cPosition = "justify-center items-end"; |
|
cAlign = "items-center"; |
|
break; |
|
case "l": |
|
cPosition = "justify-start items-center"; |
|
cAlign = "items-start"; |
|
break; |
|
case "r": |
|
cPosition = "justify-end items-center"; |
|
cAlign = "items-end"; |
|
break; |
|
case "tl": |
|
cPosition = "justify-start items-start"; |
|
cAlign = "items-start"; |
|
break; |
|
case "tr": |
|
cPosition = "justify-end items-start"; |
|
cAlign = "items-end"; |
|
break; |
|
case "bl": |
|
cPosition = "justify-start items-end"; |
|
cAlign = "items-start"; |
|
break; |
|
case "br": |
|
cPosition = "justify-end items-end"; |
|
cAlign = "items-end"; |
|
break; |
|
} |
|
if ($$props.position === void 0 && $$bindings.position && position !== void 0) |
|
$$bindings.position(position); |
|
if ($$props.max === void 0 && $$bindings.max && max !== void 0) |
|
$$bindings.max(max); |
|
if ($$props.background === void 0 && $$bindings.background && background !== void 0) |
|
$$bindings.background(background); |
|
if ($$props.width === void 0 && $$bindings.width && width !== void 0) |
|
$$bindings.width(width); |
|
if ($$props.color === void 0 && $$bindings.color && color !== void 0) |
|
$$bindings.color(color); |
|
if ($$props.padding === void 0 && $$bindings.padding && padding !== void 0) |
|
$$bindings.padding(padding); |
|
if ($$props.spacing === void 0 && $$bindings.spacing && spacing !== void 0) |
|
$$bindings.spacing(spacing); |
|
if ($$props.rounded === void 0 && $$bindings.rounded && rounded !== void 0) |
|
$$bindings.rounded(rounded); |
|
if ($$props.shadow === void 0 && $$bindings.shadow && shadow !== void 0) |
|
$$bindings.shadow(shadow); |
|
if ($$props.zIndex === void 0 && $$bindings.zIndex && zIndex !== void 0) |
|
$$bindings.zIndex(zIndex); |
|
if ($$props.buttonAction === void 0 && $$bindings.buttonAction && buttonAction !== void 0) |
|
$$bindings.buttonAction(buttonAction); |
|
if ($$props.buttonDismiss === void 0 && $$bindings.buttonDismiss && buttonDismiss !== void 0) |
|
$$bindings.buttonDismiss(buttonDismiss); |
|
if ($$props.buttonDismissLabel === void 0 && $$bindings.buttonDismissLabel && buttonDismissLabel !== void 0) |
|
$$bindings.buttonDismissLabel(buttonDismissLabel); |
|
if ($$props.transitions === void 0 && $$bindings.transitions && transitions !== void 0) |
|
$$bindings.transitions(transitions); |
|
if ($$props.transitionIn === void 0 && $$bindings.transitionIn && transitionIn !== void 0) |
|
$$bindings.transitionIn(transitionIn); |
|
if ($$props.transitionInParams === void 0 && $$bindings.transitionInParams && transitionInParams !== void 0) |
|
$$bindings.transitionInParams(transitionInParams); |
|
if ($$props.transitionOut === void 0 && $$bindings.transitionOut && transitionOut !== void 0) |
|
$$bindings.transitionOut(transitionOut); |
|
if ($$props.transitionOutParams === void 0 && $$bindings.transitionOutParams && transitionOutParams !== void 0) |
|
$$bindings.transitionOutParams(transitionOutParams); |
|
classesWrapper = `${cWrapper} ${cPosition} ${zIndex} ${$$props.class || ""}`; |
|
classesSnackbar = `${cSnackbar} ${cAlign} ${padding}`; |
|
classesToast = `${cToast} ${width} ${color} ${padding} ${spacing} ${rounded} ${shadow}`; |
|
filteredToasts = Array.from($toastStore).slice(0, max); |
|
$$unsubscribe_toastStore(); |
|
$$unsubscribe_prefersReducedMotionStore(); |
|
return `${$toastStore.length ? ` <div class="${"snackbar-wrapper " + escape(classesWrapper, true)}" data-testid="snackbar-wrapper"> <div class="${"snackbar " + escape(classesSnackbar, true)}">${each(filteredToasts, (t, i) => { |
|
return `<div${add_attribute("role", t.hideDismiss ? "alert" : "alertdialog", 0)} aria-live="polite"> <div class="${"toast " + escape(classesToast, true) + " " + escape(t.background ?? background, true) + " " + escape(t.classes ?? "", true)}" data-testid="toast"><div class="text-base"><!-- HTML_TAG_START -->${t.message}<!-- HTML_TAG_END --></div> ${t.action || !t.hideDismiss ? `<div class="${"toast-actions " + escape(cToastActions, true)}">${t.action ? `<button${add_attribute("class", buttonAction, 0)}><!-- HTML_TAG_START -->${t.action.label}<!-- HTML_TAG_END --></button>` : ``} ${!t.hideDismiss ? `<button${add_attribute("class", buttonDismiss, 0)} aria-label="Dismiss toast">${escape(buttonDismissLabel)}</button>` : ``} </div>` : ``}</div> </div>`; |
|
})}</div></div>` : ``}`; |
|
}); |
|
const gatheringKey = {}; |
|
const GatheringRound = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
setContext(gatheringKey, true); |
|
return `${slots.default ? slots.default({}) : ``}`; |
|
}); |
|
const getDimensionName = (horizontal) => horizontal ? "height" : "width"; |
|
const css$8 = { |
|
code: 'div.splitpanes--horizontal.splitpanes--dragging{cursor:row-resize}div.splitpanes--vertical.splitpanes--dragging{cursor:col-resize}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width 0.2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height 0.2s ease-out}.splitpanes--vertical>.splitpanes__pane{transition:width 0.2s ease-out}.splitpanes--horizontal>.splitpanes__pane{transition:height 0.2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none;pointer-events:none}.splitpanes--freeze .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:rgba(0, 0, 0, 0.15);transition:background-color 0.3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:rgba(0, 0, 0, 0.25)}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;cursor:col-resize}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;cursor:row-resize}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{transform:translateX(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}', |
|
map: null |
|
}; |
|
const KEY = {}; |
|
const Splitpanes = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let $veryFirstPaneKey, $$unsubscribe_veryFirstPaneKey; |
|
let $showFirstSplitter, $$unsubscribe_showFirstSplitter; |
|
let $isHorizontal, $$unsubscribe_isHorizontal; |
|
let { id = void 0 } = $$props; |
|
let { horizontal = false } = $$props; |
|
let { pushOtherPanes = true } = $$props; |
|
let { dblClickSplitter = true } = $$props; |
|
let { rtl = "auto" } = $$props; |
|
let { firstSplitter = false } = $$props; |
|
let { style = null } = $$props; |
|
let { theme = "default-theme" } = $$props; |
|
let { class: clazz = "" } = $$props; |
|
createEventDispatcher(); |
|
let container; |
|
new Array(); |
|
let isHorizontal = writable(horizontal); |
|
$$unsubscribe_isHorizontal = subscribe(isHorizontal, (value) => $isHorizontal = value); |
|
const showFirstSplitter = writable(firstSplitter); |
|
$$unsubscribe_showFirstSplitter = subscribe(showFirstSplitter, (value) => $showFirstSplitter = value); |
|
const veryFirstPaneKey = writable(void 0); |
|
$$unsubscribe_veryFirstPaneKey = subscribe(veryFirstPaneKey, (value) => $veryFirstPaneKey = value); |
|
let ssrPaneDefinedSizeSum = 0; |
|
let ssrPaneUndefinedSizeCount = 0; |
|
function ssrRegisterPaneSize(size) { |
|
if (size == null) { |
|
++ssrPaneUndefinedSizeCount; |
|
} else { |
|
ssrPaneDefinedSizeSum += size; |
|
} |
|
} |
|
const onPaneInit = (key) => { |
|
if ($veryFirstPaneKey === void 0) { |
|
set_store_value(veryFirstPaneKey, $veryFirstPaneKey = key, $veryFirstPaneKey); |
|
} |
|
return { |
|
undefinedPaneInitSize: (100 - ssrPaneDefinedSizeSum) / ssrPaneUndefinedSizeCount |
|
}; |
|
}; |
|
setContext(KEY, { |
|
showFirstSplitter, |
|
veryFirstPaneKey, |
|
isHorizontal, |
|
ssrRegisterPaneSize: ssrRegisterPaneSize, |
|
onPaneInit, |
|
clientOnly: void 0 |
|
}); |
|
if ($$props.id === void 0 && $$bindings.id && id !== void 0) |
|
$$bindings.id(id); |
|
if ($$props.horizontal === void 0 && $$bindings.horizontal && horizontal !== void 0) |
|
$$bindings.horizontal(horizontal); |
|
if ($$props.pushOtherPanes === void 0 && $$bindings.pushOtherPanes && pushOtherPanes !== void 0) |
|
$$bindings.pushOtherPanes(pushOtherPanes); |
|
if ($$props.dblClickSplitter === void 0 && $$bindings.dblClickSplitter && dblClickSplitter !== void 0) |
|
$$bindings.dblClickSplitter(dblClickSplitter); |
|
if ($$props.rtl === void 0 && $$bindings.rtl && rtl !== void 0) |
|
$$bindings.rtl(rtl); |
|
if ($$props.firstSplitter === void 0 && $$bindings.firstSplitter && firstSplitter !== void 0) |
|
$$bindings.firstSplitter(firstSplitter); |
|
if ($$props.style === void 0 && $$bindings.style && style !== void 0) |
|
$$bindings.style(style); |
|
if ($$props.theme === void 0 && $$bindings.theme && theme !== void 0) |
|
$$bindings.theme(theme); |
|
if ($$props.class === void 0 && $$bindings.class && clazz !== void 0) |
|
$$bindings.class(clazz); |
|
$$result.css.add(css$8); |
|
set_store_value(isHorizontal, $isHorizontal = horizontal, $isHorizontal); |
|
set_store_value(showFirstSplitter, $showFirstSplitter = firstSplitter, $showFirstSplitter); |
|
$$unsubscribe_veryFirstPaneKey(); |
|
$$unsubscribe_showFirstSplitter(); |
|
$$unsubscribe_isHorizontal(); |
|
return `<div${add_attribute("id", id, 0)} class="${[ |
|
escape(`splitpanes ${theme || ""} ${clazz || ""}`, true), |
|
(horizontal ? "splitpanes--horizontal" : "") + " " + (!horizontal ? "splitpanes--vertical" : "") + " " + ("") + " splitpanes--freeze" |
|
].join(" ").trim()}"${add_attribute("style", style, 0)}${add_attribute("this", container, 0)}>${`${validate_component(GatheringRound, "GatheringRound").$$render($$result, {}, {}, { |
|
default: () => { |
|
return `${slots.default ? slots.default({}) : ``}`; |
|
} |
|
})}` } ${slots.default ? slots.default({}) : ``} </div>`; |
|
}); |
|
const Pane = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let dimension; |
|
let style; |
|
let $isHorizontal, $$unsubscribe_isHorizontal; |
|
let $veryFirstPaneKey, $$unsubscribe_veryFirstPaneKey; |
|
let $showFirstSplitter, $$unsubscribe_showFirstSplitter; |
|
const { ssrRegisterPaneSize, onPaneInit, clientOnly: clientOnlyContext, isHorizontal, showFirstSplitter, veryFirstPaneKey } = getContext(KEY); |
|
$$unsubscribe_isHorizontal = subscribe(isHorizontal, (value) => $isHorizontal = value); |
|
$$unsubscribe_showFirstSplitter = subscribe(showFirstSplitter, (value) => $showFirstSplitter = value); |
|
$$unsubscribe_veryFirstPaneKey = subscribe(veryFirstPaneKey, (value) => $veryFirstPaneKey = value); |
|
let { size = null } = $$props; |
|
let { minSize = 0 } = $$props; |
|
let { maxSize = 100 } = $$props; |
|
let { snapSize = 0 } = $$props; |
|
let { class: clazz = "" } = $$props; |
|
const key = {}; |
|
const gathering = hasContext(gatheringKey); |
|
const { undefinedPaneInitSize } = !gathering ? onPaneInit(key) : {}; |
|
let element; |
|
let sz = size ?? undefinedPaneInitSize; |
|
if (gathering) { |
|
ssrRegisterPaneSize(size); |
|
} |
|
if ($$props.size === void 0 && $$bindings.size && size !== void 0) |
|
$$bindings.size(size); |
|
if ($$props.minSize === void 0 && $$bindings.minSize && minSize !== void 0) |
|
$$bindings.minSize(minSize); |
|
if ($$props.maxSize === void 0 && $$bindings.maxSize && maxSize !== void 0) |
|
$$bindings.maxSize(maxSize); |
|
if ($$props.snapSize === void 0 && $$bindings.snapSize && snapSize !== void 0) |
|
$$bindings.snapSize(snapSize); |
|
if ($$props.class === void 0 && $$bindings.class && clazz !== void 0) |
|
$$bindings.class(clazz); |
|
dimension = getDimensionName($isHorizontal); |
|
style = `${dimension}: ${sz}%;`; |
|
$$unsubscribe_isHorizontal(); |
|
$$unsubscribe_veryFirstPaneKey(); |
|
$$unsubscribe_showFirstSplitter(); |
|
return `${!gathering ? ` ${$veryFirstPaneKey !== key || $showFirstSplitter ? ` <div class="${"splitpanes__splitter " + escape("", true)}"></div>` : ``} <div${add_attribute("class", `splitpanes__pane ${clazz || ""}`, 0)}${add_attribute("style", style, 0)}${add_attribute("this", element, 0)}>${slots.default ? slots.default({}) : ``}</div>` : ``}`; |
|
}); |
|
const LoadingSpinner = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { size = 20 } = $$props; |
|
if ($$props.size === void 0 && $$bindings.size && size !== void 0) |
|
$$bindings.size(size); |
|
return `<svg version="1.1" id="L4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0" xml:space="preserve"><circle fill="#1976d2" stroke="none" cx="6" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.1"></animate></circle><circle fill="#1976d2" stroke="none" cx="26" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.2"></animate></circle><circle fill="#1976d2" stroke="none" cx="46" cy="50" r="6"><animate attributeName="opacity" dur="1s" values="0;1;0" repeatCount="indefinite" begin="0.3"></animate></circle></svg>`; |
|
}); |
|
const css$7 = { |
|
code: ".llm-health-status.svelte-a20mi8{color:slategray;font-size:12px;display:inline-flex;align-items:center;min-width:200px\r\n }.dot.svelte-a20mi8{width:20px;height:20px}", |
|
map: null |
|
}; |
|
const LlmHealthStatus = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { status = "unknown" } = $$props; |
|
let color = ""; |
|
let shadowColor = ""; |
|
let text = ""; |
|
switch (status) { |
|
case "ok": |
|
color = "#4CAF50"; |
|
shadowColor = "rgba(0, 128, 0, 0.7)"; |
|
text = "Сервис LLM работает"; |
|
break; |
|
case "error": |
|
text = "Сервис LLM не работает"; |
|
break; |
|
case "loading model": |
|
color = "yellow"; |
|
shadowColor = "rgba(255, 255, 0, 0.7)"; |
|
text = "Сервис LLM запускается..."; |
|
break; |
|
case "unavailable": |
|
color = "#af4f4c"; |
|
shadowColor = "#af4f4c"; |
|
text = "Сервис LLM не запущен"; |
|
break; |
|
case "unknown": |
|
color = "#af4f4c"; |
|
shadowColor = "#af4f4c"; |
|
text = "Сервис LLM недоступен"; |
|
break; |
|
} |
|
if ($$props.status === void 0 && $$bindings.status && status !== void 0) |
|
$$bindings.status(status); |
|
$$result.css.add(css$7); |
|
return `<div class="llm-health-status svelte-a20mi8"><svg class="dot svelte-a20mi8" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="10" cy="10" r="5"${add_attribute("fill", color, 0)} style="${"filter: drop-shadow(0 0 1px " + escape(shadowColor, true) + ")"}"></circle></svg> ${escape(text)} </div>`; |
|
}); |
|
const css$6 = { |
|
code: ".llm-health-status.svelte-1wcf73j{color:slategray;font-size:12px;display:inline-flex;align-items:center}.dot.svelte-1wcf73j{width:20px;height:20px}", |
|
map: null |
|
}; |
|
const SearchApiHealthStatus = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { status = "unavailable" } = $$props; |
|
let color = ""; |
|
let shadowColor = ""; |
|
let text = ""; |
|
switch (status) { |
|
case "ok": |
|
color = "#4CAF50"; |
|
shadowColor = "rgba(0, 128, 0, 0.7)"; |
|
text = "Поиск работает"; |
|
break; |
|
case "unavailable": |
|
color = "#af4f4c"; |
|
shadowColor = "#af4f4c"; |
|
text = "Поиск не запущен"; |
|
break; |
|
case "unknown": |
|
color = "#af4f4c"; |
|
shadowColor = "#af4f4c"; |
|
text = "Поиск недоступен"; |
|
break; |
|
} |
|
if ($$props.status === void 0 && $$bindings.status && status !== void 0) |
|
$$bindings.status(status); |
|
$$result.css.add(css$6); |
|
return `<div class="llm-health-status svelte-1wcf73j"><svg class="dot svelte-1wcf73j" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="10" cy="10" r="5"${add_attribute("fill", color, 0)} style="${"filter: drop-shadow(0 0 1px " + escape(shadowColor, true) + ")"}"></circle></svg> ${escape(text)} </div>`; |
|
}); |
|
class SearchResultsSorter { |
|
static findDateInText(text) { |
|
const dateStringRegex = /\b\d{1,2}\.\d{1,2}\.\d{4}\b/g; |
|
const matches = text.match(dateStringRegex); |
|
if (matches && matches.length > 0) { |
|
const dateString = matches[0]; |
|
const [day, month, year] = dateString.split(".").map(Number); |
|
return new Date(year, month - 1, day); |
|
} |
|
return null; |
|
} |
|
static sortByRelevanceAndDate(data) { |
|
return data.sort((a, b) => { |
|
const relevanceComparison = b.relevance - a.relevance; |
|
if (relevanceComparison !== 0) { |
|
return relevanceComparison; |
|
} |
|
const dateA = SearchResultsSorter.findDateInText(a.title); |
|
const dateB = SearchResultsSorter.findDateInText(b.title); |
|
if (dateA && dateB) { |
|
return dateB.getTime() - dateA.getTime(); |
|
} else if (dateA) { |
|
return -1; |
|
} else if (dateB) { |
|
return 1; |
|
} else { |
|
return 0; |
|
} |
|
}); |
|
} |
|
static sortByDate(dataArray) { |
|
const entriesWithDates = dataArray.filter((item) => SearchResultsSorter.findDateInText(item.title)); |
|
const entriesWithoutDates = dataArray.filter((item) => !SearchResultsSorter.findDateInText(item.title)); |
|
const sortedEntriesWithDates = entriesWithDates.sort((a, b) => { |
|
const dateA = SearchResultsSorter.findDateInText(a.title); |
|
const dateB = SearchResultsSorter.findDateInText(b.title); |
|
if (dateA && dateB) { |
|
return dateB.getTime() - dateA.getTime(); |
|
} else if (dateA) { |
|
return -1; |
|
} else if (dateB) { |
|
return 1; |
|
} else { |
|
return 0; |
|
} |
|
}); |
|
const resultArray = []; |
|
let indexWithoutDates = 0; |
|
for (const entry of dataArray) { |
|
if (SearchResultsSorter.findDateInText(entry.title)) { |
|
let val = sortedEntriesWithDates.shift(); |
|
if (val) |
|
resultArray.push(val); |
|
} else { |
|
resultArray.push(entriesWithoutDates[indexWithoutDates]); |
|
indexWithoutDates++; |
|
} |
|
} |
|
return resultArray; |
|
} |
|
static sortByRelevance(data) { |
|
return data.sort((a, b) => { |
|
if (a.relevance && b.relevance) { |
|
return b.relevance - a.relevance; |
|
} else if (a.relevance) { |
|
return -1; |
|
} else if (b.relevance) { |
|
return 1; |
|
} else { |
|
return 0; |
|
} |
|
}); |
|
} |
|
static identifyDocumentType(data) { |
|
const regexps = [ |
|
{ regexp: /(ФАС |АС |КС |ВС |[Сс]удебн|[Сс]уд)|(\(Судебный документ\))/, docType: "Решение суда" }, |
|
{ regexp: /[Пп]исьмо [Мм]инфина/, docType: "Письмо Минфина" }, |
|
{ regexp: /[Пп]исьмо (ФНС|фнс)/, docType: "Письмо ФНС" }, |
|
{ regexp: /(НКРФ)|(НК РФ)/, docType: "Налоговый кодекс" }, |
|
{ regexp: /(ГКРФ)|(ГК РФ)/, docType: "Гражданский кодекс" }, |
|
{ regexp: /(ТКРФ)|(ТК РФ)/, docType: "Трудовой кодекс" }, |
|
{ regexp: /Приказ ФНС РФ/, docType: "Приказ ФНС РФ" }, |
|
{ regexp: /Постановление Правительства РФ/, docType: "Постановление Правительства РФ" }, |
|
{ regexp: /Решение Коллегии Евразийской экономической комиссии/, docType: "Решение Коллегии ЕЭК" }, |
|
{ regexp: /Федеральный закон/, docType: "Федеральные законы" }, |
|
{ regexp: /\(Внутренний документ\)/, docType: "Внутренние документы" } |
|
]; |
|
return data.map((result) => { |
|
for (const { regexp, docType } of regexps) { |
|
if (regexp.test(result.title)) { |
|
result.docType = docType; |
|
return result; |
|
} |
|
} |
|
result.docType = "Другие документы"; |
|
return result; |
|
}); |
|
} |
|
static mergeResultsByTitle(data) { |
|
const regex = /(ст\.\d+)\s(НКРФ|НК РФ|ГКРФ|ГК РФ|ТКРФ|ТК РФ)$/; |
|
const grouped = {}; |
|
const mergedResults = []; |
|
const extractArticleAndCode = (title) => { |
|
const match = title.match(regex); |
|
return match ? match[0] : null; |
|
}; |
|
data.forEach((item) => { |
|
const key = extractArticleAndCode(item.title); |
|
if (key) { |
|
if (grouped[key]) { |
|
grouped[key].relevance = Math.max( |
|
grouped[key].relevance, |
|
item.relevance |
|
); |
|
const existingTitle = grouped[key].title.match(/п[\w\.]+/g) || []; |
|
const newTitle = item.title.match(/п[\w\.]+/g) || []; |
|
const combinedTitle = [... new Set([...existingTitle, ...newTitle])].join(", "); |
|
grouped[key].title = `${combinedTitle} ст.${key.split(" ")[0].split(".")[1]} ${key.split(" ")[1]}`; |
|
grouped[key].text += ` |
|
${item.title} |
|
${item.text}`; |
|
} else { |
|
grouped[key] = { ...item }; |
|
} |
|
} else { |
|
mergedResults.push(item); |
|
} |
|
}); |
|
Object.keys(grouped).forEach((key) => { |
|
mergedResults.push(grouped[key]); |
|
}); |
|
return mergedResults; |
|
} |
|
} |
|
const css$5 = { |
|
code: ".search-result.svelte-1srbk6k{margin-bottom:20px}.title.svelte-1srbk6k{font-weight:bold}.annotation.svelte-1srbk6k{overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal}a.svelte-1srbk6k{cursor:pointer}.full-text.svelte-1srbk6k{display:block;white-space:normal}.title.svelte-1srbk6k{color:#1a0dab}", |
|
map: null |
|
}; |
|
const SearchResultsItem = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { showFullText = Array(10).fill(false) } = $$props; |
|
let { useSearchResult } = $$props; |
|
let { index } = $$props; |
|
let { title } = $$props; |
|
let { teaser } = $$props; |
|
let { text } = $$props; |
|
let { enableDocumentDb = false } = $$props; |
|
let { documentDbUrl = "" } = $$props; |
|
let { enableSearchResultSelection = false } = $$props; |
|
if ($$props.showFullText === void 0 && $$bindings.showFullText && showFullText !== void 0) |
|
$$bindings.showFullText(showFullText); |
|
if ($$props.useSearchResult === void 0 && $$bindings.useSearchResult && useSearchResult !== void 0) |
|
$$bindings.useSearchResult(useSearchResult); |
|
if ($$props.index === void 0 && $$bindings.index && index !== void 0) |
|
$$bindings.index(index); |
|
if ($$props.title === void 0 && $$bindings.title && title !== void 0) |
|
$$bindings.title(title); |
|
if ($$props.teaser === void 0 && $$bindings.teaser && teaser !== void 0) |
|
$$bindings.teaser(teaser); |
|
if ($$props.text === void 0 && $$bindings.text && text !== void 0) |
|
$$bindings.text(text); |
|
if ($$props.enableDocumentDb === void 0 && $$bindings.enableDocumentDb && enableDocumentDb !== void 0) |
|
$$bindings.enableDocumentDb(enableDocumentDb); |
|
if ($$props.documentDbUrl === void 0 && $$bindings.documentDbUrl && documentDbUrl !== void 0) |
|
$$bindings.documentDbUrl(documentDbUrl); |
|
if ($$props.enableSearchResultSelection === void 0 && $$bindings.enableSearchResultSelection && enableSearchResultSelection !== void 0) |
|
$$bindings.enableSearchResultSelection(enableSearchResultSelection); |
|
$$result.css.add(css$5); |
|
return `<div class="search-result svelte-1srbk6k"><div class="title svelte-1srbk6k"><label style="cursor:pointer">${enableSearchResultSelection ? `<input type="checkbox"${add_attribute("checked", useSearchResult[title], 1)}>` : ``} ${escape(title)}</label></div> ${showFullText[index] ? `<div class="annotation full-text svelte-1srbk6k">${each(text.split("\n"), (line) => { |
|
return `<p>${escape(line)}</p>`; |
|
})}</div>` : `<div class="annotation svelte-1srbk6k">${escape(teaser)}</div>`} ${enableDocumentDb && documentDbUrl ? `<a href="${escape(documentDbUrl, true) + "s/" + escape(encodeURIComponent(title), true)}" target="_blank" style="font-weight: 500" class="svelte-1srbk6k">Открыть документ</a>` : ``} ${text.length > 100 ? `${showFullText[index] ? `<a class="svelte-1srbk6k" data-svelte-h="svelte-18vtpy5">свернуть</a>` : `<a class="svelte-1srbk6k" data-svelte-h="svelte-lqw9hz">развернуть</a>`}` : ``} </div>`; |
|
}); |
|
const css$4 = { |
|
code: ".search-results.svelte-1ptibtq.svelte-1ptibtq{flex:1;overflow-y:auto;padding:1rem}.settings-bar.svelte-1ptibtq.svelte-1ptibtq{margin-bottom:10px}.settings-bar.svelte-1ptibtq label.svelte-1ptibtq{margin-right:10px}", |
|
map: null |
|
}; |
|
const SearchResults = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { enableDocumentDb = false } = $$props; |
|
let { documentDbUrl = "" } = $$props; |
|
let { showFullText = Array(10).fill(false) } = $$props; |
|
let { useSearchResult } = $$props; |
|
let groupByChecked = false; |
|
let sortSearchResultsBy = "rel"; |
|
let { searchResults = [] } = $$props; |
|
let groupedSearchResults; |
|
let { enableSearchResultSelection = false } = $$props; |
|
const groupByType = (searchResults2) => { |
|
return searchResults2.reduce( |
|
(result, item) => { |
|
const docType = item.docType || "Другие документы"; |
|
if (!result[docType]) { |
|
result[docType] = []; |
|
} |
|
result[docType].push(item); |
|
return result; |
|
}, |
|
{} |
|
); |
|
}; |
|
if ($$props.enableDocumentDb === void 0 && $$bindings.enableDocumentDb && enableDocumentDb !== void 0) |
|
$$bindings.enableDocumentDb(enableDocumentDb); |
|
if ($$props.documentDbUrl === void 0 && $$bindings.documentDbUrl && documentDbUrl !== void 0) |
|
$$bindings.documentDbUrl(documentDbUrl); |
|
if ($$props.showFullText === void 0 && $$bindings.showFullText && showFullText !== void 0) |
|
$$bindings.showFullText(showFullText); |
|
if ($$props.useSearchResult === void 0 && $$bindings.useSearchResult && useSearchResult !== void 0) |
|
$$bindings.useSearchResult(useSearchResult); |
|
if ($$props.searchResults === void 0 && $$bindings.searchResults && searchResults !== void 0) |
|
$$bindings.searchResults(searchResults); |
|
if ($$props.enableSearchResultSelection === void 0 && $$bindings.enableSearchResultSelection && enableSearchResultSelection !== void 0) |
|
$$bindings.enableSearchResultSelection(enableSearchResultSelection); |
|
$$result.css.add(css$4); |
|
let $$settled; |
|
let $$rendered; |
|
let previous_head = $$result.head; |
|
do { |
|
$$settled = true; |
|
$$result.head = previous_head; |
|
{ |
|
{ |
|
if (groupByChecked) { |
|
groupedSearchResults = groupByType(searchResults); |
|
} |
|
if (sortSearchResultsBy == "date") { |
|
searchResults = SearchResultsSorter.sortByDate(searchResults); |
|
} else if (sortSearchResultsBy == "rel") { |
|
searchResults = SearchResultsSorter.sortByRelevance(searchResults); |
|
} |
|
} |
|
} |
|
{ |
|
if (useSearchResult === void 0) { |
|
useSearchResult = {}; |
|
} |
|
} |
|
$$rendered = `<div class="search-results svelte-1ptibtq">${searchResults && searchResults.length > 0 ? `<div class="settings-bar svelte-1ptibtq"><div class="card w-full flex p-2 space-y-2" style="align-items: center; flex-wrap: wrap;"><label style="display: inline-block;flex-wrap: wrap;" class="svelte-1ptibtq" data-svelte-h="svelte-12wnwfn">Сортировать по:</label> ${validate_component(RadioGroup, "RadioGroup").$$render($$result, { background: "", border: "" }, {}, { |
|
default: () => { |
|
return `${validate_component(RadioItem, "RadioItem").$$render( |
|
$$result, |
|
{ |
|
name: "sortBy", |
|
value: "rel", |
|
group: sortSearchResultsBy |
|
}, |
|
{ |
|
group: ($$value) => { |
|
sortSearchResultsBy = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `релевантности`; |
|
} |
|
} |
|
)} ${validate_component(RadioItem, "RadioItem").$$render( |
|
$$result, |
|
{ |
|
name: "sortBy", |
|
value: "date", |
|
group: sortSearchResultsBy |
|
}, |
|
{ |
|
group: ($$value) => { |
|
sortSearchResultsBy = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `дате`; |
|
} |
|
} |
|
)}`; |
|
} |
|
})} ${validate_component(SlideToggle, "SlideToggle").$$render( |
|
$$result, |
|
{ |
|
name: "groupByChecked", |
|
size: "sm", |
|
label: "Группировать по типу", |
|
checked: groupByChecked |
|
}, |
|
{ |
|
checked: ($$value) => { |
|
groupByChecked = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `Группировать по типу`; |
|
} |
|
} |
|
)}</div></div>` : ``} ${groupByChecked && groupedSearchResults ? `${validate_component(Accordion, "Accordion").$$render($$result, {}, {}, { |
|
default: () => { |
|
return `${each(Object.entries(groupedSearchResults), ([docType, results]) => { |
|
return `${validate_component(AccordionItem, "AccordionItem").$$render($$result, {}, {}, { |
|
content: () => { |
|
return `${each(results, ({ title, text, teaser }, index) => { |
|
return `${validate_component(SearchResultsItem, "SearchResultsItem").$$render( |
|
$$result, |
|
{ |
|
title, |
|
text, |
|
teaser, |
|
index, |
|
enableSearchResultSelection, |
|
useSearchResult, |
|
showFullText |
|
}, |
|
{}, |
|
{} |
|
)}`; |
|
})} `; |
|
}, |
|
summary: () => { |
|
return `${escape(docType)}`; |
|
}, |
|
lead: () => { |
|
return `${enableSearchResultSelection ? `<input type="checkbox"${add_attribute("data-doctype", docType, 0)}>` : ``} `; |
|
} |
|
})}`; |
|
})}`; |
|
} |
|
})}` : `${each(searchResults, ({ title, text, teaser }, index) => { |
|
return `${validate_component(SearchResultsItem, "SearchResultsItem").$$render( |
|
$$result, |
|
{ |
|
title, |
|
text, |
|
teaser, |
|
index, |
|
enableSearchResultSelection, |
|
useSearchResult, |
|
showFullText, |
|
enableDocumentDb, |
|
documentDbUrl |
|
}, |
|
{}, |
|
{} |
|
)}`; |
|
})}`}</div> ${``}`; |
|
} while (!$$settled); |
|
return $$rendered; |
|
}); |
|
const css$3 = { |
|
code: ".consultation-item.svelte-13z9n8v{margin-bottom:20px}.title.svelte-13z9n8v{font-weight:bold}.annotation.svelte-13z9n8v{overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal}a.svelte-13z9n8v{cursor:pointer;color:#1a0dab}.full-text.svelte-13z9n8v{display:block;white-space:normal}p.svelte-13z9n8v{margin-top:10px;margin-bottom:10px}", |
|
map: null |
|
}; |
|
const ConsultationItem = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { showFullText = Array(10).fill(false) } = $$props; |
|
let { index } = $$props; |
|
let { title } = $$props; |
|
let { text } = $$props; |
|
if ($$props.showFullText === void 0 && $$bindings.showFullText && showFullText !== void 0) |
|
$$bindings.showFullText(showFullText); |
|
if ($$props.index === void 0 && $$bindings.index && index !== void 0) |
|
$$bindings.index(index); |
|
if ($$props.title === void 0 && $$bindings.title && title !== void 0) |
|
$$bindings.title(title); |
|
if ($$props.text === void 0 && $$bindings.text && text !== void 0) |
|
$$bindings.text(text); |
|
$$result.css.add(css$3); |
|
return `<div class="consultation-item svelte-13z9n8v"><div class="title svelte-13z9n8v"><a class="svelte-13z9n8v">${escape(title)}</a></div> ${showFullText[index] ? `<div class="annotation full-text svelte-13z9n8v">${each(text.split("\n"), (line) => { |
|
return `<p class="svelte-13z9n8v">${escape(line)}</p>`; |
|
})}</div>` : ``} </div>`; |
|
}); |
|
const css$2 = { |
|
code: "h2.svelte-s2jiei{margin-bottom:10px;font-size:large}.relevant-consultations.svelte-s2jiei{flex:1;overflow-y:auto;padding:1rem}", |
|
map: null |
|
}; |
|
const RelevantConsultations = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { showFullText = Array(10).fill(false) } = $$props; |
|
let { consultations = [] } = $$props; |
|
if ($$props.showFullText === void 0 && $$bindings.showFullText && showFullText !== void 0) |
|
$$bindings.showFullText(showFullText); |
|
if ($$props.consultations === void 0 && $$bindings.consultations && consultations !== void 0) |
|
$$bindings.consultations(consultations); |
|
$$result.css.add(css$2); |
|
return `<div class="relevant-consultations svelte-s2jiei"><h2 class="w-full p-5 space-y-2 svelte-s2jiei" style="border-bottom:2px solid #ccc;border-top:2px solid #ccc" data-svelte-h="svelte-1ttwfrn">Релевантные консультации</h2> ${each(consultations, ({ title, text }, index) => { |
|
return `${validate_component(ConsultationItem, "ConsultationItem").$$render($$result, { title, text, index, showFullText }, {}, {})}`; |
|
})}</div> ${``}`; |
|
}); |
|
const HISTORY_KEY_PREFIX = "clarificationHistory_"; |
|
const HISTORY_INDEX_KEY = "clarificationHistoryIndex"; |
|
const HISTORY_ITEMS_LIMIT = 2; |
|
class ClarificationHistoryService { |
|
|
|
static loadHistory() { |
|
const history = []; |
|
const index = this.getHistoryIndex(); |
|
for (let i = 0; i < index; i++) { |
|
const item = localStorage.getItem(`${HISTORY_KEY_PREFIX}${i}`); |
|
if (item) { |
|
history.push(JSON.parse(item)); |
|
} |
|
} |
|
return history; |
|
} |
|
|
|
static addHistoryItem(item) { |
|
const index = this.getHistoryIndex(); |
|
localStorage.setItem(`${HISTORY_KEY_PREFIX}${index}`, JSON.stringify(item)); |
|
this.setHistoryIndex(index + 1); |
|
this.manageHistoryLimit(); |
|
} |
|
|
|
static updateHistoryItem(index, item) { |
|
localStorage.setItem(`${HISTORY_KEY_PREFIX}${index}`, JSON.stringify(item)); |
|
} |
|
|
|
static getHistoryItem(index) { |
|
const item = localStorage.getItem(`${HISTORY_KEY_PREFIX}${index}`); |
|
return item ? JSON.parse(item) : null; |
|
} |
|
|
|
static getHistoryLength() { |
|
return this.getHistoryIndex(); |
|
} |
|
|
|
static clearHistory() { |
|
const index = this.getHistoryIndex(); |
|
for (let i = 0; i < index; i++) { |
|
localStorage.removeItem(`${HISTORY_KEY_PREFIX}${i}`); |
|
} |
|
localStorage.removeItem(HISTORY_INDEX_KEY); |
|
} |
|
|
|
static manageHistoryLimit() { |
|
const index = this.getHistoryIndex(); |
|
if (index > HISTORY_ITEMS_LIMIT) { |
|
const excessCount = index - HISTORY_ITEMS_LIMIT; |
|
for (let i = 0; i < excessCount; i++) { |
|
localStorage.removeItem(`${HISTORY_KEY_PREFIX}${i}`); |
|
} |
|
this.shiftHistoryKeys(excessCount); |
|
this.setHistoryIndex(HISTORY_ITEMS_LIMIT); |
|
} |
|
} |
|
|
|
static shiftHistoryKeys(shiftAmount) { |
|
const index = this.getHistoryIndex(); |
|
for (let i = shiftAmount; i < index; i++) { |
|
const item = localStorage.getItem(`${HISTORY_KEY_PREFIX}${i}`); |
|
if (item) { |
|
localStorage.setItem(`${HISTORY_KEY_PREFIX}${i - shiftAmount}`, item); |
|
} |
|
localStorage.removeItem(`${HISTORY_KEY_PREFIX}${i}`); |
|
} |
|
} |
|
|
|
static getHistoryIndex() { |
|
const index = localStorage.getItem(HISTORY_INDEX_KEY); |
|
return index ? parseInt(index, 10) : 0; |
|
} |
|
|
|
static setHistoryIndex(index) { |
|
localStorage.setItem(HISTORY_INDEX_KEY, index.toString()); |
|
} |
|
} |
|
const css$1 = { |
|
code: "textarea.svelte-wjelcf{border:1px solid #ccc;border-radius:4px;width:100%;font-size:14px;margin-bottom:10px;box-sizing:border-box;padding:1rem}button.svelte-wjelcf{margin:5px}", |
|
map: null |
|
}; |
|
const UserClarification = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { userRequest = "" } = $$props; |
|
let { searchClarification = "" } = $$props; |
|
let { llmClarification = "" } = $$props; |
|
let { searchResults } = $$props; |
|
let { relevantConsultations } = $$props; |
|
let { llmResponse = "" } = $$props; |
|
let { historyIsNotEmpty = false } = $$props; |
|
let currentHistoryIndex = 0; |
|
let history = []; |
|
let historyLength = 0; |
|
function loadCurrentHistoryItem() { |
|
const item = ClarificationHistoryService.getHistoryItem(currentHistoryIndex); |
|
if (item) { |
|
searchClarification = item.searchClarification; |
|
llmClarification = item.llmClarification; |
|
searchResults = item.searchResults; |
|
relevantConsultations = item.relevantConsultations; |
|
llmResponse = item.llmResponse; |
|
userRequest = item.userRequest; |
|
} |
|
return item; |
|
} |
|
function getCurrentState() { |
|
return ClarificationHistoryService.getHistoryItem(currentHistoryIndex); |
|
} |
|
function addState(request) { |
|
console.log("addState called"); |
|
const newItem = { |
|
userRequest: request, |
|
searchClarification, |
|
llmClarification, |
|
searchResults: [], |
|
llmResponse: "", |
|
relevantConsultations: [], |
|
transactionMaps: [] |
|
}; |
|
historyLength = ClarificationHistoryService.getHistoryLength(); |
|
ClarificationHistoryService.addHistoryItem(newItem); |
|
currentHistoryIndex = historyLength - 1; |
|
} |
|
function updateCurrentState(request, searchResults2, llmResponse2, relevantConsultations2, transactionMaps) { |
|
console.log("updateCurrentState called"); |
|
const item = ClarificationHistoryService.getHistoryItem(currentHistoryIndex); |
|
if (item) { |
|
item.userRequest = request ?? item.userRequest; |
|
item.searchClarification = searchClarification ?? item.searchClarification; |
|
item.llmClarification = llmClarification ?? item.llmClarification; |
|
item.searchResults = searchResults2 ?? item.searchResults; |
|
item.llmResponse = llmResponse2 ?? item.llmResponse; |
|
item.relevantConsultations = relevantConsultations2 ?? item.relevantConsultations; |
|
item.transactionMaps = transactionMaps ?? item.transactionMaps; |
|
console.log(item); |
|
ClarificationHistoryService.updateHistoryItem(currentHistoryIndex, item); |
|
} |
|
} |
|
function prevHistory() { |
|
if (currentHistoryIndex > 0) { |
|
currentHistoryIndex -= 1; |
|
loadCurrentHistoryItem(); |
|
} |
|
} |
|
function nextHistory() { |
|
if (currentHistoryIndex < history.length - 1) { |
|
currentHistoryIndex += 1; |
|
loadCurrentHistoryItem(); |
|
} |
|
} |
|
function clear() { |
|
llmClarification = ""; |
|
searchClarification = ""; |
|
} |
|
if ($$props.userRequest === void 0 && $$bindings.userRequest && userRequest !== void 0) |
|
$$bindings.userRequest(userRequest); |
|
if ($$props.searchClarification === void 0 && $$bindings.searchClarification && searchClarification !== void 0) |
|
$$bindings.searchClarification(searchClarification); |
|
if ($$props.llmClarification === void 0 && $$bindings.llmClarification && llmClarification !== void 0) |
|
$$bindings.llmClarification(llmClarification); |
|
if ($$props.searchResults === void 0 && $$bindings.searchResults && searchResults !== void 0) |
|
$$bindings.searchResults(searchResults); |
|
if ($$props.relevantConsultations === void 0 && $$bindings.relevantConsultations && relevantConsultations !== void 0) |
|
$$bindings.relevantConsultations(relevantConsultations); |
|
if ($$props.llmResponse === void 0 && $$bindings.llmResponse && llmResponse !== void 0) |
|
$$bindings.llmResponse(llmResponse); |
|
if ($$props.historyIsNotEmpty === void 0 && $$bindings.historyIsNotEmpty && historyIsNotEmpty !== void 0) |
|
$$bindings.historyIsNotEmpty(historyIsNotEmpty); |
|
if ($$props.loadCurrentHistoryItem === void 0 && $$bindings.loadCurrentHistoryItem && loadCurrentHistoryItem !== void 0) |
|
$$bindings.loadCurrentHistoryItem(loadCurrentHistoryItem); |
|
if ($$props.getCurrentState === void 0 && $$bindings.getCurrentState && getCurrentState !== void 0) |
|
$$bindings.getCurrentState(getCurrentState); |
|
if ($$props.addState === void 0 && $$bindings.addState && addState !== void 0) |
|
$$bindings.addState(addState); |
|
if ($$props.updateCurrentState === void 0 && $$bindings.updateCurrentState && updateCurrentState !== void 0) |
|
$$bindings.updateCurrentState(updateCurrentState); |
|
if ($$props.prevHistory === void 0 && $$bindings.prevHistory && prevHistory !== void 0) |
|
$$bindings.prevHistory(prevHistory); |
|
if ($$props.nextHistory === void 0 && $$bindings.nextHistory && nextHistory !== void 0) |
|
$$bindings.nextHistory(nextHistory); |
|
if ($$props.clear === void 0 && $$bindings.clear && clear !== void 0) |
|
$$bindings.clear(clear); |
|
$$result.css.add(css$1); |
|
return `<div class="w-full flex p-2 space-x-2"><textarea rows="3" placeholder="Уточнение для поиска" class="svelte-wjelcf">${escape(searchClarification || "")}</textarea> <textarea rows="3" placeholder="Уточнение для LLM" class="svelte-wjelcf">${escape(llmClarification || "")}</textarea></div> ${``}`; |
|
}); |
|
const referenceId = "66d6a6c5ac59a1dde4b24a6e"; |
|
const css = { |
|
code: '.loading-container.svelte-rgnwju.svelte-rgnwju{display:flex;justify-content:center;align-items:center;align-self:center;width:3rem;height:90%;margin-left:5px}.loading-status.svelte-rgnwju.svelte-rgnwju{display:flex;justify-content:center;align-items:center;align-self:center}.grow-wrap.svelte-rgnwju.svelte-rgnwju{display:grid}.grow-wrap.svelte-rgnwju.svelte-rgnwju::after{content:attr(data-replicated-value) " ";white-space:pre-wrap;visibility:hidden;max-width:100%;max-height:250px;display:block;overflow-x:hidden}.grow-wrap.svelte-rgnwju>textarea.svelte-rgnwju{resize:none}.grow-wrap.svelte-rgnwju>textarea.svelte-rgnwju,.grow-wrap.svelte-rgnwju.svelte-rgnwju::after{padding:1rem;border:1px solid #ccc;border-radius:4px;width:100%;font-size:14px;margin-bottom:10px;box-sizing:border-box;grid-area:1/1/2/2}.grow-wrap.svelte-rgnwju>textarea .svelte-rgnwju:focus,.grow-wrap.svelte-rgnwju::after .svelte-rgnwju:focus{outline:none;border-color:#1976d2}.grow-wrap.svelte-rgnwju>textarea .svelte-rgnwju:placeholder,.grow-wrap.svelte-rgnwju::after .svelte-rgnwju:placeholder{color:#aaa}.auto-expand-textarea.svelte-rgnwju.svelte-rgnwju{box-sizing:border-box;width:100%;font-size:16px;border:1px solid #ccc;resize:vertical;overflow-y:auto;min-height:1rem}.search-column.svelte-rgnwju.svelte-rgnwju{flex:1;display:flex;flex-direction:column;border-right:1px solid #ccc}.search-bar.svelte-rgnwju.svelte-rgnwju{padding:1rem}.search-bar.svelte-rgnwju textarea.svelte-rgnwju{width:100%;max-width:100%;padding:1rem;box-sizing:border-box}.textarea-column.svelte-rgnwju.svelte-rgnwju{flex:1;display:flex;flex-direction:column}.textarea.svelte-rgnwju.svelte-rgnwju{width:100%;height:100%;margin:10px;border:none;outline:none;resize:none;background:transparent}@media(max-width: 767px){.search-column.svelte-rgnwju.svelte-rgnwju,.textarea-column.svelte-rgnwju.svelte-rgnwju{border-right:none}}.search-second-bar.svelte-rgnwju.svelte-rgnwju{display:flex;justify-content:space-between;flex-wrap:wrap}.search-second-bar.svelte-rgnwju .status-components.svelte-rgnwju{flex:1;margin-right:10px;margin-top:10px}@media(max-width: 600px){.search-second-bar.svelte-rgnwju.svelte-rgnwju{flex-direction:column}.search-second-bar.svelte-rgnwju .status-components.svelte-rgnwju{width:100%;margin-right:0;margin-bottom:10px}}textarea.svelte-rgnwju.svelte-rgnwju{border:1px solid #ccc;border-radius:4px;width:100%;font-size:14px;margin-bottom:10px;box-sizing:border-box;padding:1rem}a.svelte-rgnwju.svelte-rgnwju{cursor:pointer}.reference-btn.svelte-rgnwju.svelte-rgnwju{text-decoration:none;color:black}.reference-btn.svelte-rgnwju svg.svelte-rgnwju{margin-right:10px}.reference-btn.svelte-rgnwju.svelte-rgnwju:hover{text-decoration:none;color:black}', |
|
map: null |
|
}; |
|
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => { |
|
let { data } = $$props; |
|
const { ENV_DOCUMENT_DB_URL, ENV_ENABLE_DOCUMENT_DB, ENV_ENABLE_DB_SUPPORT } = data; |
|
let userClarificationComponent; |
|
initializeStores(); |
|
getToastStore(); |
|
let userSearchClarification = ""; |
|
let userLlmClarification = ""; |
|
let historyIsNotEmpty = true; |
|
let llmHealthStatus = "unknown"; |
|
let searchHealthStatus = "unknown"; |
|
let healthInterval; |
|
onDestroy(() => { |
|
clearInterval(healthInterval); |
|
cancelLlmRequest(); |
|
}); |
|
let searchResults = []; |
|
let relevantConsultations = []; |
|
let isLlmLoading = false; |
|
let currentLlmResponse = ""; |
|
let baseLlmResponse = ""; |
|
let currentUserRequest = ""; |
|
let savedUserRequest = ""; |
|
let loadingStatusText = ""; |
|
let showFullText = Array(searchResults.length).fill(false); |
|
let showConsultationFullText = Array(relevantConsultations.length).fill(false); |
|
let useSearchResult; |
|
let enableSearchResultSelection = false; |
|
let enableLLMForTeasers = false; |
|
let doMultistepSearch = false; |
|
let useAccountingDocs = false; |
|
let useReranking = false; |
|
let useLLMForFiltering = false; |
|
let useKeywords = false; |
|
let disableThresholds = false; |
|
let searchInTransactionLedger = false; |
|
let searchInTransactionLedgerByQuestion = false; |
|
let searchInTransactionLedgerByOperation = false; |
|
let useShortestPrompt = false; |
|
let shortestPromptGenerationFinished = false; |
|
let enableRealtimeLlmReponse = false; |
|
let sendConsultationToLlm = false; |
|
let showClarifyLlmResponseButton = false; |
|
let abortController = new AbortController(); |
|
const cancelLlmRequest = () => { |
|
abortController.abort("user canceled"); |
|
abortController = new AbortController(); |
|
isLlmLoading = false; |
|
loadingStatusText = ""; |
|
}; |
|
if ($$props.data === void 0 && $$bindings.data && data !== void 0) |
|
$$bindings.data(data); |
|
$$result.css.add(css); |
|
let $$settled; |
|
let $$rendered; |
|
let previous_head = $$result.head; |
|
do { |
|
$$settled = true; |
|
$$result.head = previous_head; |
|
{ |
|
{ |
|
{ |
|
searchInTransactionLedger = false; |
|
} |
|
if ( |
|
|
|
|
|
userLlmClarification && |
|
searchResults.length > 0 && baseLlmResponse && savedUserRequest == currentUserRequest && !isLlmLoading |
|
) { |
|
showClarifyLlmResponseButton = true; |
|
} else { |
|
showClarifyLlmResponseButton = false; |
|
} |
|
} |
|
} |
|
$$rendered = `${$$result.head += `<!-- HEAD_svelte-1wpbm1r_START -->${$$result.title = `<title>LLM demo app</title>`, ""}<meta name="description" content="LLM demo app"><!-- HEAD_svelte-1wpbm1r_END -->`, ""} ${validate_component(Toast, "Toast").$$render($$result, {}, {}, {})} <section><div class="search-bar flex flex-wrap svelte-rgnwju"><div class="grow-wrap w-full svelte-rgnwju"> <textarea class="auto-expand-textarea svelte-rgnwju" rows="1" placeholder="Введите ваш запрос...">${escape(currentUserRequest || "")}</textarea></div> <div class="search-second-bar w-full svelte-rgnwju"><div class="status-components svelte-rgnwju">${validate_component(LlmHealthStatus, "LlmHealthStatus").$$render($$result, { status: llmHealthStatus }, {}, {})} ${validate_component(SearchApiHealthStatus, "SearchApiHealthStatus").$$render($$result, { status: searchHealthStatus }, {}, {})}</div> <div class="flex space-x-2 items-center"> <a${add_attribute("href", `${ENV_DOCUMENT_DB_URL}file/view/id/${referenceId}`, 0)} target="_blank" rel="noopener noreferrer" class="btn variant-outline-tertiary reference-btn svelte-rgnwju"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-question-circle svelte-rgnwju" viewBox="0 0 16 16"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"></path><path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286m1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94"></path></svg> |
|
Справка</a> <button class="btn variant-outline-tertiary">${escape("Уточнить")}</button> <button class="btn variant-outline-tertiary w-48 justify-between" data-svelte-h="svelte-7w234r">Инструменты |
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 20" fill="currentColor" class="w-6 h-6"><path fill-rule="evenodd" d="M12 14.5a.75.75 0 01-.53-.22l-4.25-4.25a.75.75 0 011.06-1.06L12 12.69l3.72-3.72a.75.75 0 011.06 1.06l-4.25 4.25a.75.75 0 01-.53.22z" clip-rule="evenodd"></path></svg></button> <div class="card p-4 w-150 shadow-xl z-10" data-popup="popupFeatured"><div><label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", doMultistepSearch, 1)}> <p data-svelte-h="svelte-o1whuo">Использовать многоступенчатый поиск</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", enableLLMForTeasers, 1)}> <p data-svelte-h="svelte-9zxjq1">Использовать LLM для тизеров</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", useLLMForFiltering, 1)}> <p data-svelte-h="svelte-1uul1f7">Использовать LLM для фильтрации источников</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", disableThresholds, 1)}> <p data-svelte-h="svelte-jhmp61">Выключить фильтрацию по порогам</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", useShortestPrompt, 1)}> <p data-svelte-h="svelte-1548adw">Получить более короткий ответ</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", enableRealtimeLlmReponse, 1)}> <p data-svelte-h="svelte-tnawxy">Выводить ответ в реальном времени</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", sendConsultationToLlm, 1)}> <p data-svelte-h="svelte-vv6jwf">Учитывать консультации в ответе</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox" ${searchInTransactionLedger ? "disabled" : ""}${add_attribute("checked", useReranking, 1)}> <p data-svelte-h="svelte-qkyc7c">Использовать переранжирование</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox"${add_attribute("checked", searchInTransactionLedgerByQuestion, 1)}> <p data-svelte-h="svelte-17zslqw">Карты проводок по вопросу</p></label> <label class="flex items-center space-x-2"><input class="checkbox accent-white" type="checkbox"${add_attribute("checked", searchInTransactionLedgerByOperation, 1)}> <p data-svelte-h="svelte-1esqmyo">Карты проводок по хоз. операциям</p></label></div></div> ${currentUserRequest ? `<button class="btn variant-filled" data-svelte-h="svelte-1rjqwcg">Очистить</button>` : ``} ${isLlmLoading ? `<button class="btn variant-filled" data-svelte-h="svelte-a5kyut">Остановить</button>` : ``} <button title="Ctrl+Enter" class="btn variant-filled" data-svelte-h="svelte-w5ppob">Отправить</button></div> <div class="flex space-x-2 items-center justify-center w-full">${isLlmLoading ? `<div class="loading-status svelte-rgnwju">${escape(loadingStatusText)}</div> <div class="loading-container svelte-rgnwju">${validate_component(LoadingSpinner, "LoadingSpinner").$$render($$result, {}, {}, {})}</div>` : ``}</div> <div class="${["w-full", "hidden"].join(" ").trim()}">${validate_component(UserClarification, "UserClarification").$$render( |
|
$$result, |
|
{ |
|
this: userClarificationComponent, |
|
llmClarification: userLlmClarification, |
|
searchClarification: userSearchClarification, |
|
searchResults, |
|
relevantConsultations, |
|
llmResponse: currentLlmResponse, |
|
historyIsNotEmpty, |
|
userRequest: currentUserRequest |
|
}, |
|
{ |
|
this: ($$value) => { |
|
userClarificationComponent = $$value; |
|
$$settled = false; |
|
}, |
|
llmClarification: ($$value) => { |
|
userLlmClarification = $$value; |
|
$$settled = false; |
|
}, |
|
searchClarification: ($$value) => { |
|
userSearchClarification = $$value; |
|
$$settled = false; |
|
}, |
|
searchResults: ($$value) => { |
|
searchResults = $$value; |
|
$$settled = false; |
|
}, |
|
relevantConsultations: ($$value) => { |
|
relevantConsultations = $$value; |
|
$$settled = false; |
|
}, |
|
llmResponse: ($$value) => { |
|
currentLlmResponse = $$value; |
|
$$settled = false; |
|
}, |
|
historyIsNotEmpty: ($$value) => { |
|
historyIsNotEmpty = $$value; |
|
$$settled = false; |
|
}, |
|
userRequest: ($$value) => { |
|
currentUserRequest = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{} |
|
)}</div> <div class="w-full my-2"></div> <div class="card w-[calc(50%-0.5rem)] p-2 mr-2"><div>${validate_component(SlideToggle, "SlideToggle").$$render( |
|
$$result, |
|
{ |
|
name: "slider-label", |
|
size: "sm", |
|
checked: enableSearchResultSelection, |
|
disabled: searchInTransactionLedger |
|
}, |
|
{ |
|
checked: ($$value) => { |
|
enableSearchResultSelection = $$value; |
|
$$settled = false; |
|
}, |
|
disabled: ($$value) => { |
|
searchInTransactionLedger = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `Выбрать источники для LLM`; |
|
} |
|
} |
|
)}</div> <div>${validate_component(SlideToggle, "SlideToggle").$$render( |
|
$$result, |
|
{ |
|
name: "slider-label", |
|
size: "sm", |
|
checked: useKeywords, |
|
disabled: searchInTransactionLedger |
|
}, |
|
{ |
|
checked: ($$value) => { |
|
useKeywords = $$value; |
|
$$settled = false; |
|
}, |
|
disabled: ($$value) => { |
|
searchInTransactionLedger = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `Использовать ключевые слова`; |
|
} |
|
} |
|
)}</div> <div>${validate_component(SlideToggle, "SlideToggle").$$render( |
|
$$result, |
|
{ |
|
name: "slider-label", |
|
size: "sm", |
|
checked: useAccountingDocs, |
|
disabled: searchInTransactionLedger |
|
}, |
|
{ |
|
checked: ($$value) => { |
|
useAccountingDocs = $$value; |
|
$$settled = false; |
|
}, |
|
disabled: ($$value) => { |
|
searchInTransactionLedger = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{ |
|
default: () => { |
|
return `Выполнить поиск по БУ`; |
|
} |
|
} |
|
)}</div> <div></div> ${``}</div> <div class="w-full my-2">${``}</div> ${``} ${(historyIsNotEmpty && searchResults.length > 0 || relevantConsultations && relevantConsultations.length > 0) && !searchInTransactionLedger ? `${`${validate_component(Splitpanes, "Splitpanes").$$render($$result, { theme: "modern-theme" }, {}, { |
|
default: () => { |
|
return `${validate_component(Pane, "Pane").$$render( |
|
$$result, |
|
{ |
|
minSize: 20, |
|
class: "search-column", |
|
size: 49 |
|
}, |
|
{}, |
|
{ |
|
default: () => { |
|
return `<div class="search-column svelte-rgnwju">${validate_component(SearchResults, "SearchResults").$$render( |
|
$$result, |
|
{ |
|
enableDocumentDb: ENV_ENABLE_DOCUMENT_DB, |
|
documentDbUrl: ENV_DOCUMENT_DB_URL, |
|
searchResults, |
|
showFullText, |
|
useSearchResult, |
|
enableSearchResultSelection |
|
}, |
|
{ |
|
searchResults: ($$value) => { |
|
searchResults = $$value; |
|
$$settled = false; |
|
}, |
|
showFullText: ($$value) => { |
|
showFullText = $$value; |
|
$$settled = false; |
|
}, |
|
useSearchResult: ($$value) => { |
|
useSearchResult = $$value; |
|
$$settled = false; |
|
}, |
|
enableSearchResultSelection: ($$value) => { |
|
enableSearchResultSelection = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{} |
|
)} ${relevantConsultations && relevantConsultations.length > 0 ? `${validate_component(RelevantConsultations, "RelevantConsultations").$$render( |
|
$$result, |
|
{ |
|
consultations: relevantConsultations, |
|
showFullText: showConsultationFullText |
|
}, |
|
{ |
|
consultations: ($$value) => { |
|
relevantConsultations = $$value; |
|
$$settled = false; |
|
}, |
|
showFullText: ($$value) => { |
|
showConsultationFullText = $$value; |
|
$$settled = false; |
|
} |
|
}, |
|
{} |
|
)}` : ``}</div>`; |
|
} |
|
} |
|
)} ${validate_component(Pane, "Pane").$$render($$result, { size: 49 }, {}, { |
|
default: () => { |
|
return `<div class="textarea-column svelte-rgnwju"><div class="textarea svelte-rgnwju"><button class="${[ |
|
"btn variant-filled", |
|
!(enableSearchResultSelection && searchResults.length > 0 && !showClarifyLlmResponseButton) ? "hidden" : "" |
|
].join(" ").trim()}" data-svelte-h="svelte-qvwp3t">Получить ответ</button> <button class="${[ |
|
"btn variant-filled", |
|
!showClarifyLlmResponseButton ? "hidden" : "" |
|
].join(" ").trim()}" data-svelte-h="svelte-zcineo">Уточнить ответ</button> <button class="btn variant-filled" data-svelte-h="svelte-1ddim4b">Скачать ответ в Word</button> <div class="textarea svelte-rgnwju">${!isLlmLoading || enableRealtimeLlmReponse || currentLlmResponse && useShortestPrompt && shortestPromptGenerationFinished ? `<!-- HTML_TAG_START -->${currentLlmResponse}<!-- HTML_TAG_END -->` : ``}</div> ${``}</div></div>`; |
|
} |
|
})}`; |
|
} |
|
})}`}` : ``}</div></div> </section>`; |
|
} while (!$$settled); |
|
return $$rendered; |
|
}); |
|
|
|
export { Page as default }; |
|
|
|
|