@morscherlab/mint-sdk 1.2.3 → 1.2.5

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.
Files changed (27) hide show
  1. package/dist/__tests__/composables/createFilePickerAdapter.test.d.ts +1 -0
  2. package/dist/__tests__/composables/usePickerNavigation.test.d.ts +1 -0
  3. package/dist/components/index.js +1 -1
  4. package/dist/{components-CxQVQCpP.js → components-CZzBCakZ.js} +38 -3
  5. package/dist/{components-CxQVQCpP.js.map → components-CZzBCakZ.js.map} +1 -1
  6. package/dist/composables/createFilePickerAdapter.d.ts +18 -0
  7. package/dist/composables/index.d.ts +2 -0
  8. package/dist/composables/index.js +2 -2
  9. package/dist/composables/usePlatformFilePickerAdapter.d.ts +3 -7
  10. package/dist/{composables-DAqOU8Aq.js → composables-BCbYb2lA.js} +125 -42
  11. package/dist/composables-BCbYb2lA.js.map +1 -0
  12. package/dist/index.js +3 -3
  13. package/dist/install.js +1 -1
  14. package/dist/types/filePicker.d.ts +2 -0
  15. package/package.json +1 -1
  16. package/src/__tests__/components/FilePicker.state.test.ts +19 -0
  17. package/src/__tests__/composables/createFilePickerAdapter.test.ts +142 -0
  18. package/src/__tests__/composables/useFileBrowser.test.ts +12 -0
  19. package/src/__tests__/composables/usePickerNavigation.test.ts +149 -0
  20. package/src/__tests__/composables/usePlatformFilePickerAdapter.test.ts +18 -0
  21. package/src/composables/createFilePickerAdapter.ts +145 -0
  22. package/src/composables/filePicker/usePickerNavigation.ts +42 -2
  23. package/src/composables/index.ts +2 -0
  24. package/src/composables/useFileBrowser.ts +6 -5
  25. package/src/composables/usePlatformFilePickerAdapter.ts +24 -91
  26. package/src/types/filePicker.ts +2 -0
  27. package/dist/composables-DAqOU8Aq.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { f as BaseModal_default, h as BaseButton_default } from "../experiment-utils-CV2Wza3z.js";
