@teselagen/ove 0.3.13 → 0.3.15
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 +141 -107
- package/index.mjs +141 -107
- package/index.umd.js +138 -121
- package/package.json +2 -2
- package/src/ToolBar/editTool.js +0 -1
- package/src/helperComponents/AddOrEditAnnotationDialog/index.js +9 -9
- package/src/helperComponents/PropertiesDialog/GeneralProperties.js +0 -1
- package/src/withEditorProps/index.js +29 -17
package/index.mjs
CHANGED
|
@@ -5401,9 +5401,18 @@ var propTypes$1 = {exports: {}};
|
|
|
5401
5401
|
* LICENSE file in the root directory of this source tree.
|
|
5402
5402
|
*/
|
|
5403
5403
|
|
|
5404
|
-
var
|
|
5404
|
+
var ReactPropTypesSecret_1;
|
|
5405
|
+
var hasRequiredReactPropTypesSecret;
|
|
5405
5406
|
|
|
5406
|
-
|
|
5407
|
+
function requireReactPropTypesSecret () {
|
|
5408
|
+
if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
|
|
5409
|
+
hasRequiredReactPropTypesSecret = 1;
|
|
5410
|
+
|
|
5411
|
+
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
|
5412
|
+
|
|
5413
|
+
ReactPropTypesSecret_1 = ReactPropTypesSecret;
|
|
5414
|
+
return ReactPropTypesSecret_1;
|
|
5415
|
+
}
|
|
5407
5416
|
|
|
5408
5417
|
/**
|
|
5409
5418
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
@@ -5412,60 +5421,69 @@ var ReactPropTypesSecret_1 = ReactPropTypesSecret$1;
|
|
|
5412
5421
|
* LICENSE file in the root directory of this source tree.
|
|
5413
5422
|
*/
|
|
5414
5423
|
|
|
5415
|
-
var
|
|
5424
|
+
var factoryWithThrowingShims;
|
|
5425
|
+
var hasRequiredFactoryWithThrowingShims;
|
|
5416
5426
|
|
|
5417
|
-
function
|
|
5418
|
-
|
|
5419
|
-
|
|
5427
|
+
function requireFactoryWithThrowingShims () {
|
|
5428
|
+
if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;
|
|
5429
|
+
hasRequiredFactoryWithThrowingShims = 1;
|
|
5420
5430
|
|
|
5421
|
-
var
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
|
|
5430
|
-
|
|
5431
|
-
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5438
|
-
|
|
5439
|
-
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
|
|
5466
|
-
|
|
5467
|
-
|
|
5468
|
-
|
|
5431
|
+
var ReactPropTypesSecret = requireReactPropTypesSecret();
|
|
5432
|
+
|
|
5433
|
+
function emptyFunction() {}
|
|
5434
|
+
function emptyFunctionWithReset() {}
|
|
5435
|
+
emptyFunctionWithReset.resetWarningCache = emptyFunction;
|
|
5436
|
+
|
|
5437
|
+
factoryWithThrowingShims = function() {
|
|
5438
|
+
function shim(props, propName, componentName, location, propFullName, secret) {
|
|
5439
|
+
if (secret === ReactPropTypesSecret) {
|
|
5440
|
+
// It is still safe when called from React.
|
|
5441
|
+
return;
|
|
5442
|
+
}
|
|
5443
|
+
var err = new Error(
|
|
5444
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
5445
|
+
'Use PropTypes.checkPropTypes() to call them. ' +
|
|
5446
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
5447
|
+
);
|
|
5448
|
+
err.name = 'Invariant Violation';
|
|
5449
|
+
throw err;
|
|
5450
|
+
} shim.isRequired = shim;
|
|
5451
|
+
function getShim() {
|
|
5452
|
+
return shim;
|
|
5453
|
+
} // Important!
|
|
5454
|
+
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
|
5455
|
+
var ReactPropTypes = {
|
|
5456
|
+
array: shim,
|
|
5457
|
+
bigint: shim,
|
|
5458
|
+
bool: shim,
|
|
5459
|
+
func: shim,
|
|
5460
|
+
number: shim,
|
|
5461
|
+
object: shim,
|
|
5462
|
+
string: shim,
|
|
5463
|
+
symbol: shim,
|
|
5464
|
+
|
|
5465
|
+
any: shim,
|
|
5466
|
+
arrayOf: getShim,
|
|
5467
|
+
element: shim,
|
|
5468
|
+
elementType: shim,
|
|
5469
|
+
instanceOf: getShim,
|
|
5470
|
+
node: shim,
|
|
5471
|
+
objectOf: getShim,
|
|
5472
|
+
oneOf: getShim,
|
|
5473
|
+
oneOfType: getShim,
|
|
5474
|
+
shape: getShim,
|
|
5475
|
+
exact: getShim,
|
|
5476
|
+
|
|
5477
|
+
checkPropTypes: emptyFunctionWithReset,
|
|
5478
|
+
resetWarningCache: emptyFunction
|
|
5479
|
+
};
|
|
5480
|
+
|
|
5481
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
5482
|
+
|
|
5483
|
+
return ReactPropTypes;
|
|
5484
|
+
};
|
|
5485
|
+
return factoryWithThrowingShims;
|
|
5486
|
+
}
|
|
5469
5487
|
|
|
5470
5488
|
/**
|
|
5471
5489
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
@@ -5474,13 +5492,20 @@ var factoryWithThrowingShims = function() {
|
|
|
5474
5492
|
* LICENSE file in the root directory of this source tree.
|
|
5475
5493
|
*/
|
|
5476
5494
|
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5495
|
+
var hasRequiredPropTypes;
|
|
5496
|
+
|
|
5497
|
+
function requirePropTypes () {
|
|
5498
|
+
if (hasRequiredPropTypes) return propTypes$1.exports;
|
|
5499
|
+
hasRequiredPropTypes = 1;
|
|
5500
|
+
{
|
|
5501
|
+
// By explicitly using `prop-types` you are opting into new production behavior.
|
|
5502
|
+
// http://fb.me/prop-types-in-prod
|
|
5503
|
+
propTypes$1.exports = requireFactoryWithThrowingShims()();
|
|
5504
|
+
}
|
|
5505
|
+
return propTypes$1.exports;
|
|
5481
5506
|
}
|
|
5482
5507
|
|
|
5483
|
-
var propTypesExports =
|
|
5508
|
+
var propTypesExports = requirePropTypes();
|
|
5484
5509
|
const PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
|
|
5485
5510
|
|
|
5486
5511
|
/******************************************************************************
|
|
@@ -37794,7 +37819,7 @@ var reactList = {};
|
|
|
37794
37819
|
(function (exports) {
|
|
37795
37820
|
(function (global, factory) {
|
|
37796
37821
|
{
|
|
37797
|
-
factory(exports,
|
|
37822
|
+
factory(exports, requirePropTypes(), React__default$1);
|
|
37798
37823
|
}
|
|
37799
37824
|
})(commonjsGlobal, function (_exports, _propTypes, _react) {
|
|
37800
37825
|
|
|
@@ -66418,11 +66443,11 @@ function tagOptionRender(vals) {
|
|
|
66418
66443
|
function getSort(text, queryString) {
|
|
66419
66444
|
let ret;
|
|
66420
66445
|
if (text === queryString)
|
|
66421
|
-
ret =
|
|
66446
|
+
ret = -1;
|
|
66422
66447
|
else if (text.includes(queryString))
|
|
66423
|
-
ret =
|
|
66448
|
+
ret = text.indexOf(queryString);
|
|
66424
66449
|
else
|
|
66425
|
-
ret =
|
|
66450
|
+
ret = text.length;
|
|
66426
66451
|
return ret;
|
|
66427
66452
|
}
|
|
66428
66453
|
|
|
@@ -101259,7 +101284,7 @@ DraggableCore$5.default = void 0;
|
|
|
101259
101284
|
|
|
101260
101285
|
var React$2 = _interopRequireWildcard$2(React__default$1);
|
|
101261
101286
|
|
|
101262
|
-
var _propTypes$1 = _interopRequireDefault$1(
|
|
101287
|
+
var _propTypes$1 = _interopRequireDefault$1(requirePropTypes());
|
|
101263
101288
|
|
|
101264
101289
|
var _reactDom$1 = _interopRequireDefault$1(ReactDOM$1);
|
|
101265
101290
|
|
|
@@ -101835,7 +101860,7 @@ _defineProperty$5(DraggableCore$4, "defaultProps", {
|
|
|
101835
101860
|
|
|
101836
101861
|
var React = _interopRequireWildcard(React__default$1);
|
|
101837
101862
|
|
|
101838
|
-
var _propTypes = _interopRequireDefault(
|
|
101863
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
101839
101864
|
|
|
101840
101865
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
101841
101866
|
|
|
@@ -106593,8 +106618,8 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
106593
106618
|
maxRangeLength
|
|
106594
106619
|
);
|
|
106595
106620
|
let overlaps = [];
|
|
106596
|
-
normalizedRangeA.forEach(function(nonCircularRangeA
|
|
106597
|
-
normalizedRangeB.forEach(function(nonCircularRangeB
|
|
106621
|
+
normalizedRangeA.forEach(function(nonCircularRangeA) {
|
|
106622
|
+
normalizedRangeB.forEach(function(nonCircularRangeB) {
|
|
106598
106623
|
const overlap = getOverlapOfNonCircularRanges(
|
|
106599
106624
|
nonCircularRangeA,
|
|
106600
106625
|
nonCircularRangeB
|
|
@@ -106606,7 +106631,7 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
106606
106631
|
});
|
|
106607
106632
|
if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
|
|
106608
106633
|
const joinedOverlap = {};
|
|
106609
|
-
overlaps = lodashExports.flatMap(overlaps, (o
|
|
106634
|
+
overlaps = lodashExports.flatMap(overlaps, (o) => {
|
|
106610
106635
|
if (o.start === 0) {
|
|
106611
106636
|
joinedOverlap.end = o.end;
|
|
106612
106637
|
return [];
|
|
@@ -107096,7 +107121,7 @@ function translateRange(rangeToBeAdjusted, translateBy, rangeLength) {
|
|
|
107096
107121
|
});
|
|
107097
107122
|
}
|
|
107098
107123
|
|
|
107099
|
-
function flipRelativeRange(innerRange, outerRange, sequenceLength
|
|
107124
|
+
function flipRelativeRange(innerRange, outerRange, sequenceLength) {
|
|
107100
107125
|
const isFullyContained = isRangeWithinRange(
|
|
107101
107126
|
innerRange,
|
|
107102
107127
|
outerRange,
|
|
@@ -107108,7 +107133,7 @@ function flipRelativeRange(innerRange, outerRange, sequenceLength, options) {
|
|
|
107108
107133
|
return flipNonFullyContainedRange(innerRange, outerRange, sequenceLength);
|
|
107109
107134
|
}
|
|
107110
107135
|
}
|
|
107111
|
-
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
107136
|
+
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
107112
107137
|
const outerFullyContained = isRangeWithinRange(
|
|
107113
107138
|
outerRange,
|
|
107114
107139
|
innerRange,
|
|
@@ -107149,9 +107174,8 @@ function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength, opti
|
|
|
107149
107174
|
sequenceLength
|
|
107150
107175
|
);
|
|
107151
107176
|
if (overlaps.length >= 1) {
|
|
107152
|
-
let overlapExtendsForward;
|
|
107153
107177
|
const firstOverlap = overlaps[0];
|
|
107154
|
-
overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
107178
|
+
const overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
107155
107179
|
const flippedTruncatedInner = flipFullyContainedRange(
|
|
107156
107180
|
firstOverlap,
|
|
107157
107181
|
outerRange,
|
|
@@ -107172,7 +107196,7 @@ function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength, opti
|
|
|
107172
107196
|
}
|
|
107173
107197
|
return flippedInnerRange;
|
|
107174
107198
|
}
|
|
107175
|
-
function flipFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
107199
|
+
function flipFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
107176
107200
|
const translateBy = -outerRange.start;
|
|
107177
107201
|
const translatedOuterRange = translateRange(
|
|
107178
107202
|
outerRange,
|
|
@@ -107300,6 +107324,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
|
107300
107324
|
rangesAlreadyAddedToYOffset.push(range);
|
|
107301
107325
|
return true;
|
|
107302
107326
|
}
|
|
107327
|
+
return false;
|
|
107303
107328
|
});
|
|
107304
107329
|
if (!openYOffsetFound) {
|
|
107305
107330
|
yOffset = YOffsetLevelsWithRanges.length;
|
|
@@ -124003,7 +124028,6 @@ function genbankToJson(string, options = {}) {
|
|
|
124003
124028
|
}
|
|
124004
124029
|
function parseLocus(line) {
|
|
124005
124030
|
result = createInitialSequence(options);
|
|
124006
|
-
let locusName;
|
|
124007
124031
|
let circular;
|
|
124008
124032
|
let gbDivision;
|
|
124009
124033
|
let date;
|
|
@@ -124014,7 +124038,7 @@ function genbankToJson(string, options = {}) {
|
|
|
124014
124038
|
);
|
|
124015
124039
|
addMessage("Import Warning: Locus line contains no values: " + line);
|
|
124016
124040
|
}
|
|
124017
|
-
locusName = lineArr[1];
|
|
124041
|
+
const locusName = lineArr[1];
|
|
124018
124042
|
for (let i = 1; i < lineArr.length; i++) {
|
|
124019
124043
|
if (lineArr[i].match(/circular/gi)) {
|
|
124020
124044
|
circular = true;
|
|
@@ -124161,10 +124185,10 @@ function genbankToJson(string, options = {}) {
|
|
|
124161
124185
|
}
|
|
124162
124186
|
}
|
|
124163
124187
|
function parseFeatureNote(line) {
|
|
124164
|
-
let newLine
|
|
124188
|
+
let newLine;
|
|
124165
124189
|
newLine = line.trimLeft();
|
|
124166
124190
|
newLine = newLine.replace(/^\/|"$/g, "");
|
|
124167
|
-
lineArr = newLine.split(/="|=/);
|
|
124191
|
+
const lineArr = newLine.split(/="|=/);
|
|
124168
124192
|
let val = lineArr.slice(1).join("=");
|
|
124169
124193
|
if (val) {
|
|
124170
124194
|
val = val.replace(/\\/g, " ");
|
|
@@ -137632,7 +137656,6 @@ function createGenbankLocus(serSeq, options) {
|
|
|
137632
137656
|
if (serSeq.sequence.symbols) {
|
|
137633
137657
|
serSeq.sequence = serSeq.sequence.symbols.split("");
|
|
137634
137658
|
}
|
|
137635
|
-
let tmp;
|
|
137636
137659
|
let dnaType;
|
|
137637
137660
|
if (serSeq.isProtein) {
|
|
137638
137661
|
dnaType = "";
|
|
@@ -137649,7 +137672,7 @@ function createGenbankLocus(serSeq, options) {
|
|
|
137649
137672
|
line += " ";
|
|
137650
137673
|
line += StringUtil.lpad(String(serSeq.sequence.length), " ", 11);
|
|
137651
137674
|
line += serSeq.isProtein ? " aa " : " bp ";
|
|
137652
|
-
tmp = "";
|
|
137675
|
+
const tmp = "";
|
|
137653
137676
|
line += StringUtil.lpad(tmp, " ", 3);
|
|
137654
137677
|
line += StringUtil.rpad(dnaType, " ", 6);
|
|
137655
137678
|
line += " ";
|
|
@@ -142883,6 +142906,7 @@ function mapStateToProps(state, ownProps) {
|
|
|
142883
142906
|
if (!editorState) {
|
|
142884
142907
|
return editorReducer({}, {});
|
|
142885
142908
|
}
|
|
142909
|
+
const sequenceLength = selectors.sequenceLengthSelector(editorState);
|
|
142886
142910
|
const { findTool, annotationsToSupport = {} } = editorState;
|
|
142887
142911
|
const visibilities = getVisibilities(editorState);
|
|
142888
142912
|
let annotationToAdd;
|
|
@@ -142893,7 +142917,13 @@ function mapStateToProps(state, ownProps) {
|
|
|
142893
142917
|
].forEach(([n, type, annotationTypePlural]) => {
|
|
142894
142918
|
const vals = getFormValues(n)(state);
|
|
142895
142919
|
if (vals) {
|
|
142896
|
-
annotationToAdd = getAnnToAdd(
|
|
142920
|
+
annotationToAdd = getAnnToAdd(
|
|
142921
|
+
vals,
|
|
142922
|
+
n,
|
|
142923
|
+
type,
|
|
142924
|
+
annotationTypePlural,
|
|
142925
|
+
sequenceLength
|
|
142926
|
+
);
|
|
142897
142927
|
}
|
|
142898
142928
|
});
|
|
142899
142929
|
const toReturn = {
|
|
@@ -142917,7 +142947,6 @@ function mapStateToProps(state, ownProps) {
|
|
|
142917
142947
|
editorState,
|
|
142918
142948
|
ownProps.additionalEnzymes
|
|
142919
142949
|
);
|
|
142920
|
-
const sequenceLength = selectors.sequenceLengthSelector(editorState);
|
|
142921
142950
|
const { matchedSearchLayer, searchLayers, matchesTotal } = getSearchLayersAndMatch(editorState);
|
|
142922
142951
|
const annotationSearchMatches = selectors.annotationSearchSelector(editorState);
|
|
142923
142952
|
const _sequenceDataToUse = getSequenceDataToUse(
|
|
@@ -143193,21 +143222,26 @@ const getFindTool = createSelector(
|
|
|
143193
143222
|
};
|
|
143194
143223
|
}
|
|
143195
143224
|
);
|
|
143196
|
-
const getAnnToAdd = defaultMemoize(
|
|
143197
|
-
|
|
143198
|
-
|
|
143199
|
-
|
|
143200
|
-
|
|
143201
|
-
|
|
143202
|
-
|
|
143203
|
-
|
|
143204
|
-
|
|
143205
|
-
|
|
143206
|
-
|
|
143207
|
-
|
|
143225
|
+
const getAnnToAdd = defaultMemoize(
|
|
143226
|
+
(vals, n, type, annotationTypePlural, sequenceLength) => {
|
|
143227
|
+
const annToAdd = normalizeRange(
|
|
143228
|
+
{
|
|
143229
|
+
color: getFeatureToColorMap({ includeHidden: true })[vals.type || "primer_bind"],
|
|
143230
|
+
//we won't have the correct color yet so we set it here
|
|
143231
|
+
...vals,
|
|
143232
|
+
formName: n,
|
|
143233
|
+
type,
|
|
143234
|
+
annotationTypePlural,
|
|
143235
|
+
name: vals.name || "Untitled"
|
|
143236
|
+
},
|
|
143237
|
+
sequenceLength
|
|
143238
|
+
);
|
|
143239
|
+
if (!vals.useLinkedOligo) {
|
|
143240
|
+
delete annToAdd.bases;
|
|
143241
|
+
}
|
|
143242
|
+
return annToAdd;
|
|
143208
143243
|
}
|
|
143209
|
-
|
|
143210
|
-
});
|
|
143244
|
+
);
|
|
143211
143245
|
const getSeqDataWithAnnToAdd = defaultMemoize(
|
|
143212
143246
|
(seqData, ann, allowMultipleFeatureDirections) => {
|
|
143213
143247
|
if (ann) {
|
|
@@ -153917,7 +153951,7 @@ DraggableCore$2.default = void 0;
|
|
|
153917
153951
|
|
|
153918
153952
|
var React$1 = _interopRequireWildcard(React__default$1);
|
|
153919
153953
|
|
|
153920
|
-
var _propTypes = _interopRequireDefault(
|
|
153954
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
153921
153955
|
|
|
153922
153956
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
153923
153957
|
|
|
@@ -154479,7 +154513,7 @@ _defineProperty$2(DraggableCore$1, "defaultProps", {
|
|
|
154479
154513
|
|
|
154480
154514
|
var React = _interopRequireWildcard(React__default$1);
|
|
154481
154515
|
|
|
154482
|
-
var _propTypes = _interopRequireDefault(
|
|
154516
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
154483
154517
|
|
|
154484
154518
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
154485
154519
|
|
|
@@ -161118,7 +161152,7 @@ function showFileDialog({ multiple = false, onSelect }) {
|
|
|
161118
161152
|
}
|
|
161119
161153
|
|
|
161120
161154
|
const name = "@teselagen/ove";
|
|
161121
|
-
const version = "0.3.
|
|
161155
|
+
const version = "0.3.14";
|
|
161122
161156
|
const main = "./src/index.js";
|
|
161123
161157
|
const exports$1 = {
|
|
161124
161158
|
".": {
|
|
@@ -177357,30 +177391,30 @@ class AddOrEditAnnotationDialog extends React__default$1.Component {
|
|
|
177357
177391
|
formatStart = (val) => {
|
|
177358
177392
|
const { isProtein } = this.props.sequenceData || {};
|
|
177359
177393
|
if (isProtein) {
|
|
177360
|
-
return (val + 2) / 3;
|
|
177394
|
+
return lodashExports.round((val + 2) / 3);
|
|
177361
177395
|
}
|
|
177362
|
-
return val;
|
|
177396
|
+
return lodashExports.round(val);
|
|
177363
177397
|
};
|
|
177364
177398
|
formatEnd = (val) => {
|
|
177365
177399
|
const { isProtein } = this.props.sequenceData || {};
|
|
177366
177400
|
if (isProtein) {
|
|
177367
|
-
return val / 3;
|
|
177401
|
+
return lodashExports.round(val / 3);
|
|
177368
177402
|
}
|
|
177369
|
-
return val;
|
|
177403
|
+
return lodashExports.round(val);
|
|
177370
177404
|
};
|
|
177371
177405
|
parseStart = (val) => {
|
|
177372
177406
|
const { isProtein } = this.props.sequenceData || {};
|
|
177373
177407
|
if (isProtein) {
|
|
177374
|
-
return val * 3 - 2;
|
|
177408
|
+
return lodashExports.round(val * 3 - 2);
|
|
177375
177409
|
}
|
|
177376
|
-
return val;
|
|
177410
|
+
return lodashExports.round(val);
|
|
177377
177411
|
};
|
|
177378
177412
|
parseEnd = (val) => {
|
|
177379
177413
|
const { isProtein } = this.props.sequenceData || {};
|
|
177380
177414
|
if (isProtein) {
|
|
177381
|
-
return val * 3;
|
|
177415
|
+
return lodashExports.round(val * 3);
|
|
177382
177416
|
}
|
|
177383
|
-
return val;
|
|
177417
|
+
return lodashExports.round(val);
|
|
177384
177418
|
};
|
|
177385
177419
|
renderLocations = (props) => {
|
|
177386
177420
|
const { fields } = props;
|
|
@@ -184652,7 +184686,7 @@ class GeneralProperties extends React__default$1.Component {
|
|
|
184652
184686
|
{
|
|
184653
184687
|
className: "veReadOnlySelect",
|
|
184654
184688
|
disabled: !onSave || disableSetReadOnly,
|
|
184655
|
-
onChange: (val) =>
|
|
184689
|
+
onChange: (val) => handleReadOnlyChange(val === "readOnly", this.props),
|
|
184656
184690
|
value: readOnly ? "readOnly" : "editable",
|
|
184657
184691
|
options: [
|
|
184658
184692
|
{ label: "Read Only", value: "readOnly" },
|