@teselagen/ove 0.8.29 → 0.8.31
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/RowItem/utils.d.ts +1 -0
- package/helperComponents/PropertiesDialog/utils.d.ts +1 -0
- package/index.cjs.js +455 -256
- package/index.es.js +455 -256
- package/index.umd.js +455 -256
- package/package.json +3 -3
- package/selectors/cutsitesSelector.d.ts +1 -9
- package/selectors/filteredCutsitesSelector.d.ts +5 -1
- package/src/Editor/index.js +2 -0
- package/src/Editor/userDefinedHandlersAndOpts.js +2 -0
- package/src/GlobalDialog.js +11 -1
- package/src/GlobalDialogUtils.js +14 -2
- package/src/RowItem/StackedAnnotations/PointedAnnotation.js +101 -34
- package/src/RowItem/utils.js +19 -3
- package/src/commands/index.js +1 -1
- package/src/helperComponents/PropertiesDialog/OrfProperties.js +2 -3
- package/src/helperComponents/PropertiesDialog/TranslationProperties.js +2 -1
- package/src/helperComponents/PropertiesDialog/utils.js +29 -0
- package/src/selectors/cutsitesSelector.js +57 -2
- package/src/utils/getAnnotationNameAndStartStopString.js +1 -1
- package/src/withEditorInteractions/createSequenceInputPopup.js +4 -2
- package/src/withEditorInteractions/index.js +12 -5
- package/src/withEditorProps/index.js +21 -8
package/index.umd.js
CHANGED
|
@@ -22537,6 +22537,13 @@ var __async = (__this, __arguments, generator) => {
|
|
|
22537
22537
|
isDragging$1 = false;
|
|
22538
22538
|
});
|
|
22539
22539
|
let tippys = [];
|
|
22540
|
+
function isInAllowedContainer(element2) {
|
|
22541
|
+
if (window.onlyAllowTooltipsInVeEditor) {
|
|
22542
|
+
return element2.closest(".veEditor") !== null;
|
|
22543
|
+
}
|
|
22544
|
+
return true;
|
|
22545
|
+
}
|
|
22546
|
+
__name(isInAllowedContainer, "isInAllowedContainer");
|
|
22540
22547
|
let recentlyHidden = false;
|
|
22541
22548
|
let clearMe;
|
|
22542
22549
|
(function() {
|
|
@@ -22544,6 +22551,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
22544
22551
|
document.addEventListener("mouseover", function(event) {
|
|
22545
22552
|
var _a2, _b2;
|
|
22546
22553
|
const element2 = event.target;
|
|
22554
|
+
if (!isInAllowedContainer(element2)) {
|
|
22555
|
+
return;
|
|
22556
|
+
}
|
|
22547
22557
|
if (element2 instanceof Element && element2 !== lastMouseOverElement) {
|
|
22548
22558
|
let clearOldTippys = /* @__PURE__ */ __name(function(maybeInst) {
|
|
22549
22559
|
tippys = tippys.filter((t2) => {
|
|
@@ -36296,6 +36306,195 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
36296
36306
|
);
|
|
36297
36307
|
}
|
|
36298
36308
|
__name(DialogFooter, "DialogFooter");
|
|
36309
|
+
var NOT_FOUND = "NOT_FOUND";
|
|
36310
|
+
function createSingletonCache(equals) {
|
|
36311
|
+
var entry;
|
|
36312
|
+
return {
|
|
36313
|
+
get: /* @__PURE__ */ __name(function get2(key) {
|
|
36314
|
+
if (entry && equals(entry.key, key)) {
|
|
36315
|
+
return entry.value;
|
|
36316
|
+
}
|
|
36317
|
+
return NOT_FOUND;
|
|
36318
|
+
}, "get"),
|
|
36319
|
+
put: /* @__PURE__ */ __name(function put(key, value) {
|
|
36320
|
+
entry = {
|
|
36321
|
+
key,
|
|
36322
|
+
value
|
|
36323
|
+
};
|
|
36324
|
+
}, "put"),
|
|
36325
|
+
getEntries: /* @__PURE__ */ __name(function getEntries() {
|
|
36326
|
+
return entry ? [entry] : [];
|
|
36327
|
+
}, "getEntries"),
|
|
36328
|
+
clear: /* @__PURE__ */ __name(function clear() {
|
|
36329
|
+
entry = void 0;
|
|
36330
|
+
}, "clear")
|
|
36331
|
+
};
|
|
36332
|
+
}
|
|
36333
|
+
__name(createSingletonCache, "createSingletonCache");
|
|
36334
|
+
function createLruCache(maxSize, equals) {
|
|
36335
|
+
var entries = [];
|
|
36336
|
+
function get2(key) {
|
|
36337
|
+
var cacheIndex = entries.findIndex(function(entry2) {
|
|
36338
|
+
return equals(key, entry2.key);
|
|
36339
|
+
});
|
|
36340
|
+
if (cacheIndex > -1) {
|
|
36341
|
+
var entry = entries[cacheIndex];
|
|
36342
|
+
if (cacheIndex > 0) {
|
|
36343
|
+
entries.splice(cacheIndex, 1);
|
|
36344
|
+
entries.unshift(entry);
|
|
36345
|
+
}
|
|
36346
|
+
return entry.value;
|
|
36347
|
+
}
|
|
36348
|
+
return NOT_FOUND;
|
|
36349
|
+
}
|
|
36350
|
+
__name(get2, "get");
|
|
36351
|
+
function put(key, value) {
|
|
36352
|
+
if (get2(key) === NOT_FOUND) {
|
|
36353
|
+
entries.unshift({
|
|
36354
|
+
key,
|
|
36355
|
+
value
|
|
36356
|
+
});
|
|
36357
|
+
if (entries.length > maxSize) {
|
|
36358
|
+
entries.pop();
|
|
36359
|
+
}
|
|
36360
|
+
}
|
|
36361
|
+
}
|
|
36362
|
+
__name(put, "put");
|
|
36363
|
+
function getEntries() {
|
|
36364
|
+
return entries;
|
|
36365
|
+
}
|
|
36366
|
+
__name(getEntries, "getEntries");
|
|
36367
|
+
function clear() {
|
|
36368
|
+
entries = [];
|
|
36369
|
+
}
|
|
36370
|
+
__name(clear, "clear");
|
|
36371
|
+
return {
|
|
36372
|
+
get: get2,
|
|
36373
|
+
put,
|
|
36374
|
+
getEntries,
|
|
36375
|
+
clear
|
|
36376
|
+
};
|
|
36377
|
+
}
|
|
36378
|
+
__name(createLruCache, "createLruCache");
|
|
36379
|
+
var defaultEqualityCheck = /* @__PURE__ */ __name(function defaultEqualityCheck2(a2, b3) {
|
|
36380
|
+
return a2 === b3;
|
|
36381
|
+
}, "defaultEqualityCheck");
|
|
36382
|
+
function createCacheKeyComparator(equalityCheck) {
|
|
36383
|
+
return /* @__PURE__ */ __name(function areArgumentsShallowlyEqual(prev, next) {
|
|
36384
|
+
if (prev === null || next === null || prev.length !== next.length) {
|
|
36385
|
+
return false;
|
|
36386
|
+
}
|
|
36387
|
+
var length = prev.length;
|
|
36388
|
+
for (var i2 = 0; i2 < length; i2++) {
|
|
36389
|
+
if (!equalityCheck(prev[i2], next[i2])) {
|
|
36390
|
+
return false;
|
|
36391
|
+
}
|
|
36392
|
+
}
|
|
36393
|
+
return true;
|
|
36394
|
+
}, "areArgumentsShallowlyEqual");
|
|
36395
|
+
}
|
|
36396
|
+
__name(createCacheKeyComparator, "createCacheKeyComparator");
|
|
36397
|
+
function defaultMemoize(func, equalityCheckOrOptions) {
|
|
36398
|
+
var providedOptions = typeof equalityCheckOrOptions === "object" ? equalityCheckOrOptions : {
|
|
36399
|
+
equalityCheck: equalityCheckOrOptions
|
|
36400
|
+
};
|
|
36401
|
+
var _providedOptions$equa = providedOptions.equalityCheck, equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa, _providedOptions$maxS = providedOptions.maxSize, maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS, resultEqualityCheck = providedOptions.resultEqualityCheck;
|
|
36402
|
+
var comparator = createCacheKeyComparator(equalityCheck);
|
|
36403
|
+
var cache2 = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);
|
|
36404
|
+
function memoized() {
|
|
36405
|
+
var value = cache2.get(arguments);
|
|
36406
|
+
if (value === NOT_FOUND) {
|
|
36407
|
+
value = func.apply(null, arguments);
|
|
36408
|
+
if (resultEqualityCheck) {
|
|
36409
|
+
var entries = cache2.getEntries();
|
|
36410
|
+
var matchingEntry = entries.find(function(entry) {
|
|
36411
|
+
return resultEqualityCheck(entry.value, value);
|
|
36412
|
+
});
|
|
36413
|
+
if (matchingEntry) {
|
|
36414
|
+
value = matchingEntry.value;
|
|
36415
|
+
}
|
|
36416
|
+
}
|
|
36417
|
+
cache2.put(arguments, value);
|
|
36418
|
+
}
|
|
36419
|
+
return value;
|
|
36420
|
+
}
|
|
36421
|
+
__name(memoized, "memoized");
|
|
36422
|
+
memoized.clearCache = function() {
|
|
36423
|
+
return cache2.clear();
|
|
36424
|
+
};
|
|
36425
|
+
return memoized;
|
|
36426
|
+
}
|
|
36427
|
+
__name(defaultMemoize, "defaultMemoize");
|
|
36428
|
+
function getDependencies(funcs) {
|
|
36429
|
+
var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
|
|
36430
|
+
if (!dependencies.every(function(dep) {
|
|
36431
|
+
return typeof dep === "function";
|
|
36432
|
+
})) {
|
|
36433
|
+
var dependencyTypes = dependencies.map(function(dep) {
|
|
36434
|
+
return typeof dep === "function" ? "function " + (dep.name || "unnamed") + "()" : typeof dep;
|
|
36435
|
+
}).join(", ");
|
|
36436
|
+
throw new Error("createSelector expects all input-selectors to be functions, but received the following types: [" + dependencyTypes + "]");
|
|
36437
|
+
}
|
|
36438
|
+
return dependencies;
|
|
36439
|
+
}
|
|
36440
|
+
__name(getDependencies, "getDependencies");
|
|
36441
|
+
function createSelectorCreator(memoize2) {
|
|
36442
|
+
for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
36443
|
+
memoizeOptionsFromArgs[_key - 1] = arguments[_key];
|
|
36444
|
+
}
|
|
36445
|
+
var createSelector2 = /* @__PURE__ */ __name(function createSelector3() {
|
|
36446
|
+
for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
36447
|
+
funcs[_key2] = arguments[_key2];
|
|
36448
|
+
}
|
|
36449
|
+
var _recomputations = 0;
|
|
36450
|
+
var _lastResult;
|
|
36451
|
+
var directlyPassedOptions = {
|
|
36452
|
+
memoizeOptions: void 0
|
|
36453
|
+
};
|
|
36454
|
+
var resultFunc = funcs.pop();
|
|
36455
|
+
if (typeof resultFunc === "object") {
|
|
36456
|
+
directlyPassedOptions = resultFunc;
|
|
36457
|
+
resultFunc = funcs.pop();
|
|
36458
|
+
}
|
|
36459
|
+
if (typeof resultFunc !== "function") {
|
|
36460
|
+
throw new Error("createSelector expects an output function after the inputs, but received: [" + typeof resultFunc + "]");
|
|
36461
|
+
}
|
|
36462
|
+
var _directlyPassedOption = directlyPassedOptions, _directlyPassedOption2 = _directlyPassedOption.memoizeOptions, memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2;
|
|
36463
|
+
var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];
|
|
36464
|
+
var dependencies = getDependencies(funcs);
|
|
36465
|
+
var memoizedResultFunc = memoize2.apply(void 0, [/* @__PURE__ */ __name(function recomputationWrapper() {
|
|
36466
|
+
_recomputations++;
|
|
36467
|
+
return resultFunc.apply(null, arguments);
|
|
36468
|
+
}, "recomputationWrapper")].concat(finalMemoizeOptions));
|
|
36469
|
+
var selector = memoize2(/* @__PURE__ */ __name(function dependenciesChecker() {
|
|
36470
|
+
var params = [];
|
|
36471
|
+
var length = dependencies.length;
|
|
36472
|
+
for (var i2 = 0; i2 < length; i2++) {
|
|
36473
|
+
params.push(dependencies[i2].apply(null, arguments));
|
|
36474
|
+
}
|
|
36475
|
+
_lastResult = memoizedResultFunc.apply(null, params);
|
|
36476
|
+
return _lastResult;
|
|
36477
|
+
}, "dependenciesChecker"));
|
|
36478
|
+
Object.assign(selector, {
|
|
36479
|
+
resultFunc,
|
|
36480
|
+
memoizedResultFunc,
|
|
36481
|
+
dependencies,
|
|
36482
|
+
lastResult: /* @__PURE__ */ __name(function lastResult() {
|
|
36483
|
+
return _lastResult;
|
|
36484
|
+
}, "lastResult"),
|
|
36485
|
+
recomputations: /* @__PURE__ */ __name(function recomputations() {
|
|
36486
|
+
return _recomputations;
|
|
36487
|
+
}, "recomputations"),
|
|
36488
|
+
resetRecomputations: /* @__PURE__ */ __name(function resetRecomputations() {
|
|
36489
|
+
return _recomputations = 0;
|
|
36490
|
+
}, "resetRecomputations")
|
|
36491
|
+
});
|
|
36492
|
+
return selector;
|
|
36493
|
+
}, "createSelector");
|
|
36494
|
+
return createSelector2;
|
|
36495
|
+
}
|
|
36496
|
+
__name(createSelectorCreator, "createSelectorCreator");
|
|
36497
|
+
var createSelector = /* @__PURE__ */ createSelectorCreator(defaultMemoize);
|
|
36299
36498
|
function useCombinedRefs() {
|
|
36300
36499
|
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
36301
36500
|
refs[_key] = arguments[_key];
|
|
@@ -85682,21 +85881,27 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
85682
85881
|
}
|
|
85683
85882
|
return false;
|
|
85684
85883
|
});
|
|
85884
|
+
const dtFormParamsSelector = reactExports.useMemo(
|
|
85885
|
+
() => createSelector(
|
|
85886
|
+
(state2) => formValueSelector(formName)(
|
|
85887
|
+
state2,
|
|
85888
|
+
"reduxFormCellValidation",
|
|
85889
|
+
"reduxFormEntities",
|
|
85890
|
+
"reduxFormQueryParams",
|
|
85891
|
+
"reduxFormSelectedEntityIdMap"
|
|
85892
|
+
),
|
|
85893
|
+
(result) => result
|
|
85894
|
+
// identity, but memoized
|
|
85895
|
+
),
|
|
85896
|
+
[formName]
|
|
85897
|
+
);
|
|
85685
85898
|
const {
|
|
85686
85899
|
reduxFormCellValidation: _reduxFormCellValidation,
|
|
85687
85900
|
reduxFormEditingCell,
|
|
85688
85901
|
reduxFormEntities,
|
|
85689
85902
|
reduxFormQueryParams: _reduxFormQueryParams = {},
|
|
85690
85903
|
reduxFormSelectedEntityIdMap: _reduxFormSelectedEntityIdMap = {}
|
|
85691
|
-
} = useSelector(
|
|
85692
|
-
return formValueSelector(formName)(
|
|
85693
|
-
state2,
|
|
85694
|
-
"reduxFormCellValidation",
|
|
85695
|
-
"reduxFormEntities",
|
|
85696
|
-
"reduxFormQueryParams",
|
|
85697
|
-
"reduxFormSelectedEntityIdMap"
|
|
85698
|
-
);
|
|
85699
|
-
}, "dtFormParamsSelector"));
|
|
85904
|
+
} = useSelector(dtFormParamsSelector);
|
|
85700
85905
|
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
85701
85906
|
_reduxFormCellValidation
|
|
85702
85907
|
);
|
|
@@ -86003,11 +86208,9 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
86003
86208
|
newTableConfig = {
|
|
86004
86209
|
fieldOptions: []
|
|
86005
86210
|
};
|
|
86006
|
-
|
|
86007
|
-
|
|
86008
|
-
|
|
86009
|
-
return newTableConfig;
|
|
86010
|
-
}
|
|
86211
|
+
}
|
|
86212
|
+
if (isEqual$3(prev, newTableConfig)) {
|
|
86213
|
+
return prev;
|
|
86011
86214
|
} else {
|
|
86012
86215
|
return newTableConfig;
|
|
86013
86216
|
}
|
|
@@ -103876,14 +104079,16 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
103876
104079
|
name: name2,
|
|
103877
104080
|
isProtein: isProtein2,
|
|
103878
104081
|
isRna: isRna2,
|
|
103879
|
-
isMixedRnaAndDna
|
|
104082
|
+
isMixedRnaAndDna,
|
|
104083
|
+
getAcceptedInsertChars
|
|
103880
104084
|
} = {}) {
|
|
103881
|
-
const
|
|
104085
|
+
const sequenceTypeInfo = {
|
|
103882
104086
|
isOligo: isOligo2,
|
|
103883
104087
|
isProtein: isProtein2,
|
|
103884
104088
|
isRna: isRna2,
|
|
103885
104089
|
isMixedRnaAndDna
|
|
103886
|
-
}
|
|
104090
|
+
};
|
|
104091
|
+
const acceptedChars = isFunction$1(getAcceptedInsertChars) ? getAcceptedInsertChars(sequenceTypeInfo) : getAcceptedChars(sequenceTypeInfo);
|
|
103887
104092
|
const replaceChars = getReplaceChars({
|
|
103888
104093
|
isOligo: isOligo2,
|
|
103889
104094
|
isProtein: isProtein2,
|
|
@@ -104119,6 +104324,7 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
104119
104324
|
doNotProvideIdsForAnnotations,
|
|
104120
104325
|
noCdsTranslations,
|
|
104121
104326
|
convertAnnotationsFromAAIndices,
|
|
104327
|
+
getAcceptedInsertChars,
|
|
104122
104328
|
topLevelSeqData
|
|
104123
104329
|
} = options;
|
|
104124
104330
|
let seqData = cloneDeep(pSeqData);
|
|
@@ -104150,13 +104356,16 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
104150
104356
|
if (!doNotRemoveInvalidChars) {
|
|
104151
104357
|
if (seqData.isProtein) {
|
|
104152
104358
|
const [newSeq] = filterSequenceString(seqData.proteinSequence, __spreadProps(__spreadValues({}, topLevelSeqData || seqData), {
|
|
104153
|
-
isProtein: true
|
|
104359
|
+
isProtein: true,
|
|
104360
|
+
getAcceptedInsertChars
|
|
104154
104361
|
}));
|
|
104155
104362
|
seqData.proteinSequence = newSeq;
|
|
104156
104363
|
} else {
|
|
104157
|
-
const [newSeq] = filterSequenceString(seqData.sequence, __spreadValues({
|
|
104364
|
+
const [newSeq] = filterSequenceString(seqData.sequence, __spreadProps(__spreadValues({
|
|
104158
104365
|
additionalValidChars
|
|
104159
|
-
}, topLevelSeqData || seqData)
|
|
104366
|
+
}, topLevelSeqData || seqData), {
|
|
104367
|
+
getAcceptedInsertChars
|
|
104368
|
+
}));
|
|
104160
104369
|
seqData.sequence = newSeq;
|
|
104161
104370
|
}
|
|
104162
104371
|
}
|
|
@@ -125757,195 +125966,6 @@ ${seq.sequence}
|
|
|
125757
125966
|
return sequenceDataSelector(state2).sequence;
|
|
125758
125967
|
}
|
|
125759
125968
|
__name(sequenceSelector, "sequenceSelector");
|
|
125760
|
-
var NOT_FOUND = "NOT_FOUND";
|
|
125761
|
-
function createSingletonCache(equals) {
|
|
125762
|
-
var entry;
|
|
125763
|
-
return {
|
|
125764
|
-
get: /* @__PURE__ */ __name(function get2(key) {
|
|
125765
|
-
if (entry && equals(entry.key, key)) {
|
|
125766
|
-
return entry.value;
|
|
125767
|
-
}
|
|
125768
|
-
return NOT_FOUND;
|
|
125769
|
-
}, "get"),
|
|
125770
|
-
put: /* @__PURE__ */ __name(function put(key, value) {
|
|
125771
|
-
entry = {
|
|
125772
|
-
key,
|
|
125773
|
-
value
|
|
125774
|
-
};
|
|
125775
|
-
}, "put"),
|
|
125776
|
-
getEntries: /* @__PURE__ */ __name(function getEntries() {
|
|
125777
|
-
return entry ? [entry] : [];
|
|
125778
|
-
}, "getEntries"),
|
|
125779
|
-
clear: /* @__PURE__ */ __name(function clear() {
|
|
125780
|
-
entry = void 0;
|
|
125781
|
-
}, "clear")
|
|
125782
|
-
};
|
|
125783
|
-
}
|
|
125784
|
-
__name(createSingletonCache, "createSingletonCache");
|
|
125785
|
-
function createLruCache(maxSize, equals) {
|
|
125786
|
-
var entries = [];
|
|
125787
|
-
function get2(key) {
|
|
125788
|
-
var cacheIndex = entries.findIndex(function(entry2) {
|
|
125789
|
-
return equals(key, entry2.key);
|
|
125790
|
-
});
|
|
125791
|
-
if (cacheIndex > -1) {
|
|
125792
|
-
var entry = entries[cacheIndex];
|
|
125793
|
-
if (cacheIndex > 0) {
|
|
125794
|
-
entries.splice(cacheIndex, 1);
|
|
125795
|
-
entries.unshift(entry);
|
|
125796
|
-
}
|
|
125797
|
-
return entry.value;
|
|
125798
|
-
}
|
|
125799
|
-
return NOT_FOUND;
|
|
125800
|
-
}
|
|
125801
|
-
__name(get2, "get");
|
|
125802
|
-
function put(key, value) {
|
|
125803
|
-
if (get2(key) === NOT_FOUND) {
|
|
125804
|
-
entries.unshift({
|
|
125805
|
-
key,
|
|
125806
|
-
value
|
|
125807
|
-
});
|
|
125808
|
-
if (entries.length > maxSize) {
|
|
125809
|
-
entries.pop();
|
|
125810
|
-
}
|
|
125811
|
-
}
|
|
125812
|
-
}
|
|
125813
|
-
__name(put, "put");
|
|
125814
|
-
function getEntries() {
|
|
125815
|
-
return entries;
|
|
125816
|
-
}
|
|
125817
|
-
__name(getEntries, "getEntries");
|
|
125818
|
-
function clear() {
|
|
125819
|
-
entries = [];
|
|
125820
|
-
}
|
|
125821
|
-
__name(clear, "clear");
|
|
125822
|
-
return {
|
|
125823
|
-
get: get2,
|
|
125824
|
-
put,
|
|
125825
|
-
getEntries,
|
|
125826
|
-
clear
|
|
125827
|
-
};
|
|
125828
|
-
}
|
|
125829
|
-
__name(createLruCache, "createLruCache");
|
|
125830
|
-
var defaultEqualityCheck = /* @__PURE__ */ __name(function defaultEqualityCheck2(a2, b3) {
|
|
125831
|
-
return a2 === b3;
|
|
125832
|
-
}, "defaultEqualityCheck");
|
|
125833
|
-
function createCacheKeyComparator(equalityCheck) {
|
|
125834
|
-
return /* @__PURE__ */ __name(function areArgumentsShallowlyEqual(prev, next) {
|
|
125835
|
-
if (prev === null || next === null || prev.length !== next.length) {
|
|
125836
|
-
return false;
|
|
125837
|
-
}
|
|
125838
|
-
var length = prev.length;
|
|
125839
|
-
for (var i2 = 0; i2 < length; i2++) {
|
|
125840
|
-
if (!equalityCheck(prev[i2], next[i2])) {
|
|
125841
|
-
return false;
|
|
125842
|
-
}
|
|
125843
|
-
}
|
|
125844
|
-
return true;
|
|
125845
|
-
}, "areArgumentsShallowlyEqual");
|
|
125846
|
-
}
|
|
125847
|
-
__name(createCacheKeyComparator, "createCacheKeyComparator");
|
|
125848
|
-
function defaultMemoize(func, equalityCheckOrOptions) {
|
|
125849
|
-
var providedOptions = typeof equalityCheckOrOptions === "object" ? equalityCheckOrOptions : {
|
|
125850
|
-
equalityCheck: equalityCheckOrOptions
|
|
125851
|
-
};
|
|
125852
|
-
var _providedOptions$equa = providedOptions.equalityCheck, equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa, _providedOptions$maxS = providedOptions.maxSize, maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS, resultEqualityCheck = providedOptions.resultEqualityCheck;
|
|
125853
|
-
var comparator = createCacheKeyComparator(equalityCheck);
|
|
125854
|
-
var cache2 = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator);
|
|
125855
|
-
function memoized() {
|
|
125856
|
-
var value = cache2.get(arguments);
|
|
125857
|
-
if (value === NOT_FOUND) {
|
|
125858
|
-
value = func.apply(null, arguments);
|
|
125859
|
-
if (resultEqualityCheck) {
|
|
125860
|
-
var entries = cache2.getEntries();
|
|
125861
|
-
var matchingEntry = entries.find(function(entry) {
|
|
125862
|
-
return resultEqualityCheck(entry.value, value);
|
|
125863
|
-
});
|
|
125864
|
-
if (matchingEntry) {
|
|
125865
|
-
value = matchingEntry.value;
|
|
125866
|
-
}
|
|
125867
|
-
}
|
|
125868
|
-
cache2.put(arguments, value);
|
|
125869
|
-
}
|
|
125870
|
-
return value;
|
|
125871
|
-
}
|
|
125872
|
-
__name(memoized, "memoized");
|
|
125873
|
-
memoized.clearCache = function() {
|
|
125874
|
-
return cache2.clear();
|
|
125875
|
-
};
|
|
125876
|
-
return memoized;
|
|
125877
|
-
}
|
|
125878
|
-
__name(defaultMemoize, "defaultMemoize");
|
|
125879
|
-
function getDependencies(funcs) {
|
|
125880
|
-
var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
|
|
125881
|
-
if (!dependencies.every(function(dep) {
|
|
125882
|
-
return typeof dep === "function";
|
|
125883
|
-
})) {
|
|
125884
|
-
var dependencyTypes = dependencies.map(function(dep) {
|
|
125885
|
-
return typeof dep === "function" ? "function " + (dep.name || "unnamed") + "()" : typeof dep;
|
|
125886
|
-
}).join(", ");
|
|
125887
|
-
throw new Error("createSelector expects all input-selectors to be functions, but received the following types: [" + dependencyTypes + "]");
|
|
125888
|
-
}
|
|
125889
|
-
return dependencies;
|
|
125890
|
-
}
|
|
125891
|
-
__name(getDependencies, "getDependencies");
|
|
125892
|
-
function createSelectorCreator(memoize2) {
|
|
125893
|
-
for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
125894
|
-
memoizeOptionsFromArgs[_key - 1] = arguments[_key];
|
|
125895
|
-
}
|
|
125896
|
-
var createSelector2 = /* @__PURE__ */ __name(function createSelector3() {
|
|
125897
|
-
for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
125898
|
-
funcs[_key2] = arguments[_key2];
|
|
125899
|
-
}
|
|
125900
|
-
var _recomputations = 0;
|
|
125901
|
-
var _lastResult;
|
|
125902
|
-
var directlyPassedOptions = {
|
|
125903
|
-
memoizeOptions: void 0
|
|
125904
|
-
};
|
|
125905
|
-
var resultFunc = funcs.pop();
|
|
125906
|
-
if (typeof resultFunc === "object") {
|
|
125907
|
-
directlyPassedOptions = resultFunc;
|
|
125908
|
-
resultFunc = funcs.pop();
|
|
125909
|
-
}
|
|
125910
|
-
if (typeof resultFunc !== "function") {
|
|
125911
|
-
throw new Error("createSelector expects an output function after the inputs, but received: [" + typeof resultFunc + "]");
|
|
125912
|
-
}
|
|
125913
|
-
var _directlyPassedOption = directlyPassedOptions, _directlyPassedOption2 = _directlyPassedOption.memoizeOptions, memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2;
|
|
125914
|
-
var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];
|
|
125915
|
-
var dependencies = getDependencies(funcs);
|
|
125916
|
-
var memoizedResultFunc = memoize2.apply(void 0, [/* @__PURE__ */ __name(function recomputationWrapper() {
|
|
125917
|
-
_recomputations++;
|
|
125918
|
-
return resultFunc.apply(null, arguments);
|
|
125919
|
-
}, "recomputationWrapper")].concat(finalMemoizeOptions));
|
|
125920
|
-
var selector = memoize2(/* @__PURE__ */ __name(function dependenciesChecker() {
|
|
125921
|
-
var params = [];
|
|
125922
|
-
var length = dependencies.length;
|
|
125923
|
-
for (var i2 = 0; i2 < length; i2++) {
|
|
125924
|
-
params.push(dependencies[i2].apply(null, arguments));
|
|
125925
|
-
}
|
|
125926
|
-
_lastResult = memoizedResultFunc.apply(null, params);
|
|
125927
|
-
return _lastResult;
|
|
125928
|
-
}, "dependenciesChecker"));
|
|
125929
|
-
Object.assign(selector, {
|
|
125930
|
-
resultFunc,
|
|
125931
|
-
memoizedResultFunc,
|
|
125932
|
-
dependencies,
|
|
125933
|
-
lastResult: /* @__PURE__ */ __name(function lastResult() {
|
|
125934
|
-
return _lastResult;
|
|
125935
|
-
}, "lastResult"),
|
|
125936
|
-
recomputations: /* @__PURE__ */ __name(function recomputations() {
|
|
125937
|
-
return _recomputations;
|
|
125938
|
-
}, "recomputations"),
|
|
125939
|
-
resetRecomputations: /* @__PURE__ */ __name(function resetRecomputations() {
|
|
125940
|
-
return _recomputations = 0;
|
|
125941
|
-
}, "resetRecomputations")
|
|
125942
|
-
});
|
|
125943
|
-
return selector;
|
|
125944
|
-
}, "createSelector");
|
|
125945
|
-
return createSelector2;
|
|
125946
|
-
}
|
|
125947
|
-
__name(createSelectorCreator, "createSelectorCreator");
|
|
125948
|
-
var createSelector = /* @__PURE__ */ createSelectorCreator(defaultMemoize);
|
|
125949
125969
|
const restrictionEnzymesSelector = createSelector(
|
|
125950
125970
|
() => defaultEnzymesByName,
|
|
125951
125971
|
(state2, additionalEnzymes) => {
|
|
@@ -125971,7 +125991,34 @@ ${seq.sequence}
|
|
|
125971
125991
|
const cutsiteLabelColorSelector = createSelector(sequenceDataSelector, function(sequenceData2) {
|
|
125972
125992
|
return sequenceData2.cutsiteLabelColors;
|
|
125973
125993
|
});
|
|
125974
|
-
|
|
125994
|
+
const cutsitesCache = [];
|
|
125995
|
+
function getCachedResult(argsObj) {
|
|
125996
|
+
const idx = cutsitesCache.findIndex(
|
|
125997
|
+
(entry) => entry && isEqual$3(entry.args, argsObj)
|
|
125998
|
+
);
|
|
125999
|
+
if (idx === -1) return;
|
|
126000
|
+
const hit = cutsitesCache[idx];
|
|
126001
|
+
return hit.result;
|
|
126002
|
+
}
|
|
126003
|
+
__name(getCachedResult, "getCachedResult");
|
|
126004
|
+
function setCachedResult(argsObj, result, cacheSize = 1) {
|
|
126005
|
+
cutsitesCache.push({
|
|
126006
|
+
args: argsObj,
|
|
126007
|
+
result
|
|
126008
|
+
});
|
|
126009
|
+
if (cutsitesCache.length > cacheSize) cutsitesCache.shift();
|
|
126010
|
+
}
|
|
126011
|
+
__name(setCachedResult, "setCachedResult");
|
|
126012
|
+
function cutsitesSelector(sequence2, circular2, enzymeList, cutsiteLabelColors, editorSize = 1) {
|
|
126013
|
+
const cachedResult = getCachedResult({
|
|
126014
|
+
sequence: sequence2,
|
|
126015
|
+
circular: circular2,
|
|
126016
|
+
enzymeList,
|
|
126017
|
+
cutsiteLabelColors
|
|
126018
|
+
});
|
|
126019
|
+
if (cachedResult) {
|
|
126020
|
+
return cachedResult;
|
|
126021
|
+
}
|
|
125975
126022
|
const cutsitesByName = getLowerCaseObj(
|
|
125976
126023
|
getCutsitesFromSequence(sequence2, circular2, map$3(enzymeList))
|
|
125977
126024
|
);
|
|
@@ -126004,11 +126051,22 @@ ${seq.sequence}
|
|
|
126004
126051
|
const cutsitesArray = flatMap(cutsitesByName, function(cutsitesForEnzyme) {
|
|
126005
126052
|
return cutsitesForEnzyme;
|
|
126006
126053
|
});
|
|
126007
|
-
|
|
126054
|
+
const result = {
|
|
126008
126055
|
cutsitesByName,
|
|
126009
126056
|
cutsitesById,
|
|
126010
126057
|
cutsitesArray
|
|
126011
126058
|
};
|
|
126059
|
+
setCachedResult(
|
|
126060
|
+
{
|
|
126061
|
+
sequence: sequence2,
|
|
126062
|
+
circular: circular2,
|
|
126063
|
+
enzymeList,
|
|
126064
|
+
cutsiteLabelColors
|
|
126065
|
+
},
|
|
126066
|
+
result,
|
|
126067
|
+
editorSize
|
|
126068
|
+
);
|
|
126069
|
+
return result;
|
|
126012
126070
|
}
|
|
126013
126071
|
__name(cutsitesSelector, "cutsitesSelector");
|
|
126014
126072
|
const cutsitesSelector$1 = createSelector(
|
|
@@ -126016,6 +126074,7 @@ ${seq.sequence}
|
|
|
126016
126074
|
circularSelector,
|
|
126017
126075
|
restrictionEnzymesSelector,
|
|
126018
126076
|
cutsiteLabelColorSelector,
|
|
126077
|
+
(editorState) => editorState.editorSize,
|
|
126019
126078
|
cutsitesSelector
|
|
126020
126079
|
);
|
|
126021
126080
|
function divideBy3(num, shouldDivideBy3) {
|
|
@@ -127431,11 +127490,12 @@ ${seq.sequence}
|
|
|
127431
127490
|
props,
|
|
127432
127491
|
overrideName
|
|
127433
127492
|
}) {
|
|
127434
|
-
var _a2;
|
|
127493
|
+
var _a2, _b2, _c2, _d2;
|
|
127435
127494
|
dialogHolder.dialogType = dialogType;
|
|
127436
127495
|
if (!dialogHolder.dialogType && ModalComponent) {
|
|
127437
127496
|
dialogHolder.dialogType = "TGCustomModal";
|
|
127438
127497
|
}
|
|
127498
|
+
dialogHolder.editorName = props == null ? void 0 : props.editorName;
|
|
127439
127499
|
if (document.activeElement && document.activeElement.closest(".veEditor")) {
|
|
127440
127500
|
let editorName;
|
|
127441
127501
|
(_a2 = document.activeElement.closest(".veEditor")) == null ? void 0 : _a2.className.split(" ").forEach((c2) => {
|
|
@@ -127449,16 +127509,28 @@ ${seq.sequence}
|
|
|
127449
127509
|
dialogHolder.CustomModalComponent = ModalComponent;
|
|
127450
127510
|
dialogHolder.props = props;
|
|
127451
127511
|
dialogHolder.overrideName = overrideName;
|
|
127452
|
-
dialogHolder.
|
|
127512
|
+
if (dialogHolder.editorName && (dialogHolder == null ? void 0 : dialogHolder[dialogHolder.editorName])) {
|
|
127513
|
+
(_c2 = (_b2 = dialogHolder == null ? void 0 : dialogHolder[dialogHolder.editorName]) == null ? void 0 : _b2.setUniqKeyToForceRerender) == null ? void 0 : _c2.call(
|
|
127514
|
+
_b2,
|
|
127515
|
+
uuid()
|
|
127516
|
+
);
|
|
127517
|
+
} else {
|
|
127518
|
+
(_d2 = dialogHolder == null ? void 0 : dialogHolder.setUniqKeyToForceRerender) == null ? void 0 : _d2.call(dialogHolder, uuid());
|
|
127519
|
+
}
|
|
127453
127520
|
}
|
|
127454
127521
|
__name(showDialog, "showDialog");
|
|
127455
127522
|
function hideDialog() {
|
|
127523
|
+
var _a2, _b2, _c2;
|
|
127456
127524
|
delete dialogHolder.dialogType;
|
|
127457
127525
|
delete dialogHolder.CustomModalComponent;
|
|
127458
127526
|
delete dialogHolder.props;
|
|
127459
127527
|
delete dialogHolder.overrideName;
|
|
127528
|
+
if (dialogHolder.editorName && (dialogHolder == null ? void 0 : dialogHolder[dialogHolder.editorName])) {
|
|
127529
|
+
(_b2 = (_a2 = dialogHolder == null ? void 0 : dialogHolder[dialogHolder.editorName]) == null ? void 0 : _a2.setUniqKeyToForceRerender) == null ? void 0 : _b2.call(_a2);
|
|
127530
|
+
} else {
|
|
127531
|
+
(_c2 = dialogHolder == null ? void 0 : dialogHolder.setUniqKeyToForceRerender) == null ? void 0 : _c2.call(dialogHolder);
|
|
127532
|
+
}
|
|
127460
127533
|
delete dialogHolder.editorName;
|
|
127461
|
-
dialogHolder.setUniqKeyToForceRerender();
|
|
127462
127534
|
}
|
|
127463
127535
|
__name(hideDialog, "hideDialog");
|
|
127464
127536
|
const typeToDialogType = {
|
|
@@ -127733,7 +127805,8 @@ ${seq.sequence}
|
|
|
127733
127805
|
readOnly: readOnly2,
|
|
127734
127806
|
alwaysAllowSave,
|
|
127735
127807
|
sequenceData: sequenceData2,
|
|
127736
|
-
lastSavedIdUpdate: lastSavedIdUpdate2
|
|
127808
|
+
lastSavedIdUpdate: lastSavedIdUpdate2,
|
|
127809
|
+
getAcceptedInsertChars
|
|
127737
127810
|
} = props;
|
|
127738
127811
|
const saveHandler = opts2.isSaveAs ? onSaveAs || onSave : onSave;
|
|
127739
127812
|
const updateLastSavedIdToCurrent = /* @__PURE__ */ __name(() => {
|
|
@@ -127746,7 +127819,8 @@ ${seq.sequence}
|
|
|
127746
127819
|
opts2,
|
|
127747
127820
|
tidyUpSequenceData(sequenceData2, {
|
|
127748
127821
|
doNotRemoveInvalidChars: true,
|
|
127749
|
-
annotationsAsObjects: true
|
|
127822
|
+
annotationsAsObjects: true,
|
|
127823
|
+
getAcceptedInsertChars
|
|
127750
127824
|
}),
|
|
127751
127825
|
props,
|
|
127752
127826
|
updateLastSavedIdToCurrent
|
|
@@ -127928,8 +128002,8 @@ ${seq.sequence}
|
|
|
127928
128002
|
caretPositionOrRange,
|
|
127929
128003
|
options
|
|
127930
128004
|
} = props.beforeSequenceInsertOrDelete ? (yield props.beforeSequenceInsertOrDelete(
|
|
127931
|
-
tidyUpSequenceData(_sequenceDataToInsert),
|
|
127932
|
-
tidyUpSequenceData(_existingSequenceData),
|
|
128005
|
+
tidyUpSequenceData(_sequenceDataToInsert, { getAcceptedInsertChars: props.getAcceptedInsertChars }),
|
|
128006
|
+
tidyUpSequenceData(_existingSequenceData, { getAcceptedInsertChars: props.getAcceptedInsertChars }),
|
|
127933
128007
|
_caretPositionOrRange,
|
|
127934
128008
|
_options
|
|
127935
128009
|
)) || {} : {};
|
|
@@ -128092,7 +128166,11 @@ ${seq.sequence}
|
|
|
128092
128166
|
(state2) => state2.VectorEditor,
|
|
128093
128167
|
(state2, editorName) => editorName,
|
|
128094
128168
|
(VectorEditor, editorName) => {
|
|
128095
|
-
|
|
128169
|
+
const editorState = VectorEditor[editorName];
|
|
128170
|
+
editorState && (editorState.editorSize = Object.values(VectorEditor).filter(
|
|
128171
|
+
(editorItem) => editorItem == null ? void 0 : editorItem.sequenceData
|
|
128172
|
+
).length);
|
|
128173
|
+
return editorState;
|
|
128096
128174
|
}
|
|
128097
128175
|
);
|
|
128098
128176
|
function mapStateToProps(state2, ownProps) {
|
|
@@ -128129,6 +128207,9 @@ ${seq.sequence}
|
|
|
128129
128207
|
annotationTypePlural,
|
|
128130
128208
|
sequenceLength
|
|
128131
128209
|
);
|
|
128210
|
+
if (dialogHolder.editorName) {
|
|
128211
|
+
annotationToAdd = dialogHolder.editorName === editorName ? annotationToAdd : void 0;
|
|
128212
|
+
}
|
|
128132
128213
|
}
|
|
128133
128214
|
});
|
|
128134
128215
|
const toReturn = __spreadProps(__spreadValues({}, editorState), {
|
|
@@ -128356,13 +128437,15 @@ ${seq.sequence}
|
|
|
128356
128437
|
return toRet;
|
|
128357
128438
|
}
|
|
128358
128439
|
__name(getShowGCContent, "getShowGCContent");
|
|
128359
|
-
function jsonToJson(incomingJson) {
|
|
128440
|
+
function jsonToJson(incomingJson, options) {
|
|
128441
|
+
const { getAcceptedInsertChars } = options || {};
|
|
128360
128442
|
return JSON.stringify(
|
|
128361
128443
|
omit$1(
|
|
128362
128444
|
cleanUpTeselagenJsonForExport(
|
|
128363
128445
|
tidyUpSequenceData(incomingJson, {
|
|
128364
128446
|
doNotRemoveInvalidChars: true,
|
|
128365
|
-
annotationsAsObjects: false
|
|
128447
|
+
annotationsAsObjects: false,
|
|
128448
|
+
getAcceptedInsertChars
|
|
128366
128449
|
})
|
|
128367
128450
|
),
|
|
128368
128451
|
[
|
|
@@ -138262,7 +138345,8 @@ ${seq.sequence}
|
|
|
138262
138345
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138263
138346
|
click → top cut position
|
|
138264
138347
|
alt/option+click → bottom cut position
|
|
138265
|
-
cmd/ctrl+click → recognition range
|
|
138348
|
+
cmd/ctrl+click → recognition range
|
|
138349
|
+
double click → show info` : `
|
|
138266
138350
|
|
|
138267
138351
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138268
138352
|
INTERACTIONS:
|
|
@@ -139048,9 +139132,19 @@ ${seq.sequence}
|
|
|
139048
139132
|
};
|
|
139049
139133
|
__name(_AnnotationPositioner, "AnnotationPositioner");
|
|
139050
139134
|
let AnnotationPositioner = _AnnotationPositioner;
|
|
139135
|
+
let measureCanvas;
|
|
139136
|
+
function getAnnotationTextWidth(text2, fontSize2 = ANNOTATION_LABEL_FONT_WIDTH, fontFamily2 = "monospace") {
|
|
139137
|
+
if (!measureCanvas) {
|
|
139138
|
+
measureCanvas = document.createElement("canvas");
|
|
139139
|
+
}
|
|
139140
|
+
const ctx = measureCanvas.getContext("2d");
|
|
139141
|
+
ctx.font = `${fontSize2}px ${fontFamily2}`;
|
|
139142
|
+
return ctx.measureText(text2).width;
|
|
139143
|
+
}
|
|
139144
|
+
__name(getAnnotationTextWidth, "getAnnotationTextWidth");
|
|
139051
139145
|
const doesLabelFitInAnnotation = /* @__PURE__ */ __name((text2 = "", { range: range2, width }, charWidth2) => {
|
|
139052
|
-
const textLength = text2
|
|
139053
|
-
const widthMinusOne =
|
|
139146
|
+
const textLength = getAnnotationTextWidth(text2);
|
|
139147
|
+
const widthMinusOne = range2 ? getWidth(range2, charWidth2, 0) - ANNOTATION_LABEL_FONT_WIDTH * 2 : width - ANNOTATION_LABEL_FONT_WIDTH * 2;
|
|
139054
139148
|
return widthMinusOne > textLength;
|
|
139055
139149
|
}, "doesLabelFitInAnnotation");
|
|
139056
139150
|
function getAnnotationClassnames({ overlapsSelf }, { viewName, type: type2 }) {
|
|
@@ -139060,6 +139154,78 @@ ${seq.sequence}
|
|
|
139060
139154
|
});
|
|
139061
139155
|
}
|
|
139062
139156
|
__name(getAnnotationClassnames, "getAnnotationClassnames");
|
|
139157
|
+
function getAnnotationTextOffset({
|
|
139158
|
+
width,
|
|
139159
|
+
nameToDisplay,
|
|
139160
|
+
hasAPoint,
|
|
139161
|
+
pointiness,
|
|
139162
|
+
forward
|
|
139163
|
+
}) {
|
|
139164
|
+
return width / 2 - getAnnotationTextWidth(nameToDisplay) / 2 - (hasAPoint ? (pointiness / 2 + ANNOTATION_LABEL_FONT_WIDTH / 2) * (forward ? 1 : -1) : 0);
|
|
139165
|
+
}
|
|
139166
|
+
__name(getAnnotationTextOffset, "getAnnotationTextOffset");
|
|
139167
|
+
function getAnnotationNameInfo({
|
|
139168
|
+
name: name2,
|
|
139169
|
+
width,
|
|
139170
|
+
hasAPoint,
|
|
139171
|
+
pointiness,
|
|
139172
|
+
forward,
|
|
139173
|
+
charWidth: charWidth2,
|
|
139174
|
+
truncateLabelsThatDoNotFit,
|
|
139175
|
+
onlyShowLabelsThatDoNotFit,
|
|
139176
|
+
annotation
|
|
139177
|
+
}) {
|
|
139178
|
+
let nameToDisplay = name2;
|
|
139179
|
+
let textOffset = getAnnotationTextOffset({
|
|
139180
|
+
width,
|
|
139181
|
+
nameToDisplay,
|
|
139182
|
+
hasAPoint,
|
|
139183
|
+
pointiness,
|
|
139184
|
+
forward
|
|
139185
|
+
});
|
|
139186
|
+
const widthAvailableForText = width - ANNOTATION_LABEL_FONT_WIDTH * 2;
|
|
139187
|
+
if (!doesLabelFitInAnnotation(name2, { width }, charWidth2) || !onlyShowLabelsThatDoNotFit && ["parts", "features"].includes(annotation.annotationTypePlural)) {
|
|
139188
|
+
if (truncateLabelsThatDoNotFit) {
|
|
139189
|
+
let left2 = 0;
|
|
139190
|
+
let right2 = name2.length;
|
|
139191
|
+
let bestFit = "";
|
|
139192
|
+
while (left2 <= right2) {
|
|
139193
|
+
const mid = Math.floor((left2 + right2) / 2);
|
|
139194
|
+
const candidate = name2.slice(0, mid);
|
|
139195
|
+
const candidateWidth = getAnnotationTextWidth(candidate);
|
|
139196
|
+
if (candidateWidth <= widthAvailableForText) {
|
|
139197
|
+
if (candidate.length > bestFit.length) {
|
|
139198
|
+
bestFit = candidate;
|
|
139199
|
+
}
|
|
139200
|
+
left2 = mid + 1;
|
|
139201
|
+
} else {
|
|
139202
|
+
right2 = mid - 1;
|
|
139203
|
+
}
|
|
139204
|
+
}
|
|
139205
|
+
if (bestFit.length < name2.length) {
|
|
139206
|
+
bestFit = bestFit.slice(0, -2) + "..";
|
|
139207
|
+
}
|
|
139208
|
+
nameToDisplay = bestFit;
|
|
139209
|
+
if (nameToDisplay.length <= 3) {
|
|
139210
|
+
textOffset = 0;
|
|
139211
|
+
nameToDisplay = "";
|
|
139212
|
+
} else {
|
|
139213
|
+
textOffset = getAnnotationTextOffset({
|
|
139214
|
+
width,
|
|
139215
|
+
nameToDisplay,
|
|
139216
|
+
hasAPoint,
|
|
139217
|
+
pointiness,
|
|
139218
|
+
forward
|
|
139219
|
+
});
|
|
139220
|
+
}
|
|
139221
|
+
} else {
|
|
139222
|
+
textOffset = 0;
|
|
139223
|
+
nameToDisplay = "";
|
|
139224
|
+
}
|
|
139225
|
+
}
|
|
139226
|
+
return { textOffset, nameToDisplay };
|
|
139227
|
+
}
|
|
139228
|
+
__name(getAnnotationNameInfo, "getAnnotationNameInfo");
|
|
139063
139229
|
function PointedAnnotation(props) {
|
|
139064
139230
|
const {
|
|
139065
139231
|
className,
|
|
@@ -139195,27 +139361,17 @@ ${seq.sequence}
|
|
|
139195
139361
|
Q ${pointiness},${height / 2} ${0},${0}
|
|
139196
139362
|
z`;
|
|
139197
139363
|
}
|
|
139198
|
-
|
|
139199
|
-
|
|
139200
|
-
|
|
139201
|
-
|
|
139202
|
-
|
|
139203
|
-
|
|
139204
|
-
|
|
139205
|
-
|
|
139206
|
-
|
|
139207
|
-
|
|
139208
|
-
|
|
139209
|
-
textOffset = width / 2 - nameToDisplay.length * 5 / 2 - (hasAPoint ? pointiness / 2 * (forward ? 1 : -1) : 0);
|
|
139210
|
-
} else {
|
|
139211
|
-
textOffset = 0;
|
|
139212
|
-
nameToDisplay = "";
|
|
139213
|
-
}
|
|
139214
|
-
} else {
|
|
139215
|
-
textOffset = 0;
|
|
139216
|
-
nameToDisplay = "";
|
|
139217
|
-
}
|
|
139218
|
-
}
|
|
139364
|
+
const { textOffset, nameToDisplay } = getAnnotationNameInfo({
|
|
139365
|
+
name: name2,
|
|
139366
|
+
width,
|
|
139367
|
+
hasAPoint,
|
|
139368
|
+
pointiness,
|
|
139369
|
+
forward,
|
|
139370
|
+
charWidth: charWidth2,
|
|
139371
|
+
truncateLabelsThatDoNotFit,
|
|
139372
|
+
onlyShowLabelsThatDoNotFit,
|
|
139373
|
+
annotation
|
|
139374
|
+
});
|
|
139219
139375
|
let _textColor = textColor;
|
|
139220
139376
|
if (!textColor) {
|
|
139221
139377
|
try {
|
|
@@ -145084,7 +145240,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
145084
145240
|
input.click();
|
|
145085
145241
|
}
|
|
145086
145242
|
__name(showFileDialog, "showFileDialog");
|
|
145087
|
-
const version = "0.8.
|
|
145243
|
+
const version = "0.8.31";
|
|
145088
145244
|
const packageJson = {
|
|
145089
145245
|
version
|
|
145090
145246
|
};
|
|
@@ -146002,7 +146158,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
146002
146158
|
},
|
|
146003
146159
|
exportSequenceAsTeselagenJson: {
|
|
146004
146160
|
name: "Download Teselagen JSON File",
|
|
146005
|
-
handler: /* @__PURE__ */ __name((props) => props.exportSequenceToFile("teselagenJson"), "handler")
|
|
146161
|
+
handler: /* @__PURE__ */ __name((props) => props.exportSequenceToFile("teselagenJson", { getAcceptedInsertChars: props.getAcceptedInsertChars }), "handler")
|
|
146006
146162
|
},
|
|
146007
146163
|
viewProperties: {
|
|
146008
146164
|
handler: /* @__PURE__ */ __name((props) => props.propertiesViewOpen(), "handler")
|
|
@@ -147211,6 +147367,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
147211
147367
|
caretPosition: caretPosition2,
|
|
147212
147368
|
sequenceData: sequenceData2,
|
|
147213
147369
|
maxInsertSize,
|
|
147370
|
+
getAcceptedInsertChars,
|
|
147214
147371
|
showAminoAcidUnitAsCodon
|
|
147215
147372
|
} = this.props;
|
|
147216
147373
|
const { charsToInsert, hasTempError } = this.state;
|
|
@@ -147246,7 +147403,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
147246
147403
|
const [sanitizedVal, warnings] = filterSequenceString(
|
|
147247
147404
|
e2.target.value,
|
|
147248
147405
|
__spreadProps(__spreadValues({}, sequenceData2), {
|
|
147249
|
-
name: void 0
|
|
147406
|
+
name: void 0,
|
|
147407
|
+
getAcceptedInsertChars
|
|
147250
147408
|
})
|
|
147251
147409
|
);
|
|
147252
147410
|
if (warnings.length) {
|
|
@@ -148125,7 +148283,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148125
148283
|
onPaste,
|
|
148126
148284
|
disableBpEditing,
|
|
148127
148285
|
sequenceData: sequenceData2,
|
|
148128
|
-
maxInsertSize
|
|
148286
|
+
maxInsertSize,
|
|
148287
|
+
getAcceptedInsertChars
|
|
148129
148288
|
} = this.props;
|
|
148130
148289
|
if (disableBpEditing) {
|
|
148131
148290
|
return this.createDisableBpEditingMsg();
|
|
@@ -148164,7 +148323,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148164
148323
|
topLevelSeqData: sequenceData2,
|
|
148165
148324
|
provideNewIdsForAnnotations: true,
|
|
148166
148325
|
annotationsAsObjects: true,
|
|
148167
|
-
noCdsTranslations: true
|
|
148326
|
+
noCdsTranslations: true,
|
|
148327
|
+
getAcceptedInsertChars
|
|
148168
148328
|
});
|
|
148169
148329
|
if (!seqDataToInsert.sequence.length)
|
|
148170
148330
|
return window.toastr.warning("Sorry no valid base pairs to paste");
|
|
@@ -148184,7 +148344,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148184
148344
|
selectionLayer: selectionLayer2,
|
|
148185
148345
|
copyOptions: copyOptions2,
|
|
148186
148346
|
disableBpEditing,
|
|
148187
|
-
readOnly: readOnly2
|
|
148347
|
+
readOnly: readOnly2,
|
|
148348
|
+
getAcceptedInsertChars
|
|
148188
148349
|
} = this.props;
|
|
148189
148350
|
const onCut = this.props.onCut || this.props.onCopy || noop$8;
|
|
148190
148351
|
const seqData = tidyUpSequenceData(
|
|
@@ -148208,7 +148369,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148208
148369
|
{
|
|
148209
148370
|
doNotRemoveInvalidChars: true,
|
|
148210
148371
|
annotationsAsObjects: true,
|
|
148211
|
-
includeProteinSequence: true
|
|
148372
|
+
includeProteinSequence: true,
|
|
148373
|
+
getAcceptedInsertChars
|
|
148212
148374
|
}
|
|
148213
148375
|
);
|
|
148214
148376
|
if (!(this.sequenceDataToCopy || {}).textToCopy && !seqData.sequence.length)
|
|
@@ -148226,7 +148388,8 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148226
148388
|
e2,
|
|
148227
148389
|
tidyUpSequenceData(seqData, {
|
|
148228
148390
|
doNotRemoveInvalidChars: true,
|
|
148229
|
-
annotationsAsObjects: true
|
|
148391
|
+
annotationsAsObjects: true,
|
|
148392
|
+
getAcceptedInsertChars
|
|
148230
148393
|
}),
|
|
148231
148394
|
this.props
|
|
148232
148395
|
);
|
|
@@ -148276,6 +148439,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148276
148439
|
readOnly: readOnly2,
|
|
148277
148440
|
disableBpEditing,
|
|
148278
148441
|
maxInsertSize,
|
|
148442
|
+
getAcceptedInsertChars,
|
|
148279
148443
|
showAminoAcidUnitAsCodon
|
|
148280
148444
|
} = this.props;
|
|
148281
148445
|
const sequenceLength = sequenceData2.sequence.length;
|
|
@@ -148295,6 +148459,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
148295
148459
|
sequenceLength,
|
|
148296
148460
|
caretPosition: caretPosition2,
|
|
148297
148461
|
maxInsertSize,
|
|
148462
|
+
getAcceptedInsertChars,
|
|
148298
148463
|
showAminoAcidUnitAsCodon,
|
|
148299
148464
|
handleInsert: /* @__PURE__ */ __name((seqDataToInsert) => __async(this, null, function* () {
|
|
148300
148465
|
yield insertAndSelectHelper({
|
|
@@ -153987,6 +154152,30 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
153987
154152
|
}) : /* @__PURE__ */ React.createElement("span", null, "(", base1Range.start, "-", base1Range.end, ")")));
|
|
153988
154153
|
}, "render")
|
|
153989
154154
|
}), "sizeSchema");
|
|
154155
|
+
const getMemoOrfs = /* @__PURE__ */ (() => {
|
|
154156
|
+
let lastDeps;
|
|
154157
|
+
let lastResult;
|
|
154158
|
+
return (editorState) => {
|
|
154159
|
+
const {
|
|
154160
|
+
sequenceData: sequenceData2,
|
|
154161
|
+
minimumOrfSize: minimumOrfSize2,
|
|
154162
|
+
useAdditionalOrfStartCodons: useAdditionalOrfStartCodons2
|
|
154163
|
+
} = editorState;
|
|
154164
|
+
const { sequence: sequence2, circular: circular2 } = sequenceData2;
|
|
154165
|
+
const deps = {
|
|
154166
|
+
sequence: sequence2,
|
|
154167
|
+
circular: circular2,
|
|
154168
|
+
minimumOrfSize: minimumOrfSize2,
|
|
154169
|
+
useAdditionalOrfStartCodons: useAdditionalOrfStartCodons2
|
|
154170
|
+
};
|
|
154171
|
+
if (lastResult && isEqual$3(deps, lastDeps)) {
|
|
154172
|
+
return lastResult;
|
|
154173
|
+
}
|
|
154174
|
+
lastResult = selectors.orfsSelector(editorState);
|
|
154175
|
+
lastDeps = deps;
|
|
154176
|
+
return lastResult;
|
|
154177
|
+
};
|
|
154178
|
+
})();
|
|
153990
154179
|
var lodash$1 = { exports: {} };
|
|
153991
154180
|
/**
|
|
153992
154181
|
* @license
|
|
@@ -164542,10 +164731,16 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
164542
164731
|
hideDialog();
|
|
164543
164732
|
};
|
|
164544
164733
|
}, []);
|
|
164734
|
+
reactExports.useEffect(() => {
|
|
164735
|
+
dialogHolder.setUniqKeyToForceRerender = setUniqKeyToForceRerender;
|
|
164736
|
+
if (editorName) {
|
|
164737
|
+
const slot = dialogHolder[editorName] = dialogHolder[editorName] || {};
|
|
164738
|
+
slot.setUniqKeyToForceRerender = setUniqKeyToForceRerender;
|
|
164739
|
+
}
|
|
164740
|
+
}, [editorName]);
|
|
164545
164741
|
if (dialogHolder.editorName && editorName && dialogHolder.editorName !== editorName) {
|
|
164546
164742
|
return null;
|
|
164547
164743
|
}
|
|
164548
|
-
dialogHolder.setUniqKeyToForceRerender = setUniqKeyToForceRerender;
|
|
164549
164744
|
const Comp = dialogHolder.CustomModalComponent || dialogOverrides[dialogHolder.overrideName] || Dialogs[dialogHolder.dialogType];
|
|
164550
164745
|
if (!Comp) return null;
|
|
164551
164746
|
return /* @__PURE__ */ React.createElement(
|
|
@@ -169309,6 +169504,8 @@ ${seqDataToCopy}\r
|
|
|
169309
169504
|
"enzymeManageOverride",
|
|
169310
169505
|
"enzymeGroupsOverride",
|
|
169311
169506
|
"additionalEnzymes",
|
|
169507
|
+
"getAcceptedInsertChars",
|
|
169508
|
+
"maxInsertSize",
|
|
169312
169509
|
"onDelete",
|
|
169313
169510
|
"onCopy",
|
|
169314
169511
|
"autoAnnotateFeatures",
|
|
@@ -171082,7 +171279,7 @@ ${seqDataToCopy}\r
|
|
|
171082
171279
|
readOnly: readOnly2,
|
|
171083
171280
|
annotationVisibility: annotationVisibility2,
|
|
171084
171281
|
useAdditionalOrfStartCodons: useAdditionalOrfStartCodons2,
|
|
171085
|
-
orfs:
|
|
171282
|
+
orfs: getMemoOrfs(editorState),
|
|
171086
171283
|
sequenceLength: sequence2.length,
|
|
171087
171284
|
sequenceData: sequenceData2,
|
|
171088
171285
|
minimumOrfSize: minimumOrfSize2
|
|
@@ -171272,7 +171469,7 @@ ${seqDataToCopy}\r
|
|
|
171272
171469
|
return {
|
|
171273
171470
|
readOnly: readOnly2,
|
|
171274
171471
|
translations: selectors.translationsSelector(editorState),
|
|
171275
|
-
orfs:
|
|
171472
|
+
orfs: getMemoOrfs(editorState),
|
|
171276
171473
|
annotationVisibility: annotationVisibility2,
|
|
171277
171474
|
sequenceLength: (sequenceData2.sequence || "").length,
|
|
171278
171475
|
sequenceData: sequenceData2
|
|
@@ -172557,6 +172754,7 @@ ${seqDataToCopy}\r
|
|
|
172557
172754
|
hoveredId,
|
|
172558
172755
|
isFullscreen,
|
|
172559
172756
|
maxInsertSize,
|
|
172757
|
+
getAcceptedInsertChars,
|
|
172560
172758
|
showAminoAcidUnitAsCodon,
|
|
172561
172759
|
maxAnnotationsToDisplay,
|
|
172562
172760
|
minHeight = 400,
|
|
@@ -172746,6 +172944,7 @@ ${seqDataToCopy}\r
|
|
|
172746
172944
|
}), panelPropsToSpread), {
|
|
172747
172945
|
editorName,
|
|
172748
172946
|
maxInsertSize,
|
|
172947
|
+
getAcceptedInsertChars,
|
|
172749
172948
|
showAminoAcidUnitAsCodon,
|
|
172750
172949
|
isProtein: sequenceData2.isProtein,
|
|
172751
172950
|
onlyShowLabelsThatDoNotFit,
|