@morscherlab/mint-sdk 1.0.0-rc.2 → 1.0.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/dist/__tests__/components/AppTopBar.navigation.test.d.ts +1 -0
  2. package/dist/__tests__/components/DoseCalculatorVolumeField.test.d.ts +1 -0
  3. package/dist/__tests__/components/PlateMapEditorToolbarInternal.test.d.ts +1 -0
  4. package/dist/__tests__/components/PluginWorkspaceView.controls.test.d.ts +1 -0
  5. package/dist/__tests__/components/PluginWorkspaceView.navigation.test.d.ts +1 -0
  6. package/dist/__tests__/components/PluginWorkspaceView.shell.test.d.ts +1 -0
  7. package/dist/__tests__/components/ProtocolStep.presentation.test.d.ts +1 -0
  8. package/dist/__tests__/components/ProtocolStepEditor.state.test.d.ts +1 -0
  9. package/dist/__tests__/components/ProtocolStepParameterField.test.d.ts +1 -0
  10. package/dist/__tests__/components/ReagentList.presentation.test.d.ts +1 -0
  11. package/dist/__tests__/components/SampleSelector.colors.test.d.ts +1 -0
  12. package/dist/__tests__/components/SampleSelector.drag.test.d.ts +1 -0
  13. package/dist/__tests__/components/SampleSelector.groups.test.d.ts +1 -0
  14. package/dist/__tests__/components/SampleSelector.selection.test.d.ts +1 -0
  15. package/dist/__tests__/components/SampleSelectorSampleRow.test.d.ts +1 -0
  16. package/dist/__tests__/components/ScheduleCalendar.test.d.ts +1 -0
  17. package/dist/__tests__/components/SettingsModal.schema.test.d.ts +1 -0
  18. package/dist/__tests__/components/WellPlate.colors.test.d.ts +1 -0
  19. package/dist/__tests__/components/WellPlate.conditions.test.d.ts +1 -0
  20. package/dist/__tests__/components/WellPlate.geometry.test.d.ts +1 -0
  21. package/dist/__tests__/components/WellPlate.interaction.test.d.ts +1 -0
  22. package/dist/__tests__/components/WellPlate.legend.test.d.ts +1 -0
  23. package/dist/__tests__/components/WellPlate.rendering.test.d.ts +1 -0
  24. package/dist/__tests__/components/WellPlate.sampleDrop.test.d.ts +1 -0
  25. package/dist/__tests__/composables/autoGroup/classify.test.d.ts +1 -0
  26. package/dist/__tests__/composables/autoGroup/columns.test.d.ts +1 -0
  27. package/dist/__tests__/composables/autoGroup/compose.test.d.ts +1 -0
  28. package/dist/__tests__/composables/autoGroup/cooccurrence.test.d.ts +1 -0
  29. package/dist/__tests__/composables/autoGroup/fingerprint.test.d.ts +1 -0
  30. package/dist/__tests__/composables/autoGroup/integration.test.d.ts +1 -0
  31. package/dist/__tests__/composables/autoGroup/template.test.d.ts +1 -0
  32. package/dist/__tests__/composables/autoGroup/tokenize.test.d.ts +1 -0
  33. package/dist/__tests__/composables/useAutoGroupInputSources.test.d.ts +1 -0
  34. package/dist/__tests__/composables/useScheduleCalendarLayout.test.d.ts +1 -0
  35. package/dist/__tests__/docs/extractDocsComponents.test.d.ts +1 -0
  36. package/dist/__tests__/docs/extractDocsExports.test.d.ts +1 -0
  37. package/dist/__tests__/docs/extractDocsParsing.test.d.ts +1 -0
  38. package/dist/__tests__/docs/extractDocsTemplates.test.d.ts +1 -0
  39. package/dist/__tests__/docs/extractDocsTheme.test.d.ts +1 -0
  40. package/dist/components/AppTopBar.navigation.d.ts +11 -0
  41. package/dist/components/BaseButton.vue.d.ts +1 -1
  42. package/dist/components/BaseCheckbox.vue.d.ts +1 -1
  43. package/dist/components/BaseInput.vue.d.ts +2 -2
  44. package/dist/components/BasePill.vue.d.ts +1 -1
  45. package/dist/components/BaseRadioGroup.vue.d.ts +1 -1
  46. package/dist/components/BaseSelect.vue.d.ts +1 -1
  47. package/dist/components/BaseSlider.vue.d.ts +2 -2
  48. package/dist/components/BaseTextarea.vue.d.ts +2 -2
  49. package/dist/components/BaseToggle.vue.d.ts +1 -1
  50. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +2 -2
  51. package/dist/components/BioTemplatePackWorkspaceView.vue.d.ts +1 -1
  52. package/dist/components/ColorSlider.vue.d.ts +2 -2
  53. package/dist/components/ConcentrationInput.vue.d.ts +2 -2
  54. package/dist/components/DatePicker.vue.d.ts +1 -1
  55. package/dist/components/DateTimePicker.vue.d.ts +2 -2
  56. package/dist/components/DoseCalculatorVolumeField.vue.d.ts +15 -0
  57. package/dist/components/DropdownButton.vue.d.ts +1 -1
  58. package/dist/components/FileUploader.vue.d.ts +2 -2
  59. package/dist/components/FormulaInput.vue.d.ts +2 -2
  60. package/dist/components/IconButton.vue.d.ts +1 -1
  61. package/dist/components/LoadingSpinner.vue.d.ts +1 -1
  62. package/dist/components/MoleculeInput.vue.d.ts +2 -2
  63. package/dist/components/MultiSelect.vue.d.ts +1 -1
  64. package/dist/components/NumberInput.vue.d.ts +1 -1
  65. package/dist/components/PlateMapEditor.vue.d.ts +6 -6
  66. package/dist/components/PluginWorkspaceView.controls.d.ts +28 -0
  67. package/dist/components/PluginWorkspaceView.navigation.d.ts +29 -0
  68. package/dist/components/PluginWorkspaceView.props.d.ts +151 -0
  69. package/dist/components/PluginWorkspaceView.shell.d.ts +19 -0
  70. package/dist/components/PluginWorkspaceView.vue.d.ts +46 -195
  71. package/dist/components/ProgressBar.vue.d.ts +1 -1
  72. package/dist/components/ProtocolStep.presentation.d.ts +4 -0
  73. package/dist/components/ProtocolStepEditor.state.d.ts +18 -0
  74. package/dist/components/ProtocolStepParameterField.vue.d.ts +12 -0
  75. package/dist/components/ReagentList.presentation.d.ts +16 -0
  76. package/dist/components/ResourceCard.vue.d.ts +1 -1
  77. package/dist/components/SampleSelector.colors.d.ts +13 -0
  78. package/dist/components/SampleSelector.drag.d.ts +24 -0
  79. package/dist/components/SampleSelector.groups.d.ts +15 -0
  80. package/dist/components/SampleSelector.selection.d.ts +26 -0
  81. package/dist/components/SampleSelector.vue.d.ts +4 -1
  82. package/dist/components/SampleSelectorSampleRow.vue.d.ts +21 -0
  83. package/dist/components/SegmentedControl.vue.d.ts +1 -1
  84. package/dist/components/SequenceInput.vue.d.ts +2 -2
  85. package/dist/components/SequenceProgressBar.vue.d.ts +1 -1
  86. package/dist/components/SettingsModal.schema.d.ts +9 -0
  87. package/dist/components/StatusIndicator.vue.d.ts +1 -1
  88. package/dist/components/TagsInput.vue.d.ts +2 -2
  89. package/dist/components/TimePicker.vue.d.ts +2 -2
  90. package/dist/components/TimeRangeInput.vue.d.ts +1 -1
  91. package/dist/components/UnitInput.vue.d.ts +2 -2
  92. package/dist/components/WellPlate.colors.d.ts +9 -0
  93. package/dist/components/WellPlate.conditions.d.ts +26 -0
  94. package/dist/components/WellPlate.geometry.d.ts +23 -0
  95. package/dist/components/WellPlate.interaction.d.ts +71 -0
  96. package/dist/components/WellPlate.legend.d.ts +2 -0
  97. package/dist/components/WellPlate.rendering.d.ts +24 -0
  98. package/dist/components/WellPlate.sampleDrop.d.ts +8 -0
  99. package/dist/components/WellPlate.vue.d.ts +1 -1
  100. package/dist/components/index.js +2 -2
  101. package/dist/components/internal/ActionItemInternal.vue.d.ts +1 -1
  102. package/dist/components/internal/PlateMapEditorToolbarInternal.vue.d.ts +28 -0
  103. package/dist/{components-BhK-dW99.js → components-DtHA2bgp.js} +3754 -2991
  104. package/dist/components-DtHA2bgp.js.map +1 -0
  105. package/dist/composables/autoGroup/classKey.d.ts +4 -0
  106. package/dist/composables/autoGroup/classify.d.ts +28 -0
  107. package/dist/composables/autoGroup/colors.d.ts +2 -0
  108. package/dist/composables/autoGroup/columns.d.ts +10 -0
  109. package/dist/composables/autoGroup/compose.d.ts +8 -0
  110. package/dist/composables/autoGroup/cooccurrence.d.ts +2 -0
  111. package/dist/composables/autoGroup/csv-shim.d.ts +2 -0
  112. package/dist/composables/autoGroup/fingerprint.d.ts +3 -0
  113. package/dist/composables/autoGroup/index.d.ts +16 -0
  114. package/dist/composables/autoGroup/replicatePreGroup.d.ts +38 -0
  115. package/dist/composables/autoGroup/template.d.ts +15 -0
  116. package/dist/composables/autoGroup/tokenize.d.ts +8 -0
  117. package/dist/composables/autoGroupConstants.d.ts +1 -0
  118. package/dist/composables/autoGroupGrouping.d.ts +3 -0
  119. package/dist/composables/controlComponentBindings.d.ts +7 -0
  120. package/dist/composables/controlSchemaAdapters.d.ts +20 -0
  121. package/dist/composables/controlSchemaDoseDesign.d.ts +11 -0
  122. package/dist/composables/controlSchemaFormFields.d.ts +3 -0
  123. package/dist/composables/controlSchemaLayout.d.ts +7 -0
  124. package/dist/composables/controlSchemaModel.d.ts +5 -0
  125. package/dist/composables/controlSchemaNormalize.d.ts +15 -0
  126. package/dist/composables/controlSchemaTypes.d.ts +305 -0
  127. package/dist/composables/controlSchemaUtils.d.ts +9 -0
  128. package/dist/composables/controlWorkspaceOptions.d.ts +2 -0
  129. package/dist/composables/formBuilderSchema.d.ts +18 -0
  130. package/dist/composables/index.js +3 -3
  131. package/dist/composables/pluginEndpointBuilder.d.ts +13 -0
  132. package/dist/composables/protocolTemplateCatalog.d.ts +26 -0
  133. package/dist/composables/useAutoGroup.d.ts +61 -74
  134. package/dist/composables/useAutoGroupInputSources.d.ts +32 -0
  135. package/dist/composables/useBioTemplateControls.d.ts +1 -1
  136. package/dist/composables/useBioTemplatePresetWorkspace.d.ts +1 -1
  137. package/dist/composables/useBioTemplateWorkspace.d.ts +1 -1
  138. package/dist/composables/useControlSchema.d.ts +8 -346
  139. package/dist/composables/useControlWorkspace.d.ts +5 -0
  140. package/dist/composables/useForm.d.ts +2 -33
  141. package/dist/composables/useFormBuilder.d.ts +2 -9
  142. package/dist/composables/useFormValidation.d.ts +34 -0
  143. package/dist/composables/usePluginClient.d.ts +1 -4
  144. package/dist/composables/useProtocolTemplates.d.ts +2 -24
  145. package/dist/composables/useScheduleCalendarLayout.d.ts +49 -0
  146. package/dist/{composables-Bg7CFuNz.js → composables-Dlg8jenH.js} +33 -31
  147. package/dist/composables-Dlg8jenH.js.map +1 -0
  148. package/dist/index.js +4 -4
  149. package/dist/install.js +2 -2
  150. package/dist/styles.css +547 -516
  151. package/dist/templates/adapters.d.ts +14 -47
  152. package/dist/templates/assayLookups.d.ts +3 -0
  153. package/dist/templates/assayMatrixAdapters.d.ts +6 -0
  154. package/dist/templates/assayMatrixBuilder.d.ts +2 -0
  155. package/dist/templates/assayNormalizers.d.ts +4 -0
  156. package/dist/templates/builderDefaults.d.ts +1 -0
  157. package/dist/templates/builderIdUtils.d.ts +4 -0
  158. package/dist/templates/builderPresetControls.d.ts +10 -0
  159. package/dist/templates/builderReadUtils.d.ts +8 -0
  160. package/dist/templates/builders.d.ts +26 -67
  161. package/dist/templates/calibrationCurveAdapters.d.ts +4 -0
  162. package/dist/templates/calibrationCurveBuilder.d.ts +2 -0
  163. package/dist/templates/calibrationNormalizers.d.ts +5 -0
  164. package/dist/templates/componentBindingCatalog.d.ts +25 -0
  165. package/dist/templates/componentBindingHelpers.d.ts +17 -0
  166. package/dist/templates/componentDoseResponseProps.d.ts +3 -0
  167. package/dist/templates/componentGenericProps.d.ts +8 -0
  168. package/dist/templates/componentPlateHelpers.d.ts +5 -0
  169. package/dist/templates/componentPlateMapProps.d.ts +3 -0
  170. package/dist/templates/componentPropsFactory.d.ts +3 -0
  171. package/dist/templates/componentQpcrPlateProps.d.ts +3 -0
  172. package/dist/templates/componentTargetResolvers.d.ts +5 -0
  173. package/dist/templates/componentTemplateProps.d.ts +3 -0
  174. package/dist/templates/controlSchemaClone.d.ts +4 -0
  175. package/dist/templates/controlSchemaConstants.d.ts +10 -0
  176. package/dist/templates/controlSchemaMerge.d.ts +3 -0
  177. package/dist/templates/controlSchemaTargets.d.ts +17 -0
  178. package/dist/templates/controlSchemaTypes.d.ts +4 -0
  179. package/dist/templates/controlSchemas.d.ts +4 -4
  180. package/dist/templates/defaultBioTemplateBuilder.d.ts +2 -0
  181. package/dist/templates/doseResponseAdapters.d.ts +4 -0
  182. package/dist/templates/doseResponseBuilder.d.ts +2 -0
  183. package/dist/templates/elisaAssayCollectionBuilder.d.ts +2 -0
  184. package/dist/templates/flowCytometryAssayCollectionBuilder.d.ts +2 -0
  185. package/dist/templates/flowCytometryPanelBuilder.d.ts +2 -0
  186. package/dist/templates/flowNormalizers.d.ts +8 -0
  187. package/dist/templates/flowPanelAdapters.d.ts +4 -0
  188. package/dist/templates/index.js +1 -1
  189. package/dist/templates/instrumentRunAdapterHelpers.d.ts +8 -0
  190. package/dist/templates/instrumentRunAdapters.d.ts +8 -0
  191. package/dist/templates/instrumentRunBuilder.d.ts +2 -0
  192. package/dist/templates/lcmsBatchCollectionBuilder.d.ts +2 -0
  193. package/dist/templates/plateGeometry.d.ts +4 -0
  194. package/dist/templates/plateMapAdapters.d.ts +3 -0
  195. package/dist/templates/plateMapBuilder.d.ts +2 -0
  196. package/dist/templates/presetControlSchemas.d.ts +534 -0
  197. package/dist/templates/protocolAdapters.d.ts +5 -0
  198. package/dist/templates/protocolNormalizers.d.ts +6 -0
  199. package/dist/templates/protocolStepsBuilder.d.ts +2 -0
  200. package/dist/templates/qpcrAdapters.d.ts +5 -0
  201. package/dist/templates/qpcrExpressionCollectionBuilder.d.ts +2 -0
  202. package/dist/templates/qpcrPlateBuilder.d.ts +2 -0
  203. package/dist/templates/reagentAdapters.d.ts +5 -0
  204. package/dist/templates/reagentListBuilder.d.ts +2 -0
  205. package/dist/templates/runNormalizers.d.ts +10 -0
  206. package/dist/templates/sampleNormalizers.d.ts +4 -0
  207. package/dist/templates/samplePrepAdapters.d.ts +4 -0
  208. package/dist/templates/samplePrepBuilder.d.ts +2 -0
  209. package/dist/templates/sampleSheetAdapters.d.ts +5 -0
  210. package/dist/templates/sampleSheetBuilder.d.ts +2 -0
  211. package/dist/templates/targetedMetabolomicsCollectionBuilder.d.ts +2 -0
  212. package/dist/templates/targetedMetabolomicsHelpers.d.ts +5 -0
  213. package/dist/templates/templateAdapterTypes.d.ts +48 -0
  214. package/dist/templates/templateControlSchemas.d.ts +400 -0
  215. package/dist/templates/templateCreateOptions.d.ts +165 -0
  216. package/dist/templates/templateEnvelopes.d.ts +9 -0
  217. package/dist/templates/templatePackCollectionBuilder.d.ts +2 -0
  218. package/dist/templates/templatePresetCollectionBuilder.d.ts +18 -0
  219. package/dist/templates/templateQpcrTypes.d.ts +42 -0
  220. package/dist/templates/templateValidators.d.ts +13 -0
  221. package/dist/templates/timeCourseAdapters.d.ts +5 -0
  222. package/dist/templates/timeCourseBuilder.d.ts +2 -0
  223. package/dist/templates/types.d.ts +5 -250
  224. package/dist/templates/wellPlateScreenCollectionBuilder.d.ts +2 -0
  225. package/dist/templates/westernBlotAssayCollectionBuilder.d.ts +2 -0
  226. package/dist/{templates-BorLR_7p.js → templates-DtdUvJ4c.js} +3565 -3411
  227. package/dist/templates-DtdUvJ4c.js.map +1 -0
  228. package/dist/types/auto-group.d.ts +79 -9
  229. package/dist/types/componentLabTypes.d.ts +161 -0
  230. package/dist/types/componentWorkflowTypes.d.ts +150 -0
  231. package/dist/types/components.d.ts +2 -311
  232. package/dist/{useProtocolTemplates-n6AJqSqv.js → useProtocolTemplates-Bm5vyH4_.js} +1220 -454
  233. package/dist/useProtocolTemplates-Bm5vyH4_.js.map +1 -0
  234. package/package.json +1 -1
  235. package/src/__tests__/components/AppTopBar.navigation.test.ts +70 -0
  236. package/src/__tests__/components/DoseCalculatorVolumeField.test.ts +53 -0
  237. package/src/__tests__/components/PlateMapEditorToolbarInternal.test.ts +54 -0
  238. package/src/__tests__/components/PluginWorkspaceView.controls.test.ts +156 -0
  239. package/src/__tests__/components/PluginWorkspaceView.navigation.test.ts +102 -0
  240. package/src/__tests__/components/PluginWorkspaceView.shell.test.ts +41 -0
  241. package/src/__tests__/components/ProtocolStep.presentation.test.ts +31 -0
  242. package/src/__tests__/components/ProtocolStepEditor.state.test.ts +165 -0
  243. package/src/__tests__/components/ProtocolStepParameterField.test.ts +44 -0
  244. package/src/__tests__/components/ReagentList.presentation.test.ts +68 -0
  245. package/src/__tests__/components/SampleSelector.colors.test.ts +49 -0
  246. package/src/__tests__/components/SampleSelector.drag.test.ts +100 -0
  247. package/src/__tests__/components/SampleSelector.groups.test.ts +81 -0
  248. package/src/__tests__/components/SampleSelector.selection.test.ts +70 -0
  249. package/src/__tests__/components/SampleSelector.test.ts +32 -0
  250. package/src/__tests__/components/SampleSelectorSampleRow.test.ts +37 -0
  251. package/src/__tests__/components/ScheduleCalendar.test.ts +44 -0
  252. package/src/__tests__/components/SettingsModal.schema.test.ts +97 -0
  253. package/src/__tests__/components/WellPlate.colors.test.ts +28 -0
  254. package/src/__tests__/components/WellPlate.conditions.test.ts +68 -0
  255. package/src/__tests__/components/WellPlate.geometry.test.ts +54 -0
  256. package/src/__tests__/components/WellPlate.interaction.test.ts +171 -0
  257. package/src/__tests__/components/WellPlate.legend.test.ts +13 -0
  258. package/src/__tests__/components/WellPlate.rendering.test.ts +122 -0
  259. package/src/__tests__/components/WellPlate.sampleDrop.test.ts +70 -0
  260. package/src/__tests__/composables/autoGroup/classify.test.ts +107 -0
  261. package/src/__tests__/composables/autoGroup/columns.test.ts +135 -0
  262. package/src/__tests__/composables/autoGroup/compose.test.ts +227 -0
  263. package/src/__tests__/composables/autoGroup/cooccurrence.test.ts +91 -0
  264. package/src/__tests__/composables/autoGroup/fingerprint.test.ts +50 -0
  265. package/src/__tests__/composables/autoGroup/integration.test.ts +79 -0
  266. package/src/__tests__/composables/autoGroup/template.test.ts +70 -0
  267. package/src/__tests__/composables/autoGroup/tokenize.test.ts +33 -0
  268. package/src/__tests__/composables/useAutoGroup.test.ts +129 -625
  269. package/src/__tests__/composables/useAutoGroupInputSources.test.ts +107 -0
  270. package/src/__tests__/composables/useControlSchema.test.ts +23 -0
  271. package/src/__tests__/composables/useScheduleCalendarLayout.test.ts +89 -0
  272. package/src/__tests__/docs/extractDocsComponents.test.ts +142 -0
  273. package/src/__tests__/docs/extractDocsExports.test.ts +77 -0
  274. package/src/__tests__/docs/extractDocsParsing.test.ts +69 -0
  275. package/src/__tests__/docs/extractDocsTemplates.test.ts +54 -0
  276. package/src/__tests__/docs/extractDocsTheme.test.ts +89 -0
  277. package/src/__tests__/docs/frontendDocsCatalog.test.ts +1 -1
  278. package/src/__tests__/fixtures/auto-group/mixed-lc-ms-batch.txt +187 -0
  279. package/src/components/AppSidebar.vue +2 -6
  280. package/src/components/AppTopBar.navigation.ts +62 -0
  281. package/src/components/AppTopBar.vue +17 -44
  282. package/src/components/AutoGroupModal.story.vue +50 -0
  283. package/src/components/AutoGroupModal.vue +441 -158
  284. package/src/components/ControlWorkspaceView.vue +2 -6
  285. package/src/components/DoseCalculator.vue +13 -73
  286. package/src/components/DoseCalculatorVolumeField.vue +61 -0
  287. package/src/components/ExperimentTimeline.vue +6 -31
  288. package/src/components/FormBuilder.vue +2 -7
  289. package/src/components/PlateMapEditor.vue +32 -106
  290. package/src/components/PluginWorkspaceView.controls.ts +182 -0
  291. package/src/components/PluginWorkspaceView.navigation.ts +106 -0
  292. package/src/components/PluginWorkspaceView.props.ts +174 -0
  293. package/src/components/PluginWorkspaceView.shell.ts +66 -0
  294. package/src/components/PluginWorkspaceView.vue +85 -404
  295. package/src/components/ProtocolStep.presentation.ts +31 -0
  296. package/src/components/ProtocolStepEditor.state.ts +104 -0
  297. package/src/components/ProtocolStepEditor.vue +48 -179
  298. package/src/components/ProtocolStepParameterField.vue +134 -0
  299. package/src/components/ReagentList.presentation.ts +105 -0
  300. package/src/components/ReagentList.vue +16 -79
  301. package/src/components/SampleSelector.colors.ts +43 -0
  302. package/src/components/SampleSelector.drag.ts +164 -0
  303. package/src/components/SampleSelector.groups.ts +109 -0
  304. package/src/components/SampleSelector.selection.ts +103 -0
  305. package/src/components/SampleSelector.vue +82 -349
  306. package/src/components/SampleSelectorSampleRow.vue +64 -0
  307. package/src/components/ScheduleCalendar.vue +44 -199
  308. package/src/components/SettingsModal.schema.ts +71 -0
  309. package/src/components/SettingsModal.vue +16 -46
  310. package/src/components/WellPlate.colors.ts +56 -0
  311. package/src/components/WellPlate.conditions.ts +100 -0
  312. package/src/components/WellPlate.geometry.ts +91 -0
  313. package/src/components/WellPlate.interaction.ts +272 -0
  314. package/src/components/WellPlate.legend.ts +8 -0
  315. package/src/components/WellPlate.rendering.ts +105 -0
  316. package/src/components/WellPlate.sampleDrop.ts +73 -0
  317. package/src/components/WellPlate.vue +102 -550
  318. package/src/components/internal/PlateMapEditorToolbarInternal.vue +128 -0
  319. package/src/composables/autoGroup/classKey.ts +5 -0
  320. package/src/composables/autoGroup/classify.ts +205 -0
  321. package/src/composables/autoGroup/colors.ts +6 -0
  322. package/src/composables/autoGroup/columns.ts +226 -0
  323. package/src/composables/autoGroup/compose.ts +156 -0
  324. package/src/composables/autoGroup/cooccurrence.ts +46 -0
  325. package/src/composables/autoGroup/csv-shim.ts +44 -0
  326. package/src/composables/autoGroup/fingerprint.ts +49 -0
  327. package/src/composables/autoGroup/index.ts +20 -0
  328. package/src/composables/autoGroup/replicatePreGroup.ts +90 -0
  329. package/src/composables/autoGroup/template.ts +126 -0
  330. package/src/composables/autoGroup/tokenize.ts +41 -0
  331. package/src/composables/autoGroup/vocab.json +67 -0
  332. package/src/composables/autoGroupConstants.ts +4 -0
  333. package/src/composables/autoGroupGrouping.ts +148 -0
  334. package/src/composables/controlComponentBindings.ts +80 -0
  335. package/src/composables/controlSchemaAdapters.ts +196 -0
  336. package/src/composables/controlSchemaDoseDesign.ts +215 -0
  337. package/src/composables/controlSchemaFormFields.ts +61 -0
  338. package/src/composables/controlSchemaLayout.ts +59 -0
  339. package/src/composables/controlSchemaModel.ts +163 -0
  340. package/src/composables/controlSchemaNormalize.ts +101 -0
  341. package/src/composables/controlSchemaTypes.ts +364 -0
  342. package/src/composables/controlSchemaUtils.ts +36 -0
  343. package/src/composables/controlWorkspaceOptions.ts +21 -0
  344. package/src/composables/formBuilderSchema.ts +153 -0
  345. package/src/composables/pluginEndpointBuilder.ts +203 -0
  346. package/src/composables/protocolTemplateCatalog.ts +325 -0
  347. package/src/composables/useAutoGroup.ts +395 -549
  348. package/src/composables/useAutoGroupInputSources.ts +147 -0
  349. package/src/composables/useBioTemplateControls.ts +1 -1
  350. package/src/composables/useBioTemplatePresetWorkspace.ts +1 -1
  351. package/src/composables/useBioTemplateWorkspace.ts +1 -1
  352. package/src/composables/useControlSchema.ts +64 -1312
  353. package/src/composables/useControlWorkspace.ts +201 -0
  354. package/src/composables/useForm.ts +5 -187
  355. package/src/composables/useFormBuilder.ts +11 -153
  356. package/src/composables/useFormValidation.ts +154 -0
  357. package/src/composables/usePluginClient.ts +10 -193
  358. package/src/composables/useProtocolTemplates.ts +10 -328
  359. package/src/composables/useScheduleCalendarLayout.ts +287 -0
  360. package/src/styles/components/auto-group-modal.css +248 -310
  361. package/src/templates/adapters.ts +89 -930
  362. package/src/templates/assayLookups.ts +33 -0
  363. package/src/templates/assayMatrixAdapters.ts +78 -0
  364. package/src/templates/assayMatrixBuilder.ts +59 -0
  365. package/src/templates/assayNormalizers.ts +34 -0
  366. package/src/templates/builderDefaults.ts +11 -0
  367. package/src/templates/builderIdUtils.ts +20 -0
  368. package/src/templates/builderPresetControls.ts +165 -0
  369. package/src/templates/builderReadUtils.ts +57 -0
  370. package/src/templates/builders.ts +122 -2350
  371. package/src/templates/calibrationCurveAdapters.ts +59 -0
  372. package/src/templates/calibrationCurveBuilder.ts +99 -0
  373. package/src/templates/calibrationNormalizers.ts +60 -0
  374. package/src/templates/componentBindingCatalog.ts +90 -0
  375. package/src/templates/componentBindingHelpers.ts +93 -0
  376. package/src/templates/componentBindings.ts +12 -461
  377. package/src/templates/componentDoseResponseProps.ts +42 -0
  378. package/src/templates/componentGenericProps.ts +77 -0
  379. package/src/templates/componentPlateHelpers.ts +29 -0
  380. package/src/templates/componentPlateMapProps.ts +32 -0
  381. package/src/templates/componentPropsFactory.ts +21 -0
  382. package/src/templates/componentQpcrPlateProps.ts +28 -0
  383. package/src/templates/componentTargetResolvers.ts +69 -0
  384. package/src/templates/componentTemplateProps.ts +78 -0
  385. package/src/templates/controlSchemaClone.ts +32 -0
  386. package/src/templates/controlSchemaConstants.ts +11 -0
  387. package/src/templates/controlSchemaMerge.ts +40 -0
  388. package/src/templates/controlSchemaTargets.ts +87 -0
  389. package/src/templates/controlSchemaTypes.ts +20 -0
  390. package/src/templates/controlSchemas.ts +22 -704
  391. package/src/templates/defaultBioTemplateBuilder.ts +124 -0
  392. package/src/templates/doseResponseAdapters.ts +45 -0
  393. package/src/templates/doseResponseBuilder.ts +44 -0
  394. package/src/templates/elisaAssayCollectionBuilder.ts +62 -0
  395. package/src/templates/flowCytometryAssayCollectionBuilder.ts +41 -0
  396. package/src/templates/flowCytometryPanelBuilder.ts +53 -0
  397. package/src/templates/flowNormalizers.ts +58 -0
  398. package/src/templates/flowPanelAdapters.ts +58 -0
  399. package/src/templates/instrumentRunAdapterHelpers.ts +94 -0
  400. package/src/templates/instrumentRunAdapters.ts +163 -0
  401. package/src/templates/instrumentRunBuilder.ts +97 -0
  402. package/src/templates/lcmsBatchCollectionBuilder.ts +38 -0
  403. package/src/templates/plateGeometry.ts +62 -0
  404. package/src/templates/plateMapAdapters.ts +36 -0
  405. package/src/templates/plateMapBuilder.ts +43 -0
  406. package/src/templates/presetControlSchemas.ts +258 -0
  407. package/src/templates/protocolAdapters.ts +69 -0
  408. package/src/templates/protocolNormalizers.ts +37 -0
  409. package/src/templates/protocolStepsBuilder.ts +36 -0
  410. package/src/templates/qpcrAdapters.ts +104 -0
  411. package/src/templates/qpcrExpressionCollectionBuilder.ts +33 -0
  412. package/src/templates/qpcrPlateBuilder.ts +96 -0
  413. package/src/templates/reagentAdapters.ts +77 -0
  414. package/src/templates/reagentListBuilder.ts +30 -0
  415. package/src/templates/runNormalizers.ts +63 -0
  416. package/src/templates/sampleNormalizers.ts +58 -0
  417. package/src/templates/samplePrepAdapters.ts +63 -0
  418. package/src/templates/samplePrepBuilder.ts +51 -0
  419. package/src/templates/sampleSheetAdapters.ts +75 -0
  420. package/src/templates/sampleSheetBuilder.ts +23 -0
  421. package/src/templates/targetedMetabolomicsCollectionBuilder.ts +79 -0
  422. package/src/templates/targetedMetabolomicsHelpers.ts +102 -0
  423. package/src/templates/templateAdapterTypes.ts +58 -0
  424. package/src/templates/templateControlSchemas.ts +320 -0
  425. package/src/templates/templateCreateOptions.ts +208 -0
  426. package/src/templates/templateEnvelopes.ts +137 -0
  427. package/src/templates/templatePackCollectionBuilder.ts +23 -0
  428. package/src/templates/templatePresetCollectionBuilder.ts +139 -0
  429. package/src/templates/templateQpcrTypes.ts +48 -0
  430. package/src/templates/templateValidators.ts +414 -0
  431. package/src/templates/timeCourseAdapters.ts +73 -0
  432. package/src/templates/timeCourseBuilder.ts +64 -0
  433. package/src/templates/types.ts +79 -275
  434. package/src/templates/wellPlateScreenCollectionBuilder.ts +36 -0
  435. package/src/templates/westernBlotAssayCollectionBuilder.ts +68 -0
  436. package/src/types/auto-group.ts +107 -9
  437. package/src/types/componentLabTypes.ts +235 -0
  438. package/src/types/componentWorkflowTypes.ts +190 -0
  439. package/src/types/components.ts +74 -424
  440. package/dist/components-BhK-dW99.js.map +0 -1
  441. package/dist/composables-Bg7CFuNz.js.map +0 -1
  442. package/dist/templates-BorLR_7p.js.map +0 -1
  443. package/dist/useProtocolTemplates-n6AJqSqv.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ import { DEFAULT_SAMPLE_COLORS } from './builderDefaults'
