@teselagen/ove 0.7.30-beta.1 → 0.7.30-beta.2
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.
- package/index.cjs.js +1739 -2203
- package/index.es.js +1739 -2203
- package/index.umd.js +1809 -2273
- package/package.json +15 -12
- package/selectors/orfsSelector.d.ts +2 -2
- package/selectors/translationsSelector.d.ts +1 -1
- package/src/AutoAnnotate.js +3 -3
- package/src/GlobalDialogUtils.js +2 -2
- package/src/ToolBar/alignmentTool.js +2 -2
- package/src/helperComponents/MergeFeaturesDialog/index.js +2 -2
- package/src/redux/alignments.js +2 -2
- package/src/redux/sequenceData/index.js +2 -2
- package/src/redux/sequenceData/upsertDeleteActionGenerator.js +2 -2
- package/src/selectors/cutsitesSelector.js +2 -2
- package/src/selectors/translationsSelector.js +3 -3
- package/src/utils/cleanSequenceData_DEPRECATED/arrayToObjWithIds.js +2 -2
- package/src/withEditorProps/index.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teselagen/ove",
|
|
3
|
-
"version": "0.7.30-beta.
|
|
3
|
+
"version": "0.7.30-beta.2",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -11,19 +11,22 @@
|
|
|
11
11
|
"./*": "./*"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@teselagen/sequence-utils": "0.3.32-beta.1",
|
|
15
|
-
"@teselagen/range-utils": "0.3.14-beta.1",
|
|
16
|
-
"@teselagen/ui": "0.8.6-beta.24",
|
|
17
|
-
"@teselagen/file-utils": "0.3.20",
|
|
18
|
-
"@teselagen/bio-parsers": "0.4.29-beta.1",
|
|
19
14
|
"@blueprintjs/core": "3.54.0",
|
|
20
15
|
"@hello-pangea/dnd": "16.2.0",
|
|
21
16
|
"@risingstack/react-easy-state": "^6.3.0",
|
|
17
|
+
"@teselagen/bio-parsers": "0.4.29-beta.1",
|
|
18
|
+
"@teselagen/file-utils": "0.3.20",
|
|
19
|
+
"@teselagen/range-utils": "0.3.14-beta.1",
|
|
22
20
|
"@teselagen/react-list": "0.8.18",
|
|
21
|
+
"@teselagen/sequence-utils": "0.3.32-beta.2",
|
|
22
|
+
"@teselagen/ui": "0.8.6-beta.27",
|
|
23
|
+
"@use-gesture/react": "10.3.0",
|
|
24
|
+
"biomsa": "^0.2.4",
|
|
23
25
|
"classnames": "^2.3.2",
|
|
24
|
-
"color": "^
|
|
26
|
+
"color": "^5.0.0",
|
|
25
27
|
"combokeys": "^3.0.1",
|
|
26
28
|
"copy-to-clipboard": "^3.3.1",
|
|
29
|
+
"cypress-real-events": "^1.13.0",
|
|
27
30
|
"deep-equal": "^1.1.1",
|
|
28
31
|
"dom-to-image": "^2.6.0",
|
|
29
32
|
"downloadjs": "^1.4.7",
|
|
@@ -58,11 +61,11 @@
|
|
|
58
61
|
"to-regex-range": "5.0.1",
|
|
59
62
|
"use-debounce": "^8.0.4",
|
|
60
63
|
"validate.io-nonnegative-integer-array": "^1.0.1",
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
64
|
+
"nanoid": "5.1.5"
|
|
65
|
+
},
|
|
66
|
+
"volta": {
|
|
67
|
+
"node": "18.18.0",
|
|
68
|
+
"yarn": "1.22.21"
|
|
66
69
|
},
|
|
67
70
|
"license": "MIT"
|
|
68
71
|
}
|
|
@@ -7,7 +7,7 @@ declare const _default: ((state: any) => {
|
|
|
7
7
|
forward: any;
|
|
8
8
|
annotationTypePlural: string;
|
|
9
9
|
isOrf: boolean;
|
|
10
|
-
id:
|
|
10
|
+
id: string;
|
|
11
11
|
}[]) & import('reselect').OutputSelectorFields<(args_0: any, args_1: any, args_2: any, args_3: any) => {
|
|
12
12
|
start: number;
|
|
13
13
|
end: number;
|
|
@@ -17,7 +17,7 @@ declare const _default: ((state: any) => {
|
|
|
17
17
|
forward: any;
|
|
18
18
|
annotationTypePlural: string;
|
|
19
19
|
isOrf: boolean;
|
|
20
|
-
id:
|
|
20
|
+
id: string;
|
|
21
21
|
}[], {
|
|
22
22
|
clearCache: () => void;
|
|
23
23
|
}> & {
|
|
@@ -7,7 +7,7 @@ declare const _default: ((state: any) => any) & import('reselect').OutputSelecto
|
|
|
7
7
|
forward: any;
|
|
8
8
|
annotationTypePlural: string;
|
|
9
9
|
isOrf: boolean;
|
|
10
|
-
id:
|
|
10
|
+
id: string;
|
|
11
11
|
}[], args_4: any, args_5: any, args_6: any[], args_7: any, args_8: any, args_9: any, args_10: any, args_11: any, args_12: any) => any, {
|
|
12
12
|
clearCache: () => void;
|
|
13
13
|
}> & {
|
package/src/AutoAnnotate.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { unparse } from "papaparse";
|
|
5
5
|
import pluralize from "pluralize";
|
|
6
6
|
import { SubmissionError, reduxForm } from "redux-form";
|
|
7
|
-
import
|
|
7
|
+
import { nanoid } from "nanoid";
|
|
8
8
|
import CreateAnnotationsPage from "./CreateAnnotationsPage";
|
|
9
9
|
import { formName } from "./constants";
|
|
10
10
|
import { AutoAnnotateBpMatchingDialog } from "./AutoAnnotateBpMatchingDialog";
|
|
@@ -403,7 +403,7 @@ FRT GAAGTTCCTATTCTCTAGAAAGTATAGGAACTTC misc_recomb orchid pink 0 0`,
|
|
|
403
403
|
if (ann.matchType === "protein") {
|
|
404
404
|
ann.sequence = convertProteinSeqToDNAIupac(ann.sequence);
|
|
405
405
|
}
|
|
406
|
-
const id =
|
|
406
|
+
const id = nanoid();
|
|
407
407
|
annotationsToCheckById[id] = {
|
|
408
408
|
...ann,
|
|
409
409
|
sequence: ann.isRegex
|
|
@@ -428,7 +428,7 @@ FRT GAAGTTCCTATTCTCTAGAAAGTATAGGAACTTC misc_recomb orchid pink 0 0`,
|
|
|
428
428
|
...annotationsToCheckById[a.id],
|
|
429
429
|
...a,
|
|
430
430
|
forward: a.strand !== -1,
|
|
431
|
-
id:
|
|
431
|
+
id: nanoid()
|
|
432
432
|
};
|
|
433
433
|
toRet.color =
|
|
434
434
|
toRet.color || getFeatureToColorMap()[toRet.type];
|
package/src/GlobalDialogUtils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { nanoid } from "nanoid";
|
|
2
2
|
|
|
3
3
|
import { cloneDeep, startCase } from "lodash-es";
|
|
4
4
|
import { convertRangeTo1Based } from "@teselagen/range-utils";
|
|
@@ -36,7 +36,7 @@ export function showDialog({
|
|
|
36
36
|
dialogHolder.CustomModalComponent = ModalComponent;
|
|
37
37
|
dialogHolder.props = props;
|
|
38
38
|
dialogHolder.overrideName = overrideName;
|
|
39
|
-
dialogHolder.setUniqKeyToForceRerender(
|
|
39
|
+
dialogHolder.setUniqKeyToForceRerender(nanoid());
|
|
40
40
|
}
|
|
41
41
|
export function hideDialog() {
|
|
42
42
|
delete dialogHolder.dialogType;
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import { reduxForm, FieldArray } from "redux-form";
|
|
11
11
|
import { anyToJson } from "@teselagen/bio-parsers";
|
|
12
12
|
import { flatMap } from "lodash-es";
|
|
13
|
-
import
|
|
13
|
+
import { nanoid } from "nanoid";
|
|
14
14
|
import { cloneDeep } from "lodash-es";
|
|
15
15
|
import classNames from "classnames";
|
|
16
16
|
|
|
@@ -155,7 +155,7 @@ class AlignmentTool extends React.Component {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
hideModal();
|
|
158
|
-
const alignmentId =
|
|
158
|
+
const alignmentId = nanoid();
|
|
159
159
|
// const alignmentIdMismatches = uniqid();
|
|
160
160
|
createNewAlignment({
|
|
161
161
|
id: alignmentId,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
|
|
4
4
|
import { reduxForm } from "redux-form";
|
|
5
5
|
|
|
@@ -58,7 +58,7 @@ class MergeFeaturesDialog extends React.Component {
|
|
|
58
58
|
upsertFeature(
|
|
59
59
|
{
|
|
60
60
|
...feat1,
|
|
61
|
-
id:
|
|
61
|
+
id: nanoid(),
|
|
62
62
|
start: start - 1,
|
|
63
63
|
end: end - 1,
|
|
64
64
|
name
|
package/src/redux/alignments.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
condensePairwiseAlignmentDifferences
|
|
4
4
|
} from "@teselagen/sequence-utils";
|
|
5
5
|
import { convertBasePosTraceToPerBpTrace } from "@teselagen/bio-parsers";
|
|
6
|
-
import
|
|
6
|
+
import { nanoid } from "nanoid";
|
|
7
7
|
|
|
8
8
|
import addDashesForMatchStartAndEndForTracks from "./utils/addDashesForMatchStartAndEndForTracks";
|
|
9
9
|
|
|
@@ -149,7 +149,7 @@ export default (state = {}, { payload = {}, type }) => {
|
|
|
149
149
|
if (type === "UPSERT_ALIGNMENT_RUN") {
|
|
150
150
|
const { id } = payload;
|
|
151
151
|
const payloadToUse = {
|
|
152
|
-
stateTrackingId: state[id]?.stateTrackingId ?
|
|
152
|
+
stateTrackingId: state[id]?.stateTrackingId ? nanoid() : "initialLoadId",
|
|
153
153
|
alignmentType: state[id]?.alignmentType,
|
|
154
154
|
...payload,
|
|
155
155
|
//assign default visibilities
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import deepEqual from "deep-equal";
|
|
2
2
|
import { tidyUpSequenceData } from "@teselagen/sequence-utils";
|
|
3
|
-
import
|
|
3
|
+
import { nanoid } from "nanoid";
|
|
4
4
|
|
|
5
5
|
import createAction from "../utils/createMetaAction";
|
|
6
6
|
import features from "./features";
|
|
@@ -75,7 +75,7 @@ export default function (state, action) {
|
|
|
75
75
|
return {
|
|
76
76
|
// ...cloneDeep(newState),
|
|
77
77
|
...newState,
|
|
78
|
-
stateTrackingId: newState.stateTrackingId ?
|
|
78
|
+
stateTrackingId: newState.stateTrackingId ? nanoid() : "initialLoadId"
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import omit from "lodash/omit";
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
|
|
4
4
|
// ------------------------------------
|
|
5
5
|
// Reducer
|
|
@@ -10,7 +10,7 @@ export default function upsertDeleteActionGenerator(
|
|
|
10
10
|
) {
|
|
11
11
|
return {
|
|
12
12
|
[upsertAction]: (state, payload) => {
|
|
13
|
-
const idToUse = payload.id ||
|
|
13
|
+
const idToUse = payload.id || nanoid();
|
|
14
14
|
return {
|
|
15
15
|
...state,
|
|
16
16
|
[idToUse]: { ...(state[idToUse] || {}), ...payload, id: idToUse }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { nanoid } from "nanoid";
|
|
2
2
|
import circularSelector from "./circularSelector";
|
|
3
3
|
import sequenceSelector from "./sequenceSelector";
|
|
4
4
|
import restrictionEnzymesSelector from "./restrictionEnzymesSelector";
|
|
@@ -20,7 +20,7 @@ function cutsitesSelector(sequence, circular, enzymeList, cutsiteLabelColors) {
|
|
|
20
20
|
const cutsitesForEnzyme = cutsitesByName[enzymeName];
|
|
21
21
|
cutsitesForEnzyme.forEach(function (cutsite) {
|
|
22
22
|
const numberOfCuts = cutsitesByName[enzymeName].length;
|
|
23
|
-
const uniqueId =
|
|
23
|
+
const uniqueId = nanoid();
|
|
24
24
|
cutsite.id = uniqueId;
|
|
25
25
|
cutsite.numberOfCuts = numberOfCuts;
|
|
26
26
|
cutsite.annotationType = "cutsite";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { reduce } from "lodash-es";
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
import sequenceSelector from "./sequenceSelector";
|
|
4
4
|
import orfsSelector from "./orfsSelector";
|
|
5
5
|
import { createSelector } from "reselect";
|
|
@@ -28,7 +28,7 @@ function translationsSelector(
|
|
|
28
28
|
const translationsToPass = {
|
|
29
29
|
...translationSearchMatches.reduce((acc, match) => {
|
|
30
30
|
if (!match) return acc;
|
|
31
|
-
const id = match.id ||
|
|
31
|
+
const id = match.id || nanoid();
|
|
32
32
|
acc[id] = {
|
|
33
33
|
...match,
|
|
34
34
|
id,
|
|
@@ -79,7 +79,7 @@ function translationsSelector(
|
|
|
79
79
|
(acc, isActive, frameName) => {
|
|
80
80
|
const frameOffset = Number(frameName);
|
|
81
81
|
if (isActive) {
|
|
82
|
-
const id =
|
|
82
|
+
const id = nanoid();
|
|
83
83
|
acc[id] = {
|
|
84
84
|
id,
|
|
85
85
|
start:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//helper function to make sure any arrays coming in
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { nanoid } from "nanoid";
|
|
4
4
|
|
|
5
5
|
//get converted to objects with unique ids
|
|
6
6
|
export default function arrayToObjWithIds(array) {
|
|
@@ -8,7 +8,7 @@ export default function arrayToObjWithIds(array) {
|
|
|
8
8
|
array.forEach(function (item) {
|
|
9
9
|
const newItem = {
|
|
10
10
|
...item,
|
|
11
|
-
id: item.id ||
|
|
11
|
+
id: item.id || nanoid()
|
|
12
12
|
};
|
|
13
13
|
newObj[newItem.id] = newItem;
|
|
14
14
|
});
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
invertRange,
|
|
28
28
|
normalizeRange
|
|
29
29
|
} from "@teselagen/range-utils";
|
|
30
|
-
import
|
|
30
|
+
import { nanoid } from "nanoid";
|
|
31
31
|
|
|
32
32
|
import addMetaToActionCreators from "../redux/utils/addMetaToActionCreators";
|
|
33
33
|
import { actions, editorReducer } from "../redux";
|
|
@@ -268,7 +268,7 @@ export const importSequenceFromFile =
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
if (seqData) {
|
|
271
|
-
seqData.stateTrackingId =
|
|
271
|
+
seqData.stateTrackingId = nanoid();
|
|
272
272
|
updateEditor(
|
|
273
273
|
{
|
|
274
274
|
getState: () => ({ VectorEditor: { [props.editorName]: props } }),
|