@teselagen/ove 0.8.21 → 0.8.24
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 +268 -210
- package/index.es.js +268 -210
- package/index.umd.js +268 -210
- package/package.json +3 -3
- package/selectors/orfsSelector.d.ts +1 -1
- package/selectors/searchLayersSelector.d.ts +1 -1
- package/src/helperComponents/PropertiesDialog/GenericAnnotationProperties.js +224 -210
- package/src/redux/temporaryAnnotations.js +1 -1
- package/src/selectors/orfsSelector.js +1 -0
- package/src/selectors/searchLayersSelector.js +25 -16
- package/src/utils/pureNoFunc.js +0 -18
- package/utils/pureNoFunc.d.ts +0 -2
package/index.umd.js
CHANGED
|
@@ -44301,23 +44301,6 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
44301
44301
|
const { allOrderedEntities, selectedEntities } = useSelector(entitySelector);
|
|
44302
44302
|
return { selectTableEntities, allOrderedEntities, selectedEntities };
|
|
44303
44303
|
}, "useTableEntities");
|
|
44304
|
-
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
44305
|
-
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
44306
|
-
if (isFunction$1(val1) && isFunction$1(val2)) {
|
|
44307
|
-
return val1 === val2 || val1.toString() === val2.toString();
|
|
44308
|
-
}
|
|
44309
|
-
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
44310
|
-
return true;
|
|
44311
|
-
});
|
|
44312
|
-
return isEq;
|
|
44313
|
-
}, "isEqualIgnoreFunctions");
|
|
44314
|
-
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
44315
|
-
const ref2 = reactExports.useRef();
|
|
44316
|
-
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
44317
|
-
ref2.current = value;
|
|
44318
|
-
}
|
|
44319
|
-
return ref2.current;
|
|
44320
|
-
}, "useDeepEqualMemo");
|
|
44321
44304
|
function rowClick(e2, rowInfo, entities, {
|
|
44322
44305
|
reduxFormSelectedEntityIdMap,
|
|
44323
44306
|
isSingleSelect,
|
|
@@ -85601,6 +85584,33 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
85601
85584
|
$mobx
|
|
85602
85585
|
});
|
|
85603
85586
|
}
|
|
85587
|
+
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
85588
|
+
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
85589
|
+
if (isFunction$1(val1) && isFunction$1(val2)) {
|
|
85590
|
+
return val1 === val2 || val1.toString() === val2.toString();
|
|
85591
|
+
}
|
|
85592
|
+
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
85593
|
+
return true;
|
|
85594
|
+
});
|
|
85595
|
+
return isEq;
|
|
85596
|
+
}, "isEqualIgnoreFunctions");
|
|
85597
|
+
const useDeepEqualMemoIgnoreFns = /* @__PURE__ */ __name((value) => {
|
|
85598
|
+
const ref2 = reactExports.useRef();
|
|
85599
|
+
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
85600
|
+
ref2.current = value;
|
|
85601
|
+
}
|
|
85602
|
+
return ref2.current;
|
|
85603
|
+
}, "useDeepEqualMemoIgnoreFns");
|
|
85604
|
+
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
85605
|
+
const ref2 = reactExports.useRef();
|
|
85606
|
+
if (!isEqual$3(value, ref2.current)) {
|
|
85607
|
+
ref2.current = value;
|
|
85608
|
+
}
|
|
85609
|
+
return ref2.current;
|
|
85610
|
+
}, "useDeepEqualMemo");
|
|
85611
|
+
const useMemoDeepEqual = /* @__PURE__ */ __name((value, depsArray) => {
|
|
85612
|
+
return reactExports.useMemo(value, useDeepEqualMemo(depsArray));
|
|
85613
|
+
}, "useMemoDeepEqual");
|
|
85604
85614
|
T$1();
|
|
85605
85615
|
const IS_LINUX = window.navigator.platform.toLowerCase().search("linux") > -1;
|
|
85606
85616
|
const itemSizeEstimators = {
|
|
@@ -85687,9 +85697,11 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
85687
85697
|
"reduxFormSelectedEntityIdMap"
|
|
85688
85698
|
);
|
|
85689
85699
|
}, "dtFormParamsSelector"));
|
|
85690
|
-
const reduxFormCellValidation =
|
|
85691
|
-
|
|
85692
|
-
|
|
85700
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
85701
|
+
_reduxFormCellValidation
|
|
85702
|
+
);
|
|
85703
|
+
const reduxFormQueryParams = useDeepEqualMemoIgnoreFns(_reduxFormQueryParams);
|
|
85704
|
+
const reduxFormSelectedEntityIdMap = useDeepEqualMemoIgnoreFns(
|
|
85693
85705
|
_reduxFormSelectedEntityIdMap
|
|
85694
85706
|
);
|
|
85695
85707
|
let props = ownProps;
|
|
@@ -85764,7 +85776,7 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
85764
85776
|
const tmp = (urlConnected ? getCurrentParamsFromUrl(history.location) : reduxFormQueryParams) || {};
|
|
85765
85777
|
return tmp;
|
|
85766
85778
|
}, [history, reduxFormQueryParams, urlConnected]);
|
|
85767
|
-
const currentParams =
|
|
85779
|
+
const currentParams = useDeepEqualMemoIgnoreFns(_currentParams);
|
|
85768
85780
|
const tableParams = reactExports.useMemo(() => {
|
|
85769
85781
|
if (!isTableParamsConnected) {
|
|
85770
85782
|
const setNewParams2 = /* @__PURE__ */ __name((newParams) => {
|
|
@@ -85945,8 +85957,8 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
85945
85957
|
() => ((reduxFormEntities == null ? void 0 : reduxFormEntities.length) ? reduxFormEntities : _origEntities) || [],
|
|
85946
85958
|
[_origEntities, reduxFormEntities]
|
|
85947
85959
|
);
|
|
85948
|
-
const entities =
|
|
85949
|
-
const entitiesAcrossPages =
|
|
85960
|
+
const entities = useDeepEqualMemoIgnoreFns(_entities);
|
|
85961
|
+
const entitiesAcrossPages = useDeepEqualMemoIgnoreFns(_entitiesAcrossPages);
|
|
85950
85962
|
reactExports.useEffect(() => {
|
|
85951
85963
|
change$12("allOrderedEntities", entitiesAcrossPages);
|
|
85952
85964
|
if (entities.length === 0 || isEmpty$1(reduxFormSelectedEntityIdMap)) return;
|
|
@@ -90510,7 +90522,7 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
90510
90522
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormEntities;
|
|
90511
90523
|
}
|
|
90512
90524
|
);
|
|
90513
|
-
const reduxFormEntities =
|
|
90525
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
90514
90526
|
reactExports.useEffect(() => {
|
|
90515
90527
|
return () => dispatch(destroy(dataTableForm));
|
|
90516
90528
|
}, [dataTableForm, dispatch]);
|
|
@@ -90520,7 +90532,9 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
90520
90532
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormCellValidation;
|
|
90521
90533
|
}, "_reduxFormCellValidationSelector")
|
|
90522
90534
|
);
|
|
90523
|
-
const reduxFormCellValidation =
|
|
90535
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
90536
|
+
_reduxFormCellValidation
|
|
90537
|
+
);
|
|
90524
90538
|
const { entsToUse, validationToUse } = reactExports.useMemo(
|
|
90525
90539
|
() => removeCleanRows(reduxFormEntities, reduxFormCellValidation),
|
|
90526
90540
|
[reduxFormEntities, reduxFormCellValidation]
|
|
@@ -90605,8 +90619,10 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
90605
90619
|
"reduxFormCellValidation"
|
|
90606
90620
|
);
|
|
90607
90621
|
}, "dtFormNameSelector"));
|
|
90608
|
-
const reduxFormEntities =
|
|
90609
|
-
const reduxFormCellValidation =
|
|
90622
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
90623
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
90624
|
+
_reduxFormCellValidation
|
|
90625
|
+
);
|
|
90610
90626
|
let inner2;
|
|
90611
90627
|
if (hasSubmitted) {
|
|
90612
90628
|
inner2 = /* @__PURE__ */ React.createElement(
|
|
@@ -90908,8 +90924,10 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
90908
90924
|
};
|
|
90909
90925
|
}
|
|
90910
90926
|
});
|
|
90911
|
-
const reduxFormEntitiesArray =
|
|
90912
|
-
|
|
90927
|
+
const reduxFormEntitiesArray = useDeepEqualMemoIgnoreFns(
|
|
90928
|
+
_reduxFormEntitiesArray
|
|
90929
|
+
);
|
|
90930
|
+
const finishedFiles = useDeepEqualMemoIgnoreFns(_finishedFiles);
|
|
90913
90931
|
const [hasSubmittedOuter, setSubmittedOuter] = reactExports.useState();
|
|
90914
90932
|
const [steps, setSteps] = reactExports.useState(getInitialSteps(true));
|
|
90915
90933
|
const [focusedTab, setFocusedTab] = reactExports.useState(0);
|
|
@@ -99408,12 +99426,21 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
99408
99426
|
}, RndProps),
|
|
99409
99427
|
/* @__PURE__ */ React.createElement(
|
|
99410
99428
|
Dialog,
|
|
99411
|
-
__spreadValues({
|
|
99429
|
+
__spreadProps(__spreadValues({
|
|
99412
99430
|
enforceFocus: false,
|
|
99413
99431
|
hasBackdrop: false,
|
|
99414
99432
|
usePortal: false,
|
|
99415
99433
|
canEscapeKeyClose: true
|
|
99416
|
-
}, rest)
|
|
99434
|
+
}, rest), {
|
|
99435
|
+
title: /* @__PURE__ */ React.createElement("div", { style: { display: "flex", alignItems: "center", gap: 8 } }, /* @__PURE__ */ React.createElement(
|
|
99436
|
+
Icon,
|
|
99437
|
+
{
|
|
99438
|
+
size: "14",
|
|
99439
|
+
"data-tip": "I'm a resizable draggable dialog!",
|
|
99440
|
+
icon: "move"
|
|
99441
|
+
}
|
|
99442
|
+
), rest.title)
|
|
99443
|
+
})
|
|
99417
99444
|
)
|
|
99418
99445
|
)
|
|
99419
99446
|
);
|
|
@@ -102565,7 +102592,7 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
102565
102592
|
{ name: "regulatory", color: "#3F6C51" },
|
|
102566
102593
|
{ name: "SecStr", color: "#7B4B94" },
|
|
102567
102594
|
{ name: "Site", color: "#7D82B8" },
|
|
102568
|
-
{ name: "telomere", color: "DE9151" },
|
|
102595
|
+
{ name: "telomere", color: "#DE9151" },
|
|
102569
102596
|
{ name: "tmRNA", color: "#B7E3CC" },
|
|
102570
102597
|
{ name: "unsure", color: "#C4FFB2" },
|
|
102571
102598
|
{ name: "V_segment", color: "#D6F7A3" },
|
|
@@ -112704,7 +112731,10 @@ ${latestSubscriptionCallbackError.current.stack}
|
|
|
112704
112731
|
return nonDuplicatedOrfRanges;
|
|
112705
112732
|
}
|
|
112706
112733
|
__name(getOrfsFromSequence, "getOrfsFromSequence");
|
|
112707
|
-
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2) {
|
|
112734
|
+
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2, isProteinOrOligo) {
|
|
112735
|
+
if (isProteinOrOligo) {
|
|
112736
|
+
return [];
|
|
112737
|
+
}
|
|
112708
112738
|
const forwardOrfs = getOrfsFromSequence({
|
|
112709
112739
|
sequence: sequence2,
|
|
112710
112740
|
minimumOrfSize: minimumOrfSize2,
|
|
@@ -125438,7 +125468,7 @@ ${seq.sequence}
|
|
|
125438
125468
|
features: {},
|
|
125439
125469
|
primers: {},
|
|
125440
125470
|
parts: {},
|
|
125441
|
-
|
|
125471
|
+
searchLayers: []
|
|
125442
125472
|
}
|
|
125443
125473
|
);
|
|
125444
125474
|
const temporaryAnnotations$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -126234,6 +126264,10 @@ ${seq.sequence}
|
|
|
126234
126264
|
circularSelector,
|
|
126235
126265
|
minimumOrfSizeSelector,
|
|
126236
126266
|
(state2) => state2.useAdditionalOrfStartCodons,
|
|
126267
|
+
(state2) => {
|
|
126268
|
+
var _a2, _b2;
|
|
126269
|
+
return ((_a2 = state2.sequenceData) == null ? void 0 : _a2.isProtein) || ((_b2 = state2.sequenceData) == null ? void 0 : _b2.isOligo);
|
|
126270
|
+
},
|
|
126237
126271
|
findOrfsInPlasmid
|
|
126238
126272
|
);
|
|
126239
126273
|
function translationsRawSelector(sequenceData2) {
|
|
@@ -126241,9 +126275,10 @@ ${seq.sequence}
|
|
|
126241
126275
|
}
|
|
126242
126276
|
__name(translationsRawSelector, "translationsRawSelector");
|
|
126243
126277
|
const translationsRawSelector$1 = createSelector(sequenceDataSelector, translationsRawSelector);
|
|
126244
|
-
function searchLayersSelector(sequence2, isCircular, isOpen2, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed) {
|
|
126278
|
+
function searchLayersSelector(sequence2, isCircular, isOpen2, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed, tempSearchLayers = []) {
|
|
126279
|
+
const toReturn = [...tempSearchLayers];
|
|
126245
126280
|
if (!searchString || !isOpen2) {
|
|
126246
|
-
return
|
|
126281
|
+
return toReturn;
|
|
126247
126282
|
}
|
|
126248
126283
|
if (isProtein2) {
|
|
126249
126284
|
const searchingDna = dnaOrAA === "DNA";
|
|
@@ -126260,7 +126295,7 @@ ${seq.sequence}
|
|
|
126260
126295
|
).sort(({ start: start2 }, { start: start22 }) => {
|
|
126261
126296
|
return start2 - start22;
|
|
126262
126297
|
});
|
|
126263
|
-
|
|
126298
|
+
const r2 = searchingDna ? matches2 : matches2.map((_a2) => {
|
|
126264
126299
|
var _b2 = _a2, { start: start2, end: end2 } = _b2, rest = __objRest(_b2, ["start", "end"]);
|
|
126265
126300
|
return __spreadProps(__spreadValues({}, rest), {
|
|
126266
126301
|
isSearchLayer: true,
|
|
@@ -126268,6 +126303,7 @@ ${seq.sequence}
|
|
|
126268
126303
|
end: end2 * 3 + 2
|
|
126269
126304
|
});
|
|
126270
126305
|
});
|
|
126306
|
+
return [...toReturn, ...r2];
|
|
126271
126307
|
}
|
|
126272
126308
|
if (dnaOrAA === "DNA" && ambiguousOrLiteral === "LITERAL" && mismatchesAllowed > 0) {
|
|
126273
126309
|
const approxMatches = findApproxMatches(
|
|
@@ -126285,9 +126321,12 @@ ${seq.sequence}
|
|
|
126285
126321
|
isSearchLayer: true,
|
|
126286
126322
|
forward: true
|
|
126287
126323
|
})).sort((a2, b3) => a2.start - b3.start);
|
|
126288
|
-
return
|
|
126289
|
-
|
|
126290
|
-
|
|
126324
|
+
return [
|
|
126325
|
+
...toReturn,
|
|
126326
|
+
...matches2.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
126327
|
+
className: "veSearchLayer"
|
|
126328
|
+
}))
|
|
126329
|
+
];
|
|
126291
126330
|
}
|
|
126292
126331
|
const matches = findSequenceMatches(sequence2, searchString, {
|
|
126293
126332
|
isCircular,
|
|
@@ -126297,11 +126336,14 @@ ${seq.sequence}
|
|
|
126297
126336
|
}).sort(({ start: start2 }, { start: start22 }) => {
|
|
126298
126337
|
return start2 - start22;
|
|
126299
126338
|
});
|
|
126300
|
-
return
|
|
126301
|
-
|
|
126302
|
-
|
|
126303
|
-
|
|
126304
|
-
|
|
126339
|
+
return [
|
|
126340
|
+
...toReturn,
|
|
126341
|
+
...matches.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
126342
|
+
forward: !match.bottomStrand,
|
|
126343
|
+
className: "veSearchLayer " + (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
|
|
126344
|
+
isSearchLayer: true
|
|
126345
|
+
}))
|
|
126346
|
+
];
|
|
126305
126347
|
}
|
|
126306
126348
|
__name(searchLayersSelector, "searchLayersSelector");
|
|
126307
126349
|
const searchLayersSelector$1 = createSelector(
|
|
@@ -126314,6 +126356,10 @@ ${seq.sequence}
|
|
|
126314
126356
|
(state2) => state2.sequenceData.isProtein,
|
|
126315
126357
|
(state2) => state2.sequenceData.proteinSequence,
|
|
126316
126358
|
(state2) => state2.findTool && state2.findTool.mismatchesAllowed,
|
|
126359
|
+
(state2) => {
|
|
126360
|
+
var _a2;
|
|
126361
|
+
return (_a2 = state2.temporaryAnnotations) == null ? void 0 : _a2.searchLayers;
|
|
126362
|
+
},
|
|
126317
126363
|
searchLayersSelector
|
|
126318
126364
|
);
|
|
126319
126365
|
const translationSearchMatchesSelector = createSelector(
|
|
@@ -145029,7 +145075,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
|
|
|
145029
145075
|
input.click();
|
|
145030
145076
|
}
|
|
145031
145077
|
__name(showFileDialog, "showFileDialog");
|
|
145032
|
-
const version = "0.8.
|
|
145078
|
+
const version = "0.8.23";
|
|
145033
145079
|
const packageJson = {
|
|
145034
145080
|
version
|
|
145035
145081
|
};
|
|
@@ -170390,12 +170436,29 @@ ${seqDataToCopy}\r
|
|
|
170390
170436
|
additionalFooterEls
|
|
170391
170437
|
}) => {
|
|
170392
170438
|
const annotationTypeUpper = upperFirst(annotationType);
|
|
170393
|
-
const
|
|
170394
|
-
|
|
170395
|
-
|
|
170396
|
-
|
|
170439
|
+
const AnnotationProperties = /* @__PURE__ */ __name((props) => {
|
|
170440
|
+
var _a2, _b2, _c2;
|
|
170441
|
+
const {
|
|
170442
|
+
readOnly: readOnly2,
|
|
170443
|
+
annotations = {},
|
|
170444
|
+
annotationVisibility: annotationVisibility2,
|
|
170445
|
+
sequenceLength,
|
|
170446
|
+
selectionLayer: selectionLayer2,
|
|
170447
|
+
sequence: sequence2,
|
|
170448
|
+
isProtein: isProtein2,
|
|
170449
|
+
allPartTags,
|
|
170450
|
+
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
170451
|
+
selectedAnnotationId,
|
|
170452
|
+
PropertiesProps,
|
|
170453
|
+
dispatch,
|
|
170454
|
+
editorName
|
|
170455
|
+
} = props;
|
|
170456
|
+
const instanceRef = React.useRef({ props });
|
|
170457
|
+
instanceRef.current.props = props;
|
|
170458
|
+
const cmds = React.useMemo(() => getCommands(instanceRef.current), []);
|
|
170459
|
+
const onRowSelect = React.useCallback(
|
|
170460
|
+
([record]) => {
|
|
170397
170461
|
if (!record) return;
|
|
170398
|
-
const { dispatch, editorName } = this.props;
|
|
170399
170462
|
dispatch({
|
|
170400
170463
|
type: "SELECTION_LAYER_UPDATE",
|
|
170401
170464
|
payload: record,
|
|
@@ -170403,44 +170466,33 @@ ${seqDataToCopy}\r
|
|
|
170403
170466
|
editorName
|
|
170404
170467
|
}
|
|
170405
170468
|
});
|
|
170406
|
-
},
|
|
170407
|
-
|
|
170408
|
-
|
|
170409
|
-
|
|
170410
|
-
|
|
170411
|
-
|
|
170412
|
-
|
|
170413
|
-
annotations = {},
|
|
170414
|
-
annotationVisibility: annotationVisibility2,
|
|
170415
|
-
sequenceLength,
|
|
170416
|
-
selectionLayer: selectionLayer2,
|
|
170417
|
-
sequence: sequence2,
|
|
170418
|
-
isProtein: isProtein2,
|
|
170419
|
-
allPartTags,
|
|
170420
|
-
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
170421
|
-
selectedAnnotationId,
|
|
170422
|
-
PropertiesProps
|
|
170423
|
-
} = this.props;
|
|
170424
|
-
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
170425
|
-
const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
|
|
170426
|
-
const annotationsToUse = map$3(annotations, (annotation) => {
|
|
170469
|
+
},
|
|
170470
|
+
[dispatch, editorName]
|
|
170471
|
+
);
|
|
170472
|
+
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
170473
|
+
const deleteAnnotation = props[`delete${annotationTypeUpper}`];
|
|
170474
|
+
const annotationsToUse = React.useMemo(
|
|
170475
|
+
() => map$3(annotations, (annotation) => {
|
|
170427
170476
|
return __spreadProps(__spreadValues(__spreadValues({}, annotation), annotation.strand === void 0 && {
|
|
170428
170477
|
strand: annotation.forward ? 1 : -1
|
|
170429
170478
|
}), {
|
|
170430
170479
|
size: getRangeLength(annotation, sequenceLength)
|
|
170431
170480
|
});
|
|
170432
|
-
})
|
|
170433
|
-
|
|
170434
|
-
|
|
170435
|
-
|
|
170436
|
-
|
|
170437
|
-
|
|
170481
|
+
}),
|
|
170482
|
+
[annotations, sequenceLength]
|
|
170483
|
+
);
|
|
170484
|
+
const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
|
|
170485
|
+
const additionalColumns = ((_c2 = (_b2 = PropertiesProps == null ? void 0 : PropertiesProps.propertiesList) == null ? void 0 : _b2.find(
|
|
170486
|
+
(p2) => (p2.name || p2) === (pluralize(annotationType) || "")
|
|
170487
|
+
)) == null ? void 0 : _c2.additionalColumns) || [];
|
|
170488
|
+
const schema2 = useMemoDeepEqual(
|
|
170489
|
+
() => ({
|
|
170438
170490
|
fields: [
|
|
170439
170491
|
{
|
|
170440
170492
|
path: "name",
|
|
170441
170493
|
type: "string",
|
|
170442
170494
|
render: /* @__PURE__ */ __name((name2, ann) => {
|
|
170443
|
-
const checked = !
|
|
170495
|
+
const checked = !annotationVisibility2[`${annotationType}IndividualToHide`][ann.id];
|
|
170444
170496
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
170445
170497
|
Icon,
|
|
170446
170498
|
{
|
|
@@ -170449,9 +170501,9 @@ ${seqDataToCopy}\r
|
|
|
170449
170501
|
e2.stopPropagation();
|
|
170450
170502
|
const upperType = startCase(annotationType);
|
|
170451
170503
|
if (checked) {
|
|
170452
|
-
|
|
170504
|
+
props[`hide${upperType}Individual`]([ann.id]);
|
|
170453
170505
|
} else {
|
|
170454
|
-
|
|
170506
|
+
props[`show${upperType}Individual`]([ann.id]);
|
|
170455
170507
|
}
|
|
170456
170508
|
}, "onClick"),
|
|
170457
170509
|
style: {
|
|
@@ -170472,7 +170524,7 @@ ${seqDataToCopy}\r
|
|
|
170472
170524
|
render: /* @__PURE__ */ __name((bases, primer) => {
|
|
170473
170525
|
let bps = bases;
|
|
170474
170526
|
if (!bases) {
|
|
170475
|
-
bps = getSequenceWithinRange(primer,
|
|
170527
|
+
bps = getSequenceWithinRange(primer, sequence2);
|
|
170476
170528
|
if (!primer.forward) {
|
|
170477
170529
|
bps = getReverseComplementSequenceString(bps);
|
|
170478
170530
|
}
|
|
@@ -170497,8 +170549,8 @@ ${seqDataToCopy}\r
|
|
|
170497
170549
|
}, "render")
|
|
170498
170550
|
}
|
|
170499
170551
|
],
|
|
170500
|
-
sizeSchema(
|
|
170501
|
-
...withTags &&
|
|
170552
|
+
sizeSchema(isProtein2),
|
|
170553
|
+
...withTags && allPartTags ? [
|
|
170502
170554
|
{
|
|
170503
170555
|
path: "tags",
|
|
170504
170556
|
type: "string",
|
|
@@ -170522,138 +170574,144 @@ ${seqDataToCopy}\r
|
|
|
170522
170574
|
{ path: "strand", type: "number" },
|
|
170523
170575
|
...additionalColumns
|
|
170524
170576
|
]
|
|
170525
|
-
}
|
|
170526
|
-
|
|
170527
|
-
|
|
170528
|
-
|
|
170529
|
-
|
|
170530
|
-
|
|
170531
|
-
|
|
170532
|
-
|
|
170533
|
-
|
|
170534
|
-
|
|
170535
|
-
|
|
170536
|
-
|
|
170537
|
-
|
|
170538
|
-
|
|
170539
|
-
|
|
170540
|
-
|
|
170541
|
-
|
|
170542
|
-
position: "top",
|
|
170543
|
-
modifiers: popoverOverflowModifiers,
|
|
170544
|
-
content: "New"
|
|
170545
|
-
},
|
|
170546
|
-
/* @__PURE__ */ React.createElement(
|
|
170547
|
-
AnchorButton,
|
|
170548
|
-
{
|
|
170549
|
-
disabled: !sequenceLength,
|
|
170550
|
-
icon: "plus",
|
|
170551
|
-
className: "tgNewAnnBtn",
|
|
170552
|
-
onClick: /* @__PURE__ */ __name(() => {
|
|
170553
|
-
showAddOrEditAnnotationDialog({
|
|
170554
|
-
type: annotationType,
|
|
170555
|
-
annotation: pick$1(
|
|
170556
|
-
selectionLayer2,
|
|
170557
|
-
"start",
|
|
170558
|
-
"end",
|
|
170559
|
-
"forward"
|
|
170560
|
-
)
|
|
170561
|
-
});
|
|
170562
|
-
}, "onClick")
|
|
170563
|
-
}
|
|
170564
|
-
)
|
|
170565
|
-
), /* @__PURE__ */ React.createElement(
|
|
170566
|
-
Tooltip,
|
|
170577
|
+
}),
|
|
170578
|
+
[
|
|
170579
|
+
additionalColumns,
|
|
170580
|
+
allPartTags,
|
|
170581
|
+
annotationVisibility2,
|
|
170582
|
+
isProtein2,
|
|
170583
|
+
keyedPartTags,
|
|
170584
|
+
sequence2
|
|
170585
|
+
]
|
|
170586
|
+
);
|
|
170587
|
+
return /* @__PURE__ */ React.createElement(
|
|
170588
|
+
WrappedDT,
|
|
170589
|
+
{
|
|
170590
|
+
topLeftItems: getVisFilter(
|
|
170591
|
+
createCommandMenu(
|
|
170592
|
+
isFunction$1(visSubmenu) ? visSubmenu(props) : visSubmenu,
|
|
170593
|
+
cmds,
|
|
170567
170594
|
{
|
|
170568
|
-
|
|
170569
|
-
|
|
170570
|
-
|
|
170571
|
-
|
|
170572
|
-
|
|
170573
|
-
|
|
170574
|
-
|
|
170575
|
-
|
|
170576
|
-
|
|
170577
|
-
|
|
170578
|
-
|
|
170579
|
-
|
|
170580
|
-
|
|
170581
|
-
|
|
170582
|
-
icon: "edit"
|
|
170583
|
-
}
|
|
170584
|
-
)
|
|
170585
|
-
), ["feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
170586
|
-
CmdButton,
|
|
170595
|
+
useTicks: true
|
|
170596
|
+
}
|
|
170597
|
+
)
|
|
170598
|
+
),
|
|
170599
|
+
annotationPropertiesSelectedEntities,
|
|
170600
|
+
leftOfSearchBarItems: /* @__PURE__ */ React.createElement(React.Fragment, null, !readOnly2 && /* @__PURE__ */ React.createElement(ButtonGroup, { style: { marginTop: 3, marginRight: 4 } }, /* @__PURE__ */ React.createElement(
|
|
170601
|
+
Tooltip,
|
|
170602
|
+
{
|
|
170603
|
+
position: "top",
|
|
170604
|
+
modifiers: popoverOverflowModifiers,
|
|
170605
|
+
content: "New"
|
|
170606
|
+
},
|
|
170607
|
+
/* @__PURE__ */ React.createElement(
|
|
170608
|
+
AnchorButton,
|
|
170587
170609
|
{
|
|
170588
|
-
|
|
170589
|
-
icon: "
|
|
170590
|
-
|
|
170591
|
-
|
|
170610
|
+
disabled: !sequenceLength,
|
|
170611
|
+
icon: "plus",
|
|
170612
|
+
className: "tgNewAnnBtn",
|
|
170613
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
170614
|
+
showAddOrEditAnnotationDialog({
|
|
170615
|
+
type: annotationType,
|
|
170616
|
+
annotation: pick$1(
|
|
170617
|
+
selectionLayer2,
|
|
170618
|
+
"start",
|
|
170619
|
+
"end",
|
|
170620
|
+
"forward"
|
|
170621
|
+
)
|
|
170622
|
+
});
|
|
170623
|
+
}, "onClick")
|
|
170592
170624
|
}
|
|
170593
|
-
)
|
|
170594
|
-
|
|
170625
|
+
)
|
|
170626
|
+
), /* @__PURE__ */ React.createElement(
|
|
170627
|
+
Tooltip,
|
|
170628
|
+
{
|
|
170629
|
+
position: "top",
|
|
170630
|
+
modifiers: popoverOverflowModifiers,
|
|
170631
|
+
content: "Edit"
|
|
170632
|
+
},
|
|
170633
|
+
/* @__PURE__ */ React.createElement(
|
|
170634
|
+
AnchorButton,
|
|
170595
170635
|
{
|
|
170596
|
-
|
|
170597
|
-
|
|
170598
|
-
|
|
170599
|
-
|
|
170636
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
170637
|
+
showAddOrEditAnnotationDialog({
|
|
170638
|
+
type: annotationType,
|
|
170639
|
+
annotation: annotationPropertiesSelectedEntities[0]
|
|
170640
|
+
});
|
|
170641
|
+
}, "onClick"),
|
|
170642
|
+
disabled: annotationPropertiesSelectedEntities.length !== 1,
|
|
170643
|
+
icon: "edit"
|
|
170600
170644
|
}
|
|
170601
|
-
)
|
|
170602
|
-
|
|
170645
|
+
)
|
|
170646
|
+
), ["feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
170647
|
+
CmdButton,
|
|
170648
|
+
{
|
|
170649
|
+
text: "",
|
|
170650
|
+
icon: "cog",
|
|
170651
|
+
"data-tip": "Configure Feature Types",
|
|
170652
|
+
cmd: cmds.onConfigureFeatureTypesClick
|
|
170653
|
+
}
|
|
170654
|
+
), ["part", "primer", "feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
170655
|
+
CmdButton,
|
|
170656
|
+
{
|
|
170657
|
+
text: "",
|
|
170658
|
+
icon: removeDuplicatesIcon,
|
|
170659
|
+
"data-tip": "Remove Duplicates",
|
|
170660
|
+
cmd: cmds[`showRemoveDuplicatesDialog${annotationTypeUpper + "s"}`]
|
|
170661
|
+
}
|
|
170662
|
+
), additionalFooterEls && additionalFooterEls(props), /* @__PURE__ */ React.createElement(
|
|
170663
|
+
Tooltip,
|
|
170664
|
+
{
|
|
170665
|
+
position: "top",
|
|
170666
|
+
modifiers: popoverOverflowModifiers,
|
|
170667
|
+
content: "Delete"
|
|
170668
|
+
},
|
|
170669
|
+
/* @__PURE__ */ React.createElement(
|
|
170670
|
+
AnchorButton,
|
|
170603
170671
|
{
|
|
170604
|
-
|
|
170605
|
-
|
|
170606
|
-
|
|
170607
|
-
|
|
170608
|
-
|
|
170609
|
-
|
|
170610
|
-
|
|
170611
|
-
|
|
170612
|
-
|
|
170613
|
-
|
|
170614
|
-
|
|
170615
|
-
|
|
170616
|
-
|
|
170617
|
-
|
|
170618
|
-
|
|
170619
|
-
|
|
170620
|
-
|
|
170621
|
-
|
|
170622
|
-
|
|
170623
|
-
|
|
170624
|
-
|
|
170625
|
-
|
|
170626
|
-
|
|
170627
|
-
|
|
170628
|
-
|
|
170629
|
-
|
|
170630
|
-
|
|
170631
|
-
|
|
170632
|
-
|
|
170633
|
-
|
|
170634
|
-
|
|
170635
|
-
|
|
170636
|
-
|
|
170637
|
-
|
|
170638
|
-
|
|
170639
|
-
|
|
170640
|
-
|
|
170641
|
-
|
|
170642
|
-
|
|
170643
|
-
|
|
170644
|
-
|
|
170645
|
-
|
|
170646
|
-
|
|
170647
|
-
isInfinite: true,
|
|
170648
|
-
withDisplayOptions: true,
|
|
170649
|
-
schema: this.schema,
|
|
170650
|
-
entities: annotationsToUse
|
|
170651
|
-
}
|
|
170652
|
-
);
|
|
170653
|
-
}
|
|
170654
|
-
};
|
|
170655
|
-
__name(_AnnotationProperties, "AnnotationProperties");
|
|
170656
|
-
let AnnotationProperties = _AnnotationProperties;
|
|
170672
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
170673
|
+
deleteAnnotation(annotationPropertiesSelectedEntities);
|
|
170674
|
+
}, "onClick"),
|
|
170675
|
+
className: "tgDeleteAnnsBtn",
|
|
170676
|
+
intent: "danger",
|
|
170677
|
+
disabled: !annotationPropertiesSelectedEntities.length,
|
|
170678
|
+
icon: "trash"
|
|
170679
|
+
}
|
|
170680
|
+
)
|
|
170681
|
+
))),
|
|
170682
|
+
onDoubleClick: /* @__PURE__ */ __name((annotation) => {
|
|
170683
|
+
showAddOrEditAnnotationDialog({
|
|
170684
|
+
type: annotationType,
|
|
170685
|
+
annotation
|
|
170686
|
+
});
|
|
170687
|
+
}, "onDoubleClick"),
|
|
170688
|
+
withCheckboxes: true,
|
|
170689
|
+
showFeatureIndividual: props.showFeatureIndividual,
|
|
170690
|
+
hideFeatureIndividual: props.hideFeatureIndividual,
|
|
170691
|
+
showPartIndividual: props.showPartIndividual,
|
|
170692
|
+
hidePartIndividual: props.hidePartIndividual,
|
|
170693
|
+
showPrimerIndividual: props.showPrimerIndividual,
|
|
170694
|
+
hidePrimerIndividual: props.hidePrimerIndividual,
|
|
170695
|
+
annotationVisibility: annotationVisibility2,
|
|
170696
|
+
featureLengthsToHide: props.featureLengthsToHide,
|
|
170697
|
+
primerLengthsToHide: props.primerLengthsToHide,
|
|
170698
|
+
partLengthsToHide: props.partLengthsToHide,
|
|
170699
|
+
sequence: sequence2,
|
|
170700
|
+
noPadding: true,
|
|
170701
|
+
noFullscreenButton: true,
|
|
170702
|
+
onRowSelect,
|
|
170703
|
+
selectedIds: selectedAnnotationId,
|
|
170704
|
+
formName: "annotationProperties",
|
|
170705
|
+
noRouter: true,
|
|
170706
|
+
isProtein: isProtein2,
|
|
170707
|
+
compact: true,
|
|
170708
|
+
isInfinite: true,
|
|
170709
|
+
withDisplayOptions: true,
|
|
170710
|
+
schema: schema2,
|
|
170711
|
+
entities: annotationsToUse
|
|
170712
|
+
}
|
|
170713
|
+
);
|
|
170714
|
+
}, "AnnotationProperties");
|
|
170657
170715
|
return compose(
|
|
170658
170716
|
connectToEditor(
|
|
170659
170717
|
({
|