@teselagen/ove 0.7.28 → 0.7.30-beta.1

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 (301) hide show
  1. package/CreateAnnotationsPage.d.ts +4 -3
  2. package/README.md +1 -1
  3. package/fileUtils.d.ts +12 -0
  4. package/html2canvas.esm--JN4fLQL.js +7891 -0
  5. package/html2canvas.esm-B7d7VJmQ.cjs +7891 -0
  6. package/index.cjs.js +1305 -1121
  7. package/index.es.js +1305 -1121
  8. package/index.umd.js +189161 -0
  9. package/ove.css +17 -4
  10. package/package.json +5 -9
  11. package/redux/findTool.d.ts +1 -0
  12. package/selectors/searchLayersSelector.d.ts +1 -1
  13. package/src/AutoAnnotate.js +1 -1
  14. package/src/CreateAnnotationsPage.js +1 -2
  15. package/src/Editor/style.css +8 -3
  16. package/src/FindBar/index.js +32 -1
  17. package/src/RowItem/SelectionLayer/index.js +42 -4
  18. package/src/RowItem/SelectionLayer/style.css +8 -0
  19. package/src/fileUtils.js +103 -0
  20. package/src/helperComponents/PropertiesDialog/TranslationProperties.js +1 -1
  21. package/src/redux/findTool.js +9 -0
  22. package/src/selectors/searchLayersSelector.js +40 -2
  23. package/style.css +12098 -1
  24. package/AASliver.js +0 -187
  25. package/AddLaddersDialog.js +0 -82
  26. package/AdditionalCutsiteInfoDialog.js +0 -599
  27. package/AlignmentVisibilityTool.js +0 -105
  28. package/AnnotationContainerHolder.js +0 -20
  29. package/AnnotationPositioner.js +0 -27
  30. package/AutoAnnotate.js +0 -501
  31. package/AutoAnnotateBpMatchingDialog.js +0 -208
  32. package/Axis.js +0 -151
  33. package/AxisNumbers.js +0 -35
  34. package/Browser.js +0 -106
  35. package/Caret.js +0 -63
  36. package/Chromatogram.js +0 -293
  37. package/CircularDnaSequence.js +0 -73
  38. package/CircularZoomMinimap.js +0 -16
  39. package/ColorPicker.js +0 -30
  40. package/CommandHotkeyHandler.js +0 -44
  41. package/CreateAnnotationsPage.js +0 -98
  42. package/Cutsite.js +0 -18
  43. package/CutsiteProperties.js +0 -176
  44. package/CutsiteSelectionLayers.js +0 -47
  45. package/Cutsites.js +0 -271
  46. package/DeletionLayer.js +0 -28
  47. package/DropHandler.css +0 -21
  48. package/DropHandler.js +0 -64
  49. package/EditCaretPosition.js +0 -234
  50. package/EditTrackNameDialog.js +0 -30
  51. package/Feature.js +0 -83
  52. package/FeatureProperties.js +0 -6
  53. package/FillWindow.js +0 -47
  54. package/GenbankView.js +0 -74
  55. package/GeneralProperties.js +0 -117
  56. package/GenericAnnotationProperties.js +0 -406
  57. package/GlobalDialog.js +0 -73
  58. package/GlobalDialogUtils.js +0 -110
  59. package/GoToDialog.js +0 -25
  60. package/HorizontalPanelDragHandle.js +0 -35
  61. package/Keyboard.js +0 -85
  62. package/Labels.js +0 -327
  63. package/Ladder.css +0 -20
  64. package/Ladder.js +0 -303
  65. package/MeltingTemp.js +0 -85
  66. package/Menlo.ttf +0 -0
  67. package/Minimap.js +0 -515
  68. package/Mismatches.js +0 -134
  69. package/Monaco.ttf +0 -0
  70. package/MultipleSeqsDetectedOnImportDialog.js +0 -74
  71. package/Orf.js +0 -109
  72. package/OrfProperties.js +0 -117
  73. package/Orfs.js +0 -35
  74. package/PCRTool.js +0 -179
  75. package/PairwiseAlignmentView.js +0 -68
  76. package/Part.js +0 -34
  77. package/PartProperties.js +0 -9
  78. package/PassThrough.js +0 -3
  79. package/PerformantSelectionLayer.js +0 -32
  80. package/PinchHelper.js +0 -24
  81. package/PointedAnnotation.js +0 -347
  82. package/PositionAnnotationOnCircle.js +0 -26
  83. package/Primer.js +0 -41
  84. package/PrimerProperties.js +0 -19
  85. package/ReflexContainer.js +0 -802
  86. package/ReflexElement.js +0 -160
  87. package/ReflexEvents.js +0 -77
  88. package/ReflexSplitter.js +0 -205
  89. package/RenameSequenceDialog.js +0 -7
  90. package/RotateCircularViewSlider.js +0 -93
  91. package/SelectDialog.js +0 -150
  92. package/SequenceName.js +0 -15
  93. package/SimpleCircularOrLinearView.js +0 -381
  94. package/SimpleOligoPreview.js +0 -39
  95. package/SingleEnzymeCutsiteInfo.js +0 -139
  96. package/ToolbarItem.js +0 -192
  97. package/Translation.js +0 -198
  98. package/TranslationProperties.js +0 -149
  99. package/UncontrolledSliderWithPlusMinusBtns.css +0 -5
  100. package/UncontrolledSliderWithPlusMinusBtns.js +0 -134
  101. package/VeTopRightContainer.js +0 -12
  102. package/ZoomCircularViewSlider.js +0 -62
  103. package/ZoomLinearView.js +0 -47
  104. package/addAlignment.js +0 -6
  105. package/addMetaToActionCreators.js +0 -12
  106. package/addWrappedAddons.js +0 -20
  107. package/alignmentTool.js +0 -503
  108. package/alignments.js +0 -379
  109. package/annotationLabelVisibility.js +0 -2
  110. package/annotationSearchSelector.js +0 -24
  111. package/annotationTypes.js +0 -35
  112. package/annotationVisibility.js +0 -196
  113. package/annotationsToSupport.js +0 -104
  114. package/arrayToObjWithIds.js +0 -17
  115. package/arrayUtils.js +0 -19
  116. package/array_move.js +0 -10
  117. package/calculateTickMarkPositionsForGivenRange.js +0 -47
  118. package/caretPosition.js +0 -27
  119. package/cdsFeaturesSelector.js +0 -9
  120. package/charWidth.js +0 -22
  121. package/circular.js +0 -19
  122. package/circularSelector.js +0 -4
  123. package/clickAndDragUtils.js +0 -576
  124. package/coerceInitialValue.js +0 -7
  125. package/combineReducersDontIgnoreKeys.js +0 -12
  126. package/commandUtils.js +0 -20
  127. package/constants.js +0 -2
  128. package/copyOptions.js +0 -34
  129. package/createFragmentLines.js +0 -120
  130. package/createMergedDefaultStateReducer.js +0 -30
  131. package/createMetaAction.js +0 -12
  132. package/createSequenceInputPopup.js +0 -290
  133. package/createSequenceInputPopupStyle.css +0 -87
  134. package/createSimpleDialog.js +0 -89
  135. package/createYourOwnEnzyme.js +0 -39
  136. package/cutsiteLabelColorSelector.js +0 -6
  137. package/cutsiteTool.js +0 -88
  138. package/cutsitesByRangeSelector.js +0 -5
  139. package/cutsitesSelector.js +0 -61
  140. package/darkmode.css +0 -98
  141. package/defaultConfig.js +0 -150
  142. package/deletionLayers.js +0 -36
  143. package/description.js +0 -21
  144. package/digestTool.js +0 -34
  145. package/dnaToColor.js +0 -17
  146. package/downloadTool.js +0 -39
  147. package/draggableClassnames.js +0 -5
  148. package/drawAnnotations.js +0 -440
  149. package/drawDirectedPiePiece.js +0 -142
  150. package/editTool.js +0 -49
  151. package/editorSelector.js +0 -2
  152. package/editorUtils.js +0 -205
  153. package/estimateRowHeight.js +0 -184
  154. package/featureLengthsToHide.js +0 -27
  155. package/featureTool.js +0 -34
  156. package/features.js +0 -19
  157. package/featuresSelector.js +0 -8
  158. package/filteredCutsitesSelector.js +0 -136
  159. package/filteredFeaturesSelector.js +0 -32
  160. package/filteredPartsSelector.js +0 -57
  161. package/filteredPrimersSelector.js +0 -27
  162. package/filteredRestrictionEnzymesSelector.js +0 -1
  163. package/find.png +0 -0
  164. package/findTool.js +0 -79
  165. package/findToolConstants.js +0 -1
  166. package/frameTranslations.js +0 -52
  167. package/fullscreen.png +0 -0
  168. package/getAdditionalEnzymesSelector.js +0 -46
  169. package/getAngleForPositionMidpoint.js +0 -3
  170. package/getAnnotationClassnames.js +0 -12
  171. package/getAnnotationNameAndStartStopString.js +0 -61
  172. package/getBpsPerRow.js +0 -19
  173. package/getCutsiteLabelHeights.js +0 -56
  174. package/getGapMap.js +0 -12
  175. package/getGaps.js +0 -27
  176. package/getInternalLabel.js +0 -40
  177. package/getOveHotkeyDefs.js +0 -12
  178. package/getPairwiseOverviewLinearViewOptions.js +0 -38
  179. package/getRangeAnglesSpecial.js +0 -12
  180. package/getStructuredBases.js +0 -97
  181. package/getTrackFromEvent.js +0 -25
  182. package/getVisibleStartEnd.js +0 -7
  183. package/getXStartAndWidthFromNonCircularRange.js +0 -12
  184. package/getXStartAndWidthOfRangeWrtRow.js +0 -27
  185. package/getXStartAndWidthOfRowAnnotation.js +0 -19
  186. package/getYOffset.js +0 -15
  187. package/hoveredAnnotation.js +0 -24
  188. package/importTool.js +0 -27
  189. package/index.js +0 -71
  190. package/inlineFindTool.js +0 -38
  191. package/isElementInViewport.js +0 -29
  192. package/isEnzymeFilterAndSelector.js +0 -1
  193. package/isTargetWithinEl.js +0 -6
  194. package/labelLineIntensity.js +0 -25
  195. package/labelSize.js +0 -23
  196. package/ladderDefaults.js +0 -25
  197. package/lastSavedId.js +0 -20
  198. package/lineageLines.js +0 -11
  199. package/linear.png +0 -0
  200. package/makeStore.js +0 -34
  201. package/massageTickSpacing.js +0 -19
  202. package/materiallyAvailable.js +0 -19
  203. package/middleware.js +0 -112
  204. package/minimumOrfSize.js +0 -24
  205. package/minimumOrfSizeSelector.js +0 -2
  206. package/modalActions.js +0 -3
  207. package/moveCaret.js +0 -58
  208. package/name.js +0 -19
  209. package/normalizeAngle.js +0 -3
  210. package/normalizeAngleRange.js +0 -9
  211. package/oligoTool.js +0 -30
  212. package/onlyUpdateForKeysDeep.js +0 -31
  213. package/orfFrameToColorMap.js +0 -10
  214. package/orfTool.js +0 -136
  215. package/orfsSelector.js +0 -15
  216. package/panelsShown.js +0 -294
  217. package/partLengthsToHide.js +0 -23
  218. package/partOverhangs.js +0 -6
  219. package/partTagSearch.js +0 -69
  220. package/partTool.js +0 -45
  221. package/parts.js +0 -19
  222. package/partsSelector.js +0 -8
  223. package/pie.png +0 -0
  224. package/polarToSpecialCartesian.js +0 -7
  225. package/positionCutsites.js +0 -6
  226. package/prepareRowData.js +0 -64
  227. package/primerBases.js +0 -221
  228. package/primerLengthsToHide.js +0 -27
  229. package/primers.js +0 -19
  230. package/primersSelector.js +0 -8
  231. package/print.png +0 -0
  232. package/printTool.js +0 -31
  233. package/propertiesTool.js +0 -40
  234. package/proteinUtils.js +0 -3
  235. package/pureNoFunc.js +0 -18
  236. package/readOnly.js +0 -25
  237. package/redoTool.js +0 -30
  238. package/reflex-styles.css +0 -128
  239. package/reflex-styles.css.map +0 -9
  240. package/relaxLabelAngles.js +0 -157
  241. package/relaxLabels_DEPRECATED.js +0 -105
  242. package/replacementLayers.js +0 -36
  243. package/restrictionEnzymes.js +0 -52
  244. package/restrictionEnzymesSelector.js +0 -34
  245. package/rowviewContants.js +0 -3
  246. package/ruler.css +0 -89
  247. package/save.png +0 -0
  248. package/saveTool.js +0 -44
  249. package/searchLayersSelector.js +0 -71
  250. package/selectedAnnotations.js +0 -89
  251. package/selectedAnnotationsSelector.js +0 -1
  252. package/selectedCutsitesSelector.js +0 -21
  253. package/selectedPartTags.js +0 -21
  254. package/selectionLayer.js +0 -25
  255. package/sequence.js +0 -12
  256. package/sequenceDataHistory.js +0 -43
  257. package/sequenceDataSelector.js +0 -2
  258. package/sequenceLengthSelector.js +0 -5
  259. package/sequenceSelector.js +0 -4
  260. package/sharedActionCreators.js +0 -0
  261. package/shouldFlipText.js +0 -4
  262. package/shouldRerender.js +0 -27
  263. package/showFileDialog.js +0 -25
  264. package/showGCContent.js +0 -23
  265. package/show_cut_sites.png +0 -0
  266. package/show_features.png +0 -0
  267. package/show_orfs.png +0 -0
  268. package/show_primers.png +0 -0
  269. package/simpleDialog.css +0 -13
  270. package/specialCutsiteFilterOptions.js +0 -22
  271. package/tagsToBoldSelector.js +0 -2
  272. package/toggle_views.svg +0 -1
  273. package/toolBar.js +0 -23
  274. package/translationSearchMatchesSelector.js +0 -14
  275. package/translations.js +0 -20
  276. package/translationsRawSelector.js +0 -8
  277. package/translationsSelector.js +0 -137
  278. package/typeField.js +0 -24
  279. package/undoTool.js +0 -30
  280. package/updateEditor.js +0 -200
  281. package/updateLabelsForInViewFeatures.js +0 -55
  282. package/updateLabelsForInViewFeaturesCircView.js +0 -41
  283. package/updateTrackHelper.js +0 -58
  284. package/uppercaseSequenceMapFont.js +0 -25
  285. package/upsertDeleteActionGenerator.js +0 -31
  286. package/useAAColorType.js +0 -8
  287. package/useAdditionalOrfStartCodons.js +0 -24
  288. package/useAnnotationLimits.js +0 -42
  289. package/useChromatogramPrefs.js +0 -31
  290. package/useFormValue.js +0 -7
  291. package/useLadders.js +0 -6
  292. package/useMeltingTemp.js +0 -7
  293. package/useTmType.js +0 -10
  294. package/userDefinedHandlersAndOpts.js +0 -61
  295. package/utils.js +0 -37
  296. package/versionHistory.js +0 -26
  297. package/versionHistoryTool.js +0 -21
  298. package/viewSubmenu.js +0 -479
  299. package/visibilityTool.js +0 -39
  300. package/withHover.js +0 -113
  301. package/withRestrictionEnzymes.js +0 -15