2
+ import {
3
+ idFromName,
4
+ timepointId,
5
+ } from './builderIdUtils'
6
+ import {
7
+ normalizeCondition,
8
+ normalizeTimePoint,
9
+ } from './protocolNormalizers'
10
+ import { createTemplateEnvelope } from './templateEnvelopes'
11
+ import { validateTimeCourseData } from './templateValidators'
12
+ import type {
13
+ CreateTimeCourseTemplateOptions,
14
+ TimeCourseCondition,
15
+ TimeCourseTemplate,
16
+ TimeCourseTemplateData,
17
+ TimePoint,
18
+ } from './types'
19
+
20
+ export function createTimeCourseTemplate(
21
+ options: CreateTimeCourseTemplateOptions
22
+ ): TimeCourseTemplate {
23
+ const timepoints = options.timepoints.map((timepoint, index): TimePoint => {
24
+ if (typeof timepoint !== 'number') return normalizeTimePoint(timepoint)
25
+ return {
26
+ id: timepointId(timepoint, options.unit, index),
27
+ label: `${timepoint} ${options.unit}`,
28
+ value: timepoint,
29
+ unit: options.unit,
30
+ metadata: {},
31
+ }
32
+ }).sort((a, b) => a.value - b.value)
33
+
34
+ const conditions = options.conditions.map((condition, index): TimeCourseCondition => {
35
+ if (typeof condition !== 'string') return normalizeCondition(condition)
36
+ return {
37
+ id: idFromName(condition, `condition-${index + 1}`),
38
+ name: condition,
39
+ color: DEFAULT_SAMPLE_COLORS[index % DEFAULT_SAMPLE_COLORS.length],
40
+ metadata: {},
41
+ }
42
+ })
43
+
44
+ const samples = conditions.flatMap(condition =>
45
+ timepoints.flatMap(timepoint =>
46
+ Array.from({ length: options.replicates ?? 1 }, (_, index) => ({
47
+ sampleId: `${condition.id}-${timepoint.id}-r${index + 1}`,
48
+ conditionId: condition.id,
49
+ timepointId: timepoint.id,
50
+ replicate: index + 1,
51
+ metadata: {},
52
+ }))
53
+ )
54
+ )
55
+
56
+ const data: TimeCourseTemplateData = {
57
+ timepoints,
58
+ conditions,
59
+ samples,
60
+ metadata: options.metadata ?? {},
61
+ }
62
+ validateTimeCourseData(data)
63
+ return createTemplateEnvelope('time-course', data, options.metadata ?? {})
64
+ }
@@ -1,16 +1,11 @@
1
1
  import type {
2
- DataFrameColumn,
3
- PlateCondition,
4
2
  PlateMap,
5
- PlateMapEditorState,
6
3
  ProtocolStep,
7
4
  Reagent,
8
- ScheduleEvent,
9
5
  SampleType,
10
- SelectOption,
11
6
  Well,
12
- WellPlateFormat,
13
7
  } from '../types'
