@morscherlab/mint-sdk 1.0.0-rc.2 → 1.0.0-rc.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.
- package/dist/__tests__/components/AppTopBar.navigation.test.d.ts +1 -0
- package/dist/__tests__/components/DoseCalculatorVolumeField.test.d.ts +1 -0
- package/dist/__tests__/components/PlateMapEditorToolbarInternal.test.d.ts +1 -0
- package/dist/__tests__/components/PluginWorkspaceView.controls.test.d.ts +1 -0
- package/dist/__tests__/components/PluginWorkspaceView.navigation.test.d.ts +1 -0
- package/dist/__tests__/components/PluginWorkspaceView.shell.test.d.ts +1 -0
- package/dist/__tests__/components/ProtocolStep.presentation.test.d.ts +1 -0
- package/dist/__tests__/components/ProtocolStepEditor.state.test.d.ts +1 -0
- package/dist/__tests__/components/ProtocolStepParameterField.test.d.ts +1 -0
- package/dist/__tests__/components/ReagentList.presentation.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelector.colors.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelector.drag.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelector.groups.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelector.selection.test.d.ts +1 -0
- package/dist/__tests__/components/SampleSelectorSampleRow.test.d.ts +1 -0
- package/dist/__tests__/components/ScheduleCalendar.test.d.ts +1 -0
- package/dist/__tests__/components/SettingsModal.schema.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.colors.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.conditions.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.geometry.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.interaction.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.legend.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.rendering.test.d.ts +1 -0
- package/dist/__tests__/components/WellPlate.sampleDrop.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/classify.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/columns.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/compose.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/cooccurrence.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/fingerprint.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/integration.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/template.test.d.ts +1 -0
- package/dist/__tests__/composables/autoGroup/tokenize.test.d.ts +1 -0
- package/dist/__tests__/composables/useAutoGroupInputSources.test.d.ts +1 -0
- package/dist/__tests__/composables/useScheduleCalendarLayout.test.d.ts +1 -0
- package/dist/__tests__/docs/extractDocsComponents.test.d.ts +1 -0
- package/dist/__tests__/docs/extractDocsExports.test.d.ts +1 -0
- package/dist/__tests__/docs/extractDocsParsing.test.d.ts +1 -0
- package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +1 -0
- package/dist/__tests__/docs/extractDocsTheme.test.d.ts +1 -0
- package/dist/components/AppTopBar.navigation.d.ts +11 -0
- package/dist/components/BaseButton.vue.d.ts +1 -1
- package/dist/components/BaseCheckbox.vue.d.ts +1 -1
- package/dist/components/BaseInput.vue.d.ts +2 -2
- package/dist/components/BasePill.vue.d.ts +1 -1
- package/dist/components/BaseRadioGroup.vue.d.ts +1 -1
- package/dist/components/BaseSelect.vue.d.ts +1 -1
- package/dist/components/BaseSlider.vue.d.ts +2 -2
- package/dist/components/BaseTextarea.vue.d.ts +2 -2
- package/dist/components/BaseToggle.vue.d.ts +1 -1
- package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
- package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -1
- package/dist/components/ColorSlider.vue.d.ts +2 -2
- package/dist/components/ConcentrationInput.vue.d.ts +2 -2
- package/dist/components/DatePicker.vue.d.ts +1 -1
- package/dist/components/DateTimePicker.vue.d.ts +2 -2
- package/dist/components/DoseCalculatorVolumeField.vue.d.ts +15 -0
- package/dist/components/DropdownButton.vue.d.ts +1 -1
- package/dist/components/FileUploader.vue.d.ts +2 -2
- package/dist/components/FormulaInput.vue.d.ts +2 -2
- package/dist/components/IconButton.vue.d.ts +1 -1
- package/dist/components/LoadingSpinner.vue.d.ts +1 -1
- package/dist/components/MoleculeInput.vue.d.ts +2 -2
- package/dist/components/MultiSelect.vue.d.ts +1 -1
- package/dist/components/NumberInput.vue.d.ts +1 -1
- package/dist/components/PlateMapEditor.vue.d.ts +6 -6
- package/dist/components/PluginWorkspaceView.controls.d.ts +28 -0
- package/dist/components/PluginWorkspaceView.navigation.d.ts +29 -0
- package/dist/components/PluginWorkspaceView.props.d.ts +151 -0
- package/dist/components/PluginWorkspaceView.shell.d.ts +19 -0
- package/dist/components/PluginWorkspaceView.vue.d.ts +46 -195
- package/dist/components/ProgressBar.vue.d.ts +1 -1
- package/dist/components/ProtocolStep.presentation.d.ts +4 -0
- package/dist/components/ProtocolStepEditor.state.d.ts +18 -0
- package/dist/components/ProtocolStepParameterField.vue.d.ts +12 -0
- package/dist/components/ReagentList.presentation.d.ts +16 -0
- package/dist/components/ResourceCard.vue.d.ts +1 -1
- package/dist/components/SampleSelector.colors.d.ts +13 -0
- package/dist/components/SampleSelector.drag.d.ts +24 -0
- package/dist/components/SampleSelector.groups.d.ts +15 -0
- package/dist/components/SampleSelector.selection.d.ts +26 -0
- package/dist/components/SampleSelector.vue.d.ts +4 -1
- package/dist/components/SampleSelectorSampleRow.vue.d.ts +21 -0
- package/dist/components/SegmentedControl.vue.d.ts +1 -1
- package/dist/components/SequenceInput.vue.d.ts +2 -2
- package/dist/components/SequenceProgressBar.vue.d.ts +1 -1
- package/dist/components/SettingsModal.schema.d.ts +9 -0
- package/dist/components/StatusIndicator.vue.d.ts +1 -1
- package/dist/components/TagsInput.vue.d.ts +2 -2
- package/dist/components/TimePicker.vue.d.ts +2 -2
- package/dist/components/TimeRangeInput.vue.d.ts +1 -1
- package/dist/components/UnitInput.vue.d.ts +2 -2
- package/dist/components/WellPlate.colors.d.ts +9 -0
- package/dist/components/WellPlate.conditions.d.ts +26 -0
- package/dist/components/WellPlate.geometry.d.ts +23 -0
- package/dist/components/WellPlate.interaction.d.ts +71 -0
- package/dist/components/WellPlate.legend.d.ts +2 -0
- package/dist/components/WellPlate.rendering.d.ts +24 -0
- package/dist/components/WellPlate.sampleDrop.d.ts +8 -0
- package/dist/components/WellPlate.vue.d.ts +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/internal/ActionItemInternal.vue.d.ts +1 -1
- package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +28 -0
- package/dist/{components-BhK-dW99.js → components-DtHA2bgp.js} +3754 -2991
- package/dist/components-DtHA2bgp.js.map +1 -0
- package/dist/composables/autoGroup/classKey.d.ts +4 -0
- package/dist/composables/autoGroup/classify.d.ts +28 -0
- package/dist/composables/autoGroup/colors.d.ts +2 -0
- package/dist/composables/autoGroup/columns.d.ts +10 -0
- package/dist/composables/autoGroup/compose.d.ts +8 -0
- package/dist/composables/autoGroup/cooccurrence.d.ts +2 -0
- package/dist/composables/autoGroup/csv-shim.d.ts +2 -0
- package/dist/composables/autoGroup/fingerprint.d.ts +3 -0
- package/dist/composables/autoGroup/index.d.ts +16 -0
- package/dist/composables/autoGroup/replicatePreGroup.d.ts +38 -0
- package/dist/composables/autoGroup/template.d.ts +15 -0
- package/dist/composables/autoGroup/tokenize.d.ts +8 -0
- package/dist/composables/autoGroupConstants.d.ts +1 -0
- package/dist/composables/autoGroupGrouping.d.ts +3 -0
- package/dist/composables/controlComponentBindings.d.ts +7 -0
- package/dist/composables/controlSchemaAdapters.d.ts +20 -0
- package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
- package/dist/composables/controlSchemaFormFields.d.ts +3 -0
- package/dist/composables/controlSchemaLayout.d.ts +7 -0
- package/dist/composables/controlSchemaModel.d.ts +5 -0
- package/dist/composables/controlSchemaNormalize.d.ts +15 -0
- package/dist/composables/controlSchemaTypes.d.ts +305 -0
- package/dist/composables/controlSchemaUtils.d.ts +9 -0
- package/dist/composables/controlWorkspaceOptions.d.ts +2 -0
- package/dist/composables/formBuilderSchema.d.ts +18 -0
- package/dist/composables/index.js +3 -3
- package/dist/composables/pluginEndpointBuilder.d.ts +13 -0
- package/dist/composables/protocolTemplateCatalog.d.ts +26 -0
- package/dist/composables/useAutoGroup.d.ts +61 -74
- package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
- package/dist/composables/useBioTemplateControls.d.ts +1 -1
- package/dist/composables/useBioTemplatePresetWorkspace.d.ts +1 -1
- package/dist/composables/useBioTemplateWorkspace.d.ts +1 -1
- package/dist/composables/useControlSchema.d.ts +8 -346
- package/dist/composables/useControlWorkspace.d.ts +5 -0
- package/dist/composables/useForm.d.ts +2 -33
- package/dist/composables/useFormBuilder.d.ts +2 -9
- package/dist/composables/useFormValidation.d.ts +34 -0
- package/dist/composables/usePluginClient.d.ts +1 -4
- package/dist/composables/useProtocolTemplates.d.ts +2 -24
- package/dist/composables/useScheduleCalendarLayout.d.ts +49 -0
- package/dist/{composables-Bg7CFuNz.js → composables-Dlg8jenH.js} +33 -31
- package/dist/composables-Dlg8jenH.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/install.js +2 -2
- package/dist/styles.css +547 -516
- package/dist/templates/adapters.d.ts +14 -47
- package/dist/templates/assayLookups.d.ts +3 -0
- package/dist/templates/assayMatrixAdapters.d.ts +6 -0
- package/dist/templates/assayMatrixBuilder.d.ts +2 -0
- package/dist/templates/assayNormalizers.d.ts +4 -0
- package/dist/templates/builderDefaults.d.ts +1 -0
- package/dist/templates/builderIdUtils.d.ts +4 -0
- package/dist/templates/builderPresetControls.d.ts +10 -0
- package/dist/templates/builderReadUtils.d.ts +8 -0
- package/dist/templates/builders.d.ts +26 -67
- package/dist/templates/calibrationCurveAdapters.d.ts +4 -0
- package/dist/templates/calibrationCurveBuilder.d.ts +2 -0
- package/dist/templates/calibrationNormalizers.d.ts +5 -0
- package/dist/templates/componentBindingCatalog.d.ts +25 -0
- package/dist/templates/componentBindingHelpers.d.ts +17 -0
- package/dist/templates/componentDoseResponseProps.d.ts +3 -0
- package/dist/templates/componentGenericProps.d.ts +8 -0
- package/dist/templates/componentPlateHelpers.d.ts +5 -0
- package/dist/templates/componentPlateMapProps.d.ts +3 -0
- package/dist/templates/componentPropsFactory.d.ts +3 -0
- package/dist/templates/componentQpcrPlateProps.d.ts +3 -0
- package/dist/templates/componentTargetResolvers.d.ts +5 -0
- package/dist/templates/componentTemplateProps.d.ts +3 -0
- package/dist/templates/controlSchemaClone.d.ts +4 -0
- package/dist/templates/controlSchemaConstants.d.ts +10 -0
- package/dist/templates/controlSchemaMerge.d.ts +3 -0
- package/dist/templates/controlSchemaTargets.d.ts +17 -0
- package/dist/templates/controlSchemaTypes.d.ts +4 -0
- package/dist/templates/controlSchemas.d.ts +4 -4
- package/dist/templates/defaultBioTemplateBuilder.d.ts +2 -0
- package/dist/templates/doseResponseAdapters.d.ts +4 -0
- package/dist/templates/doseResponseBuilder.d.ts +2 -0
- package/dist/templates/elisaAssayCollectionBuilder.d.ts +2 -0
- package/dist/templates/flowCytometryAssayCollectionBuilder.d.ts +2 -0
- package/dist/templates/flowCytometryPanelBuilder.d.ts +2 -0
- package/dist/templates/flowNormalizers.d.ts +8 -0
- package/dist/templates/flowPanelAdapters.d.ts +4 -0
- package/dist/templates/index.js +1 -1
- package/dist/templates/instrumentRunAdapterHelpers.d.ts +8 -0
- package/dist/templates/instrumentRunAdapters.d.ts +8 -0
- package/dist/templates/instrumentRunBuilder.d.ts +2 -0
- package/dist/templates/lcmsBatchCollectionBuilder.d.ts +2 -0
- package/dist/templates/plateGeometry.d.ts +4 -0
- package/dist/templates/plateMapAdapters.d.ts +3 -0
- package/dist/templates/plateMapBuilder.d.ts +2 -0
- package/dist/templates/presetControlSchemas.d.ts +534 -0
- package/dist/templates/protocolAdapters.d.ts +5 -0
- package/dist/templates/protocolNormalizers.d.ts +6 -0
- package/dist/templates/protocolStepsBuilder.d.ts +2 -0
- package/dist/templates/qpcrAdapters.d.ts +5 -0
- package/dist/templates/qpcrExpressionCollectionBuilder.d.ts +2 -0
- package/dist/templates/qpcrPlateBuilder.d.ts +2 -0
- package/dist/templates/reagentAdapters.d.ts +5 -0
- package/dist/templates/reagentListBuilder.d.ts +2 -0
- package/dist/templates/runNormalizers.d.ts +10 -0
- package/dist/templates/sampleNormalizers.d.ts +4 -0
- package/dist/templates/samplePrepAdapters.d.ts +4 -0
- package/dist/templates/samplePrepBuilder.d.ts +2 -0
- package/dist/templates/sampleSheetAdapters.d.ts +5 -0
- package/dist/templates/sampleSheetBuilder.d.ts +2 -0
- package/dist/templates/targetedMetabolomicsCollectionBuilder.d.ts +2 -0
- package/dist/templates/targetedMetabolomicsHelpers.d.ts +5 -0
- package/dist/templates/templateAdapterTypes.d.ts +48 -0
- package/dist/templates/templateControlSchemas.d.ts +400 -0
- package/dist/templates/templateCreateOptions.d.ts +165 -0
- package/dist/templates/templateEnvelopes.d.ts +9 -0
- package/dist/templates/templatePackCollectionBuilder.d.ts +2 -0
- package/dist/templates/templatePresetCollectionBuilder.d.ts +18 -0
- package/dist/templates/templateQpcrTypes.d.ts +42 -0
- package/dist/templates/templateValidators.d.ts +13 -0
- package/dist/templates/timeCourseAdapters.d.ts +5 -0
- package/dist/templates/timeCourseBuilder.d.ts +2 -0
- package/dist/templates/types.d.ts +5 -250
- package/dist/templates/wellPlateScreenCollectionBuilder.d.ts +2 -0
- package/dist/templates/westernBlotAssayCollectionBuilder.d.ts +2 -0
- package/dist/{templates-BorLR_7p.js → templates-DtdUvJ4c.js} +3565 -3411
- package/dist/templates-DtdUvJ4c.js.map +1 -0
- package/dist/types/auto-group.d.ts +79 -9
- package/dist/types/componentLabTypes.d.ts +161 -0
- package/dist/types/componentWorkflowTypes.d.ts +150 -0
- package/dist/types/components.d.ts +2 -311
- package/dist/{useProtocolTemplates-n6AJqSqv.js → useProtocolTemplates-Bm5vyH4_.js} +1220 -454
- package/dist/useProtocolTemplates-Bm5vyH4_.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/components/AppTopBar.navigation.test.ts +70 -0
- package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
- package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
- package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
- package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
- package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +41 -0
- package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
- package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
- package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
- package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
- package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
- package/src/__tests__/components/SampleSelector.drag.test.ts +100 -0
- package/src/__tests__/components/SampleSelector.groups.test.ts +81 -0
- package/src/__tests__/components/SampleSelector.selection.test.ts +70 -0
- package/src/__tests__/components/SampleSelector.test.ts +32 -0
- package/src/__tests__/components/SampleSelectorSampleRow.test.ts +37 -0
- package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
- package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
- package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
- package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
- package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
- package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
- package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
- package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
- package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
- package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
- package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
- package/src/__tests__/composables/autoGroup/compose.test.ts +227 -0
- package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
- package/src/__tests__/composables/autoGroup/fingerprint.test.ts +50 -0
- package/src/__tests__/composables/autoGroup/integration.test.ts +79 -0
- package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
- package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
- package/src/__tests__/composables/useAutoGroup.test.ts +129 -625
- package/src/__tests__/composables/useAutoGroupInputSources.test.ts +107 -0
- package/src/__tests__/composables/useControlSchema.test.ts +23 -0
- package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
- package/src/__tests__/docs/extractDocsComponents.test.ts +142 -0
- package/src/__tests__/docs/extractDocsExports.test.ts +77 -0
- package/src/__tests__/docs/extractDocsParsing.test.ts +69 -0
- package/src/__tests__/docs/extractDocsTemplates.test.ts +54 -0
- package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
- package/src/__tests__/docs/frontendDocsCatalog.test.ts +1 -1
- package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
- package/src/components/AppSidebar.vue +2 -6
- package/src/components/AppTopBar.navigation.ts +62 -0
- package/src/components/AppTopBar.vue +17 -44
- package/src/components/AutoGroupModal.story.vue +50 -0
- package/src/components/AutoGroupModal.vue +441 -158
- package/src/components/ControlWorkspaceView.vue +2 -6
- package/src/components/DoseCalculator.vue +13 -73
- package/src/components/DoseCalculatorVolumeField.vue +61 -0
- package/src/components/ExperimentTimeline.vue +6 -31
- package/src/components/FormBuilder.vue +2 -7
- package/src/components/PlateMapEditor.vue +32 -106
- package/src/components/PluginWorkspaceView.controls.ts +182 -0
- package/src/components/PluginWorkspaceView.navigation.ts +106 -0
- package/src/components/PluginWorkspaceView.props.ts +174 -0
- package/src/components/PluginWorkspaceView.shell.ts +66 -0
- package/src/components/PluginWorkspaceView.vue +85 -404
- package/src/components/ProtocolStep.presentation.ts +31 -0
- package/src/components/ProtocolStepEditor.state.ts +104 -0
- package/src/components/ProtocolStepEditor.vue +48 -179
- package/src/components/ProtocolStepParameterField.vue +134 -0
- package/src/components/ReagentList.presentation.ts +105 -0
- package/src/components/ReagentList.vue +16 -79
- package/src/components/SampleSelector.colors.ts +43 -0
- package/src/components/SampleSelector.drag.ts +164 -0
- package/src/components/SampleSelector.groups.ts +109 -0
- package/src/components/SampleSelector.selection.ts +103 -0
- package/src/components/SampleSelector.vue +82 -349
- package/src/components/SampleSelectorSampleRow.vue +64 -0
- package/src/components/ScheduleCalendar.vue +44 -199
- package/src/components/SettingsModal.schema.ts +71 -0
- package/src/components/SettingsModal.vue +16 -46
- package/src/components/WellPlate.colors.ts +56 -0
- package/src/components/WellPlate.conditions.ts +100 -0
- package/src/components/WellPlate.geometry.ts +91 -0
- package/src/components/WellPlate.interaction.ts +272 -0
- package/src/components/WellPlate.legend.ts +8 -0
- package/src/components/WellPlate.rendering.ts +105 -0
- package/src/components/WellPlate.sampleDrop.ts +73 -0
- package/src/components/WellPlate.vue +102 -550
- package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
- package/src/composables/autoGroup/classKey.ts +5 -0
- package/src/composables/autoGroup/classify.ts +205 -0
- package/src/composables/autoGroup/colors.ts +6 -0
- package/src/composables/autoGroup/columns.ts +226 -0
- package/src/composables/autoGroup/compose.ts +156 -0
- package/src/composables/autoGroup/cooccurrence.ts +46 -0
- package/src/composables/autoGroup/csv-shim.ts +44 -0
- package/src/composables/autoGroup/fingerprint.ts +49 -0
- package/src/composables/autoGroup/index.ts +20 -0
- package/src/composables/autoGroup/replicatePreGroup.ts +90 -0
- package/src/composables/autoGroup/template.ts +126 -0
- package/src/composables/autoGroup/tokenize.ts +41 -0
- package/src/composables/autoGroup/vocab.json +67 -0
- package/src/composables/autoGroupConstants.ts +4 -0
- package/src/composables/autoGroupGrouping.ts +148 -0
- package/src/composables/controlComponentBindings.ts +80 -0
- package/src/composables/controlSchemaAdapters.ts +196 -0
- package/src/composables/controlSchemaDoseDesign.ts +215 -0
- package/src/composables/controlSchemaFormFields.ts +61 -0
- package/src/composables/controlSchemaLayout.ts +59 -0
- package/src/composables/controlSchemaModel.ts +163 -0
- package/src/composables/controlSchemaNormalize.ts +101 -0
- package/src/composables/controlSchemaTypes.ts +364 -0
- package/src/composables/controlSchemaUtils.ts +36 -0
- package/src/composables/controlWorkspaceOptions.ts +21 -0
- package/src/composables/formBuilderSchema.ts +153 -0
- package/src/composables/pluginEndpointBuilder.ts +203 -0
- package/src/composables/protocolTemplateCatalog.ts +325 -0
- package/src/composables/useAutoGroup.ts +395 -549
- package/src/composables/useAutoGroupInputSources.ts +147 -0
- package/src/composables/useBioTemplateControls.ts +1 -1
- package/src/composables/useBioTemplatePresetWorkspace.ts +1 -1
- package/src/composables/useBioTemplateWorkspace.ts +1 -1
- package/src/composables/useControlSchema.ts +64 -1312
- package/src/composables/useControlWorkspace.ts +201 -0
- package/src/composables/useForm.ts +5 -187
- package/src/composables/useFormBuilder.ts +11 -153
- package/src/composables/useFormValidation.ts +154 -0
- package/src/composables/usePluginClient.ts +10 -193
- package/src/composables/useProtocolTemplates.ts +10 -328
- package/src/composables/useScheduleCalendarLayout.ts +287 -0
- package/src/styles/components/auto-group-modal.css +248 -310
- package/src/templates/adapters.ts +89 -930
- package/src/templates/assayLookups.ts +33 -0
- package/src/templates/assayMatrixAdapters.ts +78 -0
- package/src/templates/assayMatrixBuilder.ts +59 -0
- package/src/templates/assayNormalizers.ts +34 -0
- package/src/templates/builderDefaults.ts +11 -0
- package/src/templates/builderIdUtils.ts +20 -0
- package/src/templates/builderPresetControls.ts +165 -0
- package/src/templates/builderReadUtils.ts +57 -0
- package/src/templates/builders.ts +122 -2350
- package/src/templates/calibrationCurveAdapters.ts +59 -0
- package/src/templates/calibrationCurveBuilder.ts +99 -0
- package/src/templates/calibrationNormalizers.ts +60 -0
- package/src/templates/componentBindingCatalog.ts +90 -0
- package/src/templates/componentBindingHelpers.ts +93 -0
- package/src/templates/componentBindings.ts +12 -461
- package/src/templates/componentDoseResponseProps.ts +42 -0
- package/src/templates/componentGenericProps.ts +77 -0
- package/src/templates/componentPlateHelpers.ts +29 -0
- package/src/templates/componentPlateMapProps.ts +32 -0
- package/src/templates/componentPropsFactory.ts +21 -0
- package/src/templates/componentQpcrPlateProps.ts +28 -0
- package/src/templates/componentTargetResolvers.ts +69 -0
- package/src/templates/componentTemplateProps.ts +78 -0
- package/src/templates/controlSchemaClone.ts +32 -0
- package/src/templates/controlSchemaConstants.ts +11 -0
- package/src/templates/controlSchemaMerge.ts +40 -0
- package/src/templates/controlSchemaTargets.ts +87 -0
- package/src/templates/controlSchemaTypes.ts +20 -0
- package/src/templates/controlSchemas.ts +22 -704
- package/src/templates/defaultBioTemplateBuilder.ts +124 -0
- package/src/templates/doseResponseAdapters.ts +45 -0
- package/src/templates/doseResponseBuilder.ts +44 -0
- package/src/templates/elisaAssayCollectionBuilder.ts +62 -0
- package/src/templates/flowCytometryAssayCollectionBuilder.ts +41 -0
- package/src/templates/flowCytometryPanelBuilder.ts +53 -0
- package/src/templates/flowNormalizers.ts +58 -0
- package/src/templates/flowPanelAdapters.ts +58 -0
- package/src/templates/instrumentRunAdapterHelpers.ts +94 -0
- package/src/templates/instrumentRunAdapters.ts +163 -0
- package/src/templates/instrumentRunBuilder.ts +97 -0
- package/src/templates/lcmsBatchCollectionBuilder.ts +38 -0
- package/src/templates/plateGeometry.ts +62 -0
- package/src/templates/plateMapAdapters.ts +36 -0
- package/src/templates/plateMapBuilder.ts +43 -0
- package/src/templates/presetControlSchemas.ts +258 -0
- package/src/templates/protocolAdapters.ts +69 -0
- package/src/templates/protocolNormalizers.ts +37 -0
- package/src/templates/protocolStepsBuilder.ts +36 -0
- package/src/templates/qpcrAdapters.ts +104 -0
- package/src/templates/qpcrExpressionCollectionBuilder.ts +33 -0
- package/src/templates/qpcrPlateBuilder.ts +96 -0
- package/src/templates/reagentAdapters.ts +77 -0
- package/src/templates/reagentListBuilder.ts +30 -0
- package/src/templates/runNormalizers.ts +63 -0
- package/src/templates/sampleNormalizers.ts +58 -0
- package/src/templates/samplePrepAdapters.ts +63 -0
- package/src/templates/samplePrepBuilder.ts +51 -0
- package/src/templates/sampleSheetAdapters.ts +75 -0
- package/src/templates/sampleSheetBuilder.ts +23 -0
- package/src/templates/targetedMetabolomicsCollectionBuilder.ts +79 -0
- package/src/templates/targetedMetabolomicsHelpers.ts +102 -0
- package/src/templates/templateAdapterTypes.ts +58 -0
- package/src/templates/templateControlSchemas.ts +320 -0
- package/src/templates/templateCreateOptions.ts +208 -0
- package/src/templates/templateEnvelopes.ts +137 -0
- package/src/templates/templatePackCollectionBuilder.ts +23 -0
- package/src/templates/templatePresetCollectionBuilder.ts +139 -0
- package/src/templates/templateQpcrTypes.ts +48 -0
- package/src/templates/templateValidators.ts +414 -0
- package/src/templates/timeCourseAdapters.ts +73 -0
- package/src/templates/timeCourseBuilder.ts +64 -0
- package/src/templates/types.ts +79 -275
- package/src/templates/wellPlateScreenCollectionBuilder.ts +36 -0
- package/src/templates/westernBlotAssayCollectionBuilder.ts +68 -0
- package/src/types/auto-group.ts +107 -9
- package/src/types/componentLabTypes.ts +235 -0
- package/src/types/componentWorkflowTypes.ts +190 -0
- package/src/types/components.ts +74 -424
- package/dist/components-BhK-dW99.js.map +0 -1
- package/dist/composables-Bg7CFuNz.js.map +0 -1
- package/dist/templates-BorLR_7p.js.map +0 -1
- package/dist/useProtocolTemplates-n6AJqSqv.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SampleClass } from '../../types/auto-group';
|
|
2
|
+
export interface ClassVocab {
|
|
3
|
+
blankPattern: RegExp;
|
|
4
|
+
iqcPattern: RegExp;
|
|
5
|
+
eqcPattern: RegExp;
|
|
6
|
+
standardPattern: RegExp;
|
|
7
|
+
standardAllow: Set<string>;
|
|
8
|
+
spikeInPattern: RegExp;
|
|
9
|
+
stockPattern: RegExp;
|
|
10
|
+
/**
|
|
11
|
+
* Matrix lookup: lowercase token → canonical display name. Matching is
|
|
12
|
+
* case-insensitive, and several aliases can collapse to one display name
|
|
13
|
+
* (cell → Cells, medium → Medium).
|
|
14
|
+
*/
|
|
15
|
+
matrixVocab: Map<string, string>;
|
|
16
|
+
/** Lowercase polarity tokens → POS / NEG. */
|
|
17
|
+
ionizationModes: Map<string, 'POS' | 'NEG'>;
|
|
18
|
+
/** Lowercase tokens that flag the next token as the organ subKind. */
|
|
19
|
+
tissueParentTokens: Set<string>;
|
|
20
|
+
}
|
|
21
|
+
export declare const classVocab: ClassVocab;
|
|
22
|
+
export interface DetectClassOptions {
|
|
23
|
+
vocab?: Partial<ClassVocab>;
|
|
24
|
+
/** Per-sample explicit `sample_type` hint (e.g. from experiment design data). */
|
|
25
|
+
sampleTypeHints?: (string | undefined)[];
|
|
26
|
+
}
|
|
27
|
+
/** Classify each tokenized sample into a SampleClass. */
|
|
28
|
+
export declare function detectClass(tokenizedSamples: string[][], options: DetectClassOptions): SampleClass[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ColumnRole, ClassSchema, NumericParse, SampleClassKind } from '../../types/auto-group';
|
|
2
|
+
export declare function parseNumeric(token: string): NumericParse | null;
|
|
3
|
+
export interface InferRoleInput {
|
|
4
|
+
values: string[];
|
|
5
|
+
position: number;
|
|
6
|
+
totalPositions: number;
|
|
7
|
+
classSize: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function inferRole(input: InferRoleInput): ColumnRole;
|
|
10
|
+
export declare function buildClassSchema(tokenizedMembers: string[][], classKind: SampleClassKind, subKind: string | undefined, classTagPositions: number[]): ClassSchema;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AutoGroupResult, ClassSchema, SampleClass } from '../../types/auto-group';
|
|
2
|
+
export interface ComposeInput {
|
|
3
|
+
tokenizedSamples: string[][];
|
|
4
|
+
sampleNames: string[];
|
|
5
|
+
schemas: Record<string, ClassSchema>;
|
|
6
|
+
classes: SampleClass[];
|
|
7
|
+
}
|
|
8
|
+
export declare function composeGroups(input: ComposeInput): AutoGroupResult;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { splitMulti, pickPrimaryDelimiter } from './tokenize';
|
|
2
|
+
export type { Delimiter } from './tokenize';
|
|
3
|
+
export { detectClass, classVocab } from './classify';
|
|
4
|
+
export type { ClassVocab, DetectClassOptions } from './classify';
|
|
5
|
+
export { inferRole, parseNumeric, buildClassSchema } from './columns';
|
|
6
|
+
export type { InferRoleInput } from './columns';
|
|
7
|
+
export { findMerges } from './cooccurrence';
|
|
8
|
+
export { composeGroups } from './compose';
|
|
9
|
+
export type { ComposeInput } from './compose';
|
|
10
|
+
export { serializeFingerprint, restoreFingerprint } from './fingerprint';
|
|
11
|
+
export { composeTemplate } from './template';
|
|
12
|
+
export type { TemplateOptions } from './template';
|
|
13
|
+
export { DEFAULT_COLORS, QC_OVERLAY_COLOR } from './colors';
|
|
14
|
+
export { classKey } from './classKey';
|
|
15
|
+
export { stripReplicateTokens, preGroupReplicates, expandGroupsWithReplicates, } from './replicatePreGroup';
|
|
16
|
+
export type { ReplicatePreGrouping } from './replicatePreGroup';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replicate pre-grouping.
|
|
3
|
+
*
|
|
4
|
+
* Strip the replicate / injection-number markers from each sample's name, then
|
|
5
|
+
* collapse samples that share a base name. Those samples ARE replicates of one
|
|
6
|
+
* another by definition; the remaining unique base names are what the rest of
|
|
7
|
+
* the pipeline (tokenize → classify → schema → compose) should operate on.
|
|
8
|
+
*
|
|
9
|
+
* This pre-pass replaces the older "treat every sample as independent, then
|
|
10
|
+
* infer replicate columns" approach. Identifying replicate-equivalence by name
|
|
11
|
+
* before tokenisation removes a class of fragile cardinality heuristics.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Iteratively strip every replicate / injection-number marker from `name`.
|
|
15
|
+
* Each pattern is applied repeatedly until it stops matching, so a sample like
|
|
16
|
+
* `study_T1_Rep2_004` collapses to `study` in one call.
|
|
17
|
+
*/
|
|
18
|
+
export declare function stripReplicateTokens(name: string): string;
|
|
19
|
+
export interface ReplicatePreGrouping {
|
|
20
|
+
/** Unique base names in first-seen order. Length === `originalSamples.length` only if every sample has a distinct base. */
|
|
21
|
+
baseNames: string[];
|
|
22
|
+
/**
|
|
23
|
+
* `membersByBase[i]` = original-sample indices that collapsed onto `baseNames[i]`.
|
|
24
|
+
* Length of each entry is the replicate count for that base.
|
|
25
|
+
*/
|
|
26
|
+
membersByBase: number[][];
|
|
27
|
+
/** Original sample names indexed by their position in `samples`. Retained so the compose layer can expand groups back to originals. */
|
|
28
|
+
originalSamples: string[];
|
|
29
|
+
}
|
|
30
|
+
export declare function preGroupReplicates(samples: string[]): ReplicatePreGrouping;
|
|
31
|
+
/**
|
|
32
|
+
* Expand groups produced over base names back to groups of original sample
|
|
33
|
+
* names. Each entry in `group.samples` is treated as a base name and replaced
|
|
34
|
+
* by the list of original samples that collapsed onto it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function expandGroupsWithReplicates<G extends {
|
|
37
|
+
samples: string[];
|
|
38
|
+
}>(groups: G[], preGrouping: ReplicatePreGrouping): G[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ClassSchema, SampleClass } from '../../types/auto-group';
|
|
2
|
+
export interface TemplateOptions {
|
|
3
|
+
mode: 'blank' | 'prefilled';
|
|
4
|
+
format: 'csv' | 'tsv';
|
|
5
|
+
/** For prefilled mode. Indexed parallel to `samples`. */
|
|
6
|
+
tokenizedSamples?: string[][];
|
|
7
|
+
/** Used to compute the filename; omitted → falls back to `sample_metadata_<date>`. */
|
|
8
|
+
experimentCode?: string;
|
|
9
|
+
/** Override the blank-mode suggested headers. Defaults to ['group','class','replicate','notes']. */
|
|
10
|
+
suggestedColumns?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function composeTemplate(samples: string[], schemas: ClassSchema[] | null, classes: SampleClass[] | null, options: TemplateOptions): {
|
|
13
|
+
content: string;
|
|
14
|
+
filename: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare const DELIMITER_CANDIDATES: readonly ["_", "-", "."];
|
|
2
|
+
export type Delimiter = (typeof DELIMITER_CANDIDATES)[number];
|
|
3
|
+
/** Pick the delimiter whose split produces the most consistent field count across `lines`. */
|
|
4
|
+
export declare function pickPrimaryDelimiter(lines: string[]): Delimiter;
|
|
5
|
+
/** Split a single sample name on `delimiter`. Empty input returns `['']` so callers
|
|
6
|
+
* always receive at least one token. */
|
|
7
|
+
export declare function splitMulti(name: string, delimiter: Delimiter): string[];
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_COLORS: string[];
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AutoGroupResult, ColumnInfo, OutlierAction, ParsedCsvData } from '../types/auto-group';
|
|
2
|
+
export declare function computeGroups(allSamples: string[], columns: ColumnInfo[], enabledFields: Set<number>, outlierActions: Map<number, OutlierAction>, delimiter: string, minFieldCount: number): AutoGroupResult;
|
|
3
|
+
export declare function computeGroupsFromCsv(csvData: ParsedCsvData, columns: ColumnInfo[], enabledFields: Set<number>): AutoGroupResult;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ControlComponentBinding, ControlComponentBindingsById, ControlComponentBindingsConfig, ControlComponentPropsMap } from './controlSchemaTypes';
|
|
2
|
+
/** Map control workspace values into component props for direct `v-bind` usage. */
|
|
3
|
+
export declare function controlValuesToComponentProps<TValues extends Record<string, unknown>>(values: TValues, mapping?: ControlComponentPropsMap<TValues>): Record<string, unknown>;
|
|
4
|
+
/** Map control workspace values into named SDK component bindings for direct slot rendering. */
|
|
5
|
+
export declare function controlValuesToComponentBindings<TValues extends Record<string, unknown>>(values: TValues, bindings?: ControlComponentBindingsConfig<TValues>): ControlComponentBinding[];
|
|
6
|
+
/** Map control workspace values into SDK component bindings keyed by binding id. */
|
|
7
|
+
export declare function controlValuesToComponentBindingsById<TValues extends Record<string, unknown>>(values: TValues, bindings?: ControlComponentBindingsConfig<TValues>): ControlComponentBindingsById;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PillNavItem, SidebarToolSection, SettingsModalSchema, TopBarSettingsConfig } from '../types';
|
|
2
|
+
import { ControlFormSchema, ControlSchema, ControlSchemaOptions } from './controlSchemaTypes';
|
|
3
|
+
/** Convert a compact control schema into a FormBuilder schema. */
|
|
4
|
+
export declare function controlsToFormSchema(controls: ControlSchema, options?: ControlSchemaOptions): ControlFormSchema;
|
|
5
|
+
/** Convert controls into AppSidebar panels grouped by view and section. */
|
|
6
|
+
export declare function controlsToSidebarPanels(controls: ControlSchema, options?: ControlSchemaOptions): Record<string, SidebarToolSection[]>;
|
|
7
|
+
/** Convert controls into a SettingsModal schema grouped by the same sections. */
|
|
8
|
+
export declare function controlsToSettingsSchema(controls: ControlSchema, options?: ControlSchemaOptions): SettingsModalSchema;
|
|
9
|
+
/** Convert controls into an AppTopBar settingsConfig object that passes compact controls through to SettingsModal. */
|
|
10
|
+
export declare function controlsToTopBarSettingsConfig(controls: ControlSchema, options?: ControlSchemaOptions, config?: Omit<TopBarSettingsConfig, 'schema' | 'controls' | 'controlOptions'>): TopBarSettingsConfig;
|
|
11
|
+
/** Return generated control view IDs that have at least one sidebar panel. */
|
|
12
|
+
export declare function controlsToViewIds(controls: ControlSchema, options?: ControlSchemaOptions): string[];
|
|
13
|
+
/** Return AppTopBar pillNav-compatible view items for switching generated control sidebars. */
|
|
14
|
+
export declare function controlsToViewItems(controls: ControlSchema, options?: ControlSchemaOptions): PillNavItem[];
|
|
15
|
+
/** Return the first generated sidebar view ID, or an empty string when controls render no sidebar panels. */
|
|
16
|
+
export declare function getDefaultControlView(controls: ControlSchema, options?: ControlSchemaOptions): string;
|
|
17
|
+
/** Return a headerless single-section FormBuilder schema for rendering inside an AppSidebar section slot. */
|
|
18
|
+
export declare function controlsToSectionFormSchema(controls: ControlSchema, sectionId: string, options?: ControlSchemaOptions): ControlFormSchema;
|
|
19
|
+
/** Return headerless FormBuilder schemas keyed by section ID for AppSidebar auto-rendering. */
|
|
20
|
+
export declare function controlsToSectionFormSchemas(controls: ControlSchema, options?: ControlSchemaOptions): Record<string, ControlFormSchema>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ControlComponentBindingsConfig, ControlComponentPropsByIdMap, ControlComponentPropsMap, ControlModelBinding, DoseCalculatorControlPropsOptions, DoseDesignControlModelOptions, WellPlateControlPropsOptions, WellPlateDoseControlPropsOptions } from './controlSchemaTypes';
|
|
2
|
+
/** Return a default WellPlate prop mapping for generated control workspaces. */
|
|
3
|
+
export declare function defineWellPlateControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
|
|
4
|
+
/** Return a default DoseCalculator prop mapping for generated control workspaces. */
|
|
5
|
+
export declare function defineDoseCalculatorControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: DoseCalculatorControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
|
|
6
|
+
/** Return named WellPlate + DoseCalculator prop mappings for one dose-design control model. */
|
|
7
|
+
export declare function defineWellPlateDoseControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentPropsByIdMap<TValues>;
|
|
8
|
+
/** Return named WellPlate + DoseCalculator component bindings for one dose-design control model. */
|
|
9
|
+
export declare function defineWellPlateDoseComponentBindings<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentBindingsConfig<TValues>;
|
|
10
|
+
/** Return a complete ControlWorkspaceView model for WellPlate + DoseCalculator dose design. */
|
|
11
|
+
export declare function defineDoseDesignControlModel(options?: DoseDesignControlModelOptions): ControlModelBinding;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PillNavItem } from '../types';
|
|
2
|
+
import { NormalizedControl } from './controlSchemaNormalize';
|
|
3
|
+
import { ControlDefinition, ControlSchemaOptions, ControlSectionConfig, ControlSidebarConfig } from './controlSchemaTypes';
|
|
4
|
+
export declare function sectionConfig(sectionId: string, controls: NormalizedControl[], options: ControlSchemaOptions): ControlSectionConfig;
|
|
5
|
+
export declare function firstSidebarConfig(controls: NormalizedControl[]): ControlSidebarConfig | undefined;
|
|
6
|
+
export declare function isSidebarEnabled(sidebar: ControlDefinition['sidebar']): boolean;
|
|
7
|
+
export declare function controlViewItem(viewId: string, options: ControlSchemaOptions): PillNavItem;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ControlModel, ControlModelBinding } from './controlSchemaTypes';
|
|
2
|
+
export declare function isControlModelBinding<TBinding extends ControlModelBinding = ControlModelBinding>(model: unknown): model is TBinding;
|
|
3
|
+
export declare function resolveControlModel(model: ControlModel | ControlModelBinding | undefined): ControlModelBinding | undefined;
|
|
4
|
+
/** Create a complete workspace component binding from a simple controls data model for ControlWorkspaceView, generated forms, and sidebars. */
|
|
5
|
+
export declare function defineControlModel(model: ControlModel): ControlModelBinding;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SelectOption } from '../types';
|
|
2
|
+
import { FormFieldType } from '../types/form-builder';
|
|
3
|
+
import { ControlDefinition, ControlInput, ControlOption, ControlSchema, ControlSchemaOptions } from './controlSchemaTypes';
|
|
4
|
+
export interface NormalizedControl {
|
|
5
|
+
name: string;
|
|
6
|
+
definition: ControlDefinition;
|
|
7
|
+
type: FormFieldType;
|
|
8
|
+
sectionId: string;
|
|
9
|
+
viewId: string;
|
|
10
|
+
order: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function normalizeControls(controls: ControlSchema, options?: ControlSchemaOptions): NormalizedControl[];
|
|
13
|
+
export declare function normalizeControlDefinition(input: ControlInput): ControlDefinition;
|
|
14
|
+
export declare function defaultValueForControl(definition: ControlDefinition, type: FormFieldType): unknown;
|
|
15
|
+
export declare function normalizeOption(option: ControlOption): SelectOption<unknown>;
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import { PillNavItem, SidebarToolSection, SelectOption, SettingsModalSchema, TopBarSettingsConfig } from '../types';
|
|
3
|
+
import { AccessPolicy, AccessAudienceInput } from '../permissions';
|
|
4
|
+
import { FieldCondition, FieldValidation, FormFieldSchema, FormFieldType, FormSchema, FormSectionSchema } from '../types/form-builder';
|
|
5
|
+
import { WellConcentration } from './useDoseCalculator';
|
|
6
|
+
export type ControlOptionValue = string | number | boolean;
|
|
7
|
+
export type ControlOption = ControlOptionValue | SelectOption<unknown>;
|
|
8
|
+
export type ControlPrimitive = string | number | boolean;
|
|
9
|
+
export type ControlShorthand = ControlPrimitive | readonly ControlOption[];
|
|
10
|
+
export type ControlInput = ControlDefinition | ControlShorthand;
|
|
11
|
+
export interface ControlSectionConfig {
|
|
12
|
+
id?: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
title?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
subtitle?: string;
|
|
17
|
+
icon?: string | string[];
|
|
18
|
+
iconColor?: string;
|
|
19
|
+
iconBg?: string;
|
|
20
|
+
columns?: 1 | 2 | 3;
|
|
21
|
+
condition?: FieldCondition;
|
|
22
|
+
access?: AccessPolicy;
|
|
23
|
+
visibleFor?: AccessAudienceInput;
|
|
24
|
+
requiresAdmin?: boolean;
|
|
25
|
+
permissions?: readonly string[];
|
|
26
|
+
anyPermissions?: readonly string[];
|
|
27
|
+
defaultOpen?: boolean;
|
|
28
|
+
showToggle?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface ControlViewConfig {
|
|
31
|
+
label?: string;
|
|
32
|
+
icon?: string;
|
|
33
|
+
to?: string;
|
|
34
|
+
href?: string;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
children?: PillNavItem['children'];
|
|
37
|
+
}
|
|
38
|
+
export interface ControlSidebarConfig extends Omit<ControlSectionConfig, 'id' | 'title' | 'description' | 'columns'> {
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface ControlDefinition {
|
|
42
|
+
type?: FormFieldType;
|
|
43
|
+
label?: string;
|
|
44
|
+
default?: unknown;
|
|
45
|
+
defaultValue?: unknown;
|
|
46
|
+
placeholder?: string;
|
|
47
|
+
hint?: string;
|
|
48
|
+
size?: 'sm' | 'md' | 'lg';
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
readonly?: boolean;
|
|
51
|
+
required?: boolean | string;
|
|
52
|
+
min?: number | {
|
|
53
|
+
value: number;
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
56
|
+
max?: number | {
|
|
57
|
+
value: number;
|
|
58
|
+
message: string;
|
|
59
|
+
};
|
|
60
|
+
minLength?: number | {
|
|
61
|
+
value: number;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
maxLength?: number | {
|
|
65
|
+
value: number;
|
|
66
|
+
message: string;
|
|
67
|
+
};
|
|
68
|
+
email?: boolean | string;
|
|
69
|
+
pattern?: string | {
|
|
70
|
+
value: string;
|
|
71
|
+
message: string;
|
|
72
|
+
};
|
|
73
|
+
validation?: FieldValidation;
|
|
74
|
+
condition?: FieldCondition;
|
|
75
|
+
access?: AccessPolicy;
|
|
76
|
+
visibleFor?: AccessAudienceInput;
|
|
77
|
+
requiresAdmin?: boolean;
|
|
78
|
+
permissions?: readonly string[];
|
|
79
|
+
anyPermissions?: readonly string[];
|
|
80
|
+
options?: readonly ControlOption[];
|
|
81
|
+
section?: string;
|
|
82
|
+
sectionLabel?: string;
|
|
83
|
+
sectionDescription?: string;
|
|
84
|
+
sectionSubtitle?: string;
|
|
85
|
+
view?: string;
|
|
86
|
+
order?: number;
|
|
87
|
+
colSpan?: number;
|
|
88
|
+
props?: Record<string, unknown>;
|
|
89
|
+
sidebar?: boolean | ControlSidebarConfig;
|
|
90
|
+
}
|
|
91
|
+
export type ControlSchema = Record<string, ControlInput>;
|
|
92
|
+
export type ControlFormSchema = Extract<FormSchema, {
|
|
93
|
+
sections: FormSectionSchema[];
|
|
94
|
+
}>;
|
|
95
|
+
export interface ControlSchemaOptions {
|
|
96
|
+
view?: string;
|
|
97
|
+
views?: Record<string, ControlViewConfig>;
|
|
98
|
+
section?: string;
|
|
99
|
+
sectionLabel?: string;
|
|
100
|
+
sections?: Record<string, ControlSectionConfig>;
|
|
101
|
+
columns?: 1 | 2 | 3;
|
|
102
|
+
submitLabel?: string;
|
|
103
|
+
cancelLabel?: string;
|
|
104
|
+
showCancel?: boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface ControlWorkspaceOptions extends ControlSchemaOptions {
|
|
107
|
+
initialValues?: Record<string, unknown>;
|
|
108
|
+
topBarSettings?: Omit<TopBarSettingsConfig, 'schema' | 'controls' | 'controlOptions' | 'values'>;
|
|
109
|
+
}
|
|
110
|
+
export interface ControlModelSectionConfig extends ControlSectionConfig {
|
|
111
|
+
controls: ControlSchema;
|
|
112
|
+
sidebar?: boolean | ControlSidebarConfig;
|
|
113
|
+
}
|
|
114
|
+
export interface ControlModelViewConfig extends ControlViewConfig {
|
|
115
|
+
controls?: ControlSchema;
|
|
116
|
+
section?: string;
|
|
117
|
+
sectionLabel?: string;
|
|
118
|
+
sectionDescription?: string;
|
|
119
|
+
sections?: Record<string, ControlModelSectionConfig>;
|
|
120
|
+
}
|
|
121
|
+
export interface ControlModel extends Omit<ControlWorkspaceOptions, 'sections' | 'views'> {
|
|
122
|
+
controls?: ControlSchema;
|
|
123
|
+
sections?: Record<string, ControlModelSectionConfig>;
|
|
124
|
+
views?: Record<string, ControlModelViewConfig>;
|
|
125
|
+
/** Optional SDK component bindings returned with generated component props for custom workspace slots. */
|
|
126
|
+
componentBindings?: ControlComponentBindingsConfig;
|
|
127
|
+
/** Alias for componentBindings in raw control models. */
|
|
128
|
+
components?: ControlComponentBindingsConfig;
|
|
129
|
+
/** Optional ControlWorkspaceView componentProps mapping returned with the generated controls/options. */
|
|
130
|
+
componentProps?: ControlComponentPropsMap;
|
|
131
|
+
/** Optional named componentProps mappings returned for multiple SDK components. */
|
|
132
|
+
componentPropsById?: ControlComponentPropsByIdMap;
|
|
133
|
+
}
|
|
134
|
+
export interface ControlModelBinding {
|
|
135
|
+
controls: ControlSchema;
|
|
136
|
+
controlOptions: ControlWorkspaceOptions;
|
|
137
|
+
componentBindings?: ControlComponentBindingsConfig;
|
|
138
|
+
componentProps?: ControlComponentPropsMap;
|
|
139
|
+
componentPropsById?: ControlComponentPropsByIdMap;
|
|
140
|
+
}
|
|
141
|
+
export interface ControlSidebarBinding {
|
|
142
|
+
panels: Record<string, SidebarToolSection[]>;
|
|
143
|
+
forms: Record<string, ControlFormSchema>;
|
|
144
|
+
viewIds: string[];
|
|
145
|
+
viewItems: PillNavItem[];
|
|
146
|
+
defaultView: string;
|
|
147
|
+
}
|
|
148
|
+
export interface ControlFormBinding {
|
|
149
|
+
schema: ControlFormSchema;
|
|
150
|
+
}
|
|
151
|
+
export interface ControlSettingsBinding {
|
|
152
|
+
schema: SettingsModalSchema;
|
|
153
|
+
}
|
|
154
|
+
export interface ControlTopBarSettingsBinding {
|
|
155
|
+
showSettings: true;
|
|
156
|
+
settingsConfig: TopBarSettingsConfig;
|
|
157
|
+
}
|
|
158
|
+
export interface ControlWorkspaceFormBinding extends ControlFormBinding {
|
|
159
|
+
modelValue: Record<string, unknown>;
|
|
160
|
+
'onUpdate:modelValue': (values: Record<string, unknown>) => void;
|
|
161
|
+
}
|
|
162
|
+
export interface ControlWorkspaceSidebarBinding extends ControlSidebarBinding {
|
|
163
|
+
activeView: string;
|
|
164
|
+
modelValue: Record<string, unknown>;
|
|
165
|
+
'onUpdate:modelValue': (values: Record<string, unknown>) => void;
|
|
166
|
+
values: Record<string, unknown>;
|
|
167
|
+
'onUpdate:values': (values: Record<string, unknown>) => void;
|
|
168
|
+
}
|
|
169
|
+
export interface ControlWorkspaceTopBarSettingsBinding extends ControlTopBarSettingsBinding {
|
|
170
|
+
onSettingsValuesChange: (values: Record<string, unknown>) => void;
|
|
171
|
+
}
|
|
172
|
+
export interface ControlWorkspacePillNavBinding {
|
|
173
|
+
items: PillNavItem[];
|
|
174
|
+
currentItemId: string;
|
|
175
|
+
onSelect: (item: PillNavItem) => void;
|
|
176
|
+
}
|
|
177
|
+
export interface ControlWorkspaceTopBarBinding extends ControlWorkspaceTopBarSettingsBinding {
|
|
178
|
+
pillNav: PillNavItem[];
|
|
179
|
+
currentPillId: string;
|
|
180
|
+
onPillSelect: (item: PillNavItem) => void;
|
|
181
|
+
}
|
|
182
|
+
export type ControlWorkspaceAppTopBarPillBinding = ControlWorkspaceTopBarBinding;
|
|
183
|
+
export interface ControlWorkspaceComponentBindings {
|
|
184
|
+
form: ControlWorkspaceFormBinding;
|
|
185
|
+
sidebar: ControlWorkspaceSidebarBinding;
|
|
186
|
+
topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
|
|
187
|
+
topBarSettings: ControlWorkspaceTopBarSettingsBinding;
|
|
188
|
+
pillNav: ControlWorkspacePillNavBinding;
|
|
189
|
+
componentBindings: ComputedRef<ControlComponentBinding[]>;
|
|
190
|
+
componentBindingsById: ComputedRef<ControlComponentBindingsById>;
|
|
191
|
+
componentProps: ComputedRef<Record<string, unknown>>;
|
|
192
|
+
componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
|
|
193
|
+
}
|
|
194
|
+
export type ControlComponentPropSource<TValues extends Record<string, unknown> = Record<string, unknown>> = (keyof TValues & string) | ((values: TValues) => unknown);
|
|
195
|
+
export type ControlComponentPropsMap<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly (keyof TValues & string)[] | Record<string, ControlComponentPropSource<TValues>>;
|
|
196
|
+
export type ControlComponentPropsByIdMap<TValues extends Record<string, unknown> = Record<string, unknown>> = Record<string, ControlComponentPropsMap<TValues>>;
|
|
197
|
+
export interface ControlComponentBindingConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
198
|
+
id?: string;
|
|
199
|
+
component: string;
|
|
200
|
+
props?: ControlComponentPropsMap<TValues>;
|
|
201
|
+
}
|
|
202
|
+
export interface ControlComponentBindingRecordConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
203
|
+
component: string;
|
|
204
|
+
props?: ControlComponentPropsMap<TValues>;
|
|
205
|
+
}
|
|
206
|
+
export type ControlComponentBindingsConfig<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly ControlComponentBindingConfig<TValues>[] | Record<string, ControlComponentBindingRecordConfig<TValues>>;
|
|
207
|
+
export interface ControlComponentBinding {
|
|
208
|
+
id: string;
|
|
209
|
+
component: string;
|
|
210
|
+
props: Record<string, unknown>;
|
|
211
|
+
}
|
|
212
|
+
export type ControlComponentBindingsById = Record<string, ControlComponentBinding>;
|
|
213
|
+
export interface WellPlateControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
214
|
+
selectedWells?: ControlComponentPropSource<TValues>;
|
|
215
|
+
format?: ControlComponentPropSource<TValues>;
|
|
216
|
+
wells?: ControlComponentPropSource<TValues>;
|
|
217
|
+
disabled?: ControlComponentPropSource<TValues>;
|
|
218
|
+
readonly?: ControlComponentPropSource<TValues>;
|
|
219
|
+
showLegend?: ControlComponentPropSource<TValues>;
|
|
220
|
+
showSampleTypeIndicator?: ControlComponentPropSource<TValues>;
|
|
221
|
+
/** Listener for WellPlate v-model updates. Set false to keep generated props one-way. */
|
|
222
|
+
onUpdateModelValue?: ((values: TValues) => (wellIds: string[]) => void) | false;
|
|
223
|
+
}
|
|
224
|
+
export interface DoseCalculatorControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
225
|
+
mode?: ControlComponentPropSource<TValues>;
|
|
226
|
+
targetWells?: ControlComponentPropSource<TValues>;
|
|
227
|
+
/** Control value key used by the default apply-to-wells handler. */
|
|
228
|
+
wells?: ControlComponentPropSource<TValues>;
|
|
229
|
+
disabled?: ControlComponentPropSource<TValues>;
|
|
230
|
+
molecularWeight?: ControlComponentPropSource<TValues>;
|
|
231
|
+
/** Listener for DoseCalculator apply-to-wells. Set false to keep generated props one-way. */
|
|
232
|
+
onApplyToWells?: ((values: TValues) => (results: WellConcentration[]) => void) | false;
|
|
233
|
+
}
|
|
234
|
+
export interface WellPlateDoseControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
235
|
+
plateId?: string;
|
|
236
|
+
doseId?: string;
|
|
237
|
+
plate?: WellPlateControlPropsOptions<TValues>;
|
|
238
|
+
dose?: DoseCalculatorControlPropsOptions<TValues>;
|
|
239
|
+
}
|
|
240
|
+
export interface DoseDesignControlModelOptions {
|
|
241
|
+
viewId?: string;
|
|
242
|
+
viewLabel?: string;
|
|
243
|
+
sectionId?: string;
|
|
244
|
+
sectionLabel?: string;
|
|
245
|
+
sectionDescription?: string;
|
|
246
|
+
selectedWells?: readonly string[];
|
|
247
|
+
plateFormat?: number;
|
|
248
|
+
plateFormats?: readonly number[];
|
|
249
|
+
doseMode?: 'serial' | 'dilution' | 'conversion';
|
|
250
|
+
doseModes?: readonly ('serial' | 'dilution' | 'conversion')[];
|
|
251
|
+
disabled?: boolean;
|
|
252
|
+
includeMolecularWeight?: boolean;
|
|
253
|
+
molecularWeight?: number;
|
|
254
|
+
componentProps?: WellPlateDoseControlPropsOptions;
|
|
255
|
+
}
|
|
256
|
+
export interface UseControlSchemaReturn<TControls extends ControlSchema> {
|
|
257
|
+
controls: TControls;
|
|
258
|
+
fields: FormFieldSchema[];
|
|
259
|
+
formSchema: ControlFormSchema;
|
|
260
|
+
form: ControlFormBinding;
|
|
261
|
+
settingsSchema: SettingsModalSchema;
|
|
262
|
+
settings: ControlSettingsBinding;
|
|
263
|
+
topBarSettingsConfig: TopBarSettingsConfig;
|
|
264
|
+
topBarSettings: ControlTopBarSettingsBinding;
|
|
265
|
+
sidebarPanels: Record<string, SidebarToolSection[]>;
|
|
266
|
+
viewIds: string[];
|
|
267
|
+
viewItems: PillNavItem[];
|
|
268
|
+
defaultView: string;
|
|
269
|
+
sectionSchemas: Record<string, ControlFormSchema>;
|
|
270
|
+
sidebar: ControlSidebarBinding;
|
|
271
|
+
initialValues: ControlValues<TControls>;
|
|
272
|
+
sectionSchema: (sectionId: string) => ControlFormSchema;
|
|
273
|
+
}
|
|
274
|
+
export interface UseControlWorkspaceReturn<TControls extends ControlSchema> extends Omit<UseControlSchemaReturn<TControls>, 'form' | 'sidebar' | 'topBarSettings'> {
|
|
275
|
+
schema: UseControlSchemaReturn<TControls>;
|
|
276
|
+
values: ControlValues<TControls> & Record<string, unknown>;
|
|
277
|
+
activeView: Ref<string>;
|
|
278
|
+
form: ControlWorkspaceFormBinding;
|
|
279
|
+
sidebar: ControlWorkspaceSidebarBinding;
|
|
280
|
+
topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
|
|
281
|
+
pillNav: ControlWorkspacePillNavBinding;
|
|
282
|
+
topBarSettings: ControlWorkspaceTopBarSettingsBinding;
|
|
283
|
+
bindings: ControlWorkspaceComponentBindings;
|
|
284
|
+
componentBindings: ComputedRef<ControlComponentBinding[]>;
|
|
285
|
+
componentBindingsById: ComputedRef<ControlComponentBindingsById>;
|
|
286
|
+
componentProps: ComputedRef<Record<string, unknown>>;
|
|
287
|
+
componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
|
|
288
|
+
setActiveView: (viewId: string) => void;
|
|
289
|
+
setValues: (values: Record<string, unknown>) => void;
|
|
290
|
+
resetValues: (values?: Record<string, unknown>) => void;
|
|
291
|
+
getComponentProps: (mapping?: ControlComponentPropsMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, unknown>;
|
|
292
|
+
getComponentPropsById: (mappings?: ControlComponentPropsByIdMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, Record<string, unknown>>;
|
|
293
|
+
getComponentBindings: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBinding[];
|
|
294
|
+
getComponentBindingsById: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBindingsById;
|
|
295
|
+
}
|
|
296
|
+
export type ControlValues<TControls extends ControlSchema> = {
|
|
297
|
+
[K in keyof TControls]: ControlValue<TControls[K]>;
|
|
298
|
+
};
|
|
299
|
+
type ControlValue<TControl> = TControl extends {
|
|
300
|
+
default: infer TDefault;
|
|
301
|
+
} ? TDefault : TControl extends {
|
|
302
|
+
defaultValue: infer TDefaultValue;
|
|
303
|
+
} ? TDefaultValue : TControl extends readonly [infer First, ...unknown[]] ? OptionValue<First> : TControl extends ControlPrimitive ? TControl : unknown;
|
|
304
|
+
type OptionValue<TOption> = TOption extends SelectOption<infer TValue> ? TValue : TOption;
|
|
305
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function recordValue(value: unknown): Record<string, unknown>;
|
|
2
|
+
export declare function numericValue(value: number | {
|
|
3
|
+
value: number;
|
|
4
|
+
message: string;
|
|
5
|
+
}): number;
|
|
6
|
+
export declare function orderedUnique(values: string[]): string[];
|
|
7
|
+
export declare function replaceRecord(target: Record<string, unknown>, values: Record<string, unknown>): void;
|
|
8
|
+
export declare function omitUndefined<T extends object>(record: T): T;
|
|
9
|
+
export declare function humanize(value: string): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FieldRules } from './useForm';
|
|
2
|
+
import { FieldCondition, FormEnhancements, FormFieldSchema, FormSchema, FormSectionSchema } from '../types/form-builder';
|
|
3
|
+
/**
|
|
4
|
+
* Evaluate a JSON-serializable field condition against the current form data.
|
|
5
|
+
*
|
|
6
|
+
* Supports logical operators (`and`, `or`, `not`) and comparison operators
|
|
7
|
+
* (`eq`, `neq`, `gt`, `lt`, `gte`, `lte`, `in`, `notIn`, `truthy`, `falsy`,
|
|
8
|
+
* `contains`). Returns `true` if the condition passes.
|
|
9
|
+
*/
|
|
10
|
+
export declare function evaluateCondition(condition: FieldCondition, data: Record<string, unknown>): boolean;
|
|
11
|
+
/** Return all sections across steps (wizard) or directly from a flat schema. */
|
|
12
|
+
export declare function collectSections(schema: FormSchema): FormSectionSchema[];
|
|
13
|
+
/** Return all field schemas in schema order, flattening sections and steps. */
|
|
14
|
+
export declare function flattenFields(schema: FormSchema): FormFieldSchema[];
|
|
15
|
+
export declare function buildInitialValues<T extends Record<string, unknown>>(fields: readonly FormFieldSchema[], initialData?: Partial<T>): Record<string, unknown>;
|
|
16
|
+
export declare function buildRules<T extends Record<string, unknown>>(fields: readonly FormFieldSchema[], enhancements?: FormEnhancements<T>): Partial<Record<string, FieldRules>>;
|
|
17
|
+
export declare function replaceArray<T>(target: T[], values: readonly T[]): void;
|
|
18
|
+
export declare function replaceRecord<TValue>(target: Partial<Record<string, TValue>>, source: Partial<Record<string, TValue>>): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $ as
|
|
3
|
-
import { a as
|
|
1
|
+
import { An as controlsToSectionFormSchema, B as toBioTemplateComponentProps, Cn as defineControlModel, Dn as controlValuesToComponentProps, En as controlValuesToComponentBindingsById, Fn as controlsToViewIds, Gn as useSequenceUtils, H as toBioTemplateComponentPropsById, Hn as useConcentrationUnits, In as controlsToViewItems, Jn as useChemicalFormula, L as toBioTemplateComponentBindings, Ln as getDefaultControlView, Mn as controlsToSettingsSchema, Nn as controlsToSidebarPanels, P as getBioTemplateComponentBindings, Pn as controlsToTopBarSettingsConfig, R as toBioTemplateComponentBindingsById, Rn as getFieldRegistryEntry, Sn as useControlWorkspace, Tn as controlValuesToComponentBindings, _n as defineDoseCalculatorControlProps, ar as formatDuration, bn as defineWellPlateDoseComponentBindings, br as useSelectionLimit, cr as fromMinutes, dr as parseTime, er as addMinutes, fr as rangesOverlap, gn as useControlSchema, hn as getControlDefaults, hr as useTimeUtils, ir as findNearestTimeSlotIndex, jn as controlsToSectionFormSchemas, kn as controlsToFormSchema, l as requireBioTemplateControlSchema, lr as generateTimeSlots, mn as defineControls, mr as toMinutes, nr as durationMinutes, o as getBioTemplateControlSchema, or as formatTime, pn as defineControlComponentBindings, pr as snapToSlot, qn as ATOMIC_WEIGHTS, rr as findAvailableSlots, sr as formatTimeSlot, tr as compareTime, ur as isTimeInRange, vn as defineDoseDesignControlModel, xn as defineWellPlateDoseControlProps, xr as useEventListener, yn as defineWellPlateControlProps, yr as useListSelection, zn as getTypeDefault } from "../templates-DtdUvJ4c.js";
|
|
2
|
+
import { $ as resolveExperimentCode, B as useExperimentSelector, C as useExpansionSet, G as EXPERIMENT_STATUS_LABELS, H as useDebouncedWatch, I as useWellPlateEditor, J as SORT_OPTIONS, K as EXPERIMENT_STATUS_OPTIONS, L as useDoseCalculator, M as extractSampleOptionsFromDesignData, N as unwrapExperimentDesignData, O as extractSamplesFromDesignData, P as DEFAULT_COLORS, Q as getExperimentStatusVariant, R as APP_EXPERIMENT_KEY, U as useApi, V as useRequestSyncState, W as DATE_PRESET_OPTIONS, X as formatExperimentDate, Y as datePresetToISO, Z as formatExperimentStatus, _ as useScheduleDrag, a as useReagentSeries, at as useToast, c as useBioTemplatePresetWorkspace, ct as useTextSearch, d as getBioTemplateComponentProps, et as usePlatformContext, f as toBioTemplateComponentPropsByComponent, g as useExperimentSave, h as useTemplateCollection, i as generateDilutionSeries, it as useTheme, j as extractSampleNamesFromDesignData, k as useAutoGroup, l as useBioTemplatePackWorkspace, lt as compareSortValues, m as useBioTemplateControls, n as DEFAULT_PRESETS, nt as evaluateCondition, o as useGroupAssignment, ot as candidateMatchesSearch, p as useBioTemplateComponents, q as EXPERIMENT_STATUS_VARIANT_MAP, r as DEFAULT_UNITS, rt as useForm, s as useRackEditor, st as normalizeSearchQuery, t as useProtocolTemplates, tt as useFormBuilder, u as useBioTemplateWorkspace, ut as useSortedItems, v as useExperimentSamples, w as useSampleGroups, y as useExperimentData, z as useAppExperiment } from "../useProtocolTemplates-Bm5vyH4_.js";
|
|
3
|
+
import { a as usePluginSettings, c as usePluginConfig, d as usePasskey, f as useAuth, i as usePluginClient, l as useAsync, n as getPluginPageSelectorItems, o as buildPluginEndpointUrl, r as useCurrentExperiment, s as resolvePluginBaseUrl, t as createPluginClient, u as useAsyncBatch } from "../composables-Dlg8jenH.js";
|
|
4
4
|
export { APP_EXPERIMENT_KEY, ATOMIC_WEIGHTS, DATE_PRESET_OPTIONS, DEFAULT_COLORS, DEFAULT_PRESETS, DEFAULT_UNITS, EXPERIMENT_STATUS_LABELS, EXPERIMENT_STATUS_OPTIONS, EXPERIMENT_STATUS_VARIANT_MAP, SORT_OPTIONS, addMinutes, buildPluginEndpointUrl, candidateMatchesSearch, compareSortValues, compareTime, controlValuesToComponentBindings, controlValuesToComponentBindingsById, controlValuesToComponentProps, controlsToFormSchema, controlsToSectionFormSchema, controlsToSectionFormSchemas, controlsToSettingsSchema, controlsToSidebarPanels, controlsToTopBarSettingsConfig, controlsToViewIds, controlsToViewItems, createPluginClient, datePresetToISO, defineControlComponentBindings, defineControlModel, defineControls, defineDoseCalculatorControlProps, defineDoseDesignControlModel, defineWellPlateControlProps, defineWellPlateDoseComponentBindings, defineWellPlateDoseControlProps, durationMinutes, evaluateCondition, extractSampleNamesFromDesignData, extractSampleOptionsFromDesignData, extractSamplesFromDesignData, findAvailableSlots, findNearestTimeSlotIndex, formatDuration, formatExperimentDate, formatExperimentStatus, formatTime, formatTimeSlot, fromMinutes, generateDilutionSeries, generateTimeSlots, getBioTemplateComponentBindings, getBioTemplateComponentProps, getBioTemplateControlSchema, getControlDefaults, getDefaultControlView, getExperimentStatusVariant, getFieldRegistryEntry, getPluginPageSelectorItems, getTypeDefault, isTimeInRange, normalizeSearchQuery, parseTime, rangesOverlap, requireBioTemplateControlSchema, resolveExperimentCode, resolvePluginBaseUrl, snapToSlot, toBioTemplateComponentBindings, toBioTemplateComponentBindingsById, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, toMinutes, unwrapExperimentDesignData, useApi, useAppExperiment, useAsync, useAsyncBatch, useAuth, useAutoGroup, useBioTemplateComponents, useBioTemplateControls, useBioTemplatePackWorkspace, useBioTemplatePresetWorkspace, useBioTemplateWorkspace, useChemicalFormula, useConcentrationUnits, useControlSchema, useControlWorkspace, useCurrentExperiment, useDebouncedWatch, useDoseCalculator, useEventListener, useExpansionSet, useExperimentData, useExperimentSamples, useExperimentSave, useExperimentSelector, useForm, useFormBuilder, useGroupAssignment, useListSelection, usePasskey, usePlatformContext, usePluginClient, usePluginConfig, usePluginSettings, useProtocolTemplates, useRackEditor, useReagentSeries, useRequestSyncState, useSampleGroups, useScheduleDrag, useSelectionLimit, useSequenceUtils, useSortedItems, useTemplateCollection, useTextSearch, useTheme, useTimeUtils, useToast, useWellPlateEditor };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BuildPluginEndpointUrlOptions, PluginContract, PluginEndpointDefinition } from './usePluginClient';
|
|
2
|
+
/** Resolve the runtime plugin API base URL from env, explicit options, platform injection, or contract metadata. */
|
|
3
|
+
export declare function resolvePluginBaseUrl(contract: PluginContract, explicitBaseUrl?: string): string;
|
|
4
|
+
export declare function hasKeys(value: Record<string, unknown>): boolean;
|
|
5
|
+
export declare function requestBodyFromPayload(payload: unknown, requestPayload: Record<string, unknown>, endpoint: PluginEndpointDefinition): unknown;
|
|
6
|
+
export declare function pluginEndpointRequestParts(contract: PluginContract, endpoint: PluginEndpointDefinition, payload?: unknown, explicitBaseUrl?: string): {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
path: string;
|
|
9
|
+
query: Record<string, unknown>;
|
|
10
|
+
requestPayload: Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
/** Build the concrete URL for a generated plugin endpoint without making a request. */
|
|
13
|
+
export declare function buildPluginEndpointUrl(contract: PluginContract, endpoint: PluginEndpointDefinition, payload?: unknown, options?: BuildPluginEndpointUrlOptions): string;
|