@morscherlab/mint-sdk 1.0.0-rc.4 → 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/AppSidebar.vue.d.ts +3 -3
- 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/ControlWorkspaceView.vue.d.ts +3 -3
- 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/DoseDesignWorkspaceView.vue.d.ts +1 -1
- 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-DafPc4rM.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 +1 -1
- package/dist/composables/controlSchemaAdapters.d.ts +1 -1
- package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
- package/dist/composables/controlSchemaLayout.d.ts +1 -1
- package/dist/composables/controlSchemaModel.d.ts +5 -0
- package/dist/composables/controlSchemaNormalize.d.ts +1 -1
- package/dist/composables/controlSchemaTypes.d.ts +305 -0
- package/dist/composables/controlWorkspaceOptions.d.ts +1 -1
- 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 +4 -316
- package/dist/composables/useControlWorkspace.d.ts +1 -1
- 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-BMkPQhVK.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/controlSchemaTypes.d.ts +1 -1
- package/dist/templates/index.js +1 -1
- package/dist/templates/templateAdapterTypes.d.ts +48 -0
- package/dist/templates/templateCreateOptions.d.ts +165 -0
- package/dist/templates/templateQpcrTypes.d.ts +42 -0
- package/dist/templates/types.d.ts +5 -250
- package/dist/{templates-bUAWMn5L.js → templates-DtdUvJ4c.js} +144 -136
- 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-QZtHFFH2.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 +1 -1
- package/src/composables/controlSchemaAdapters.ts +1 -1
- package/src/composables/controlSchemaDoseDesign.ts +215 -0
- package/src/composables/controlSchemaFormFields.ts +1 -1
- package/src/composables/controlSchemaLayout.ts +1 -1
- package/src/composables/controlSchemaModel.ts +163 -0
- package/src/composables/controlSchemaNormalize.ts +1 -1
- package/src/composables/controlSchemaTypes.ts +364 -0
- package/src/composables/controlWorkspaceOptions.ts +1 -1
- 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 +21 -692
- package/src/composables/useControlWorkspace.ts +7 -13
- 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/controlSchemaTypes.ts +1 -1
- package/src/templates/templateAdapterTypes.ts +58 -0
- package/src/templates/templateCreateOptions.ts +208 -0
- package/src/templates/templateQpcrTypes.ts +48 -0
- package/src/templates/types.ts +79 -275
- 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-DafPc4rM.js.map +0 -1
- package/dist/composables-BMkPQhVK.js.map +0 -1
- package/dist/templates-bUAWMn5L.js.map +0 -1
- package/dist/useProtocolTemplates-QZtHFFH2.js.map +0 -1
|
@@ -4578,10 +4578,96 @@ function uniqueComponentBindingId(id, usedIds) {
|
|
|
4578
4578
|
return count === 0 ? id : `${id}-${count + 1}`;
|
|
4579
4579
|
}
|
|
4580
4580
|
//#endregion
|
|
4581
|
+
//#region src/composables/controlSchemaModel.ts
|
|
4582
|
+
function isControlModelBinding(model) {
|
|
4583
|
+
return typeof model === "object" && model !== null && "controls" in model && "controlOptions" in model;
|
|
4584
|
+
}
|
|
4585
|
+
function resolveControlModel(model) {
|
|
4586
|
+
if (model === void 0) return void 0;
|
|
4587
|
+
return isControlModelBinding(model) ? model : defineControlModel(model);
|
|
4588
|
+
}
|
|
4589
|
+
/** Create a complete workspace component binding from a simple controls data model for ControlWorkspaceView, generated forms, and sidebars. */
|
|
4590
|
+
function defineControlModel(model) {
|
|
4591
|
+
const { controls: rootControls, sections: rootSections, views: modelViews, components, componentBindings, componentProps, componentPropsById, ...baseOptions } = model;
|
|
4592
|
+
const resolvedComponentBindings = componentBindings ?? components;
|
|
4593
|
+
const controls = {};
|
|
4594
|
+
const views = {};
|
|
4595
|
+
const sections = {};
|
|
4596
|
+
const defaultViewId = model.view ?? "default";
|
|
4597
|
+
const defaultSectionId = model.section ?? "controls";
|
|
4598
|
+
if (rootControls) {
|
|
4599
|
+
registerSectionOptions(sections, defaultSectionId, {
|
|
4600
|
+
id: defaultSectionId,
|
|
4601
|
+
label: model.sectionLabel,
|
|
4602
|
+
title: model.sectionLabel,
|
|
4603
|
+
columns: model.columns
|
|
4604
|
+
});
|
|
4605
|
+
appendModelControls(controls, rootControls, defaultViewId, defaultSectionId);
|
|
4606
|
+
}
|
|
4607
|
+
for (const [sectionId, section] of Object.entries(rootSections ?? {})) {
|
|
4608
|
+
registerSectionOptions(sections, sectionId, controlModelSectionOptions(section));
|
|
4609
|
+
appendModelControls(controls, section.controls, defaultViewId, sectionId, section.sidebar);
|
|
4610
|
+
}
|
|
4611
|
+
for (const [viewId, view] of Object.entries(modelViews ?? {})) {
|
|
4612
|
+
const { controls: viewControls, sections: viewSections, section, sectionLabel, sectionDescription, ...viewConfig } = view;
|
|
4613
|
+
views[viewId] = omitUndefined(viewConfig);
|
|
4614
|
+
if (viewControls) {
|
|
4615
|
+
const sectionId = section ?? `${viewId}-controls`;
|
|
4616
|
+
const label = sectionLabel ?? view.label;
|
|
4617
|
+
registerSectionOptions(sections, sectionId, {
|
|
4618
|
+
id: sectionId,
|
|
4619
|
+
label,
|
|
4620
|
+
title: label,
|
|
4621
|
+
description: sectionDescription,
|
|
4622
|
+
columns: model.columns
|
|
4623
|
+
});
|
|
4624
|
+
appendModelControls(controls, viewControls, viewId, sectionId);
|
|
4625
|
+
}
|
|
4626
|
+
for (const [sectionKey, sectionConfig] of Object.entries(viewSections ?? {})) {
|
|
4627
|
+
const sectionId = sectionConfig.id ?? `${viewId}-${sectionKey}`;
|
|
4628
|
+
registerSectionOptions(sections, sectionId, controlModelSectionOptions(sectionConfig));
|
|
4629
|
+
appendModelControls(controls, sectionConfig.controls, viewId, sectionId, sectionConfig.sidebar);
|
|
4630
|
+
}
|
|
4631
|
+
}
|
|
4632
|
+
const controlOptions = { ...baseOptions };
|
|
4633
|
+
if (Object.keys(views).length > 0) controlOptions.views = views;
|
|
4634
|
+
if (Object.keys(sections).length > 0) controlOptions.sections = sections;
|
|
4635
|
+
return {
|
|
4636
|
+
controls,
|
|
4637
|
+
controlOptions,
|
|
4638
|
+
...resolvedComponentBindings === void 0 ? {} : { componentBindings: resolvedComponentBindings },
|
|
4639
|
+
...componentProps === void 0 ? {} : { componentProps },
|
|
4640
|
+
...componentPropsById === void 0 ? {} : { componentPropsById }
|
|
4641
|
+
};
|
|
4642
|
+
}
|
|
4643
|
+
function appendModelControls(target, source, viewId, sectionId, sidebar) {
|
|
4644
|
+
for (const [name, input] of Object.entries(source)) {
|
|
4645
|
+
if (Object.prototype.hasOwnProperty.call(target, name)) throw new Error(`Duplicate control "${name}" in defineControlModel(). Control names must be unique across views and sections.`);
|
|
4646
|
+
const definition = normalizeControlDefinition(input);
|
|
4647
|
+
target[name] = omitUndefined({
|
|
4648
|
+
...definition,
|
|
4649
|
+
view: definition.view ?? viewId,
|
|
4650
|
+
section: definition.section ?? sectionId,
|
|
4651
|
+
sidebar: definition.sidebar ?? sidebar
|
|
4652
|
+
});
|
|
4653
|
+
}
|
|
4654
|
+
}
|
|
4655
|
+
function controlModelSectionOptions(section) {
|
|
4656
|
+
const { controls: _controls, sidebar: _sidebar, ...options } = section;
|
|
4657
|
+
return omitUndefined(options);
|
|
4658
|
+
}
|
|
4659
|
+
function registerSectionOptions(target, sectionId, options) {
|
|
4660
|
+
target[sectionId] = omitUndefined({
|
|
4661
|
+
...target[sectionId] ?? {},
|
|
4662
|
+
...options,
|
|
4663
|
+
id: sectionId
|
|
4664
|
+
});
|
|
4665
|
+
}
|
|
4666
|
+
//#endregion
|
|
4581
4667
|
//#region src/composables/useControlWorkspace.ts
|
|
4582
4668
|
/** Prepare shared reactive values plus AppTopBar/AppSidebar/FormBuilder bindings from one simple controls data model. */
|
|
4583
4669
|
function useControlWorkspace(controlsOrModel, options = {}) {
|
|
4584
|
-
const model =
|
|
4670
|
+
const model = isControlModelBinding(controlsOrModel) ? controlsOrModel : void 0;
|
|
4585
4671
|
const controls = model ? model.controls : controlsOrModel;
|
|
4586
4672
|
const { initialValues, topBarSettings, ...schemaOptions } = model ? mergeControlWorkspaceOptions(model.controlOptions, options) : options;
|
|
4587
4673
|
const schema = useControlSchema(controls, schemaOptions);
|
|
@@ -4698,79 +4784,8 @@ function useControlWorkspace(controlsOrModel, options = {}) {
|
|
|
4698
4784
|
getComponentBindingsById
|
|
4699
4785
|
};
|
|
4700
4786
|
}
|
|
4701
|
-
function isControlModelBindingInput(value) {
|
|
4702
|
-
return typeof value === "object" && value !== null && "controls" in value && "controlOptions" in value;
|
|
4703
|
-
}
|
|
4704
4787
|
//#endregion
|
|
4705
|
-
//#region src/composables/
|
|
4706
|
-
/** Preserve literal control keys while marking an object as a MINT control schema. */
|
|
4707
|
-
function defineControls(controls) {
|
|
4708
|
-
return controls;
|
|
4709
|
-
}
|
|
4710
|
-
/** Preserve literal SDK component binding ids while marking an object as generated workspace component bindings. */
|
|
4711
|
-
function defineControlComponentBindings(bindings) {
|
|
4712
|
-
return bindings;
|
|
4713
|
-
}
|
|
4714
|
-
/** Create a complete workspace component binding from a simple controls data model for ControlWorkspaceView, generated forms, and sidebars. */
|
|
4715
|
-
function defineControlModel(model) {
|
|
4716
|
-
const { controls: rootControls, sections: rootSections, views: modelViews, components, componentBindings, componentProps, componentPropsById, ...baseOptions } = model;
|
|
4717
|
-
const resolvedComponentBindings = componentBindings ?? components;
|
|
4718
|
-
const controls = {};
|
|
4719
|
-
const views = {};
|
|
4720
|
-
const sections = {};
|
|
4721
|
-
const defaultViewId = model.view ?? "default";
|
|
4722
|
-
const defaultSectionId = model.section ?? "controls";
|
|
4723
|
-
if (rootControls) {
|
|
4724
|
-
registerSectionOptions(sections, defaultSectionId, {
|
|
4725
|
-
id: defaultSectionId,
|
|
4726
|
-
label: model.sectionLabel,
|
|
4727
|
-
title: model.sectionLabel,
|
|
4728
|
-
columns: model.columns
|
|
4729
|
-
});
|
|
4730
|
-
appendModelControls(controls, rootControls, defaultViewId, defaultSectionId);
|
|
4731
|
-
}
|
|
4732
|
-
for (const [sectionId, section] of Object.entries(rootSections ?? {})) {
|
|
4733
|
-
registerSectionOptions(sections, sectionId, controlModelSectionOptions(section));
|
|
4734
|
-
appendModelControls(controls, section.controls, defaultViewId, sectionId, section.sidebar);
|
|
4735
|
-
}
|
|
4736
|
-
for (const [viewId, view] of Object.entries(modelViews ?? {})) {
|
|
4737
|
-
const { controls: viewControls, sections: viewSections, section, sectionLabel, sectionDescription, ...viewConfig } = view;
|
|
4738
|
-
views[viewId] = omitUndefined(viewConfig);
|
|
4739
|
-
if (viewControls) {
|
|
4740
|
-
const sectionId = section ?? `${viewId}-controls`;
|
|
4741
|
-
const label = sectionLabel ?? view.label;
|
|
4742
|
-
registerSectionOptions(sections, sectionId, {
|
|
4743
|
-
id: sectionId,
|
|
4744
|
-
label,
|
|
4745
|
-
title: label,
|
|
4746
|
-
description: sectionDescription,
|
|
4747
|
-
columns: model.columns
|
|
4748
|
-
});
|
|
4749
|
-
appendModelControls(controls, viewControls, viewId, sectionId);
|
|
4750
|
-
}
|
|
4751
|
-
for (const [sectionKey, sectionConfig] of Object.entries(viewSections ?? {})) {
|
|
4752
|
-
const sectionId = sectionConfig.id ?? `${viewId}-${sectionKey}`;
|
|
4753
|
-
registerSectionOptions(sections, sectionId, controlModelSectionOptions(sectionConfig));
|
|
4754
|
-
appendModelControls(controls, sectionConfig.controls, viewId, sectionId, sectionConfig.sidebar);
|
|
4755
|
-
}
|
|
4756
|
-
}
|
|
4757
|
-
const controlOptions = { ...baseOptions };
|
|
4758
|
-
if (Object.keys(views).length > 0) controlOptions.views = views;
|
|
4759
|
-
if (Object.keys(sections).length > 0) controlOptions.sections = sections;
|
|
4760
|
-
return {
|
|
4761
|
-
controls,
|
|
4762
|
-
controlOptions,
|
|
4763
|
-
...resolvedComponentBindings === void 0 ? {} : { componentBindings: resolvedComponentBindings },
|
|
4764
|
-
...componentProps === void 0 ? {} : { componentProps },
|
|
4765
|
-
...componentPropsById === void 0 ? {} : { componentPropsById }
|
|
4766
|
-
};
|
|
4767
|
-
}
|
|
4768
|
-
/** Build default values for a control schema, matching FormBuilder field defaults. */
|
|
4769
|
-
function getControlDefaults(controls) {
|
|
4770
|
-
const values = {};
|
|
4771
|
-
for (const control of normalizeControls(controls)) values[control.name] = defaultValueForControl(control.definition, control.type);
|
|
4772
|
-
return values;
|
|
4773
|
-
}
|
|
4788
|
+
//#region src/composables/controlSchemaDoseDesign.ts
|
|
4774
4789
|
/** Return a default WellPlate prop mapping for generated control workspaces. */
|
|
4775
4790
|
function defineWellPlateControlProps(options = {}) {
|
|
4776
4791
|
const selectedWells = options.selectedWells ?? sourceKey("selectedWells");
|
|
@@ -4873,67 +4888,6 @@ function defineDoseDesignControlModel(options = {}) {
|
|
|
4873
4888
|
} }
|
|
4874
4889
|
});
|
|
4875
4890
|
}
|
|
4876
|
-
/** Prepare FormBuilder, SettingsModal, AppTopBar settings, AppSidebar, and initial values from one compact control model. */
|
|
4877
|
-
function useControlSchema(controls, options = {}) {
|
|
4878
|
-
const formSchema = controlsToFormSchema(controls, options);
|
|
4879
|
-
const settingsSchema = controlsToSettingsSchema(controls, options);
|
|
4880
|
-
const topBarSettingsConfig = controlsToTopBarSettingsConfig(controls, options);
|
|
4881
|
-
const sidebarPanels = controlsToSidebarPanels(controls, options);
|
|
4882
|
-
const viewItems = controlsToViewItems(controls, options);
|
|
4883
|
-
const viewIds = viewItems.map((item) => item.id);
|
|
4884
|
-
const defaultView = viewIds[0] ?? "";
|
|
4885
|
-
const sectionSchemas = controlsToSectionFormSchemas(controls, options);
|
|
4886
|
-
return {
|
|
4887
|
-
controls,
|
|
4888
|
-
fields: normalizeControls(controls, options).map(controlToFormField),
|
|
4889
|
-
formSchema,
|
|
4890
|
-
form: { schema: formSchema },
|
|
4891
|
-
settingsSchema,
|
|
4892
|
-
settings: { schema: settingsSchema },
|
|
4893
|
-
topBarSettingsConfig,
|
|
4894
|
-
topBarSettings: {
|
|
4895
|
-
showSettings: true,
|
|
4896
|
-
settingsConfig: topBarSettingsConfig
|
|
4897
|
-
},
|
|
4898
|
-
sidebarPanels,
|
|
4899
|
-
viewIds,
|
|
4900
|
-
viewItems,
|
|
4901
|
-
defaultView,
|
|
4902
|
-
sectionSchemas,
|
|
4903
|
-
sidebar: {
|
|
4904
|
-
panels: sidebarPanels,
|
|
4905
|
-
forms: sectionSchemas,
|
|
4906
|
-
viewIds,
|
|
4907
|
-
viewItems,
|
|
4908
|
-
defaultView
|
|
4909
|
-
},
|
|
4910
|
-
initialValues: getControlDefaults(controls),
|
|
4911
|
-
sectionSchema: (sectionId) => controlsToSectionFormSchema(controls, sectionId, options)
|
|
4912
|
-
};
|
|
4913
|
-
}
|
|
4914
|
-
function appendModelControls(target, source, viewId, sectionId, sidebar) {
|
|
4915
|
-
for (const [name, input] of Object.entries(source)) {
|
|
4916
|
-
if (Object.prototype.hasOwnProperty.call(target, name)) throw new Error(`Duplicate control "${name}" in defineControlModel(). Control names must be unique across views and sections.`);
|
|
4917
|
-
const definition = normalizeControlDefinition(input);
|
|
4918
|
-
target[name] = omitUndefined({
|
|
4919
|
-
...definition,
|
|
4920
|
-
view: definition.view ?? viewId,
|
|
4921
|
-
section: definition.section ?? sectionId,
|
|
4922
|
-
sidebar: definition.sidebar ?? sidebar
|
|
4923
|
-
});
|
|
4924
|
-
}
|
|
4925
|
-
}
|
|
4926
|
-
function controlModelSectionOptions(section) {
|
|
4927
|
-
const { controls: _controls, sidebar: _sidebar, ...options } = section;
|
|
4928
|
-
return omitUndefined(options);
|
|
4929
|
-
}
|
|
4930
|
-
function registerSectionOptions(target, sectionId, options) {
|
|
4931
|
-
target[sectionId] = omitUndefined({
|
|
4932
|
-
...target[sectionId] ?? {},
|
|
4933
|
-
...options,
|
|
4934
|
-
id: sectionId
|
|
4935
|
-
});
|
|
4936
|
-
}
|
|
4937
4891
|
function compactComponentPropsMap(mapping) {
|
|
4938
4892
|
return Object.fromEntries(Object.entries(mapping).filter((entry) => entry[1] !== void 0));
|
|
4939
4893
|
}
|
|
@@ -4976,6 +4930,60 @@ function updateWellsFromDoseResults(source) {
|
|
|
4976
4930
|
};
|
|
4977
4931
|
}
|
|
4978
4932
|
//#endregion
|
|
4933
|
+
//#region src/composables/useControlSchema.ts
|
|
4934
|
+
/** Preserve literal control keys while marking an object as a MINT control schema. */
|
|
4935
|
+
function defineControls(controls) {
|
|
4936
|
+
return controls;
|
|
4937
|
+
}
|
|
4938
|
+
/** Preserve literal SDK component binding ids while marking an object as generated workspace component bindings. */
|
|
4939
|
+
function defineControlComponentBindings(bindings) {
|
|
4940
|
+
return bindings;
|
|
4941
|
+
}
|
|
4942
|
+
/** Build default values for a control schema, matching FormBuilder field defaults. */
|
|
4943
|
+
function getControlDefaults(controls) {
|
|
4944
|
+
const values = {};
|
|
4945
|
+
for (const control of normalizeControls(controls)) values[control.name] = defaultValueForControl(control.definition, control.type);
|
|
4946
|
+
return values;
|
|
4947
|
+
}
|
|
4948
|
+
/** Prepare FormBuilder, SettingsModal, AppTopBar settings, AppSidebar, and initial values from one compact control model. */
|
|
4949
|
+
function useControlSchema(controls, options = {}) {
|
|
4950
|
+
const formSchema = controlsToFormSchema(controls, options);
|
|
4951
|
+
const settingsSchema = controlsToSettingsSchema(controls, options);
|
|
4952
|
+
const topBarSettingsConfig = controlsToTopBarSettingsConfig(controls, options);
|
|
4953
|
+
const sidebarPanels = controlsToSidebarPanels(controls, options);
|
|
4954
|
+
const viewItems = controlsToViewItems(controls, options);
|
|
4955
|
+
const viewIds = viewItems.map((item) => item.id);
|
|
4956
|
+
const defaultView = viewIds[0] ?? "";
|
|
4957
|
+
const sectionSchemas = controlsToSectionFormSchemas(controls, options);
|
|
4958
|
+
return {
|
|
4959
|
+
controls,
|
|
4960
|
+
fields: normalizeControls(controls, options).map(controlToFormField),
|
|
4961
|
+
formSchema,
|
|
4962
|
+
form: { schema: formSchema },
|
|
4963
|
+
settingsSchema,
|
|
4964
|
+
settings: { schema: settingsSchema },
|
|
4965
|
+
topBarSettingsConfig,
|
|
4966
|
+
topBarSettings: {
|
|
4967
|
+
showSettings: true,
|
|
4968
|
+
settingsConfig: topBarSettingsConfig
|
|
4969
|
+
},
|
|
4970
|
+
sidebarPanels,
|
|
4971
|
+
viewIds,
|
|
4972
|
+
viewItems,
|
|
4973
|
+
defaultView,
|
|
4974
|
+
sectionSchemas,
|
|
4975
|
+
sidebar: {
|
|
4976
|
+
panels: sidebarPanels,
|
|
4977
|
+
forms: sectionSchemas,
|
|
4978
|
+
viewIds,
|
|
4979
|
+
viewItems,
|
|
4980
|
+
defaultView
|
|
4981
|
+
},
|
|
4982
|
+
initialValues: getControlDefaults(controls),
|
|
4983
|
+
sectionSchema: (sectionId) => controlsToSectionFormSchema(controls, sectionId, options)
|
|
4984
|
+
};
|
|
4985
|
+
}
|
|
4986
|
+
//#endregion
|
|
4979
4987
|
//#region src/templates/builderReadUtils.ts
|
|
4980
4988
|
function isRecord$2(value) {
|
|
4981
4989
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -10037,6 +10045,6 @@ function getBioTemplateControlDefaults(target) {
|
|
|
10037
10045
|
return getControlDefaults(requireBioTemplateControlSchema(target));
|
|
10038
10046
|
}
|
|
10039
10047
|
//#endregion
|
|
10040
|
-
export { toTimeCourseRows as $,
|
|
10048
|
+
export { toTimeCourseRows as $, TimePicker_default as $n, listBioTemplatePacks as $t, createSamplePrepTemplate as A, controlsToSectionFormSchema as An, toCalibrationCurveRows as At, toBioTemplateComponentProps as B, ConcentrationInput_default as Bn, validatePlateMapData as Bt, createFlowCytometryPanelTemplate as C, defineControlModel as Cn, BaseRadioGroup_default as Cr, toInstrumentRunScheduleEvents as Ct, createTimeCourseTemplate as D, controlValuesToComponentProps as Dn, normalizeOptionInput as Dr, toFlowPanelRows as Dt, createProtocolStepsTemplate as E, controlValuesToComponentBindingsById as En, BaseSelect_default as Er, toFlowPanelDataFrame as Et, getBioTemplateComponentProps as F, controlsToViewIds as Fn, validateAssayMatrixData as Ft, toTemplateDataFrame as G, useSequenceUtils as Gn, validateSampleSheetData as Gt, toBioTemplateComponentPropsById as H, useConcentrationUnits as Hn, validateQpcrPlateData as Ht, listBioTemplateComponentBindings as I, controlsToViewItems as In, validateCalibrationCurveData as It, toDoseLayoutState as J, useChemicalFormula as Jn, getBioTemplatePresetInfo as Jt, toWellMapArray as K, FormulaInput_default as Kn, validateTimeCourseData as Kt, toBioTemplateComponentBindings as L, getDefaultControlView as Ln, validateDoseResponseData as Lt, createPlateMapTemplate as M, controlsToSettingsSchema as Mn, toAssayMatrixDataFrame as Mt, bioTemplatePresetControlValuesToOptions as N, controlsToSidebarPanels as Nn, toAssayMatrixRows as Nt, createCalibrationCurveTemplate as O, mergeControlWorkspaceOptions as On, BaseTextarea_default as Or, toCalibrationCurveColumns as Ot, getBioTemplateComponentBindings as P, controlsToTopBarSettingsConfig as Pn, toAssayMatrixSampleOptions as Pt, toTimeCourseDataFrame as Q, TagsInput_default as Qn, getBioTemplatePackInfo as Qt, toBioTemplateComponentBindingsById as R, getFieldRegistryEntry as Rn, validateFlowCytometryPanelData as Rt, createInstrumentRunTemplate as S, useControlWorkspace as Sn, BaseSlider_default as Sr, toInstrumentRunRows as St, createAssayMatrixTemplate as T, controlValuesToComponentBindings as Tn, BaseCheckbox_default as Tr, toFlowPanelColumns as Tt, toBioTemplateComponentSnippets as U, MoleculeInput_default as Un, validateReagentListData as Ut, toBioTemplateComponentPropsByComponent as V, UnitInput_default as Vn, validateProtocolStepsData as Vt, toBioTemplateComponentUsage as W, SequenceInput_default as Wn, validateSamplePrepData as Wt, toWellPlateWells as X, FileUploader_default as Xn, searchBioTemplatePresets as Xt, toPlateMapEditorState as Y, DateTimePicker_default as Yn, listBioTemplatePresets as Yt, toTimeCourseColumns as Z, NumberInput_default as Zn, bioTemplatePacks as Zt, createElisaAssayCollection as _, defineDoseCalculatorControlProps as _n, useDropdownState as _r, toProtocolDataFrame as _t, getBioTemplateControlDefaults as a, TEMPLATE_COLLECTION_KEY as an, formatDuration as ar, toSamplePrepColumns as at, createQpcrExpressionCollection as b, defineWellPlateDoseComponentBindings as bn, useSelectionLimit as br, toInstrumentRunColumns as bt, listBioTemplatePresetControlSchemas as c, createTemplateEnvelope as cn, fromMinutes as cr, toReagentColumns as ct, createBioTemplatePresetCollectionFromControls as d, extractTemplateCollection as dn, parseTime as dr, toReagentRows as dt, searchBioTemplatePacks as en, addMinutes$1 as er, toTimeCourseSteps as et, createWellPlateScreenCollection as f, getTemplateData as fn, rangesOverlap as fr, toQpcrColumns as ft, createFlowCytometryAssayCollection as g, useControlSchema as gn, DatePicker_default as gr, toProtocolColumns as gt, createWesternBlotAssayCollection as h, getControlDefaults as hn, useTimeUtils as hr, toQpcrWellPlateWells as ht, createBioTemplateControlToolkit as i, searchBioTemplateCatalog as in, findNearestTimeSlotIndex as ir, toSampleRows as it, createSampleSheetTemplate as j, controlsToSectionFormSchemas as jn, toAssayMatrixColumns as jt, createDoseResponseTemplate as k, controlsToFormSchema as kn, BaseInput_default as kr, toCalibrationCurveDataFrame as kt, requireBioTemplateControlSchema as l, ensureTemplateEnvelope as ln, generateTimeSlots as lr, toReagentDataFrame as lt, createDefaultBioTemplate as m, defineControls as mn, toMinutes as mr, toQpcrRows as mt, bioTemplateControlsToSectionFormSchemas as n, getBioTemplateInfo as nn, durationMinutes as nr, toSampleDataFrame as nt, getBioTemplateControlSchema as o, assertTemplateEnvelope as on, formatTime as or, toSamplePrepDataFrame as ot, createBioTemplatePackCollection as p, defineControlComponentBindings as pn, snapToSlot as pr, toQpcrDataFrame as pt, toDoseConditions as q, ATOMIC_WEIGHTS as qn, bioTemplatePresets as qt, bioTemplateControlsToSidebarPanels as r, listBioTemplateCatalog as rn, findAvailableSlots as rr, toSampleOptions as rt, listBioTemplateControlSchemas as s, createTemplateCollection as sn, formatTimeSlot as sr, toSamplePrepRows as st, bioTemplateControlsToFormSchema as t, bioTemplateCatalog as tn, compareTime as tr, toSampleColumns as tt, createBioTemplatePresetCollection as u, ensureTemplateFromCollection as un, isTimeInRange as ur, toReagentListItems as ut, createTargetedMetabolomicsCollection as v, defineDoseDesignControlModel as vn, MultiSelect_default as vr, toProtocolRows as vt, createReagentListTemplate as w, resolveControlModel as wn, BaseToggle_default as wr, toInstrumentRunSteps as wt, createQpcrPlateTemplate as x, defineWellPlateDoseControlProps as xn, useEventListener as xr, toInstrumentRunDataFrame as xt, createLcmsBatchCollection as y, defineWellPlateControlProps as yn, useListSelection as yr, toProtocolSteps as yt, toBioTemplateComponentImports as z, getTypeDefault as zn, validateInstrumentRunData as zt };
|
|
10041
10049
|
|
|
10042
|
-
//# sourceMappingURL=templates-
|
|
10050
|
+
//# sourceMappingURL=templates-DtdUvJ4c.js.map
|