package/versionHistory.js DELETED
@@ -1,26 +0,0 @@
1
- //./caretPosition.js
2
- import { createReducer } from "redux-act";
3
- import createAction from "./utils/createMetaAction";
4
- import { noop } from "lodash-es";
5
-
6
- // ------------------------------------
7
- // Actions
8
- // ------------------------------------
9
- export const toggleViewVersionHistory = createAction(
10
- "TOGGLE_VIEW_VERSION_HISTORY",
11
- noop
12
- ); //NOTE!!:: second argument sanitizes actions so no payload is passed
13
-
14
- // ------------------------------------
15
- // Reducer
16
- // ------------------------------------
17
- export default createReducer(
18
- {
19
- [toggleViewVersionHistory]: state => {
20
- return { viewVersionHistory: !state.viewVersionHistory };
21
- }
22
- },
23
- {
24
- viewVersionHistory: false
25
- }
26
- );
@@ -1,21 +0,0 @@
1
- import React from "react";
2
- import { Icon } from "@blueprintjs/core";
3
- import ToolbarItem from "./ToolbarItem";
4
- import { connectToEditor } from "../withEditorProps";
5
-
6
- export default connectToEditor()(({
7
- toolbarItemProps,
8
- toggleViewVersionHistory
9
- }) => {
10
- return (
11
- <ToolbarItem
12
- {...{
13
- Icon: <Icon icon="history" />,
14
- onIconClick: toggleViewVersionHistory,
15
- // disabled: hasBeenSaved || lastEdit,
16
- tooltip: <span>View Version History</span>,
17
- ...toolbarItemProps
18
- }}
19
- />
20
- );
21
- });
package/viewSubmenu.js DELETED
@@ -1,479 +0,0 @@
1
- import { MenuItem } from "@blueprintjs/core";
2
- import React from "react";
3
- import { InfoHelper } from "@teselagen/ui";
4
- import useAAColorType from "../utils/useAAColorType";
5
- import { LimitAnnotations } from "../utils/useAnnotationLimits";
6
- import { chromatogramMenu } from "../utils/useChromatogramPrefs";
7
- import useMeltingTemp from "../utils/useMeltingTemp";
8
-
9
- export const translationsSubmenu = [
10
- {
11
- cmd: "toggleTranslations",
12
- shouldDismissPopover: false
13
- },
14
- {
15
- cmd: "toggleCdsFeatureTranslations",
16
- shouldDismissPopover: false
17
- },
18
- {
19
- cmd: "toggleOrfTranslations",
20
- shouldDismissPopover: false
21
- },
22
- { cmd: "toggleAminoAcidNumbers_dna", shouldDismissPopover: false }
23
- ];
24
- export const orfsSubmenu = [
25
- {
26
- cmd: "toggleOrfs",
27
- shouldDismissPopover: false
28
- },
29
- {
30
- cmd: "toggleOrfTranslations",
31
- shouldDismissPopover: false
32
- },
33
- {
34
- cmd: "useGtgAndCtgAsStartCodons",
35
- shouldDismissPopover: false
36
- },
37
- {
38
- cmd: "minOrfSizeCmd",
39
- shouldDismissPopover: false
40
- }
41
- ];
42
- export const cutsitesSubmenu = [
43
- {
44
- cmd: "toggleCutsites",
45
- shouldDismissPopover: false
46
- }
47
- ];
48
- export const featuresSubmenu = [
49
- {
50
- cmd: "toggleFeatures",
51
- shouldDismissPopover: false
52
- },
53
- "onConfigureFeatureTypesClick",
54
- {
55
- cmd: "featureTypesCmd",
56
- shouldDismissPopover: false
57
- },
58
- {
59
- cmd: "featureFilterIndividualCmd",
60
- shouldDismissPopover: false
61
- },
62
- {
63
- cmd: "filterFeatureLengthsCmd",
64
- shouldDismissPopover: false
65
- }
66
- ];
67
- export const partsSubmenu = props => {
68
- return [
69
- {
70
- cmd: "toggleParts",
71
- shouldDismissPopover: false
72
- },
73
- {
74
- cmd: "partFilterIndividualCmd",
75
- shouldDismissPopover: false
76
- },
77
- ...(props.allPartTags
78
- ? [
79
- {
80
- cmd: "filterPartsByTagCmd",
81
- shouldDismissPopover: false
82
- }
83
- ]
84
- : []),
85
- {
86
- cmd: "filterPartLengthsCmd",
87
- shouldDismissPopover: false
88
- }
89
- ];
90
- };
91
- export const primersSubmenu = [
92
- {
93
- cmd: "togglePrimers",
94
- shouldDismissPopover: false
95
- },
96
- {
97
- cmd: "primerFilterIndividualCmd",
98
- shouldDismissPopover: false
99
- },
100
- {
101
- cmd: "filterPrimerLengthsCmd",
102
- shouldDismissPopover: false
103
- }
104
- ];
105
-
106
- export const fullSequenceTranslationMenu = {
107
- text: "Full Sequence Translation",
108
- cmd: "fullSequenceTranslations",
109
- submenu: [
110
- {
111
- shouldDismissPopover: false,
112
- cmd: "sequenceAA_allFrames",
113
- text: "All Frames"
114
- // frameNumber: "all" // TODO ?
115
- },
116
- {
117
- shouldDismissPopover: false,
118
- cmd: "sequenceAA_frame1",
119
- text: "Frame 1"
120
- // frameNumber: 1 // TODO ?
121
- },
122
- {
123
- shouldDismissPopover: false,
124
- cmd: "sequenceAA_frame2",
125
- text: "Frame 2"
126
- // frameNumber: 2 // TODO ?
127
- },
128
- {
129
- shouldDismissPopover: false,
130
- cmd: "sequenceAA_frame3",
131
- text: "Frame 3"
132
- // frameNumber: 3 // TODO ?
133
- },
134
- {
135
- shouldDismissPopover: false,
136
- cmd: "sequenceAAReverse_allFrames",
137
- text: "All Reverse Frames"
138
- // frameNumber: "all" // TODO ?
139
- },
140
- {
141
- shouldDismissPopover: false,
142
- cmd: "sequenceAAReverse_frame1",
143
- text: "Frame -1"
144
- // frameNumber: 1 // TODO ?
145
- },
146
- {
147
- shouldDismissPopover: false,
148
- cmd: "sequenceAAReverse_frame2",
149
- text: "Frame -2"
150
- // frameNumber: 2 // TODO ?
151
- },
152
- {
153
- shouldDismissPopover: false,
154
- cmd: "sequenceAAReverse_frame3",
155
- text: "Frame -3"
156
- // frameNumber: 3 // TODO ?
157
- }
158
- ]
159
- };
160
- export default [
161
- // { cmd: "mapCaret" },
162
- { cmd: "showAll", shouldDismissPopover: false },
163
- { cmd: "hideAll", shouldDismissPopover: false },
164
- {
165
- cmd: "toggleChromatogram",
166
- shouldDismissPopover: false,
167
- submenu: [
168
- { cmd: "toggleChromatogram", shouldDismissPopover: false },
169
- chromatogramMenu
170
- ]
171
- },
172
- { cmd: "toggleWarnings", shouldDismissPopover: false },
173
- { cmd: "toggleAssemblyPieces", shouldDismissPopover: false },
174
- { cmd: "toggleLineageAnnotations", shouldDismissPopover: false },
175
- //deprecating
176
- //{ cmd: "toggleFeatures", shouldDismissPopover: false },
177
- {
178
- cmd: "toggleFeatures",
179
- // onClick: () => {}, //commenting this out to allow top level clicking -- https://github.com/TeselaGen/openVectorEditor/issues/865)
180
- shouldDismissPopover: false,
181
- submenu: featuresSubmenu
182
- },
183
- {
184
- cmd: "toggleTranslations",
185
- // onClick: () => {}, //commenting this out to allow top level clicking -- https://github.com/TeselaGen/openVectorEditor/issues/865)
186
- shouldDismissPopover: false,
187
- submenu: translationsSubmenu
188
- },
189
- { cmd: "togglePrimers", shouldDismissPopover: false },
190
- // {
191
- // // TODO preprocess this as needed
192
- // cmd: "featureTypes",
193
- // itemId: "featureTypes",
194
- // //submenu of checklist of all feature types here
195
- // submenu: [{ text: "TO DO...", disabled: true }]
196
- // },
197
- {
198
- cmd: "togglePartsWithSubmenu",
199
- // onClick: () => {}, //commenting this out to allow top level clicking -- https://github.com/TeselaGen/openVectorEditor/issues/865)
200
- shouldDismissPopover: false
201
- },
202
- { cmd: "toggleCutsites", shouldDismissPopover: false },
203
- // TODO translations, cds feature translations?
204
- {
205
- cmd: "toggleOrfs",
206
- // onClick: () => {}, //commenting this out to allow top level clicking -- https://github.com/TeselaGen/openVectorEditor/issues/865)
207
- shouldDismissPopover: false,
208
- submenu: orfsSubmenu
209
- },
210
- // { cmd: "complementary" },
211
- // { cmd: "spaces" },
212
- { divider: "" },
213
- {
214
- cmd: "toggleShowGCContent",
215
- shouldDismissPopover: false,
216
- text: "Percent GC Content of Selection"
217
- },
218
- {
219
- text: "Melting Temp of Selection",
220
- component: ToggleShowMeltingTemp
221
- },
222
- { divider: "" },
223
- fullSequenceTranslationMenu,
224
- { divider: "" },
225
-
226
- { cmd: "toggleAxis", shouldDismissPopover: false },
227
- { cmd: "toggleAxisNumbers", shouldDismissPopover: false },
228
- {
229
- cmd: "toggleAminoAcidNumbers_protein",
230
- shouldDismissPopover: false
231
- },
232
- {
233
- text: "Amino Acid Colors (by Hydrophobicity/by Family)",
234
- component: function AAColorType(props) {
235
- const [aaColorType, setAAColorType] = useAAColorType();
236
- return (
237
- <MenuItem
238
- {...props}
239
- text="Amino Acid Colors"
240
- shouldDismissPopover={false}
241
- >
242
- <MenuItem
243
- {...props}
244
- text={
245
- <div style={{ display: "flex" }}>
246
- <span style={{ marginRight: 10 }}>Color By Hydrophobicity</span>
247
- <InfoHelper
248
- content={
249
- <div style={{ color: "white" }}>
250
- <div
251
- style={{
252
- padding: 2,
253
- backgroundColor: "hsl(258.1, 100%, 69%)"
254
- }}
255
- >
256
- More Hydrophilic (4.5)
257
- </div>
258
- <div
259
- style={{
260
- padding: 2,
261
- backgroundColor: "hsl(356.9, 100%, 69%)"
262
- }}
263
- >
264
- More Hydrophobic (-4.5)
265
- </div>
266
- </div>
267
- }
268
- ></InfoHelper>
269
- </div>
270
- }
271
- shouldDismissPopover={false}
272
- onClick={() => {
273
- setAAColorType("byHydrophobicity");
274
- }}
275
- icon={aaColorType === "byHydrophobicity" ? "small-tick" : "blank"}
276
- ></MenuItem>
277
- <MenuItem
278
- {...props}
279
- text={
280
- <div style={{ display: "flex" }}>
281
- <span style={{ marginRight: 10 }}>Color By Family</span>
282
- <InfoHelper
283
- content={
284
- <div style={{ color: "black" }}>
285
- <div style={{ padding: 2, backgroundColor: "#FFC0CB" }}>
286
- Positive: K, H, R
287
- </div>
288
- <div style={{ padding: 2, backgroundColor: "#EE82EE" }}>
289
- Negative: D, E
290
- </div>
291
- <div style={{ padding: 2, backgroundColor: "#D3D3D3" }}>
292
- Amidic: N, Q
293
- </div>
294
- <div style={{ padding: 2, backgroundColor: "#00FFFF" }}>
295
- Aliphatic: A, G, L, I, P, V
296
- </div>
297
- <div style={{ padding: 2, backgroundColor: "#FFA500" }}>
298
- Aromatic: F, W, Y
299
- </div>
300
- <div style={{ padding: 2, backgroundColor: "#FFFF00" }}>
301
- Sulfur: C, M
302
- </div>
303
- <div style={{ padding: 2, backgroundColor: "#90EE90" }}>
304
- Hydroxylic: S, T
305
- </div>
306
- </div>
307
- }
308
- ></InfoHelper>
309
- </div>
310
- }
311
- shouldDismissPopover={false}
312
- onClick={() => {
313
- setAAColorType("byFamily");
314
- }}
315
- icon={aaColorType === "byFamily" ? "small-tick" : "blank"}
316
- ></MenuItem>
317
- </MenuItem>
318
- );
319
- },
320
- shouldDismissPopover: false
321
- },
322
- { cmd: "toggleDnaColors", shouldDismissPopover: false },
323
- {
324
- text: "Sequence",
325
- submenu: [
326
- { cmd: "toggleSequence", shouldDismissPopover: false },
327
- { cmd: "toggleFivePrimeThreePrimeHints", shouldDismissPopover: false },
328
- { cmd: "toggleReverseSequence", shouldDismissPopover: false },
329
-
330
- {
331
- text: "Case",
332
- cmd: "sequenceCase",
333
- submenu: [
334
- {
335
- cmd: "toggleSequenceMapFontUpper",
336
- text: "Upper Case",
337
- shouldDismissPopover: false
338
- },
339
- {
340
- cmd: "toggleSequenceMapFontRaw",
341
- text: "No Preference",
342
- shouldDismissPopover: false
343
- },
344
- {
345
- cmd: "toggleSequenceMapFontLower",
346
- text: "Lower Case",
347
- shouldDismissPopover: false
348
- }
349
- ]
350
- },
351
- {
352
- cmd: "setRowViewSequenceSpacing",
353
- shouldDismissPopover: false
354
- }
355
- ]
356
- },
357
-
358
- { divider: "" },
359
- {
360
- text: "Limits",
361
- cmd: "limitsMenu",
362
- submenu: [
363
- {
364
- text: "Max Features To Show",
365
- component: LimitAnnotations,
366
- type: "features"
367
- },
368
- {
369
- text: "Max Parts To Show",
370
- type: "parts",
371
- component: LimitAnnotations
372
- },
373
- {
374
- text: "Max Cut Sites To Show",
375
- component: LimitAnnotations,
376
- type: "cutsites"
377
- },
378
- {
379
- text: "Max Primers To Show",
380
- component: LimitAnnotations,
381
- type: "primers"
382
- },
383
- {
384
- text: "Max Warnings To Show",
385
- component: LimitAnnotations,
386
- type: "warnings"
387
- },
388
- {
389
- text: "Max Assembly Pieces To Show",
390
- component: LimitAnnotations,
391
- type: "assemblyPieces"
392
- },
393
- {
394
- text: "Max Lineage Annotations To Show",
395
- component: LimitAnnotations,
396
- type: "lineageAnnotations"
397
- }
398
- ]
399
- },
400
- {
401
- text: "Labels",
402
- submenu: [
403
- { divider: "External Labels:" },
404
- {
405
- text: "Show All",
406
- hiddenButSearchableText: "labels",
407
- cmd: "showAllLabels",
408
- shouldDismissPopover: false
409
- },
410
- {
411
- text: "Hide All",
412
- hiddenButSearchableText: "labels",
413
- cmd: "hideAllLabels",
414
- shouldDismissPopover: false
415
- },
416
- {
417
- text: "Features",
418
- hiddenButSearchableText: "labels",
419
- cmd: "toggleFeatureLabels",
420
- shouldDismissPopover: false
421
- },
422
- {
423
- text: "Parts",
424
- hiddenButSearchableText: "labels",
425
- cmd: "togglePartLabels",
426
- shouldDismissPopover: false
427
- },
428
- {
429
- text: "Cutsites",
430
- hiddenButSearchableText: "labels",
431
- cmd: "toggleCutsiteLabels",
432
- shouldDismissPopover: false
433
- },
434
- {
435
- text: "Assembly Pieces",
436
- hiddenButSearchableText: "labels",
437
- cmd: "toggleAssemblyPieceLabels",
438
- shouldDismissPopover: false
439
- },
440
- {
441
- text: "LineageAnnotations",
442
- hiddenButSearchableText: "labels",
443
- cmd: "toggleLineageAnnotationLabels",
444
- shouldDismissPopover: false
445
- },
446
- {
447
- text: "Warnings",
448
- hiddenButSearchableText: "labels",
449
- cmd: "toggleWarningLabels",
450
- shouldDismissPopover: false
451
- },
452
- {
453
- text: "Primers",
454
- hiddenButSearchableText: "labels",
455
- cmd: "togglePrimerLabels",
456
- shouldDismissPopover: false
457
- },
458
-
459
- { divider: "" },
460
-
461
- { cmd: "adjustLabelLineIntensity", shouldDismissPopover: false },
462
- { cmd: "adjustLabelSize", shouldDismissPopover: false }
463
- ]
464
- }
465
- ];
466
-
467
- function ToggleShowMeltingTemp(props) {
468
- const [showMeltingTemp, setShowMeltingTemp] = useMeltingTemp();
469
- return (
470
- <MenuItem
471
- {...props}
472
- shouldDismissPopover={false}
473
- onClick={() => {
474
- setShowMeltingTemp(!showMeltingTemp);
475
- }}
476
- icon={showMeltingTemp ? "small-tick" : "blank"}
477
- ></MenuItem>
478
- );
479
- }
package/visibilityTool.js DELETED
@@ -1,39 +0,0 @@
1
- import { Icon, Menu } from "@blueprintjs/core";
2
- import React from "react";
3
- import { createCommandMenu } from "@teselagen/ui";
4
- import viewSubmenu from "../MenuBar/viewSubmenu";
5
- import getCommands from "../commands";
6
- import ToolbarItem from "./ToolbarItem";
7
- import { connectToEditor } from "../withEditorProps";
8
- import withEditorProps from "../withEditorProps";
9
-
10
- export default connectToEditor(({ toolBar = {} }) => {
11
- return {
12
- isOpen: toolBar.openItem === "visibilityTool"
13
- };
14
- })(({ toolbarItemProps, isOpen }) => {
15
- return (
16
- <ToolbarItem
17
- {...{
18
- Icon: <Icon icon="eye-open" />,
19
- onIconClick: "toggleDropdown",
20
- Dropdown: VisibilityOptions,
21
- noDropdownIcon: true,
22
- toggled: isOpen,
23
- tooltip: isOpen ? "Hide Visibility Options" : "Show Visibility Options",
24
- ...toolbarItemProps
25
- }}
26
- />
27
- );
28
- });
29
-
30
- const VisibilityOptions = withEditorProps(function (props) {
31
- return (
32
- <Menu>
33
- {createCommandMenu(viewSubmenu, getCommands({ props }), {
34
- useTicks: true,
35
- omitIcons: true
36
- })}
37
- </Menu>
38
- );
39
- });
package/withHover.js DELETED
@@ -1,113 +0,0 @@
1
- import classnames from "classnames";
2
- import { compose } from "redux";
3
- import { connect } from "react-redux";
4
- import React from "react";
5
- import { store } from "@risingstack/react-easy-state";
6
- import * as hoveredAnnotationActions from "../redux/hoveredAnnotation";
7
- import { withHandlers, branch } from "recompose";
8
- import { modifiableTypes } from "@teselagen/sequence-utils";
9
-
10
- export const HoveredIdContext = React.createContext({
11
- hoveredId: "" // default value
12
- });
13
-
14
- export function withHoveredIdFromContext(Component) {
15
- return function HoveredIdComponent(props) {
16
- return (
17
- <HoveredIdContext.Consumer>
18
- {contexts => <Component {...props} {...contexts} />}
19
- </HoveredIdContext.Consumer>
20
- );
21
- };
22
- }
23
- export const hoveredAnnEasyStore = store({
24
- hoveredAnn: undefined,
25
- selectedAnn: undefined
26
- });
27
-
28
- export default compose(
29
- withHoveredIdFromContext,
30
- branch(
31
- ({ noRedux }) => !noRedux,
32
- connect(function (
33
- state,
34
- {
35
- id,
36
- editorName = "StandaloneEditor",
37
- className,
38
- hoveredId: hoveredIdFromContext,
39
- passHoveredId
40
- }
41
- ) {
42
- if (!editorName) {
43
- console.warn(
44
- "please pass an editorName to the withHover() wrapped component"
45
- );
46
- }
47
- const editorState = state.VectorEditor[editorName] || {};
48
- const hoveredId = editorState.hoveredAnnotation || hoveredIdFromContext; //we can pass a hoveredId from context in order to still use the hover functionality without being connected to redux! see http://localhost:3344/#/SimpleCircularOrLinearView for an example
49
- const isIdHashmap = typeof id === "object";
50
-
51
- const hovered = !!(isIdHashmap ? id[hoveredId] : hoveredId === id);
52
- const newClassName = classnames(className, "hoverHelper", {
53
- veAnnotationHovered: hovered
54
- });
55
- const toReturn = {
56
- hovered,
57
- className: newClassName
58
- };
59
- if (hovered && passHoveredId) {
60
- //only pass hoveredId if it is hovered
61
- toReturn.hoveredId = hoveredId;
62
- }
63
- return toReturn;
64
- }, hoveredAnnotationActions)
65
- ),
66
- withHandlers({
67
- onMouseOver: props =>
68
- function (e) {
69
- // loop through the target element and the parents and see if any of them have the hoverHelper class
70
- // if they do, then we don't want to trigger the hover event
71
- // if they don't, then we do want to trigger the hover event
72
- // we should stop the loop if the target element is implementing this onMouseOver event
73
- // e.stopPropagation(); //this is important otherwise hovering labels inside circular view label groups won't work
74
- const target = e.target;
75
- let alreadyHandled = false;
76
- let currentElement = target;
77
- while (currentElement) {
78
- if (currentElement === e.currentTarget) {
79
- break;
80
- }
81
- // console.log(`currentElement:`, currentElement)
82
-
83
- if (currentElement.classList.contains("hoverHelper")) {
84
- alreadyHandled = true;
85
- break;
86
- }
87
- currentElement = currentElement.parentElement;
88
- }
89
- if (alreadyHandled) return;
90
-
91
- // const alreadyHandled = e.target.classList.contains("hoverHelper");
92
- const { editorName, id, hoveredAnnotationUpdate } = props;
93
- const isIdHashmap = typeof id === "object";
94
- const idToPass = isIdHashmap ? Object.keys(id)[0] : id;
95
- const annot = props?.annotation || props?.label?.annotation;
96
- if (modifiableTypes.includes(annot?.annotationTypePlural)) {
97
- hoveredAnnEasyStore.hoveredAnn = annot;
98
- }
99
- //because the calling onHover can slow things down, we disable it if dragging or scrolling
100
- if (window.__veDragging || window.__veScrolling) return;
101
-
102
- hoveredAnnotationUpdate &&
103
- hoveredAnnotationUpdate(idToPass, { editorName });
104
- },
105
- onMouseLeave: props => e => {
106
- hoveredAnnEasyStore.hoveredAnn = undefined;
107
- const { editorName, hoveredAnnotationClear } = props;
108
- e.stopPropagation();
109
- if (window.__veDragging || window.__veScrolling) return;
110
- hoveredAnnotationClear && hoveredAnnotationClear(true, { editorName });
111
- }
112
- })
113
- );
@@ -1,15 +0,0 @@
1
- import { connectToEditor } from "../withEditorProps";
2
- import restrictionEnzymesSelector from "../selectors/restrictionEnzymesSelector";
3
-
4
- export const withRestrictionEnzymes = connectToEditor(
5
- (editorState, ownProps) => {
6
- const allRestrictionEnzymes = restrictionEnzymesSelector(
7
- editorState,
8
- ownProps.additionalEnzymes,
9
- ownProps.enzymeGroupsOverride
10
- );
11
- return {
12
- allRestrictionEnzymes
13
- };
14
- }
15
- );