@teselagen/ove 0.7.28 → 0.7.29

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 (285) hide show
  1. package/index.cjs.js +1055 -996
  2. package/index.es.js +1055 -996
  3. package/index.umd.js +189036 -0
  4. package/ove.css +1 -1
  5. package/package.json +2 -6
  6. package/src/helperComponents/PropertiesDialog/TranslationProperties.js +1 -1
  7. package/AASliver.js +0 -187
  8. package/AddLaddersDialog.js +0 -82
  9. package/AdditionalCutsiteInfoDialog.js +0 -599
  10. package/AlignmentVisibilityTool.js +0 -105
  11. package/AnnotationContainerHolder.js +0 -20
  12. package/AnnotationPositioner.js +0 -27
  13. package/AutoAnnotate.js +0 -501
  14. package/AutoAnnotateBpMatchingDialog.js +0 -208
  15. package/Axis.js +0 -151
  16. package/AxisNumbers.js +0 -35
  17. package/Browser.js +0 -106
  18. package/Caret.js +0 -63
  19. package/Chromatogram.js +0 -293
  20. package/CircularDnaSequence.js +0 -73
  21. package/CircularZoomMinimap.js +0 -16
  22. package/ColorPicker.js +0 -30
  23. package/CommandHotkeyHandler.js +0 -44
  24. package/CreateAnnotationsPage.js +0 -98
  25. package/Cutsite.js +0 -18
  26. package/CutsiteProperties.js +0 -176
  27. package/CutsiteSelectionLayers.js +0 -47
  28. package/Cutsites.js +0 -271
  29. package/DeletionLayer.js +0 -28
  30. package/DropHandler.css +0 -21
  31. package/DropHandler.js +0 -64
  32. package/EditCaretPosition.js +0 -234
  33. package/EditTrackNameDialog.js +0 -30
  34. package/Feature.js +0 -83
  35. package/FeatureProperties.js +0 -6
  36. package/FillWindow.js +0 -47
  37. package/GenbankView.js +0 -74
  38. package/GeneralProperties.js +0 -117
  39. package/GenericAnnotationProperties.js +0 -406
  40. package/GlobalDialog.js +0 -73
  41. package/GlobalDialogUtils.js +0 -110
  42. package/GoToDialog.js +0 -25
  43. package/HorizontalPanelDragHandle.js +0 -35
  44. package/Keyboard.js +0 -85
  45. package/Labels.js +0 -327
  46. package/Ladder.css +0 -20
  47. package/Ladder.js +0 -303
  48. package/MeltingTemp.js +0 -85
  49. package/Menlo.ttf +0 -0
  50. package/Minimap.js +0 -515
  51. package/Mismatches.js +0 -134
  52. package/Monaco.ttf +0 -0
  53. package/MultipleSeqsDetectedOnImportDialog.js +0 -74
  54. package/Orf.js +0 -109
  55. package/OrfProperties.js +0 -117
  56. package/Orfs.js +0 -35
  57. package/PCRTool.js +0 -179
  58. package/PairwiseAlignmentView.js +0 -68
  59. package/Part.js +0 -34
  60. package/PartProperties.js +0 -9
  61. package/PassThrough.js +0 -3
  62. package/PerformantSelectionLayer.js +0 -32
  63. package/PinchHelper.js +0 -24
  64. package/PointedAnnotation.js +0 -347
  65. package/PositionAnnotationOnCircle.js +0 -26
  66. package/Primer.js +0 -41
  67. package/PrimerProperties.js +0 -19
  68. package/ReflexContainer.js +0 -802
  69. package/ReflexElement.js +0 -160
  70. package/ReflexEvents.js +0 -77
  71. package/ReflexSplitter.js +0 -205
  72. package/RenameSequenceDialog.js +0 -7
  73. package/RotateCircularViewSlider.js +0 -93
  74. package/SelectDialog.js +0 -150
  75. package/SequenceName.js +0 -15
  76. package/SimpleCircularOrLinearView.js +0 -381
  77. package/SimpleOligoPreview.js +0 -39
  78. package/SingleEnzymeCutsiteInfo.js +0 -139
  79. package/ToolbarItem.js +0 -192
  80. package/Translation.js +0 -198
  81. package/TranslationProperties.js +0 -149
  82. package/UncontrolledSliderWithPlusMinusBtns.css +0 -5
  83. package/UncontrolledSliderWithPlusMinusBtns.js +0 -134
  84. package/VeTopRightContainer.js +0 -12
  85. package/ZoomCircularViewSlider.js +0 -62
  86. package/ZoomLinearView.js +0 -47
  87. package/addAlignment.js +0 -6
  88. package/addMetaToActionCreators.js +0 -12
  89. package/addWrappedAddons.js +0 -20
  90. package/alignmentTool.js +0 -503
  91. package/alignments.js +0 -379
  92. package/annotationLabelVisibility.js +0 -2
  93. package/annotationSearchSelector.js +0 -24
  94. package/annotationTypes.js +0 -35
  95. package/annotationVisibility.js +0 -196
  96. package/annotationsToSupport.js +0 -104
  97. package/arrayToObjWithIds.js +0 -17
  98. package/arrayUtils.js +0 -19
  99. package/array_move.js +0 -10
  100. package/calculateTickMarkPositionsForGivenRange.js +0 -47
  101. package/caretPosition.js +0 -27
  102. package/cdsFeaturesSelector.js +0 -9
  103. package/charWidth.js +0 -22
  104. package/circular.js +0 -19
  105. package/circularSelector.js +0 -4
  106. package/clickAndDragUtils.js +0 -576
  107. package/coerceInitialValue.js +0 -7
  108. package/combineReducersDontIgnoreKeys.js +0 -12
  109. package/commandUtils.js +0 -20
  110. package/constants.js +0 -2
  111. package/copyOptions.js +0 -34
  112. package/createFragmentLines.js +0 -120
  113. package/createMergedDefaultStateReducer.js +0 -30
  114. package/createMetaAction.js +0 -12
  115. package/createSequenceInputPopup.js +0 -290
  116. package/createSequenceInputPopupStyle.css +0 -87
  117. package/createSimpleDialog.js +0 -89
  118. package/createYourOwnEnzyme.js +0 -39
  119. package/cutsiteLabelColorSelector.js +0 -6
  120. package/cutsiteTool.js +0 -88
  121. package/cutsitesByRangeSelector.js +0 -5
  122. package/cutsitesSelector.js +0 -61
  123. package/darkmode.css +0 -98
  124. package/defaultConfig.js +0 -150
  125. package/deletionLayers.js +0 -36
  126. package/description.js +0 -21
  127. package/digestTool.js +0 -34
  128. package/dnaToColor.js +0 -17
  129. package/downloadTool.js +0 -39
  130. package/draggableClassnames.js +0 -5
  131. package/drawAnnotations.js +0 -440
  132. package/drawDirectedPiePiece.js +0 -142
  133. package/editTool.js +0 -49
  134. package/editorSelector.js +0 -2
  135. package/editorUtils.js +0 -205
  136. package/estimateRowHeight.js +0 -184
  137. package/featureLengthsToHide.js +0 -27
  138. package/featureTool.js +0 -34
  139. package/features.js +0 -19
  140. package/featuresSelector.js +0 -8
  141. package/filteredCutsitesSelector.js +0 -136
  142. package/filteredFeaturesSelector.js +0 -32
  143. package/filteredPartsSelector.js +0 -57
  144. package/filteredPrimersSelector.js +0 -27
  145. package/filteredRestrictionEnzymesSelector.js +0 -1
  146. package/find.png +0 -0
  147. package/findTool.js +0 -79
  148. package/findToolConstants.js +0 -1
  149. package/frameTranslations.js +0 -52
  150. package/fullscreen.png +0 -0
  151. package/getAdditionalEnzymesSelector.js +0 -46
  152. package/getAngleForPositionMidpoint.js +0 -3
  153. package/getAnnotationClassnames.js +0 -12
  154. package/getAnnotationNameAndStartStopString.js +0 -61
  155. package/getBpsPerRow.js +0 -19
  156. package/getCutsiteLabelHeights.js +0 -56
  157. package/getGapMap.js +0 -12
  158. package/getGaps.js +0 -27
  159. package/getInternalLabel.js +0 -40
  160. package/getOveHotkeyDefs.js +0 -12
  161. package/getPairwiseOverviewLinearViewOptions.js +0 -38
  162. package/getRangeAnglesSpecial.js +0 -12
  163. package/getStructuredBases.js +0 -97
  164. package/getTrackFromEvent.js +0 -25
  165. package/getVisibleStartEnd.js +0 -7
  166. package/getXStartAndWidthFromNonCircularRange.js +0 -12
  167. package/getXStartAndWidthOfRangeWrtRow.js +0 -27
  168. package/getXStartAndWidthOfRowAnnotation.js +0 -19
  169. package/getYOffset.js +0 -15
  170. package/hoveredAnnotation.js +0 -24
  171. package/importTool.js +0 -27
  172. package/index.js +0 -71
  173. package/inlineFindTool.js +0 -38
  174. package/isElementInViewport.js +0 -29
  175. package/isEnzymeFilterAndSelector.js +0 -1
  176. package/isTargetWithinEl.js +0 -6
  177. package/labelLineIntensity.js +0 -25
  178. package/labelSize.js +0 -23
  179. package/ladderDefaults.js +0 -25
  180. package/lastSavedId.js +0 -20
  181. package/lineageLines.js +0 -11
  182. package/linear.png +0 -0
  183. package/makeStore.js +0 -34
  184. package/massageTickSpacing.js +0 -19
  185. package/materiallyAvailable.js +0 -19
  186. package/middleware.js +0 -112
  187. package/minimumOrfSize.js +0 -24
  188. package/minimumOrfSizeSelector.js +0 -2
  189. package/modalActions.js +0 -3
  190. package/moveCaret.js +0 -58
  191. package/name.js +0 -19
  192. package/normalizeAngle.js +0 -3
  193. package/normalizeAngleRange.js +0 -9
  194. package/oligoTool.js +0 -30
  195. package/onlyUpdateForKeysDeep.js +0 -31
  196. package/orfFrameToColorMap.js +0 -10
  197. package/orfTool.js +0 -136
  198. package/orfsSelector.js +0 -15
  199. package/panelsShown.js +0 -294
  200. package/partLengthsToHide.js +0 -23
  201. package/partOverhangs.js +0 -6
  202. package/partTagSearch.js +0 -69
  203. package/partTool.js +0 -45
  204. package/parts.js +0 -19
  205. package/partsSelector.js +0 -8
  206. package/pie.png +0 -0
  207. package/polarToSpecialCartesian.js +0 -7
  208. package/positionCutsites.js +0 -6
  209. package/prepareRowData.js +0 -64
  210. package/primerBases.js +0 -221
  211. package/primerLengthsToHide.js +0 -27
  212. package/primers.js +0 -19
  213. package/primersSelector.js +0 -8
  214. package/print.png +0 -0
  215. package/printTool.js +0 -31
  216. package/propertiesTool.js +0 -40
  217. package/proteinUtils.js +0 -3
  218. package/pureNoFunc.js +0 -18
  219. package/readOnly.js +0 -25
  220. package/redoTool.js +0 -30
  221. package/reflex-styles.css +0 -128
  222. package/reflex-styles.css.map +0 -9
  223. package/relaxLabelAngles.js +0 -157
  224. package/relaxLabels_DEPRECATED.js +0 -105
  225. package/replacementLayers.js +0 -36
  226. package/restrictionEnzymes.js +0 -52
  227. package/restrictionEnzymesSelector.js +0 -34
  228. package/rowviewContants.js +0 -3
  229. package/ruler.css +0 -89
  230. package/save.png +0 -0
  231. package/saveTool.js +0 -44
  232. package/searchLayersSelector.js +0 -71
  233. package/selectedAnnotations.js +0 -89
  234. package/selectedAnnotationsSelector.js +0 -1
  235. package/selectedCutsitesSelector.js +0 -21
  236. package/selectedPartTags.js +0 -21
  237. package/selectionLayer.js +0 -25
  238. package/sequence.js +0 -12
  239. package/sequenceDataHistory.js +0 -43
  240. package/sequenceDataSelector.js +0 -2
  241. package/sequenceLengthSelector.js +0 -5
  242. package/sequenceSelector.js +0 -4
  243. package/sharedActionCreators.js +0 -0
  244. package/shouldFlipText.js +0 -4
  245. package/shouldRerender.js +0 -27
  246. package/showFileDialog.js +0 -25
  247. package/showGCContent.js +0 -23
  248. package/show_cut_sites.png +0 -0
  249. package/show_features.png +0 -0
  250. package/show_orfs.png +0 -0
  251. package/show_primers.png +0 -0
  252. package/simpleDialog.css +0 -13
  253. package/specialCutsiteFilterOptions.js +0 -22
  254. package/style.css +0 -10
  255. package/tagsToBoldSelector.js +0 -2
  256. package/toggle_views.svg +0 -1
  257. package/toolBar.js +0 -23
  258. package/translationSearchMatchesSelector.js +0 -14
  259. package/translations.js +0 -20
  260. package/translationsRawSelector.js +0 -8
  261. package/translationsSelector.js +0 -137
  262. package/typeField.js +0 -24
  263. package/undoTool.js +0 -30
  264. package/updateEditor.js +0 -200
  265. package/updateLabelsForInViewFeatures.js +0 -55
  266. package/updateLabelsForInViewFeaturesCircView.js +0 -41
  267. package/updateTrackHelper.js +0 -58
  268. package/uppercaseSequenceMapFont.js +0 -25
  269. package/upsertDeleteActionGenerator.js +0 -31
  270. package/useAAColorType.js +0 -8
  271. package/useAdditionalOrfStartCodons.js +0 -24
  272. package/useAnnotationLimits.js +0 -42
  273. package/useChromatogramPrefs.js +0 -31
  274. package/useFormValue.js +0 -7
  275. package/useLadders.js +0 -6
  276. package/useMeltingTemp.js +0 -7
  277. package/useTmType.js +0 -10
  278. package/userDefinedHandlersAndOpts.js +0 -61
  279. package/utils.js +0 -37
  280. package/versionHistory.js +0 -26
  281. package/versionHistoryTool.js +0 -21
  282. package/viewSubmenu.js +0 -479
  283. package/visibilityTool.js +0 -39
  284. package/withHover.js +0 -113
  285. package/withRestrictionEnzymes.js +0 -15
