@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.umd.js CHANGED
@@ -57052,17 +57052,9 @@
57052
57052
  return _domCreate;
57053
57053
  }
57054
57054
 
57055
- var _ie8DomDefine;
57056
- var hasRequired_ie8DomDefine;
57057
-
57058
- function require_ie8DomDefine () {
57059
- if (hasRequired_ie8DomDefine) return _ie8DomDefine;
57060
- hasRequired_ie8DomDefine = 1;
57061
- _ie8DomDefine = !require_descriptors() && !_fails(function () {
57062
- return Object.defineProperty(require_domCreate()('div'), 'a', { get: function () { return 7; } }).a != 7;
57063
- });
57064
- return _ie8DomDefine;
57065
- }
57055
+ var _ie8DomDefine = !require_descriptors() && !_fails(function () {
57056
+ return Object.defineProperty(require_domCreate()('div'), 'a', { get: function () { return 7; } }).a != 7;
57057
+ });
57066
57058
 
57067
57059
  // 7.1.1 ToPrimitive(input [, PreferredType])
57068
57060
  var isObject$6 = _isObject;
@@ -57083,7 +57075,7 @@
57083
57075
  if (hasRequired_objectDp) return _objectDp;
57084
57076
  hasRequired_objectDp = 1;
57085
57077
  var anObject = _anObject;
57086
- var IE8_DOM_DEFINE = require_ie8DomDefine();
57078
+ var IE8_DOM_DEFINE = _ie8DomDefine;
57087
57079
  var toPrimitive = _toPrimitive$1;
57088
57080
  var dP = Object.defineProperty;
57089
57081
 
@@ -57110,10 +57102,10 @@
57110
57102
  };
57111
57103
  };
57112
57104
 
57113
- var dP$2 = require_objectDp();
57105
+ var dP$1 = require_objectDp();
57114
57106
  var createDesc$3 = _propertyDesc;
57115
57107
  var _hide = require_descriptors() ? function (object, key, value) {
57116
- return dP$2.f(object, key, createDesc$3(1, value));
57108
+ return dP$1.f(object, key, createDesc$3(1, value));
57117
57109
  } : function (object, key, value) {
57118
57110
  object[key] = value;
57119
57111
  return object;
@@ -57129,7 +57121,7 @@
57129
57121
  var ctx$1 = _ctx;
57130
57122
  var hide$2 = _hide;
57131
57123
  var has$d = _has;
57132
- var PROTOTYPE$2 = 'prototype';
57124
+ var PROTOTYPE$1 = 'prototype';
57133
57125
 
57134
57126
  var $export$8 = function (type, name, source) {
57135
57127
  var IS_FORCED = type & $export$8.F;
@@ -57139,8 +57131,8 @@
57139
57131
  var IS_BIND = type & $export$8.B;
57140
57132
  var IS_WRAP = type & $export$8.W;
57141
57133
  var exports = IS_GLOBAL ? core$3 : core$3[name] || (core$3[name] = {});
57142
- var expProto = exports[PROTOTYPE$2];
57143
- var target = IS_GLOBAL ? global$4 : IS_STATIC ? global$4[name] : (global$4[name] || {})[PROTOTYPE$2];
57134
+ var expProto = exports[PROTOTYPE$1];
57135
+ var target = IS_GLOBAL ? global$4 : IS_STATIC ? global$4[name] : (global$4[name] || {})[PROTOTYPE$1];
57144
57136
  var key, own, out;
57145
57137
  if (IS_GLOBAL) source = name;
57146
57138
  for (key in source) {
@@ -57164,7 +57156,7 @@
57164
57156
  } return new C(a, b, c);
57165
57157
  } return C.apply(this, arguments);
57166
57158
  };
57167
- F[PROTOTYPE$2] = C[PROTOTYPE$2];
57159
+ F[PROTOTYPE$1] = C[PROTOTYPE$1];
57168
57160
  return F;
57169
57161
  // make static versions for prototype methods
