@teselagen/ove 0.3.11 → 0.3.13
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.js +529 -422
- package/index.mjs +530 -423
- package/index.umd.js +532 -402
- package/package.json +2 -2
- package/src/AlignmentView/AlignmentVisibilityTool.js +1 -1
- package/src/AlignmentView/EditTrackNameDialog.js +1 -5
- package/src/AlignmentView/HorizontalPanelDragHandle.js +2 -2
- package/src/AlignmentView/Minimap.js +12 -12
- package/src/AlignmentView/PairwiseAlignmentView.js +1 -1
- package/src/AlignmentView/getGapMap.js +1 -1
- package/src/AlignmentView/getTrackFromEvent.js +1 -1
- package/src/AlignmentView/index.js +32 -37
- package/src/AutoAnnotate.js +48 -48
- package/src/CircularView/Cutsites.js +3 -3
- package/src/CircularView/Labels/index.js +7 -7
- package/src/CircularView/Labels/relaxLabels_DEPRECATED.js +5 -5
- package/src/CircularView/RotateCircularViewSlider.js +1 -1
- package/src/CircularView/SelectionLayer.js +2 -2
- package/src/CircularView/drawAnnotations.js +3 -3
- package/src/CircularView/getAngleForPositionMidpoint.js +1 -1
- package/src/CircularView/index.d.ts +11 -11
- package/src/CircularView/index.js +9 -9
- package/src/CreateAnnotationsPage.js +7 -5
- package/src/CreateCustomEnzyme/index.js +1 -5
- package/src/CutsiteFilter/AdditionalCutsiteInfoDialog.js +11 -11
- package/src/CutsiteFilter/index.js +12 -12
- package/src/DigestTool/AddLaddersDialog.js +1 -1
- package/src/DigestTool/DigestTool.js +3 -3
- package/src/DigestTool/Ladder.js +8 -8
- package/src/DigestTool/ladderDefaults.js +1 -2
- package/src/Editor/CommandHotkeyHandler.js +1 -1
- package/src/Editor/DropHandler.js +2 -2
- package/src/Editor/index.js +15 -15
- package/src/Editor/userDefinedHandlersAndOpts.js +3 -1
- package/src/FindBar/index.js +6 -6
- package/src/GlobalDialogUtils.js +6 -0
- package/src/LinearView/ZoomLinearView.js +1 -1
- package/src/LinearView/index.js +7 -7
- package/src/MenuBar/index.js +1 -1
- package/src/MenuBar/viewSubmenu.js +1 -1
- package/src/PCRTool/PCRTool.js +19 -19
- package/src/Reflex/Browser.js +4 -5
- package/src/Reflex/ReflexContainer.js +3 -3
- package/src/Reflex/ReflexElement.js +2 -2
- package/src/RowItem/Axis.js +1 -1
- package/src/RowItem/Caret/index.js +1 -1
- package/src/RowItem/Chromatograms/Chromatogram.js +3 -3
- package/src/RowItem/CutsiteSelectionLayers.js +1 -1
- package/src/RowItem/Cutsites.js +1 -1
- package/src/RowItem/Labels.js +2 -2
- package/src/RowItem/Orfs.js +2 -2
- package/src/RowItem/Sequence.js +4 -4
- package/src/RowItem/StackedAnnotations/PointedAnnotation.js +3 -3
- package/src/RowItem/StackedAnnotations/getStructuredBases.js +1 -1
- package/src/RowItem/Translations/AASliver.js +71 -75
- package/src/RowItem/Translations/index.js +1 -1
- package/src/RowItem/getCutsiteLabelHeights.js +1 -1
- package/src/RowItem/index.js +14 -8
- package/src/RowView/estimateRowHeight.js +5 -5
- package/src/RowView/index.d.ts +7 -7
- package/src/RowView/index.js +11 -12
- package/src/SimpleCircularOrLinearView.js +6 -6
- package/src/StatusBar/MeltingTemp.js +3 -3
- package/src/StatusBar/index.js +29 -33
- package/src/ToolBar/ToolbarItem.js +2 -2
- package/src/ToolBar/alignmentTool.js +9 -9
- package/src/ToolBar/editTool.js +41 -37
- package/src/ToolBar/findTool.js +2 -2
- package/src/ToolBar/importTool.js +1 -1
- package/src/ToolBar/index.js +2 -2
- package/src/ToolBar/oligoTool.js +1 -1
- package/src/ToolBar/orfTool.js +1 -6
- package/src/ToolBar/printTool.js +2 -2
- package/src/ToolBar/visibilityTool.js +1 -1
- package/src/VersionHistoryView/index.js +2 -2
- package/src/commands/index.js +237 -230
- package/src/createVectorEditor/index.js +4 -4
- package/src/fileUtils.js +18 -18
- package/src/helperComponents/AddOrEditAnnotationDialog/index.js +22 -15
- package/src/helperComponents/AddOrEditFeatureDialog/index.js +2 -2
- package/src/helperComponents/AddOrEditPartDialog/index.js +2 -2
- package/src/helperComponents/AddOrEditPrimerDialog/index.js +5 -5
- package/src/helperComponents/EnzymesDialog/index.js +17 -22
- package/src/helperComponents/GoToDialog.js +5 -1
- package/src/helperComponents/MergeFeaturesDialog/index.js +3 -3
- package/src/helperComponents/PinchHelper/PinchHelper.js +1 -1
- package/src/helperComponents/PrintDialog/index.js +4 -4
- package/src/helperComponents/PropertiesDialog/CutsiteProperties.js +3 -3
- package/src/helperComponents/PropertiesDialog/GenbankView.js +1 -1
- package/src/helperComponents/PropertiesDialog/GeneralProperties.js +10 -8
- package/src/helperComponents/PropertiesDialog/GenericAnnotationProperties.js +136 -138
- package/src/helperComponents/PropertiesDialog/OrfProperties.js +3 -3
- package/src/helperComponents/PropertiesDialog/PrimerProperties.js +1 -1
- package/src/helperComponents/PropertiesDialog/TranslationProperties.js +2 -2
- package/src/helperComponents/PropertiesDialog/index.js +3 -3
- package/src/helperComponents/RemoveDuplicates/index.js +3 -3
- package/src/helperComponents/SelectDialog.js +3 -3
- package/src/helperComponents/UncontrolledSliderWithPlusMinusBtns.js +5 -5
- package/src/helperComponents/createSimpleDialog.js +1 -1
- package/src/helperComponents/partTagSearch.js +2 -5
- package/src/helperComponents/withHover.js +3 -3
- package/src/redux/alignments.js +6 -6
- package/src/redux/annotationVisibility.js +4 -4
- package/src/redux/featureLengthsToHide.js +1 -1
- package/src/redux/frameTranslations.js +3 -3
- package/src/redux/middleware.js +2 -2
- package/src/redux/panelsShown.js +19 -19
- package/src/redux/partLengthsToHide.js +1 -1
- package/src/redux/primerLengthsToHide.js +1 -1
- package/src/redux/readOnly.js +1 -4
- package/src/redux/selectionLayer.js +1 -1
- package/src/redux/sequenceData/features.js +1 -1
- package/src/redux/sequenceData/upsertDeleteActionGenerator.js +1 -1
- package/src/redux/sequenceDataHistory.js +5 -5
- package/src/redux/toolBar.js +2 -4
- package/src/redux/utils/createMetaAction.js +2 -2
- package/src/redux/versionHistory.js +1 -2
- package/src/selectors/annotationSearchSelector.js +4 -4
- package/src/selectors/circularSelector.js +1 -1
- package/src/selectors/cutsiteLabelColorSelector.js +1 -1
- package/src/selectors/filteredCutsitesSelector.js +6 -6
- package/src/selectors/filteredFeaturesSelector.js +4 -4
- package/src/selectors/filteredPartsSelector.js +5 -5
- package/src/selectors/filteredPrimersSelector.js +3 -3
- package/src/selectors/isEnzymeFilterAndSelector.js +1 -1
- package/src/selectors/orfsSelector.js +1 -1
- package/src/selectors/restrictionEnzymesSelector.js +2 -2
- package/src/selectors/searchLayersSelector.js +7 -7
- package/src/selectors/sequenceLengthSelector.js +1 -1
- package/src/selectors/sequenceSelector.js +1 -1
- package/src/selectors/tagsToBoldSelector.js +1 -1
- package/src/selectors/translationsSelector.js +7 -7
- package/src/updateEditor.js +1 -1
- package/src/utils/PassThrough.js +1 -1
- package/src/utils/addWrappedAddons.js +1 -1
- package/src/utils/annotationTypes.js +2 -2
- package/src/utils/combineReducersDontIgnoreKeys.js +1 -1
- package/src/utils/editorUtils.js +2 -2
- package/src/utils/massageTickSpacing.js +1 -1
- package/src/utils/onlyUpdateForKeysDeep.js +1 -1
- package/src/utils/pureNoFunc.js +1 -1
- package/src/utils/shouldRerender.js +1 -1
- package/src/utils/showFileDialog.js +6 -7
- package/src/utils/updateLabelsForInViewFeatures.js +1 -1
- package/src/utils/useAnnotationLimits.js +1 -1
- package/src/withEditorInteractions/Keyboard.js +2 -3
- package/src/withEditorInteractions/createSequenceInputPopup.js +4 -4
- package/src/withEditorInteractions/index.js +93 -55
- package/src/withEditorProps/index.js +39 -37
- package/style.css +138 -138
|
@@ -54,18 +54,18 @@ const getUpperOrLowerSeq = defaultMemoize(
|
|
|
54
54
|
: sequence
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
-
const getTypesToOmit =
|
|
57
|
+
const getTypesToOmit = annotationsToSupport => {
|
|
58
58
|
const typesToOmit = {};
|
|
59
|
-
allTypes.forEach(
|
|
59
|
+
allTypes.forEach(type => {
|
|
60
60
|
if (!annotationsToSupport[type]) typesToOmit[type] = false;
|
|
61
61
|
});
|
|
62
62
|
return typesToOmit;
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
const getVisibilities = createSelector(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
ed => ed.annotationVisibility,
|
|
67
|
+
ed => ed.annotationLabelVisibility,
|
|
68
|
+
ed => ed.annotationsToSupport,
|
|
69
69
|
(annotationVisibility, annotationLabelVisibility, annotationsToSupport) => {
|
|
70
70
|
const typesToOmit = getTypesToOmit(annotationsToSupport);
|
|
71
71
|
const annotationVisibilityToUse = {
|
|
@@ -85,7 +85,7 @@ const getVisibilities = createSelector(
|
|
|
85
85
|
);
|
|
86
86
|
|
|
87
87
|
async function getSaveDialogEl() {
|
|
88
|
-
return new Promise(
|
|
88
|
+
return new Promise(resolve => {
|
|
89
89
|
showDialog({
|
|
90
90
|
dialogType: "PrintDialog",
|
|
91
91
|
props: {
|
|
@@ -113,17 +113,17 @@ async function getSaveDialogEl() {
|
|
|
113
113
|
*
|
|
114
114
|
* @return {object} - Blob (png) | Error
|
|
115
115
|
*/
|
|
116
|
-
const generatePngFromPrintDialog = async
|
|
116
|
+
const generatePngFromPrintDialog = async props => {
|
|
117
117
|
const saveDialog = await getSaveDialogEl(props);
|
|
118
118
|
|
|
119
119
|
const printArea = saveDialog.querySelector(".bp3-dialog-body");
|
|
120
120
|
|
|
121
121
|
const result = await domtoimage
|
|
122
122
|
.toBlob(printArea)
|
|
123
|
-
.then(
|
|
123
|
+
.then(blob => {
|
|
124
124
|
return blob;
|
|
125
125
|
})
|
|
126
|
-
.catch(
|
|
126
|
+
.catch(error => {
|
|
127
127
|
console.error(error);
|
|
128
128
|
return error;
|
|
129
129
|
});
|
|
@@ -132,7 +132,7 @@ const generatePngFromPrintDialog = async (props) => {
|
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
export const handleSave =
|
|
135
|
-
|
|
135
|
+
props =>
|
|
136
136
|
async (opts = {}) => {
|
|
137
137
|
const {
|
|
138
138
|
onSave,
|
|
@@ -170,7 +170,7 @@ export const handleSave =
|
|
|
170
170
|
}
|
|
171
171
|
};
|
|
172
172
|
|
|
173
|
-
export const handleInverse =
|
|
173
|
+
export const handleInverse = props => () => {
|
|
174
174
|
const {
|
|
175
175
|
sequenceLength,
|
|
176
176
|
selectionLayer,
|
|
@@ -208,7 +208,7 @@ export const handleInverse = (props) => () => {
|
|
|
208
208
|
}
|
|
209
209
|
};
|
|
210
210
|
|
|
211
|
-
export const updateCircular =
|
|
211
|
+
export const updateCircular = props => async isCircular => {
|
|
212
212
|
const { _updateCircular, updateSequenceData, sequenceData } = props;
|
|
213
213
|
if (!isCircular && hasAnnotationThatSpansOrigin(sequenceData)) {
|
|
214
214
|
const doAction = await showConfirmationDialog({
|
|
@@ -226,7 +226,7 @@ export const updateCircular = (props) => async (isCircular) => {
|
|
|
226
226
|
};
|
|
227
227
|
|
|
228
228
|
export const importSequenceFromFile =
|
|
229
|
-
|
|
229
|
+
props =>
|
|
230
230
|
async (file, opts = {}) => {
|
|
231
231
|
const { onImport } = props;
|
|
232
232
|
const result = await anyToJson(file, { acceptParts: true, ...opts });
|
|
@@ -234,7 +234,7 @@ export const importSequenceFromFile =
|
|
|
234
234
|
const failed = !result[0].success;
|
|
235
235
|
const messages = result[0].messages;
|
|
236
236
|
if (isArray(messages)) {
|
|
237
|
-
messages.forEach(
|
|
237
|
+
messages.forEach(msg => {
|
|
238
238
|
const type = msg.substr(0, 20).toLowerCase().includes("error")
|
|
239
239
|
? failed
|
|
240
240
|
? "error"
|
|
@@ -281,7 +281,7 @@ export const importSequenceFromFile =
|
|
|
281
281
|
}
|
|
282
282
|
};
|
|
283
283
|
|
|
284
|
-
export const exportSequenceToFile =
|
|
284
|
+
export const exportSequenceToFile = props => format => {
|
|
285
285
|
const { sequenceData } = props;
|
|
286
286
|
let convert, fileExt;
|
|
287
287
|
|
|
@@ -320,7 +320,7 @@ export default compose(
|
|
|
320
320
|
if (mapProps.annotationToAdd) {
|
|
321
321
|
toSpread.original_selectionLayerUpdate =
|
|
322
322
|
dispatchProps.selectionLayerUpdate;
|
|
323
|
-
toSpread.selectionLayerUpdate =
|
|
323
|
+
toSpread.selectionLayerUpdate = sel => {
|
|
324
324
|
dispatchProps.dispatch({
|
|
325
325
|
type: "@@redux-form/CHANGE",
|
|
326
326
|
meta: {
|
|
@@ -348,7 +348,7 @@ export default compose(
|
|
|
348
348
|
}
|
|
349
349
|
),
|
|
350
350
|
withHandlers({
|
|
351
|
-
wrappedInsertSequenceDataAtPositionOrRange:
|
|
351
|
+
wrappedInsertSequenceDataAtPositionOrRange: props => {
|
|
352
352
|
return (
|
|
353
353
|
_sequenceDataToInsert,
|
|
354
354
|
_existingSequenceData,
|
|
@@ -380,13 +380,13 @@ export default compose(
|
|
|
380
380
|
};
|
|
381
381
|
},
|
|
382
382
|
|
|
383
|
-
upsertTranslation:
|
|
384
|
-
return async
|
|
383
|
+
upsertTranslation: props => {
|
|
384
|
+
return async translationToUpsert => {
|
|
385
385
|
if (!translationToUpsert) return;
|
|
386
386
|
const { _upsertTranslation, sequenceData } = props;
|
|
387
387
|
if (
|
|
388
388
|
!translationToUpsert.id &&
|
|
389
|
-
some(sequenceData.translations || [],
|
|
389
|
+
some(sequenceData.translations || [], existingTranslation => {
|
|
390
390
|
if (
|
|
391
391
|
//check if an identical existingTranslation exists already
|
|
392
392
|
existingTranslation.translationType === "User Created" &&
|
|
@@ -416,7 +416,7 @@ export default compose(
|
|
|
416
416
|
exportSequenceToFile,
|
|
417
417
|
updateCircular,
|
|
418
418
|
//add additional "computed handlers here"
|
|
419
|
-
selectAll:
|
|
419
|
+
selectAll: props => () => {
|
|
420
420
|
const { sequenceLength, selectionLayerUpdate } = props;
|
|
421
421
|
sequenceLength > 0 &&
|
|
422
422
|
selectionLayerUpdate({
|
|
@@ -426,7 +426,7 @@ export default compose(
|
|
|
426
426
|
},
|
|
427
427
|
//handleNewPrimer handleNewFeature handleNewPart
|
|
428
428
|
...["Part", "Feature", "Primer"].reduce((acc, key) => {
|
|
429
|
-
acc[`handleNew${key}`] =
|
|
429
|
+
acc[`handleNew${key}`] = props => () => {
|
|
430
430
|
const { readOnly, selectionLayer, caretPosition, sequenceData } = props;
|
|
431
431
|
|
|
432
432
|
if (readOnly) {
|
|
@@ -460,7 +460,7 @@ export default compose(
|
|
|
460
460
|
return acc;
|
|
461
461
|
}, {}),
|
|
462
462
|
|
|
463
|
-
handleRotateToCaretPosition:
|
|
463
|
+
handleRotateToCaretPosition: props => () => {
|
|
464
464
|
const {
|
|
465
465
|
caretPosition,
|
|
466
466
|
readOnly,
|
|
@@ -478,7 +478,7 @@ export default compose(
|
|
|
478
478
|
caretPositionUpdate(0);
|
|
479
479
|
},
|
|
480
480
|
|
|
481
|
-
handleReverseComplementSelection:
|
|
481
|
+
handleReverseComplementSelection: props => () => {
|
|
482
482
|
const {
|
|
483
483
|
sequenceData,
|
|
484
484
|
updateSequenceData,
|
|
@@ -505,7 +505,7 @@ export default compose(
|
|
|
505
505
|
updateSequenceData(newSeqData);
|
|
506
506
|
},
|
|
507
507
|
|
|
508
|
-
handleComplementSelection:
|
|
508
|
+
handleComplementSelection: props => () => {
|
|
509
509
|
const {
|
|
510
510
|
sequenceData,
|
|
511
511
|
updateSequenceData,
|
|
@@ -529,7 +529,7 @@ export default compose(
|
|
|
529
529
|
updateSequenceData(newSeqData);
|
|
530
530
|
},
|
|
531
531
|
|
|
532
|
-
handleReverseComplementSequence:
|
|
532
|
+
handleReverseComplementSequence: props => () => {
|
|
533
533
|
const { sequenceData, updateSequenceData } = props;
|
|
534
534
|
updateSequenceData(
|
|
535
535
|
getReverseComplementSequenceAndAnnotations(sequenceData)
|
|
@@ -537,7 +537,7 @@ export default compose(
|
|
|
537
537
|
window.toastr.success("Reverse Complemented Sequence Successfully");
|
|
538
538
|
},
|
|
539
539
|
|
|
540
|
-
handleComplementSequence:
|
|
540
|
+
handleComplementSequence: props => () => {
|
|
541
541
|
const { sequenceData, updateSequenceData } = props;
|
|
542
542
|
updateSequenceData(getComplementSequenceAndAnnotations(sequenceData));
|
|
543
543
|
window.toastr.success("Complemented Sequence Successfully");
|
|
@@ -547,7 +547,7 @@ export default compose(
|
|
|
547
547
|
);
|
|
548
548
|
|
|
549
549
|
const getEditorState = createSelector(
|
|
550
|
-
|
|
550
|
+
state => state.VectorEditor,
|
|
551
551
|
(state, editorName) => editorName,
|
|
552
552
|
(VectorEditor, editorName) => {
|
|
553
553
|
return VectorEditor[editorName];
|
|
@@ -559,7 +559,8 @@ function mapStateToProps(state, ownProps) {
|
|
|
559
559
|
editorName,
|
|
560
560
|
sequenceData: sequenceDataFromProps,
|
|
561
561
|
allowSeqDataOverride,
|
|
562
|
-
allowMultipleFeatureDirections
|
|
562
|
+
allowMultipleFeatureDirections,
|
|
563
|
+
readOnly
|
|
563
564
|
} = ownProps;
|
|
564
565
|
const editorState = getEditorState(state, editorName);
|
|
565
566
|
const meta = { editorName };
|
|
@@ -633,6 +634,7 @@ function mapStateToProps(state, ownProps) {
|
|
|
633
634
|
const f = getFindTool(findTool, matchesTotal);
|
|
634
635
|
return {
|
|
635
636
|
...editorState,
|
|
637
|
+
readOnly: readOnly || editorState.readOnly,
|
|
636
638
|
meta,
|
|
637
639
|
annotationToAdd,
|
|
638
640
|
...(newSelection && { selectionLayer: newSelection }),
|
|
@@ -673,7 +675,7 @@ export function mapDispatchToActions(dispatch, ownProps) {
|
|
|
673
675
|
return {
|
|
674
676
|
...actionsToPass,
|
|
675
677
|
selectionLayerUpdate: ownProps.onSelectionOrCaretChanged
|
|
676
|
-
?
|
|
678
|
+
? selectionLayer => {
|
|
677
679
|
ownProps.onSelectionOrCaretChanged({
|
|
678
680
|
selectionLayer,
|
|
679
681
|
caretPosition: -1
|
|
@@ -682,7 +684,7 @@ export function mapDispatchToActions(dispatch, ownProps) {
|
|
|
682
684
|
}
|
|
683
685
|
: updateSel,
|
|
684
686
|
caretPositionUpdate: ownProps.onSelectionOrCaretChanged
|
|
685
|
-
?
|
|
687
|
+
? caretPosition => {
|
|
686
688
|
ownProps.onSelectionOrCaretChanged({
|
|
687
689
|
caretPosition,
|
|
688
690
|
selectionLayer: { start: -1, end: -1 }
|
|
@@ -766,7 +768,7 @@ function truncateOriginSpanningAnnotations(seqData) {
|
|
|
766
768
|
}
|
|
767
769
|
|
|
768
770
|
function truncateOriginSpanners(annotations, sequenceLength) {
|
|
769
|
-
return map(annotations,
|
|
771
|
+
return map(annotations, annotation => {
|
|
770
772
|
const { start = 0, end = 0 } = annotation;
|
|
771
773
|
if (start > end) {
|
|
772
774
|
return {
|
|
@@ -798,7 +800,7 @@ function doAnySpanOrigin(annotations) {
|
|
|
798
800
|
});
|
|
799
801
|
}
|
|
800
802
|
|
|
801
|
-
export const connectToEditor =
|
|
803
|
+
export const connectToEditor = fn => {
|
|
802
804
|
return connect(
|
|
803
805
|
(state, ownProps, ...rest) => {
|
|
804
806
|
const editor = state.VectorEditor[ownProps.editorName] || {};
|
|
@@ -824,7 +826,7 @@ export const connectToEditor = (fn) => {
|
|
|
824
826
|
//so they can still render things like translations, ..etc
|
|
825
827
|
|
|
826
828
|
//Currently only supporting translations
|
|
827
|
-
export const withEditorPropsNoRedux = withProps(
|
|
829
|
+
export const withEditorPropsNoRedux = withProps(props => {
|
|
828
830
|
const {
|
|
829
831
|
sequenceData,
|
|
830
832
|
sequenceDataWithRefSeqCdsFeatures,
|
|
@@ -877,7 +879,7 @@ function jsonToJson(incomingJson) {
|
|
|
877
879
|
}
|
|
878
880
|
|
|
879
881
|
const getSearchLayersAndMatch = createSelector(
|
|
880
|
-
|
|
882
|
+
ed => ed.findTool,
|
|
881
883
|
s.searchLayersSelector,
|
|
882
884
|
(findTool, _searchLayers) => {
|
|
883
885
|
let searchLayers;
|
|
@@ -909,7 +911,7 @@ const getSearchLayersAndMatch = createSelector(
|
|
|
909
911
|
);
|
|
910
912
|
const getSequenceDataToUse = createSelector(
|
|
911
913
|
(a, b, __allEditorsOptions) => __allEditorsOptions.uppercaseSequenceMapFont,
|
|
912
|
-
|
|
914
|
+
ed => ed.sequenceData,
|
|
913
915
|
(ed, cutsites) => cutsites,
|
|
914
916
|
s.translationsSelector,
|
|
915
917
|
s.filteredFeaturesSelector,
|
|
@@ -943,7 +945,7 @@ const getSequenceDataToUse = createSelector(
|
|
|
943
945
|
);
|
|
944
946
|
|
|
945
947
|
const getFindTool = createSelector(
|
|
946
|
-
|
|
948
|
+
f => f,
|
|
947
949
|
(f, m) => m,
|
|
948
950
|
(findTool, matchesTotal) => {
|
|
949
951
|
return {
|
package/style.css
CHANGED
|
@@ -10757,6 +10757,144 @@ li.bp3-menu-divider:last-child {
|
|
|
10757
10757
|
.bp3-dark .isBoldSeq {
|
|
10758
10758
|
stroke: white;
|
|
10759
10759
|
}
|
|
10760
|
+
.Popover-body {
|
|
10761
|
+
display: inline-flex;
|
|
10762
|
+
flex-direction: column;
|
|
10763
|
+
padding: 10px;
|
|
10764
|
+
background: white;
|
|
10765
|
+
color: black;
|
|
10766
|
+
box-shadow: 0px 1px 9px rgba(0, 0, 0, 0.5);
|
|
10767
|
+
z-index: 1;
|
|
10768
|
+
margin-top: 10px;
|
|
10769
|
+
}
|
|
10770
|
+
|
|
10771
|
+
.Popover-tipShape {
|
|
10772
|
+
fill: white;
|
|
10773
|
+
}
|
|
10774
|
+
|
|
10775
|
+
.Popover-tip {
|
|
10776
|
+
display: none;
|
|
10777
|
+
}
|
|
10778
|
+
|
|
10779
|
+
.veToolbar .veToolbarItemOuter {
|
|
10780
|
+
display: flex;
|
|
10781
|
+
height: 32px;
|
|
10782
|
+
}
|
|
10783
|
+
.veToolbar .veToolbarItemOuter .veToolbarItem {
|
|
10784
|
+
display: flex;
|
|
10785
|
+
align-items: center;
|
|
10786
|
+
height: 32px;
|
|
10787
|
+
}
|
|
10788
|
+
.veToolbarSpacer {
|
|
10789
|
+
height: 80%;
|
|
10790
|
+
width: 1px;
|
|
10791
|
+
margin-left: 10px;
|
|
10792
|
+
margin-right: 10px;
|
|
10793
|
+
}
|
|
10794
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon {
|
|
10795
|
+
padding: 3px;
|
|
10796
|
+
border-radius: 3px;
|
|
10797
|
+
height: 32px;
|
|
10798
|
+
width: 30px;
|
|
10799
|
+
display: flex;
|
|
10800
|
+
align-items: center;
|
|
10801
|
+
justify-content: center;
|
|
10802
|
+
color: #006cab;
|
|
10803
|
+
}
|
|
10804
|
+
.veToolbarItemOuter.disabled .veToolbarIcon {
|
|
10805
|
+
color: #c0c0c0;
|
|
10806
|
+
}
|
|
10807
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon.veToolbarItemToggled {
|
|
10808
|
+
background: lightgrey;
|
|
10809
|
+
border-color: #006cab;
|
|
10810
|
+
}
|
|
10811
|
+
|
|
10812
|
+
.veToolbar :not(.disabled).veToolbarItemOuter .veToolbarIcon:hover {
|
|
10813
|
+
border-color: #006cab;
|
|
10814
|
+
}
|
|
10815
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon:active {
|
|
10816
|
+
opacity: 0.7;
|
|
10817
|
+
}
|
|
10818
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon img,
|
|
10819
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon svg,
|
|
10820
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon object {
|
|
10821
|
+
cursor: pointer;
|
|
10822
|
+
}
|
|
10823
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon img svg,
|
|
10824
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon svg svg,
|
|
10825
|
+
.veToolbar .veToolbarItemOuter .veToolbarIcon object svg {
|
|
10826
|
+
color: #006baa;
|
|
10827
|
+
}
|
|
10828
|
+
|
|
10829
|
+
.minOrfSizeInput::-webkit-inner-spin-button,
|
|
10830
|
+
.minOrfSizeInput::-webkit-outer-spin-button {
|
|
10831
|
+
-webkit-appearance: none;
|
|
10832
|
+
margin: 0;
|
|
10833
|
+
}
|
|
10834
|
+
|
|
10835
|
+
.minOrfSizeInput {
|
|
10836
|
+
padding-bottom: 0.25em;
|
|
10837
|
+
width: 5em;
|
|
10838
|
+
margin-left: 10px;
|
|
10839
|
+
text-align: center;
|
|
10840
|
+
padding-top: 0.25em;
|
|
10841
|
+
border: 1px solid lightgrey;
|
|
10842
|
+
justify-content: center;
|
|
10843
|
+
display: flex;
|
|
10844
|
+
flex-direction: column;
|
|
10845
|
+
}
|
|
10846
|
+
|
|
10847
|
+
.veToolbarDropdown {
|
|
10848
|
+
cursor: pointer;
|
|
10849
|
+
padding: 0px;
|
|
10850
|
+
padding-bottom: 5px;
|
|
10851
|
+
padding-top: 5px;
|
|
10852
|
+
border-radius: 3px;
|
|
10853
|
+
}
|
|
10854
|
+
.veToolbarDropdown:hover {
|
|
10855
|
+
background: lightgrey;
|
|
10856
|
+
}
|
|
10857
|
+
.veToolbarDropdown.isOpen {
|
|
10858
|
+
background: lightgrey;
|
|
10859
|
+
}
|
|
10860
|
+
|
|
10861
|
+
.veToolbarCutsiteFilterHolder {
|
|
10862
|
+
min-width: 300px;
|
|
10863
|
+
}
|
|
10864
|
+
.veToolbarCutsiteFilterHolder > div {
|
|
10865
|
+
margin: 10px;
|
|
10866
|
+
}
|
|
10867
|
+
.veToolbarCutsiteFilterHolder .title {
|
|
10868
|
+
margin: 10px;
|
|
10869
|
+
background: blue;
|
|
10870
|
+
width: 100%;
|
|
10871
|
+
}
|
|
10872
|
+
|
|
10873
|
+
.translateInfoSpan {
|
|
10874
|
+
font-size: 0.8em;
|
|
10875
|
+
padding: 4px;
|
|
10876
|
+
}
|
|
10877
|
+
|
|
10878
|
+
.showOrfTranslateSpan {
|
|
10879
|
+
padding: 8px;
|
|
10880
|
+
}
|
|
10881
|
+
|
|
10882
|
+
.veToolbarOrfOptionsHolder {
|
|
10883
|
+
min-width: 300px;
|
|
10884
|
+
margin-bottom: 10px;
|
|
10885
|
+
}
|
|
10886
|
+
|
|
10887
|
+
.veToolbarViewOptionsHolder div {
|
|
10888
|
+
margin-left: 10px;
|
|
10889
|
+
margin-bottom: 10px;
|
|
10890
|
+
}
|
|
10891
|
+
.veToolbarViewOptionsHolder label {
|
|
10892
|
+
margin: 40px 10px;
|
|
10893
|
+
}
|
|
10894
|
+
.ve-toolbar-item-popover {
|
|
10895
|
+
/* the z-index has to be high for it to work with ice */
|
|
10896
|
+
z-index: 4000;
|
|
10897
|
+
}
|
|
10760
10898
|
.insertReplaceButton {
|
|
10761
10899
|
width: 140px;
|
|
10762
10900
|
}
|
|
@@ -11217,144 +11355,6 @@ path.partWithSelectedTag {
|
|
|
11217
11355
|
.taLineHolder div {
|
|
11218
11356
|
width: 100%;
|
|
11219
11357
|
}
|
|
11220
|
-
.Popover-body {
|
|
11221
|
-
display: inline-flex;
|
|
11222
|
-
flex-direction: column;
|
|
11223
|
-
padding: 10px;
|
|
11224
|
-
background: white;
|
|
11225
|
-
color: black;
|
|
11226
|
-
box-shadow: 0px 1px 9px rgba(0, 0, 0, 0.5);
|
|
11227
|
-
z-index: 1;
|
|
11228
|
-
margin-top: 10px;
|
|
11229
|
-
}
|
|
11230
|
-
|
|
11231
|
-
.Popover-tipShape {
|
|
11232
|
-
fill: white;
|
|
11233
|
-
}
|
|
11234
|
-
|
|
11235
|
-
.Popover-tip {
|
|
11236
|
-
display: none;
|
|
11237
|
-
}
|
|
11238
|
-
|
|
11239
|
-
.veToolbar .veToolbarItemOuter {
|
|
11240
|
-
display: flex;
|
|
11241
|
-
height: 32px;
|
|
11242
|
-
}
|
|
11243
|
-
.veToolbar .veToolbarItemOuter .veToolbarItem {
|
|
11244
|
-
display: flex;
|
|
11245
|
-
align-items: center;
|
|
11246
|
-
height: 32px;
|
|
11247
|
-
}
|
|
11248
|
-
.veToolbarSpacer {
|
|
11249
|
-
height: 80%;
|
|
11250
|
-
width: 1px;
|
|
11251
|
-
margin-left: 10px;
|
|
11252
|
-
margin-right: 10px;
|
|
11253
|
-
}
|
|
11254
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon {
|
|
11255
|
-
padding: 3px;
|
|
11256
|
-
border-radius: 3px;
|
|
11257
|
-
height: 32px;
|
|
11258
|
-
width: 30px;
|
|
11259
|
-
display: flex;
|
|
11260
|
-
align-items: center;
|
|
11261
|
-
justify-content: center;
|
|
11262
|
-
color: #006cab;
|
|
11263
|
-
}
|
|
11264
|
-
.veToolbarItemOuter.disabled .veToolbarIcon {
|
|
11265
|
-
color: #c0c0c0;
|
|
11266
|
-
}
|
|
11267
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon.veToolbarItemToggled {
|
|
11268
|
-
background: lightgrey;
|
|
11269
|
-
border-color: #006cab;
|
|
11270
|
-
}
|
|
11271
|
-
|
|
11272
|
-
.veToolbar :not(.disabled).veToolbarItemOuter .veToolbarIcon:hover {
|
|
11273
|
-
border-color: #006cab;
|
|
11274
|
-
}
|
|
11275
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon:active {
|
|
11276
|
-
opacity: 0.7;
|
|
11277
|
-
}
|
|
11278
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon img,
|
|
11279
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon svg,
|
|
11280
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon object {
|
|
11281
|
-
cursor: pointer;
|
|
11282
|
-
}
|
|
11283
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon img svg,
|
|
11284
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon svg svg,
|
|
11285
|
-
.veToolbar .veToolbarItemOuter .veToolbarIcon object svg {
|
|
11286
|
-
color: #006baa;
|
|
11287
|
-
}
|
|
11288
|
-
|
|
11289
|
-
.minOrfSizeInput::-webkit-inner-spin-button,
|
|
11290
|
-
.minOrfSizeInput::-webkit-outer-spin-button {
|
|
11291
|
-
-webkit-appearance: none;
|
|
11292
|
-
margin: 0;
|
|
11293
|
-
}
|
|
11294
|
-
|
|
11295
|
-
.minOrfSizeInput {
|
|
11296
|
-
padding-bottom: 0.25em;
|
|
11297
|
-
width: 5em;
|
|
11298
|
-
margin-left: 10px;
|
|
11299
|
-
text-align: center;
|
|
11300
|
-
padding-top: 0.25em;
|
|
11301
|
-
border: 1px solid lightgrey;
|
|
11302
|
-
justify-content: center;
|
|
11303
|
-
display: flex;
|
|
11304
|
-
flex-direction: column;
|
|
11305
|
-
}
|
|
11306
|
-
|
|
11307
|
-
.veToolbarDropdown {
|
|
11308
|
-
cursor: pointer;
|
|
11309
|
-
padding: 0px;
|
|
11310
|
-
padding-bottom: 5px;
|
|
11311
|
-
padding-top: 5px;
|
|
11312
|
-
border-radius: 3px;
|
|
11313
|
-
}
|
|
11314
|
-
.veToolbarDropdown:hover {
|
|
11315
|
-
background: lightgrey;
|
|
11316
|
-
}
|
|
11317
|
-
.veToolbarDropdown.isOpen {
|
|
11318
|
-
background: lightgrey;
|
|
11319
|
-
}
|
|
11320
|
-
|
|
11321
|
-
.veToolbarCutsiteFilterHolder {
|
|
11322
|
-
min-width: 300px;
|
|
11323
|
-
}
|
|
11324
|
-
.veToolbarCutsiteFilterHolder > div {
|
|
11325
|
-
margin: 10px;
|
|
11326
|
-
}
|
|
11327
|
-
.veToolbarCutsiteFilterHolder .title {
|
|
11328
|
-
margin: 10px;
|
|
11329
|
-
background: blue;
|
|
11330
|
-
width: 100%;
|
|
11331
|
-
}
|
|
11332
|
-
|
|
11333
|
-
.translateInfoSpan {
|
|
11334
|
-
font-size: 0.8em;
|
|
11335
|
-
padding: 4px;
|
|
11336
|
-
}
|
|
11337
|
-
|
|
11338
|
-
.showOrfTranslateSpan {
|
|
11339
|
-
padding: 8px;
|
|
11340
|
-
}
|
|
11341
|
-
|
|
11342
|
-
.veToolbarOrfOptionsHolder {
|
|
11343
|
-
min-width: 300px;
|
|
11344
|
-
margin-bottom: 10px;
|
|
11345
|
-
}
|
|
11346
|
-
|
|
11347
|
-
.veToolbarViewOptionsHolder div {
|
|
11348
|
-
margin-left: 10px;
|
|
11349
|
-
margin-bottom: 10px;
|
|
11350
|
-
}
|
|
11351
|
-
.veToolbarViewOptionsHolder label {
|
|
11352
|
-
margin: 40px 10px;
|
|
11353
|
-
}
|
|
11354
|
-
.ve-toolbar-item-popover {
|
|
11355
|
-
/* the z-index has to be high for it to work with ice */
|
|
11356
|
-
z-index: 4000;
|
|
11357
|
-
}
|
|
11358
11358
|
.veMergeFeaturesDialog .bp3-form-content {
|
|
11359
11359
|
flex-grow: 1;
|
|
11360
11360
|
}
|