@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/reflex-styles.css DELETED
@@ -1,128 +0,0 @@
1
- .reflex-layout.reflex-container {
2
- justify-content: flex-start;
3
- /* align items in Main Axis */
4
- align-items: stretch;
5
- /* align items in Cross Axis */
6
- align-content: stretch;
7
- display: -webkit-box;
8
- /* OLD - iOS 6-, Safari 3.1-6 */
9
- display: -moz-box;
10
- /* OLD - Firefox 19- (buggy but mostly works) */
11
- display: -ms-flexbox;
12
- /* TWEENER - IE 10 */
13
- display: -webkit-flex;
14
- /* NEW - Chrome */
15
- display: flex;
16
- position: relative;
17
- height: 100%;
18
- width: 100%;
19
- }
20
-
21
- .reflex-layout.reflex-container.horizontal {
22
- flex-direction: column;
23
- }
24
-
25
- .reflex-layout.reflex-container.vertical {
26
- flex-direction: row;
27
- }
28
-
29
- .reflex-layout > .reflex-element {
30
- position: relative;
31
- overflow: auto;
32
- height: 100%;
33
- width: 100%;
34
- }
35
-
36
- .reflex-layout > .reflex-splitter {
37
- background-color: #f1f1f1;
38
- z-index: 100;
39
- }
40
-
41
- .reflex-layout > .reflex-splitter.active,
42
- .reflex-layout > .reflex-splitter:hover {
43
- background-color: #cccccc;
44
- transition: all 1s ease;
45
- }
46
-
47
- .reflex-layout.horizontal > .reflex-splitter {
48
- border-bottom: 1px solid #f1f1f1;
49
- border-top: 1px solid #f1f1f1;
50
- cursor: row-resize;
51
- width: 100%;
52
- height: 2px;
53
- }
54
-
55
- .reflex-layout.horizontal > .reflex-splitter:hover,
56
- .reflex-layout.horizontal > .reflex-splitter.active {
57
- border-bottom: 1px solid #cccccc;
58
- border-top: 1px solid #cccccc;
59
- }
60
-
61
- .reflex-layout.vertical > .reflex-splitter {
62
- border-right: 1px solid #f1f1f1;
63
- border-left: 1px solid #f1f1f1;
64
- cursor: col-resize;
65
- height: 95%;
66
- width: 2px;
67
- margin-top: 33px;
68
- }
69
- .bp3-dark .reflex-layout.vertical > .reflex-splitter {
70
- border-right: 1px solid #4a4b4b;
71
- border-left: 1px solid #4a4b4b;
72
- }
73
-
74
- .reflex-layout.vertical > .reflex-splitter:hover,
75
- .reflex-layout.vertical > .reflex-splitter.active {
76
- border-right: 1px solid #cccccc;
77
- border-left: 1px solid #cccccc;
78
- }
79
-
80
- .reflex-layout > .reflex-splitter.reflex-thin {
81
- -moz-box-sizing: border-box;
82
- -webkit-box-sizing: border-box;
83
- box-sizing: border-box;
84
- background: #000;
85
- -moz-background-clip: padding;
86
- -webkit-background-clip: padding;
87
- background-clip: padding-box;
88
- opacity: 0.2;
89
- z-index: 100;
90
- }
91
-
92
- .reflex-layout
93
- > .reflex-splitter.reflex-thin.active
94
- .reflex-layout
95
- > .reflex-splitter.reflex-thin:hover {
96
- transition: all 1.5s ease;
97
- opacity: 0.5;
98
- }
99
-
100
- .reflex-layout.horizontal > .reflex-splitter.reflex-thin {
101
- border-bottom: 8px solid rgba(255, 255, 255, 0);
102
- border-top: 8px solid rgba(255, 255, 255, 0);
103
- height: 17px !important;
104
- cursor: row-resize;
105
- margin: -8px 0;
106
- width: 100%;
107
- }
108
-
109
- .reflex-layout.horizontal > .reflex-splitter.reflex-thin.active,
110
- .reflex-layout.horizontal > .reflex-splitter.reflex-thin:hover {
111
- border-bottom: 8px solid #e4e4e4;
112
- border-top: 8px solid #e4e4e4;
113
- }
114
-
115
- .reflex-layout.vertical > .reflex-splitter.reflex-thin {
116
- border-right: 8px solid rgba(255, 255, 255, 0);
117
- border-left: 8px solid rgba(255, 255, 255, 0);
118
- width: 17px !important;
119
- cursor: col-resize;
120
- margin: 0 -8px;
121
- height: 100%;
122
- }
123
-
124
- .reflex-layout.vertical > .reflex-splitter.reflex-thin.active,
125
- .reflex-layout.vertical > .reflex-splitter.reflex-thin:hover {
126
- border-right: 8px solid #e4e4e4;
127
- border-left: 8px solid #e4e4e4;
128
- }
@@ -1,9 +0,0 @@
1
- {
2
- "version": 3,
3
- "mappings": "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",
4
- "sources": [
5
- "reflex-styles.scss"
6
- ],
7
- "names": [],
8
- "file": "reflex-styles.css"
9
- }
@@ -1,157 +0,0 @@
1
- import { cloneDeep } from "lodash-es";
2
-
3
- export default relaxLabelAngles;
4
-
5
- function normalizeAngle(angle) {
6
- if (angle > Math.PI * 2) {
7
- return angle - Math.PI * 2;
8
- } else if (angle < 0) {
9
- return angle + Math.PI * 2;
10
- } else {
11
- return angle;
12
- }
13
- }
14
-
15
- //this pure function allows the labels to spread out around the circle
16
- //and groups overlapping labels together if necessary
17
- function relaxLabelAngles(_labelPoints, spacing, maxradius) {
18
- const maxLabelsPerQuadrant = Math.floor(maxradius / spacing) + 4;
19
- let labels = cloneDeep(_labelPoints);
20
- if (labels.length > maxLabelsPerQuadrant * 4) {
21
- //group overlapping labels together
22
- labels = combineLabels(labels, maxLabelsPerQuadrant * 4);
23
- }
24
- // labels = labels.sort(sortLabelsByAngle)
25
-
26
- // Sort labels into four quadrants of the screen.
27
- const totalLength = Math.PI * 2;
28
-
29
- let rightTopLabels = [];
30
- let rightBottomLabels = [];
31
- let leftTopLabels = [];
32
- let leftBottomLabels = [];
33
-
34
- let label;
35
- for (let i = 0; i < labels.length; i++) {
36
- label = labels[i];
37
- label.angle = normalizeAngle(label.angle);
38
- const labelCenter = label.angle;
39
- if (labelCenter <= totalLength / 4) {
40
- rightTopLabels.push(label);
41
- } else if (
42
- labelCenter > totalLength / 4 &&
43
- labelCenter <= totalLength / 2
44
- ) {
45
- rightBottomLabels.push(label);
46
- } else if (
47
- labelCenter > totalLength / 2 &&
48
- labelCenter <= (3 * totalLength) / 4
49
- ) {
50
- leftBottomLabels.push(label);
51
- } else {
52
- leftTopLabels.push(label);
53
- }
54
- }
55
-
56
- function repositionAndGroupLabels(labels /* logtrue */) {
57
- const extraSpaces = Math.max(maxLabelsPerQuadrant - labels.length, 0);
58
- let lastLabelYPosition = 0 - spacing / 2; // spacing to count label height
59
- let lastlabel;
60
- return labels
61
- .map(function (label, idx) {
62
- if (Math.abs(lastLabelYPosition) > maxradius + 80) {
63
- lastlabel.labelAndSublabels.push(label);
64
- lastlabel.labelIds[label.id] = true;
65
- return false;
66
- }
67
- lastlabel = label;
68
- if (label.y < lastLabelYPosition) {
69
- const naturalSlot = Math.floor(Math.abs(label.y / spacing));
70
- if (naturalSlot > extraSpaces) {
71
- if (idx < naturalSlot && extraSpaces > 0) {
72
- lastLabelYPosition = label.y;
73
- }
74
- label.y = lastLabelYPosition;
75
- }
76
- let x = Math.sqrt(Math.pow(maxradius, 2) - Math.pow(label.y, 2));
77
- if (!x) x = 0;
78
- label.x = label.x > 0 ? x : -x;
79
- lastLabelYPosition = label.y - spacing;
80
- } else {
81
- label.y = lastLabelYPosition;
82
- lastLabelYPosition = label.y - spacing;
83
- }
84
- return label;
85
- })
86
- .filter(function (l) {
87
- return !!l;
88
- });
89
- }
90
-
91
- // Scale Right Top Labels
92
- let labelsToReturn = [];
93
- rightTopLabels = rightTopLabels.sort(sortLabelsByAngleReverse);
94
- labelsToReturn = labelsToReturn.concat(
95
- repositionAndGroupLabels(rightTopLabels, true)
96
- );
97
-
98
- // Scale Right Bottom Labels
99
- rightBottomLabels = rightBottomLabels.sort(sortLabelsByAngle);
100
- labelsToReturn = labelsToReturn.concat(
101
- flipLabelYs(repositionAndGroupLabels(flipLabelYs(rightBottomLabels)))
102
- );
103
-
104
- // Scale Left Bottom Labels
105
- leftBottomLabels = leftBottomLabels.sort(sortLabelsByAngleReverse);
106
- labelsToReturn = labelsToReturn.concat(
107
- flipLabelYs(repositionAndGroupLabels(flipLabelYs(leftBottomLabels)))
108
- );
109
-
110
- // Scale Left Top Labels
111
- leftTopLabels = leftTopLabels.sort(sortLabelsByAngle);
112
- labelsToReturn = labelsToReturn.concat(
113
- repositionAndGroupLabels(leftTopLabels)
114
- );
115
-
116
- return labelsToReturn;
117
-
118
- function flipLabelYs(labels) {
119
- return labels.map(function (label) {
120
- label.y = -label.y;
121
- return label;
122
- });
123
- }
124
- }
125
-
126
- // function sortLabelsByHeight(a, b) {
127
- // return b.innerPoint.y - a.innerPoint.y
128
- // }
129
-
130
- function sortLabelsByAngle(a, b) {
131
- return a.angle - b.angle;
132
- }
133
- function sortLabelsByAngleReverse(b, a) {
134
- return a.angle - b.angle;
135
- }
136
-
137
- //function that groups labels that fall within the same angle together
138
- function combineLabels(labels, numberOfBuckets) {
139
- const buckets = {};
140
- Object.keys(labels).forEach(function (key) {
141
- const label = labels[key];
142
-
143
- const bucket = Math.floor(
144
- (label.annotationCenterAngle / 6.29) * numberOfBuckets
145
- );
146
- if (!buckets[bucket]) {
147
- buckets[bucket] = label;
148
- } else {
149
- buckets[bucket].labelAndSublabels.push(label);
150
- buckets[bucket].labelIds[label.id] = true;
151
- }
152
- });
153
- const combinedLabels = Object.keys(buckets).map(function (key) {
154
- return buckets[key];
155
- });
156
- return combinedLabels;
157
- }
@@ -1,105 +0,0 @@
1
- /* eslint-disable */
2
- // import intervalTree2 from "node-interval-tree";
3
- // var xRanges = new intervalTree2(0)
4
- // var yRanges = new intervalTree2(0)
5
- // iTree.search(start, end)
6
- // featureITree.add(startAngle, expandedEndAngle, undefined, {...annotationCopy})
7
-
8
- let alpha = 1.5; //the larger the alpha, the fewer loops through relax necessary, but too large and things are spaced unevenly
9
- let spacing = 12;
10
- let relaxCounter = 0;
11
- export default function relaxLabels(labelPoints) {
12
- let mutableLabelPoints = labelPoints.map(function (point) {
13
- return {
14
- ...point
15
- };
16
- });
17
- function spreadPointsOutOnCircle(labels) {}
18
- function relax() {
19
- let again = false;
20
- relaxCounter++;
21
- mutableLabelPoints.forEach(function (point1, index1) {
22
- // var xOverlaps = xRanges.search(point1.x, point1.x + point1.width)
23
- // var yOverlaps = yRanges.search(point1.y, point1.y + point1.height)
24
- // xOverlaps
25
- // xRanges.add(point1.x, point1.x + point1.width, undefined, point1)
26
- // yRanges.add(point1.y, point1.y + point1.height, undefined, point1)
27
-
28
- mutableLabelPoints.forEach(function (point2, index2) {
29
- // a & b are the same element and don't collide.
30
- if (index1 === index2) return;
31
-
32
- // a & b are on opposite sides of the chart and
33
- // don't collide
34
- if (
35
- (point1.x > 0 && point2.x <= 0) ||
36
- (point1.x < 0 && point2.x >= 0)
37
- ) {
38
- return;
39
- }
40
- // Now let's calculate the distance between
41
- // these elements.
42
- let deltaY = point1.y - point2.y;
43
-
44
- // Our spacing is greater than our specified spacing,
45
- // so they don't collide.
46
- if (Math.abs(deltaY) > spacing) return;
47
-
48
- // If the labels collide, we'll push each
49
- // of the two labels up and down a little bit.
50
- let weight1 = point1.y > 0 ? 0.5 : -0.5;
51
- let weight2 = point2.y > 0 ? 0.5 : -0.5;
52
- again = true;
53
- let sign = deltaY > 0 ? 1 : -1;
54
- let adjust = sign * alpha;
55
- point1.y += adjust + weight1;
56
- point2.y -= adjust + weight2;
57
-
58
- // point1.x += -weight1
59
- // point2.x -= -weight2
60
- });
61
- });
62
- // Adjust our line leaders here
63
- // so that they follow the labels.
64
- if (again && relaxCounter < 1) {
65
- relax();
66
- }
67
- }
68
- relax();
69
-
70
- //group colliding labels
71
- let stableLabels = [];
72
- mutableLabelPoints.forEach(function (point1) {
73
- let collision = false;
74
- stableLabels.some(function (point2) {
75
- // a & b are on opposite sides of the chart and
76
- // don't collide
77
- if ((point1.x > 0 && point2.x <= 0) || (point1.x < 0 && point2.x >= 0)) {
78
- return;
79
- }
80
- // Now let's calculate the distance between
81
- // these elements.
82
- let deltaY = point1.y - point2.y;
83
-
84
- // Our spacing is greater than our specified spacing,
85
- // so they don't collide.
86
- if (Math.abs(deltaY) > spacing) return;
87
- // If the labels collide, we'll push each
88
- collision = true;
89
- point2.labels.push(point1);
90
- return true; //stop the loop early
91
- });
92
- if (!collision) {
93
- stableLabels.push({
94
- ...point1,
95
- labels: [point1]
96
- });
97
- }
98
- });
99
- stableLabels = stableLabels.sort(sortLabels);
100
- return stableLabels;
101
- }
102
-
103
- function sortLabels(a, b) {
104
- return b.y - a.y;
105
- }
@@ -1,36 +0,0 @@
1
- //./selectionLayer.js
2
- import { createReducer } from "redux-act";
3
- import createAction from "./utils/createMetaAction";
4
- import omit from "lodash/omit";
5
-
6
- // ------------------------------------
7
- // Actions
8
- // ------------------------------------
9
- export const replacementLayerClear = createAction("replacementLayerClear");
10
- export const replacementLayerUpdate = createAction("REPLACEMENT_LAYER_UPDATE");
11
- export const replacementLayerDelete = createAction("REPLACEMENT_LAYER_DELETE");
12
-
13
- // ------------------------------------
14
- // Reducer
15
- // ------------------------------------
16
- export default createReducer(
17
- {
18
- [replacementLayerClear]: () => {
19
- return {};
20
- },
21
- [replacementLayerUpdate]: (state, payload) => {
22
- return {
23
- ...state,
24
- [payload.id]: {
25
- color: "darkolivegreen",
26
- id: payload.id,
27
- ...payload.range
28
- }
29
- };
30
- },
31
- [replacementLayerDelete]: (state, payload) => {
32
- return omit(state, payload.id);
33
- }
34
- },
35
- {}
36
- );
@@ -1,52 +0,0 @@
1
- import { combineReducers } from "redux";
2
- import { createReducer } from "redux-act";
3
- import createAction from "./utils/createMetaAction";
4
- import specialCutsiteFilterOptions from "../constants/specialCutsiteFilterOptions";
5
- // ------------------------------------
6
- // Actions
7
- // ------------------------------------
8
- export const filteredRestrictionEnzymesUpdate = createAction(
9
- "FILTERED_RESTRICTION_ENZYMES_UPDATE"
10
- );
11
- export const isEnzymeFilterAndUpdate = createAction("IS_ENZYME_FILTER_AND");
12
- export const filteredRestrictionEnzymesReset = createAction(
13
- "FILTERED_RESTRICTION_ENZYMES_RESET"
14
- );
15
- export const filteredRestrictionEnzymesAdd = createAction(
16
- "FILTERED_RESTRICTION_ENZYMES_ADD"
17
- );
18
- // ------------------------------------
19
- // Reducer
20
- // ------------------------------------
21
- const defaultInitialState = [specialCutsiteFilterOptions.single];
22
- // let initialState = defaultInitialState;
23
- // const localDefault = window.localStorage.getItem("tgInitialCutsiteFilter");
24
-
25
- // if (localDefault) {
26
- // try {
27
- // initialState = JSON.parse(localDefault);
28
- // if (!Array.isArray(initialState)) throw new Error("Must be an array");
29
- // } catch (e) {
30
- // initialState = defaultInitialState;
31
- // }
32
- // }
33
-
34
- export default combineReducers({
35
- //filteredRestrictionEnzymes refer to the enzymes actively included in the react-select filter component
36
- isEnzymeFilterAnd: createReducer(
37
- {
38
- [isEnzymeFilterAndUpdate]: (state, payload) => payload
39
- },
40
- false
41
- ),
42
- filteredRestrictionEnzymes: createReducer(
43
- {
44
- [filteredRestrictionEnzymesReset]: () => defaultInitialState,
45
- [filteredRestrictionEnzymesUpdate]: (state, payload) => payload,
46
- [filteredRestrictionEnzymesAdd]: function (state, payload) {
47
- return [...state, payload];
48
- }
49
- },
50
- defaultInitialState
51
- )
52
- });
@@ -1,34 +0,0 @@
1
- import { forEach } from "lodash-es";
2
- import { createSelector } from "reselect";
3
- import {
4
- defaultEnzymesByName,
5
- aliasedEnzymesByName
6
- } from "@teselagen/sequence-utils";
7
-
8
- export default createSelector(
9
- () => defaultEnzymesByName,
10
- (state, additionalEnzymes) => {
11
- return additionalEnzymes;
12
- },
13
- () => localStorage.getItem("enzymeGroups"), //it should recompute if the enzyme groups change in localstorage
14
- (defaultEnzymesByName, additionalEnzymes) => {
15
- const enzymesFromGroups = {};
16
- forEach(window.getExistingEnzymeGroups(), group => {
17
- forEach(group, enzymeName => {
18
- const enzyme = { ...aliasedEnzymesByName, ...additionalEnzymes }[
19
- enzymeName.toLowerCase()
20
- ];
21
- if (!enzyme) {
22
- console.warn("ruh roh, no enzyme found for: ", enzymeName);
23
- } else {
24
- enzymesFromGroups[enzymeName.toLowerCase()] = enzyme;
25
- }
26
- });
27
- });
28
- return {
29
- ...defaultEnzymesByName,
30
- ...additionalEnzymes,
31
- ...enzymesFromGroups
32
- };
33
- }
34
- );
@@ -1,3 +0,0 @@
1
- export const defaultCharWidth = 9;
2
- export const defaultContainerWidth = 400;
3
- export const defaultMarginWidth = 50;
package/ruler.css DELETED
@@ -1,89 +0,0 @@
1
- /* .managerListLadder {
2
- height: 265px;
3
- overflow: visible;
4
- border: 1px solid #E0E0E0;
5
- padding: 0 !important;
6
- position: fixed;
7
- width: 225px;
8
- }
9
-
10
- .left {
11
- border-color: black;
12
- position: absolute;
13
- height: 5px;
14
- width: 80%;
15
- }
16
-
17
- .right {
18
- border-color: black;
19
- position: absolute;
20
- height: 5px;
21
- width: 80%;
22
- }
23
-
24
- .tooltip {
25
- position: absolute;
26
- height: 0;
27
- }
28
-
29
- .tooltip .tooltiptext {
30
- visibility: hidden;
31
- position: absolute;
32
- width: auto;
33
- background-color: black;
34
- color: white;
35
- text-align: left;
36
- padding: 5px;
37
- font-size: 7pt;
38
- bottom: 5px;
39
- white-space: nowrap;
40
- border-radius: 6px;
41
- }
42
-
43
- .tooltip .tooltiptext::after {
44
- content: " ";
45
- /* i don't know what this content attribute does, but it works... */
46
- /* position: absolute;
47
- top: 100%;
48
- left: 50%;
49
- margin-left: -5px;
50
- border-width: 5px;
51
- border-style: solid;
52
- border-color: black transparent transparent transparent;
53
- }
54
-
55
- .tooltip:hover .tooltiptext {
56
- visibility: visible;
57
- }
58
-
59
- .rightLabel {
60
- margin-right: 2%;
61
- margin-left: 60%;
62
- position: relative;
63
- }
64
-
65
- .leftLabel {
66
- margin-left: 2%;
67
- margin-right: 60%;
68
- position: relative;
69
- }
70
-
71
- .block {
72
- height: 265px;
73
- max-height: none;
74
- padding-bottom: 40px;
75
- padding-top: 10px;
76
- overflow: scroll;
77
- }
78
-
79
- .fragmentsNumLabel {
80
- text-align: left;
81
- padding: 0 5px;
82
- color: #333333;
83
- height: 30px;
84
- width: 100%;
85
- }
86
-
87
-
88
-
89
- */
package/save.png DELETED
Binary file
package/saveTool.js DELETED
@@ -1,44 +0,0 @@
1
- import React from "react";
2
- import { Icon } from "@blueprintjs/core";
3
- import ToolbarItem from "./ToolbarItem";
4
- import { connectToEditor, handleSave } from "../withEditorProps";
5
- import { withHandlers } from "recompose";
6
- import { compose } from "redux";
7
-
8
- export default compose(
9
- connectToEditor(
10
- ({ readOnly, sequenceData = {}, lastSavedId = "134%!@#%!@#%!@%" }) => {
11
- return {
12
- readOnly: readOnly,
13
- sequenceData: sequenceData,
14
- hasBeenSaved:
15
- sequenceData.stateTrackingId === "initialLoadId" ||
16
- sequenceData.stateTrackingId === lastSavedId
17
- };
18
- }
19
- ),
20
- withHandlers({ handleSave })
21
- )(({
22
- toolbarItemProps,
23
- alwaysAllowSave,
24
- handleSave,
25
- readOnly,
26
- hasBeenSaved,
27
- onSave
28
- }) => {
29
- return (
30
- <ToolbarItem
31
- {...{
32
- Icon: <Icon data-test="saveTool" icon="floppy-disk" />,
33
- onIconClick: handleSave,
34
- disabled: alwaysAllowSave ? false : !onSave || hasBeenSaved || readOnly,
35
- tooltip: (
36
- <span>
37
- Save <span style={{ fontSize: 10 }}>(Cmd/Ctrl+S)</span>
38
- </span>
39
- ),
40
- ...toolbarItemProps
41
- }}
42
- />
43
- );
44
- });