@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
|
@@ -1,40 +1,7 @@
|
|
|
1
|
-
import { InputMode, OutlierAction, OutlierInfo,
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
delimiter: string;
|
|
6
|
-
dominantFieldCount: number;
|
|
7
|
-
minFieldCount: number;
|
|
8
|
-
consistency: number;
|
|
9
|
-
};
|
|
10
|
-
export declare function detectOutliers(lines: string[], delimiter: string, minFieldCount: number): OutlierInfo[];
|
|
11
|
-
export declare function classifyOutlierAction(sample: string, delimiter: string): OutlierAction;
|
|
12
|
-
export declare function isUsefulField(field: ColumnInfo, rowCount: number): boolean;
|
|
13
|
-
export declare function extractColumns(samples: string[], delimiter: string, minFieldCount: number): ColumnInfo[];
|
|
14
|
-
export declare function parseCSVLine(line: string, delimiter?: string): string[];
|
|
15
|
-
export declare function parseCSV(text: string): ParsedCsvData;
|
|
16
|
-
export declare function computeGroups(allSamples: string[], columns: ColumnInfo[], enabledFields: Set<number>, outlierActions: Map<number, OutlierAction>, delimiter: string, minFieldCount: number): {
|
|
17
|
-
groups: SampleGroup[];
|
|
18
|
-
metadata: MetadataRow[];
|
|
19
|
-
excludedSamples: string[];
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Extract sample metadata from raw design_data into ParsedCsvData format.
|
|
23
|
-
*
|
|
24
|
-
* Looks for a `samples` array in the design data. For each sample, merges
|
|
25
|
-
* the `conditions` dict (the metadata table) with the `sample_name` to
|
|
26
|
-
* produce a flat tabular row. QC and blank samples are filtered out by
|
|
27
|
-
* their explicit `sample_type` field.
|
|
28
|
-
*
|
|
29
|
-
* Returns null if no samples with conditions are found.
|
|
30
|
-
*/
|
|
31
|
-
export declare function extractSamplesFromDesignData(rawData: Record<string, unknown>): ParsedCsvData | null;
|
|
32
|
-
export declare function computeGroupsFromCsv(csvData: ParsedCsvData, columns: ColumnInfo[], enabledFields: Set<number>): {
|
|
33
|
-
groups: SampleGroup[];
|
|
34
|
-
metadata: MetadataRow[];
|
|
35
|
-
excludedSamples: string[];
|
|
36
|
-
};
|
|
37
|
-
/** Parses sample names or CSV data to propose group assignments with outlier detection and preview. */
|
|
1
|
+
import { AutoGroupResult, ClassDisposition, ClassSchema, ColumnInfo, ColumnRole, InputMode, MergeSuggestion, NumericBinning, OutlierAction, OutlierInfo, ParsedCsvData, SampleClass, SchemaFingerprint, ValueOps } from '../types/auto-group';
|
|
2
|
+
import { TemplateOptions } from './autoGroup';
|
|
3
|
+
export { DEFAULT_COLORS } from './autoGroup';
|
|
4
|
+
export { parseCSV } from './autoGroup/csv-shim';
|
|
38
5
|
export declare function useAutoGroup(): {
|
|
39
6
|
inputMode: import('vue').Ref<InputMode, InputMode>;
|
|
40
7
|
rawText: import('vue').Ref<string, string>;
|
|
@@ -49,9 +16,42 @@ export declare function useAutoGroup(): {
|
|
|
49
16
|
sampleColumn: string;
|
|
50
17
|
delimiter: string;
|
|
51
18
|
} | null>;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
19
|
+
sampleTypeHints: import('vue').Ref<(string | undefined)[], (string | undefined)[]>;
|
|
20
|
+
classes: import('vue').Ref<{
|
|
21
|
+
kind: import('../types/auto-group').SampleClassKind;
|
|
22
|
+
label: string;
|
|
23
|
+
subKind?: string | undefined;
|
|
24
|
+
members: number[];
|
|
25
|
+
classTagPositions: number[];
|
|
26
|
+
disposition: ClassDisposition;
|
|
27
|
+
}[], SampleClass[] | {
|
|
28
|
+
kind: import('../types/auto-group').SampleClassKind;
|
|
29
|
+
label: string;
|
|
30
|
+
subKind?: string | undefined;
|
|
31
|
+
members: number[];
|
|
32
|
+
classTagPositions: number[];
|
|
33
|
+
disposition: ClassDisposition;
|
|
34
|
+
}[]>;
|
|
35
|
+
schemas: import('vue').Ref<Record<string, ClassSchema>, Record<string, ClassSchema>>;
|
|
36
|
+
activeClassKey: import('vue').Ref<string, string>;
|
|
37
|
+
delimiter: import('vue').Ref<"-" | "." | "_", "-" | "." | "_">;
|
|
38
|
+
dominantFieldCount: import('vue').ComputedRef<number>;
|
|
39
|
+
minFieldCount: import('vue').ComputedRef<number>;
|
|
40
|
+
samples: import('vue').ComputedRef<string[]>;
|
|
41
|
+
tokenized: import('vue').Ref<string[][], string[][]>;
|
|
42
|
+
activeSchema: import('vue').ComputedRef<ClassSchema | null>;
|
|
43
|
+
suggestions: import('vue').ComputedRef<MergeSuggestion[]>;
|
|
44
|
+
groups: import('vue').ComputedRef<import('..').SampleGroup[]>;
|
|
45
|
+
qcGroups: import('vue').ComputedRef<import('..').SampleGroup[]>;
|
|
46
|
+
metadata: import('vue').ComputedRef<import('..').MetadataRow[]>;
|
|
47
|
+
excludedSamples: import('vue').ComputedRef<string[]>;
|
|
48
|
+
result: import('vue').ComputedRef<AutoGroupResult>;
|
|
49
|
+
fingerprint: import('vue').ComputedRef<SchemaFingerprint>;
|
|
50
|
+
fields: import('vue').ComputedRef<ColumnInfo[]>;
|
|
51
|
+
fieldNames: import('vue').ComputedRef<Record<number, string>>;
|
|
52
|
+
enabledFields: import('vue').ComputedRef<Set<number>>;
|
|
53
|
+
effectiveColumns: import('vue').ComputedRef<ColumnInfo[]>;
|
|
54
|
+
hasOutliers: import('vue').ComputedRef<boolean>;
|
|
55
55
|
outliers: import('vue').Ref<{
|
|
56
56
|
sample: string;
|
|
57
57
|
index: number;
|
|
@@ -63,44 +63,31 @@ export declare function useAutoGroup(): {
|
|
|
63
63
|
fieldCount: number;
|
|
64
64
|
action: OutlierAction;
|
|
65
65
|
}[]>;
|
|
66
|
-
fields: import('vue').Ref<{
|
|
67
|
-
index: number;
|
|
68
|
-
name: string;
|
|
69
|
-
uniqueValues: string[];
|
|
70
|
-
cardinality: number;
|
|
71
|
-
type?: "prefix" | "suffix" | undefined;
|
|
72
|
-
originalName?: string | undefined;
|
|
73
|
-
}[], ColumnInfo[] | {
|
|
74
|
-
index: number;
|
|
75
|
-
name: string;
|
|
76
|
-
uniqueValues: string[];
|
|
77
|
-
cardinality: number;
|
|
78
|
-
type?: "prefix" | "suffix" | undefined;
|
|
79
|
-
originalName?: string | undefined;
|
|
80
|
-
}[]>;
|
|
81
|
-
fieldNames: import('vue').Ref<Record<number, string>, Record<number, string>>;
|
|
82
|
-
enabledFields: import('vue').Ref<Set<number> & Omit<Set<number>, keyof Set<any>>, Set<number> | (Set<number> & Omit<Set<number>, keyof Set<any>>)>;
|
|
83
|
-
samples: import('vue').ComputedRef<string[]>;
|
|
84
|
-
hasOutliers: import('vue').ComputedRef<boolean>;
|
|
85
66
|
conformingSamples: import('vue').ComputedRef<string[]>;
|
|
86
|
-
groups: import('vue').ComputedRef<SampleGroup[]>;
|
|
87
|
-
metadata: import('vue').ComputedRef<MetadataRow[]>;
|
|
88
|
-
excludedSamples: import('vue').ComputedRef<string[]>;
|
|
89
67
|
allSingletons: import('vue').ComputedRef<boolean>;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
68
|
+
canDownloadTemplate: import('vue').ComputedRef<boolean>;
|
|
69
|
+
setClassDisposition: (key: string, disposition: ClassDisposition) => void;
|
|
70
|
+
setClassDispositions: (predicate: (c: SampleClass) => boolean, disposition: ClassDisposition) => void;
|
|
71
|
+
toggleGroupBy: (key: string, idx: number) => void;
|
|
72
|
+
setRole: (key: string, idx: number, role: ColumnRole) => void;
|
|
73
|
+
setColumnName: (key: string, idx: number, name: string) => void;
|
|
74
|
+
setValueOps: (key: string, idx: number, ops: ValueOps) => void;
|
|
75
|
+
setBinning: (key: string, idx: number, binning: NumericBinning) => void;
|
|
76
|
+
mergeColumns: (key: string, indices: number[]) => void;
|
|
77
|
+
loadFingerprint: (fp: SchemaFingerprint) => void;
|
|
99
78
|
parseInput: () => void;
|
|
79
|
+
downloadTemplate: (mode?: "blank" | "prefilled", format?: "csv" | "tsv") => void;
|
|
80
|
+
composeTemplateForTest: (opts: Pick<TemplateOptions, "mode" | "format">) => {
|
|
81
|
+
content: string;
|
|
82
|
+
filename: string;
|
|
83
|
+
};
|
|
100
84
|
loadExperimentData: (rawData: Record<string, unknown>) => boolean;
|
|
101
|
-
|
|
102
|
-
|
|
85
|
+
reset: () => void;
|
|
86
|
+
setOutlierAction: (_: number, __: OutlierAction) => void;
|
|
87
|
+
setAllOutlierActions: (__: OutlierAction) => void;
|
|
103
88
|
toggleField: (index: number) => void;
|
|
104
89
|
renameField: (index: number, name: string) => void;
|
|
105
|
-
reset: () => void;
|
|
106
90
|
};
|
|
91
|
+
export declare function extractSamplesFromDesignData(rawData: Record<string, unknown>): (ParsedCsvData & {
|
|
92
|
+
sampleTypeHints: (string | undefined)[];
|
|
93
|
+
}) | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { useAutoGroup } from './useAutoGroup';
|
|
3
|
+
import { UseApiReturn } from './useApi';
|
|
4
|
+
import { WizardStep } from '../types/components';
|
|
5
|
+
type AutoGroupController = ReturnType<typeof useAutoGroup>;
|
|
6
|
+
type ReadableRef<T> = Readonly<Ref<T>>;
|
|
7
|
+
type AutoGroupApi = Pick<UseApiReturn, 'get'>;
|
|
8
|
+
export interface UseAutoGroupInputSourcesOptions {
|
|
9
|
+
autoGroup: AutoGroupController;
|
|
10
|
+
samples: ReadableRef<readonly string[]>;
|
|
11
|
+
experimentId: ReadableRef<number | undefined>;
|
|
12
|
+
designData: ReadableRef<Record<string, unknown> | undefined>;
|
|
13
|
+
currentStep: Ref<number>;
|
|
14
|
+
dynamicSteps: ReadableRef<readonly WizardStep[]>;
|
|
15
|
+
api?: AutoGroupApi;
|
|
16
|
+
}
|
|
17
|
+
/** Manages AutoGroupModal input sources: pasted samples, CSV/TSV files, and experiment metadata. */
|
|
18
|
+
export declare function useAutoGroupInputSources(options: UseAutoGroupInputSourcesOptions): {
|
|
19
|
+
isDragOver: Ref<boolean, boolean>;
|
|
20
|
+
csvFileName: Ref<string, string>;
|
|
21
|
+
experimentLoading: Ref<boolean, boolean>;
|
|
22
|
+
experimentError: Ref<string | null, string | null>;
|
|
23
|
+
csvError: Ref<string | null, string | null>;
|
|
24
|
+
experimentFieldNames: import('vue').ComputedRef<string[]>;
|
|
25
|
+
initializeInputSources: () => Promise<void>;
|
|
26
|
+
fetchExperimentData: () => Promise<void>;
|
|
27
|
+
handleFileDrop: (event: DragEvent) => void;
|
|
28
|
+
handleFileInput: (event: Event) => void;
|
|
29
|
+
processFile: (file: File) => Promise<void>;
|
|
30
|
+
clearCsvFile: () => void;
|
|
31
|
+
};
|
|
32
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getBioTemplateControlSchema, requireBioTemplateControlSchema, BioTemplateControlSchema, BioTemplateControlTarget } from '../templates/controlSchemas';
|
|
2
|
-
import { ControlWorkspaceOptions, UseControlSchemaReturn } from './
|
|
2
|
+
import { ControlWorkspaceOptions, UseControlSchemaReturn } from './controlSchemaTypes';
|
|
3
3
|
export { getBioTemplateControlSchema, requireBioTemplateControlSchema, };
|
|
4
4
|
export type { BioTemplateControlSchema, BioTemplateControlTarget, };
|
|
5
5
|
/** Build FormBuilder schema, AppSidebar panels, and defaults for a built-in biology template or preset. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComputedRef, Ref } from 'vue';
|
|
2
2
|
import { PillNavItem } from '../types';
|
|
3
3
|
import { BioTemplateControlValues, BioTemplatePresetEntry, TemplateCollectionEnvelope, TemplatePresetId } from '../templates';
|
|
4
|
-
import { ControlWorkspaceOptions, ControlWorkspaceFormBinding, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn } from './
|
|
4
|
+
import { ControlWorkspaceOptions, ControlWorkspaceFormBinding, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn } from './controlSchemaTypes';
|
|
5
5
|
import { UseTemplateCollectionOptions, UseTemplateCollectionReturn } from './useTemplateCollection';
|
|
6
6
|
import { BioTemplateRendererBinding, UseBioTemplateWorkspaceReturn } from './useBioTemplateWorkspace';
|
|
7
7
|
import { BioTemplateComponentBinding, BioTemplateComponentBindingsById, BioTemplateComponentImport, BioTemplateComponentPropsByComponent, BioTemplateComponentPropsBinding, BioTemplateComponentPropsById, BioTemplateComponentSnippet, BioTemplateComponentUsage } from './useBioTemplateComponents';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BioTemplateEnvelope, TemplateCollectionEnvelope } from '../templates';
|
|
2
|
-
import { ControlWorkspaceFormBinding, ControlWorkspaceOptions, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn, UseControlWorkspaceReturn } from './
|
|
2
|
+
import { ControlWorkspaceFormBinding, ControlWorkspaceOptions, ControlWorkspacePillNavBinding, ControlWorkspaceSidebarBinding, ControlWorkspaceTopBarSettingsBinding, UseControlSchemaReturn, UseControlWorkspaceReturn } from './controlSchemaTypes';
|
|
3
3
|
import { BioTemplateControlSchema, BioTemplateControlTarget } from './useBioTemplateControls';
|
|
4
4
|
import { BioTemplateComponentBinding, BioTemplateComponentBindingsById, BioTemplateComponentImport, BioTemplateComponentPropsByComponent, BioTemplateComponentPropsBinding, BioTemplateComponentPropsById, BioTemplateComponentSnippet, BioTemplateComponentUsage, UseBioTemplateComponentsReturn } from './useBioTemplateComponents';
|
|
5
5
|
export type BioTemplateWorkspaceTarget = BioTemplateControlTarget;
|
|
@@ -1,328 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { AccessPolicy, AccessAudienceInput } from '../permissions';
|
|
4
|
-
import { FieldCondition, FieldValidation, FormFieldSchema, FormFieldType, FormSchema, FormSectionSchema } from '../types/form-builder';
|
|
5
|
-
import { WellConcentration } from './useDoseCalculator';
|
|
1
|
+
import { ControlComponentBindingsConfig, ControlSchema, ControlSchemaOptions, ControlValues, UseControlSchemaReturn } from './controlSchemaTypes';
|
|
2
|
+
export type * from './controlSchemaTypes';
|
|
6
3
|
export { mergeControlWorkspaceOptions, } from './controlWorkspaceOptions';
|
|
7
4
|
export { useControlWorkspace, } from './useControlWorkspace';
|
|
8
5
|
export { controlValuesToComponentBindings, controlValuesToComponentBindingsById, controlValuesToComponentProps, } from './controlComponentBindings';
|
|
9
6
|
export { controlsToFormSchema, controlsToSectionFormSchema, controlsToSectionFormSchemas, controlsToSettingsSchema, controlsToSidebarPanels, controlsToTopBarSettingsConfig, controlsToViewIds, controlsToViewItems, getDefaultControlView, } from './controlSchemaAdapters';
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export type ControlPrimitive = string | number | boolean;
|
|
13
|
-
export type ControlShorthand = ControlPrimitive | readonly ControlOption[];
|
|
14
|
-
export type ControlInput = ControlDefinition | ControlShorthand;
|
|
15
|
-
export interface ControlSectionConfig {
|
|
16
|
-
id?: string;
|
|
17
|
-
label?: string;
|
|
18
|
-
title?: string;
|
|
19
|
-
description?: string;
|
|
20
|
-
subtitle?: string;
|
|
21
|
-
icon?: string | string[];
|
|
22
|
-
iconColor?: string;
|
|
23
|
-
iconBg?: string;
|
|
24
|
-
columns?: 1 | 2 | 3;
|
|
25
|
-
condition?: FieldCondition;
|
|
26
|
-
access?: AccessPolicy;
|
|
27
|
-
visibleFor?: AccessAudienceInput;
|
|
28
|
-
requiresAdmin?: boolean;
|
|
29
|
-
permissions?: readonly string[];
|
|
30
|
-
anyPermissions?: readonly string[];
|
|
31
|
-
defaultOpen?: boolean;
|
|
32
|
-
showToggle?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface ControlViewConfig {
|
|
35
|
-
label?: string;
|
|
36
|
-
icon?: string;
|
|
37
|
-
to?: string;
|
|
38
|
-
href?: string;
|
|
39
|
-
disabled?: boolean;
|
|
40
|
-
children?: PillNavItem['children'];
|
|
41
|
-
}
|
|
42
|
-
export interface ControlSidebarConfig extends Omit<ControlSectionConfig, 'id' | 'title' | 'description' | 'columns'> {
|
|
43
|
-
enabled?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export interface ControlDefinition {
|
|
46
|
-
type?: FormFieldType;
|
|
47
|
-
label?: string;
|
|
48
|
-
default?: unknown;
|
|
49
|
-
defaultValue?: unknown;
|
|
50
|
-
placeholder?: string;
|
|
51
|
-
hint?: string;
|
|
52
|
-
size?: 'sm' | 'md' | 'lg';
|
|
53
|
-
disabled?: boolean;
|
|
54
|
-
readonly?: boolean;
|
|
55
|
-
required?: boolean | string;
|
|
56
|
-
min?: number | {
|
|
57
|
-
value: number;
|
|
58
|
-
message: string;
|
|
59
|
-
};
|
|
60
|
-
max?: number | {
|
|
61
|
-
value: number;
|
|
62
|
-
message: string;
|
|
63
|
-
};
|
|
64
|
-
minLength?: number | {
|
|
65
|
-
value: number;
|
|
66
|
-
message: string;
|
|
67
|
-
};
|
|
68
|
-
maxLength?: number | {
|
|
69
|
-
value: number;
|
|
70
|
-
message: string;
|
|
71
|
-
};
|
|
72
|
-
email?: boolean | string;
|
|
73
|
-
pattern?: string | {
|
|
74
|
-
value: string;
|
|
75
|
-
message: string;
|
|
76
|
-
};
|
|
77
|
-
validation?: FieldValidation;
|
|
78
|
-
condition?: FieldCondition;
|
|
79
|
-
access?: AccessPolicy;
|
|
80
|
-
visibleFor?: AccessAudienceInput;
|
|
81
|
-
requiresAdmin?: boolean;
|
|
82
|
-
permissions?: readonly string[];
|
|
83
|
-
anyPermissions?: readonly string[];
|
|
84
|
-
options?: readonly ControlOption[];
|
|
85
|
-
section?: string;
|
|
86
|
-
sectionLabel?: string;
|
|
87
|
-
sectionDescription?: string;
|
|
88
|
-
sectionSubtitle?: string;
|
|
89
|
-
view?: string;
|
|
90
|
-
order?: number;
|
|
91
|
-
colSpan?: number;
|
|
92
|
-
props?: Record<string, unknown>;
|
|
93
|
-
sidebar?: boolean | ControlSidebarConfig;
|
|
94
|
-
}
|
|
95
|
-
export type ControlSchema = Record<string, ControlInput>;
|
|
96
|
-
export type ControlFormSchema = Extract<FormSchema, {
|
|
97
|
-
sections: FormSectionSchema[];
|
|
98
|
-
}>;
|
|
99
|
-
export interface ControlSchemaOptions {
|
|
100
|
-
view?: string;
|
|
101
|
-
views?: Record<string, ControlViewConfig>;
|
|
102
|
-
section?: string;
|
|
103
|
-
sectionLabel?: string;
|
|
104
|
-
sections?: Record<string, ControlSectionConfig>;
|
|
105
|
-
columns?: 1 | 2 | 3;
|
|
106
|
-
submitLabel?: string;
|
|
107
|
-
cancelLabel?: string;
|
|
108
|
-
showCancel?: boolean;
|
|
109
|
-
}
|
|
110
|
-
export interface ControlWorkspaceOptions extends ControlSchemaOptions {
|
|
111
|
-
initialValues?: Record<string, unknown>;
|
|
112
|
-
topBarSettings?: Omit<TopBarSettingsConfig, 'schema' | 'controls' | 'controlOptions' | 'values'>;
|
|
113
|
-
}
|
|
114
|
-
export interface ControlModelSectionConfig extends ControlSectionConfig {
|
|
115
|
-
controls: ControlSchema;
|
|
116
|
-
sidebar?: boolean | ControlSidebarConfig;
|
|
117
|
-
}
|
|
118
|
-
export interface ControlModelViewConfig extends ControlViewConfig {
|
|
119
|
-
controls?: ControlSchema;
|
|
120
|
-
section?: string;
|
|
121
|
-
sectionLabel?: string;
|
|
122
|
-
sectionDescription?: string;
|
|
123
|
-
sections?: Record<string, ControlModelSectionConfig>;
|
|
124
|
-
}
|
|
125
|
-
export interface ControlModel extends Omit<ControlWorkspaceOptions, 'sections' | 'views'> {
|
|
126
|
-
controls?: ControlSchema;
|
|
127
|
-
sections?: Record<string, ControlModelSectionConfig>;
|
|
128
|
-
views?: Record<string, ControlModelViewConfig>;
|
|
129
|
-
/** Optional SDK component bindings returned with generated component props for custom workspace slots. */
|
|
130
|
-
componentBindings?: ControlComponentBindingsConfig;
|
|
131
|
-
/** Alias for componentBindings in raw control models. */
|
|
132
|
-
components?: ControlComponentBindingsConfig;
|
|
133
|
-
/** Optional ControlWorkspaceView componentProps mapping returned with the generated controls/options. */
|
|
134
|
-
componentProps?: ControlComponentPropsMap;
|
|
135
|
-
/** Optional named componentProps mappings returned for multiple SDK components. */
|
|
136
|
-
componentPropsById?: ControlComponentPropsByIdMap;
|
|
137
|
-
}
|
|
138
|
-
export interface ControlModelBinding {
|
|
139
|
-
controls: ControlSchema;
|
|
140
|
-
controlOptions: ControlWorkspaceOptions;
|
|
141
|
-
componentBindings?: ControlComponentBindingsConfig;
|
|
142
|
-
componentProps?: ControlComponentPropsMap;
|
|
143
|
-
componentPropsById?: ControlComponentPropsByIdMap;
|
|
144
|
-
}
|
|
145
|
-
export interface ControlSidebarBinding {
|
|
146
|
-
panels: Record<string, SidebarToolSection[]>;
|
|
147
|
-
forms: Record<string, ControlFormSchema>;
|
|
148
|
-
viewIds: string[];
|
|
149
|
-
viewItems: PillNavItem[];
|
|
150
|
-
defaultView: string;
|
|
151
|
-
}
|
|
152
|
-
export interface ControlFormBinding {
|
|
153
|
-
schema: ControlFormSchema;
|
|
154
|
-
}
|
|
155
|
-
export interface ControlSettingsBinding {
|
|
156
|
-
schema: SettingsModalSchema;
|
|
157
|
-
}
|
|
158
|
-
export interface ControlTopBarSettingsBinding {
|
|
159
|
-
showSettings: true;
|
|
160
|
-
settingsConfig: TopBarSettingsConfig;
|
|
161
|
-
}
|
|
162
|
-
export interface ControlWorkspaceFormBinding extends ControlFormBinding {
|
|
163
|
-
modelValue: Record<string, unknown>;
|
|
164
|
-
'onUpdate:modelValue': (values: Record<string, unknown>) => void;
|
|
165
|
-
}
|
|
166
|
-
export interface ControlWorkspaceSidebarBinding extends ControlSidebarBinding {
|
|
167
|
-
activeView: string;
|
|
168
|
-
modelValue: Record<string, unknown>;
|
|
169
|
-
'onUpdate:modelValue': (values: Record<string, unknown>) => void;
|
|
170
|
-
values: Record<string, unknown>;
|
|
171
|
-
'onUpdate:values': (values: Record<string, unknown>) => void;
|
|
172
|
-
}
|
|
173
|
-
export interface ControlWorkspaceTopBarSettingsBinding extends ControlTopBarSettingsBinding {
|
|
174
|
-
onSettingsValuesChange: (values: Record<string, unknown>) => void;
|
|
175
|
-
}
|
|
176
|
-
export interface ControlWorkspacePillNavBinding {
|
|
177
|
-
items: PillNavItem[];
|
|
178
|
-
currentItemId: string;
|
|
179
|
-
onSelect: (item: PillNavItem) => void;
|
|
180
|
-
}
|
|
181
|
-
export interface ControlWorkspaceTopBarBinding extends ControlWorkspaceTopBarSettingsBinding {
|
|
182
|
-
pillNav: PillNavItem[];
|
|
183
|
-
currentPillId: string;
|
|
184
|
-
onPillSelect: (item: PillNavItem) => void;
|
|
185
|
-
}
|
|
186
|
-
export type ControlWorkspaceAppTopBarPillBinding = ControlWorkspaceTopBarBinding;
|
|
187
|
-
export interface ControlWorkspaceComponentBindings {
|
|
188
|
-
form: ControlWorkspaceFormBinding;
|
|
189
|
-
sidebar: ControlWorkspaceSidebarBinding;
|
|
190
|
-
topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
|
|
191
|
-
topBarSettings: ControlWorkspaceTopBarSettingsBinding;
|
|
192
|
-
pillNav: ControlWorkspacePillNavBinding;
|
|
193
|
-
componentBindings: ComputedRef<ControlComponentBinding[]>;
|
|
194
|
-
componentBindingsById: ComputedRef<ControlComponentBindingsById>;
|
|
195
|
-
componentProps: ComputedRef<Record<string, unknown>>;
|
|
196
|
-
componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
|
|
197
|
-
}
|
|
198
|
-
export type ControlComponentPropSource<TValues extends Record<string, unknown> = Record<string, unknown>> = (keyof TValues & string) | ((values: TValues) => unknown);
|
|
199
|
-
export type ControlComponentPropsMap<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly (keyof TValues & string)[] | Record<string, ControlComponentPropSource<TValues>>;
|
|
200
|
-
export type ControlComponentPropsByIdMap<TValues extends Record<string, unknown> = Record<string, unknown>> = Record<string, ControlComponentPropsMap<TValues>>;
|
|
201
|
-
export interface ControlComponentBindingConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
202
|
-
id?: string;
|
|
203
|
-
component: string;
|
|
204
|
-
props?: ControlComponentPropsMap<TValues>;
|
|
205
|
-
}
|
|
206
|
-
export interface ControlComponentBindingRecordConfig<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
207
|
-
component: string;
|
|
208
|
-
props?: ControlComponentPropsMap<TValues>;
|
|
209
|
-
}
|
|
210
|
-
export type ControlComponentBindingsConfig<TValues extends Record<string, unknown> = Record<string, unknown>> = readonly ControlComponentBindingConfig<TValues>[] | Record<string, ControlComponentBindingRecordConfig<TValues>>;
|
|
211
|
-
export interface ControlComponentBinding {
|
|
212
|
-
id: string;
|
|
213
|
-
component: string;
|
|
214
|
-
props: Record<string, unknown>;
|
|
215
|
-
}
|
|
216
|
-
export type ControlComponentBindingsById = Record<string, ControlComponentBinding>;
|
|
217
|
-
export interface WellPlateControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
218
|
-
selectedWells?: ControlComponentPropSource<TValues>;
|
|
219
|
-
format?: ControlComponentPropSource<TValues>;
|
|
220
|
-
wells?: ControlComponentPropSource<TValues>;
|
|
221
|
-
disabled?: ControlComponentPropSource<TValues>;
|
|
222
|
-
readonly?: ControlComponentPropSource<TValues>;
|
|
223
|
-
showLegend?: ControlComponentPropSource<TValues>;
|
|
224
|
-
showSampleTypeIndicator?: ControlComponentPropSource<TValues>;
|
|
225
|
-
/** Listener for WellPlate v-model updates. Set false to keep generated props one-way. */
|
|
226
|
-
onUpdateModelValue?: ((values: TValues) => (wellIds: string[]) => void) | false;
|
|
227
|
-
}
|
|
228
|
-
export interface DoseCalculatorControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
229
|
-
mode?: ControlComponentPropSource<TValues>;
|
|
230
|
-
targetWells?: ControlComponentPropSource<TValues>;
|
|
231
|
-
/** Control value key used by the default apply-to-wells handler. */
|
|
232
|
-
wells?: ControlComponentPropSource<TValues>;
|
|
233
|
-
disabled?: ControlComponentPropSource<TValues>;
|
|
234
|
-
molecularWeight?: ControlComponentPropSource<TValues>;
|
|
235
|
-
/** Listener for DoseCalculator apply-to-wells. Set false to keep generated props one-way. */
|
|
236
|
-
onApplyToWells?: ((values: TValues) => (results: WellConcentration[]) => void) | false;
|
|
237
|
-
}
|
|
238
|
-
export interface WellPlateDoseControlPropsOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
239
|
-
plateId?: string;
|
|
240
|
-
doseId?: string;
|
|
241
|
-
plate?: WellPlateControlPropsOptions<TValues>;
|
|
242
|
-
dose?: DoseCalculatorControlPropsOptions<TValues>;
|
|
243
|
-
}
|
|
244
|
-
export interface DoseDesignControlModelOptions {
|
|
245
|
-
viewId?: string;
|
|
246
|
-
viewLabel?: string;
|
|
247
|
-
sectionId?: string;
|
|
248
|
-
sectionLabel?: string;
|
|
249
|
-
sectionDescription?: string;
|
|
250
|
-
selectedWells?: readonly string[];
|
|
251
|
-
plateFormat?: number;
|
|
252
|
-
plateFormats?: readonly number[];
|
|
253
|
-
doseMode?: 'serial' | 'dilution' | 'conversion';
|
|
254
|
-
doseModes?: readonly ('serial' | 'dilution' | 'conversion')[];
|
|
255
|
-
disabled?: boolean;
|
|
256
|
-
includeMolecularWeight?: boolean;
|
|
257
|
-
molecularWeight?: number;
|
|
258
|
-
componentProps?: WellPlateDoseControlPropsOptions;
|
|
259
|
-
}
|
|
260
|
-
export interface UseControlSchemaReturn<TControls extends ControlSchema> {
|
|
261
|
-
controls: TControls;
|
|
262
|
-
fields: FormFieldSchema[];
|
|
263
|
-
formSchema: ControlFormSchema;
|
|
264
|
-
form: ControlFormBinding;
|
|
265
|
-
settingsSchema: SettingsModalSchema;
|
|
266
|
-
settings: ControlSettingsBinding;
|
|
267
|
-
topBarSettingsConfig: TopBarSettingsConfig;
|
|
268
|
-
topBarSettings: ControlTopBarSettingsBinding;
|
|
269
|
-
sidebarPanels: Record<string, SidebarToolSection[]>;
|
|
270
|
-
viewIds: string[];
|
|
271
|
-
viewItems: PillNavItem[];
|
|
272
|
-
defaultView: string;
|
|
273
|
-
sectionSchemas: Record<string, ControlFormSchema>;
|
|
274
|
-
sidebar: ControlSidebarBinding;
|
|
275
|
-
initialValues: ControlValues<TControls>;
|
|
276
|
-
sectionSchema: (sectionId: string) => ControlFormSchema;
|
|
277
|
-
}
|
|
278
|
-
export interface UseControlWorkspaceReturn<TControls extends ControlSchema> extends Omit<UseControlSchemaReturn<TControls>, 'form' | 'sidebar' | 'topBarSettings'> {
|
|
279
|
-
schema: UseControlSchemaReturn<TControls>;
|
|
280
|
-
values: ControlValues<TControls> & Record<string, unknown>;
|
|
281
|
-
activeView: Ref<string>;
|
|
282
|
-
form: ControlWorkspaceFormBinding;
|
|
283
|
-
sidebar: ControlWorkspaceSidebarBinding;
|
|
284
|
-
topBar: ComputedRef<ControlWorkspaceTopBarBinding>;
|
|
285
|
-
pillNav: ControlWorkspacePillNavBinding;
|
|
286
|
-
topBarSettings: ControlWorkspaceTopBarSettingsBinding;
|
|
287
|
-
bindings: ControlWorkspaceComponentBindings;
|
|
288
|
-
componentBindings: ComputedRef<ControlComponentBinding[]>;
|
|
289
|
-
componentBindingsById: ComputedRef<ControlComponentBindingsById>;
|
|
290
|
-
componentProps: ComputedRef<Record<string, unknown>>;
|
|
291
|
-
componentPropsById: ComputedRef<Record<string, Record<string, unknown>>>;
|
|
292
|
-
setActiveView: (viewId: string) => void;
|
|
293
|
-
setValues: (values: Record<string, unknown>) => void;
|
|
294
|
-
resetValues: (values?: Record<string, unknown>) => void;
|
|
295
|
-
getComponentProps: (mapping?: ControlComponentPropsMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, unknown>;
|
|
296
|
-
getComponentPropsById: (mappings?: ControlComponentPropsByIdMap<ControlValues<TControls> & Record<string, unknown>>) => Record<string, Record<string, unknown>>;
|
|
297
|
-
getComponentBindings: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBinding[];
|
|
298
|
-
getComponentBindingsById: (bindings?: ControlComponentBindingsConfig<ControlValues<TControls> & Record<string, unknown>>) => ControlComponentBindingsById;
|
|
299
|
-
}
|
|
300
|
-
export type ControlValues<TControls extends ControlSchema> = {
|
|
301
|
-
[K in keyof TControls]: ControlValue<TControls[K]>;
|
|
302
|
-
};
|
|
303
|
-
type ControlValue<TControl> = TControl extends {
|
|
304
|
-
default: infer TDefault;
|
|
305
|
-
} ? TDefault : TControl extends {
|
|
306
|
-
defaultValue: infer TDefaultValue;
|
|
307
|
-
} ? TDefaultValue : TControl extends readonly [infer First, ...unknown[]] ? OptionValue<First> : TControl extends ControlPrimitive ? TControl : unknown;
|
|
308
|
-
type OptionValue<TOption> = TOption extends SelectOption<infer TValue> ? TValue : TOption;
|
|
7
|
+
export { defineControlModel, isControlModelBinding, resolveControlModel, } from './controlSchemaModel';
|
|
8
|
+
export { defineDoseCalculatorControlProps, defineDoseDesignControlModel, defineWellPlateControlProps, defineWellPlateDoseComponentBindings, defineWellPlateDoseControlProps, } from './controlSchemaDoseDesign';
|
|
309
9
|
/** Preserve literal control keys while marking an object as a MINT control schema. */
|
|
310
10
|
export declare function defineControls<TControls extends ControlSchema>(controls: TControls): TControls;
|
|
311
11
|
/** Preserve literal SDK component binding ids while marking an object as generated workspace component bindings. */
|
|
312
12
|
export declare function defineControlComponentBindings<TBindings extends ControlComponentBindingsConfig>(bindings: TBindings): TBindings;
|
|
313
|
-
/** Create a complete workspace component binding from a simple controls data model for ControlWorkspaceView, generated forms, and sidebars. */
|
|
314
|
-
export declare function defineControlModel(model: ControlModel): ControlModelBinding;
|
|
315
13
|
/** Build default values for a control schema, matching FormBuilder field defaults. */
|
|
316
14
|
export declare function getControlDefaults<TControls extends ControlSchema>(controls: TControls): ControlValues<TControls>;
|
|
317
|
-
/** Return a default WellPlate prop mapping for generated control workspaces. */
|
|
318
|
-
export declare function defineWellPlateControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
|
|
319
|
-
/** Return a default DoseCalculator prop mapping for generated control workspaces. */
|
|
320
|
-
export declare function defineDoseCalculatorControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: DoseCalculatorControlPropsOptions<TValues>): ControlComponentPropsMap<TValues>;
|
|
321
|
-
/** Return named WellPlate + DoseCalculator prop mappings for one dose-design control model. */
|
|
322
|
-
export declare function defineWellPlateDoseControlProps<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentPropsByIdMap<TValues>;
|
|
323
|
-
/** Return named WellPlate + DoseCalculator component bindings for one dose-design control model. */
|
|
324
|
-
export declare function defineWellPlateDoseComponentBindings<TValues extends Record<string, unknown> = Record<string, unknown>>(options?: WellPlateDoseControlPropsOptions<TValues>): ControlComponentBindingsConfig<TValues>;
|
|
325
|
-
/** Return a complete ControlWorkspaceView model for WellPlate + DoseCalculator dose design. */
|
|
326
|
-
export declare function defineDoseDesignControlModel(options?: DoseDesignControlModelOptions): ControlModelBinding;
|
|
327
15
|
/** Prepare FormBuilder, SettingsModal, AppTopBar settings, AppSidebar, and initial values from one compact control model. */
|
|
328
16
|
export declare function useControlSchema<TControls extends ControlSchema>(controls: TControls, options?: ControlSchemaOptions): UseControlSchemaReturn<TControls>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from './
|
|
1
|
+
import { ControlModelBinding, ControlSchema, ControlWorkspaceOptions, UseControlWorkspaceReturn } from './controlSchemaTypes';
|
|
2
2
|
/** Prepare shared reactive values plus AppTopBar/AppSidebar/FormBuilder bindings from one simple controls data model. */
|
|
3
3
|
export declare function useControlWorkspace<TControls extends ControlSchema>(controlsOrModel: TControls | (ControlModelBinding & {
|
|
4
4
|
controls: TControls;
|
|
@@ -1,37 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Returns error message string if invalid, undefined/null if valid.
|
|
5
|
-
*/
|
|
6
|
-
export type ValidationRule<T = unknown> = (value: T, formData: Record<string, unknown>) => string | undefined | null;
|
|
7
|
-
/**
|
|
8
|
-
* Field validation rules configuration.
|
|
9
|
-
*/
|
|
10
|
-
export interface FieldRules<T = unknown> {
|
|
11
|
-
required?: boolean | string;
|
|
12
|
-
minLength?: number | {
|
|
13
|
-
value: number;
|
|
14
|
-
message: string;
|
|
15
|
-
};
|
|
16
|
-
maxLength?: number | {
|
|
17
|
-
value: number;
|
|
18
|
-
message: string;
|
|
19
|
-
};
|
|
20
|
-
min?: number | {
|
|
21
|
-
value: number;
|
|
22
|
-
message: string;
|
|
23
|
-
};
|
|
24
|
-
max?: number | {
|
|
25
|
-
value: number;
|
|
26
|
-
message: string;
|
|
27
|
-
};
|
|
28
|
-
pattern?: RegExp | {
|
|
29
|
-
value: RegExp;
|
|
30
|
-
message: string;
|
|
31
|
-
};
|
|
32
|
-
email?: boolean | string;
|
|
33
|
-
custom?: ValidationRule<T> | ValidationRule<T>[];
|
|
34
|
-
}
|
|
2
|
+
import { FieldRules } from './useFormValidation';
|
|
3
|
+
export type { FieldRules, ValidationRule } from './useFormValidation';
|
|
35
4
|
/**
|
|
36
5
|
* Field validation rules configuration.
|
|
37
6
|
*/
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import { FormSchema,
|
|
2
|
-
|
|
3
|
-
* Evaluate a JSON-serializable field condition against the current form data.
|
|
4
|
-
*
|
|
5
|
-
* Supports logical operators (`and`, `or`, `not`) and comparison operators
|
|
6
|
-
* (`eq`, `neq`, `gt`, `lt`, `gte`, `lte`, `in`, `notIn`, `truthy`, `falsy`,
|
|
7
|
-
* `contains`). Returns `true` if the condition passes.
|
|
8
|
-
*/
|
|
9
|
-
export declare function evaluateCondition(condition: FieldCondition, data: Record<string, unknown>): boolean;
|
|
1
|
+
import { FormSchema, FormEnhancements, UseFormBuilderReturn } from '../types/form-builder';
|
|
2
|
+
export { evaluateCondition } from './formBuilderSchema';
|
|
10
3
|
/**
|
|
11
4
|
* Drive a `FormSchema` as reactive form state.
|
|
12
5
|
*
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation rule function type.
|
|
3
|
+
* Returns error message string if invalid, undefined/null if valid.
|
|
4
|
+
*/
|
|
5
|
+
export type ValidationRule<T = unknown> = (value: T, formData: Record<string, unknown>) => string | undefined | null;
|
|
6
|
+
/**
|
|
7
|
+
* Field validation rules configuration.
|
|
8
|
+
*/
|
|
9
|
+
export interface FieldRules<T = unknown> {
|
|
10
|
+
required?: boolean | string;
|
|
11
|
+
minLength?: number | {
|
|
12
|
+
value: number;
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
maxLength?: number | {
|
|
16
|
+
value: number;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
min?: number | {
|
|
20
|
+
value: number;
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
max?: number | {
|
|
24
|
+
value: number;
|
|
25
|
+
message: string;
|
|
26
|
+
};
|
|
27
|
+
pattern?: RegExp | {
|
|
28
|
+
value: RegExp;
|
|
29
|
+
message: string;
|
|
30
|
+
};
|
|
31
|
+
email?: boolean | string;
|
|
32
|
+
custom?: ValidationRule<T> | ValidationRule<T>[];
|
|
33
|
+
}
|
|
34
|
+
export declare function validateFieldValue(value: unknown, fieldRules: FieldRules | undefined, formData: Record<string, unknown>): string | null;
|