@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.js
CHANGED
|
@@ -5422,9 +5422,18 @@ var propTypes$1 = {exports: {}};
|
|
|
5422
5422
|
* LICENSE file in the root directory of this source tree.
|
|
5423
5423
|
*/
|
|
5424
5424
|
|
|
5425
|
-
var
|
|
5425
|
+
var ReactPropTypesSecret_1;
|
|
5426
|
+
var hasRequiredReactPropTypesSecret;
|
|
5426
5427
|
|
|
5427
|
-
|
|
5428
|
+
function requireReactPropTypesSecret () {
|
|
5429
|
+
if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
|
|
5430
|
+
hasRequiredReactPropTypesSecret = 1;
|
|
5431
|
+
|
|
5432
|
+
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
|
5433
|
+
|
|
5434
|
+
ReactPropTypesSecret_1 = ReactPropTypesSecret;
|
|
5435
|
+
return ReactPropTypesSecret_1;
|
|
5436
|
+
}
|
|
5428
5437
|
|
|
5429
5438
|
/**
|
|
5430
5439
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
@@ -5433,60 +5442,69 @@ var ReactPropTypesSecret_1 = ReactPropTypesSecret$1;
|
|
|
5433
5442
|
* LICENSE file in the root directory of this source tree.
|
|
5434
5443
|
*/
|
|
5435
5444
|
|
|
5436
|
-
var
|
|
5445
|
+
var factoryWithThrowingShims;
|
|
5446
|
+
var hasRequiredFactoryWithThrowingShims;
|
|
5437
5447
|
|
|
5438
|
-
function
|
|
5439
|
-
|
|
5440
|
-
|
|
5448
|
+
function requireFactoryWithThrowingShims () {
|
|
5449
|
+
if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;
|
|
5450
|
+
hasRequiredFactoryWithThrowingShims = 1;
|
|
5441
5451
|
|
|
5442
|
-
var
|
|
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
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5452
|
+
var ReactPropTypesSecret = requireReactPropTypesSecret();
|
|
5453
|
+
|
|
5454
|
+
function emptyFunction() {}
|
|
5455
|
+
function emptyFunctionWithReset() {}
|
|
5456
|
+
emptyFunctionWithReset.resetWarningCache = emptyFunction;
|
|
5457
|
+
|
|
5458
|
+
factoryWithThrowingShims = function() {
|
|
5459
|
+
function shim(props, propName, componentName, location, propFullName, secret) {
|
|
5460
|
+
if (secret === ReactPropTypesSecret) {
|
|
5461
|
+
// It is still safe when called from React.
|
|
5462
|
+
return;
|
|
5463
|
+
}
|
|
5464
|
+
var err = new Error(
|
|
5465
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
5466
|
+
'Use PropTypes.checkPropTypes() to call them. ' +
|
|
5467
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
5468
|
+
);
|
|
5469
|
+
err.name = 'Invariant Violation';
|
|
5470
|
+
throw err;
|
|
5471
|
+
} shim.isRequired = shim;
|
|
5472
|
+
function getShim() {
|
|
5473
|
+
return shim;
|
|
5474
|
+
} // Important!
|
|
5475
|
+
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
|
5476
|
+
var ReactPropTypes = {
|
|
5477
|
+
array: shim,
|
|
5478
|
+
bigint: shim,
|
|
5479
|
+
bool: shim,
|
|
5480
|
+
func: shim,
|
|
5481
|
+
number: shim,
|
|
5482
|
+
object: shim,
|
|
5483
|
+
string: shim,
|
|
5484
|
+
symbol: shim,
|
|
5485
|
+
|
|
5486
|
+
any: shim,
|
|
5487
|
+
arrayOf: getShim,
|
|
5488
|
+
element: shim,
|
|
5489
|
+
elementType: shim,
|
|
5490
|
+
instanceOf: getShim,
|
|
5491
|
+
node: shim,
|
|
5492
|
+
objectOf: getShim,
|
|
5493
|
+
oneOf: getShim,
|
|
5494
|
+
oneOfType: getShim,
|
|
5495
|
+
shape: getShim,
|
|
5496
|
+
exact: getShim,
|
|
5497
|
+
|
|
5498
|
+
checkPropTypes: emptyFunctionWithReset,
|
|
5499
|
+
resetWarningCache: emptyFunction
|
|
5500
|
+
};
|
|
5501
|
+
|
|
5502
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
5503
|
+
|
|
5504
|
+
return ReactPropTypes;
|
|
5505
|
+
};
|
|
5506
|
+
return factoryWithThrowingShims;
|
|
5507
|
+
}
|
|
5490
5508
|
|
|
5491
5509
|
/**
|
|
5492
5510
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
@@ -5495,13 +5513,20 @@ var factoryWithThrowingShims = function() {
|
|
|
5495
5513
|
* LICENSE file in the root directory of this source tree.
|
|
5496
5514
|
*/
|
|
5497
5515
|
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5516
|
+
var hasRequiredPropTypes;
|
|
5517
|
+
|
|
5518
|
+
function requirePropTypes () {
|
|
5519
|
+
if (hasRequiredPropTypes) return propTypes$1.exports;
|
|
5520
|
+
hasRequiredPropTypes = 1;
|
|
5521
|
+
{
|
|
5522
|
+
// By explicitly using `prop-types` you are opting into new production behavior.
|
|
5523
|
+
// http://fb.me/prop-types-in-prod
|
|
5524
|
+
propTypes$1.exports = requireFactoryWithThrowingShims()();
|
|
5525
|
+
}
|
|
5526
|
+
return propTypes$1.exports;
|
|
5502
5527
|
}
|
|
5503
5528
|
|
|
5504
|
-
var propTypesExports =
|
|
5529
|
+
var propTypesExports = requirePropTypes();
|
|
5505
5530
|
const PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
|
|
5506
5531
|
|
|
5507
5532
|
/******************************************************************************
|
|
@@ -37815,7 +37840,7 @@ var reactList = {};
|
|
|
37815
37840
|
(function (exports) {
|
|
37816
37841
|
(function (global, factory) {
|
|
37817
37842
|
{
|
|
37818
|
-
factory(exports,
|
|
37843
|
+
factory(exports, requirePropTypes(), React$3);
|
|
37819
37844
|
}
|
|
37820
37845
|
})(commonjsGlobal, function (_exports, _propTypes, _react) {
|
|
37821
37846
|
|
|
@@ -66439,11 +66464,11 @@ function tagOptionRender(vals) {
|
|
|
66439
66464
|
function getSort(text, queryString) {
|
|
66440
66465
|
let ret;
|
|
66441
66466
|
if (text === queryString)
|
|
66442
|
-
ret =
|
|
66467
|
+
ret = -1;
|
|
66443
66468
|
else if (text.includes(queryString))
|
|
66444
|
-
ret =
|
|
66469
|
+
ret = text.indexOf(queryString);
|
|
66445
66470
|
else
|
|
66446
|
-
ret =
|
|
66471
|
+
ret = text.length;
|
|
66447
66472
|
return ret;
|
|
66448
66473
|
}
|
|
66449
66474
|
|
|
@@ -101280,7 +101305,7 @@ DraggableCore$5.default = void 0;
|
|
|
101280
101305
|
|
|
101281
101306
|
var React$2 = _interopRequireWildcard$2(React$3);
|
|
101282
101307
|
|
|
101283
|
-
var _propTypes$1 = _interopRequireDefault$1(
|
|
101308
|
+
var _propTypes$1 = _interopRequireDefault$1(requirePropTypes());
|
|
101284
101309
|
|
|
101285
101310
|
var _reactDom$1 = _interopRequireDefault$1(ReactDOM$1);
|
|
101286
101311
|
|
|
@@ -101856,7 +101881,7 @@ _defineProperty$5(DraggableCore$4, "defaultProps", {
|
|
|
101856
101881
|
|
|
101857
101882
|
var React = _interopRequireWildcard(React$3);
|
|
101858
101883
|
|
|
101859
|
-
var _propTypes = _interopRequireDefault(
|
|
101884
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
101860
101885
|
|
|
101861
101886
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
101862
101887
|
|
|
@@ -106614,8 +106639,8 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
106614
106639
|
maxRangeLength
|
|
106615
106640
|
);
|
|
106616
106641
|
let overlaps = [];
|
|
106617
|
-
normalizedRangeA.forEach(function(nonCircularRangeA
|
|
106618
|
-
normalizedRangeB.forEach(function(nonCircularRangeB
|
|
106642
|
+
normalizedRangeA.forEach(function(nonCircularRangeA) {
|
|
106643
|
+
normalizedRangeB.forEach(function(nonCircularRangeB) {
|
|
106619
106644
|
const overlap = getOverlapOfNonCircularRanges(
|
|
106620
106645
|
nonCircularRangeA,
|
|
106621
106646
|
nonCircularRangeB
|
|
@@ -106627,7 +106652,7 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
106627
106652
|
});
|
|
106628
106653
|
if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
|
|
106629
106654
|
const joinedOverlap = {};
|
|
106630
|
-
overlaps = lodashExports.flatMap(overlaps, (o
|
|
106655
|
+
overlaps = lodashExports.flatMap(overlaps, (o) => {
|
|
106631
106656
|
if (o.start === 0) {
|
|
106632
106657
|
joinedOverlap.end = o.end;
|
|
106633
106658
|
return [];
|
|
@@ -107117,7 +107142,7 @@ function translateRange(rangeToBeAdjusted, translateBy, rangeLength) {
|
|
|
107117
107142
|
});
|
|
107118
107143
|
}
|
|
107119
107144
|
|
|
107120
|
-
function flipRelativeRange(innerRange, outerRange, sequenceLength
|
|
107145
|
+
function flipRelativeRange(innerRange, outerRange, sequenceLength) {
|
|
107121
107146
|
const isFullyContained = isRangeWithinRange(
|
|
107122
107147
|
innerRange,
|
|
107123
107148
|
outerRange,
|
|
@@ -107129,7 +107154,7 @@ function flipRelativeRange(innerRange, outerRange, sequenceLength, options) {
|
|
|
107129
107154
|
return flipNonFullyContainedRange(innerRange, outerRange, sequenceLength);
|
|
107130
107155
|
}
|
|
107131
107156
|
}
|
|
107132
|
-
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
107157
|
+
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
107133
107158
|
const outerFullyContained = isRangeWithinRange(
|
|
107134
107159
|
outerRange,
|
|
107135
107160
|
innerRange,
|
|
@@ -107170,9 +107195,8 @@ function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength, opti
|
|
|
107170
107195
|
sequenceLength
|
|
107171
107196
|
);
|
|
107172
107197
|
if (overlaps.length >= 1) {
|
|
107173
|
-
let overlapExtendsForward;
|
|
107174
107198
|
const firstOverlap = overlaps[0];
|
|
107175
|
-
overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
107199
|
+
const overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
107176
107200
|
const flippedTruncatedInner = flipFullyContainedRange(
|
|
107177
107201
|
firstOverlap,
|
|
107178
107202
|
outerRange,
|
|
@@ -107193,7 +107217,7 @@ function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength, opti
|
|
|
107193
107217
|
}
|
|
107194
107218
|
return flippedInnerRange;
|
|
107195
107219
|
}
|
|
107196
|
-
function flipFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
107220
|
+
function flipFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
107197
107221
|
const translateBy = -outerRange.start;
|
|
107198
107222
|
const translatedOuterRange = translateRange(
|
|
107199
107223
|
outerRange,
|
|
@@ -107321,6 +107345,7 @@ function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, a
|
|
|
107321
107345
|
rangesAlreadyAddedToYOffset.push(range);
|
|
107322
107346
|
return true;
|
|
107323
107347
|
}
|
|
107348
|
+
return false;
|
|
107324
107349
|
});
|
|
107325
107350
|
if (!openYOffsetFound) {
|
|
107326
107351
|
yOffset = YOffsetLevelsWithRanges.length;
|
|
@@ -124024,7 +124049,6 @@ function genbankToJson(string, options = {}) {
|
|
|
124024
124049
|
}
|
|
124025
124050
|
function parseLocus(line) {
|
|
124026
124051
|
result = createInitialSequence(options);
|
|
124027
|
-
let locusName;
|
|
124028
124052
|
let circular;
|
|
124029
124053
|
let gbDivision;
|
|
124030
124054
|
let date;
|
|
@@ -124035,7 +124059,7 @@ function genbankToJson(string, options = {}) {
|
|
|
124035
124059
|
);
|
|
124036
124060
|
addMessage("Import Warning: Locus line contains no values: " + line);
|
|
124037
124061
|
}
|
|
124038
|
-
locusName = lineArr[1];
|
|
124062
|
+
const locusName = lineArr[1];
|
|
124039
124063
|
for (let i = 1; i < lineArr.length; i++) {
|
|
124040
124064
|
if (lineArr[i].match(/circular/gi)) {
|
|
124041
124065
|
circular = true;
|
|
@@ -124182,10 +124206,10 @@ function genbankToJson(string, options = {}) {
|
|
|
124182
124206
|
}
|
|
124183
124207
|
}
|
|
124184
124208
|
function parseFeatureNote(line) {
|
|
124185
|
-
let newLine
|
|
124209
|
+
let newLine;
|
|
124186
124210
|
newLine = line.trimLeft();
|
|
124187
124211
|
newLine = newLine.replace(/^\/|"$/g, "");
|
|
124188
|
-
lineArr = newLine.split(/="|=/);
|
|
124212
|
+
const lineArr = newLine.split(/="|=/);
|
|
124189
124213
|
let val = lineArr.slice(1).join("=");
|
|
124190
124214
|
if (val) {
|
|
124191
124215
|
val = val.replace(/\\/g, " ");
|
|
@@ -137653,7 +137677,6 @@ function createGenbankLocus(serSeq, options) {
|
|
|
137653
137677
|
if (serSeq.sequence.symbols) {
|
|
137654
137678
|
serSeq.sequence = serSeq.sequence.symbols.split("");
|
|
137655
137679
|
}
|
|
137656
|
-
let tmp;
|
|
137657
137680
|
let dnaType;
|
|
137658
137681
|
if (serSeq.isProtein) {
|
|
137659
137682
|
dnaType = "";
|
|
@@ -137670,7 +137693,7 @@ function createGenbankLocus(serSeq, options) {
|
|
|
137670
137693
|
line += " ";
|
|
137671
137694
|
line += StringUtil.lpad(String(serSeq.sequence.length), " ", 11);
|
|
137672
137695
|
line += serSeq.isProtein ? " aa " : " bp ";
|
|
137673
|
-
tmp = "";
|
|
137696
|
+
const tmp = "";
|
|
137674
137697
|
line += StringUtil.lpad(tmp, " ", 3);
|
|
137675
137698
|
line += StringUtil.rpad(dnaType, " ", 6);
|
|
137676
137699
|
line += " ";
|
|
@@ -142904,6 +142927,7 @@ function mapStateToProps(state, ownProps) {
|
|
|
142904
142927
|
if (!editorState) {
|
|
142905
142928
|
return editorReducer({}, {});
|
|
142906
142929
|
}
|
|
142930
|
+
const sequenceLength = selectors.sequenceLengthSelector(editorState);
|
|
142907
142931
|
const { findTool, annotationsToSupport = {} } = editorState;
|
|
142908
142932
|
const visibilities = getVisibilities(editorState);
|
|
142909
142933
|
let annotationToAdd;
|
|
@@ -142914,7 +142938,13 @@ function mapStateToProps(state, ownProps) {
|
|
|
142914
142938
|
].forEach(([n, type, annotationTypePlural]) => {
|
|
142915
142939
|
const vals = reduxForm.getFormValues(n)(state);
|
|
142916
142940
|
if (vals) {
|
|
142917
|
-
annotationToAdd = getAnnToAdd(
|
|
142941
|
+
annotationToAdd = getAnnToAdd(
|
|
142942
|
+
vals,
|
|
142943
|
+
n,
|
|
142944
|
+
type,
|
|
142945
|
+
annotationTypePlural,
|
|
142946
|
+
sequenceLength
|
|
142947
|
+
);
|
|
142918
142948
|
}
|
|
142919
142949
|
});
|
|
142920
142950
|
const toReturn = {
|
|
@@ -142938,7 +142968,6 @@ function mapStateToProps(state, ownProps) {
|
|
|
142938
142968
|
editorState,
|
|
142939
142969
|
ownProps.additionalEnzymes
|
|
142940
142970
|
);
|
|
142941
|
-
const sequenceLength = selectors.sequenceLengthSelector(editorState);
|
|
142942
142971
|
const { matchedSearchLayer, searchLayers, matchesTotal } = getSearchLayersAndMatch(editorState);
|
|
142943
142972
|
const annotationSearchMatches = selectors.annotationSearchSelector(editorState);
|
|
142944
142973
|
const _sequenceDataToUse = getSequenceDataToUse(
|
|
@@ -143214,21 +143243,26 @@ const getFindTool = createSelector(
|
|
|
143214
143243
|
};
|
|
143215
143244
|
}
|
|
143216
143245
|
);
|
|
143217
|
-
const getAnnToAdd = defaultMemoize(
|
|
143218
|
-
|
|
143219
|
-
|
|
143220
|
-
|
|
143221
|
-
|
|
143222
|
-
|
|
143223
|
-
|
|
143224
|
-
|
|
143225
|
-
|
|
143226
|
-
|
|
143227
|
-
|
|
143228
|
-
|
|
143246
|
+
const getAnnToAdd = defaultMemoize(
|
|
143247
|
+
(vals, n, type, annotationTypePlural, sequenceLength) => {
|
|
143248
|
+
const annToAdd = normalizeRange(
|
|
143249
|
+
{
|
|
143250
|
+
color: getFeatureToColorMap({ includeHidden: true })[vals.type || "primer_bind"],
|
|
143251
|
+
//we won't have the correct color yet so we set it here
|
|
143252
|
+
...vals,
|
|
143253
|
+
formName: n,
|
|
143254
|
+
type,
|
|
143255
|
+
annotationTypePlural,
|
|
143256
|
+
name: vals.name || "Untitled"
|
|
143257
|
+
},
|
|
143258
|
+
sequenceLength
|
|
143259
|
+
);
|
|
143260
|
+
if (!vals.useLinkedOligo) {
|
|
143261
|
+
delete annToAdd.bases;
|
|
143262
|
+
}
|
|
143263
|
+
return annToAdd;
|
|
143229
143264
|
}
|
|
143230
|
-
|
|
143231
|
-
});
|
|
143265
|
+
);
|
|
143232
143266
|
const getSeqDataWithAnnToAdd = defaultMemoize(
|
|
143233
143267
|
(seqData, ann, allowMultipleFeatureDirections) => {
|
|
143234
143268
|
if (ann) {
|
|
@@ -153938,7 +153972,7 @@ DraggableCore$2.default = void 0;
|
|
|
153938
153972
|
|
|
153939
153973
|
var React$1 = _interopRequireWildcard(React$3);
|
|
153940
153974
|
|
|
153941
|
-
var _propTypes = _interopRequireDefault(
|
|
153975
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
153942
153976
|
|
|
153943
153977
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
153944
153978
|
|
|
@@ -154500,7 +154534,7 @@ _defineProperty$2(DraggableCore$1, "defaultProps", {
|
|
|
154500
154534
|
|
|
154501
154535
|
var React = _interopRequireWildcard(React$3);
|
|
154502
154536
|
|
|
154503
|
-
var _propTypes = _interopRequireDefault(
|
|
154537
|
+
var _propTypes = _interopRequireDefault(requirePropTypes());
|
|
154504
154538
|
|
|
154505
154539
|
var _reactDom = _interopRequireDefault(ReactDOM$1);
|
|
154506
154540
|
|
|
@@ -161139,7 +161173,7 @@ function showFileDialog({ multiple = false, onSelect }) {
|
|
|
161139
161173
|
}
|
|
161140
161174
|
|
|
161141
161175
|
const name = "@teselagen/ove";
|
|
161142
|
-
const version = "0.3.
|
|
161176
|
+
const version = "0.3.14";
|
|
161143
161177
|
const main = "./src/index.js";
|
|
161144
161178
|
const exports$1 = {
|
|
161145
161179
|
".": {
|
|
@@ -177378,30 +177412,30 @@ class AddOrEditAnnotationDialog extends React$3.Component {
|
|
|
177378
177412
|
formatStart = (val) => {
|
|
177379
177413
|
const { isProtein } = this.props.sequenceData || {};
|
|
177380
177414
|
if (isProtein) {
|
|
177381
|
-
return (val + 2) / 3;
|
|
177415
|
+
return lodashExports.round((val + 2) / 3);
|
|
177382
177416
|
}
|
|
177383
|
-
return val;
|
|
177417
|
+
return lodashExports.round(val);
|
|
177384
177418
|
};
|
|
177385
177419
|
formatEnd = (val) => {
|
|
177386
177420
|
const { isProtein } = this.props.sequenceData || {};
|
|
177387
177421
|
if (isProtein) {
|
|
177388
|
-
return val / 3;
|
|
177422
|
+
return lodashExports.round(val / 3);
|
|
177389
177423
|
}
|
|
177390
|
-
return val;
|
|
177424
|
+
return lodashExports.round(val);
|
|
177391
177425
|
};
|
|
177392
177426
|
parseStart = (val) => {
|
|
177393
177427
|
const { isProtein } = this.props.sequenceData || {};
|
|
177394
177428
|
if (isProtein) {
|
|
177395
|
-
return val * 3 - 2;
|
|
177429
|
+
return lodashExports.round(val * 3 - 2);
|
|
177396
177430
|
}
|
|
177397
|
-
return val;
|
|
177431
|
+
return lodashExports.round(val);
|
|
177398
177432
|
};
|
|
177399
177433
|
parseEnd = (val) => {
|
|
177400
177434
|
const { isProtein } = this.props.sequenceData || {};
|
|
177401
177435
|
if (isProtein) {
|
|
177402
|
-
return val * 3;
|
|
177436
|
+
return lodashExports.round(val * 3);
|
|
177403
177437
|
}
|
|
177404
|
-
return val;
|
|
177438
|
+
return lodashExports.round(val);
|
|
177405
177439
|
};
|
|
177406
177440
|
renderLocations = (props) => {
|
|
177407
177441
|
const { fields } = props;
|
|
@@ -184673,7 +184707,7 @@ class GeneralProperties extends React$3.Component {
|
|
|
184673
184707
|
{
|
|
184674
184708
|
className: "veReadOnlySelect",
|
|
184675
184709
|
disabled: !onSave || disableSetReadOnly,
|
|
184676
|
-
onChange: (val) =>
|
|
184710
|
+
onChange: (val) => handleReadOnlyChange(val === "readOnly", this.props),
|
|
184677
184711
|
value: readOnly ? "readOnly" : "editable",
|
|
184678
184712
|
options: [
|
|
184679
184713
|
{ label: "Read Only", value: "readOnly" },
|