57170
57162
  })(out) : IS_PROTO && typeof out == 'function' ? ctx$1(Function.call, out) : out;
@@ -57301,14 +57293,14 @@
57301
57293
  var has$c = _has;
57302
57294
  var toIObject$4 = _toIobject;
57303
57295
  var arrayIndexOf = _arrayIncludes$1(false);
57304
- var IE_PROTO$2 = _sharedKey('IE_PROTO');
57296
+ var IE_PROTO$1 = _sharedKey('IE_PROTO');
57305
57297
 
57306
57298
  var _objectKeysInternal = function (object, names) {
57307
57299
  var O = toIObject$4(object);
57308
57300
  var i = 0;
57309
57301
  var result = [];
57310
57302
  var key;
57311
- for (key in O) if (key != IE_PROTO$2) has$c(O, key) && result.push(key);
57303
+ for (key in O) if (key != IE_PROTO$1) has$c(O, key) && result.push(key);
57312
57304
  // Don't enum bug & hidden keys
57313
57305
  while (names.length > i) if (has$c(O, key = names[i++])) {
57314
57306
  ~arrayIndexOf(result, key) || result.push(key);
@@ -57323,10 +57315,10 @@
57323
57315
 
57324
57316
  // 19.1.2.14 / 15.2.3.14 Object.keys(O)
57325
57317
  var $keys$3 = _objectKeysInternal;
57326
- var enumBugKeys$1 = _enumBugKeys;
57318
+ var enumBugKeys = _enumBugKeys;
57327
57319
 
57328
57320
  var _objectKeys = Object.keys || function keys(O) {
57329
- return $keys$3(O, enumBugKeys$1);
57321
+ return $keys$3(O, enumBugKeys);
57330
57322
  };
57331
57323
 
57332
57324
  var _objectGops = {};
@@ -57433,19 +57425,27 @@
57433
57425
 
57434
57426
  var _redefine = _hide;
57435
57427
 
57436
- var dP$1 = require_objectDp();
57437
- var anObject$4 = _anObject;
57438
- var getKeys$1 = _objectKeys;
57428
+ var _objectDps;
57429
+ var hasRequired_objectDps;
57439
57430
 
57440
- var _objectDps = require_descriptors() ? Object.defineProperties : function defineProperties(O, Properties) {
57441
- anObject$4(O);
57442
- var keys = getKeys$1(Properties);
57443
- var length = keys.length;
57444
- var i = 0;
57445
- var P;
57446
- while (length > i) dP$1.f(O, P = keys[i++], Properties[P]);
57447
- return O;
57448
- };
57431
+ function require_objectDps () {
57432
+ if (hasRequired_objectDps) return _objectDps;
57433
+ hasRequired_objectDps = 1;
57434
+ var dP = require_objectDp();
57435
+ var anObject = _anObject;
57436
+ var getKeys = _objectKeys;
57437
+
57438
+ _objectDps = require_descriptors() ? Object.defineProperties : function defineProperties(O, Properties) {
57439
+ anObject(O);
57440
+ var keys = getKeys(Properties);
57441
+ var length = keys.length;
57442
+ var i = 0;
57443
+ var P;
57444
+ while (length > i) dP.f(O, P = keys[i++], Properties[P]);
57445
+ return O;
57446
+ };
57447
+ return _objectDps;
57448
+ }
57449
57449
 
57450
57450
  var _html;
57451
57451
  var hasRequired_html;
@@ -57458,47 +57458,55 @@
57458
57458
  return _html;
57459
57459
  }
57460
57460
 
57461
- // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
57462
- var anObject$3 = _anObject;
57463
- var dPs = _objectDps;
57464
- var enumBugKeys = _enumBugKeys;
57465
- var IE_PROTO$1 = _sharedKey('IE_PROTO');
57466
- var Empty = function () { /* empty */ };
57467
- var PROTOTYPE$1 = 'prototype';
57461
+ var _objectCreate;
57462
+ var hasRequired_objectCreate;
57468
57463
 
57469
- // Create object with fake `null` prototype: use iframe Object with cleared prototype
57470
- var createDict = function () {
57471
- // Thrash, waste and sodomy: IE GC bug
57472
- var iframe = require_domCreate()('iframe');
57473
- var i = enumBugKeys.length;
57474
- var lt = '<';
57475
- var gt = '>';
57476
- var iframeDocument;
57477
- iframe.style.display = 'none';
57478
- require_html().appendChild(iframe);
57479
- iframe.src = 'javascript:'; // eslint-disable-line no-script-url
57480
- // createDict = iframe.contentWindow.Object;
57481
- // html.removeChild(iframe);
57482
- iframeDocument = iframe.contentWindow.document;
57483
- iframeDocument.open();
57484
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
57485
- iframeDocument.close();
57486
- createDict = iframeDocument.F;
57487
- while (i--) delete createDict[PROTOTYPE$1][enumBugKeys[i]];
57488
- return createDict();
57489
- };
57490
-
57491
- var _objectCreate = Object.create || function create(O, Properties) {
57492
- var result;
57493
- if (O !== null) {
57494
- Empty[PROTOTYPE$1] = anObject$3(O);
57495
- result = new Empty();
57496
- Empty[PROTOTYPE$1] = null;
57497
- // add "__proto__" for Object.getPrototypeOf polyfill
57498
- result[IE_PROTO$1] = O;
57499
- } else result = createDict();
57500
- return Properties === undefined ? result : dPs(result, Properties);
57501
- };
57464
+ function require_objectCreate () {
57465
+ if (hasRequired_objectCreate) return _objectCreate;
57466
+ hasRequired_objectCreate = 1;
57467
+ // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
57468
+ var anObject = _anObject;
57469
+ var dPs = require_objectDps();
57470
+ var enumBugKeys = _enumBugKeys;
57471
+ var IE_PROTO = _sharedKey('IE_PROTO');
57472
+ var Empty = function () { /* empty */ };
57473
+ var PROTOTYPE = 'prototype';
57474
+
57475
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
57476
+ var createDict = function () {
57477
+ // Thrash, waste and sodomy: IE GC bug
57478
+ var iframe = require_domCreate()('iframe');
57479
+ var i = enumBugKeys.length;
57480
+ var lt = '<';
57481
+ var gt = '>';
57482
+ var iframeDocument;
57483
+ iframe.style.display = 'none';
57484
+ require_html().appendChild(iframe);
57485
+ iframe.src = 'javascript:'; // eslint-disable-line no-script-url
57486
+ // createDict = iframe.contentWindow.Object;
57487
+ // html.removeChild(iframe);
57488
+ iframeDocument = iframe.contentWindow.document;
57489
+ iframeDocument.open();
57490
+ iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
57491
+ iframeDocument.close();
57492
+ createDict = iframeDocument.F;
57493
+ while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
57494
+ return createDict();
57495
+ };
57496
+
57497
+ _objectCreate = Object.create || function create(O, Properties) {
57498
+ var result;
57499
+ if (O !== null) {
57500
+ Empty[PROTOTYPE] = anObject(O);
57501
+ result = new Empty();
57502
+ Empty[PROTOTYPE] = null;
57503
+ // add "__proto__" for Object.getPrototypeOf polyfill
57504
+ result[IE_PROTO] = O;
57505
+ } else result = createDict();
57506
+ return Properties === undefined ? result : dPs(result, Properties);
57507
+ };
57508
+ return _objectCreate;
57509
+ }
57502
57510
 
57503
57511
  var _wks = {exports: {}};
57504
57512
 
@@ -57524,7 +57532,7 @@
57524
57532
  if (it && !has$b(it = stat ? it : it.prototype, TAG$1)) def(it, TAG$1, { configurable: true, value: tag });
57525
57533
  };
