@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.
- package/CreateAnnotationsPage.d.ts +4 -3
- package/README.md +1 -1
- package/fileUtils.d.ts +12 -0
- package/html2canvas.esm--JN4fLQL.js +7891 -0
- package/html2canvas.esm-B7d7VJmQ.cjs +7891 -0
- package/index.cjs.js +1305 -1121
- package/index.es.js +1305 -1121
- package/index.umd.js +189161 -0
- package/ove.css +17 -4
- package/package.json +5 -9
- package/redux/findTool.d.ts +1 -0
- package/selectors/searchLayersSelector.d.ts +1 -1
- package/src/AutoAnnotate.js +1 -1
- package/src/CreateAnnotationsPage.js +1 -2
- package/src/Editor/style.css +8 -3
- package/src/FindBar/index.js +32 -1
- package/src/RowItem/SelectionLayer/index.js +42 -4
- package/src/RowItem/SelectionLayer/style.css +8 -0
- package/src/fileUtils.js +103 -0
- package/src/helperComponents/PropertiesDialog/TranslationProperties.js +1 -1
- package/src/redux/findTool.js +9 -0
- package/src/selectors/searchLayersSelector.js +40 -2
- package/style.css +12098 -1
- package/AASliver.js +0 -187
- package/AddLaddersDialog.js +0 -82
- package/AdditionalCutsiteInfoDialog.js +0 -599
- package/AlignmentVisibilityTool.js +0 -105
- package/AnnotationContainerHolder.js +0 -20
- package/AnnotationPositioner.js +0 -27
- package/AutoAnnotate.js +0 -501
- package/AutoAnnotateBpMatchingDialog.js +0 -208
- package/Axis.js +0 -151
- package/AxisNumbers.js +0 -35
- package/Browser.js +0 -106
- package/Caret.js +0 -63
- package/Chromatogram.js +0 -293
- package/CircularDnaSequence.js +0 -73
- package/CircularZoomMinimap.js +0 -16
- package/ColorPicker.js +0 -30
- package/CommandHotkeyHandler.js +0 -44
- package/CreateAnnotationsPage.js +0 -98
- package/Cutsite.js +0 -18
- package/CutsiteProperties.js +0 -176
- package/CutsiteSelectionLayers.js +0 -47
- package/Cutsites.js +0 -271
- package/DeletionLayer.js +0 -28
- package/DropHandler.css +0 -21
- package/DropHandler.js +0 -64
- package/EditCaretPosition.js +0 -234
- package/EditTrackNameDialog.js +0 -30
- package/Feature.js +0 -83
- package/FeatureProperties.js +0 -6
- package/FillWindow.js +0 -47
- package/GenbankView.js +0 -74
- package/GeneralProperties.js +0 -117
- package/GenericAnnotationProperties.js +0 -406
- package/GlobalDialog.js +0 -73
- package/GlobalDialogUtils.js +0 -110
- package/GoToDialog.js +0 -25
- package/HorizontalPanelDragHandle.js +0 -35
- package/Keyboard.js +0 -85
- package/Labels.js +0 -327
- package/Ladder.css +0 -20
- package/Ladder.js +0 -303
- package/MeltingTemp.js +0 -85
- package/Menlo.ttf +0 -0
- package/Minimap.js +0 -515
- package/Mismatches.js +0 -134
- package/Monaco.ttf +0 -0
- package/MultipleSeqsDetectedOnImportDialog.js +0 -74
- package/Orf.js +0 -109
- package/OrfProperties.js +0 -117
- package/Orfs.js +0 -35
- package/PCRTool.js +0 -179
- package/PairwiseAlignmentView.js +0 -68
- package/Part.js +0 -34
- package/PartProperties.js +0 -9
- package/PassThrough.js +0 -3
- package/PerformantSelectionLayer.js +0 -32
- package/PinchHelper.js +0 -24
- package/PointedAnnotation.js +0 -347
- package/PositionAnnotationOnCircle.js +0 -26
- package/Primer.js +0 -41
- package/PrimerProperties.js +0 -19
- package/ReflexContainer.js +0 -802
- package/ReflexElement.js +0 -160
- package/ReflexEvents.js +0 -77
- package/ReflexSplitter.js +0 -205
- package/RenameSequenceDialog.js +0 -7
- package/RotateCircularViewSlider.js +0 -93
- package/SelectDialog.js +0 -150
- package/SequenceName.js +0 -15
- package/SimpleCircularOrLinearView.js +0 -381
- package/SimpleOligoPreview.js +0 -39
- package/SingleEnzymeCutsiteInfo.js +0 -139
- package/ToolbarItem.js +0 -192
- package/Translation.js +0 -198
- package/TranslationProperties.js +0 -149
- package/UncontrolledSliderWithPlusMinusBtns.css +0 -5
- package/UncontrolledSliderWithPlusMinusBtns.js +0 -134
- package/VeTopRightContainer.js +0 -12
- package/ZoomCircularViewSlider.js +0 -62
- package/ZoomLinearView.js +0 -47
- package/addAlignment.js +0 -6
- package/addMetaToActionCreators.js +0 -12
- package/addWrappedAddons.js +0 -20
- package/alignmentTool.js +0 -503
- package/alignments.js +0 -379
- package/annotationLabelVisibility.js +0 -2
- package/annotationSearchSelector.js +0 -24
- package/annotationTypes.js +0 -35
- package/annotationVisibility.js +0 -196
- package/annotationsToSupport.js +0 -104
- package/arrayToObjWithIds.js +0 -17
- package/arrayUtils.js +0 -19
- package/array_move.js +0 -10
- package/calculateTickMarkPositionsForGivenRange.js +0 -47
- package/caretPosition.js +0 -27
- package/cdsFeaturesSelector.js +0 -9
- package/charWidth.js +0 -22
- package/circular.js +0 -19
- package/circularSelector.js +0 -4
- package/clickAndDragUtils.js +0 -576
- package/coerceInitialValue.js +0 -7
- package/combineReducersDontIgnoreKeys.js +0 -12
- package/commandUtils.js +0 -20
- package/constants.js +0 -2
- package/copyOptions.js +0 -34
- package/createFragmentLines.js +0 -120
- package/createMergedDefaultStateReducer.js +0 -30
- package/createMetaAction.js +0 -12
- package/createSequenceInputPopup.js +0 -290
- package/createSequenceInputPopupStyle.css +0 -87
- package/createSimpleDialog.js +0 -89
- package/createYourOwnEnzyme.js +0 -39
- package/cutsiteLabelColorSelector.js +0 -6
- package/cutsiteTool.js +0 -88
- package/cutsitesByRangeSelector.js +0 -5
- package/cutsitesSelector.js +0 -61
- package/darkmode.css +0 -98
- package/defaultConfig.js +0 -150
- package/deletionLayers.js +0 -36
- package/description.js +0 -21
- package/digestTool.js +0 -34
- package/dnaToColor.js +0 -17
- package/downloadTool.js +0 -39
- package/draggableClassnames.js +0 -5
- package/drawAnnotations.js +0 -440
- package/drawDirectedPiePiece.js +0 -142
- package/editTool.js +0 -49
- package/editorSelector.js +0 -2
- package/editorUtils.js +0 -205
- package/estimateRowHeight.js +0 -184
- package/featureLengthsToHide.js +0 -27
- package/featureTool.js +0 -34
- package/features.js +0 -19
- package/featuresSelector.js +0 -8
- package/filteredCutsitesSelector.js +0 -136
- package/filteredFeaturesSelector.js +0 -32
- package/filteredPartsSelector.js +0 -57
- package/filteredPrimersSelector.js +0 -27
- package/filteredRestrictionEnzymesSelector.js +0 -1
- package/find.png +0 -0
- package/findTool.js +0 -79
- package/findToolConstants.js +0 -1
- package/frameTranslations.js +0 -52
- package/fullscreen.png +0 -0
- package/getAdditionalEnzymesSelector.js +0 -46
- package/getAngleForPositionMidpoint.js +0 -3
- package/getAnnotationClassnames.js +0 -12
- package/getAnnotationNameAndStartStopString.js +0 -61
- package/getBpsPerRow.js +0 -19
- package/getCutsiteLabelHeights.js +0 -56
- package/getGapMap.js +0 -12
- package/getGaps.js +0 -27
- package/getInternalLabel.js +0 -40
- package/getOveHotkeyDefs.js +0 -12
- package/getPairwiseOverviewLinearViewOptions.js +0 -38
- package/getRangeAnglesSpecial.js +0 -12
- package/getStructuredBases.js +0 -97
- package/getTrackFromEvent.js +0 -25
- package/getVisibleStartEnd.js +0 -7
- package/getXStartAndWidthFromNonCircularRange.js +0 -12
- package/getXStartAndWidthOfRangeWrtRow.js +0 -27
- package/getXStartAndWidthOfRowAnnotation.js +0 -19
- package/getYOffset.js +0 -15
- package/hoveredAnnotation.js +0 -24
- package/importTool.js +0 -27
- package/index.js +0 -71
- package/inlineFindTool.js +0 -38
- package/isElementInViewport.js +0 -29
- package/isEnzymeFilterAndSelector.js +0 -1
- package/isTargetWithinEl.js +0 -6
- package/labelLineIntensity.js +0 -25
- package/labelSize.js +0 -23
- package/ladderDefaults.js +0 -25
- package/lastSavedId.js +0 -20
- package/lineageLines.js +0 -11
- package/linear.png +0 -0
- package/makeStore.js +0 -34
- package/massageTickSpacing.js +0 -19
- package/materiallyAvailable.js +0 -19
- package/middleware.js +0 -112
- package/minimumOrfSize.js +0 -24
- package/minimumOrfSizeSelector.js +0 -2
- package/modalActions.js +0 -3
- package/moveCaret.js +0 -58
- package/name.js +0 -19
- package/normalizeAngle.js +0 -3
- package/normalizeAngleRange.js +0 -9
- package/oligoTool.js +0 -30
- package/onlyUpdateForKeysDeep.js +0 -31
- package/orfFrameToColorMap.js +0 -10
- package/orfTool.js +0 -136
- package/orfsSelector.js +0 -15
- package/panelsShown.js +0 -294
- package/partLengthsToHide.js +0 -23
- package/partOverhangs.js +0 -6
- package/partTagSearch.js +0 -69
- package/partTool.js +0 -45
- package/parts.js +0 -19
- package/partsSelector.js +0 -8
- package/pie.png +0 -0
- package/polarToSpecialCartesian.js +0 -7
- package/positionCutsites.js +0 -6
- package/prepareRowData.js +0 -64
- package/primerBases.js +0 -221
- package/primerLengthsToHide.js +0 -27
- package/primers.js +0 -19
- package/primersSelector.js +0 -8
- package/print.png +0 -0
- package/printTool.js +0 -31
- package/propertiesTool.js +0 -40
- package/proteinUtils.js +0 -3
- package/pureNoFunc.js +0 -18
- package/readOnly.js +0 -25
- package/redoTool.js +0 -30
- package/reflex-styles.css +0 -128
- package/reflex-styles.css.map +0 -9
- package/relaxLabelAngles.js +0 -157
- package/relaxLabels_DEPRECATED.js +0 -105
- package/replacementLayers.js +0 -36
- package/restrictionEnzymes.js +0 -52
- package/restrictionEnzymesSelector.js +0 -34
- package/rowviewContants.js +0 -3
- package/ruler.css +0 -89
- package/save.png +0 -0
- package/saveTool.js +0 -44
- package/searchLayersSelector.js +0 -71
- package/selectedAnnotations.js +0 -89
- package/selectedAnnotationsSelector.js +0 -1
- package/selectedCutsitesSelector.js +0 -21
- package/selectedPartTags.js +0 -21
- package/selectionLayer.js +0 -25
- package/sequence.js +0 -12
- package/sequenceDataHistory.js +0 -43
- package/sequenceDataSelector.js +0 -2
- package/sequenceLengthSelector.js +0 -5
- package/sequenceSelector.js +0 -4
- package/sharedActionCreators.js +0 -0
- package/shouldFlipText.js +0 -4
- package/shouldRerender.js +0 -27
- package/showFileDialog.js +0 -25
- package/showGCContent.js +0 -23
- package/show_cut_sites.png +0 -0
- package/show_features.png +0 -0
- package/show_orfs.png +0 -0
- package/show_primers.png +0 -0
- package/simpleDialog.css +0 -13
- package/specialCutsiteFilterOptions.js +0 -22
- package/tagsToBoldSelector.js +0 -2
- package/toggle_views.svg +0 -1
- package/toolBar.js +0 -23
- package/translationSearchMatchesSelector.js +0 -14
- package/translations.js +0 -20
- package/translationsRawSelector.js +0 -8
- package/translationsSelector.js +0 -137
- package/typeField.js +0 -24
- package/undoTool.js +0 -30
- package/updateEditor.js +0 -200
- package/updateLabelsForInViewFeatures.js +0 -55
- package/updateLabelsForInViewFeaturesCircView.js +0 -41
- package/updateTrackHelper.js +0 -58
- package/uppercaseSequenceMapFont.js +0 -25
- package/upsertDeleteActionGenerator.js +0 -31
- package/useAAColorType.js +0 -8
- package/useAdditionalOrfStartCodons.js +0 -24
- package/useAnnotationLimits.js +0 -42
- package/useChromatogramPrefs.js +0 -31
- package/useFormValue.js +0 -7
- package/useLadders.js +0 -6
- package/useMeltingTemp.js +0 -7
- package/useTmType.js +0 -10
- package/userDefinedHandlersAndOpts.js +0 -61
- package/utils.js +0 -37
- package/versionHistory.js +0 -26
- package/versionHistoryTool.js +0 -21
- package/viewSubmenu.js +0 -479
- package/visibilityTool.js +0 -39
- package/withHover.js +0 -113
- package/withRestrictionEnzymes.js +0 -15
package/getTrackFromEvent.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { getClientX, getClientY } from "../utils/editorUtils";
|
|
2
|
-
|
|
3
|
-
export function getTrackFromEvent(event, allTracks) {
|
|
4
|
-
const trackContainers = document.querySelectorAll(
|
|
5
|
-
".alignmentViewTrackContainer"
|
|
6
|
-
);
|
|
7
|
-
let track;
|
|
8
|
-
trackContainers.forEach(t => {
|
|
9
|
-
const mouseX = getClientX(event) + document.body.scrollLeft;
|
|
10
|
-
const mouseY = getClientY(event) + document.body.scrollTop;
|
|
11
|
-
if (
|
|
12
|
-
mouseX >= t.getBoundingClientRect().left &&
|
|
13
|
-
mouseX <=
|
|
14
|
-
t.getBoundingClientRect().left + t.getBoundingClientRect().width &&
|
|
15
|
-
mouseY >= t.getBoundingClientRect().top &&
|
|
16
|
-
mouseY <= t.getBoundingClientRect().top + t.getBoundingClientRect().height
|
|
17
|
-
) {
|
|
18
|
-
const index = t.getAttribute("data-alignment-track-index");
|
|
19
|
-
track = allTracks[index];
|
|
20
|
-
track.index = index;
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
return track;
|
|
25
|
-
}
|
package/getVisibleStartEnd.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export function getVisibleStartEnd({ scrollData, width }) {
|
|
2
|
-
const { percentScrolled, viewportWidth } = scrollData;
|
|
3
|
-
|
|
4
|
-
const visibleStart = percentScrolled * (width - viewportWidth);
|
|
5
|
-
const visibleEnd = visibleStart + viewportWidth;
|
|
6
|
-
return { visibleEnd, visibleStart };
|
|
7
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { getRangeLength } from "@teselagen/range-utils";
|
|
2
|
-
|
|
3
|
-
export default function getXStartAndWidthFromNonCircularRange(
|
|
4
|
-
range,
|
|
5
|
-
charWidth
|
|
6
|
-
) {
|
|
7
|
-
const rangeLength = getRangeLength(range);
|
|
8
|
-
return {
|
|
9
|
-
width: rangeLength * charWidth,
|
|
10
|
-
xStart: range.start * charWidth
|
|
11
|
-
};
|
|
12
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { normalizePositionByRangeLength } from "@teselagen/range-utils";
|
|
2
|
-
import { isNumber } from "lodash-es";
|
|
3
|
-
|
|
4
|
-
export default function getXStartAndWidthOfRangeWrtRow({
|
|
5
|
-
range,
|
|
6
|
-
row,
|
|
7
|
-
charWidth,
|
|
8
|
-
sequenceLength,
|
|
9
|
-
gapsBefore = 0,
|
|
10
|
-
gapsInside = 0
|
|
11
|
-
}) {
|
|
12
|
-
const xStart =
|
|
13
|
-
((!isNumber(gapsBefore) ? 0 : gapsBefore) +
|
|
14
|
-
normalizePositionByRangeLength(range.start - row.start, sequenceLength)) *
|
|
15
|
-
charWidth;
|
|
16
|
-
const obj = {
|
|
17
|
-
xStart,
|
|
18
|
-
width:
|
|
19
|
-
(gapsInside +
|
|
20
|
-
normalizePositionByRangeLength(
|
|
21
|
-
range.end + 1 - range.start,
|
|
22
|
-
sequenceLength + 1
|
|
23
|
-
)) *
|
|
24
|
-
charWidth
|
|
25
|
-
};
|
|
26
|
-
return obj;
|
|
27
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export default function getXStartAndWidthOfRowAnnotation(
|
|
2
|
-
range,
|
|
3
|
-
bpsPerRow,
|
|
4
|
-
charWidth,
|
|
5
|
-
gapsBefore = 0,
|
|
6
|
-
gapsInside = 0
|
|
7
|
-
) {
|
|
8
|
-
const startOffset = range.start % bpsPerRow;
|
|
9
|
-
const toReturn = {
|
|
10
|
-
startOffset,
|
|
11
|
-
xStart: (startOffset + gapsBefore) * charWidth,
|
|
12
|
-
width: getWidth(range, charWidth, gapsInside)
|
|
13
|
-
};
|
|
14
|
-
return toReturn;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function getWidth(range, charWidth, gapsInside = 0) {
|
|
18
|
-
return (range.end + 1 - range.start + gapsInside) * charWidth;
|
|
19
|
-
}
|
package/getYOffset.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export default function getYOffset(iTree, start, end) {
|
|
2
|
-
//get all potentially overlapping annotations
|
|
3
|
-
|
|
4
|
-
const potentiallyOverlappingAnnotations = iTree.search(start, end);
|
|
5
|
-
//we don't want to render the new annotation on top of any of these potentially overlapping annotations
|
|
6
|
-
const potentialPositionsForNewAnnotation =
|
|
7
|
-
potentiallyOverlappingAnnotations.map(() => true);
|
|
8
|
-
potentiallyOverlappingAnnotations.forEach(function (otherAnnotation) {
|
|
9
|
-
potentialPositionsForNewAnnotation[otherAnnotation.yOffset] = false;
|
|
10
|
-
});
|
|
11
|
-
//get first occurence of empty yOffset
|
|
12
|
-
const yOffset = potentialPositionsForNewAnnotation.indexOf(true);
|
|
13
|
-
//if there are no empty slots, make a new slot
|
|
14
|
-
return yOffset > -1 ? yOffset : potentialPositionsForNewAnnotation.length;
|
|
15
|
-
}
|
package/hoveredAnnotation.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//./caretPosition.js
|
|
2
|
-
import { createReducer } from "redux-act";
|
|
3
|
-
import createAction from "./utils/createMetaAction";
|
|
4
|
-
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// Actions
|
|
7
|
-
// ------------------------------------
|
|
8
|
-
export const hoveredAnnotationUpdate = createAction("HOVEREDANNOTATIONUPDATE");
|
|
9
|
-
export const hoveredAnnotationClear = createAction("HOVEREDANNOTATIONCLEAR");
|
|
10
|
-
|
|
11
|
-
// ------------------------------------
|
|
12
|
-
// Reducer
|
|
13
|
-
// ------------------------------------
|
|
14
|
-
export default createReducer(
|
|
15
|
-
{
|
|
16
|
-
[hoveredAnnotationUpdate]: (state, payload) => {
|
|
17
|
-
return payload || null;
|
|
18
|
-
},
|
|
19
|
-
[hoveredAnnotationClear]: () => {
|
|
20
|
-
return "";
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
""
|
|
24
|
-
);
|
package/importTool.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Icon } from "@blueprintjs/core";
|
|
3
|
-
import Dropzone from "react-dropzone";
|
|
4
|
-
import ToolbarItem from "./ToolbarItem";
|
|
5
|
-
import { compose, withHandlers } from "recompose";
|
|
6
|
-
import { importSequenceFromFile, connectToEditor } from "../withEditorProps";
|
|
7
|
-
|
|
8
|
-
export default compose(
|
|
9
|
-
connectToEditor(),
|
|
10
|
-
withHandlers({ importSequenceFromFile })
|
|
11
|
-
)(({ toolbarItemProps, importSequenceFromFile }) => {
|
|
12
|
-
return (
|
|
13
|
-
<ToolbarItem
|
|
14
|
-
{...{
|
|
15
|
-
Icon: <Icon data-test="veImportTool" icon="export" />,
|
|
16
|
-
IconWrapper: Dropzone,
|
|
17
|
-
IconWrapperProps: {
|
|
18
|
-
multiple: false,
|
|
19
|
-
style: {},
|
|
20
|
-
onDrop: files => importSequenceFromFile(files[0])
|
|
21
|
-
},
|
|
22
|
-
tooltip: "Click or drag to import and view files (.fasta .gb .dna)",
|
|
23
|
-
...toolbarItemProps
|
|
24
|
-
}}
|
|
25
|
-
/>
|
|
26
|
-
);
|
|
27
|
-
});
|
package/index.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { getReverseComplementSequenceAndAnnotations } from "@teselagen/sequence-utils";
|
|
2
|
-
|
|
3
|
-
export default function addDashesForMatchStartAndEndForTracks(alignmentTracks) {
|
|
4
|
-
return alignmentTracks.map((track, i) => {
|
|
5
|
-
// .filter by the user-specified mismatch overrides (initially [])
|
|
6
|
-
return {
|
|
7
|
-
...track,
|
|
8
|
-
...addDashesForMatchStartAndEnd(
|
|
9
|
-
track,
|
|
10
|
-
alignmentTracks[0], //send in the ref/template seq every time
|
|
11
|
-
i === 0
|
|
12
|
-
)
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function addDashesForMatchStartAndEnd(
|
|
18
|
-
{ alignmentData, sequenceData: _sequenceData },
|
|
19
|
-
template,
|
|
20
|
-
isTemplate
|
|
21
|
-
) {
|
|
22
|
-
let sequenceData = _sequenceData;
|
|
23
|
-
const {
|
|
24
|
-
sequenceData: sequenceDataTemplate,
|
|
25
|
-
alignmentData: alignmentDataTemplate
|
|
26
|
-
} = template;
|
|
27
|
-
let { matchStart = 0, matchEnd = 0, strand } = alignmentData;
|
|
28
|
-
if (strand === -1) {
|
|
29
|
-
sequenceData = getReverseComplementSequenceAndAnnotations(sequenceData);
|
|
30
|
-
const oldMatchEnd = matchEnd;
|
|
31
|
-
const oldMatchStart = matchStart;
|
|
32
|
-
matchStart = sequenceData.sequence.length - oldMatchStart;
|
|
33
|
-
matchEnd = sequenceData.sequence.length - oldMatchEnd;
|
|
34
|
-
}
|
|
35
|
-
const { matchStart: matchStartTemplate = 0, matchEnd: matchEndTemplate = 0 } =
|
|
36
|
-
alignmentDataTemplate;
|
|
37
|
-
let newAlignmentData;
|
|
38
|
-
if (isTemplate) {
|
|
39
|
-
newAlignmentData = {
|
|
40
|
-
...alignmentData,
|
|
41
|
-
sequence:
|
|
42
|
-
sequenceDataTemplate.sequence.slice(0, matchStartTemplate) +
|
|
43
|
-
alignmentData.sequence +
|
|
44
|
-
sequenceDataTemplate.sequence.slice(matchEndTemplate + 1)
|
|
45
|
-
};
|
|
46
|
-
} else {
|
|
47
|
-
newAlignmentData = {
|
|
48
|
-
...alignmentData,
|
|
49
|
-
sequence:
|
|
50
|
-
sequenceData.sequence.slice(0, matchStart) +
|
|
51
|
-
alignmentData.sequence +
|
|
52
|
-
sequenceData.sequence.slice(matchEnd + 1)
|
|
53
|
-
};
|
|
54
|
-
newAlignmentData = {
|
|
55
|
-
...alignmentData,
|
|
56
|
-
sequence:
|
|
57
|
-
"-".repeat(Math.max(matchStartTemplate - matchStart, 0)) +
|
|
58
|
-
newAlignmentData.sequence +
|
|
59
|
-
"-".repeat(
|
|
60
|
-
Math.max(
|
|
61
|
-
sequenceDataTemplate.sequence.slice(matchEndTemplate + 1).length -
|
|
62
|
-
(sequenceData.sequence.length - matchEnd) +
|
|
63
|
-
1,
|
|
64
|
-
0
|
|
65
|
-
)
|
|
66
|
-
)
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return { alignmentData: newAlignmentData, sequenceData: sequenceData };
|
|
71
|
-
}
|
package/inlineFindTool.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Icon } from "@blueprintjs/core";
|
|
3
|
-
import FindBar from "../FindBar";
|
|
4
|
-
import ToolbarItem from "./ToolbarItem";
|
|
5
|
-
import { connectToEditor } from "../withEditorProps";
|
|
6
|
-
|
|
7
|
-
export default connectToEditor(({ findTool = {} }) => {
|
|
8
|
-
return {
|
|
9
|
-
isOpen: findTool.isOpen
|
|
10
|
-
};
|
|
11
|
-
})(({ toolbarItemProps, editorName, toggleFindTool, isOpen }) => {
|
|
12
|
-
return (
|
|
13
|
-
<ToolbarItem
|
|
14
|
-
{...{
|
|
15
|
-
Icon: !isOpen ? (
|
|
16
|
-
<div>
|
|
17
|
-
<Icon data-test="ve-find-tool-toggle" icon="search" />
|
|
18
|
-
<Icon icon="caret-right" />
|
|
19
|
-
</div>
|
|
20
|
-
) : (
|
|
21
|
-
<FindBar editorName={editorName} />
|
|
22
|
-
),
|
|
23
|
-
renderIconAbove: isOpen,
|
|
24
|
-
onIconClick: toggleFindTool,
|
|
25
|
-
tooltip: isOpen ? (
|
|
26
|
-
<span>
|
|
27
|
-
Hide Find Tool <span style={{ fontSize: 10 }}>(Cmd/Ctrl+F)</span>
|
|
28
|
-
</span>
|
|
29
|
-
) : (
|
|
30
|
-
<span>
|
|
31
|
-
Show Find Tool <span style={{ fontSize: 10 }}>(Cmd/Ctrl+F)</span>
|
|
32
|
-
</span>
|
|
33
|
-
),
|
|
34
|
-
...toolbarItemProps
|
|
35
|
-
}}
|
|
36
|
-
/>
|
|
37
|
-
);
|
|
38
|
-
});
|
package/isElementInViewport.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export function isElWithinAnotherEl(el, container) {
|
|
2
|
-
if (el.left > container.right) return false;
|
|
3
|
-
if (el.right < container.left) return false;
|
|
4
|
-
return true;
|
|
5
|
-
}
|
|
6
|
-
const buffer = 13;
|
|
7
|
-
export function isElWithinAnotherElWithDiff(el, container) {
|
|
8
|
-
const elWidth = el.right - el.left;
|
|
9
|
-
const containerWidth = container.right - container.left;
|
|
10
|
-
const space = containerWidth - elWidth;
|
|
11
|
-
if (el.right > container.right) {
|
|
12
|
-
let diff = container.right - el.right - space / 2;
|
|
13
|
-
if (el.left + diff < container.left + buffer) {
|
|
14
|
-
//too far to the left -- aka diff too negative
|
|
15
|
-
diff += container.left + buffer - el.left - diff;
|
|
16
|
-
}
|
|
17
|
-
return [false, diff];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
if (el.left < container.left) {
|
|
21
|
-
let diff = container.left - el.left + space / 2;
|
|
22
|
-
if (el.right + diff + buffer > container.right) {
|
|
23
|
-
//too far to the right -- aka diff too big
|
|
24
|
-
diff -= el.right + diff + buffer - container.right;
|
|
25
|
-
}
|
|
26
|
-
return [false, diff];
|
|
27
|
-
}
|
|
28
|
-
return [true];
|
|
29
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default state => state.restrictionEnzymes.isEnzymeFilterAnd;
|
package/isTargetWithinEl.js
DELETED
package/labelLineIntensity.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { createReducer } from "redux-act";
|
|
2
|
-
|
|
3
|
-
import createAction from "./utils/createMetaAction";
|
|
4
|
-
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// Actions
|
|
7
|
-
// ------------------------------------
|
|
8
|
-
export const changeLabelLineIntensity = createAction(
|
|
9
|
-
"changeLabelLineIntensity"
|
|
10
|
-
);
|
|
11
|
-
|
|
12
|
-
const newVal = window.localStorage.getItem("labelLineIntensity");
|
|
13
|
-
|
|
14
|
-
// ------------------------------------
|
|
15
|
-
// Reducer
|
|
16
|
-
// ------------------------------------
|
|
17
|
-
export default createReducer(
|
|
18
|
-
{
|
|
19
|
-
[changeLabelLineIntensity]: (state, payload) => {
|
|
20
|
-
localStorage.setItem("labelLineIntensity", payload);
|
|
21
|
-
return payload;
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
newVal ? parseFloat(newVal) : 0.1 // 0.1 (low) || 0.4 (med) || 0.7 (high) || 1.0 (full)
|
|
25
|
-
);
|
package/labelSize.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createReducer } from "redux-act";
|
|
2
|
-
|
|
3
|
-
import createAction from "./utils/createMetaAction";
|
|
4
|
-
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// Actions
|
|
7
|
-
// ------------------------------------
|
|
8
|
-
export const changeLabelSize = createAction("changeLabelSize");
|
|
9
|
-
|
|
10
|
-
const newVal = window.localStorage.getItem("labelSize");
|
|
11
|
-
|
|
12
|
-
// ------------------------------------
|
|
13
|
-
// Reducer
|
|
14
|
-
// ------------------------------------
|
|
15
|
-
export default createReducer(
|
|
16
|
-
{
|
|
17
|
-
[changeLabelSize]: (state, payload) => {
|
|
18
|
-
localStorage.setItem("labelSize", payload);
|
|
19
|
-
return payload;
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
newVal ? parseInt(newVal) : 8 // 8 is 100% label size
|
|
23
|
-
);
|
package/ladderDefaults.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export const ladderDefaults = [
|
|
2
|
-
{
|
|
3
|
-
value: "geneRuler1KB",
|
|
4
|
-
label: "GeneRuler 1kb + DNA 75-20,000 bp",
|
|
5
|
-
markings: [
|
|
6
|
-
20000, 10000, 7000, 5000, 4000, 3000, 2000, 1500, 1000, 700, 500, 400,
|
|
7
|
-
300, 200, 75
|
|
8
|
-
]
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
value: "geneRuler100BP",
|
|
12
|
-
label: "GeneRuler 100bp + DNA 100-3000 bp",
|
|
13
|
-
markings: [
|
|
14
|
-
3000, 2000, 1500, 1200, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
value: "invitrogen1KbPlus",
|
|
19
|
-
label: "Invitrogen 1kb + DNA 100-15,000 bp",
|
|
20
|
-
markings: [
|
|
21
|
-
15000, 10000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1500, 1000, 850,
|
|
22
|
-
650, 500, 400, 300, 200, 100
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
];
|
package/lastSavedId.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
//./caretPosition.js
|
|
2
|
-
import { createReducer } from "redux-act";
|
|
3
|
-
import createAction from "./utils/createMetaAction";
|
|
4
|
-
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// Actions
|
|
7
|
-
// ------------------------------------
|
|
8
|
-
export const lastSavedIdUpdate = createAction("lastSavedIdUpdate"); //NOTE!!:: second argument sanitizes actions so no payload is passed
|
|
9
|
-
|
|
10
|
-
// ------------------------------------
|
|
11
|
-
// Reducer
|
|
12
|
-
// ------------------------------------
|
|
13
|
-
export default createReducer(
|
|
14
|
-
{
|
|
15
|
-
[lastSavedIdUpdate]: (state, payload) => {
|
|
16
|
-
return payload;
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
null
|
|
20
|
-
);
|
package/lineageLines.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { createReducer } from "redux-act";
|
|
2
|
-
|
|
3
|
-
// ------------------------------------
|
|
4
|
-
// Actions
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// export const caretPositionClear = createAction('caretPositionClear')
|
|
7
|
-
|
|
8
|
-
// ------------------------------------
|
|
9
|
-
// Reducer
|
|
10
|
-
// ------------------------------------
|
|
11
|
-
export default createReducer({}, []);
|
package/linear.png
DELETED
|
Binary file
|
package/makeStore.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
//optionally connect to the redux store
|
|
2
|
-
import { createStore, combineReducers, applyMiddleware, compose } from "redux";
|
|
3
|
-
import VectorEditor, { vectorEditorMiddleware } from "../redux";
|
|
4
|
-
import thunk from "redux-thunk";
|
|
5
|
-
import { reducer as form } from "redux-form";
|
|
6
|
-
|
|
7
|
-
const makeStore = () => {
|
|
8
|
-
const composeEnhancer =
|
|
9
|
-
(window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&
|
|
10
|
-
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
|
|
11
|
-
name: "createVectorEditor",
|
|
12
|
-
latency: 1000,
|
|
13
|
-
// serialize: {
|
|
14
|
-
// replacer: (key, value) => {
|
|
15
|
-
// }
|
|
16
|
-
// },
|
|
17
|
-
actionsDenylist: ["HOVEREDANNOTATIONUPDATE", "HOVEREDANNOTATIONCLEAR"]
|
|
18
|
-
})) ||
|
|
19
|
-
compose;
|
|
20
|
-
|
|
21
|
-
const store = createStore(
|
|
22
|
-
combineReducers({
|
|
23
|
-
form,
|
|
24
|
-
VectorEditor: VectorEditor()
|
|
25
|
-
}),
|
|
26
|
-
undefined,
|
|
27
|
-
composeEnhancer(
|
|
28
|
-
applyMiddleware(thunk, vectorEditorMiddleware) //your store should be redux-thunk connected for the VectorEditor component to work
|
|
29
|
-
)
|
|
30
|
-
);
|
|
31
|
-
return store;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default makeStore;
|
package/massageTickSpacing.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { some } from "lodash-es";
|
|
2
|
-
|
|
3
|
-
export function massageTickSpacing(spacing) {
|
|
4
|
-
let toRet = spacing;
|
|
5
|
-
if (spacing < 15) {
|
|
6
|
-
return 10;
|
|
7
|
-
}
|
|
8
|
-
some(
|
|
9
|
-
[20, 50, 100, 500, 1000, 2000, 5000, 10000, 50000, 100000, 1000000],
|
|
10
|
-
val => {
|
|
11
|
-
if (spacing < val) {
|
|
12
|
-
toRet = val;
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
return toRet;
|
|
19
|
-
}
|
package/materiallyAvailable.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { createReducer } from "redux-act";
|
|
2
|
-
import createAction from "../utils/createMetaAction";
|
|
3
|
-
|
|
4
|
-
// ------------------------------------
|
|
5
|
-
// Actions
|
|
6
|
-
// ------------------------------------
|
|
7
|
-
export const updateAvailability = createAction("updateAvailability");
|
|
8
|
-
|
|
9
|
-
// ------------------------------------
|
|
10
|
-
// Reducer
|
|
11
|
-
// ------------------------------------
|
|
12
|
-
export default createReducer(
|
|
13
|
-
{
|
|
14
|
-
[updateAvailability]: (state, payload) => {
|
|
15
|
-
return payload;
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
true
|
|
19
|
-
);
|
package/middleware.js
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
//vectorEditorMiddleware
|
|
2
|
-
//used to add undo/redo abilities to OVE
|
|
3
|
-
|
|
4
|
-
// To Batch actions together use this api:
|
|
5
|
-
// deleteFeature([id1, id2], {
|
|
6
|
-
// batchUndoStart: true
|
|
7
|
-
// });
|
|
8
|
-
// upsertFeature(
|
|
9
|
-
// {
|
|
10
|
-
// ...feat1,
|
|
11
|
-
// id: uuid(),
|
|
12
|
-
// start: start - 1,
|
|
13
|
-
// end: end - 1,
|
|
14
|
-
// name
|
|
15
|
-
// },
|
|
16
|
-
// {
|
|
17
|
-
// batchUndoEnd: true
|
|
18
|
-
// }
|
|
19
|
-
// );
|
|
20
|
-
|
|
21
|
-
export default store => next => action => {
|
|
22
|
-
if (action.meta && action.meta.disregardUndo) {
|
|
23
|
-
return next(action);
|
|
24
|
-
}
|
|
25
|
-
const disregardUndo = true;
|
|
26
|
-
if (action.type === "VE_UNDO" || action.type === "VE_REDO") {
|
|
27
|
-
const { VectorEditor } = store.getState();
|
|
28
|
-
const editorName = action.meta.editorName;
|
|
29
|
-
const editorState = VectorEditor[editorName];
|
|
30
|
-
const stack =
|
|
31
|
-
editorState.sequenceDataHistory[
|
|
32
|
-
action.type === "VE_UNDO" ? "past" : "future"
|
|
33
|
-
] || [];
|
|
34
|
-
const stateToUse = stack[stack.length - 1];
|
|
35
|
-
store.dispatch({
|
|
36
|
-
type: action.type === "VE_UNDO" ? "VE_UNDO_META" : "VE_REDO_META",
|
|
37
|
-
payload: {
|
|
38
|
-
sequenceData: editorState.sequenceData,
|
|
39
|
-
selectionLayer: editorState.selectionLayer,
|
|
40
|
-
caretPosition: editorState.caretPosition
|
|
41
|
-
},
|
|
42
|
-
meta: { editorName, disregardUndo }
|
|
43
|
-
});
|
|
44
|
-
store.dispatch({
|
|
45
|
-
type: "SEQUENCE_DATA_UPDATE",
|
|
46
|
-
payload: stateToUse.sequenceData,
|
|
47
|
-
meta: { editorName, disregardUndo }
|
|
48
|
-
});
|
|
49
|
-
if (stateToUse.caretPosition > -1) {
|
|
50
|
-
store.dispatch({
|
|
51
|
-
type: "CARET_POSITION_UPDATE",
|
|
52
|
-
payload: stateToUse.caretPosition,
|
|
53
|
-
meta: { editorName, disregardUndo }
|
|
54
|
-
});
|
|
55
|
-
} else {
|
|
56
|
-
store.dispatch({
|
|
57
|
-
type: "SELECTION_LAYER_UPDATE",
|
|
58
|
-
payload: { ...stateToUse.selectionLayer, forceUpdate: Math.random() },
|
|
59
|
-
meta: { editorName, disregardUndo }
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
store.dispatch({
|
|
63
|
-
type: "VE_SEQUENCE_CHANGED", //used for external autosave functionality
|
|
64
|
-
payload: {
|
|
65
|
-
sequenceData: stateToUse.sequenceData,
|
|
66
|
-
editorName
|
|
67
|
-
},
|
|
68
|
-
meta: { editorName, disregardUndo: true }
|
|
69
|
-
});
|
|
70
|
-
return next(action);
|
|
71
|
-
} else {
|
|
72
|
-
//pass batchUndoStart, batchUndoMiddle and batchUndoEnd to group actions together
|
|
73
|
-
const { batchUndoEnd, batchUndoStart, batchUndoMiddle } = action.meta || {};
|
|
74
|
-
//get editor state(s)
|
|
75
|
-
const OldVectorEditor = store.getState().VectorEditor;
|
|
76
|
-
const result = next(action);
|
|
77
|
-
const NewVectorEditor = store.getState().VectorEditor;
|
|
78
|
-
Object.keys(NewVectorEditor).forEach(editorName => {
|
|
79
|
-
const newEditorState = NewVectorEditor[editorName];
|
|
80
|
-
const oldEditorState = OldVectorEditor[editorName];
|
|
81
|
-
if (
|
|
82
|
-
oldEditorState &&
|
|
83
|
-
oldEditorState.sequenceData &&
|
|
84
|
-
oldEditorState.sequenceData !== newEditorState.sequenceData
|
|
85
|
-
) {
|
|
86
|
-
const { sequenceData, selectionLayer, caretPosition } = oldEditorState;
|
|
87
|
-
!batchUndoEnd &&
|
|
88
|
-
!batchUndoMiddle &&
|
|
89
|
-
store.dispatch({
|
|
90
|
-
type: "ADD_TO_UNDO_STACK",
|
|
91
|
-
payload: {
|
|
92
|
-
selectionLayer,
|
|
93
|
-
sequenceData,
|
|
94
|
-
caretPosition
|
|
95
|
-
},
|
|
96
|
-
meta: { editorName, disregardUndo }
|
|
97
|
-
});
|
|
98
|
-
!batchUndoStart &&
|
|
99
|
-
!batchUndoMiddle &&
|
|
100
|
-
store.dispatch({
|
|
101
|
-
type: "VE_SEQUENCE_CHANGED", //used for external autosave functionality
|
|
102
|
-
payload: {
|
|
103
|
-
sequenceData: newEditorState.sequenceData,
|
|
104
|
-
editorName
|
|
105
|
-
},
|
|
106
|
-
meta: { editorName, disregardUndo: true }
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
return result;
|
|
111
|
-
}
|
|
112
|
-
};
|
package/minimumOrfSize.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//./caretPosition.js
|
|
2
|
-
import { createReducer } from "redux-act";
|
|
3
|
-
import createAction from "./utils/createMetaAction";
|
|
4
|
-
|
|
5
|
-
// ------------------------------------
|
|
6
|
-
// Actions
|
|
7
|
-
// ------------------------------------
|
|
8
|
-
export const minimumOrfSizeUpdate = createAction("minimumOrfSizeUpdate");
|
|
9
|
-
|
|
10
|
-
// ------------------------------------
|
|
11
|
-
// Reducer
|
|
12
|
-
// ------------------------------------
|
|
13
|
-
export default createReducer(
|
|
14
|
-
{
|
|
15
|
-
[minimumOrfSizeUpdate]: (state, payload) => {
|
|
16
|
-
return payload;
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
300
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
export function getMinimumOrfSize(state) {
|
|
23
|
-
return state;
|
|
24
|
-
}
|
package/modalActions.js
DELETED