@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
@@ -1,71 +0,0 @@
1
- import { findSequenceMatches } from "@teselagen/sequence-utils";
2
- import sequenceSelector from "./sequenceSelector";
3
- import { createSelector } from "reselect";
4
- import circularSelector from "./circularSelector";
5
-
6
- function searchLayersSelector(
7
- sequence,
8
- isCircular,
9
- isOpen,
10
- searchString,
11
- ambiguousOrLiteral,
12
- dnaOrAA,
13
- isProtein,
14
- proteinSequence
15
- ) {
16
- if (!searchString || !isOpen) {
17
- return [];
18
- }
19
- if (isProtein) {
20
- const searchingDna = dnaOrAA === "DNA";
21
- const matches = findSequenceMatches(
22
- searchingDna ? sequence : proteinSequence,
23
- searchString,
24
- {
25
- isCircular: false,
26
- isProteinSequence: true,
27
- isAmbiguous: ambiguousOrLiteral === "AMBIGUOUS",
28
- // isProteinSearch: dnaOrAA !== "DNA",
29
- searchReverseStrand: false
30
- }
31
- ).sort(({ start }, { start: start2 }) => {
32
- return start - start2;
33
- });
34
- return searchingDna
35
- ? matches
36
- : matches.map(({ start, end, ...rest }) => ({
37
- ...rest,
38
- isSearchLayer: true,
39
- start: start * 3,
40
- end: end * 3 + 2
41
- }));
42
- }
43
- const matches = findSequenceMatches(sequence, searchString, {
44
- isCircular,
45
- isAmbiguous: ambiguousOrLiteral === "AMBIGUOUS",
46
- isProteinSearch: dnaOrAA !== "DNA",
47
- searchReverseStrand: true
48
- }).sort(({ start }, { start: start2 }) => {
49
- return start - start2;
50
- });
51
- return matches.map(match => ({
52
- ...match,
53
- forward: !match.bottomStrand,
54
- className:
55
- "veSearchLayer " +
56
- (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
57
- isSearchLayer: true
58
- }));
59
- }
60
-
61
- export default createSelector(
62
- sequenceSelector,
63
- circularSelector,
64
- state => state.findTool && state.findTool.isOpen,
65
- state => state.findTool && state.findTool.searchText,
66
- state => state.findTool && state.findTool.ambiguousOrLiteral,
67
- state => state.findTool && state.findTool.dnaOrAA,
68
- state => state.sequenceData.isProtein,
69
- state => state.sequenceData.proteinSequence,
70
- searchLayersSelector
71
- );
@@ -1,89 +0,0 @@
1
- import { showContextMenu } from "@teselagen/ui";
2
- import without from "lodash/without";
3
- import { createReducer } from "redux-act";
4
- import createAction from "./utils/createMetaAction";
5
-
6
- // ------------------------------------
7
- // Actions
8
- // ------------------------------------
9
- export const annotationSelect = createAction("VE_ANNOTATION_SELECT");
10
- export const updateSelectedAnnotation = createAction(
11
- "VE_ANNOTATION_UPDATE_SELECTED"
12
- );
13
- export const annotationDeselect = createAction("VE_ANNOTATION_DESELECT");
14
- export const annotationDeselectAll = createAction("VE_ANNOTATION_DESELECT_ALL");
15
-
16
- export function replacementLayerRightClicked({ event, annotation }, meta) {
17
- event.preventDefault();
18
- event.stopPropagation();
19
- return function (dispatch /* getState */) {
20
- const items = [
21
- {
22
- text: "Remove Edit",
23
- onClick: function () {
24
- dispatch({
25
- type: "REPLACEMENT_LAYER_DELETE",
26
- meta,
27
- payload: { ...annotation }
28
- });
29
- }
30
- }
31
- ];
32
-
33
- showContextMenu(items, undefined, event);
34
- };
35
- }
36
-
37
- // ------------------------------------
38
- // Reducer
39
- // ------------------------------------
40
- const startingState = {
41
- idMap: {},
42
- idStack: []
43
- };
44
- export default createReducer(
45
- {
46
- [annotationSelect]: (state, payload) => {
47
- if (!payload.id) throw new Error("Annotation must have an id!");
48
- const newState = {
49
- idMap: {
50
- ...state.idMap,
51
- [payload.id]: payload
52
- },
53
- idStack: [...state.idStack, payload.id]
54
- };
55
- return newState;
56
- },
57
- [annotationDeselect]: (state, payload) => {
58
- const id = payload.id || payload;
59
- const idMap = { ...state.idMap };
60
- delete idMap[id];
61
- const idStack = without(state.idStack, id);
62
- return {
63
- idMap,
64
- idStack
65
- };
66
- },
67
- [updateSelectedAnnotation]: (state, payload) => {
68
- const id = payload.id;
69
- const idMap = { ...state.idMap };
70
- if (!idMap[id]) {
71
- return state;
72
- }
73
- return {
74
- idMap: {
75
- ...idMap,
76
- [id]: {
77
- ...idMap[id],
78
- ...payload
79
- }
80
- },
81
- idStack: state.idStack
82
- };
83
- },
84
- [annotationDeselectAll]: () => {
85
- return startingState;
86
- }
87
- },
88
- startingState
89
- );
@@ -1 +0,0 @@
1
- export default state => state.selectedAnnotations;
@@ -1,21 +0,0 @@
1
- import { createSelector } from "reselect";
2
- import selectedAnnotationsSelector from "./selectedAnnotationsSelector";
3
-
4
- export default createSelector(
5
- selectedAnnotationsSelector,
6
- function (selectedAnnotations) {
7
- const { idStack, idMap } = selectedAnnotations;
8
- const cutsiteIdMap = {};
9
- const cutsiteIdStack = idStack.filter(function (id) {
10
- if (idMap[id].annotationType === "cutsite") {
11
- cutsiteIdMap[id] = idMap[id];
12
- return true;
13
- }
14
- return false;
15
- });
16
- return {
17
- idStack: cutsiteIdStack,
18
- idMap: cutsiteIdMap
19
- };
20
- }
21
- );
@@ -1,21 +0,0 @@
1
- import { createReducer } from "redux-act";
2
- import createAction from "./utils/createMetaAction";
3
-
4
- // ------------------------------------
5
- // Actions
6
- // ------------------------------------
7
-
8
- export const updateSelectedPartTags = createAction("UPDATE_SELECTED_PART_TAGS");
9
-
10
- // ------------------------------------
11
- // Reducer
12
- // ------------------------------------
13
-
14
- export default createReducer(
15
- {
16
- [updateSelectedPartTags]: (state, payload) => {
17
- return { ...state, parts: payload };
18
- }
19
- },
20
- {}
21
- );
package/selectionLayer.js DELETED
@@ -1,25 +0,0 @@
1
- export function getAllSelectionLayers({
2
- additionalSelectionLayers = [],
3
- searchLayers = [],
4
- selectionLayer
5
- }) {
6
- const selectionLayers = [
7
- ...additionalSelectionLayers,
8
- ...searchLayers,
9
- ...(Array.isArray(selectionLayer) ? selectionLayer : [selectionLayer])
10
- ];
11
- const doubleWrappedColor = "#edb2f1";
12
- // const doubleWrappedColor = "#abdbfb";
13
-
14
- if (selectionLayer.overlapsSelf) {
15
- selectionLayers.push({
16
- start: selectionLayer.end + 1,
17
- end: selectionLayer.start - 1,
18
- color: selectionLayer.isWrappedAddon ? undefined : doubleWrappedColor
19
- });
20
- if (selectionLayer.isWrappedAddon) {
21
- selectionLayer.color = doubleWrappedColor;
22
- }
23
- }
24
- return selectionLayers;
25
- }
package/sequence.js DELETED
@@ -1,12 +0,0 @@
1
- import { createReducer } from "redux-act";
2
- import createAction from "../utils/createMetaAction";
3
-
4
- // ------------------------------------
5
- // Actions
6
- // ------------------------------------
7
- export const addBps = createAction("addBps");
8
-
9
- // ------------------------------------
10
- // Reducer
11
- // ------------------------------------
12
- export default createReducer({}, "");
@@ -1,43 +0,0 @@
1
- //./selectionLayer.js
2
- import { createReducer } from "redux-act";
3
- import createAction from "./utils/createMetaAction";
4
-
5
- // ------------------------------------
6
- // Actions
7
- // ------------------------------------
8
- export const addToUndoStack = createAction("ADD_TO_UNDO_STACK");
9
- export const veUndo = createAction("VE_UNDO_META");
10
- export const veRedo = createAction("VE_REDO_META");
11
-
12
- // ------------------------------------
13
- // Reducer
14
- // ------------------------------------
15
- export default createReducer(
16
- {
17
- [addToUndoStack]: (state, payload) => {
18
- return {
19
- ...state,
20
- future: [],
21
- past: [...(state.past || []), payload]
22
- };
23
- },
24
- [veUndo]: (state, presentState) => {
25
- return {
26
- ...state,
27
- past: (state.past || []).slice(0, -1),
28
- future: (state.future || []).concat(presentState)
29
- };
30
- },
31
- [veRedo]: (state, presentState) => {
32
- return {
33
- ...state,
34
- future: (state.future || []).slice(0, -1),
35
- past: (state.past || []).concat(presentState)
36
- };
37
- }
38
- },
39
- {
40
- past: [],
41
- future: []
42
- }
43
- );
@@ -1,2 +0,0 @@
1
- const sequenceDataSelector = state => state.sequenceData;
2
- export default sequenceDataSelector;
@@ -1,5 +0,0 @@
1
- import sequenceSelector from "./sequenceSelector";
2
-
3
- export default function (state) {
4
- return sequenceSelector(state).length;
5
- }
@@ -1,4 +0,0 @@
1
- import sequenceDataSelector from "./sequenceDataSelector";
2
- export default function (state) {
3
- return sequenceDataSelector(state).sequence;
4
- }
File without changes
package/shouldFlipText.js DELETED
@@ -1,4 +0,0 @@
1
- export default function shouldFlipText(_angle) {
2
- const angle = _angle > 2 * Math.PI ? _angle - 2 * Math.PI : _angle;
3
- return angle > Math.PI * 0.5 && angle < Math.PI * 1.5;
4
- }
package/shouldRerender.js DELETED
@@ -1,27 +0,0 @@
1
- import { pick, isEqualWith, isFunction } from "lodash-es";
2
- const shouldRerender = (propKeys, stateKeys, that) => {
3
- if (!that.hasRendered) {
4
- that.hasRendered = true;
5
- return true;
6
- }
7
- const nextProps = that.props;
8
- const oldProps = that.oldProps || {};
9
- const a = !isEq(pick(nextProps, propKeys), pick(oldProps, propKeys));
10
- that.oldProps = nextProps;
11
- const nextState = that.state;
12
- const oldState = that.oldState || {};
13
- const b =
14
- !isEq(pick(nextState, stateKeys), pick(oldState, stateKeys)) || !isEq;
15
- that.oldState = nextState;
16
- return a || b;
17
- };
18
- export default shouldRerender;
19
-
20
- const isEq = (o1, o2) => {
21
- const isEq = isEqualWith(o1, o2, function (val1, val2) {
22
- if (isFunction(val1) && isFunction(val2)) {
23
- return val1 === val2 || val1.toString() === val2.toString();
24
- }
25
- });
26
- return isEq;
27
- };
package/showFileDialog.js DELETED
@@ -1,25 +0,0 @@
1
- // TODO maybe move to TRC or elsewhere
2
- let hiddenInput;
3
- let callback;
4
-
5
- function getInput(multiple) {
6
- if (!hiddenInput) {
7
- hiddenInput = document.createElement("input");
8
- hiddenInput.type = "file";
9
- hiddenInput.style.position = "absolute";
10
- hiddenInput.style.visibility = "hidden";
11
- hiddenInput.addEventListener("change", event => {
12
- callback(event.target.files);
13
- });
14
-
15
- document.body.appendChild(hiddenInput);
16
- }
17
- hiddenInput.multiple = multiple ? "multiple" : undefined;
18
- return hiddenInput;
19
- }
20
-
21
- export default function showFileDialog({ multiple = false, onSelect }) {
22
- const input = getInput(multiple);
23
- callback = onSelect;
24
- input.click();
25
- }
package/showGCContent.js DELETED
@@ -1,23 +0,0 @@
1
- import { createReducer } from "redux-act";
2
-
3
- //./caretPosition.js
4
- import createAction from "./utils/createMetaAction";
5
- // import createReducer from "./utils/createMergedDefaultStateReducer";
6
-
7
- // ------------------------------------
8
- // Actions
9
- // ------------------------------------
10
- export const toggleShowGCContent = createAction("toggleShowGCContent");
11
-
12
- // ------------------------------------
13
- // Reducer
14
- // ------------------------------------
15
- export default createReducer(
16
- {
17
- [toggleShowGCContent]: (state, val) => {
18
- localStorage.setItem("showGCContent", val);
19
- return val;
20
- }
21
- },
22
- window.localStorage.getItem("showGCContent")
23
- );
Binary file
package/show_features.png DELETED
Binary file
package/show_orfs.png DELETED
Binary file
package/show_primers.png DELETED
Binary file
package/simpleDialog.css DELETED
@@ -1,13 +0,0 @@
1
- .simple-dialog .dialog-buttons {
2
- display: flex;
3
- flex-direction: row;
4
- justify-content: flex-end;
5
- }
6
-
7
- .simple-dialog .dialog-buttons > * {
8
- margin-left: 10px;
9
- }
10
-
11
- .simple-dialog .bp3-form-content {
12
- height: 40px;
13
- }
@@ -1,22 +0,0 @@
1
- export default {
2
- type2s: {
3
- value: "type2s",
4
- label: "Type IIS Enzymes",
5
- isSpecialGroup: true
6
- },
7
- single: {
8
- value: "single",
9
- label: "Single cutters",
10
- cutsThisManyTimes: 1
11
- },
12
- double: {
13
- value: "double",
14
- label: "Double cutters",
15
- cutsThisManyTimes: 2
16
- },
17
- triple: {
18
- value: "triple",
19
- label: "Triple cutters",
20
- cutsThisManyTimes: 3
21
- }
22
- };
@@ -1,2 +0,0 @@
1
- const tagsToBoldSelector = state => state.selectedPartTags.parts;
2
- export default tagsToBoldSelector;
package/toggle_views.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17 17h-10v-10h10v10zm7 3l-5-3v-10l5-3v16zm-24-16l5 3v10l-5 3v-16z"/></svg>
package/toolBar.js DELETED
@@ -1,23 +0,0 @@
1
- import createAction from "./utils/createMetaAction";
2
- import createMergedDefaultStateReducer from "./utils/createMergedDefaultStateReducer";
3
- // ------------------------------------
4
- // Actions
5
- // ------------------------------------
6
- export const openToolbarItemUpdate = createAction("openToolbarItemUpdate");
7
-
8
- // ------------------------------------
9
- // Reducer
10
- // ------------------------------------
11
- export default createMergedDefaultStateReducer(
12
- {
13
- [openToolbarItemUpdate]: (state, payload) => {
14
- return {
15
- ...state,
16
- openItem: payload
17
- };
18
- }
19
- },
20
- {
21
- openItem: ""
22
- }
23
- );
@@ -1,14 +0,0 @@
1
- import { createSelector } from "reselect";
2
- import searchLayersSelector from "./searchLayersSelector";
3
-
4
- export default createSelector(
5
- searchLayersSelector,
6
- state => state.findTool && state.findTool.dnaOrAA,
7
- state => state.findTool && state.findTool.highlightAll,
8
- state => state.findTool && state.findTool.matchNumber,
9
- (searchLayers, dnaOrAA, highlightAll, matchNumber) => {
10
- if (dnaOrAA === "DNA") return [];
11
- if (!highlightAll) return [searchLayers[matchNumber]];
12
- return searchLayers;
13
- }
14
- );
package/translations.js DELETED
@@ -1,20 +0,0 @@
1
- import { createReducer } from "redux-act";
2
- import createAction from "../utils/createMetaAction";
3
- import upsertDeleteActionGenerator from "./upsertDeleteActionGenerator";
4
-
5
- // ------------------------------------
6
- // Actions
7
- // ------------------------------------
8
- export const _upsertTranslation = createAction("UPSERT_TRANSLATION");
9
- export const deleteTranslation = createAction("DELETE_TRANSLATION");
10
-
11
- const defaultValue = {};
12
- // ------------------------------------
13
- // Reducer
14
- // ------------------------------------
15
- export default createReducer(
16
- {
17
- ...upsertDeleteActionGenerator(_upsertTranslation, deleteTranslation)
18
- },
19
- defaultValue
20
- );
@@ -1,8 +0,0 @@
1
- import { createSelector } from "reselect";
2
- import sequenceDataSelector from "./sequenceDataSelector";
3
-
4
- function translationsRawSelector(sequenceData) {
5
- return sequenceData.translations;
6
- }
7
-
8
- export default createSelector(sequenceDataSelector, translationsRawSelector);
@@ -1,137 +0,0 @@
1
- import { reduce } from "lodash-es";
2
- import uuid from "shortid";
3
- import sequenceSelector from "./sequenceSelector";
4
- import orfsSelector from "./orfsSelector";
5
- import { createSelector } from "reselect";
6
-
7
- import { getAminoAcidDataForEachBaseOfDna } from "@teselagen/sequence-utils";
8
- import each from "lodash/each";
9
- import translationsRawSelector from "./translationsRawSelector";
10
- import translationSearchMatchesSelector from "./translationSearchMatchesSelector";
11
- import { normalizePositionByRangeLength } from "@teselagen/range-utils";
12
- import cdsFeaturesSelector from "./cdsFeaturesSelector";
13
- import circularSelector from "./circularSelector";
14
-
15
- function translationsSelector(
16
- isCircular,
17
- translationSearchMatches,
18
- sequence,
19
- orfs,
20
- showOrfTranslations,
21
- showOrfs,
22
- cdsFeatures,
23
- showCdsFeatureTranslations,
24
- showFeatures,
25
- translations,
26
- frameTranslations
27
- ) {
28
- const translationsToPass = {
29
- ...translationSearchMatches.reduce((acc, match) => {
30
- if (!match) return acc;
31
- const id = match.id || uuid();
32
- acc[id] = {
33
- ...match,
34
- id,
35
- translationType: "AA Search Match",
36
- isOrf: true, //pass isOrf = true here in order to not have it show up in the properties window
37
- forward: !match.bottomStrand
38
- };
39
- return acc;
40
- }, {}),
41
- ...reduce(
42
- translations,
43
- (acc, translation) => {
44
- if (!translation.isOrf) {
45
- acc[translation.id] = {
46
- ...translation,
47
- translationType: "User Created"
48
- };
49
- }
50
- return acc;
51
- },
52
- {}
53
- ),
54
- ...(showOrfTranslations && showOrfs
55
- ? reduce(
56
- orfs,
57
- (acc, orf) => {
58
- acc[orf.id] = { ...orf, translationType: "ORF" };
59
- return acc;
60
- },
61
- {}
62
- )
63
- : {}),
64
- ...(showCdsFeatureTranslations &&
65
- showFeatures &&
66
- reduce(
67
- cdsFeatures,
68
- (acc, cdsFeature) => {
69
- acc[cdsFeature.id] = {
70
- ...cdsFeature,
71
- translationType: "CDS Feature"
72
- };
73
- return acc;
74
- },
75
- {}
76
- )),
77
- ...reduce(
78
- frameTranslations,
79
- (acc, isActive, frameName) => {
80
- const frameOffset = Number(frameName);
81
- if (isActive) {
82
- const id = uuid();
83
- acc[id] = {
84
- id,
85
- start:
86
- isCircular || frameOffset > 0
87
- ? normalizePositionByRangeLength(
88
- 0 + frameOffset + (frameOffset > 0 ? -1 : 1),
89
- sequence.length
90
- )
91
- : 0,
92
- end:
93
- isCircular || frameOffset < 0
94
- ? normalizePositionByRangeLength(
95
- sequence.length -
96
- 1 +
97
- frameOffset +
98
- (frameOffset > 0 ? -1 : 1),
99
- sequence.length
100
- )
101
- : sequence.length - 1,
102
- translationType: "Frame",
103
- forward: frameOffset > 0,
104
- isOrf: true //pass isOrf = true here in order to not have it show up in the properties window
105
- };
106
- }
107
- return acc;
108
- },
109
- {}
110
- )
111
- };
112
- each(translationsToPass, function (translation) {
113
- translation.aminoAcids = getAminoAcidDataForEachBaseOfDna(
114
- sequence,
115
- translation.forward,
116
- translation
117
- );
118
- });
119
- return translationsToPass;
120
- }
121
-
122
- export default createSelector(
123
- circularSelector,
124
- translationSearchMatchesSelector,
125
- sequenceSelector,
126
- orfsSelector,
127
- state => state.annotationVisibility.orfTranslations,
128
- state => state.annotationVisibility.orfs,
129
- cdsFeaturesSelector,
130
- state => state.annotationVisibility.cdsFeatureTranslations,
131
- state => state.annotationVisibility.features,
132
- translationsRawSelector,
133
- state => state.frameTranslations,
134
- state => state.sequenceData.isProtein,
135
- state => state.sequenceData.proteinSequence,
136
- translationsSelector
137
- );
package/typeField.js DELETED
@@ -1,24 +0,0 @@
1
- import React from "react";
2
- import { getFeatureToColorMap } from "@teselagen/sequence-utils";
3
-
4
- export const typeField = {
5
- path: "type",
6
- type: "string",
7
- render: (name, { color }) => {
8
- const colorToUse =
9
- color || getFeatureToColorMap({ includeHidden: true })[name];
10
- return (
11
- <div style={{ display: "flex", alignItems: "center" }}>
12
- <div
13
- style={{
14
- height: 20,
15
- width: 20,
16
- background: colorToUse,
17
- marginRight: 3
18
- }}
19
- />
20
- {name}
21
- </div>
22
- );
23
- }
24
- };