package/Ladder.js DELETED
@@ -1,303 +0,0 @@
1
- /* eslint-disable react/jsx-no-bind */
2
- import React, { useState } from "react";
3
- import { showConfirmationDialog, TgSelect } from "@teselagen/ui";
4
-
5
- import "./Ladder.css";
6
- import { Button, Tooltip } from "@blueprintjs/core";
7
- import { showDialog } from "../GlobalDialogUtils";
8
- import { AddLaddersDialog } from "./AddLaddersDialog";
9
- import { ladderDefaults } from "./ladderDefaults";
10
- import useLadders from "../utils/useLadders";
11
- import { map } from "lodash-es";
12
- import { filter } from "lodash-es";
13
-
14
- export default function Ladder({
15
- // gelDigestEnzymes = [],
16
- boxHeight = 550,
17
- lanes = [],
18
- digestLaneRightClicked,
19
- selectedFragment,
20
- ladders = ladderDefaults
21
- }) {
22
- const [additionalLadders, setLadders] = useLadders();
23
- const laddersToUse = [
24
- ...ladders,
25
- ...map(additionalLadders, (l, i) => ({
26
- ...l,
27
- label: (
28
- <div
29
- key={i}
30
- style={{
31
- display: "flex",
32
- alignItems: "center",
33
- justifyContent: "space-between",
34
- width: "100%"
35
- }}
36
- >
37
- {l.label}{" "}
38
- <Button
39
- onClick={async e => {
40
- e.preventDefault();
41
- e.stopPropagation();
42
- const confirm = await showConfirmationDialog({
43
- text: "Are you sure you want to delete this custom ladder? You cannot undo this action",
44
- intent: "danger",
45
- confirmButtonText: "Delete",
46
- cancelButtonText: "Cancel",
47
- canEscapeKeyCancel: true
48
- });
49
- if (!confirm) {
50
- return;
51
- }
52
- setSelectedLadder(ladders[0].value);
53
- setLadders(
54
- filter(additionalLadders, lad => lad.value !== l.value)
55
- );
56
- }}
57
- intent="danger"
58
- small
59
- minimal
60
- icon="trash"
61
- ></Button>
62
- </div>
63
- )
64
- }))
65
- ];
66
- const [highlightedFragment, setHighlightedFragment] = useState();
67
- const [selectedLadder, setSelectedLadder] = useState(ladders[0].value);
68
- let ladderInfo;
69
- laddersToUse.forEach(ladder => {
70
- if (ladder.value === selectedLadder)
71
- ladderInfo = {
72
- ...ladder,
73
- markings: ladder.markings.sort((a, b) => {
74
- return b - a;
75
- })
76
- };
77
- });
78
- if (!ladderInfo) {
79
- return console.error("Uh oh there needs to be ladder info here!");
80
- }
81
- const sharedStyle = { color: "white", background: "black" }; //use a shared style to get the copy image to look nice
82
- const upperBoundary = ladderInfo.markings[0];
83
- return (
84
- <div>
85
- Ladder:
86
- <div style={{ display: "flex" }}>
87
- <TgSelect
88
- className="tg-ladder-selector"
89
- value={selectedLadder}
90
- onChange={val => setSelectedLadder(val.value)}
91
- options={laddersToUse}
92
- />
93
- <Button
94
- onClick={() => {
95
- showDialog({
96
- ModalComponent: AddLaddersDialog,
97
- props: {
98
- setSelectedLadder
99
- }
100
- });
101
- }}
102
- style={{ minWidth: 150 }}
103
- minimal
104
- small
105
- icon="plus"
106
- intent="primary"
107
- >
108
- Add Ladder
109
- </Button>
110
- </div>
111
- <br />
112
- <div
113
- className="ve-digest-outer-container"
114
- style={{
115
- position: "relative",
116
- width: "fit-content",
117
- ...sharedStyle
118
- }}
119
- >
120
- {navigator.clipboard && window.isSecureContext && (
121
- <Button
122
- icon="duplicate"
123
- minimal
124
- style={{ position: "absolute", top: 5, right: 5, color: "white" }}
125
- onClick={async () => {
126
- try {
127
- const canvas = await import("html2canvas");
128
- canvas
129
- .default(document.querySelector(".ve-digest-container"))
130
- .then(canvas => {
131
- canvas.toBlob(blob =>
132
- navigator.clipboard.write([
133
- new window.ClipboardItem({ "image/png": blob })
134
- ])
135
- );
136
- window.toastr.success("Image copied to clipboard!");
137
- });
138
- } catch (e) {
139
- window.toastr.error(
140
- "Error copying the image, try just taking a screenshot instead ;)"
141
- );
142
- }
143
- }}
144
- ></Button>
145
- )}
146
- <div style={{ padding: 3, paddingLeft: 7, width: 290 }}>
147
- Highlighted Fragment:{" "}
148
- {highlightedFragment ? highlightedFragment.size : "--"}{" "}
149
- </div>
150
- <div
151
- style={{ height: boxHeight, ...sharedStyle }}
152
- className="ve-digest-container"
153
- >
154
- <div
155
- style={{ width: 100 }}
156
- className="ve-digest-column ve-digest-ladder"
157
- >
158
- <div className="ve-digest-header"> </div>
159
- {ladderInfo.markings.map((val, index) => {
160
- return (
161
- <div
162
- key={index}
163
- style={{
164
- fontSize: 12,
165
- position: "absolute",
166
- width: "100%",
167
- display: "flex",
168
- alignItems: "center",
169
- color: "white",
170
- bottom: calculateOffset(boxHeight, val, upperBoundary) - 3 //subtract 3 to get the labels to align better
171
- }}
172
- >
173
- <span
174
- style={{
175
- color: "white",
176
- paddingLeft: 6,
177
- paddingRight: 4
178
- }}
179
- >
180
- {val}{" "}
181
- </span>
182
- <span style={{ color: "white", paddingRight: 4 }}> bp </span>
183
- </div>
184
- );
185
- })}
186
- </div>
187
- <div className="ve-digest-column ve-digest-ladder">
188
- <div className="ve-digest-header">Ladder </div>
189
- {ladderInfo.markings.map((val, index) => {
190
- return (
191
- <div
192
- key={index}
193
- style={{
194
- fontSize: 12,
195
- position: "absolute",
196
- width: "100%",
197
- display: "flex",
198
- alignItems: "center",
199
- color: "white",
200
- height: "2px",
201
- background: "white",
202
- bottom: calculateOffset(boxHeight, val, upperBoundary)
203
- }}
204
- />
205
- );
206
- })}
207
- </div>
208
- {lanes.map((fragments, index) => {
209
- return (
210
- <Lane
211
- key={index}
212
- {...{
213
- onMouseOver: fragment => setHighlightedFragment(fragment),
214
- onMouseOut: () => setHighlightedFragment(undefined),
215
- digestLaneRightClicked,
216
- laneNumber: index + 1,
217
- fragments,
218
- highlightedFragment,
219
- selectedFragment,
220
- boxHeight,
221
- upperBoundary
222
- }}
223
- />
224
- );
225
- })}
226
- </div>
227
- </div>
228
- </div>
229
- );
230
- }
231
-
232
- function Lane({
233
- laneNumber,
234
- onMouseOver,
235
- onMouseOut,
236
- digestLaneRightClicked,
237
- fragments,
238
- highlightedFragment,
239
- selectedFragment,
240
- boxHeight,
241
- upperBoundary
242
- }) {
243
- return (
244
- <div
245
- style={{ marginLeft: 20, marginRight: 20 }}
246
- className="ve-digest-column ve-digest-lane"
247
- >
248
- <div className="ve-digest-header">Lane {laneNumber} </div>
249
- {fragments.map((fragment, index) => {
250
- const { size, id, name } = fragment;
251
- const isHighlighted =
252
- (highlightedFragment && id === highlightedFragment.id) ||
253
- (selectedFragment && id === highlightedFragment.id);
254
- return (
255
- <div
256
- key={index}
257
- onMouseOver={() => {
258
- onMouseOver(fragment);
259
- }}
260
- onMouseOut={() => {
261
- onMouseOut(fragment);
262
- }}
263
- onClick={() => {
264
- fragment.onFragmentSelect();
265
- }}
266
- onContextMenu={e => {
267
- fragment.onFragmentSelect();
268
- digestLaneRightClicked(e);
269
- }}
270
- data-test={name}
271
- style={{
272
- fontSize: 12,
273
- position: "absolute",
274
- display: "flex",
275
- alignItems: "center",
276
- color: isHighlighted ? "#fdffdd" : "white",
277
- width: "90%",
278
- height: isHighlighted ? "3px" : "2px",
279
- background: "white",
280
- bottom: calculateOffset(boxHeight, size, upperBoundary)
281
- }}
282
- >
283
- <Tooltip
284
- className="ve-digest-fragment-tooltip"
285
- content={<div>{name}</div>}
286
- >
287
- <div
288
- style={{
289
- width: "100%",
290
- height: isHighlighted ? "3px" : "2px"
291
- }}
292
- />
293
- </Tooltip>
294
- </div>
295
- );
296
- })}
297
- </div>
298
- );
299
- }
300
-
301
- function calculateOffset(boxHeight, size, upperBoundary) {
302
- return (boxHeight * Math.log(size)) / Math.log(upperBoundary) - 55;
303
- }
package/MeltingTemp.js DELETED
@@ -1,85 +0,0 @@
1
- import React from "react";
2
- import { Button, Icon, Popover, RadioGroup } from "@blueprintjs/core";
3
-
4
- import { calculateTm, calculateNebTm } from "@teselagen/sequence-utils";
5
-
6
- import { isNumber, isString } from "lodash-es";
7
- import { popoverOverflowModifiers } from "@teselagen/ui";
8
- import useTmType from "../utils/useTmType";
9
-
10
- export default function MeltingTemp({
11
- sequence,
12
- WrapperToUse = p => <div>{p.children}</div>,
13
- InnerWrapper = p => (
14
- <Button minimal small>
15
- {p.children}
16
- </Button>
17
- )
18
- }) {
19
- const [primerConc /* , setPrimerConcentration */] = React.useState(0.0000005);
20
- const [monovalentCationConc /* , setMonovalentCationConc */] =
21
- React.useState(0.05);
22
- const [tmType, setTmType] = useTmType();
23
- let tm = (tmType === "neb_tm" ? calculateNebTm : calculateTm)(sequence, {
24
- monovalentCationConc,
25
- primerConc
26
- });
27
- if (isNumber(tm)) {
28
- tm = tm.toFixed(1);
29
- }
30
- const hasWarning = isString(tm) && tm.length > 7 && tm;
31
- return (
32
- <WrapperToUse dataTest="veStatusBar-selection-tm">
33
- <Popover
34
- modifiers={popoverOverflowModifiers}
35
- content={
36
- <div style={{ maxWidth: 300, padding: 20 }}>
37
- Using Tm calculations based on these{" "}
38
- <a
39
- rel="noopener noreferrer"
40
- target="_blank"
41
- href="https://github.com/TeselaGen/tg-oss/blob/master/packages/sequence-utils/src/calculateNebTm.js"
42
- >
43
- algorithms
44
- </a>
45
- <br></br>
46
- <br></br>
47
- <RadioGroup
48
- label="Choose Tm Type:"
49
- options={[
50
- { value: "default", label: "Default Tm (Breslauer)" },
51
- { value: "neb_tm", label: "NEB Tm (SantaLucia)" }
52
- ]}
53
- onChange={e => setTmType(e.target.value)}
54
- selectedValue={tmType}
55
- ></RadioGroup>
56
- {hasWarning && (
57
- <div>
58
- <Icon
59
- style={{ marginLeft: 5, marginRight: 5 }}
60
- size={10}
61
- icon="warning-sign"
62
- ></Icon>
63
- {hasWarning}
64
- <br></br>
65
- <br></br>
66
- Try using the Default Tm
67
- </div>
68
- )}
69
- </div>
70
- }
71
- >
72
- <React.Fragment>
73
- <InnerWrapper>Melting Temp: {Number(tm) || 0} </InnerWrapper>
74
- {hasWarning && (
75
- <Icon
76
- style={{ marginLeft: 5, marginRight: 5 }}
77
- size={10}
78
- icon="warning-sign"
79
- ></Icon>
80
- )}
81
- </React.Fragment>
82
- </Popover>
83
- </WrapperToUse>
84
- );
85
- }
package/Menlo.ttf DELETED
Binary file