@morscherlab/mint-sdk 1.2.0-beta.16 → 1.2.0-beta.18
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/components/index.js +1 -1
- package/dist/{components-DT6ggNrt.js → components-DT7ywo_B.js} +2 -2
- package/dist/{components-DT6ggNrt.js.map → components-DT7ywo_B.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/install.js +1 -1
- package/package.json +1 -1
- package/src/__tests__/components/FilePicker.test.ts +14 -0
- package/src/composables/filePicker/usePickerSelection.ts +3 -1
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { a as useAuthStore, c as paletteCssVariables, d as useSettingsStore, f a
|
|
|
2
2
|
import { a as SORT_OPTIONS, c as formatExperimentDate, d as resolveExperimentCode, f as BaseModal_default, h as BaseButton_default, i as EXPERIMENT_STATUS_VARIANT_MAP, l as formatExperimentStatus, m as useEventListener, n as EXPERIMENT_STATUS_LABELS, o as datePresetToISO, p as useFocusTrap, r as EXPERIMENT_STATUS_OPTIONS, s as experimentIdFromRoute, t as DATE_PRESET_OPTIONS, u as getExperimentStatusVariant } from "./experiment-utils-CV2Wza3z.js";
|
|
3
3
|
import { a as BaseSelect_default, i as BasePill_default, n as useRequestSyncState, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "./Skeleton-JaDtC8-9.js";
|
|
4
4
|
import { $ as resolveJobCapabilities, A as useConcentrationUnits, At as formatTimeSlot, Bt as MultiSelect_default, C as controlsToViewIds, Ct as addMinutes, D as getTypeDefault, Dt as findNearestTimeSlotIndex, E as getFieldRegistryEntry, Et as findAvailableSlots, F as ATOMIC_WEIGHTS, Ft as rangesOverlap, G as createGeneratedAnalysisTransport, Gt as BaseToggle_default, Ht as useSelectionLimit, I as useChemicalFormula, It as snapToSlot, J as isActiveJobStatus, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, Lt as toMinutes, M as SequenceInput_default, Mt as generateTimeSlots, N as useSequenceUtils, Nt as isTimeInRange, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, Pt as parseTime, Q as normalizeJobState, R as ArtifactSelectorModal_default, Rt as useTimeUtils, S as controlsToTopBarSettingsConfig, St as TimePicker_default, T as getDefaultControlView, Tt as durationMinutes, Ut as BaseSlider_default, Vt as useListSelection, W as resolveCurrentPluginId, Wt as BaseRadioGroup_default, X as jobStatusLabel, Y as isTerminalJobStatus, Z as normalizeJobPercent, _ as controlsToFormSchema, _t as pluginSecretLabel, a as defineDoseCalculatorControlProps, at as AlertBox_default, b as controlsToSettingsSchema, bt as usesPluginSecretReferences, c as defineWellPlateDoseComponentBindings, ct as SecretInput_default, d as defineControlModel, dt as PLUGIN_SECRET_REF_KEY, ft as clearPluginSecret, gt as pluginSecretId, h as controlValuesToComponentProps, ht as keepPluginSecret, i as useControlSchema, j as MoleculeInput_default, jt as fromMinutes, k as UnitInput_default, kt as formatTime, l as defineWellPlateDoseControlProps, lt as PLUGIN_SECRET_FORMAT_KEY, m as controlValuesToComponentBindingsById, mt as isPluginSecretRef, n as defineControls, o as defineDoseDesignControlModel, ot as FileUploader_default, p as controlValuesToComponentBindings, pt as isPluginSecretLocked, q as usePluginJobs, qt as Tooltip_default, r as getControlDefaults, s as defineWellPlateControlProps, st as NumberInput_default, t as defineControlComponentBindings, tt as DateTimePicker_default, u as useControlWorkspace, ut as PLUGIN_SECRET_FORMAT_REF, v as controlsToSectionFormSchema, vt as pluginSecretState, w as controlsToViewItems, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, yt as setPluginSecret, z as useAnalysisArtifacts, zt as DatePicker_default } from "./useControlSchema-BAzmP1_y.js";
|
|
5
|
-
import { $ as AutoGroupModal_default, A as ChemicalFormula_default, At as ActionMenu_default, B as BioTemplateExperimentWorkspaceView_default, Bt as ColorSlider_default, C as SequenceProgressBar_default, Ct as StepWizard_default, D as formatSequenceRemaining, Dt as PluginIcon_default, E as formatSequenceEta, Et as AppAvatarMenu_default, F as SmartGroupModal_default, Ft as LoadingSpinner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as GroupAssigner_default, It as Calendar_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as RackEditor_default, Lt as DropdownButton_default, M as ProtocolStepEditor_default, Mt as RuntimeUpdateNotice_default, N as SampleHierarchyTree_default, Nt as AppToastContainer_default, O as sequenceProgressPercent, Ot as CollapsibleCard_default, P as ReagentEditor_default, Pt as DataFrame_default, Q as SampleSelector_default, R as BioTemplatePresetWorkspaceView_default, Rt as SegmentedControl_default, S as InstrumentAlertLog_default, St as FormActions_default, T as estimateSequenceRemainingSeconds, Tt as AppPluginSwitcher_default, U as Avatar_default, V as BioTemplateRenderer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _ as inferLcmsPlateTypeFromWellIds, _t as PluginWorkspaceView_default, a as FileBrowserModal_default, at as WellPlate_default, b as InstrumentStatusCard_default, bt as AppSidebar_default, c as TimeRangeInput_default, ct as GeneratedPluginView_default, d as AuditTrail_default, dt as GeneratedPlotlyResult_default, et as SmartGroupManual_default, f as LcmsSequenceTable_default, ft as PlotlyChart_default, g as extractLcmsSampleName, gt as normalizeGeneratedJobInput, h as extractLcmsCommonPrefix, ht as generatedJobFormSchema, i as ArtifactSaveDialog_default, it as SampleLegend_default, j as ScientificNumber_default, jt as IconButton_default, k as sequenceSamplesRemaining, kt as ThemeToggle_default, l as ExperimentDataViewer_default, lt as JobsStatusTray_default, m as basenameFromWindowsPath, mt as generatedJobDefaults, n as FilePicker_default, nt as ReagentList_default, o as SectionCard_default, ot as ExperimentTimeline_default, p as DEFAULT_LCMS_SEQUENCE_COLUMNS, pt as ChartContainer_default, q as AppContainer_default, r as FitPanel_default, rt as PlateMapEditor_default, s as ResourceCard_default, st as DoseCalculator_default, tt as SmartGroupFieldRecipe_default, u as BatchProgressList_default, ut as GeneratedResultRenderer_default, v as lcmsWellIdFromPosition, vt as MobileSupportGate_default, w as estimateSequenceFinishDate, wt as AppTopBar_default, x as InstrumentStateBadge_default, xt as FormBuilder_default, y as reconstructLcmsPlateCellsFromSequenceItems, yt as AppLayout_default, z as BioTemplatePackWorkspaceView_default, zt as BaseTabs_default } from "./components-
|
|
5
|
+
import { $ as AutoGroupModal_default, A as ChemicalFormula_default, At as ActionMenu_default, B as BioTemplateExperimentWorkspaceView_default, Bt as ColorSlider_default, C as SequenceProgressBar_default, Ct as StepWizard_default, D as formatSequenceRemaining, Dt as PluginIcon_default, E as formatSequenceEta, Et as AppAvatarMenu_default, F as SmartGroupModal_default, Ft as LoadingSpinner_default, G as StatusIndicator_default, H as Breadcrumb_default, I as GroupAssigner_default, It as Calendar_default, J as DoseDesignWorkspaceView_default, K as Divider_default, L as RackEditor_default, Lt as DropdownButton_default, M as ProtocolStepEditor_default, Mt as RuntimeUpdateNotice_default, N as SampleHierarchyTree_default, Nt as AppToastContainer_default, O as sequenceProgressPercent, Ot as CollapsibleCard_default, P as ReagentEditor_default, Pt as DataFrame_default, Q as SampleSelector_default, R as BioTemplatePresetWorkspaceView_default, Rt as SegmentedControl_default, S as InstrumentAlertLog_default, St as FormActions_default, T as estimateSequenceRemainingSeconds, Tt as AppPluginSwitcher_default, U as Avatar_default, V as BioTemplateRenderer_default, W as ProgressBar_default, X as ComponentBindingRenderer_default, Y as ControlWorkspaceView_default, Z as ScheduleCalendar_default, _ as inferLcmsPlateTypeFromWellIds, _t as PluginWorkspaceView_default, a as FileBrowserModal_default, at as WellPlate_default, b as InstrumentStatusCard_default, bt as AppSidebar_default, c as TimeRangeInput_default, ct as GeneratedPluginView_default, d as AuditTrail_default, dt as GeneratedPlotlyResult_default, et as SmartGroupManual_default, f as LcmsSequenceTable_default, ft as PlotlyChart_default, g as extractLcmsSampleName, gt as normalizeGeneratedJobInput, h as extractLcmsCommonPrefix, ht as generatedJobFormSchema, i as ArtifactSaveDialog_default, it as SampleLegend_default, j as ScientificNumber_default, jt as IconButton_default, k as sequenceSamplesRemaining, kt as ThemeToggle_default, l as ExperimentDataViewer_default, lt as JobsStatusTray_default, m as basenameFromWindowsPath, mt as generatedJobDefaults, n as FilePicker_default, nt as ReagentList_default, o as SectionCard_default, ot as ExperimentTimeline_default, p as DEFAULT_LCMS_SEQUENCE_COLUMNS, pt as ChartContainer_default, q as AppContainer_default, r as FitPanel_default, rt as PlateMapEditor_default, s as ResourceCard_default, st as DoseCalculator_default, tt as SmartGroupFieldRecipe_default, u as BatchProgressList_default, ut as GeneratedResultRenderer_default, v as lcmsWellIdFromPosition, vt as MobileSupportGate_default, w as estimateSequenceFinishDate, wt as AppTopBar_default, x as InstrumentStateBadge_default, xt as FormBuilder_default, y as reconstructLcmsPlateCellsFromSequenceItems, yt as AppLayout_default, z as BioTemplatePackWorkspaceView_default, zt as BaseTabs_default } from "./components-DT7ywo_B.js";
|
|
6
6
|
import { s as FormField_default, t as SettingsModal_default } from "./SettingsModal-DQUcpT4T.js";
|
|
7
7
|
import { $ as getInjectedFrontendRevision, A as useFileImport, B as REORDER_ANNOUNCER_STYLE, C as useExpansionSet, D as detectDelimiter, F as extractSampleNamesFromDesignData, G as combinePluginJobSources, H as useListReorder, I as extractSampleOptionsFromDesignData, J as usePluginWorkspace, K as useJobsStatusTray, L as unwrapExperimentDesignData, M as extractSamplesFromDesignData, N as useAutoGroup, O as parseDelimitedText, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, U as useReorderAnnouncer, V as reorderList, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, _ as useBioTemplateControls, a as DEFAULT_PRESETS, at as candidateMatchesSearch, b as useScheduleDrag, c as useReagentSeries, ct as compareSortValues, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, g as useBioTemplateComponents, h as toBioTemplateComponentPropsByComponent, i as useProtocolTemplates, it as useToast, j as validateImportFile, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, m as getBioTemplateComponentProps, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, ot as normalizeSearchQuery, p as useBioTemplateWorkspace, q as usePluginJobCenter, rt as useTheme, s as generateDilutionSeries, st as useTextSearch, tt as getPresenceClientId, u as useRackEditor, ut as useMenuKeyboard, v as useTemplateCollection, w as useSampleGroups, x as useExperimentSamples, y as useExperimentSave, z as useWellPlateEditor } from "./validation-OuEr0iAS.js";
|
|
8
8
|
import { i as usePlatformContext, n as evaluateCondition, r as useForm, t as useFormBuilder } from "./useFormBuilder-DEHejpiL.js";
|
package/dist/install.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./useControlSchema-BAzmP1_y.js";
|
|
2
|
-
import { t as components_exports } from "./components-
|
|
2
|
+
import { t as components_exports } from "./components-DT7ywo_B.js";
|
|
3
3
|
//#region src/install.ts
|
|
4
4
|
/**
|
|
5
5
|
* Vue plugin that registers all MINT SDK components globally.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morscherlab/mint-sdk",
|
|
3
|
-
"version": "1.2.0-beta.
|
|
3
|
+
"version": "1.2.0-beta.18",
|
|
4
4
|
"description": "MINT Platform SDK — Vue 3 components, composables, and types for plugin development. MINT = Mass-spec INtegrated Toolkit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -204,6 +204,20 @@ describe('FilePicker', () => {
|
|
|
204
204
|
expect(row(wrapper, other.path).attributes('aria-selected')).toBe('false')
|
|
205
205
|
})
|
|
206
206
|
|
|
207
|
+
it('accumulates plain clicks in multi modes and Shift still extends a range', async () => {
|
|
208
|
+
const wrapper = await setup()
|
|
209
|
+
await expand(wrapper)
|
|
210
|
+
await row(wrapper, one.path).trigger('click')
|
|
211
|
+
await row(wrapper, two.path).trigger('click')
|
|
212
|
+
expect(row(wrapper, one.path).attributes('aria-selected')).toBe('true')
|
|
213
|
+
expect(row(wrapper, two.path).attributes('aria-selected')).toBe('true')
|
|
214
|
+
await row(wrapper, two.path).trigger('click')
|
|
215
|
+
expect(row(wrapper, two.path).attributes('aria-selected')).toBe('false')
|
|
216
|
+
await row(wrapper, folder.path).trigger('click', { shiftKey: true })
|
|
217
|
+
expect(row(wrapper, folder.path).attributes('aria-selected')).toBe('true')
|
|
218
|
+
expect(row(wrapper, two.path).attributes('aria-selected')).toBe('true')
|
|
219
|
+
})
|
|
220
|
+
|
|
207
221
|
it('toggles a selected folder off with a second plain click', async () => {
|
|
208
222
|
const wrapper = await setup()
|
|
209
223
|
await row(wrapper, folder.path).trigger('click')
|
|
@@ -74,7 +74,9 @@ export function usePickerSelection(
|
|
|
74
74
|
focusPath.value = node.path
|
|
75
75
|
if (!selectable(node)) return
|
|
76
76
|
const multi = mode() === 'multi-file' || mode() === 'folder+files'
|
|
77
|
-
|
|
77
|
+
// Multi modes behave like a checklist: a plain click (or Space) adds or
|
|
78
|
+
// removes one row, Shift extends a range, Ctrl/Cmd is accepted for habit.
|
|
79
|
+
const additive = multi && (modifiers.metaKey || modifiers.ctrlKey || modifiers.toggle)
|
|
78
80
|
if (multi && modifiers.shiftKey && anchor) {
|
|
79
81
|
const rows = nav.rows.value.map((row) => row.node)
|
|
80
82
|
const from = rows.findIndex((item) => item.path === anchor)
|