@teselagen/ove 0.3.30 → 0.3.43
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.cjs.js +163 -93
- package/index.es.js +163 -93
- package/index.js +197011 -0
- package/index.mjs +196957 -0
- package/index.umd.js +219 -140
- package/package.json +4 -4
- package/src/RowItem/Sequence.js +1 -1
- package/src/helperComponents/AddOrEditPrimerDialog/index.js +7 -10
- package/src/utils/editorUtils.js +0 -19
- package/src/withEditorInteractions/createSequenceInputPopup.js +10 -16
- package/src/withEditorInteractions/index.js +5 -8
    
        package/index.cjs.js
    CHANGED
    
    | @@ -18236,11 +18236,20 @@ var _fails = /* @__PURE__ */ __name(function(exec) { | |
| 18236 18236 | 
             
                return true;
         | 
| 18237 18237 | 
             
              }
         | 
| 18238 18238 | 
             
            }, "_fails");
         | 
| 18239 | 
            -
            var _descriptors | 
| 18240 | 
            -
             | 
| 18241 | 
            -
             | 
| 18242 | 
            -
               | 
| 18243 | 
            -
             | 
| 18239 | 
            +
            var _descriptors;
         | 
| 18240 | 
            +
            var hasRequired_descriptors;
         | 
| 18241 | 
            +
            function require_descriptors() {
         | 
| 18242 | 
            +
              if (hasRequired_descriptors)
         | 
| 18243 | 
            +
                return _descriptors;
         | 
| 18244 | 
            +
              hasRequired_descriptors = 1;
         | 
| 18245 | 
            +
              _descriptors = !_fails(function() {
         | 
| 18246 | 
            +
                return Object.defineProperty({}, "a", { get: function() {
         | 
| 18247 | 
            +
                  return 7;
         | 
| 18248 | 
            +
                } }).a != 7;
         | 
| 18249 | 
            +
              });
         | 
| 18250 | 
            +
              return _descriptors;
         | 
| 18251 | 
            +
            }
         | 
| 18252 | 
            +
            __name(require_descriptors, "require_descriptors");
         | 
| 18244 18253 | 
             
            var _domCreate;
         | 
| 18245 18254 | 
             
            var hasRequired_domCreate;
         | 
