@morscherlab/mint-sdk 1.5.0-beta.1 → 1.5.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AlertBox-CIhqsWbN.js → AlertBox-Cai0w7gF.js} +3 -3
- package/dist/{AlertBox-CIhqsWbN.js.map → AlertBox-Cai0w7gF.js.map} +1 -1
- package/dist/{AppSidebar-BDrd7Kwn.js → AppSidebar-C-Vq5x4I.js} +410 -127
- package/dist/AppSidebar-C-Vq5x4I.js.map +1 -0
- package/dist/{ConfirmDialog-CjWoxAD1.js → ConfirmDialog-BjFsOpBe.js} +3 -3
- package/dist/ConfirmDialog-BjFsOpBe.js.map +1 -0
- package/dist/{ExperimentPopover-BM92LlrQ.js → ExperimentPopover-DYy_s0kI.js} +25 -37
- package/dist/ExperimentPopover-DYy_s0kI.js.map +1 -0
- package/dist/{ExperimentSelectorModal-LsB1ABmh.js → ExperimentSelectorModal-Bfh5bdkv.js} +37 -8
- package/dist/ExperimentSelectorModal-Bfh5bdkv.js.map +1 -0
- package/dist/{SegmentedControl-Dz41vAFM.js → SegmentedControl-B8KgyOjd.js} +2 -2
- package/dist/{SegmentedControl-Dz41vAFM.js.map → SegmentedControl-B8KgyOjd.js.map} +1 -1
- package/dist/{SettingsModal-C-MSR-bk.js → SettingsModal-DwfrD1ER.js} +7 -7
- package/dist/{SettingsModal-C-MSR-bk.js.map → SettingsModal-DwfrD1ER.js.map} +1 -1
- package/dist/__tests__/components/AppTopBarCompact.test.d.ts +1 -0
- package/dist/__tests__/components/AppTopBarCompactReset.test.d.ts +1 -0
- package/dist/__tests__/components/AutoGroupModal.experimentLoad.test.d.ts +1 -0
- package/dist/components/AppTopBar.compact.d.ts +5 -0
- package/dist/components/AppTopBar.vue.d.ts +17 -17
- package/dist/components/FormBuilder.vue.d.ts +1 -1
- package/dist/components/PluginIcon.vue.d.ts +2 -2
- package/dist/components/PluginWorkspaceView.vue.d.ts +4 -0
- package/dist/components/SectionCard.vue.d.ts +13 -1
- package/dist/components/SettingsModal.vue.d.ts +1 -1
- package/dist/components/internal/AppTopBarPageSelectorInternal.vue.d.ts +2 -2
- package/dist/components/internal/FormSchemaInternal.vue.d.ts +9 -9
- package/dist/components/internal/FormSectionRenderer.vue.d.ts +4 -4
- package/dist/components/internal/LucideIconInternal.vue.d.ts +17 -0
- package/dist/composables/appLayoutSidebar.d.ts +9 -0
- package/dist/composables/useExperimentSelector.d.ts +2 -0
- package/dist/composables/useOnboarding.d.ts +1 -1
- package/dist/composables/usePluginWorkspace.d.ts +2 -0
- package/dist/composables/useVersionedSave.d.ts +5 -2
- package/dist/{controlSchemaModel-BbXbMgc6.js → controlSchemaModel-BtFNZj8t.js} +2 -2
- package/dist/{controlSchemaModel-BbXbMgc6.js.map → controlSchemaModel-BtFNZj8t.js.map} +1 -1
- package/dist/{data-LzdkEZJ-.js → data-CJztFns8.js} +31 -15
- package/dist/{data-LzdkEZJ-.js.map → data-CJztFns8.js.map} +1 -1
- package/dist/data.js +8 -8
- package/dist/{experimentStatus-DCn2QKG7.js → experimentStatus-Deokk7Br.js} +2 -2
- package/dist/{experimentStatus-DCn2QKG7.js.map → experimentStatus-Deokk7Br.js.map} +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +15 -20
- package/dist/index.js.map +1 -1
- package/dist/{install-UTqrAgHe.js → install-Bk02tJ5M.js} +15 -40
- package/dist/install-Bk02tJ5M.js.map +1 -0
- package/dist/install.js +1 -1
- package/dist/{lab-CbdDLAVr.js → lab-BYhb_cJI.js} +47 -117
- package/dist/lab-BYhb_cJI.js.map +1 -0
- package/dist/lab.js +4 -4
- package/dist/{records-CWRztE5M.js → records-GtiVMlTQ.js} +207 -171
- package/dist/records-GtiVMlTQ.js.map +1 -0
- package/dist/{runtime-DrL6lKAb.js → runtime-aZPUPxoB.js} +112 -54
- package/dist/runtime-aZPUPxoB.js.map +1 -0
- package/dist/runtime.js +6 -6
- package/dist/{shell-Ch7cJnjo.js → shell-Bk9mD4Lc.js} +5 -5
- package/dist/{shell-Ch7cJnjo.js.map → shell-Bk9mD4Lc.js.map} +1 -1
- package/dist/shell.js +5 -5
- package/dist/styles.css +315 -134
- package/dist/styles.d.ts +1 -0
- package/dist/types/components.d.ts +22 -2
- package/dist/types/generated-ui.d.ts +2 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/instrument.d.ts +5 -17
- package/dist/{useDropdownState-uFIz6Yv8.js → useDropdownState-CcBzUYZ6.js} +14 -5
- package/dist/useDropdownState-CcBzUYZ6.js.map +1 -0
- package/dist/{useExperimentSamples-Cz2v3V_q.js → useExperimentSamples-CpNXvpUn.js} +3 -3
- package/dist/{useExperimentSamples-Cz2v3V_q.js.map → useExperimentSamples-CpNXvpUn.js.map} +1 -1
- package/dist/{useListReorder-QqJc1dpX.js → useListReorder-Bp4EAI2w.js} +16 -4
- package/dist/useListReorder-Bp4EAI2w.js.map +1 -0
- package/dist/{useRackEditor-BHGM1Ngz.js → useRackEditor-i2bdPUFf.js} +156 -27
- package/dist/useRackEditor-i2bdPUFf.js.map +1 -0
- package/dist/{useRealtime-CNQbrS01.js → useRealtime-BLQEjbuq.js} +3 -3
- package/dist/{useRealtime-CNQbrS01.js.map → useRealtime-BLQEjbuq.js.map} +1 -1
- package/dist/useRequest-CXyPw3eh.js +76 -0
- package/dist/useRequest-CXyPw3eh.js.map +1 -0
- package/dist/utils/deprecation.d.ts +2 -0
- package/dist/utils/lucideIcon.d.ts +4 -0
- package/package.json +7 -4
- package/src/__tests__/components/AppTopBar.test.ts +102 -20
- package/src/__tests__/components/AppTopBarCompact.test.ts +65 -0
- package/src/__tests__/components/AppTopBarCompactReset.test.ts +24 -0
- package/src/__tests__/components/AppTopBarOnboarding.test.ts +10 -0
- package/src/__tests__/components/AutoGroupModal.experimentLoad.test.ts +58 -0
- package/src/__tests__/components/BaseModal.test.ts +33 -2
- package/src/__tests__/components/ConfirmDialog.test.ts +2 -2
- package/src/__tests__/components/ExperimentPopover.test.ts +32 -0
- package/src/__tests__/components/ExperimentSelectorModal.test.ts +16 -0
- package/src/__tests__/components/PluginWorkspaceView.test.ts +20 -1
- package/src/__tests__/components/SectionCard.test.ts +33 -0
- package/src/__tests__/components/deprecationTags.test.ts +4 -18
- package/src/__tests__/composables/useJobCenter.test.ts +35 -0
- package/src/__tests__/composables/useJobsEndpoint.test.ts +50 -0
- package/src/__tests__/composables/useOnboarding.test.ts +2 -2
- package/src/__tests__/composables/useVersionedSave.test.ts +71 -6
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +3 -3
- package/src/__tests__/styles/menusShellRefresh.test.ts +10 -0
- package/src/components/AppLayout.story.vue +5 -5
- package/src/components/AppLayout.vue +13 -1
- package/src/components/AppSidebar.vue +2 -2
- package/src/components/AppTopBar.compact.ts +60 -0
- package/src/components/AppTopBar.story.vue +39 -14
- package/src/components/AppTopBar.vue +222 -89
- package/src/components/BaseModal.vue +16 -5
- package/src/components/CollapsibleCard.vue +1 -1
- package/src/components/ConfirmDialog.vue +1 -1
- package/src/components/ExperimentPopover.story.vue +2 -2
- package/src/components/ExperimentPopover.vue +6 -22
- package/src/components/ExperimentSelectorModal.vue +35 -0
- package/src/components/FileUploader.vue +3 -35
- package/src/components/GeneratedPluginView.vue +34 -81
- package/src/components/GeneratedResultRenderer.vue +2 -1
- package/src/components/InstrumentStatusPanels.vue +3 -3
- package/src/components/PlotlyChart.vue +1 -1
- package/src/components/PluginIcon.story.vue +2 -2
- package/src/components/PluginIcon.vue +2 -2
- package/src/components/PluginWorkspaceView.vue +10 -1
- package/src/components/SectionCard.vue +42 -6
- package/src/components/internal/AppTopBarOnboardingInternal.vue +30 -14
- package/src/components/internal/AppTopBarPageSelectorInternal.vue +12 -0
- package/src/components/internal/AutoGroupModalInternal.vue +14 -3
- package/src/components/internal/LucideIconInternal.vue +23 -0
- package/src/composables/appLayoutSidebar.ts +11 -0
- package/src/composables/index.ts +1 -2
- package/src/composables/useExperimentSelector.ts +4 -0
- package/src/composables/useJobCenter.ts +21 -1
- package/src/composables/useJobsEndpoint.ts +15 -4
- package/src/composables/useOnboarding.ts +3 -3
- package/src/composables/usePluginWorkspace.ts +15 -4
- package/src/composables/useVersionedSave.ts +32 -7
- package/src/generated-ui/main.ts +3 -1
- package/src/index.ts +0 -3
- package/src/styles/components/alert-box.css +1 -1
- package/src/styles/components/app-layout.css +5 -0
- package/src/styles/components/app-sidebar.css +5 -5
- package/src/styles/components/app-top-bar.css +130 -9
- package/src/styles/components/button.css +3 -3
- package/src/styles/components/checkbox.css +1 -1
- package/src/styles/components/collapsible-card.css +1 -1
- package/src/styles/components/confirm-dialog.css +2 -2
- package/src/styles/components/file-uploader.css +3 -3
- package/src/styles/components/icon-button.css +3 -3
- package/src/styles/components/loading-spinner.css +1 -1
- package/src/styles/components/onboarding.css +39 -0
- package/src/styles/components/pill.css +1 -1
- package/src/styles/components/plugin-icon.css +2 -2
- package/src/styles/components/presence-avatars.css +4 -4
- package/src/styles/components/progress-bar.css +1 -1
- package/src/styles/components/section-card.css +65 -6
- package/src/styles/components/sequence-input.css +1 -1
- package/src/styles/components/slider.css +1 -1
- package/src/styles/components/toggle.css +1 -1
- package/src/styles/variables.css +10 -4
- package/src/types/components.ts +23 -2
- package/src/types/generated-ui.ts +2 -0
- package/src/types/index.ts +1 -1
- package/src/types/instrument.ts +5 -18
- package/src/utils/deprecation.ts +8 -0
- package/src/utils/lucideIcon.ts +25 -0
- package/src/utils/lucideIconIndex.d.ts +2 -0
- package/dist/AppSidebar-BDrd7Kwn.js.map +0 -1
- package/dist/ConfirmDialog-CjWoxAD1.js.map +0 -1
- package/dist/ExperimentPopover-BM92LlrQ.js.map +0 -1
- package/dist/ExperimentSelectorModal-LsB1ABmh.js.map +0 -1
- package/dist/deprecatedRootExports.d.ts +0 -191
- package/dist/install-UTqrAgHe.js.map +0 -1
- package/dist/lab-CbdDLAVr.js.map +0 -1
- package/dist/records-CWRztE5M.js.map +0 -1
- package/dist/runtime-DrL6lKAb.js.map +0 -1
- package/dist/useDropdownState-uFIz6Yv8.js.map +0 -1
- package/dist/useListReorder-QqJc1dpX.js.map +0 -1
- package/dist/useRackEditor-BHGM1Ngz.js.map +0 -1
- package/dist/useRequest-Bfsh7gIm.js +0 -215
- package/dist/useRequest-Bfsh7gIm.js.map +0 -1
- package/src/deprecatedRootExports.ts +0 -226
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as useEventListener, o as __exportAll, t as useDropdownState } from "./useDropdownState-
|
|
1
|
+
import { i as useEventListener, o as __exportAll, t as useDropdownState } from "./useDropdownState-CcBzUYZ6.js";
|
|
2
2
|
import { i as AuthenticationRequiredError, o as useApi } from "./experiment-DyO54FQB.js";
|
|
3
|
-
import {
|
|
4
|
-
import { A as useJobsEndpoint, D as _plugin_vue_export_helper_default, E as GeneratedPathInput_default, M as usePlatform, O as GENERATED_JOBS_API_KEY, R as definePluginWorkspaceView, _ as getTypeDefault, g as getFieldRegistryEntry, h as replaceRecord, k as createGeneratedAnalysisTransport } from "./useListReorder-
|
|
5
|
-
import { r as LoadingSpinner_default, t as AlertBox_default } from "./AlertBox-
|
|
6
|
-
import { D as DataFrame_default, T as WellPlate_default, a as GeneratedPlotlyResult_default, b as PlateEditor_default, c as downloadEndpoint, d as useEventStream, f as useSettingsEndpoint, i as GeneratedResultRenderer_default, l as pluginFormDataFromPayload, m as resolvePluginBaseUrl, n as ScheduleCalendar_default, o as createClient, p as buildEndpointUrl, t as useRackEditor, u as uploadEndpoint, v as DoseCalculator_default } from "./useRackEditor-
|
|
7
|
-
import { A as
|
|
8
|
-
import { n as isControlModelBinding } from "./controlSchemaModel-
|
|
9
|
-
import { i as JobsStatusTray_default, n as subscribeRealtime, r as useRealtime, t as currentPresence } from "./useRealtime-
|
|
3
|
+
import { R as EmptyState_default, d as isActiveJobStatus, f as isTerminalJobStatus, g as resolveJobCapabilities, h as normalizeJobState, m as normalizeJobPercent, o as resolveCurrentPluginId, p as jobStatusLabel, t as isRecord, v as useAppExperiment } from "./records-GtiVMlTQ.js";
|
|
4
|
+
import { A as useJobsEndpoint, D as _plugin_vue_export_helper_default, E as GeneratedPathInput_default, M as usePlatform, O as GENERATED_JOBS_API_KEY, R as definePluginWorkspaceView, _ as getTypeDefault, g as getFieldRegistryEntry, h as replaceRecord, k as createGeneratedAnalysisTransport } from "./useListReorder-Bp4EAI2w.js";
|
|
5
|
+
import { r as LoadingSpinner_default, t as AlertBox_default } from "./AlertBox-Cai0w7gF.js";
|
|
6
|
+
import { D as SectionCard_default, O as DataFrame_default, T as WellPlate_default, a as GeneratedPlotlyResult_default, b as PlateEditor_default, c as downloadEndpoint, d as useEventStream, f as useSettingsEndpoint, i as GeneratedResultRenderer_default, l as pluginFormDataFromPayload, m as resolvePluginBaseUrl, n as ScheduleCalendar_default, o as createClient, p as buildEndpointUrl, t as useRackEditor, u as uploadEndpoint, v as DoseCalculator_default } from "./useRackEditor-i2bdPUFf.js";
|
|
7
|
+
import { A as controlValuesToComponentBindings, C as warnDeprecatedOnce, D as getControlDefaults, E as defineControls, I as getDefaultControlView, M as controlValuesToComponentProps, N as controlsTo, O as useControlSchema, S as AppLayout_default, T as defineControlComponentBindings, d as useForm, f as AppTopBar_default, j as controlValuesToComponentBindingsById, k as controlBindings, l as useFormBuilder, p as providePluginIdentity, t as AppSidebar_default, u as evaluateCondition, w as usePluginWorkspace } from "./AppSidebar-C-Vq5x4I.js";
|
|
8
|
+
import { n as isControlModelBinding } from "./controlSchemaModel-BtFNZj8t.js";
|
|
9
|
+
import { i as JobsStatusTray_default, n as subscribeRealtime, r as useRealtime, t as currentPresence } from "./useRealtime-BLQEjbuq.js";
|
|
10
10
|
import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentScope, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, normalizeStyle, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toValue, unref, useId, useSlots, useTemplateRef, watch, withCtx, withModifiers } from "vue";
|
|
11
11
|
import { ChartColumn, Eye, FlaskConical, Pencil, RefreshCw } from "lucide-vue-next";
|
|
12
12
|
//#region src/composables/useToast.ts
|
|
@@ -81,7 +81,7 @@ var _hoisted_3$4 = {
|
|
|
81
81
|
"stroke-linejoin": "round",
|
|
82
82
|
"aria-hidden": "true"
|
|
83
83
|
};
|
|
84
|
-
var _hoisted_4$
|
|
84
|
+
var _hoisted_4$3 = {
|
|
85
85
|
key: 1,
|
|
86
86
|
class: "mint-toast__icon",
|
|
87
87
|
viewBox: "0 0 24 24",
|
|
@@ -92,7 +92,7 @@ var _hoisted_4$4 = {
|
|
|
92
92
|
"stroke-linejoin": "round",
|
|
93
93
|
"aria-hidden": "true"
|
|
94
94
|
};
|
|
95
|
-
var _hoisted_5$
|
|
95
|
+
var _hoisted_5$2 = {
|
|
96
96
|
key: 2,
|
|
97
97
|
class: "mint-toast__icon",
|
|
98
98
|
viewBox: "0 0 24 24",
|
|
@@ -103,7 +103,7 @@ var _hoisted_5$3 = {
|
|
|
103
103
|
"stroke-linejoin": "round",
|
|
104
104
|
"aria-hidden": "true"
|
|
105
105
|
};
|
|
106
|
-
var _hoisted_6$
|
|
106
|
+
var _hoisted_6$2 = {
|
|
107
107
|
key: 3,
|
|
108
108
|
class: "mint-toast__icon",
|
|
109
109
|
viewBox: "0 0 24 24",
|
|
@@ -172,7 +172,7 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
172
172
|
cx: "12",
|
|
173
173
|
cy: "12",
|
|
174
174
|
r: "10"
|
|
175
|
-
}, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])])) : toast.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_4$
|
|
175
|
+
}, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])])) : toast.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_4$3, [..._cache[1] || (_cache[1] = [
|
|
176
176
|
createElementVNode("circle", {
|
|
177
177
|
cx: "12",
|
|
178
178
|
cy: "12",
|
|
@@ -180,11 +180,11 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
180
180
|
}, null, -1),
|
|
181
181
|
createElementVNode("path", { d: "m15 9-6 6" }, null, -1),
|
|
182
182
|
createElementVNode("path", { d: "m9 9 6 6" }, null, -1)
|
|
183
|
-
])])) : toast.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_5$
|
|
183
|
+
])])) : toast.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_5$2, [..._cache[2] || (_cache[2] = [
|
|
184
184
|
createElementVNode("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }, null, -1),
|
|
185
185
|
createElementVNode("path", { d: "M12 9v4" }, null, -1),
|
|
186
186
|
createElementVNode("path", { d: "M12 17h.01" }, null, -1)
|
|
187
|
-
])])) : (openBlock(), createElementBlock("svg", _hoisted_6$
|
|
187
|
+
])])) : (openBlock(), createElementBlock("svg", _hoisted_6$2, [..._cache[3] || (_cache[3] = [
|
|
188
188
|
createElementVNode("circle", {
|
|
189
189
|
cx: "12",
|
|
190
190
|
cy: "12",
|
|
@@ -369,6 +369,11 @@ function useJobCenter(options = {}) {
|
|
|
369
369
|
watch([source, ownActiveJobs], ([currentSource, now], [previousSource, before]) => {
|
|
370
370
|
if (currentSource !== previousSource) {
|
|
371
371
|
justFinished.value = null;
|
|
372
|
+
if (previousSource) {
|
|
373
|
+
hasBaseline = false;
|
|
374
|
+
awaitingLoad = false;
|
|
375
|
+
if (jobs.value.length > 0) takeBaseline();
|
|
376
|
+
}
|
|
372
377
|
return;
|
|
373
378
|
}
|
|
374
379
|
const nowIds = new Set(now.map((job) => job.job_id));
|
|
@@ -462,19 +467,31 @@ function useJobCenter(options = {}) {
|
|
|
462
467
|
if (active && generation === requestGeneration) isLoading.value = false;
|
|
463
468
|
}
|
|
464
469
|
}
|
|
470
|
+
const cancelling = /* @__PURE__ */ new Map();
|
|
471
|
+
watch(jobs, (list) => {
|
|
472
|
+
for (const [jobId, status] of cancelling) {
|
|
473
|
+
if (list.find((job) => job.job_id === jobId)?.status === status) continue;
|
|
474
|
+
cancelling.delete(jobId);
|
|
475
|
+
setPending(jobId, false);
|
|
476
|
+
}
|
|
477
|
+
});
|
|
465
478
|
async function cancelJob(job) {
|
|
466
479
|
const sourceCancel = source.value?.cancel;
|
|
467
480
|
if (!job.can_cancel || !sourceCancel || pendingJobIds.value.has(job.job_id)) return false;
|
|
468
481
|
setPending(job.job_id, true);
|
|
469
482
|
error.value = null;
|
|
483
|
+
let cancelled = false;
|
|
470
484
|
try {
|
|
471
485
|
await sourceCancel(job.job_id);
|
|
486
|
+
cancelled = true;
|
|
472
487
|
return active;
|
|
473
488
|
} catch (cause) {
|
|
474
489
|
if (active) error.value = errorMessage(cause, "Failed to cancel job");
|
|
475
490
|
return false;
|
|
476
491
|
} finally {
|
|
477
|
-
|
|
492
|
+
const status = jobs.value.find((listed) => listed.job_id === job.job_id)?.status;
|
|
493
|
+
if (cancelled && status === job.status) cancelling.set(job.job_id, status);
|
|
494
|
+
else if (active) setPending(job.job_id, false);
|
|
478
495
|
}
|
|
479
496
|
}
|
|
480
497
|
async function deleteJob(job) {
|
|
@@ -917,6 +934,7 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
917
934
|
const props = __props;
|
|
918
935
|
const emit = __emit;
|
|
919
936
|
const slots = useSlots();
|
|
937
|
+
if (slots.topbar) warnDeprecatedOnce("workspace.slot.topbar", "PluginWorkspaceView #topbar is deprecated: configure spec.topBar and give pages icons. It is removed in 2.0.");
|
|
920
938
|
if (props.spec.experiment) {
|
|
921
939
|
const save = props.spec.save;
|
|
922
940
|
useAppExperiment({
|
|
@@ -932,7 +950,7 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
932
950
|
function handleJobSelect(job) {
|
|
933
951
|
emit("job-select", job);
|
|
934
952
|
}
|
|
935
|
-
const { shell, sidebar, controls, handleControlValuesUpdate, handlePillSelect } = usePluginWorkspace({
|
|
953
|
+
const { shell, sidebar, controls, handleControlValuesUpdate, handlePillSelect, handleSidebarCollapsedUpdate } = usePluginWorkspace({
|
|
936
954
|
props,
|
|
937
955
|
slots,
|
|
938
956
|
emit
|
|
@@ -953,10 +971,10 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
953
971
|
"jobs-done": unref(jobCenter)?.completedCount.value,
|
|
954
972
|
"jobs-open": unref(jobCenter)?.isOpen.value,
|
|
955
973
|
"jobs-panel-id": unref(jobCenter)?.panelId,
|
|
956
|
-
onJobClick: _cache[
|
|
974
|
+
onJobClick: _cache[1] || (_cache[1] = ($event) => unref(jobCenter)?.handleTopBarClick(handleJobSelect)),
|
|
957
975
|
onPillSelect: unref(handlePillSelect),
|
|
958
|
-
onPillOptionSelect: _cache[
|
|
959
|
-
onSettingsValuesChange: _cache[
|
|
976
|
+
onPillOptionSelect: _cache[2] || (_cache[2] = (option, item) => emit("pill-option-select", option, item)),
|
|
977
|
+
onSettingsValuesChange: _cache[3] || (_cache[3] = ($event) => emit("settings-values-change", $event))
|
|
960
978
|
}, createSlots({
|
|
961
979
|
default: withCtx(() => [
|
|
962
980
|
createVNode(WorkspaceControlsInternal_default, { controls: unref(controls) }, {
|
|
@@ -988,9 +1006,9 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
988
1006
|
fn: withCtx((scope) => [renderSlot(_ctx.$slots, "sidebar", normalizeProps(guardReactiveProps(scope)), () => [createVNode(WorkspaceSidebarInternal_default, {
|
|
989
1007
|
sidebar: unref(sidebar),
|
|
990
1008
|
"onUpdate:values": unref(handleControlValuesUpdate),
|
|
991
|
-
"onUpdate:collapsed":
|
|
1009
|
+
"onUpdate:collapsed": unref(handleSidebarCollapsedUpdate),
|
|
992
1010
|
"onUpdate:toggle": handleToggle,
|
|
993
|
-
onSectionAction: _cache[
|
|
1011
|
+
onSectionAction: _cache[0] || (_cache[0] = (sectionId, actionId) => emit("section-action", sectionId, actionId)),
|
|
994
1012
|
onFormSubmit: handleFormSubmit,
|
|
995
1013
|
onFormCancel: handleFormCancel
|
|
996
1014
|
}, createSlots({ _: 2 }, [renderList(unref(sidebar).slotNames, (slotName) => {
|
|
@@ -998,7 +1016,11 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
998
1016
|
name: slotName,
|
|
999
1017
|
fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, slotName, normalizeProps(guardReactiveProps(slotProps ?? {})))])
|
|
1000
1018
|
};
|
|
1001
|
-
})]), 1032, [
|
|
1019
|
+
})]), 1032, [
|
|
1020
|
+
"sidebar",
|
|
1021
|
+
"onUpdate:values",
|
|
1022
|
+
"onUpdate:collapsed"
|
|
1023
|
+
])])]),
|
|
1002
1024
|
key: "1"
|
|
1003
1025
|
} : void 0
|
|
1004
1026
|
]), 1032, [
|
|
@@ -1013,6 +1035,30 @@ var PluginWorkspaceView_default = /* @__PURE__ */ defineComponent({
|
|
|
1013
1035
|
}
|
|
1014
1036
|
});
|
|
1015
1037
|
//#endregion
|
|
1038
|
+
//#region src/components/AppContainer.vue
|
|
1039
|
+
var AppContainer_default = /* @__PURE__ */ defineComponent({
|
|
1040
|
+
__name: "AppContainer",
|
|
1041
|
+
props: {
|
|
1042
|
+
scrollable: {
|
|
1043
|
+
type: Boolean,
|
|
1044
|
+
default: false
|
|
1045
|
+
},
|
|
1046
|
+
direction: {},
|
|
1047
|
+
gap: { default: "1rem" }
|
|
1048
|
+
},
|
|
1049
|
+
setup(__props) {
|
|
1050
|
+
/** Content card with optional scroll lock, or a transparent flex layout shell with configurable direction and gap. */
|
|
1051
|
+
const props = __props;
|
|
1052
|
+
const isLayout = computed(() => !!props.direction);
|
|
1053
|
+
return (_ctx, _cache) => {
|
|
1054
|
+
return openBlock(), createElementBlock("div", {
|
|
1055
|
+
class: normalizeClass(["mint-container", isLayout.value ? ["mint-container--layout", __props.direction === "row" ? "mint-container--row" : "mint-container--column"] : ["mint-container--card", __props.scrollable ? "mint-container--scrollable" : ""]]),
|
|
1056
|
+
style: normalizeStyle(isLayout.value ? { gap: __props.gap } : void 0)
|
|
1057
|
+
}, [renderSlot(_ctx.$slots, "default")], 6);
|
|
1058
|
+
};
|
|
1059
|
+
}
|
|
1060
|
+
});
|
|
1061
|
+
//#endregion
|
|
1016
1062
|
//#region src/components/Avatar.vue?vue&type=script&setup=true&lang.ts
|
|
1017
1063
|
var _hoisted_1$4 = ["aria-label"];
|
|
1018
1064
|
var _hoisted_2$3 = ["src", "alt"];
|
|
@@ -1020,7 +1066,7 @@ var _hoisted_3$3 = {
|
|
|
1020
1066
|
key: 1,
|
|
1021
1067
|
class: "mint-avatar__initials"
|
|
1022
1068
|
};
|
|
1023
|
-
var _hoisted_4$
|
|
1069
|
+
var _hoisted_4$2 = {
|
|
1024
1070
|
key: 2,
|
|
1025
1071
|
class: "mint-avatar__fallback",
|
|
1026
1072
|
viewBox: "0 0 24 24",
|
|
@@ -1061,7 +1107,7 @@ var Avatar_default = /* @__PURE__ */ defineComponent({
|
|
|
1061
1107
|
src: __props.src,
|
|
1062
1108
|
alt: __props.alt || __props.name || "",
|
|
1063
1109
|
class: "mint-avatar__image"
|
|
1064
|
-
}, null, 8, _hoisted_2$3)) : computedInitials.value ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(computedInitials.value), 1)) : (openBlock(), createElementBlock("svg", _hoisted_4$
|
|
1110
|
+
}, null, 8, _hoisted_2$3)) : computedInitials.value ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(computedInitials.value), 1)) : (openBlock(), createElementBlock("svg", _hoisted_4$2, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" }, null, -1)])]))], 4), __props.status ? (openBlock(), createElementBlock("span", {
|
|
1065
1111
|
key: 0,
|
|
1066
1112
|
class: normalizeClass(["mint-avatar__status", `mint-avatar__status--${__props.status}`]),
|
|
1067
1113
|
"aria-hidden": "true"
|
|
@@ -1195,21 +1241,18 @@ function humanize(value) {
|
|
|
1195
1241
|
}
|
|
1196
1242
|
//#endregion
|
|
1197
1243
|
//#region src/components/GeneratedPluginView.vue?vue&type=script&setup=true&lang.ts
|
|
1198
|
-
var _hoisted_1$3 = {
|
|
1199
|
-
var _hoisted_2$2 = {
|
|
1244
|
+
var _hoisted_1$3 = {
|
|
1200
1245
|
key: 0,
|
|
1201
1246
|
class: "mint-generated-workspace__loading"
|
|
1202
1247
|
};
|
|
1203
|
-
var
|
|
1204
|
-
key: 1,
|
|
1205
|
-
class: "mint-generated-workspace__header"
|
|
1206
|
-
};
|
|
1207
|
-
var _hoisted_4$2 = { key: 0 };
|
|
1208
|
-
var _hoisted_5$2 = {
|
|
1248
|
+
var _hoisted_2$2 = {
|
|
1209
1249
|
class: "mint-generated-workspace__resources",
|
|
1210
1250
|
"aria-label": "Job resource requirements"
|
|
1211
1251
|
};
|
|
1212
|
-
var
|
|
1252
|
+
var _hoisted_3$2 = {
|
|
1253
|
+
key: 0,
|
|
1254
|
+
class: "mint-generated-workspace__description"
|
|
1255
|
+
};
|
|
1213
1256
|
//#endregion
|
|
1214
1257
|
//#region src/components/GeneratedPluginView.vue
|
|
1215
1258
|
var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
@@ -1243,6 +1286,7 @@ var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
1243
1286
|
});
|
|
1244
1287
|
const activeDefinitionId = ref("");
|
|
1245
1288
|
const selectedJobId = ref("");
|
|
1289
|
+
const sidebarCollapsed = ref(false);
|
|
1246
1290
|
const valuesByDefinition = reactive({});
|
|
1247
1291
|
const definitions = computed(() => generated.manifest.value?.jobs ?? []);
|
|
1248
1292
|
const activeDefinition = computed(() => definitions.value.find((definition) => definition.id === activeDefinitionId.value) ?? null);
|
|
@@ -1261,13 +1305,18 @@ var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
1261
1305
|
title: generated.manifest.value?.ui.title ?? "Analysis",
|
|
1262
1306
|
subtitle: generated.manifest.value?.ui.subtitle || generated.manifest.value?.ui.description,
|
|
1263
1307
|
toasts: false,
|
|
1308
|
+
floating: true,
|
|
1264
1309
|
topBar: {
|
|
1310
|
+
variant: "card",
|
|
1265
1311
|
pills: pillNav.value,
|
|
1266
1312
|
settings: false,
|
|
1267
1313
|
standaloneLabel: props.showStandaloneLabel ? "Standalone" : false
|
|
1268
1314
|
},
|
|
1269
1315
|
sidebar: {
|
|
1270
1316
|
title: "Parameters",
|
|
1317
|
+
width: "300px",
|
|
1318
|
+
collapsible: true,
|
|
1319
|
+
collapsedWidth: "3rem",
|
|
1271
1320
|
panels: panels.value,
|
|
1272
1321
|
forms: forms.value
|
|
1273
1322
|
},
|
|
@@ -1321,6 +1370,8 @@ var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
1321
1370
|
return openBlock(), createBlock(PluginWorkspaceView_default, {
|
|
1322
1371
|
view: activeDefinitionId.value,
|
|
1323
1372
|
"onUpdate:view": _cache[0] || (_cache[0] = ($event) => activeDefinitionId.value = $event),
|
|
1373
|
+
"sidebar-collapsed": sidebarCollapsed.value,
|
|
1374
|
+
"onUpdate:sidebarCollapsed": _cache[1] || (_cache[1] = ($event) => sidebarCollapsed.value = $event),
|
|
1324
1375
|
spec: workspace.value,
|
|
1325
1376
|
values: currentValues.value,
|
|
1326
1377
|
"form-loading": unref(generated).isSubmitting.value,
|
|
@@ -1329,32 +1380,39 @@ var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
1329
1380
|
onFormSubmit: submitJob,
|
|
1330
1381
|
onJobSelect: selectJob
|
|
1331
1382
|
}, {
|
|
1332
|
-
default: withCtx(() => [
|
|
1333
|
-
|
|
1383
|
+
default: withCtx(() => [createVNode(AppContainer_default, {
|
|
1384
|
+
direction: "column",
|
|
1385
|
+
gap: "var(--mint-gutter)",
|
|
1386
|
+
class: "mint-generated-workspace"
|
|
1387
|
+
}, {
|
|
1388
|
+
default: withCtx(() => [unref(generated).isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$3, [createVNode(LoadingSpinner_default, { size: "lg" }), _cache[2] || (_cache[2] = createElementVNode("span", null, "Loading analysis workspace", -1))])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [unref(generated).error.value ? (openBlock(), createBlock(AlertBox_default, {
|
|
1334
1389
|
key: 0,
|
|
1335
1390
|
tone: "error"
|
|
1336
1391
|
}, {
|
|
1337
1392
|
default: withCtx(() => [createTextVNode(toDisplayString(unref(generated).error.value), 1)]),
|
|
1338
1393
|
_: 1
|
|
1339
|
-
})) : createCommentVNode("", true),
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1394
|
+
})) : createCommentVNode("", true), createVNode(SectionCard_default, { title: activeDefinition.value?.title ?? "Result" }, createSlots({
|
|
1395
|
+
default: withCtx(() => [activeDefinition.value?.description ? (openBlock(), createElementBlock("p", _hoisted_3$2, toDisplayString(activeDefinition.value.description), 1)) : createCommentVNode("", true), currentResult.value ? (openBlock(), createBlock(GeneratedResultRenderer_default, {
|
|
1396
|
+
key: 1,
|
|
1397
|
+
result: currentResult.value
|
|
1398
|
+
}, null, 8, ["result"])) : (openBlock(), createBlock(EmptyState_default, {
|
|
1399
|
+
key: 2,
|
|
1400
|
+
title: "No result yet",
|
|
1401
|
+
description: "Set the parameters and run the analysis. Jobs continue independently if you switch tabs.",
|
|
1402
|
+
size: "md"
|
|
1403
|
+
}))]),
|
|
1404
|
+
_: 2
|
|
1405
|
+
}, [activeDefinition.value ? {
|
|
1406
|
+
name: "actions",
|
|
1407
|
+
fn: withCtx(() => [createElementVNode("span", _hoisted_2$2, toDisplayString(resourceSummary(activeDefinition.value)), 1)]),
|
|
1408
|
+
key: "0"
|
|
1409
|
+
} : void 0]), 1032, ["title"])], 64))]),
|
|
1410
|
+
_: 1
|
|
1411
|
+
})]),
|
|
1355
1412
|
_: 1
|
|
1356
1413
|
}, 8, [
|
|
1357
1414
|
"view",
|
|
1415
|
+
"sidebar-collapsed",
|
|
1358
1416
|
"spec",
|
|
1359
1417
|
"values",
|
|
1360
1418
|
"form-loading",
|
|
@@ -1362,7 +1420,7 @@ var GeneratedPluginView_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
|
|
|
1362
1420
|
]);
|
|
1363
1421
|
};
|
|
1364
1422
|
}
|
|
1365
|
-
}), [["__scopeId", "data-v-
|
|
1423
|
+
}), [["__scopeId", "data-v-7ba9e342"]]);
|
|
1366
1424
|
//#endregion
|
|
1367
1425
|
//#region src/components/internal/PlateEditorBindingInternal.vue
|
|
1368
1426
|
var PlateEditorBindingInternal_default = /* @__PURE__ */ defineComponent({
|
|
@@ -1853,6 +1911,6 @@ var runtime_exports = /* @__PURE__ */ __exportAll({
|
|
|
1853
1911
|
useSettingsEndpoint: () => useSettingsEndpoint
|
|
1854
1912
|
});
|
|
1855
1913
|
//#endregion
|
|
1856
|
-
export { ComponentBindingRenderer_default as a, generatedJobFormSchema as c,
|
|
1914
|
+
export { useToast as _, ComponentBindingRenderer_default as a, generatedJobFormSchema as c, AppContainer_default as d, PluginWorkspaceView_default as f, AppToastContainer_default as g, useJobCenter as h, RuntimeUpdateNotice_default as i, normalizeGeneratedJobInput as l, combinePluginJobSources as m, PresenceAvatars_default as n, GeneratedPluginView_default as o, useControlWorkspace as p, usePresence as r, generatedJobDefaults as s, runtime_exports as t, Avatar_default as u };
|
|
1857
1915
|
|
|
1858
|
-
//# sourceMappingURL=runtime-
|
|
1916
|
+
//# sourceMappingURL=runtime-aZPUPxoB.js.map
|