@morscherlab/mint-sdk 1.2.0-beta.2 → 1.2.0-beta.20
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/README.md +65 -5
- package/dist/{ExperimentPopover-tLwJ7XF4.js → ExperimentPopover-CJdNlCZb.js} +24 -15
- package/dist/ExperimentPopover-CJdNlCZb.js.map +1 -0
- package/dist/{ExperimentSelectorModal-DyPAUCLw.js → ExperimentSelectorModal-DCXmwKNS.js} +5 -5
- package/dist/ExperimentSelectorModal-DCXmwKNS.js.map +1 -0
- package/dist/{SettingsModal-BgKY93zh.js → SettingsModal-BYR20I4c.js} +5 -8
- package/dist/SettingsModal-BYR20I4c.js.map +1 -0
- package/dist/{EmptyState-p90quq8Z.js → Skeleton-BAF3CKY7.js} +111 -93
- package/dist/Skeleton-BAF3CKY7.js.map +1 -0
- package/dist/__tests__/components/DataStates.test.d.ts +1 -0
- package/dist/__tests__/components/ExperimentTimeline.test.d.ts +1 -0
- package/dist/__tests__/components/FileBrowserModal.test.d.ts +1 -0
- package/dist/__tests__/components/FilePicker.state.test.d.ts +1 -0
- package/dist/__tests__/components/FilePicker.test.d.ts +1 -0
- package/dist/__tests__/components/PlotlyChart.test.d.ts +1 -0
- package/dist/__tests__/components/PluginWorkspaceView.internal.test.d.ts +1 -0
- package/dist/__tests__/components/SecretInput.test.d.ts +1 -0
- package/dist/__tests__/components/WellEditPopupInternal.test.d.ts +1 -0
- package/dist/__tests__/components/iconButtonIconSizing.test.d.ts +1 -0
- package/dist/__tests__/composables/useFileBrowser.test.d.ts +1 -0
- package/dist/__tests__/composables/useListReorder.test.d.ts +1 -0
- package/dist/__tests__/composables/usePlatformFilePickerAdapter.test.d.ts +1 -0
- package/dist/__tests__/composables/usePluginConfig.test.d.ts +15 -0
- package/dist/__tests__/styles/cssTokens.test.d.ts +1 -0
- package/dist/apiErrors.d.ts +26 -0
- package/dist/components/ActionMenu.vue.d.ts +1 -1
- package/dist/components/AppAvatarMenu.vue.d.ts +4 -0
- package/dist/components/AppPluginSwitcher.vue.d.ts +2 -0
- package/dist/components/AppSidebar.vue.d.ts +1 -1
- package/dist/components/AuditTrail.vue.d.ts +13 -0
- package/dist/components/AutoGroupModal.vue.d.ts +1 -1
- package/dist/components/BaseInput.vue.d.ts +1 -1
- package/dist/components/BaseSelect.vue.d.ts +1 -1
- package/dist/components/BaseTextarea.vue.d.ts +1 -1
- package/dist/components/BatchProgressList.vue.d.ts +17 -0
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +4 -4
- package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +2 -2
- package/dist/components/ConcentrationInput.vue.d.ts +1 -1
- package/dist/components/DataFrame.vue.d.ts +14 -2
- package/dist/components/DatePicker.vue.d.ts +2 -2
- package/dist/components/DateTimePicker.vue.d.ts +3 -1
- package/dist/components/DropdownButton.vue.d.ts +2 -0
- package/dist/components/ExperimentDataViewer.vue.d.ts +26 -1
- package/dist/components/ExperimentPopover.vue.d.ts +1 -0
- package/dist/components/ExperimentTimeline.vue.d.ts +29 -1
- package/dist/components/FileBrowserModal.vue.d.ts +99 -0
- package/dist/components/FilePicker.vue.d.ts +32 -0
- package/dist/components/FileUploader.vue.d.ts +5 -2
- package/dist/components/FitPanel.vue.d.ts +1 -1
- package/dist/components/FormulaInput.vue.d.ts +1 -1
- package/dist/components/GeneratedPlotlyResult.vue.d.ts +1 -3
- package/dist/components/JobsStatusTray.vue.d.ts +9 -2
- package/dist/components/LcmsSequenceTable.vue.d.ts +29 -1
- package/dist/components/MobileSupportGate.vue.d.ts +1 -1
- package/dist/components/MoleculeInput.vue.d.ts +1 -1
- package/dist/components/NumberInput.vue.d.ts +1 -1
- package/dist/components/PlotlyChart.vue.d.ts +59 -0
- package/dist/components/PluginWorkspaceView.props.d.ts +29 -1
- package/dist/components/PluginWorkspaceView.vue.d.ts +5 -5
- package/dist/components/ProgressBar.vue.d.ts +1 -1
- package/dist/components/ProtocolStepEditor.vue.d.ts +1 -0
- package/dist/components/ReagentList.vue.d.ts +29 -1
- package/dist/components/ResourceCard.vue.d.ts +1 -1
- package/dist/components/SampleHierarchyTree.vue.d.ts +29 -1
- package/dist/components/SampleLegend.vue.d.ts +1 -1
- package/dist/components/SampleSelector.drag.d.ts +13 -0
- package/dist/components/SampleSelector.tree.d.ts +2 -0
- package/dist/components/SampleSelector.vue.d.ts +35 -2
- package/dist/components/ScheduleCalendar.vue.d.ts +20 -0
- package/dist/components/SecretInput.vue.d.ts +28 -0
- package/dist/components/SequenceInput.vue.d.ts +1 -1
- package/dist/components/SettingsModal.vue.d.ts +1 -1
- package/dist/components/SmartGroupFieldRecipe.vue.d.ts +2 -1
- package/dist/components/StatusIndicator.vue.d.ts +1 -1
- package/dist/components/TagsInput.vue.d.ts +1 -1
- package/dist/components/TimePicker.vue.d.ts +2 -1
- package/dist/components/TimeRangeInput.vue.d.ts +1 -1
- package/dist/components/UnitInput.vue.d.ts +1 -1
- package/dist/components/WellPlate.geometry.d.ts +15 -0
- package/dist/components/WellPlate.interaction.d.ts +13 -0
- package/dist/components/WellPlate.vue.d.ts +30 -1
- package/dist/components/fileBrowserPresentation.d.ts +10 -0
- package/dist/components/index.d.ts +13 -0
- package/dist/components/index.js +8 -8
- package/dist/components/internal/AppTopBarPageSelectorInternal.vue.d.ts +2 -0
- package/dist/components/internal/DataStateInternal.vue.d.ts +43 -0
- package/dist/components/internal/FileBrowserDialogInternal.vue.d.ts +34 -0
- package/dist/components/internal/FileBrowserListingInternal.vue.d.ts +25 -0
- package/dist/components/internal/FileBrowserToolbarInternal.vue.d.ts +26 -0
- package/dist/components/internal/FilePickerPreviewInternal.vue.d.ts +18 -0
- package/dist/components/internal/FilePickerTreeInternal.vue.d.ts +31 -0
- package/dist/components/internal/WellEditPopupInternal.vue.d.ts +3 -1
- package/dist/components/internal/WorkspaceControlsInternal.vue.d.ts +23 -0
- package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +70 -0
- package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +43 -0
- package/dist/{components-DkHddRMl.js → components-DIum5hkx.js} +5882 -3200
- package/dist/components-DIum5hkx.js.map +1 -0
- package/dist/composables/controlSchemaTypes.d.ts +34 -0
- package/dist/composables/filePicker/localFiles.d.ts +3 -0
- package/dist/composables/filePicker/usePickerNavigation.d.ts +96 -0
- package/dist/composables/filePicker/usePickerSelection.d.ts +31 -0
- package/dist/composables/filePicker/validation.d.ts +5 -0
- package/dist/composables/flattenWorkspaceBindings.d.ts +61 -0
- package/dist/composables/index.d.ts +11 -2
- package/dist/composables/index.js +10 -10
- package/dist/composables/pluginWorkspaceModel.d.ts +164 -0
- package/dist/composables/useApi.d.ts +14 -7
- package/dist/composables/useAsync.d.ts +5 -1
- package/dist/composables/useBioTemplateWorkspace.d.ts +4 -20
- package/dist/composables/useCommandHistory.d.ts +5 -1
- package/dist/composables/useDropdownState.d.ts +18 -2
- package/dist/composables/useEventStream.d.ts +9 -0
- package/dist/composables/useFileBrowser.d.ts +55 -0
- package/dist/composables/useFilePicker.d.ts +189 -0
- package/dist/composables/useFocusTrap.d.ts +21 -0
- package/dist/composables/useGeneratedAnalysis.d.ts +3 -1
- package/dist/composables/useJobsStatusTray.d.ts +25 -1
- package/dist/composables/useListReorder.d.ts +90 -0
- package/dist/composables/useMenuKeyboard.d.ts +29 -0
- package/dist/composables/useOptimisticMutation.d.ts +5 -1
- package/dist/composables/usePlatformFilePickerAdapter.d.ts +11 -0
- package/dist/composables/usePluginClient.d.ts +2 -0
- package/dist/composables/usePluginConfig.d.ts +27 -0
- package/dist/composables/usePluginWorkspace.d.ts +51 -0
- package/dist/composables/useRequestSyncState.d.ts +42 -2
- package/dist/composables/useResourceCrud.d.ts +5 -1
- package/dist/composables/useRovingFocus.d.ts +24 -0
- package/dist/composables/useScheduleDrag.d.ts +1 -0
- package/dist/composables/useWellPainting.d.ts +5 -1
- package/dist/composables/useWellPlateAdapter.d.ts +5 -1
- package/dist/composables/useWellPlateValidation.d.ts +5 -1
- package/dist/composables/workspaceRecipes.d.ts +188 -0
- package/dist/{composables-C_i90sGS.js → composables-mFXsTA4g.js} +502 -86
- package/dist/composables-mFXsTA4g.js.map +1 -0
- package/dist/{useApi-J6zFkHmn.js → errors-BLuqMee5.js} +179 -16
- package/dist/errors-BLuqMee5.js.map +1 -0
- package/dist/{experiment-Cq145oEW.js → experiment-CVDRAnqp.js} +3 -8
- package/dist/experiment-CVDRAnqp.js.map +1 -0
- package/dist/{experiment-utils-CLnzPPq5.js → experiment-utils-CV2Wza3z.js} +70 -51
- package/dist/experiment-utils-CV2Wza3z.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +15 -15
- package/dist/install.js +2 -7
- package/dist/install.js.map +1 -1
- package/dist/permissions.d.ts +42 -1
- package/dist/permissions.js +20 -10
- package/dist/permissions.js.map +1 -1
- package/dist/stores/auth.d.ts +6 -0
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/index.js +3 -3
- package/dist/stores/settings.d.ts +31 -1
- package/dist/styles.css +15135 -32397
- package/dist/templates/builderReadUtils.d.ts +1 -1
- package/dist/templates/index.js +2 -4
- package/dist/{templates-DsP51i-S.js → templates-CmGfmBRA.js} +303 -106
- package/dist/templates-CmGfmBRA.js.map +1 -0
- package/dist/types/auth.d.ts +1 -0
- package/dist/types/fileBrowserTypes.d.ts +77 -0
- package/dist/types/filePicker.d.ts +77 -0
- package/dist/types/form-builder.d.ts +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/{useControlSchema-BDx2Olha.js → useControlSchema-DldpxNOP.js} +499 -1162
- package/dist/useControlSchema-DldpxNOP.js.map +1 -0
- package/dist/{useDropdownState-DSb3BC3N.js → useDropdownState-C7hRiVQf.js} +22 -6
- package/dist/useDropdownState-C7hRiVQf.js.map +1 -0
- package/dist/{useExperimentSelector-CV4iNfMS.js → useExperimentSelector-CEcIaueJ.js} +4 -4
- package/dist/{useExperimentSelector-CV4iNfMS.js.map → useExperimentSelector-CEcIaueJ.js.map} +1 -1
- package/dist/{useFormBuilder-BLxG3BOX.js → useFormBuilder-z5L_dUIy.js} +2 -2
- package/dist/{useFormBuilder-BLxG3BOX.js.map → useFormBuilder-z5L_dUIy.js.map} +1 -1
- package/dist/utils/color.d.ts +13 -0
- package/dist/utils/errors.d.ts +9 -0
- package/dist/utils/pluginSecrets.d.ts +53 -0
- package/dist/utils/records.d.ts +4 -0
- package/dist/{useProtocolTemplates-CS_SQl6U.js → validation-uwoJGEb6.js} +811 -212
- package/dist/validation-uwoJGEb6.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/apiErrors.test.ts +81 -0
- package/src/__tests__/components/ActionMenu.test.ts +94 -0
- package/src/__tests__/components/AppAvatarMenu.test.ts +123 -0
- package/src/__tests__/components/BaseTabs.test.ts +67 -0
- package/src/__tests__/components/DataFrame.test.ts +183 -11
- package/src/__tests__/components/DataStates.test.ts +176 -0
- package/src/__tests__/components/DatePicker.test.ts +76 -0
- package/src/__tests__/components/DateTimePicker.test.ts +36 -0
- package/src/__tests__/components/DropdownButton.test.ts +134 -0
- package/src/__tests__/components/ExperimentPopover.test.ts +30 -0
- package/src/__tests__/components/ExperimentTimeline.test.ts +63 -0
- package/src/__tests__/components/FileBrowserModal.test.ts +460 -0
- package/src/__tests__/components/FilePicker.state.test.ts +287 -0
- package/src/__tests__/components/FilePicker.test.ts +487 -0
- package/src/__tests__/components/GeneratedPlotlyResult.test.ts +52 -5
- package/src/__tests__/components/GroupAssigner.test.ts +53 -0
- package/src/__tests__/components/LcmsSequenceTable.test.ts +22 -0
- package/src/__tests__/components/PlotlyChart.test.ts +305 -0
- package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +230 -0
- package/src/__tests__/components/RackEditor.test.ts +35 -0
- package/src/__tests__/components/ReagentList.test.ts +64 -2
- package/src/__tests__/components/RetiredStyles.test.ts +31 -0
- package/src/__tests__/components/SampleSelector.drag.test.ts +51 -1
- package/src/__tests__/components/ScheduleCalendar.test.ts +63 -0
- package/src/__tests__/components/SecretInput.test.ts +87 -0
- package/src/__tests__/components/SegmentedControl.test.ts +107 -0
- package/src/__tests__/components/TimePicker.test.ts +61 -0
- package/src/__tests__/components/WellEditPopupInternal.test.ts +108 -0
- package/src/__tests__/components/WellPlate.interaction.test.ts +59 -0
- package/src/__tests__/components/iconButtonIconSizing.test.ts +18 -0
- package/src/__tests__/composables/useApi.test.ts +92 -9
- package/src/__tests__/composables/useAuth.test.ts +2 -0
- package/src/__tests__/composables/useDropdownState.test.ts +58 -1
- package/src/__tests__/composables/useFileBrowser.test.ts +305 -0
- package/src/__tests__/composables/useGeneratedAnalysis.test.ts +7 -2
- package/src/__tests__/composables/useListReorder.test.ts +145 -0
- package/src/__tests__/composables/usePlatformFilePickerAdapter.test.ts +67 -0
- package/src/__tests__/composables/usePluginClient.test.ts +143 -0
- package/src/__tests__/composables/usePluginConfig.test.ts +497 -0
- package/src/__tests__/composables/useRequestSyncState.test.ts +140 -0
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +39 -7
- package/src/__tests__/stores/settings.test.ts +71 -1
- package/src/__tests__/styles/cssTokens.test.ts +131 -0
- package/src/__tests__/utils/permissions.test.ts +68 -0
- package/src/apiErrors.ts +85 -0
- package/src/components/ActionMenu.vue +45 -88
- package/src/components/AlertBox.vue +0 -4
- package/src/components/AppAvatarMenu.vue +26 -7
- package/src/components/AppLayout.vue +0 -4
- package/src/components/AppPluginSwitcher.story.vue +87 -0
- package/src/components/AppPluginSwitcher.vue +2 -5
- package/src/components/AppSidebar.vue +0 -4
- package/src/components/AppToastContainer.vue +6 -8
- package/src/components/AppTopBar.vue +0 -4
- package/src/components/ArtifactSaveDialog.vue +0 -4
- package/src/components/ArtifactSelectorModal.vue +0 -4
- package/src/components/AuditTrail.story.vue +18 -0
- package/src/components/AuditTrail.vue +27 -7
- package/src/components/AutoGroupModal.vue +0 -4
- package/src/components/Avatar.vue +0 -4
- package/src/components/BaseButton.vue +0 -4
- package/src/components/BaseCheckbox.vue +0 -4
- package/src/components/BaseInput.vue +0 -4
- package/src/components/BaseModal.vue +8 -60
- package/src/components/BasePill.vue +0 -4
- package/src/components/BaseRadioGroup.vue +0 -4
- package/src/components/BaseSelect.vue +0 -4
- package/src/components/BaseSlider.vue +0 -4
- package/src/components/BaseTabs.vue +26 -5
- package/src/components/BaseTextarea.vue +0 -4
- package/src/components/BaseToggle.vue +0 -4
- package/src/components/BatchProgressList.story.vue +18 -0
- package/src/components/BatchProgressList.vue +32 -4
- package/src/components/BioTemplateExperimentWorkspaceView.vue +10 -21
- package/src/components/BioTemplatePackWorkspaceView.vue +11 -15
- package/src/components/BioTemplatePresetWorkspaceView.vue +8 -13
- package/src/components/Breadcrumb.vue +0 -4
- package/src/components/Calendar.vue +0 -4
- package/src/components/ChartContainer.story.vue +1 -1
- package/src/components/ChartContainer.vue +0 -4
- package/src/components/ChemicalFormula.vue +0 -4
- package/src/components/CollapsibleCard.vue +0 -4
- package/src/components/ColorSlider.vue +0 -4
- package/src/components/ComponentBindingRenderer.vue +1 -3
- package/src/components/ConcentrationInput.vue +0 -4
- package/src/components/ConfirmDialog.vue +0 -4
- package/src/components/ControlWorkspaceView.vue +11 -22
- package/src/components/DataFrame.story.vue +14 -0
- package/src/components/DataFrame.vue +97 -23
- package/src/components/DatePicker.vue +73 -27
- package/src/components/DateTimePicker.vue +45 -17
- package/src/components/Divider.vue +0 -4
- package/src/components/DoseCalculator.vue +0 -4
- package/src/components/DoseDesignWorkspaceView.vue +6 -25
- package/src/components/DropdownButton.vue +24 -6
- package/src/components/EmptyState.vue +0 -4
- package/src/components/ExperimentCodeBadge.vue +0 -4
- package/src/components/ExperimentDataViewer.story.vue +3 -0
- package/src/components/ExperimentDataViewer.vue +33 -13
- package/src/components/ExperimentPopover.vue +12 -7
- package/src/components/ExperimentSelectorModal.vue +0 -4
- package/src/components/ExperimentTimeline.story.vue +18 -0
- package/src/components/ExperimentTimeline.vue +81 -75
- package/src/components/FileBrowserModal.story.vue +203 -0
- package/src/components/FileBrowserModal.vue +384 -0
- package/src/components/FilePicker.story.vue +44 -0
- package/src/components/FilePicker.vue +284 -0
- package/src/components/FileUploader.vue +32 -18
- package/src/components/FitPanel.vue +0 -4
- package/src/components/FormActions.story.vue +96 -0
- package/src/components/FormActions.vue +0 -4
- package/src/components/FormBuilder.vue +0 -4
- package/src/components/FormField.vue +0 -4
- package/src/components/FormulaInput.vue +0 -4
- package/src/components/GeneratedPathInput.story.vue +68 -0
- package/src/components/GeneratedPlotlyResult.story.vue +96 -0
- package/src/components/GeneratedPlotlyResult.vue +34 -69
- package/src/components/GeneratedPluginView.story.vue +145 -0
- package/src/components/GeneratedPluginView.vue +10 -10
- package/src/components/GeneratedResultRenderer.story.vue +117 -0
- package/src/components/GeneratedResultRenderer.vue +4 -9
- package/src/components/GroupAssigner.vue +67 -5
- package/src/components/IconButton.vue +0 -4
- package/src/components/InstrumentAlertLog.vue +0 -4
- package/src/components/InstrumentStateBadge.vue +0 -4
- package/src/components/InstrumentStatusCard.vue +0 -4
- package/src/components/JobsStatusTray.vue +16 -5
- package/src/components/LcmsSequenceTable.vue +81 -50
- package/src/components/LoadingSpinner.vue +0 -4
- package/src/components/MobileSupportGate.vue +0 -4
- package/src/components/MoleculeInput.vue +0 -4
- package/src/components/MultiSelect.vue +0 -4
- package/src/components/NumberInput.vue +0 -4
- package/src/components/PlateMapEditor.vue +3 -14
- package/src/components/PlotlyChart.story.vue +61 -0
- package/src/components/PlotlyChart.vue +233 -0
- package/src/components/PluginIcon.vue +0 -4
- package/src/components/PluginWorkspaceView.props.ts +38 -0
- package/src/components/PluginWorkspaceView.vue +53 -224
- package/src/components/ProgressBar.vue +0 -4
- package/src/components/ProtocolStepEditor.vue +2 -4
- package/src/components/RackEditor.vue +51 -70
- package/src/components/ReagentEditor.vue +0 -4
- package/src/components/ReagentList.story.vue +18 -0
- package/src/components/ReagentList.vue +127 -82
- package/src/components/ResourceCard.vue +0 -4
- package/src/components/RuntimeUpdateNotice.story.vue +49 -0
- package/src/components/RuntimeUpdateNotice.vue +4 -4
- package/src/components/SampleHierarchyTree.story.vue +18 -0
- package/src/components/SampleHierarchyTree.vue +32 -9
- package/src/components/SampleLegend.vue +2 -8
- package/src/components/SampleSelector.drag.ts +51 -0
- package/src/components/SampleSelector.story.vue +6 -0
- package/src/components/SampleSelector.tree.ts +2 -0
- package/src/components/SampleSelector.vue +49 -10
- package/src/components/SampleSelectorGroupNode.vue +19 -0
- package/src/components/ScheduleCalendar.story.vue +6 -0
- package/src/components/ScheduleCalendar.vue +82 -7
- package/src/components/ScientificNumber.vue +0 -4
- package/src/components/SecretInput.story.vue +79 -0
- package/src/components/SecretInput.vue +150 -0
- package/src/components/SectionCard.vue +0 -4
- package/src/components/SegmentedControl.vue +50 -7
- package/src/components/SequenceInput.vue +0 -4
- package/src/components/SequenceProgressBar.story.vue +110 -0
- package/src/components/SequenceProgressBar.vue +0 -4
- package/src/components/SettingsModal.vue +0 -4
- package/src/components/Skeleton.vue +0 -4
- package/src/components/SmartGroupFieldRecipe.vue +8 -6
- package/src/components/SmartGroupManual.vue +0 -4
- package/src/components/StatusIndicator.vue +0 -4
- package/src/components/StepWizard.vue +0 -4
- package/src/components/TagsInput.vue +4 -6
- package/src/components/ThemeToggle.vue +0 -4
- package/src/components/TimePicker.vue +36 -7
- package/src/components/TimeRangeInput.vue +0 -4
- package/src/components/Tooltip.story.vue +3 -3
- package/src/components/Tooltip.vue +0 -4
- package/src/components/UnitInput.vue +0 -4
- package/src/components/WellPlate.geometry.ts +60 -1
- package/src/components/WellPlate.interaction.ts +44 -0
- package/src/components/WellPlate.story.vue +8 -0
- package/src/components/WellPlate.vue +53 -7
- package/src/components/fileBrowserPresentation.ts +39 -0
- package/src/components/index.ts +14 -0
- package/src/components/internal/AppTopBarPageSelectorInternal.vue +2 -5
- package/src/components/internal/AppTopBarPillNavInternal.vue +0 -4
- package/src/components/internal/DataStateInternal.vue +74 -0
- package/src/components/internal/FileBrowserDialogInternal.vue +75 -0
- package/src/components/internal/FileBrowserListingInternal.vue +197 -0
- package/src/components/internal/FileBrowserToolbarInternal.vue +136 -0
- package/src/components/internal/FilePickerPreviewInternal.vue +100 -0
- package/src/components/internal/FilePickerTreeInternal.vue +238 -0
- package/src/components/internal/FormSectionRenderer.vue +0 -4
- package/src/components/internal/WellEditPopupInternal.vue +20 -5
- package/src/components/internal/WorkspaceControlsInternal.vue +20 -0
- package/src/components/internal/WorkspaceShellInternal.vue +125 -0
- package/src/components/internal/WorkspaceSidebarInternal.vue +82 -0
- package/src/composables/controlSchemaTypes.ts +34 -0
- package/src/composables/experimentDesignData.ts +1 -3
- package/src/composables/filePicker/localFiles.ts +58 -0
- package/src/composables/filePicker/usePickerNavigation.ts +220 -0
- package/src/composables/filePicker/usePickerSelection.ts +259 -0
- package/src/composables/filePicker/validation.ts +41 -0
- package/src/composables/flattenWorkspaceBindings.ts +104 -0
- package/src/composables/formBuilderRegistry.ts +5 -0
- package/src/composables/index.ts +50 -0
- package/src/composables/pluginWorkspaceModel.ts +182 -0
- package/src/composables/useApi.ts +57 -13
- package/src/composables/useAsync.ts +5 -1
- package/src/composables/useAuth.ts +3 -0
- package/src/composables/useBioTemplatePackWorkspace.ts +15 -9
- package/src/composables/useBioTemplatePresetWorkspace.ts +14 -15
- package/src/composables/useBioTemplateWorkspace.ts +18 -43
- package/src/composables/useCommandHistory.ts +5 -1
- package/src/composables/useDropdownState.ts +35 -5
- package/src/composables/useEventStream.ts +14 -2
- package/src/composables/useFileBrowser.ts +314 -0
- package/src/composables/useFileImport.ts +2 -7
- package/src/composables/useFilePicker.ts +366 -0
- package/src/composables/useFocusTrap.ts +91 -0
- package/src/composables/useGeneratedAnalysis.ts +32 -27
- package/src/composables/useJobsStatusTray.ts +184 -17
- package/src/composables/useListReorder.story.vue +143 -0
- package/src/composables/useListReorder.ts +242 -0
- package/src/composables/useMenuKeyboard.ts +90 -0
- package/src/composables/useOptimisticMutation.ts +6 -16
- package/src/composables/usePlatformFilePickerAdapter.ts +104 -0
- package/src/composables/usePluginClient.ts +50 -4
- package/src/composables/usePluginConfig.ts +252 -0
- package/src/composables/usePluginWorkspace.ts +208 -0
- package/src/composables/useRackEditor.ts +2 -11
- package/src/composables/useRequestSyncState.ts +98 -28
- package/src/composables/useResourceCrud.ts +6 -16
- package/src/composables/useRovingFocus.ts +66 -0
- package/src/composables/useScheduleDrag.ts +37 -0
- package/src/composables/useWellPainting.ts +10 -30
- package/src/composables/useWellPlateAdapter.ts +5 -1
- package/src/composables/useWellPlateEditor.ts +1 -11
- package/src/composables/useWellPlateValidation.ts +5 -1
- package/src/composables/workspaceRecipes.ts +267 -0
- package/src/index.ts +19 -0
- package/src/permissions.ts +48 -9
- package/src/stores/auth.ts +1 -0
- package/src/stores/experiment.ts +2 -7
- package/src/stores/index.ts +9 -1
- package/src/stores/settings.ts +93 -1
- package/src/styles/components/audit-trail.css +5 -5
- package/src/styles/components/batch-progress-list.css +7 -0
- package/src/styles/components/color-slider.css +2 -2
- package/src/styles/components/data-state.css +30 -0
- package/src/styles/components/dataframe.css +29 -35
- package/src/styles/components/experiment-data-viewer.css +4 -4
- package/src/styles/components/experiment-timeline.css +3 -30
- package/src/styles/components/file-browser-modal.css +489 -0
- package/src/styles/components/file-picker.css +502 -0
- package/src/styles/components/form-builder.css +5 -5
- package/src/styles/components/icon-button.css +9 -0
- package/src/styles/components/lcms-sequence-table.css +16 -1
- package/src/styles/components/multi-select.css +1 -1
- package/src/styles/components/reagent-list.css +38 -31
- package/src/styles/components/sample-hierarchy-tree.css +5 -19
- package/src/styles/components/sample-selector.css +9 -2
- package/src/styles/components/schedule-calendar.css +8 -0
- package/src/styles/components/scientific-number.css +1 -1
- package/src/styles/components/secret-input.css +60 -0
- package/src/styles/components/well-plate.css +8 -0
- package/src/styles/index.css +12 -0
- package/src/styles/variables.css +29 -0
- package/src/templates/builderPresetControls.ts +1 -1
- package/src/templates/builderReadUtils.ts +1 -3
- package/src/templates/componentPlateHelpers.ts +3 -1
- package/src/templates/componentTargetResolvers.ts +1 -3
- package/src/templates/controlSchemaTargets.ts +1 -3
- package/src/templates/doseResponseAdapters.ts +2 -13
- package/src/templates/elisaAssayCollectionBuilder.ts +2 -2
- package/src/templates/plateMapBuilder.ts +2 -2
- package/src/templates/qpcrPlateBuilder.ts +1 -1
- package/src/templates/templateValidators.ts +1 -1
- package/src/templates/timeCourseBuilder.ts +2 -2
- package/src/templates/wellPlateScreenCollectionBuilder.ts +2 -2
- package/src/types/auth.ts +1 -0
- package/src/types/fileBrowserTypes.ts +85 -0
- package/src/types/filePicker.ts +72 -0
- package/src/types/form-builder.ts +1 -0
- package/src/types/index.ts +14 -0
- package/src/utils/color.ts +51 -0
- package/src/utils/errors.ts +29 -0
- package/src/utils/formModelSync.ts +1 -3
- package/src/utils/pluginIcon.ts +1 -3
- package/src/utils/pluginSecrets.ts +102 -0
- package/src/utils/records.ts +9 -0
- package/dist/EmptyState-p90quq8Z.js.map +0 -1
- package/dist/ExperimentPopover-tLwJ7XF4.js.map +0 -1
- package/dist/ExperimentSelectorModal-DyPAUCLw.js.map +0 -1
- package/dist/SettingsModal-BgKY93zh.js.map +0 -1
- package/dist/components-DkHddRMl.js.map +0 -1
- package/dist/composables/autoGroupConstants.d.ts +0 -1
- package/dist/composables/autoGroupGrouping.d.ts +0 -3
- package/dist/composables/useAutoGroupInputSources.d.ts +0 -32
- package/dist/composables-C_i90sGS.js.map +0 -1
- package/dist/experiment-Cq145oEW.js.map +0 -1
- package/dist/experiment-utils-CLnzPPq5.js.map +0 -1
- package/dist/templates/builderDefaults.d.ts +0 -1
- package/dist/templates/plateGeometry.d.ts +0 -4
- package/dist/templates-DsP51i-S.js.map +0 -1
- package/dist/useApi-J6zFkHmn.js.map +0 -1
- package/dist/useControlSchema-BDx2Olha.js.map +0 -1
- package/dist/useDropdownState-DSb3BC3N.js.map +0 -1
- package/dist/useProtocolTemplates-CS_SQl6U.js.map +0 -1
- package/src/__tests__/composables/useAutoGroupInputSources.test.ts +0 -127
- package/src/composables/autoGroupConstants.ts +0 -4
- package/src/composables/autoGroupGrouping.ts +0 -148
- package/src/composables/useAutoGroupInputSources.ts +0 -147
- package/src/templates/builderDefaults.ts +0 -11
- package/src/templates/plateGeometry.ts +0 -62
- /package/dist/__tests__/{composables/useAutoGroupInputSources.test.d.ts → apiErrors.test.d.ts} +0 -0
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
2
|
export type RequestSyncSuccessKind = 'load' | 'save' | 'run';
|
|
3
|
+
/**
|
|
4
|
+
* The unit of work `run()` drives.
|
|
5
|
+
*
|
|
6
|
+
* It receives an `AbortSignal` that fires when the run is superseded by a
|
|
7
|
+
* newer `run()` or by `cancel()`. Zero-argument operations stay valid and
|
|
8
|
+
* simply ignore it.
|
|
9
|
+
*/
|
|
10
|
+
export type RequestSyncOperation<T> = (signal: AbortSignal) => Promise<T>;
|
|
3
11
|
export interface RequestSyncRunOptions {
|
|
4
12
|
success?: RequestSyncSuccessKind;
|
|
5
13
|
errorMessage?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Abort the previously started run when this one starts. Default `true`;
|
|
16
|
+
* pass `false` to let overlapping runs finish their own work (the stale
|
|
17
|
+
* guard on shared state still applies either way).
|
|
18
|
+
*/
|
|
19
|
+
abortPrevious?: boolean;
|
|
20
|
+
/** Caller-owned signal; aborting it aborts this run's signal too. */
|
|
21
|
+
signal?: AbortSignal;
|
|
6
22
|
}
|
|
7
23
|
export interface UseRequestSyncStateReturn {
|
|
8
24
|
/** Whether a request is in progress. */
|
|
@@ -27,8 +43,32 @@ export interface UseRequestSyncStateReturn {
|
|
|
27
43
|
markSaved: (date?: Date) => void;
|
|
28
44
|
/** Mark the operation as successfully run. */
|
|
29
45
|
markRun: (date?: Date) => void;
|
|
30
|
-
/**
|
|
31
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Run a request with shared loading/error handling and optional sync marking.
|
|
48
|
+
*
|
|
49
|
+
* ## Stale-response semantics
|
|
50
|
+
*
|
|
51
|
+
* Every call takes a monotonically increasing token. Starting a run
|
|
52
|
+
* supersedes any run started before it, and a superseded run writes **no**
|
|
53
|
+
* shared state when it finally settles: it does not clear `loading`, does not
|
|
54
|
+
* set `error`, and does not move `lastLoadedAt` / `lastSavedAt` / `lastRunAt`.
|
|
55
|
+
* Only the newest run owns those.
|
|
56
|
+
*
|
|
57
|
+
* The caller's own promise is untouched by the guard — a superseded run still
|
|
58
|
+
* resolves with its value or rejects with its own error, exactly as the
|
|
59
|
+
* operation did. The guard never invents a rejection, so a caller awaiting
|
|
60
|
+
* `run()` never sees a "superseded" error it did not cause.
|
|
61
|
+
*
|
|
62
|
+
* The operation additionally receives an `AbortSignal` that fires when its
|
|
63
|
+
* run is superseded or `cancel()` is called, so an operation that forwards
|
|
64
|
+
* the signal (`fetch(url, { signal })`) stops work instead of racing.
|
|
65
|
+
*/
|
|
66
|
+
run: <T>(operation: RequestSyncOperation<T>, options?: RequestSyncRunOptions) => Promise<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Abort the in-flight run and drop `loading`. The aborted run's completion
|
|
69
|
+
* is treated as stale and writes no state.
|
|
70
|
+
*/
|
|
71
|
+
cancel: () => void;
|
|
32
72
|
}
|
|
33
73
|
/** Shared loading/error/timestamp state for generated plugin request helpers. */
|
|
34
74
|
export declare function useRequestSyncState(defaultErrorMessage?: string): UseRequestSyncStateReturn;
|
|
@@ -28,7 +28,11 @@ export interface UseResourceCrudReturn<TItem, TCreate, TUpdate, TKey extends Res
|
|
|
28
28
|
removeLocal: (keyOrItem: TKey | TItem) => void;
|
|
29
29
|
clearError: () => void;
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Common list/create/update/delete state wrapper for generated plugin clients.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Unused by the MINT platform and scheduled for removal in MINT 1.3; use `useGeneratedPluginClient()` instead.
|
|
35
|
+
*/
|
|
32
36
|
export declare function useResourceCrud<TItem, TCreate = Partial<TItem>, TUpdate = Partial<TItem>, TKey extends ResourceKey = ResourceKey>(options: UseResourceCrudOptions<TItem, TCreate, TUpdate, TKey>): UseResourceCrudReturn<TItem, TCreate, TUpdate, TKey>;
|
|
33
37
|
export interface PluginResourceClientOptions<TClient, TItem, TCreate = Partial<TItem>, TUpdate = Partial<TItem>, TKey extends ResourceKey = ResourceKey> {
|
|
34
38
|
client: TClient;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface UseRovingFocusOptions {
|
|
2
|
+
/** Selectable item ids, in DOM order. Already excludes items skipped entirely (e.g. disabled tabs). */
|
|
3
|
+
ids: () => string[];
|
|
4
|
+
/** The id that is currently active/selected. */
|
|
5
|
+
activeId: () => string | undefined;
|
|
6
|
+
/** Activates an id (e.g. emit `update:modelValue`). The composable focuses the matching element afterward. */
|
|
7
|
+
activate: (id: string) => void;
|
|
8
|
+
/** Returns the focusable element for an id, queried lazily so it reflects the post-activation DOM. */
|
|
9
|
+
getElement: (id: string) => HTMLElement | null | undefined;
|
|
10
|
+
/** Arrow-key axis: `'horizontal'` (Left/Right, default) or `'vertical'` (Up/Down). */
|
|
11
|
+
orientation?: 'horizontal' | 'vertical';
|
|
12
|
+
}
|
|
13
|
+
export interface UseRovingFocusReturn {
|
|
14
|
+
/** Bind to each item's `@keydown`. */
|
|
15
|
+
handleKeydown: (event: KeyboardEvent) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* WAI-ARIA roving-tabindex navigation with automatic activation (the tabs pattern):
|
|
19
|
+
* Left/Right (or Up/Down when `orientation` is `'vertical'`) move to the adjacent item
|
|
20
|
+
* and activate it immediately, wrapping past the ends; Home/End jump to the first/last
|
|
21
|
+
* item. Only the active item should carry `tabindex="0"`; give every other item
|
|
22
|
+
* `tabindex="-1"`. Used by BaseTabs.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useRovingFocus(options: UseRovingFocusOptions): UseRovingFocusReturn;
|
|
@@ -75,4 +75,5 @@ export declare function useScheduleDrag(options: UseScheduleDragOptions): {
|
|
|
75
75
|
startCreate: (date: Date, y: number, dayIndex: number) => void;
|
|
76
76
|
startMove: (event: ScheduleEvent, y: number, dayIndex: number) => void;
|
|
77
77
|
startResize: (event: ScheduleEvent, edge: "top" | "bottom", y: number, dayIndex: number) => void;
|
|
78
|
+
nudgeEvent: (event: ScheduleEvent, direction: -1 | 1, mode?: "move" | "resize") => boolean;
|
|
78
79
|
};
|
|
@@ -28,7 +28,11 @@ export interface UseWellPaintingReturn<TMode extends string = string, TPayload =
|
|
|
28
28
|
onWellMouseUp: () => void;
|
|
29
29
|
cancel: () => void;
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Pointer painting/rectangle selection state for WellPlate-based editors.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Unused by the MINT platform and scheduled for removal in MINT 1.3; use `useWellPlateEditor()` instead.
|
|
35
|
+
*/
|
|
32
36
|
export declare function useWellPainting<TMode extends string = string, TPayload = unknown>(options: UseWellPaintingOptions<TMode, TPayload>): UseWellPaintingReturn<TMode, TPayload>;
|
|
33
37
|
export declare function wellIdToCoordinate(wellId: string): WellCoordinate | null;
|
|
34
38
|
export declare function coordinateToWellId(coord: WellCoordinate): string;
|
|
@@ -19,7 +19,11 @@ export interface WellPlateAdapterOptions<TEntry> {
|
|
|
19
19
|
export interface UseWellPlateAdapterReturn {
|
|
20
20
|
wells: ComputedRef<Record<string, Partial<Well>>>;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Convert domain rows into WellPlate's wells prop without hand-written adapters.
|
|
24
|
+
*
|
|
25
|
+
* @deprecated Unused by the MINT platform and scheduled for removal in MINT 1.3; use `useWellPlateEditor()` instead.
|
|
26
|
+
*/
|
|
23
27
|
export declare function useWellPlateAdapter<TEntry>(options: WellPlateAdapterOptions<TEntry>): UseWellPlateAdapterReturn;
|
|
24
28
|
export declare function createWellPlateWells<TEntry>(entries: readonly TEntry[], options: Omit<WellPlateAdapterOptions<TEntry>, 'entries'>): Record<string, Partial<Well>>;
|
|
25
29
|
export interface AxisConditionEntry {
|
|
@@ -22,6 +22,10 @@ export interface UseWellPlateValidationReturn<TType extends string = string> {
|
|
|
22
22
|
warningCount: ComputedRef<number>;
|
|
23
23
|
errorCount: ComputedRef<number>;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Rule-driven validation state for WellPlate layout/design screens.
|
|
27
|
+
*
|
|
28
|
+
* @deprecated Unused by the MINT platform and scheduled for removal in MINT 1.3; use `useWellPlateEditor()` instead.
|
|
29
|
+
*/
|
|
26
30
|
export declare function useWellPlateValidation<TContext, TType extends string = string>(options: UseWellPlateValidationOptions<TContext, TType>): UseWellPlateValidationReturn<TType>;
|
|
27
31
|
export declare function runWellPlateValidation<TContext, TType extends string = string>(context: TContext, rules: readonly WellPlateValidationRule<TContext, TType>[]): WellPlateValidationWarning<TType>[];
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { TopBarVariant } from '../types';
|
|
2
|
+
import { FormEnhancements } from '../types/form-builder';
|
|
3
|
+
import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from './useControlSchema';
|
|
4
|
+
/**
|
|
5
|
+
* Merges `initialValues`/external `modelValue`/`values` on top of a base
|
|
6
|
+
* `ControlWorkspaceOptions.initialValues`, matching the layering FormBuilder expects: base
|
|
7
|
+
* defaults, then caller-supplied initial values, then live external values win last. Shared by
|
|
8
|
+
* {@link controlWorkspaceProps} and {@link bioTemplatePresetWorkspaceProps} so both "generate a
|
|
9
|
+
* workspace from options, initialValues, and v-model" views merge options identically.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveControlOptionsWithExternalValues<TOptions extends ControlWorkspaceOptions>(base: TOptions, initialValues: Record<string, unknown> | undefined, externalValues: Record<string, unknown> | undefined): TOptions;
|
|
12
|
+
export interface ControlWorkspaceModelProps {
|
|
13
|
+
model?: ControlModel | ControlModelBinding;
|
|
14
|
+
controls?: ControlSchema;
|
|
15
|
+
controlOptions?: ControlWorkspaceOptions;
|
|
16
|
+
initialValues?: Record<string, unknown>;
|
|
17
|
+
modelValue?: Record<string, unknown>;
|
|
18
|
+
values?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface ResolvedControlWorkspaceModel {
|
|
21
|
+
/** `modelValue` if provided, else `values` — the single external v-model source of truth. */
|
|
22
|
+
externalValues: Record<string, unknown> | undefined;
|
|
23
|
+
/** `model` resolved through `resolveControlModel()`, or undefined for a raw `controls` schema. */
|
|
24
|
+
resolvedModel: ControlModelBinding | undefined;
|
|
25
|
+
/** `controls` if provided, else the resolved model's controls, else `{}`. */
|
|
26
|
+
resolvedControls: ControlSchema;
|
|
27
|
+
/** `controlOptions` merged over the resolved model's own options, with initialValues/external values layered on top. */
|
|
28
|
+
resolvedControlOptions: ControlWorkspaceOptions;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolves ControlWorkspaceView's `model`/`controls`/`controlOptions`/`initialValues`/
|
|
32
|
+
* `modelValue`/`values` props into the schema + options pair `useControlWorkspace()` needs.
|
|
33
|
+
* Pure and framework-free so callers wrap each field in their own `computed()`.
|
|
34
|
+
*
|
|
35
|
+
* @example Recommended
|
|
36
|
+
* ```ts
|
|
37
|
+
* const resolved = computed(() => controlWorkspaceProps(props))
|
|
38
|
+
* const resolvedControls = computed(() => resolved.value.resolvedControls)
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function controlWorkspaceProps(props: ControlWorkspaceModelProps): ResolvedControlWorkspaceModel;
|
|
42
|
+
export interface DoseDesignWorkspacePassthroughProps {
|
|
43
|
+
workspace?: UseControlWorkspaceReturn<ControlSchema>;
|
|
44
|
+
controlOptions?: ControlWorkspaceOptions;
|
|
45
|
+
initialValues?: Record<string, unknown>;
|
|
46
|
+
modelValue?: Record<string, unknown>;
|
|
47
|
+
values?: Record<string, unknown>;
|
|
48
|
+
title?: string;
|
|
49
|
+
subtitle?: string;
|
|
50
|
+
topBarVariant?: TopBarVariant;
|
|
51
|
+
sidebarWidth?: string;
|
|
52
|
+
sidebarVariant?: 'default' | 'analysis';
|
|
53
|
+
responsiveSidebar?: boolean;
|
|
54
|
+
sidebarPosition?: 'left' | 'right';
|
|
55
|
+
sidebarTitle?: string;
|
|
56
|
+
sidebarSubtitle?: string;
|
|
57
|
+
sidebarBadge?: string | number;
|
|
58
|
+
floating?: boolean;
|
|
59
|
+
dense?: boolean;
|
|
60
|
+
showSettings?: boolean;
|
|
61
|
+
showFormActions?: boolean;
|
|
62
|
+
formEnhancements?: FormEnhancements<Record<string, unknown>>;
|
|
63
|
+
formLoading?: boolean;
|
|
64
|
+
formDisabled?: boolean;
|
|
65
|
+
formReadonly?: boolean;
|
|
66
|
+
formSize?: 'sm' | 'md' | 'lg';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Maps DoseDesignWorkspaceView's props straight through to the identically-named
|
|
70
|
+
* ControlWorkspaceView props it wraps — the ~25-key pass-through list that used to be spelled
|
|
71
|
+
* out attribute-by-attribute in the template. `model` is the caller's already-resolved dose
|
|
72
|
+
* design model, not the raw (possibly absent) `props.model`.
|
|
73
|
+
*
|
|
74
|
+
* @example Recommended
|
|
75
|
+
* ```vue
|
|
76
|
+
* <ControlWorkspaceView v-bind="doseDesignWorkspaceProps(props, resolvedModel)" />
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function doseDesignWorkspaceProps(props: DoseDesignWorkspacePassthroughProps, model: ControlModel | ControlModelBinding): {
|
|
80
|
+
model: ControlModel | ControlModelBinding;
|
|
81
|
+
workspace: UseControlWorkspaceReturn<ControlSchema> | undefined;
|
|
82
|
+
controlOptions: ControlWorkspaceOptions | undefined;
|
|
83
|
+
initialValues: Record<string, unknown> | undefined;
|
|
84
|
+
modelValue: Record<string, unknown> | undefined;
|
|
85
|
+
values: Record<string, unknown> | undefined;
|
|
86
|
+
title: string | undefined;
|
|
87
|
+
subtitle: string | undefined;
|
|
88
|
+
topBarVariant: TopBarVariant | undefined;
|
|
89
|
+
sidebarWidth: string | undefined;
|
|
90
|
+
sidebarVariant: "default" | "analysis" | undefined;
|
|
91
|
+
responsiveSidebar: boolean | undefined;
|
|
92
|
+
sidebarPosition: "left" | "right" | undefined;
|
|
93
|
+
sidebarTitle: string | undefined;
|
|
94
|
+
sidebarSubtitle: string | undefined;
|
|
95
|
+
sidebarBadge: string | number | undefined;
|
|
96
|
+
floating: boolean | undefined;
|
|
97
|
+
dense: boolean | undefined;
|
|
98
|
+
showSettings: boolean | undefined;
|
|
99
|
+
showFormActions: boolean | undefined;
|
|
100
|
+
formEnhancements: FormEnhancements<Record<string, unknown>> | undefined;
|
|
101
|
+
formLoading: boolean | undefined;
|
|
102
|
+
formDisabled: boolean | undefined;
|
|
103
|
+
formReadonly: boolean | undefined;
|
|
104
|
+
formSize: "sm" | "md" | "lg" | undefined;
|
|
105
|
+
};
|
|
106
|
+
export interface BioTemplateExperimentWorkspaceStatusProps {
|
|
107
|
+
status?: {
|
|
108
|
+
loading?: boolean;
|
|
109
|
+
saving?: boolean;
|
|
110
|
+
error?: string | null;
|
|
111
|
+
hasExperiment?: boolean;
|
|
112
|
+
currentExperimentId?: number;
|
|
113
|
+
lastLoadedAt?: Date | null;
|
|
114
|
+
lastSavedAt?: Date | null;
|
|
115
|
+
};
|
|
116
|
+
loading?: boolean;
|
|
117
|
+
error?: string | null;
|
|
118
|
+
hasExperiment?: boolean;
|
|
119
|
+
currentExperimentId?: number;
|
|
120
|
+
lastLoadedAt?: Date | null;
|
|
121
|
+
lastSavedAt?: Date | null;
|
|
122
|
+
}
|
|
123
|
+
export interface ResolvedBioTemplateExperimentStatus {
|
|
124
|
+
loading: boolean;
|
|
125
|
+
error: string | null | undefined;
|
|
126
|
+
hasExperiment: boolean;
|
|
127
|
+
currentExperimentId: number | undefined;
|
|
128
|
+
lastLoadedAt: Date | null | undefined;
|
|
129
|
+
lastSavedAt: Date | null | undefined;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Merges BioTemplateExperimentWorkspaceView's grouped `status` prop over its individual
|
|
133
|
+
* `loading`/`error`/`hasExperiment`/... props: `status` wins whenever the corresponding field
|
|
134
|
+
* on it is set, otherwise the flat prop (or its default) is used. Centralizes the six
|
|
135
|
+
* independent fallback rules generated plugin pages rely on when they pass a request/experiment
|
|
136
|
+
* `status` object instead of wiring each field by hand.
|
|
137
|
+
*/
|
|
138
|
+
export declare function bioTemplateExperimentWorkspaceProps(props: BioTemplateExperimentWorkspaceStatusProps): ResolvedBioTemplateExperimentStatus;
|
|
139
|
+
export interface BioTemplatePackWorkspacePassthroughProps {
|
|
140
|
+
message?: string;
|
|
141
|
+
dense?: boolean;
|
|
142
|
+
readonly?: boolean;
|
|
143
|
+
showStatus?: boolean;
|
|
144
|
+
showTemplateSummary?: boolean;
|
|
145
|
+
loadLabel?: string;
|
|
146
|
+
resetLabel?: string;
|
|
147
|
+
saveLabel?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Assembles the prop object BioTemplatePackWorkspaceView binds onto the
|
|
151
|
+
* BioTemplateExperimentWorkspaceView it wraps: its own display props passed straight through,
|
|
152
|
+
* plus the pack-derived `target`/`label`/`status`/`actions` computed by the caller.
|
|
153
|
+
*/
|
|
154
|
+
export declare function bioTemplatePackWorkspaceProps<TTarget, TStatus, TActions>(props: BioTemplatePackWorkspacePassthroughProps, derived: {
|
|
155
|
+
target: TTarget;
|
|
156
|
+
label: string;
|
|
157
|
+
status: TStatus;
|
|
158
|
+
actions: TActions;
|
|
159
|
+
}): {
|
|
160
|
+
target: TTarget;
|
|
161
|
+
kind: "collection";
|
|
162
|
+
label: string;
|
|
163
|
+
message: string | undefined;
|
|
164
|
+
status: TStatus;
|
|
165
|
+
actions: TActions;
|
|
166
|
+
dense: boolean | undefined;
|
|
167
|
+
readonly: boolean | undefined;
|
|
168
|
+
showStatus: boolean | undefined;
|
|
169
|
+
showTemplateSummary: boolean | undefined;
|
|
170
|
+
loadLabel: string | undefined;
|
|
171
|
+
resetLabel: string | undefined;
|
|
172
|
+
saveLabel: string | undefined;
|
|
173
|
+
};
|
|
174
|
+
export interface BioTemplatePresetWorkspaceOptionsProps<TOptions extends ControlWorkspaceOptions> {
|
|
175
|
+
workspaceOptions?: TOptions;
|
|
176
|
+
initialValues?: Record<string, unknown>;
|
|
177
|
+
modelValue?: Record<string, unknown>;
|
|
178
|
+
values?: Record<string, unknown>;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Resolves BioTemplatePresetWorkspaceView's `workspaceOptions`/`initialValues`/`modelValue`/
|
|
182
|
+
* `values` props into the single options object `useBioTemplatePresetWorkspace()` needs,
|
|
183
|
+
* reusing the same base/initialValues/external-values layering as {@link controlWorkspaceProps}.
|
|
184
|
+
*/
|
|
185
|
+
export declare function bioTemplatePresetWorkspaceProps<TOptions extends ControlWorkspaceOptions>(props: BioTemplatePresetWorkspaceOptionsProps<TOptions>): {
|
|
186
|
+
externalValues: Record<string, unknown> | undefined;
|
|
187
|
+
resolvedWorkspaceOptions: TOptions;
|
|
188
|
+
};
|