57526
57534
 
57527
- var create$4 = _objectCreate;
57535
+ var create$4 = require_objectCreate();
57528
57536
  var descriptor = _propertyDesc;
57529
57537
  var setToStringTag$2 = _setToStringTag;
57530
57538
  var IteratorPrototype = {};
@@ -58133,7 +58141,7 @@
58133
58141
  var toIObject$1 = _toIobject;
58134
58142
  var toPrimitive$1 = _toPrimitive$1;
58135
58143
  var has$8 = _has;
58136
- var IE8_DOM_DEFINE = require_ie8DomDefine();
58144
+ var IE8_DOM_DEFINE = _ie8DomDefine;
58137
58145
  var gOPD$2 = Object.getOwnPropertyDescriptor;
58138
58146
 
58139
58147
  _objectGopd.f = require_descriptors() ? gOPD$2 : function getOwnPropertyDescriptor(O, P) {
@@ -58167,7 +58175,7 @@
58167
58175
  var toIObject = _toIobject;
58168
58176
  var toPrimitive = _toPrimitive$1;
58169
58177
  var createDesc = _propertyDesc;
58170
- var _create$1 = _objectCreate;
58178
+ var _create$1 = require_objectCreate();
58171
58179
  var gOPNExt = _objectGopnExt;
58172
58180
  var $GOPD = _objectGopd;
58173
58181
  var $GOPS = _objectGops;
@@ -58477,7 +58485,7 @@
58477
58485
 
58478
58486
  var $export = _export;
58479
58487
  // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
58480
- $export($export.S, 'Object', { create: _objectCreate });
58488
+ $export($export.S, 'Object', { create: require_objectCreate() });
58481
58489
 
58482
58490
  var $Object = _coreExports.Object;
58483
58491
  var create$3 = function create(P, D) {
@@ -90746,11 +90754,11 @@
90746
90754
  function getSort(text, queryString) {
90747
90755
  let ret;
90748
90756
  if (text === queryString)
90749
- ret = 0;
90757
+ ret = -1;
90750
90758
  else if (text.includes(queryString))
90751
- ret = 0.9;
90759
+ ret = text.indexOf(queryString);
90752
90760
  else
90753
- ret = 1;
90761
+ ret = text.length;
90754
90762
  return ret;
90755
90763
  }
90756
90764
 
@@ -135008,8 +135016,8 @@
135008
135016
  maxRangeLength
135009
135017
  );
135010
135018
  let overlaps = [];
135011
- normalizedRangeA.forEach(function(nonCircularRangeA, iA) {
135012
- normalizedRangeB.forEach(function(nonCircularRangeB, iB) {
135019
+ normalizedRangeA.forEach(function(nonCircularRangeA) {
135020
+ normalizedRangeB.forEach(function(nonCircularRangeB) {
135013
135021
  const overlap = getOverlapOfNonCircularRanges(
135014
135022
  nonCircularRangeA,
135015
135023
  nonCircularRangeB
@@ -135021,7 +135029,7 @@
135021
135029
  });
135022
135030
  if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
135023
135031
  const joinedOverlap = {};
135024
- overlaps = lodashExports.flatMap(overlaps, (o, i) => {
135032
+ overlaps = lodashExports.flatMap(overlaps, (o) => {
135025
135033
  if (o.start === 0) {
135026
135034
  joinedOverlap.end = o.end;
135027
135035
  return [];
@@ -135511,7 +135519,7 @@
135511
135519
  });
135512
135520
  }
135513
135521
 
135514
- function flipRelativeRange(innerRange, outerRange, sequenceLength, options) {
135522
+ function flipRelativeRange(innerRange, outerRange, sequenceLength) {
135515
135523
  const isFullyContained = isRangeWithinRange(
135516
135524
  innerRange,
135517
135525
  outerRange,
@@ -135523,7 +135531,7 @@
135523
135531
  return flipNonFullyContainedRange(innerRange, outerRange, sequenceLength);
135524
135532
  }
135525
135533
  }
135526
- function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength, options) {
135534
+ function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength) {
135527
135535
  const outerFullyContained = isRangeWithinRange(
135528
135536
  outerRange,
135529
135537
  innerRange,
@@ -135564,9 +135572,8 @@
135564
135572
  sequenceLength
135565
135573
  );
135566
135574
  if (overlaps.length >= 1) {
135567
- let overlapExtendsForward;
135568
135575
  const firstOverlap = overlaps[0];
135569
- overlapExtendsForward = firstOverlap.start !== outerRange.start;
135576
+ const overlapExtendsForward = firstOverlap.start !== outerRange.start;
135570
135577
  const flippedTruncatedInner = flipFullyContainedRange(
135571
135578
  firstOverlap,
135572
135579
  outerRange,
@@ -135587,7 +135594,7 @@
135587
135594
  }
135588
135595
  return flippedInnerRange;
135589
135596
  }
135590
- function flipFullyContainedRange(innerRange, outerRange, sequenceLength, options) {
135597
+ function flipFullyContainedRange(innerRange, outerRange, sequenceLength) {
135591
135598
  const translateBy = -outerRange.start;
135592
135599
  const translatedOuterRange = translateRange(
135593
135600
  outerRange,
@@ -135715,6 +135722,7 @@
135715
135722
  rangesAlreadyAddedToYOffset.push(range);
135716
135723
  return true;
135717
135724
  }
135725
+ return false;
135718
135726
  });
135719
135727
  if (!openYOffsetFound) {
135720
135728
  yOffset = YOffsetLevelsWithRanges.length;
@@ -152418,7 +152426,6 @@
152418
152426
  }
152419
152427
  function parseLocus(line) {
152420
152428
  result = createInitialSequence(options);
152421
- let locusName;
152422
152429
  let circular;
152423
152430
  let gbDivision;
152424
152431
  let date;
@@ -152429,7 +152436,7 @@
152429
152436
  );
152430
152437
  addMessage("Import Warning: Locus line contains no values: " + line);
152431
152438
  }
152432
- locusName = lineArr[1];
152439
+ const locusName = lineArr[1];
152433
152440
  for (let i = 1; i < lineArr.length; i++) {
152434
152441
  if (lineArr[i].match(/circular/gi)) {
152435
152442
  circular = true;
@@ -152576,10 +152583,10 @@
152576
152583
  }
152577
152584
  }
152578
152585
  function parseFeatureNote(line) {
152579
- let newLine, lineArr;
152586
+ let newLine;
152580
152587
  newLine = line.trimLeft();
152581
152588
  newLine = newLine.replace(/^\/|"$/g, "");
152582
- lineArr = newLine.split(/="|=/);
152589
+ const lineArr = newLine.split(/="|=/);
152583
152590
  let val = lineArr.slice(1).join("=");
152584
152591
  if (val) {
152585
152592
  val = val.replace(/\\/g, " ");
@@ -166047,7 +166054,6 @@
166047
166054
  if (serSeq.sequence.symbols) {
166048
166055
  serSeq.sequence = serSeq.sequence.symbols.split("");
166049
166056
  }
166050
- let tmp;
166051
166057
  let dnaType;
166052
166058
  if (serSeq.isProtein) {
166053
166059
  dnaType = "";
@@ -166064,7 +166070,7 @@
166064
166070
  line += " ";
166065
166071
  line += StringUtil.lpad(String(serSeq.sequence.length), " ", 11);
166066
166072
  line += serSeq.isProtein ? " aa " : " bp ";
166067
- tmp = "";
166073
+ const tmp = "";
166068
166074
  line += StringUtil.lpad(tmp, " ", 3);
166069
166075
  line += StringUtil.rpad(dnaType, " ", 6);
166070
166076
  line += " ";
@@ -170564,6 +170570,7 @@
170564
170570
  if (!editorState) {
170565
170571
  return editorReducer({}, {});
170566
170572
  }
170573
+ const sequenceLength = selectors.sequenceLengthSelector(editorState);
170567
170574
  const { findTool, annotationsToSupport = {} } = editorState;
170568
170575
  const visibilities = getVisibilities(editorState);
170569
170576
  let annotationToAdd;
@@ -170574,7 +170581,13 @@
170574
170581
  ].forEach(([n, type, annotationTypePlural]) => {
170575
170582
  const vals = getFormValues(n)(state);
170576
170583
  if (vals) {
170577
- annotationToAdd = getAnnToAdd(vals, n, type, annotationTypePlural);
170584
+ annotationToAdd = getAnnToAdd(
170585
+ vals,
170586
+ n,
170587
+ type,
170588
+ annotationTypePlural,
170589
+ sequenceLength
170590
+ );
170578
170591
  }
170579
170592
  });
170580
170593
  const toReturn = {
@@ -170598,7 +170611,6 @@
170598
170611
  editorState,
170599
170612
  ownProps.additionalEnzymes
170600
170613
  );
170601
- const sequenceLength = selectors.sequenceLengthSelector(editorState);
170602
170614
  const { matchedSearchLayer, searchLayers, matchesTotal } = getSearchLayersAndMatch(editorState);
170603
170615
  const annotationSearchMatches = selectors.annotationSearchSelector(editorState);
170604
170616
  const _sequenceDataToUse = getSequenceDataToUse(
@@ -170874,21 +170886,26 @@
170874
170886
  };
170875
170887
  }
170876
170888
  );
170877
- const getAnnToAdd = defaultMemoize((vals, n, type, annotationTypePlural) => {
170878
- const annToAdd = {
170879
- color: getFeatureToColorMap({ includeHidden: true })[vals.type || "primer_bind"],
170880
- //we won't have the correct color yet so we set it here
170881
- ...vals,
170882
- formName: n,
170883
- type,
170884
- annotationTypePlural,
170885
- name: vals.name || "Untitled"
170886
- };
170887
- if (!vals.useLinkedOligo) {
170888
- delete annToAdd.bases;
170889
+ const getAnnToAdd = defaultMemoize(
170890
+ (vals, n, type, annotationTypePlural, sequenceLength) => {
170891
+ const annToAdd = normalizeRange(
170892
+ {
170893
+ color: getFeatureToColorMap({ includeHidden: true })[vals.type || "primer_bind"],
170894
+ //we won't have the correct color yet so we set it here
170895
+ ...vals,
170896
+ formName: n,
170897
+ type,
170898
+ annotationTypePlural,
170899
+ name: vals.name || "Untitled"
170900
+ },
170901
+ sequenceLength
170902
+ );
170903
+ if (!vals.useLinkedOligo) {
170904
+ delete annToAdd.bases;
170905
+ }
170906
+ return annToAdd;
170889
170907
  }
170890
- return annToAdd;
170891
- });
170908
+ );
170892
170909
  const getSeqDataWithAnnToAdd = defaultMemoize(
170893
170910
  (seqData, ann, allowMultipleFeatureDirections) => {
170894
170911
  if (ann) {
@@ -188761,7 +188778,7 @@ double click --> edit`}`;
188761
188778
  }
188762
188779
 
188763
188780
  const name = "@teselagen/ove";
188764
- const version = "0.3.12";
188781
+ const version = "0.3.14";
188765
188782
  const main = "./src/index.js";
188766
188783
  const exports$1 = {
188767
188784
  ".": {
@@ -202384,30 +202401,30 @@ double click --> edit`}`;
202384
202401
  formatStart = (val) => {
202385
202402
  const { isProtein } = this.props.sequenceData || {};
202386
202403
  if (isProtein) {
202387
- return (val + 2) / 3;
202404
+ return lodashExports.round((val + 2) / 3);
202388
202405
  }
202389
- return val;
202406
+ return lodashExports.round(val);
202390
202407
  };
202391
202408
  formatEnd = (val) => {
202392
202409
  const { isProtein } = this.props.sequenceData || {};
202393
202410
  if (isProtein) {
202394
- return val / 3;
202411
+ return lodashExports.round(val / 3);
202395
202412
  }
202396
- return val;
202413
+ return lodashExports.round(val);
202397
202414
  };
202398
202415
  parseStart = (val) => {
202399
202416
  const { isProtein } = this.props.sequenceData || {};
202400
202417
  if (isProtein) {
202401
- return val * 3 - 2;
202418
+ return lodashExports.round(val * 3 - 2);
202402
202419
  }
202403
- return val;
202420
+ return lodashExports.round(val);
202404
202421
  };
202405
202422
  parseEnd = (val) => {
202406
202423
  const { isProtein } = this.props.sequenceData || {};
202407
202424
  if (isProtein) {
202408
- return val * 3;
202425
+ return lodashExports.round(val * 3);
202409
202426
  }
202410
- return val;
202427
+ return lodashExports.round(val);
202411
202428
  };
202412
202429
  renderLocations = (props) => {
202413
202430
  const { fields } = props;
@@ -208752,7 +208769,7 @@ ${seqDataToCopy}\r
208752
208769
  {
208753
208770
  className: "veReadOnlySelect",
208754
208771
  disabled: !onSave || disableSetReadOnly,
208755
- onChange: (val) => console.log(`val:`, val) || handleReadOnlyChange(val === "readOnly", this.props),
208772
+ onChange: (val) => handleReadOnlyChange(val === "readOnly", this.props),
208756
208773
  value: readOnly ? "readOnly" : "editable",
208757
208774
  options: [
208758
208775
  { label: "Read Only", value: "readOnly" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teselagen/ove",
3
- "version": "0.3.13",
3
+ "version": "0.3.15",
4
4
  "main": "./src/index.js",
5
5
  "exports": {
6
6
  ".": {
@@ -15,7 +15,7 @@
15
15
  "dependencies": {
16
16
  "@teselagen/sequence-utils": "0.3.7",
17
17
  "@teselagen/range-utils": "0.3.7",
18
- "@teselagen/ui": "0.3.12",
18
+ "@teselagen/ui": "0.3.13",
19
19
  "@teselagen/file-utils": "0.3.9",
20
20
  "@teselagen/bounce-loader": "0.3.7",
21
21
  "@teselagen/bio-parsers": "0.3.8",
@@ -2,7 +2,6 @@ import React, { useState } from "react";
2
2
  import { Icon } from "@blueprintjs/core";
3
3
  import ToolbarItem from "./ToolbarItem";
4
4
  import { connectToEditor } from "../withEditorProps";
5
- import { func } from "prop-types";
6
5
 
7
6
  export default connectToEditor(editorState => {
8
7
  return {
@@ -39,7 +39,7 @@ import { store, view } from "@risingstack/react-easy-state";
39
39
 
40
40
  import withEditorProps from "../../withEditorProps";
41
41
  import { withProps } from "recompose";
42
- import { map, flatMap } from "lodash";
42
+ import { map, flatMap, round } from "lodash";
43
43
  import "./style.css";
44
44
 
45
45
  class AddOrEditAnnotationDialog extends React.Component {
@@ -58,30 +58,30 @@ class AddOrEditAnnotationDialog extends React.Component {
58
58
  formatStart = val => {
59
59
  const { isProtein } = this.props.sequenceData || {};
60
60
  if (isProtein) {
61
- return (val + 2) / 3;
61
+ return round((val + 2) / 3);
62
62
  }
63
- return val;
63
+ return round(val);
64
64
  };
65
65
  formatEnd = val => {
66
66
  const { isProtein } = this.props.sequenceData || {};
67
67
  if (isProtein) {
68
- return val / 3;
68
+ return round(val / 3);
69
69
  }
70
- return val;
70
+ return round(val);
71
71
  };
72
72
  parseStart = val => {
73
73
  const { isProtein } = this.props.sequenceData || {};
74
74
  if (isProtein) {
75
- return val * 3 - 2;
75
+ return round(val * 3 - 2);
76
76
  }
77
- return val;
77
+ return round(val);
78
78
  };
79
79
  parseEnd = val => {
80
80
  const { isProtein } = this.props.sequenceData || {};
81
81
  if (isProtein) {
82
- return val * 3;
82
+ return round(val * 3);
83
83
  }
84
- return val;
84
+ return round(val);
85
85
  };
86
86
  renderLocations = props => {
87
87
  const { fields } = props;
@@ -105,7 +105,6 @@ class GeneralProperties extends React.Component {
105
105
  className={"veReadOnlySelect"}
106
106
  disabled={!onSave || disableSetReadOnly}
107
107
  onChange={val =>
108
- console.log(`val:`, val) ||
109
108
  handleReadOnlyChange(val === "readOnly", this.props)
110
109
  }
111
110
  value={readOnly ? "readOnly" : "editable"}
@@ -571,6 +571,7 @@ function mapStateToProps(state, ownProps) {
571
571
  if (!editorState) {
572
572
  return editorReducer({}, {});
573
573
  }
574
+ const sequenceLength = s.sequenceLengthSelector(editorState);
574
575
 
575
576
  const { findTool, annotationsToSupport = {} } = editorState;
576
577
  const visibilities = getVisibilities(editorState);
@@ -582,7 +583,13 @@ function mapStateToProps(state, ownProps) {
582
583
  ].forEach(([n, type, annotationTypePlural]) => {
583
584
  const vals = getFormValues(n)(state);
584
585
  if (vals) {
585
- annotationToAdd = getAnnToAdd(vals, n, type, annotationTypePlural);
586
+ annotationToAdd = getAnnToAdd(
587
+ vals,
588
+ n,
589
+ type,
590
+ annotationTypePlural,
591
+ sequenceLength
592
+ );
586
593
  }
587
594
  });
588
595
 
@@ -613,7 +620,6 @@ function mapStateToProps(state, ownProps) {
613
620
  editorState,
614
621
  ownProps.additionalEnzymes
615
622
  );
616
- const sequenceLength = s.sequenceLengthSelector(editorState);
617
623
 
618
624
  const { matchedSearchLayer, searchLayers, matchesTotal } =
619
625
  getSearchLayersAndMatch(editorState);
@@ -955,22 +961,28 @@ const getFindTool = createSelector(
955
961
  }
956
962
  );
957
963
 
958
- const getAnnToAdd = defaultMemoize((vals, n, type, annotationTypePlural) => {
959
- const annToAdd = {
960
- color: getFeatureToColorMap({ includeHidden: true })[
961
- vals.type || "primer_bind"
962
- ], //we won't have the correct color yet so we set it here
963
- ...vals,
964
- formName: n,
965
- type,
966
- annotationTypePlural,
967
- name: vals.name || "Untitled"
968
- };
969
- if (!vals.useLinkedOligo) {
970
- delete annToAdd.bases;
964
+ const getAnnToAdd = defaultMemoize(
965
+ (vals, n, type, annotationTypePlural, sequenceLength) => {
966
+ const annToAdd = normalizeRange(
967
+ {
968
+ color: getFeatureToColorMap({ includeHidden: true })[
969
+ vals.type || "primer_bind"
970
+ ], //we won't have the correct color yet so we set it here
971
+ ...vals,
972
+ formName: n,
973
+ type,
974
+ annotationTypePlural,
975
+ name: vals.name || "Untitled"
976
+ },
977
+ sequenceLength
978
+ );
979
+
980
+ if (!vals.useLinkedOligo) {
981
+ delete annToAdd.bases;
982
+ }
983
+ return annToAdd;
971
984
  }
972
- return annToAdd;
973
- });
985
+ );
974
986
  const getSeqDataWithAnnToAdd = defaultMemoize(
975
987
  (seqData, ann, allowMultipleFeatureDirections) => {
976
988
  if (ann) {