| 18246 18255 | 
             
            function require_domCreate() {
         | 
| @@ -18256,7 +18265,7 @@ function require_domCreate() { | |
| 18256 18265 | 
             
              return _domCreate;
         | 
| 18257 18266 | 
             
            }
         | 
| 18258 18267 | 
             
            __name(require_domCreate, "require_domCreate");
         | 
| 18259 | 
            -
            var _ie8DomDefine = ! | 
| 18268 | 
            +
            var _ie8DomDefine = !require_descriptors() && !_fails(function() {
         | 
| 18260 18269 | 
             
              return Object.defineProperty(require_domCreate()("div"), "a", { get: function() {
         | 
| 18261 18270 | 
             
                return 7;
         | 
| 18262 18271 | 
             
              } }).a != 7;
         | 
| @@ -18278,7 +18287,7 @@ var anObject$5 = _anObject; | |
| 18278 18287 | 
             
            var IE8_DOM_DEFINE$1 = _ie8DomDefine;
         | 
| 18279 18288 | 
             
            var toPrimitive$2 = _toPrimitive$1;
         | 
| 18280 18289 | 
             
            var dP$3 = Object.defineProperty;
         | 
| 18281 | 
            -
            _objectDp.f =  | 
| 18290 | 
            +
            _objectDp.f = require_descriptors() ? Object.defineProperty : /* @__PURE__ */ __name(function defineProperty2(O2, P2, Attributes) {
         | 
| 18282 18291 | 
             
              anObject$5(O2);
         | 
| 18283 18292 | 
             
              P2 = toPrimitive$2(P2, true);
         | 
| 18284 18293 | 
             
              anObject$5(Attributes);
         | 
| @@ -18303,7 +18312,7 @@ var _propertyDesc = /* @__PURE__ */ __name(function(bitmap, value) { | |
| 18303 18312 | 
             
            }, "_propertyDesc");
         | 
| 18304 18313 | 
             
            var dP$2 = _objectDp;
         | 
| 18305 18314 | 
             
            var createDesc$3 = _propertyDesc;
         | 
| 18306 | 
            -
            var _hide =  | 
| 18315 | 
            +
            var _hide = require_descriptors() ? function(object3, key, value) {
         | 
| 18307 18316 | 
             
              return dP$2.f(object3, key, createDesc$3(1, value));
         | 
| 18308 18317 | 
             
            } : function(object3, key, value) {
         | 
| 18309 18318 | 
             
              object3[key] = value;
         | 
| @@ -18492,7 +18501,7 @@ function require_objectAssign() { | |
| 18492 18501 | 
             
              if (hasRequired_objectAssign)
         | 
| 18493 18502 | 
             
                return _objectAssign;
         | 
| 18494 18503 | 
             
              hasRequired_objectAssign = 1;
         | 
| 18495 | 
            -
              var DESCRIPTORS2 =  | 
| 18504 | 
            +
              var DESCRIPTORS2 = require_descriptors();
         | 
| 18496 18505 | 
             
              var getKeys2 = _objectKeys;
         | 
| 18497 18506 | 
             
              var gOPS2 = _objectGops;
         | 
| 18498 18507 | 
             
              var pIE2 = _objectPie;
         | 
| @@ -18561,7 +18570,7 @@ var _redefine = _hide; | |
| 18561 18570 | 
             
            var dP$1 = _objectDp;
         | 
| 18562 18571 | 
             
            var anObject$4 = _anObject;
         | 
| 18563 18572 | 
             
            var getKeys$1 = _objectKeys;
         | 
| 18564 | 
            -
            var _objectDps =  | 
| 18573 | 
            +
            var _objectDps = require_descriptors() ? Object.defineProperties : /* @__PURE__ */ __name(function defineProperties(O2, Properties2) {
         | 
| 18565 18574 | 
             
              anObject$4(O2);
         | 
| 18566 18575 | 
             
              var keys5 = getKeys$1(Properties2);
         | 
| 18567 18576 | 
             
              var length = keys5.length;
         | 
| @@ -19030,7 +19039,7 @@ var _default$8 = /* @__PURE__ */ __name(function(instance, Constructor) { | |
| 19030 19039 | 
             
              }
         | 
| 19031 19040 | 
             
            }, "_default$8");
         | 
| 19032 19041 | 
             
            var $export$3 = _export;
         | 
| 19033 | 
            -
            $export$3($export$3.S + $export$3.F * ! | 
| 19042 | 
            +
            $export$3($export$3.S + $export$3.F * !require_descriptors(), "Object", { defineProperty: _objectDp.f });
         | 
| 19034 19043 | 
             
            var $Object$2 = _coreExports.Object;
         | 
| 19035 19044 | 
             
            var defineProperty$c = /* @__PURE__ */ __name(function defineProperty3(it, key, desc) {
         | 
| 19036 19045 | 
             
              return $Object$2.defineProperty(it, key, desc);
         | 
| @@ -19180,7 +19189,7 @@ var toPrimitive$1 = _toPrimitive$1; | |
| 19180 19189 | 
             
            var has$9 = _has;
         | 
| 19181 19190 | 
             
            var IE8_DOM_DEFINE = _ie8DomDefine;
         | 
| 19182 19191 | 
             
            var gOPD$5 = Object.getOwnPropertyDescriptor;
         | 
| 19183 | 
            -
            _objectGopd.f =  | 
| 19192 | 
            +
            _objectGopd.f = require_descriptors() ? gOPD$5 : /* @__PURE__ */ __name(function getOwnPropertyDescriptor(O2, P2) {
         | 
| 19184 19193 | 
             
              O2 = toIObject$1(O2);
         | 
| 19185 19194 | 
             
              P2 = toPrimitive$1(P2, true);
         | 
| 19186 19195 | 
             
              if (IE8_DOM_DEFINE)
         | 
| @@ -19193,7 +19202,7 @@ _objectGopd.f = _descriptors ? gOPD$5 : /* @__PURE__ */ __name(function getOwnPr | |
| 19193 19202 | 
             
            }, "getOwnPropertyDescriptor");
         | 
| 19194 19203 | 
             
            var global$2 = _globalExports;
         | 
| 19195 19204 | 
             
            var has$8 = _has;
         | 
| 19196 | 
            -
            var DESCRIPTORS =  | 
| 19205 | 
            +
            var DESCRIPTORS = require_descriptors();
         | 
| 19197 19206 | 
             
            var $export$2 = _export;
         | 
| 19198 19207 | 
             
            var redefine = _redefine;
         | 
| 19199 19208 | 
             
            var META = _metaExports.KEY;
         | 
| @@ -57090,7 +57099,7 @@ const _DataTable = class _DataTable extends React$2.Component { | |
| 57090 57099 | 
             
                    isEntityDisabled,
         | 
| 57091 57100 | 
             
                    entity
         | 
| 57092 57101 | 
             
                  });
         | 
| 57093 | 
            -
                  const _isClean = entity._isClean && doNotValidateUntouchedRows;
         | 
| 57102 | 
            +
                  const _isClean = entity._isClean && doNotValidateUntouchedRows || isEntityClean(entity);
         | 
| 57094 57103 | 
             
                  const err2 = !_isClean && reduxFormCellValidation[cellId];
         | 
| 57095 57104 | 
             
                  let selectedTopBorder, selectedRightBorder, selectedBottomBorder, selectedLeftBorder;
         | 
| 57096 57105 | 
             
                  if (reduxFormSelectedCells[cellId]) {
         | 
| @@ -59286,6 +59295,21 @@ function stripNumberAtEnd(str) { | |
| 59286 59295 | 
             
              return str.replace(getNumberStrAtEnd(str), "");
         | 
| 59287 59296 | 
             
            }
         | 
| 59288 59297 | 
             
            __name(stripNumberAtEnd, "stripNumberAtEnd");
         | 
| 59298 | 
            +
            function isEntityClean(e2) {
         | 
| 59299 | 
            +
              let isClean = true;
         | 
| 59300 | 
            +
              lodashExports.some(e2, (val2, key) => {
         | 
| 59301 | 
            +
                if (key === "id")
         | 
| 59302 | 
            +
                  return;
         | 
| 59303 | 
            +
                if (key === "_isClean")
         | 
| 59304 | 
            +
                  return;
         | 
| 59305 | 
            +
                if (val2) {
         | 
| 59306 | 
            +
                  isClean = false;
         | 
| 59307 | 
            +
                  return true;
         | 
| 59308 | 
            +
                }
         | 
| 59309 | 
            +
              });
         | 
| 59310 | 
            +
              return isClean;
         | 
| 59311 | 
            +
            }
         | 
| 59312 | 
            +
            __name(isEntityClean, "isEntityClean");
         | 
| 59289 59313 | 
             
            const wrapDialog = /* @__PURE__ */ __name((topLevelDialogProps = {}) => (Component) => (props) => {
         | 
| 59290 59314 | 
             
              const r2 = React$2.useRef();
         | 
| 59291 59315 | 
             
              const memoedHotkeys = React$2.useMemo(
         | 
| @@ -61800,7 +61824,7 @@ __name(asyncValidateHelper, "asyncValidateHelper"); | |
| 61800 61824 | 
             
            function removeCleanRows(reduxFormEntities, reduxFormCellValidation) {
         | 
| 61801 61825 | 
             
              const toFilterOut = {};
         | 
| 61802 61826 | 
             
              const entsToUse = (reduxFormEntities || []).filter((e2) => {
         | 
| 61803 | 
            -
                if (!e2._isClean)
         | 
| 61827 | 
            +
                if (!(e2._isClean || isEntityClean(e2)))
         | 
| 61804 61828 | 
             
                  return true;
         | 
| 61805 61829 | 
             
                else {
         | 
| 61806 61830 | 
             
                  toFilterOut[getIdOrCodeOrIndex(e2)] = true;
         | 
| @@ -76765,7 +76789,9 @@ ptIconWrapper( | |
| 76765 76789 | 
             
              ))),
         | 
| 76766 76790 | 
             
              400
         | 
| 76767 76791 | 
             
            );
         | 
| 76768 | 
            -
            const isSafari = /^((?!chrome|android).)*safari/i.test( | 
| 76792 | 
            +
            const isSafari = /^((?!chrome|android).)*safari/i.test(
         | 
| 76793 | 
            +
              navigator.userAgent
         | 
| 76794 | 
            +
            );
         | 
| 76769 76795 | 
             
            function genericCommandFactory(config) {
         | 
| 76770 76796 | 
             
              const out = {};
         | 
| 76771 76797 | 
             
              for (const cmdId in config.commandDefs) {
         | 
| @@ -77818,6 +77844,7 @@ const minimumOrfSize$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de | |
| 77818 77844 | 
             
              minimumOrfSizeUpdate
         | 
| 77819 77845 | 
             
            }, Symbol.toStringTag, { value: "Module" }));
         | 
| 77820 77846 | 
             
            const protein_letters = "ACDEFGHIKLMNPQRSTVWY";
         | 
| 77847 | 
            +
            const protein_letters_withUandX = "ACDEFGHIKLMNPQRSTVWYUX";
         | 
| 77821 77848 | 
             
            const extended_protein_letters = "ACDEFGHIKLMNPQRSTVWYBXZJUO.*-";
         | 
| 77822 77849 | 
             
            const ambiguous_dna_letters = "GATCRYWSMKHBVDN";
         | 
| 77823 77850 | 
             
            const unambiguous_dna_letters = "GATC";
         | 
| @@ -77886,6 +77913,7 @@ const bioData = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope | |
| 77886 77913 | 
             
              extended_protein_letters,
         | 
| 77887 77914 | 
             
              extended_protein_values,
         | 
| 77888 77915 | 
             
              protein_letters,
         | 
| 77916 | 
            +
              protein_letters_withUandX,
         | 
| 77889 77917 | 
             
              unambiguous_dna_letters,
         | 
| 77890 77918 | 
             
              unambiguous_rna_letters
         | 
| 77891 77919 | 
             
            }, Symbol.toStringTag, { value: "Module" }));
         | 
| @@ -83904,20 +83932,91 @@ const modifiableTypes = [ | |
| 83904 83932 | 
             
              "primers",
         | 
| 83905 83933 | 
             
              "guides"
         | 
| 83906 83934 | 
             
            ];
         | 
| 83907 | 
            -
            function filterSequenceString(sequenceString,  | 
| 83908 | 
            -
               | 
| 83909 | 
            -
             | 
| 83910 | 
            -
             | 
| 83911 | 
            -
             | 
| 83912 | 
            -
             | 
| 83913 | 
            -
             | 
| 83914 | 
            -
             | 
| 83935 | 
            +
            function filterSequenceString(sequenceString, {
         | 
| 83936 | 
            +
              additionalValidChars = "",
         | 
| 83937 | 
            +
              isOligo: isOligo2,
         | 
| 83938 | 
            +
              name: name2,
         | 
| 83939 | 
            +
              isProtein: isProtein2,
         | 
| 83940 | 
            +
              isRna: isRna2,
         | 
| 83941 | 
            +
              isMixedRnaAndDna,
         | 
| 83942 | 
            +
              includeStopCodon
         | 
| 83943 | 
            +
            } = {}) {
         | 
| 83944 | 
            +
              const acceptedChars = getAcceptedChars({
         | 
| 83945 | 
            +
                isOligo: isOligo2,
         | 
| 83946 | 
            +
                isProtein: isProtein2,
         | 
| 83947 | 
            +
                isRna: isRna2,
         | 
| 83948 | 
            +
                isMixedRnaAndDna,
         | 
| 83949 | 
            +
                includeStopCodon
         | 
| 83950 | 
            +
              });
         | 
| 83951 | 
            +
              const replaceChars = getReplaceChars({
         | 
| 83952 | 
            +
                isOligo: isOligo2,
         | 
| 83953 | 
            +
                isProtein: isProtein2,
         | 
| 83954 | 
            +
                isRna: isRna2,
         | 
| 83955 | 
            +
                isMixedRnaAndDna
         | 
| 83956 | 
            +
              });
         | 
| 83957 | 
            +
              let sanitizedVal = "";
         | 
| 83958 | 
            +
              const invalidChars = [];
         | 
| 83959 | 
            +
              const chars2 = `${acceptedChars}${additionalValidChars.split("").join("\\")}`;
         | 
| 83960 | 
            +
              const warnings = [];
         | 
| 83961 | 
            +
              const replaceCount = {};
         | 
| 83962 | 
            +
              sequenceString.split("").forEach((letter) => {
         | 
| 83963 | 
            +
                const lowerLetter = letter.toLowerCase();
         | 
| 83964 | 
            +
                if (replaceChars && replaceChars[lowerLetter]) {
         | 
| 83965 | 
            +
                  if (!replaceCount[lowerLetter]) {
         | 
| 83966 | 
            +
                    replaceCount[lowerLetter] = 0;
         | 
| 83967 | 
            +
                  }
         | 
| 83968 | 
            +
                  replaceCount[lowerLetter]++;
         | 
| 83969 | 
            +
                  const isUpper = lowerLetter !== letter;
         | 
| 83970 | 
            +
                  sanitizedVal += isUpper ? replaceChars[lowerLetter].toUpperCase() : replaceChars[lowerLetter];
         | 
| 83971 | 
            +
                } else if (chars2.includes(lowerLetter)) {
         | 
| 83972 | 
            +
                  sanitizedVal += letter;
         | 
| 83973 | 
            +
                } else {
         | 
| 83974 | 
            +
                  invalidChars.push(letter);
         | 
| 83975 | 
            +
                }
         | 
| 83976 | 
            +
              });
         | 
| 83977 | 
            +
              Object.keys(replaceCount).forEach((letter) => {
         | 
| 83978 | 
            +
                warnings.push(
         | 
| 83979 | 
            +
                  `Replaced "${letter}" with "${replaceChars[letter]}"${replaceCount[letter] > 1 ? ` ${replaceCount[letter]} times` : ""}`
         | 
| 83915 83980 | 
             
                );
         | 
| 83916 | 
            -
              } | 
| 83917 | 
            -
             | 
| 83981 | 
            +
              });
         | 
| 83982 | 
            +
              if (sequenceString.length !== sanitizedVal.length) {
         | 
| 83983 | 
            +
                warnings.push(
         | 
| 83984 | 
            +
                  `${name2 ? `Sequence ${name2}: ` : ""}Invalid character(s) detected and removed: ${invalidChars.slice(0, 100).join(", ")} `
         | 
| 83985 | 
            +
                );
         | 
| 83986 | 
            +
              }
         | 
| 83987 | 
            +
              if (typeof window !== "undefined" && window.toastr && warnings.length) {
         | 
| 83988 | 
            +
                warnings.forEach((warning2) => {
         | 
| 83989 | 
            +
                  window.toastr.warning(warning2);
         | 
| 83990 | 
            +
                });
         | 
| 83918 83991 | 
             
              }
         | 
| 83992 | 
            +
              return [sanitizedVal, warnings];
         | 
| 83919 83993 | 
             
            }
         | 
| 83920 83994 | 
             
            __name(filterSequenceString, "filterSequenceString");
         | 
| 83995 | 
            +
            function getAcceptedChars({
         | 
| 83996 | 
            +
              isOligo: isOligo2,
         | 
| 83997 | 
            +
              isProtein: isProtein2,
         | 
| 83998 | 
            +
              isRna: isRna2,
         | 
| 83999 | 
            +
              isMixedRnaAndDna,
         | 
| 84000 | 
            +
              includeStopCodon
         | 
| 84001 | 
            +
            } = {}) {
         | 
| 84002 | 
            +
              return isProtein2 ? `${protein_letters_withUandX.toLowerCase()}${includeStopCodon ? "*." : ""}}` : isOligo2 ? ambiguous_rna_letters.toLowerCase() + "t" : isRna2 ? ambiguous_rna_letters.toLowerCase() + "t" : isMixedRnaAndDna ? ambiguous_rna_letters.toLowerCase() + ambiguous_dna_letters.toLowerCase() : (
         | 
| 84003 | 
            +
                //just plain old dna
         | 
| 84004 | 
            +
                ambiguous_rna_letters.toLowerCase() + ambiguous_dna_letters.toLowerCase()
         | 
| 84005 | 
            +
              );
         | 
| 84006 | 
            +
            }
         | 
| 84007 | 
            +
            __name(getAcceptedChars, "getAcceptedChars");
         | 
| 84008 | 
            +
            function getReplaceChars({
         | 
| 84009 | 
            +
              isOligo: isOligo2,
         | 
| 84010 | 
            +
              isProtein: isProtein2,
         | 
| 84011 | 
            +
              isRna: isRna2,
         | 
| 84012 | 
            +
              isMixedRnaAndDna
         | 
| 84013 | 
            +
            } = {}) {
         | 
| 84014 | 
            +
              return isProtein2 ? {} : isOligo2 ? {} : isRna2 ? { t: "u" } : isMixedRnaAndDna ? {} : (
         | 
| 84015 | 
            +
                //just plain old dna
         | 
| 84016 | 
            +
                {}
         | 
| 84017 | 
            +
              );
         | 
| 84018 | 
            +
            }
         | 
| 84019 | 
            +
            __name(getReplaceChars, "getReplaceChars");
         | 
| 83921 84020 | 
             
            function tidyUpAnnotation(_annotation, {
         | 
| 83922 84021 | 
             
              sequenceData: sequenceData2 = {},
         | 
| 83923 84022 | 
             
              convertAnnotationsFromAAIndices,
         | 
| @@ -84046,14 +84145,6 @@ function coerceLocation({ | |
| 84046 84145 | 
             
              }
         | 
| 84047 84146 | 
             
            }
         | 
| 84048 84147 | 
             
            __name(coerceLocation, "coerceLocation");
         | 
| 84049 | 
            -
            function filterAminoAcidSequenceString(sequenceString, options) {
         | 
| 84050 | 
            -
              options = options || {};
         | 
| 84051 | 
            -
              if (options.includeStopCodon) {
         | 
| 84052 | 
            -
                return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
         | 
| 84053 | 
            -
              }
         | 
| 84054 | 
            -
              return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
         | 
| 84055 | 
            -
            }
         | 
| 84056 | 
            -
            __name(filterAminoAcidSequenceString, "filterAminoAcidSequenceString");
         | 
| 84057 84148 | 
             
            function getDegenerateDnaStringFromAAString(aaString) {
         | 
| 84058 84149 | 
             
              return aaString.split("").map((char) => aminoAcidToDegenerateDnaMap[char.toLowerCase()] || "nnn").join("");
         | 
| 84059 84150 | 
             
            }
         | 
| @@ -84065,11 +84156,10 @@ function tidyUpSequenceData(pSeqData, options = {}) { | |
| 84065 84156 | 
             
                removeUnwantedChars,
         | 
| 84066 84157 | 
             
                additionalValidChars,
         | 
| 84067 84158 | 
             
                noTranslationData,
         | 
| 84068 | 
            -
                charOverrides,
         | 
| 84069 84159 | 
             
                doNotProvideIdsForAnnotations,
         | 
| 84070 | 
            -
                proteinFilterOptions,
         | 
| 84071 84160 | 
             
                noCdsTranslations,
         | 
| 84072 | 
            -
                convertAnnotationsFromAAIndices
         | 
| 84161 | 
            +
                convertAnnotationsFromAAIndices,
         | 
| 84162 | 
            +
                topLevelSeqData
         | 
| 84073 84163 | 
             
              } = options;
         | 
| 84074 84164 | 
             
              let seqData = lodashExports.cloneDeep(pSeqData);
         | 
| 84075 84165 | 
             
              const response = {
         | 
| @@ -84099,16 +84189,15 @@ function tidyUpSequenceData(pSeqData, options = {}) { | |
| 84099 84189 | 
             
              }
         | 
| 84100 84190 | 
             
              if (removeUnwantedChars) {
         | 
| 84101 84191 | 
             
                if (seqData.isProtein) {
         | 
| 84102 | 
            -
                  seqData.proteinSequence  | 
| 84103 | 
            -
                     | 
| 84104 | 
            -
             | 
| 84105 | 
            -
                   | 
| 84192 | 
            +
                  const [newSeq] = filterSequenceString(seqData.proteinSequence, __spreadValues({
         | 
| 84193 | 
            +
                    includeStopCodon: true
         | 
| 84194 | 
            +
                  }, topLevelSeqData || seqData));
         | 
| 84195 | 
            +
                  seqData.proteinSequence = newSeq;
         | 
| 84106 84196 | 
             
                } else {
         | 
| 84107 | 
            -
                   | 
| 84108 | 
            -
                     | 
| 84109 | 
            -
             | 
| 84110 | 
            -
             | 
| 84111 | 
            -
                  );
         | 
| 84197 | 
            +
                  const [newSeq] = filterSequenceString(seqData.sequence, __spreadValues({
         | 
| 84198 | 
            +
                    additionalValidChars
         | 
| 84199 | 
            +
                  }, topLevelSeqData || seqData));
         | 
| 84200 | 
            +
                  seqData.sequence = newSeq;
         | 
| 84112 84201 | 
             
                }
         | 
| 84113 84202 | 
             
              }
         | 
| 84114 84203 | 
             
              if (seqData.isProtein) {
         | 
| @@ -93455,7 +93544,8 @@ function validateSequence(sequence2, options = {}) { | |
| 93455 93544 | 
             
                inclusive1BasedEnd,
         | 
| 93456 93545 | 
             
                additionalValidChars,
         | 
| 93457 93546 | 
             
                allowOverflowAnnotations,
         | 
| 93458 | 
            -
                coerceFeatureTypes
         | 
| 93547 | 
            +
                coerceFeatureTypes,
         | 
| 93548 | 
            +
                includeStopCodon
         | 
| 93459 93549 | 
             
              } = options;
         | 
| 93460 93550 | 
             
              [
         | 
| 93461 93551 | 
             
                "isDNA",
         | 
| @@ -93505,7 +93595,6 @@ function validateSequence(sequence2, options = {}) { | |
| 93505 93595 | 
             
                response.messages.push("No sequence detected");
         | 
| 93506 93596 | 
             
                sequence2.sequence = "";
         | 
| 93507 93597 | 
             
              }
         | 
| 93508 | 
            -
              let validChars;
         | 
| 93509 93598 | 
             
              if (sequence2.isProtein === void 0 && guessIfProtein) {
         | 
| 93510 93599 | 
             
                sequence2.isProtein = !guessIfSequenceIsDnaAndNotProtein(
         | 
| 93511 93600 | 
             
                  sequence2.sequence,
         | 
| @@ -93513,12 +93602,15 @@ function validateSequence(sequence2, options = {}) { | |
| 93513 93602 | 
             
                );
         | 
| 93514 93603 | 
             
              }
         | 
| 93515 93604 | 
             
              if (sequence2.isProtein) {
         | 
| 93516 | 
            -
                validChars =  | 
| 93605 | 
            +
                const [validChars, warnings] = filterSequenceString(sequence2.sequence, {
         | 
| 93606 | 
            +
                  name: sequence2.name,
         | 
| 93607 | 
            +
                  isProtein: true,
         | 
| 93608 | 
            +
                  additionalValidChars,
         | 
| 93609 | 
            +
                  includeStopCodon
         | 
| 93610 | 
            +
                });
         | 
| 93517 93611 | 
             
                if (validChars !== sequence2.sequence) {
         | 
| 93518 93612 | 
             
                  sequence2.sequence = validChars;
         | 
| 93519 | 
            -
                  response.messages.push(
         | 
| 93520 | 
            -
                    "Import Error: Illegal character(s) detected and removed from amino acid sequence. Allowed characters are: xtgalmfwkqespvicyhrndu"
         | 
| 93521 | 
            -
                  );
         | 
| 93613 | 
            +
                  response.messages.push(...warnings);
         | 
| 93522 93614 | 
             
                }
         | 
| 93523 93615 | 
             
                sequence2.type = "PROTEIN";
         | 
| 93524 93616 | 
             
                sequence2.isProtein = true;
         | 
| @@ -93540,12 +93632,12 @@ function validateSequence(sequence2, options = {}) { | |
| 93540 93632 | 
             
                } else {
         | 
| 93541 93633 | 
             
                  sequence2.type = "DNA";
         | 
| 93542 93634 | 
             
                }
         | 
| 93543 | 
            -
                validChars = filterSequenceString(sequence2.sequence,  | 
| 93635 | 
            +
                const [validChars, warnings] = filterSequenceString(sequence2.sequence, __spreadValues({
         | 
| 93636 | 
            +
                  additionalValidChars
         | 
| 93637 | 
            +
                }, sequence2));
         | 
| 93544 93638 | 
             
                if (validChars !== sequence2.sequence) {
         | 
| 93545 93639 | 
             
                  sequence2.sequence = validChars;
         | 
| 93546 | 
            -
                  response.messages.push(
         | 
| 93547 | 
            -
                    "Import Error: Illegal character(s) detected and removed from sequence. Allowed characters are: atgcyrswkmbvdhn"
         | 
| 93548 | 
            -
                  );
         | 
| 93640 | 
            +
                  response.messages.push(...warnings);
         | 
| 93549 93641 | 
             
                }
         | 
| 93550 93642 | 
             
              }
         | 
| 93551 93643 | 
             
              if (!sequence2.size) {
         | 
| @@ -109027,18 +109119,6 @@ function getSelFromWrappedAddon(selectionLayer2, sequenceLength) { | |
| 109027 109119 | 
             
              return selToUse;
         | 
| 109028 109120 | 
             
            }
         | 
| 109029 109121 | 
             
            __name(getSelFromWrappedAddon, "getSelFromWrappedAddon");
         | 
| 109030 | 
            -
            function getAcceptedChars({
         | 
| 109031 | 
            -
              isOligo: isOligo2,
         | 
| 109032 | 
            -
              isProtein: isProtein2,
         | 
| 109033 | 
            -
              isRna: isRna2,
         | 
| 109034 | 
            -
              isMixedRnaAndDna
         | 
| 109035 | 
            -
            } = {}) {
         | 
| 109036 | 
            -
              return isProtein2 ? extended_protein_letters.toLowerCase() : isOligo2 ? ambiguous_rna_letters.toLowerCase() + "t" : isRna2 ? ambiguous_rna_letters.toLowerCase() : isMixedRnaAndDna ? ambiguous_rna_letters.toLowerCase() + ambiguous_dna_letters.toLowerCase() : (
         | 
| 109037 | 
            -
                //just plain old dna
         | 
| 109038 | 
            -
                ambiguous_dna_letters.toLowerCase()
         | 
| 109039 | 
            -
              );
         | 
| 109040 | 
            -
            }
         | 
| 109041 | 
            -
            __name(getAcceptedChars, "getAcceptedChars");
         | 
| 109042 109122 | 
             
            function getStripedPattern({ color: color2 }) {
         | 
| 109043 109123 | 
             
              return /* @__PURE__ */ React$2.createElement(
         | 
| 109044 109124 | 
             
                "pattern",
         | 
| @@ -125645,7 +125725,7 @@ function showFileDialog({ multiple = false, onSelect }) { | |
| 125645 125725 | 
             
            }
         | 
| 125646 125726 | 
             
            __name(showFileDialog, "showFileDialog");
         | 
| 125647 125727 | 
             
            const name = "@teselagen/ove";
         | 
| 125648 | 
            -
            const version = "0.3. | 
| 125728 | 
            +
            const version = "0.3.42";
         | 
| 125649 125729 | 
             
            const main = "./src/index.js";
         | 
| 125650 125730 | 
             
            const exports$1 = {
         | 
| 125651 125731 | 
             
              ".": {
         | 
| @@ -129398,9 +129478,8 @@ const _SequenceInputNoHotkeys = class _SequenceInputNoHotkeys extends React$2.Co | |
| 129398 129478 | 
             
                  selectionLayer: selectionLayer2,
         | 
| 129399 129479 | 
             
                  sequenceLength,
         | 
| 129400 129480 | 
             
                  isProtein: isProtein2,
         | 
| 129401 | 
            -
                  replaceChars,
         | 
| 129402 129481 | 
             
                  caretPosition: caretPosition2,
         | 
| 129403 | 
            -
                   | 
| 129482 | 
            +
                  sequenceData: sequenceData2,
         | 
| 129404 129483 | 
             
                  maxInsertSize
         | 
| 129405 129484 | 
             
                } = this.props;
         | 
| 129406 129485 | 
             
                const { charsToInsert, hasTempError } = this.state;
         | 
| @@ -129433,17 +129512,13 @@ const _SequenceInputNoHotkeys = class _SequenceInputNoHotkeys extends React$2.Co | |
| 129433 129512 | 
             
                    autoFocus: true,
         | 
| 129434 129513 | 
             
                    style: hasTempError ? { borderColor: "red" } : {},
         | 
| 129435 129514 | 
             
                    onChange: (e2) => {
         | 
| 129436 | 
            -
                       | 
| 129437 | 
            -
             | 
| 129438 | 
            -
                         | 
| 129439 | 
            -
             | 
| 129440 | 
            -
             | 
| 129441 | 
            -
             | 
| 129442 | 
            -
             | 
| 129443 | 
            -
                          sanitizedVal += letter;
         | 
| 129444 | 
            -
                        }
         | 
| 129445 | 
            -
                      });
         | 
| 129446 | 
            -
                      if (e2.target.value.length !== sanitizedVal.length) {
         | 
| 129515 | 
            +
                      const [sanitizedVal, warnings] = filterSequenceString(
         | 
| 129516 | 
            +
                        e2.target.value,
         | 
| 129517 | 
            +
                        __spreadProps(__spreadValues({}, sequenceData2), {
         | 
| 129518 | 
            +
                          name: void 0
         | 
| 129519 | 
            +
                        })
         | 
| 129520 | 
            +
                      );
         | 
| 129521 | 
            +
                      if (warnings.length) {
         | 
| 129447 129522 | 
             
                        this.setState({
         | 
| 129448 129523 | 
             
                          hasTempError: true
         | 
| 129449 129524 | 
             
                        });
         | 
| @@ -130318,7 +130393,8 @@ function VectorInteractionHOC(Component) { | |
| 130318 130393 | 
             
                      selectionLayer: selectionLayer2 = { start: -1, end: -1 },
         | 
| 130319 130394 | 
             
                      readOnly: readOnly2,
         | 
| 130320 130395 | 
             
                      onPaste,
         | 
| 130321 | 
            -
                      disableBpEditing
         | 
| 130396 | 
            +
                      disableBpEditing,
         | 
| 130397 | 
            +
                      sequenceData: sequenceData2
         | 
| 130322 130398 | 
             
                    } = this.props;
         | 
| 130323 130399 | 
             
                    if (disableBpEditing) {
         | 
| 130324 130400 | 
             
                      return window.toastr.warning("Sorry the underlying sequence is locked");
         | 
| @@ -130343,6 +130419,7 @@ function VectorInteractionHOC(Component) { | |
| 130343 130419 | 
             
                      };
         | 
| 130344 130420 | 
             
                    }
         | 
| 130345 130421 | 
             
                    seqDataToInsert = tidyUpSequenceData(seqDataToInsert, {
         | 
| 130422 | 
            +
                      topLevelSeqData: sequenceData2,
         | 
| 130346 130423 | 
             
                      provideNewIdsForAnnotations: true,
         | 
| 130347 130424 | 
             
                      annotationsAsObjects: true,
         | 
| 130348 130425 | 
             
                      removeUnwantedChars: true,
         | 
| @@ -130438,8 +130515,7 @@ function VectorInteractionHOC(Component) { | |
| 130438 130515 | 
             
                      createSequenceInputPopup({
         | 
| 130439 130516 | 
             
                        useEventPositioning,
         | 
| 130440 130517 | 
             
                        isReplace,
         | 
| 130441 | 
            -
                         | 
| 130442 | 
            -
                        acceptedChars: getAcceptedChars(sequenceData2),
         | 
| 130518 | 
            +
                        sequenceData: sequenceData2,
         | 
| 130443 130519 | 
             
                        isProtein: sequenceData2.isProtein,
         | 
| 130444 130520 | 
             
                        selectionLayer: selectionLayer2,
         | 
| 130445 130521 | 
             
                        sequenceLength,
         | 
| @@ -141932,14 +142008,8 @@ const CustomContentEditable = generateField(/* @__PURE__ */ __name(function Cust | |
| 141932 142008 | 
             
                const newVal2 = e2.target.innerText;
         | 
| 141933 142009 | 
             
                const savedCaretPosition = EditCaretPositioning.saveSelection(e2.currentTarget);
         | 
| 141934 142010 | 
             
                setCaretPosition(savedCaretPosition);
         | 
| 141935 | 
            -
                const  | 
| 141936 | 
            -
                 | 
| 141937 | 
            -
                newVal2.split("").forEach((letter) => {
         | 
| 141938 | 
            -
                  if (acceptedChars.includes(letter.toLowerCase())) {
         | 
| 141939 | 
            -
                    newBases += letter;
         | 
| 141940 | 
            -
                  }
         | 
| 141941 | 
            -
                });
         | 
| 141942 | 
            -
                if (newVal2.length !== newBases.length) {
         | 
| 142011 | 
            +
                const [newBases, warnings] = filterSequenceString(newVal2, sequenceData2);
         | 
| 142012 | 
            +
                if (warnings.length) {
         | 
| 141943 142013 | 
             
                  setTempError(true);
         | 
| 141944 142014 | 
             
                  setTimeout(() => {
         | 
| 141945 142015 | 
             
                    setTempError(false);
         |