8
+ import type { QpcrPlateTemplate } from './templateQpcrTypes'
14
9
 
15
10
  export type TemplateKind = 'experiment-design'
16
11
  export type TemplateId =
@@ -42,10 +37,6 @@ export type TemplatePackId =
42
37
  | 'longitudinal-study'
43
38
  | 'molecular-assay'
44
39
 
45
- export interface CreateBioTemplatePackCollectionOptions {
46
- metadata?: Record<string, unknown>
47
- }
48
-
49
40
  export interface BioTemplateEnvelope<TData = Record<string, unknown>> {
50
41
  template_id: TemplateId | string
51
42
  template_version: string
@@ -410,52 +401,6 @@ export type InstrumentRunTemplate = BioTemplateEnvelope<InstrumentRunTemplateDat
410
401
  export type InstrumentMethodInput = Partial<InstrumentMethod> & { name?: string }
411
402
  export type InstrumentRunItemInput = Partial<InstrumentRunItem> & { name?: string; sampleId?: string }
412
403
 
413
- export type QpcrChemistry = 'sybr' | 'taqman' | 'probe' | 'evagreen' | 'other'
414
- export type QpcrControlKind = 'sample' | 'no-template' | 'no-rt' | 'positive' | 'standard' | 'calibrator'
415
-
416
- export interface QpcrSample {
417
- sampleId: string
418
- name?: string
419
- group?: string
420
- metadata?: Record<string, unknown>
421
- }
422
-
423
- export interface QpcrTarget {
424
- id: string
425
- name: string
426
- assayId?: string
427
- reporter?: string
428
- quencher?: string
429
- ampliconBp?: number
430
- metadata?: Record<string, unknown>
431
- }
432
-
433
- export interface QpcrReaction {
434
- id: string
435
- wellId: string
436
- sampleId?: string
437
- targetId: string
438
- replicate: number
439
- controlKind: QpcrControlKind
440
- cq?: number | null
441
- quantity?: number | null
442
- flags: string[]
443
- metadata?: Record<string, unknown>
444
- }
445
-
446
- export interface QpcrPlateTemplateData {
447
- plateId: string
448
- format: WellPlateFormat
449
- samples: QpcrSample[]
450
- targets: QpcrTarget[]
451
- reactions: QpcrReaction[]
452
- instrument?: string
453
- chemistry: QpcrChemistry
454
- metadata: Record<string, unknown>
455
- }
456
-
457
- export type QpcrPlateTemplate = BioTemplateEnvelope<QpcrPlateTemplateData>
458
-
459
404
  export type DataFrameTemplate =
460
405
  | SampleSheetTemplate
461
406
  | SamplePrepTemplate
@@ -468,222 +413,81 @@ export type DataFrameTemplate =
468
413
  | InstrumentRunTemplate
469
414
  | QpcrPlateTemplate
470
415
 
471
- export interface CreatePlateMapTemplateOptions {
472
- name?: string
473
- id?: string
474
- format?: WellPlateFormat
475
- samples?: Array<string | TemplateSample>
476
- metadata?: Record<string, unknown>
477
- }
478
-
479
- export interface CreateSampleSheetTemplateOptions {
480
- samples: SampleRecord[]
481
- columns?: SampleColumn[]
482
- groups?: SampleGroupDefinition[]
483
- metadata?: Record<string, unknown>
484
- }
485
-
486
- export interface CreateSamplePrepTemplateOptions {
487
- samples: Array<string | SamplePrepStepInput>
488
- prepType?: SamplePrepStepType
489
- protocolName?: string
490
- volumeUnit?: string
491
- inputVolume?: number
492
- outputVolume?: number
493
- metadata?: Record<string, unknown>
494
- }
495
-
496
- export interface CreateDoseResponseTemplateOptions {
497
- compounds: Record<string, number[]> | CompoundDoseSeries[]
498
- unit: string
499
- replicates?: number
500
- controls?: ControlDefinition[]
501
- layout?: PlateMapTemplate | PlateMapTemplateData
502
- metadata?: Record<string, unknown>
503
- }
504
-
505
- export interface CreateCalibrationCurveTemplateOptions {
506
- concentrations: Array<number | CalibrationPointInput>
507
- analyte?: string
508
- unit?: string
509
- responseUnit?: string
510
- model?: CalibrationModel
511
- includeBlank?: boolean
512
- includeQc?: boolean
513
- acceptance?: CalibrationAcceptanceInput
514
- metadata?: Record<string, unknown>
515
- }
516
-
517
- export interface CreateTimeCourseTemplateOptions {
518
- timepoints: Array<number | TimePoint>
519
- unit: TimeUnit
520
- conditions: Array<string | TimeCourseCondition>
521
- replicates?: number
522
- metadata?: Record<string, unknown>
523
- }
524
-
525
- export interface CreateAssayMatrixTemplateOptions {
526
- samples: Array<string | AssaySample>
527
- features: Array<string | AssayFeature>
528
- values?: Record<string, Record<string, number | null | undefined>>
529
- metadata?: Record<string, unknown>
530
- }
531
-
532
- export interface CreateProtocolStepsTemplateOptions {
533
- steps: Array<string | (Partial<ProtocolStepRecord> & { name: string })>
534
- metadata?: Record<string, unknown>
535
- }
536
-
537
- export interface CreateReagentListTemplateOptions {
538
- reagents: Array<string | ReagentTemplateInput>
539
- metadata?: Record<string, unknown>
540
- }
541
-
542
- export interface CreateFlowCytometryPanelTemplateOptions {
543
- markers: Array<string | (Partial<FlowPanelMarker> & { marker: string })>
544
- controls?: Array<string | (Partial<FlowPanelControl> & { name: string })>
545
- instrument?: string
546
- includeDefaultControls?: boolean
547
- metadata?: Record<string, unknown>
548
- }
549
-
550
- export interface CreateInstrumentRunTemplateOptions {
551
- items: Array<string | InstrumentRunItemInput>
552
- method?: string | InstrumentMethodInput
553
- instrument?: string
554
- includeBlanks?: boolean
555
- includeQc?: boolean
556
- metadata?: Record<string, unknown>
557
- }
558
-
559
- export interface CreateQpcrPlateTemplateOptions {
560
- samples: Array<string | QpcrSample>
561
- targets: Array<string | QpcrTarget>
562
- format?: WellPlateFormat
563
- replicates?: number
564
- includeNoTemplateControls?: boolean
565
- instrument?: string
566
- chemistry?: QpcrChemistry
567
- metadata?: Record<string, unknown>
568
- }
569
-
570
- export interface CreateWellPlateScreenCollectionOptions {
571
- samples?: Array<string | SampleRecord>
572
- compounds?: Record<string, number[]> | CompoundDoseSeries[]
573
- unit?: string
574
- replicates?: number
575
- plateName?: string
576
- plateFormat?: WellPlateFormat
577
- metadata?: Record<string, unknown>
578
- }
579
-
580
- export interface CreateQpcrExpressionCollectionOptions {
581
- samples?: Array<string | SampleRecord>
582
- targets?: Array<string | QpcrTarget>
583
- chemistry?: QpcrChemistry
584
- includeNoTemplateControls?: boolean
585
- format?: WellPlateFormat
586
- replicates?: number
587
- instrument?: string
588
- metadata?: Record<string, unknown>
589
- }
590
-
591
- export interface CreateLcmsBatchCollectionOptions {
592
- samples?: Array<string | SampleRecord>
593
- features?: Array<string | AssayFeature>
594
- instrument?: string
595
- method?: string | InstrumentMethodInput
596
- includeQc?: boolean
597
- metadata?: Record<string, unknown>
598
- }
599
-
600
- export interface CreateTargetedMetabolomicsCollectionOptions {
601
- samples?: Array<string | SampleRecord>
602
- metabolites?: Array<string | AssayFeature>
603
- internalStandards?: Array<string | ReagentTemplateInput>
604
- standardConcentrations?: number[]
605
- concentrationUnit?: string
606
- responseUnit?: string
607
- calibrationAnalyte?: string
608
- instrument?: string
609
- method?: string | InstrumentMethodInput
610
- prepType?: SamplePrepStepType
611
- outputVolume?: number
612
- includeQc?: boolean
613
- metadata?: Record<string, unknown>
614
- }
615
-
616
- export interface CreateElisaAssayCollectionOptions {
617
- samples?: Array<string | SampleRecord>
618
- analyte?: string
619
- standardConcentrations?: number[]
620
- unit?: string
621
- responseUnit?: string
622
- plateName?: string
623
- plateFormat?: WellPlateFormat
624
- metadata?: Record<string, unknown>
625
- }
626
-
627
- export interface CreateFlowCytometryAssayCollectionOptions {
628
- samples?: Array<string | SampleRecord>
629
- markers?: CreateFlowCytometryPanelTemplateOptions['markers']
630
- features?: Array<string | AssayFeature>
631
- instrument?: string
632
- includeDefaultControls?: boolean
633
- metadata?: Record<string, unknown>
634
- }
635
-
636
- export interface CreateWesternBlotAssayCollectionOptions {
637
- samples?: Array<string | SampleRecord>
638
- targets?: Array<string | AssayFeature>
639
- loadingControl?: string
640
- metadata?: Record<string, unknown>
641
- }
642
-
643
- export type PlateMapEditorAdapterResult = PlateMapEditorState
644
- export type WellMapAdapterResult = Record<string, Well>
645
- export type SampleRowsAdapterResult = Array<Record<string, unknown>>
646
- export type SampleColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
647
- export interface DataFrameAdapterResult {
648
- data: Array<Record<string, unknown>>
649
- columns: DataFrameColumn<Record<string, unknown>>[]
650
- rowKey?: string
651
- }
652
- export type SampleDataFrameAdapterResult = DataFrameAdapterResult
653
- export type SampleOptionsAdapterResult = SelectOption<string>[]
654
- export type SamplePrepRowsAdapterResult = Array<Record<string, unknown>>
655
- export type SamplePrepColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
656
- export type SamplePrepDataFrameAdapterResult = DataFrameAdapterResult
657
- export type DoseConditionsAdapterResult = PlateCondition[]
658
- export type CalibrationCurveRowsAdapterResult = Array<Record<string, unknown>>
659
- export type CalibrationCurveColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
660
- export type CalibrationCurveDataFrameAdapterResult = DataFrameAdapterResult
661
- export type TimeCourseRowsAdapterResult = Array<Record<string, unknown>>
662
- export type TimeCourseColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
663
- export type TimeCourseDataFrameAdapterResult = DataFrameAdapterResult
664
- export type TimeCourseStepsAdapterResult = ProtocolStep[]
665
- export type ProtocolStepsAdapterResult = ProtocolStep[]
666
- export type ProtocolRowsAdapterResult = Array<Record<string, unknown>>
667
- export type ProtocolColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
668
- export type ProtocolDataFrameAdapterResult = DataFrameAdapterResult
669
- export type AssayMatrixRowsAdapterResult = Array<Record<string, unknown>>
670
- export type AssayMatrixColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
671
- export type AssayMatrixDataFrameAdapterResult = DataFrameAdapterResult
672
- export type AssayMatrixSampleOptionsAdapterResult = SelectOption<string>[]
673
- export type ReagentListItemsAdapterResult = Reagent[]
674
- export type ReagentRowsAdapterResult = Array<Record<string, unknown>>
675
- export type ReagentColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
676
- export type ReagentDataFrameAdapterResult = DataFrameAdapterResult
677
- export type FlowPanelRowsAdapterResult = Array<Record<string, unknown>>
678
- export type FlowPanelColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
679
- export type FlowPanelDataFrameAdapterResult = DataFrameAdapterResult
680
- export type InstrumentRunRowsAdapterResult = Array<Record<string, unknown>>
681
- export type InstrumentRunColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
682
- export type InstrumentRunDataFrameAdapterResult = DataFrameAdapterResult
683
- export type InstrumentRunStepsAdapterResult = ProtocolStep[]
684
- export type InstrumentRunScheduleEventsAdapterResult = ScheduleEvent[]
685
- export type QpcrRowsAdapterResult = Array<Record<string, unknown>>
686
- export type QpcrColumnsAdapterResult = DataFrameColumn<Record<string, unknown>>[]
687
- export type QpcrDataFrameAdapterResult = DataFrameAdapterResult
688
- export type QpcrWellMapAdapterResult = Record<string, Well>
689
- export type TemplateDataFrameAdapterResult = DataFrameAdapterResult
416
+ export type {
417
+ QpcrChemistry,
418
+ QpcrControlKind,
419
+ QpcrPlateTemplate,
420
+ QpcrPlateTemplateData,
421
+ QpcrReaction,
422
+ QpcrSample,
423
+ QpcrTarget,
424
+ } from './templateQpcrTypes'
425
+
426
+ export type {
427
+ CreateAssayMatrixTemplateOptions,
428
+ CreateBioTemplatePackCollectionOptions,
429
+ CreateCalibrationCurveTemplateOptions,
430
+ CreateDoseResponseTemplateOptions,
431
+ CreateElisaAssayCollectionOptions,
432
+ CreateFlowCytometryAssayCollectionOptions,
433
+ CreateFlowCytometryPanelTemplateOptions,
434
+ CreateInstrumentRunTemplateOptions,
435
+ CreateLcmsBatchCollectionOptions,
436
+ CreatePlateMapTemplateOptions,
437
+ CreateProtocolStepsTemplateOptions,
438
+ CreateQpcrExpressionCollectionOptions,
439
+ CreateQpcrPlateTemplateOptions,
440
+ CreateReagentListTemplateOptions,
441
+ CreateSamplePrepTemplateOptions,
442
+ CreateSampleSheetTemplateOptions,
443
+ CreateTargetedMetabolomicsCollectionOptions,
444
+ CreateTimeCourseTemplateOptions,
445
+ CreateWellPlateScreenCollectionOptions,
446
+ CreateWesternBlotAssayCollectionOptions,
447
+ } from './templateCreateOptions'
448
+
449
+ export type {
450
+ AssayMatrixColumnsAdapterResult,
451
+ AssayMatrixDataFrameAdapterResult,
452
+ AssayMatrixRowsAdapterResult,
453
+ AssayMatrixSampleOptionsAdapterResult,
454
+ CalibrationCurveColumnsAdapterResult,
455
+ CalibrationCurveDataFrameAdapterResult,
456
+ CalibrationCurveRowsAdapterResult,
457
+ DataFrameAdapterResult,
458
+ DoseConditionsAdapterResult,
459
+ FlowPanelColumnsAdapterResult,
460
+ FlowPanelDataFrameAdapterResult,
461
+ FlowPanelRowsAdapterResult,
462
+ InstrumentRunColumnsAdapterResult,
463
+ InstrumentRunDataFrameAdapterResult,
464
+ InstrumentRunRowsAdapterResult,
465
+ InstrumentRunScheduleEventsAdapterResult,
466
+ InstrumentRunStepsAdapterResult,
467
+ PlateMapEditorAdapterResult,
468
+ ProtocolColumnsAdapterResult,
469
+ ProtocolDataFrameAdapterResult,
470
+ ProtocolRowsAdapterResult,
471
+ ProtocolStepsAdapterResult,
472
+ QpcrColumnsAdapterResult,
473
+ QpcrDataFrameAdapterResult,
474
+ QpcrRowsAdapterResult,
475
+ QpcrWellMapAdapterResult,
476
+ ReagentColumnsAdapterResult,
477
+ ReagentDataFrameAdapterResult,
478
+ ReagentListItemsAdapterResult,
479
+ ReagentRowsAdapterResult,
480
+ SampleColumnsAdapterResult,
481
+ SampleDataFrameAdapterResult,
482
+ SampleOptionsAdapterResult,
483
+ SamplePrepColumnsAdapterResult,
484
+ SamplePrepDataFrameAdapterResult,
485
+ SamplePrepRowsAdapterResult,
486
+ SampleRowsAdapterResult,
487
+ TemplateDataFrameAdapterResult,
488
+ TimeCourseColumnsAdapterResult,
489
+ TimeCourseDataFrameAdapterResult,
490
+ TimeCourseRowsAdapterResult,
491
+ TimeCourseStepsAdapterResult,
492
+ WellMapAdapterResult,
493
+ } from './templateAdapterTypes'
@@ -0,0 +1,36 @@
1
+ import { DEFAULT_SAMPLE_COLORS } from './builderDefaults'
2
+ import { createDoseResponseTemplate } from './doseResponseBuilder'
3
+ import { createPlateMapTemplate } from './plateMapBuilder'
4
+ import { createSampleSheetTemplate } from './sampleSheetBuilder'
5
+ import { presetSampleRecords } from './sampleNormalizers'
6
+ import { createTemplateCollection } from './templateEnvelopes'
7
+ import type {
8
+ CreateWellPlateScreenCollectionOptions,
9
+ TemplateCollectionEnvelope,
10
+ } from './types'
11
+
12
+ export function createWellPlateScreenCollection(
13
+ options: CreateWellPlateScreenCollectionOptions = {}
14
+ ): TemplateCollectionEnvelope {
15
+ const sampleRecords = presetSampleRecords(options.samples ?? ['Control', 'Treatment'])
16
+ const plate = createPlateMapTemplate({
17
+ name: options.plateName ?? 'Screen plate',
18
+ format: options.plateFormat ?? 96,
19
+ samples: sampleRecords.map((sample, index) => ({
20
+ id: sample.sampleId,
21
+ name: sample.name ?? sample.sampleId,
22
+ color: DEFAULT_SAMPLE_COLORS[index % DEFAULT_SAMPLE_COLORS.length],
23
+ })),
24
+ })
25
+ const sampleSheet = createSampleSheetTemplate({ samples: sampleRecords })
26
+ const doseResponse = createDoseResponseTemplate({
27
+ compounds: options.compounds ?? { 'Compound A': [10, 1, 0.1] },
28
+ unit: options.unit ?? 'uM',
29
+ replicates: options.replicates ?? 3,
30
+ layout: plate,
31
+ })
32
+ return createTemplateCollection(
33
+ [plate, sampleSheet, doseResponse],
34
+ { preset: 'wellplate-screen', ...(options.metadata ?? {}) }
35
+ )
36
+ }
@@ -0,0 +1,68 @@
1
+ import { createAssayMatrixTemplate } from './assayMatrixBuilder'
2
+ import { idFromName } from './builderIdUtils'
3
+ import { createProtocolStepsTemplate } from './protocolStepsBuilder'
4
+ import { createReagentListTemplate } from './reagentListBuilder'
5
+ import { createSampleSheetTemplate } from './sampleSheetBuilder'
6
+ import { presetSampleRecords } from './sampleNormalizers'
7
+ import { createTemplateCollection } from './templateEnvelopes'
8
+ import type {
9
+ CreateWesternBlotAssayCollectionOptions,
10
+ TemplateCollectionEnvelope,
11
+ } from './types'
12
+
13
+ export function createWesternBlotAssayCollection(
14
+ options: CreateWesternBlotAssayCollectionOptions = {}
15
+ ): TemplateCollectionEnvelope {
16
+ const sampleRecords = presetSampleRecords(options.samples ?? ['Control', 'Treatment'])
17
+ const loadingControl = options.loadingControl ?? 'ACTB'
18
+ const targetNames = (options.targets ?? ['Target protein']).map(target =>
19
+ typeof target === 'string' ? target : target.name ?? target.id
20
+ )
21
+ const featureNames = loadingControl && !targetNames.includes(loadingControl)
22
+ ? [...targetNames, loadingControl]
23
+ : targetNames
24
+ const sampleSheet = createSampleSheetTemplate({ samples: sampleRecords })
25
+ const reagentList = createReagentListTemplate({
26
+ reagents: [
27
+ { id: 'primary-antibody', name: 'Primary antibody', kind: 'antibody', storageCondition: '4C' },
28
+ { id: 'secondary-antibody', name: 'Secondary antibody', kind: 'antibody', storageCondition: '4C' },
29
+ { id: 'lysis-buffer', name: 'Lysis buffer', kind: 'buffer', storageCondition: '4C' },
30
+ { id: 'blocking-buffer', name: 'Blocking buffer', kind: 'buffer', storageCondition: '4C' },
31
+ { id: 'wash-buffer', name: 'TBST wash buffer', kind: 'buffer', storageCondition: 'RT' },
32
+ { id: 'substrate', name: 'Detection substrate', kind: 'reagent', storageCondition: '4C' },
33
+ ],
34
+ metadata: { assay: 'western-blot' },
35
+ })
36
+ const protocol = createProtocolStepsTemplate({
37
+ steps: [
38
+ { id: 'lyse-samples', type: 'addition', name: 'Lyse samples', duration: 30 },
39
+ { id: 'run-gel', type: 'custom', name: 'Run SDS-PAGE', duration: 90 },
40
+ { id: 'transfer', type: 'transfer', name: 'Transfer to membrane', duration: 60 },
41
+ { id: 'block', type: 'incubation', name: 'Block membrane', duration: 60 },
42
+ { id: 'primary-antibody', type: 'incubation', name: 'Primary antibody incubation', duration: 960 },
43
+ { id: 'secondary-antibody', type: 'incubation', name: 'Secondary antibody incubation', duration: 60 },
44
+ { id: 'detect', type: 'measurement', name: 'Detect and quantify bands', duration: 30 },
45
+ ],
46
+ metadata: { assay: 'western-blot' },
47
+ })
48
+ const assayMatrix = createAssayMatrixTemplate({
49
+ samples: sampleRecords.map(sample => ({
50
+ sampleId: sample.sampleId,
51
+ name: sample.name,
52
+ group: sample.group,
53
+ metadata: sample.metadata ?? {},
54
+ })),
55
+ features: featureNames.map((feature, index) => ({
56
+ id: idFromName(feature, `feature-${index + 1}`),
57
+ name: feature,
58
+ type: 'protein',
59
+ unit: 'relative intensity',
60
+ metadata: { loadingControl: feature === loadingControl },
61
+ })),
62
+ metadata: { assay: 'western-blot', loadingControl },
63
+ })
64
+ return createTemplateCollection(
65
+ [sampleSheet, reagentList, protocol, assayMatrix],
66
+ { preset: 'western-blot-assay', ...(options.metadata ?? {}) }
67
+ )
68
+ }