2
2
  import { a as BaseSelect_default, i as BasePill_default, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "../Skeleton-jhF9wUkU.js";
3
3
  import { Bt as MultiSelect_default, Gt as BaseToggle_default, Jt as BaseTextarea_default, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, M as SequenceInput_default, O as ConcentrationInput_default, P as FormulaInput_default, R as ArtifactSelectorModal_default, St as TimePicker_default, Ut as BaseSlider_default, Wt as BaseRadioGroup_default, at as AlertBox_default, ct as SecretInput_default, j as MoleculeInput_default, k as UnitInput_default, ot as FileUploader_default, qt as Tooltip_default, st as NumberInput_default, tt as DateTimePicker_default, xt as TagsInput_default, zt as DatePicker_default } from "../useControlSchema-vLiRPUmj.js";
4
- import { $ as ScheduleCalendar_default, A as ChemicalFormula_default, At as CollapsibleCard_default, B as BioTemplateExperimentWorkspaceView_default, Bt as SegmentedControl_default, C as SequenceProgressBar_default, Ct as FormBuilder_default, Dt as AppPluginSwitcher_default, Et as AppTopBar_default, F as SmartGroupModal_default, Ft as AppToastContainer_default, G as ProgressBar_default, H as AdductText_default, Ht as ColorSlider_default, I as GroupAssigner_default, It as DataFrame_default, J as LayoutResizeHandle_default, K as StatusIndicator_default, L as RackEditor_default, Lt as LoadingSpinner_default, M as ProtocolStepEditor_default, Mt as ActionMenu_default, N as SampleHierarchyTree_default, Nt as IconButton_default, Ot as AppAvatarMenu_default, P as ReagentEditor_default, Pt as RuntimeUpdateNotice_default, Q as ComponentBindingRenderer_default, R as BioTemplatePresetWorkspaceView_default, Rt as Calendar_default, S as InstrumentAlertLog_default, St as AppSidebar_default, Tt as StepWizard_default, U as Breadcrumb_default, Ut as SearchableSelect_default, V as BioTemplateRenderer_default, Vt as BaseTabs_default, W as Avatar_default, X as DoseDesignWorkspaceView_default, Y as AppContainer_default, Z as ControlWorkspaceView_default, a as FileBrowserModal_default, at as PlateMapEditor_default, b as InstrumentStatusCard_default, bt as MobileSupportGate_default, c as TimeRangeInput_default, ct as ExperimentTimeline_default, d as AuditTrail_default, dt as JobsStatusTray_default, et as SampleSelector_default, f as LcmsSequenceTable_default, ft as GeneratedResultRenderer_default, ht as ChartContainer_default, i as ArtifactSaveDialog_default, it as ReagentList_default, j as ScientificNumber_default, jt as ThemeToggle_default, kt as PluginIcon_default, l as ExperimentDataViewer_default, lt as DoseCalculator_default, mt as PlotlyChart_default, n as FilePicker_default, nt as SmartGroupManual_default, o as SectionCard_default, ot as SampleLegend_default, pt as GeneratedPlotlyResult_default, q as Divider_default, r as FitPanel_default, rt as SmartGroupFieldRecipe_default, s as ResourceCard_default, st as WellPlate_default, tt as AutoGroupModal_default, u as BatchProgressList_default, ut as GeneratedPluginView_default, wt as FormActions_default, x as InstrumentStateBadge_default, xt as AppLayout_default, yt as PluginWorkspaceView_default, z as BioTemplatePackWorkspaceView_default, zt as DropdownButton_default } from "../components-CxQVQCpP.js";
4
+ import { $ as ScheduleCalendar_default, A as ChemicalFormula_default, At as CollapsibleCard_default, B as BioTemplateExperimentWorkspaceView_default, Bt as SegmentedControl_default, C as SequenceProgressBar_default, Ct as FormBuilder_default, Dt as AppPluginSwitcher_default, Et as AppTopBar_default, F as SmartGroupModal_default, Ft as AppToastContainer_default, G as ProgressBar_default, H as AdductText_default, Ht as ColorSlider_default, I as GroupAssigner_default, It as DataFrame_default, J as LayoutResizeHandle_default, K as StatusIndicator_default, L as RackEditor_default, Lt as LoadingSpinner_default, M as ProtocolStepEditor_default, Mt as ActionMenu_default, N as SampleHierarchyTree_default, Nt as IconButton_default, Ot as AppAvatarMenu_default, P as ReagentEditor_default, Pt as RuntimeUpdateNotice_default, Q as ComponentBindingRenderer_default, R as BioTemplatePresetWorkspaceView_default, Rt as Calendar_default, S as InstrumentAlertLog_default, St as AppSidebar_default, Tt as StepWizard_default, U as Breadcrumb_default, Ut as SearchableSelect_default, V as BioTemplateRenderer_default, Vt as BaseTabs_default, W as Avatar_default, X as DoseDesignWorkspaceView_default, Y as AppContainer_default, Z as ControlWorkspaceView_default, a as FileBrowserModal_default, at as PlateMapEditor_default, b as InstrumentStatusCard_default, bt as MobileSupportGate_default, c as TimeRangeInput_default, ct as ExperimentTimeline_default, d as AuditTrail_default, dt as JobsStatusTray_default, et as SampleSelector_default, f as LcmsSequenceTable_default, ft as GeneratedResultRenderer_default, ht as ChartContainer_default, i as ArtifactSaveDialog_default, it as ReagentList_default, j as ScientificNumber_default, jt as ThemeToggle_default, kt as PluginIcon_default, l as ExperimentDataViewer_default, lt as DoseCalculator_default, mt as PlotlyChart_default, n as FilePicker_default, nt as SmartGroupManual_default, o as SectionCard_default, ot as SampleLegend_default, pt as GeneratedPlotlyResult_default, q as Divider_default, r as FitPanel_default, rt as SmartGroupFieldRecipe_default, s as ResourceCard_default, st as WellPlate_default, tt as AutoGroupModal_default, u as BatchProgressList_default, ut as GeneratedPluginView_default, wt as FormActions_default, x as InstrumentStateBadge_default, xt as AppLayout_default, yt as PluginWorkspaceView_default, z as BioTemplatePackWorkspaceView_default, zt as DropdownButton_default } from "../components-CZzBCakZ.js";
5
5
  import { s as FormField_default, t as SettingsModal_default } from "../SettingsModal-DELMkUFR.js";
6
6
  import { r as ConfirmDialog_default, t as ExperimentPopover_default } from "../ExperimentPopover-CJdNlCZb.js";
7
7
  import { r as ExperimentCodeBadge_default, t as ExperimentSelectorModal_default } from "../ExperimentSelectorModal-DHE9k8TP.js";
@@ -20526,9 +20526,37 @@ function usePickerNavigation(adapter, request, systemFilter = () => true) {
20526
20526
  let controller;
20527
20527
  const pending = /* @__PURE__ */ new Map();
20528
20528
  const childControllers = /* @__PURE__ */ new Set();
20529
+ let prefetchTimer;
20530
+ let prefetchQueue = [];
20531
+ let prefetchActive = 0;
20532
+ function stopPrefetch() {
20533
+ clearTimeout(prefetchTimer);
20534
+ prefetchQueue = [];
20535
+ }
20536
+ function drainPrefetch() {
20537
+ while (prefetchActive < 2 && prefetchQueue.length) {
20538
+ const node = prefetchQueue.shift();
20539
+ if (!isAllowed(node) || children.value.has(node.path) || pending.has(node.path)) continue;
20540
+ prefetchActive++;
20541
+ const token = epoch;
20542
+ loadChildren(node.path).catch(() => {}).finally(() => {
20543
+ if (token !== epoch) return;
20544
+ prefetchActive--;
20545
+ drainPrefetch();
20546
+ });
20547
+ }
20548
+ }
20549
+ function prefetch(items) {
20550
+ stopPrefetch();
20551
+ const candidates = items.filter((node) => node.kind === "folder" && !node.unavailableReason && node.hasChildren !== false && isAllowed(node)).slice(0, 20);
20552
+ prefetchTimer = setTimeout(() => {
20553
+ prefetchQueue = candidates;
20554
+ drainPrefetch();
20555
+ }, 100);
20556
+ }
20529
20557
  function isAllowed(node) {
20530
20558
  const seen = /* @__PURE__ */ new Set();
20531
- let current = node;
20559
+ let current = nodes.value.get(node.path) ?? node;
20532
20560
  while (current && !seen.has(current.path)) {
20533
20561
  if (!systemFilter(current)) return false;
20534
20562
  seen.add(current.path);
@@ -20543,6 +20571,9 @@ function usePickerNavigation(adapter, request, systemFilter = () => true) {
20543
20571
  });
20544
20572
  }
20545
20573
  function invalidate() {
20574
+ adapter().invalidate?.();
20575
+ stopPrefetch();
20576
+ prefetchActive = 0;
20546
20577
  ++epoch;
20547
20578
  ++navigation;
20548
20579
  controller?.abort();
@@ -20598,6 +20629,7 @@ function usePickerNavigation(adapter, request, systemFilter = () => true) {
20598
20629
  return task;
20599
20630
  }
20600
20631
  async function load(query = "", recursive = false, refresh = false) {
20632
+ stopPrefetch();
20601
20633
  const token = ++navigation;
20602
20634
  controller?.abort();
20603
20635
  controller = new AbortController();
@@ -20617,6 +20649,7 @@ function usePickerNavigation(adapter, request, systemFilter = () => true) {
20617
20649
  if (token !== navigation) return;
20618
20650
  register(items, query.trim() ? void 0 : path.value);
20619
20651
  entries.value = items;
20652
+ if (!query.trim()) prefetch(items);
20620
20653
  } catch (cause) {
20621
20654
  if (token === navigation) error.value = cause instanceof Error ? cause.message : "Could not read this location.";
20622
20655
  } finally {
@@ -20633,8 +20666,10 @@ function usePickerNavigation(adapter, request, systemFilter = () => true) {
20633
20666
  expanding.value.add(node.path);
20634
20667
  expansionErrors.value.delete(node.path);
20635
20668
  const token = epoch;
20669
+ const view = navigation;
20636
20670
  try {
20637
- await loadChildren(node.path);
20671
+ const items = await loadChildren(node.path);
20672
+ if (token === epoch && view === navigation && expanded.value.has(node.path)) prefetch(items);
20638
20673
  } catch (cause) {
20639
20674
  if (token === epoch) expansionErrors.value.set(node.path, cause instanceof Error ? cause.message : "Could not read this folder.");
20640
20675
  } finally {
@@ -21687,4 +21722,4 @@ var components_exports = /* @__PURE__ */ __exportAll({
21687
21722
  //#endregion
21688
21723
  export { ScheduleCalendar_default as $, ChemicalFormula_default as A, CollapsibleCard_default as At, BioTemplateExperimentWorkspaceView_default as B, SegmentedControl_default as Bt, SequenceProgressBar_default as C, FormBuilder_default as Ct, formatSequenceRemaining as D, AppPluginSwitcher_default as Dt, formatSequenceEta as E, AppTopBar_default as Et, SmartGroupModal_default as F, AppToastContainer_default as Ft, ProgressBar_default as G, AdductText_default as H, ColorSlider_default as Ht, GroupAssigner_default as I, DataFrame_default as It, LayoutResizeHandle_default as J, StatusIndicator_default as K, RackEditor_default as L, LoadingSpinner_default as Lt, ProtocolStepEditor_default as M, ActionMenu_default as Mt, SampleHierarchyTree_default as N, IconButton_default as Nt, sequenceProgressPercent as O, AppAvatarMenu_default as Ot, ReagentEditor_default as P, RuntimeUpdateNotice_default as Pt, ComponentBindingRenderer_default as Q, BioTemplatePresetWorkspaceView_default as R, Calendar_default as Rt, InstrumentAlertLog_default as S, AppSidebar_default as St, estimateSequenceRemainingSeconds as T, StepWizard_default as Tt, Breadcrumb_default as U, SearchableSelect_default as Ut, BioTemplateRenderer_default as V, BaseTabs_default as Vt, Avatar_default as W, DoseDesignWorkspaceView_default as X, AppContainer_default as Y, ControlWorkspaceView_default as Z, inferLcmsPlateTypeFromWellIds as _, generatedJobFormSchema as _t, FileBrowserModal_default as a, PlateMapEditor_default as at, InstrumentStatusCard_default as b, MobileSupportGate_default as bt, TimeRangeInput_default as c, ExperimentTimeline_default as ct, AuditTrail_default as d, JobsStatusTray_default as dt, SampleSelector_default as et, LcmsSequenceTable_default as f, GeneratedResultRenderer_default as ft, extractLcmsSampleName as g, generatedJobDefaults as gt, extractLcmsCommonPrefix as h, ChartContainer_default as ht, ArtifactSaveDialog_default as i, ReagentList_default as it, ScientificNumber_default as j, ThemeToggle_default as jt, sequenceSamplesRemaining as k, PluginIcon_default as kt, ExperimentDataViewer_default as l, DoseCalculator_default as lt, basenameFromWindowsPath as m, PlotlyChart_default as mt, FilePicker_default as n, SmartGroupManual_default as nt, SectionCard_default as o, SampleLegend_default as ot, DEFAULT_LCMS_SEQUENCE_COLUMNS as p, GeneratedPlotlyResult_default as pt, Divider_default as q, FitPanel_default as r, SmartGroupFieldRecipe_default as rt, ResourceCard_default as s, WellPlate_default as st, components_exports as t, AutoGroupModal_default as tt, BatchProgressList_default as u, GeneratedPluginView_default as ut, lcmsWellIdFromPosition as v, normalizeGeneratedJobInput as vt, estimateSequenceFinishDate as w, FormActions_default as wt, InstrumentStateBadge_default as x, AppLayout_default as xt, reconstructLcmsPlateCellsFromSequenceItems as y, PluginWorkspaceView_default as yt, BioTemplatePackWorkspaceView_default as z, DropdownButton_default as zt };
21689
21724
 
21690
- //# sourceMappingURL=components-CxQVQCpP.js.map
21725
+ //# sourceMappingURL=components-CZzBCakZ.js.map