@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.cjs.js
CHANGED
|
@@ -17260,23 +17260,6 @@ const useTableEntities = /* @__PURE__ */ __name((tableFormName) => {
|
|
|
17260
17260
|
const { allOrderedEntities, selectedEntities } = reactRedux.useSelector(entitySelector);
|
|
17261
17261
|
return { selectTableEntities, allOrderedEntities, selectedEntities };
|
|
17262
17262
|
}, "useTableEntities");
|
|
17263
|
-
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
17264
|
-
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
17265
|
-
if (isFunction$2(val1) && isFunction$2(val2)) {
|
|
17266
|
-
return val1 === val2 || val1.toString() === val2.toString();
|
|
17267
|
-
}
|
|
17268
|
-
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
17269
|
-
return true;
|
|
17270
|
-
});
|
|
17271
|
-
return isEq;
|
|
17272
|
-
}, "isEqualIgnoreFunctions");
|
|
17273
|
-
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
17274
|
-
const ref2 = React.useRef();
|
|
17275
|
-
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
17276
|
-
ref2.current = value;
|
|
17277
|
-
}
|
|
17278
|
-
return ref2.current;
|
|
17279
|
-
}, "useDeepEqualMemo");
|
|
17280
17263
|
function rowClick(e, rowInfo, entities, {
|
|
17281
17264
|
reduxFormSelectedEntityIdMap,
|
|
17282
17265
|
isSingleSelect,
|
|
@@ -56570,6 +56553,33 @@ if (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "object") {
|
|
|
56570
56553
|
$mobx
|
|
56571
56554
|
});
|
|
56572
56555
|
}
|
|
56556
|
+
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
56557
|
+
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
56558
|
+
if (isFunction$2(val1) && isFunction$2(val2)) {
|
|
56559
|
+
return val1 === val2 || val1.toString() === val2.toString();
|
|
56560
|
+
}
|
|
56561
|
+
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
56562
|
+
return true;
|
|
56563
|
+
});
|
|
56564
|
+
return isEq;
|
|
56565
|
+
}, "isEqualIgnoreFunctions");
|
|
56566
|
+
const useDeepEqualMemoIgnoreFns = /* @__PURE__ */ __name((value) => {
|
|
56567
|
+
const ref2 = React.useRef();
|
|
56568
|
+
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
56569
|
+
ref2.current = value;
|
|
56570
|
+
}
|
|
56571
|
+
return ref2.current;
|
|
56572
|
+
}, "useDeepEqualMemoIgnoreFns");
|
|
56573
|
+
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
56574
|
+
const ref2 = React.useRef();
|
|
56575
|
+
if (!isEqual$3(value, ref2.current)) {
|
|
56576
|
+
ref2.current = value;
|
|
56577
|
+
}
|
|
56578
|
+
return ref2.current;
|
|
56579
|
+
}, "useDeepEqualMemo");
|
|
56580
|
+
const useMemoDeepEqual = /* @__PURE__ */ __name((value, depsArray) => {
|
|
56581
|
+
return React.useMemo(value, useDeepEqualMemo(depsArray));
|
|
56582
|
+
}, "useMemoDeepEqual");
|
|
56573
56583
|
T();
|
|
56574
56584
|
const IS_LINUX = window.navigator.platform.toLowerCase().search("linux") > -1;
|
|
56575
56585
|
const itemSizeEstimators = {
|
|
@@ -56656,9 +56666,11 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56656
56666
|
"reduxFormSelectedEntityIdMap"
|
|
56657
56667
|
);
|
|
56658
56668
|
}, "dtFormParamsSelector"));
|
|
56659
|
-
const reduxFormCellValidation =
|
|
56660
|
-
|
|
56661
|
-
|
|
56669
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
56670
|
+
_reduxFormCellValidation
|
|
56671
|
+
);
|
|
56672
|
+
const reduxFormQueryParams = useDeepEqualMemoIgnoreFns(_reduxFormQueryParams);
|
|
56673
|
+
const reduxFormSelectedEntityIdMap = useDeepEqualMemoIgnoreFns(
|
|
56662
56674
|
_reduxFormSelectedEntityIdMap
|
|
56663
56675
|
);
|
|
56664
56676
|
let props = ownProps;
|
|
@@ -56733,7 +56745,7 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56733
56745
|
const tmp = (urlConnected ? getCurrentParamsFromUrl(history.location) : reduxFormQueryParams) || {};
|
|
56734
56746
|
return tmp;
|
|
56735
56747
|
}, [history, reduxFormQueryParams, urlConnected]);
|
|
56736
|
-
const currentParams =
|
|
56748
|
+
const currentParams = useDeepEqualMemoIgnoreFns(_currentParams);
|
|
56737
56749
|
const tableParams = React.useMemo(() => {
|
|
56738
56750
|
if (!isTableParamsConnected) {
|
|
56739
56751
|
const setNewParams2 = /* @__PURE__ */ __name((newParams) => {
|
|
@@ -56914,8 +56926,8 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56914
56926
|
() => ((reduxFormEntities == null ? void 0 : reduxFormEntities.length) ? reduxFormEntities : _origEntities) || [],
|
|
56915
56927
|
[_origEntities, reduxFormEntities]
|
|
56916
56928
|
);
|
|
56917
|
-
const entities =
|
|
56918
|
-
const entitiesAcrossPages =
|
|
56929
|
+
const entities = useDeepEqualMemoIgnoreFns(_entities);
|
|
56930
|
+
const entitiesAcrossPages = useDeepEqualMemoIgnoreFns(_entitiesAcrossPages);
|
|
56919
56931
|
React.useEffect(() => {
|
|
56920
56932
|
change("allOrderedEntities", entitiesAcrossPages);
|
|
56921
56933
|
if (entities.length === 0 || isEmpty$1(reduxFormSelectedEntityIdMap)) return;
|
|
@@ -61479,7 +61491,7 @@ const SimpleInsertDataDialog = compose(
|
|
|
61479
61491
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormEntities;
|
|
61480
61492
|
}
|
|
61481
61493
|
);
|
|
61482
|
-
const reduxFormEntities =
|
|
61494
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
61483
61495
|
React.useEffect(() => {
|
|
61484
61496
|
return () => dispatch(reduxForm.destroy(dataTableForm));
|
|
61485
61497
|
}, [dataTableForm, dispatch]);
|
|
@@ -61489,7 +61501,9 @@ const SimpleInsertDataDialog = compose(
|
|
|
61489
61501
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormCellValidation;
|
|
61490
61502
|
}, "_reduxFormCellValidationSelector")
|
|
61491
61503
|
);
|
|
61492
|
-
const reduxFormCellValidation =
|
|
61504
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
61505
|
+
_reduxFormCellValidation
|
|
61506
|
+
);
|
|
61493
61507
|
const { entsToUse, validationToUse } = React.useMemo(
|
|
61494
61508
|
() => removeCleanRows(reduxFormEntities, reduxFormCellValidation),
|
|
61495
61509
|
[reduxFormEntities, reduxFormCellValidation]
|
|
@@ -61574,8 +61588,10 @@ const UploadCsvWizardDialogInner = reduxForm.reduxForm()(({
|
|
|
61574
61588
|
"reduxFormCellValidation"
|
|
61575
61589
|
);
|
|
61576
61590
|
}, "dtFormNameSelector"));
|
|
61577
|
-
const reduxFormEntities =
|
|
61578
|
-
const reduxFormCellValidation =
|
|
61591
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
61592
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
61593
|
+
_reduxFormCellValidation
|
|
61594
|
+
);
|
|
61579
61595
|
let inner2;
|
|
61580
61596
|
if (hasSubmitted) {
|
|
61581
61597
|
inner2 = /* @__PURE__ */ React.createElement(
|
|
@@ -61877,8 +61893,10 @@ const UploadCsvWizardDialog = compose(
|
|
|
61877
61893
|
};
|
|
61878
61894
|
}
|
|
61879
61895
|
});
|
|
61880
|
-
const reduxFormEntitiesArray =
|
|
61881
|
-
|
|
61896
|
+
const reduxFormEntitiesArray = useDeepEqualMemoIgnoreFns(
|
|
61897
|
+
_reduxFormEntitiesArray
|
|
61898
|
+
);
|
|
61899
|
+
const finishedFiles = useDeepEqualMemoIgnoreFns(_finishedFiles);
|
|
61882
61900
|
const [hasSubmittedOuter, setSubmittedOuter] = React.useState();
|
|
61883
61901
|
const [steps, setSteps] = React.useState(getInitialSteps(true));
|
|
61884
61902
|
const [focusedTab, setFocusedTab] = React.useState(0);
|
|
@@ -70383,12 +70401,21 @@ const _ResizableDraggableDialog = class _ResizableDraggableDialog extends React.
|
|
|
70383
70401
|
}, RndProps),
|
|
70384
70402
|
/* @__PURE__ */ React.createElement(
|
|
70385
70403
|
core.Dialog,
|
|
70386
|
-
__spreadValues({
|
|
70404
|
+
__spreadProps(__spreadValues({
|
|
70387
70405
|
enforceFocus: false,
|
|
70388
70406
|
hasBackdrop: false,
|
|
70389
70407
|
usePortal: false,
|
|
70390
70408
|
canEscapeKeyClose: true
|
|
70391
|
-
}, rest)
|
|
70409
|
+
}, rest), {
|
|
70410
|
+
title: /* @__PURE__ */ React.createElement("div", { style: { display: "flex", alignItems: "center", gap: 8 } }, /* @__PURE__ */ React.createElement(
|
|
70411
|
+
core.Icon,
|
|
70412
|
+
{
|
|
70413
|
+
size: "14",
|
|
70414
|
+
"data-tip": "I'm a resizable draggable dialog!",
|
|
70415
|
+
icon: "move"
|
|
70416
|
+
}
|
|
70417
|
+
), rest.title)
|
|
70418
|
+
})
|
|
70392
70419
|
)
|
|
70393
70420
|
)
|
|
70394
70421
|
);
|
|
@@ -73662,7 +73689,7 @@ const genbankFeatureTypes = [
|
|
|
73662
73689
|
{ name: "regulatory", color: "#3F6C51" },
|
|
73663
73690
|
{ name: "SecStr", color: "#7B4B94" },
|
|
73664
73691
|
{ name: "Site", color: "#7D82B8" },
|
|
73665
|
-
{ name: "telomere", color: "DE9151" },
|
|
73692
|
+
{ name: "telomere", color: "#DE9151" },
|
|
73666
73693
|
{ name: "tmRNA", color: "#B7E3CC" },
|
|
73667
73694
|
{ name: "unsure", color: "#C4FFB2" },
|
|
73668
73695
|
{ name: "V_segment", color: "#D6F7A3" },
|
|
@@ -83801,7 +83828,10 @@ function getOrfsFromSequence(options) {
|
|
|
83801
83828
|
return nonDuplicatedOrfRanges;
|
|
83802
83829
|
}
|
|
83803
83830
|
__name(getOrfsFromSequence, "getOrfsFromSequence");
|
|
83804
|
-
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2) {
|
|
83831
|
+
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2, isProteinOrOligo) {
|
|
83832
|
+
if (isProteinOrOligo) {
|
|
83833
|
+
return [];
|
|
83834
|
+
}
|
|
83805
83835
|
const forwardOrfs = getOrfsFromSequence({
|
|
83806
83836
|
sequence: sequence2,
|
|
83807
83837
|
minimumOrfSize: minimumOrfSize2,
|
|
@@ -97290,7 +97320,7 @@ const temporaryAnnotations = createMergedDefaultStateReducer(
|
|
|
97290
97320
|
features: {},
|
|
97291
97321
|
primers: {},
|
|
97292
97322
|
parts: {},
|
|
97293
|
-
|
|
97323
|
+
searchLayers: []
|
|
97294
97324
|
}
|
|
97295
97325
|
);
|
|
97296
97326
|
const temporaryAnnotations$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -98086,6 +98116,10 @@ const orfsSelector = createSelector(
|
|
|
98086
98116
|
circularSelector,
|
|
98087
98117
|
minimumOrfSizeSelector,
|
|
98088
98118
|
(state2) => state2.useAdditionalOrfStartCodons,
|
|
98119
|
+
(state2) => {
|
|
98120
|
+
var _a2, _b2;
|
|
98121
|
+
return ((_a2 = state2.sequenceData) == null ? void 0 : _a2.isProtein) || ((_b2 = state2.sequenceData) == null ? void 0 : _b2.isOligo);
|
|
98122
|
+
},
|
|
98089
98123
|
findOrfsInPlasmid
|
|
98090
98124
|
);
|
|
98091
98125
|
function translationsRawSelector(sequenceData2) {
|
|
@@ -98093,9 +98127,10 @@ function translationsRawSelector(sequenceData2) {
|
|
|
98093
98127
|
}
|
|
98094
98128
|
__name(translationsRawSelector, "translationsRawSelector");
|
|
98095
98129
|
const translationsRawSelector$1 = createSelector(sequenceDataSelector, translationsRawSelector);
|
|
98096
|
-
function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed) {
|
|
98130
|
+
function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed, tempSearchLayers = []) {
|
|
98131
|
+
const toReturn = [...tempSearchLayers];
|
|
98097
98132
|
if (!searchString || !isOpen) {
|
|
98098
|
-
return
|
|
98133
|
+
return toReturn;
|
|
98099
98134
|
}
|
|
98100
98135
|
if (isProtein2) {
|
|
98101
98136
|
const searchingDna = dnaOrAA === "DNA";
|
|
@@ -98112,7 +98147,7 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98112
98147
|
).sort(({ start: start2 }, { start: start22 }) => {
|
|
98113
98148
|
return start2 - start22;
|
|
98114
98149
|
});
|
|
98115
|
-
|
|
98150
|
+
const r2 = searchingDna ? matches2 : matches2.map((_a2) => {
|
|
98116
98151
|
var _b2 = _a2, { start: start2, end: end2 } = _b2, rest = __objRest(_b2, ["start", "end"]);
|
|
98117
98152
|
return __spreadProps(__spreadValues({}, rest), {
|
|
98118
98153
|
isSearchLayer: true,
|
|
@@ -98120,6 +98155,7 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98120
98155
|
end: end2 * 3 + 2
|
|
98121
98156
|
});
|
|
98122
98157
|
});
|
|
98158
|
+
return [...toReturn, ...r2];
|
|
98123
98159
|
}
|
|
98124
98160
|
if (dnaOrAA === "DNA" && ambiguousOrLiteral === "LITERAL" && mismatchesAllowed > 0) {
|
|
98125
98161
|
const approxMatches = findApproxMatches(
|
|
@@ -98137,9 +98173,12 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98137
98173
|
isSearchLayer: true,
|
|
98138
98174
|
forward: true
|
|
98139
98175
|
})).sort((a2, b3) => a2.start - b3.start);
|
|
98140
|
-
return
|
|
98141
|
-
|
|
98142
|
-
|
|
98176
|
+
return [
|
|
98177
|
+
...toReturn,
|
|
98178
|
+
...matches2.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
98179
|
+
className: "veSearchLayer"
|
|
98180
|
+
}))
|
|
98181
|
+
];
|
|
98143
98182
|
}
|
|
98144
98183
|
const matches = findSequenceMatches(sequence2, searchString, {
|
|
98145
98184
|
isCircular,
|
|
@@ -98149,11 +98188,14 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98149
98188
|
}).sort(({ start: start2 }, { start: start22 }) => {
|
|
98150
98189
|
return start2 - start22;
|
|
98151
98190
|
});
|
|
98152
|
-
return
|
|
98153
|
-
|
|
98154
|
-
|
|
98155
|
-
|
|
98156
|
-
|
|
98191
|
+
return [
|
|
98192
|
+
...toReturn,
|
|
98193
|
+
...matches.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
98194
|
+
forward: !match.bottomStrand,
|
|
98195
|
+
className: "veSearchLayer " + (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
|
|
98196
|
+
isSearchLayer: true
|
|
98197
|
+
}))
|
|
98198
|
+
];
|
|
98157
98199
|
}
|
|
98158
98200
|
__name(searchLayersSelector, "searchLayersSelector");
|
|
98159
98201
|
const searchLayersSelector$1 = createSelector(
|
|
@@ -98166,6 +98208,10 @@ const searchLayersSelector$1 = createSelector(
|
|
|
98166
98208
|
(state2) => state2.sequenceData.isProtein,
|
|
98167
98209
|
(state2) => state2.sequenceData.proteinSequence,
|
|
98168
98210
|
(state2) => state2.findTool && state2.findTool.mismatchesAllowed,
|
|
98211
|
+
(state2) => {
|
|
98212
|
+
var _a2;
|
|
98213
|
+
return (_a2 = state2.temporaryAnnotations) == null ? void 0 : _a2.searchLayers;
|
|
98214
|
+
},
|
|
98169
98215
|
searchLayersSelector
|
|
98170
98216
|
);
|
|
98171
98217
|
const translationSearchMatchesSelector = createSelector(
|
|
@@ -116931,7 +116977,7 @@ function showFileDialog({ multiple = false, onSelect }) {
|
|
|
116931
116977
|
input.click();
|
|
116932
116978
|
}
|
|
116933
116979
|
__name(showFileDialog, "showFileDialog");
|
|
116934
|
-
const version = "0.8.
|
|
116980
|
+
const version = "0.8.23";
|
|
116935
116981
|
const packageJson = {
|
|
116936
116982
|
version
|
|
116937
116983
|
};
|
|
@@ -143894,12 +143940,29 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143894
143940
|
additionalFooterEls
|
|
143895
143941
|
}) => {
|
|
143896
143942
|
const annotationTypeUpper = upperFirst(annotationType);
|
|
143897
|
-
const
|
|
143898
|
-
|
|
143899
|
-
|
|
143900
|
-
|
|
143943
|
+
const AnnotationProperties = /* @__PURE__ */ __name((props) => {
|
|
143944
|
+
var _a2, _b2, _c;
|
|
143945
|
+
const {
|
|
143946
|
+
readOnly: readOnly2,
|
|
143947
|
+
annotations = {},
|
|
143948
|
+
annotationVisibility: annotationVisibility2,
|
|
143949
|
+
sequenceLength,
|
|
143950
|
+
selectionLayer: selectionLayer2,
|
|
143951
|
+
sequence: sequence2,
|
|
143952
|
+
isProtein: isProtein2,
|
|
143953
|
+
allPartTags,
|
|
143954
|
+
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
143955
|
+
selectedAnnotationId,
|
|
143956
|
+
PropertiesProps,
|
|
143957
|
+
dispatch,
|
|
143958
|
+
editorName
|
|
143959
|
+
} = props;
|
|
143960
|
+
const instanceRef = React.useRef({ props });
|
|
143961
|
+
instanceRef.current.props = props;
|
|
143962
|
+
const cmds = React.useMemo(() => getCommands(instanceRef.current), []);
|
|
143963
|
+
const onRowSelect = React.useCallback(
|
|
143964
|
+
([record]) => {
|
|
143901
143965
|
if (!record) return;
|
|
143902
|
-
const { dispatch, editorName } = this.props;
|
|
143903
143966
|
dispatch({
|
|
143904
143967
|
type: "SELECTION_LAYER_UPDATE",
|
|
143905
143968
|
payload: record,
|
|
@@ -143907,44 +143970,33 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143907
143970
|
editorName
|
|
143908
143971
|
}
|
|
143909
143972
|
});
|
|
143910
|
-
},
|
|
143911
|
-
|
|
143912
|
-
|
|
143913
|
-
|
|
143914
|
-
|
|
143915
|
-
|
|
143916
|
-
|
|
143917
|
-
annotations = {},
|
|
143918
|
-
annotationVisibility: annotationVisibility2,
|
|
143919
|
-
sequenceLength,
|
|
143920
|
-
selectionLayer: selectionLayer2,
|
|
143921
|
-
sequence: sequence2,
|
|
143922
|
-
isProtein: isProtein2,
|
|
143923
|
-
allPartTags,
|
|
143924
|
-
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
143925
|
-
selectedAnnotationId,
|
|
143926
|
-
PropertiesProps
|
|
143927
|
-
} = this.props;
|
|
143928
|
-
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
143929
|
-
const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
|
|
143930
|
-
const annotationsToUse = map$3(annotations, (annotation) => {
|
|
143973
|
+
},
|
|
143974
|
+
[dispatch, editorName]
|
|
143975
|
+
);
|
|
143976
|
+
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
143977
|
+
const deleteAnnotation = props[`delete${annotationTypeUpper}`];
|
|
143978
|
+
const annotationsToUse = React.useMemo(
|
|
143979
|
+
() => map$3(annotations, (annotation) => {
|
|
143931
143980
|
return __spreadProps(__spreadValues(__spreadValues({}, annotation), annotation.strand === void 0 && {
|
|
143932
143981
|
strand: annotation.forward ? 1 : -1
|
|
143933
143982
|
}), {
|
|
143934
143983
|
size: getRangeLength(annotation, sequenceLength)
|
|
143935
143984
|
});
|
|
143936
|
-
})
|
|
143937
|
-
|
|
143938
|
-
|
|
143939
|
-
|
|
143940
|
-
|
|
143941
|
-
|
|
143985
|
+
}),
|
|
143986
|
+
[annotations, sequenceLength]
|
|
143987
|
+
);
|
|
143988
|
+
const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
|
|
143989
|
+
const additionalColumns = ((_c = (_b2 = PropertiesProps == null ? void 0 : PropertiesProps.propertiesList) == null ? void 0 : _b2.find(
|
|
143990
|
+
(p2) => (p2.name || p2) === (pluralize(annotationType) || "")
|
|
143991
|
+
)) == null ? void 0 : _c.additionalColumns) || [];
|
|
143992
|
+
const schema2 = useMemoDeepEqual(
|
|
143993
|
+
() => ({
|
|
143942
143994
|
fields: [
|
|
143943
143995
|
{
|
|
143944
143996
|
path: "name",
|
|
143945
143997
|
type: "string",
|
|
143946
143998
|
render: /* @__PURE__ */ __name((name2, ann) => {
|
|
143947
|
-
const checked = !
|
|
143999
|
+
const checked = !annotationVisibility2[`${annotationType}IndividualToHide`][ann.id];
|
|
143948
144000
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
143949
144001
|
core.Icon,
|
|
143950
144002
|
{
|
|
@@ -143953,9 +144005,9 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143953
144005
|
e.stopPropagation();
|
|
143954
144006
|
const upperType = startCase(annotationType);
|
|
143955
144007
|
if (checked) {
|
|
143956
|
-
|
|
144008
|
+
props[`hide${upperType}Individual`]([ann.id]);
|
|
143957
144009
|
} else {
|
|
143958
|
-
|
|
144010
|
+
props[`show${upperType}Individual`]([ann.id]);
|
|
143959
144011
|
}
|
|
143960
144012
|
}, "onClick"),
|
|
143961
144013
|
style: {
|
|
@@ -143976,7 +144028,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143976
144028
|
render: /* @__PURE__ */ __name((bases, primer) => {
|
|
143977
144029
|
let bps = bases;
|
|
143978
144030
|
if (!bases) {
|
|
143979
|
-
bps = getSequenceWithinRange(primer,
|
|
144031
|
+
bps = getSequenceWithinRange(primer, sequence2);
|
|
143980
144032
|
if (!primer.forward) {
|
|
143981
144033
|
bps = getReverseComplementSequenceString(bps);
|
|
143982
144034
|
}
|
|
@@ -144001,8 +144053,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
144001
144053
|
}, "render")
|
|
144002
144054
|
}
|
|
144003
144055
|
],
|
|
144004
|
-
sizeSchema(
|
|
144005
|
-
...withTags &&
|
|
144056
|
+
sizeSchema(isProtein2),
|
|
144057
|
+
...withTags && allPartTags ? [
|
|
144006
144058
|
{
|
|
144007
144059
|
path: "tags",
|
|
144008
144060
|
type: "string",
|
|
@@ -144026,138 +144078,144 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
144026
144078
|
{ path: "strand", type: "number" },
|
|
144027
144079
|
...additionalColumns
|
|
144028
144080
|
]
|
|
144029
|
-
}
|
|
144030
|
-
|
|
144031
|
-
|
|
144032
|
-
|
|
144033
|
-
|
|
144034
|
-
|
|
144035
|
-
|
|
144036
|
-
|
|
144037
|
-
|
|
144038
|
-
|
|
144039
|
-
|
|
144040
|
-
|
|
144041
|
-
|
|
144042
|
-
|
|
144043
|
-
|
|
144044
|
-
|
|
144045
|
-
|
|
144046
|
-
position: "top",
|
|
144047
|
-
modifiers: popoverOverflowModifiers,
|
|
144048
|
-
content: "New"
|
|
144049
|
-
},
|
|
144050
|
-
/* @__PURE__ */ React.createElement(
|
|
144051
|
-
core.AnchorButton,
|
|
144052
|
-
{
|
|
144053
|
-
disabled: !sequenceLength,
|
|
144054
|
-
icon: "plus",
|
|
144055
|
-
className: "tgNewAnnBtn",
|
|
144056
|
-
onClick: /* @__PURE__ */ __name(() => {
|
|
144057
|
-
showAddOrEditAnnotationDialog({
|
|
144058
|
-
type: annotationType,
|
|
144059
|
-
annotation: pick$1(
|
|
144060
|
-
selectionLayer2,
|
|
144061
|
-
"start",
|
|
144062
|
-
"end",
|
|
144063
|
-
"forward"
|
|
144064
|
-
)
|
|
144065
|
-
});
|
|
144066
|
-
}, "onClick")
|
|
144067
|
-
}
|
|
144068
|
-
)
|
|
144069
|
-
), /* @__PURE__ */ React.createElement(
|
|
144070
|
-
core.Tooltip,
|
|
144081
|
+
}),
|
|
144082
|
+
[
|
|
144083
|
+
additionalColumns,
|
|
144084
|
+
allPartTags,
|
|
144085
|
+
annotationVisibility2,
|
|
144086
|
+
isProtein2,
|
|
144087
|
+
keyedPartTags,
|
|
144088
|
+
sequence2
|
|
144089
|
+
]
|
|
144090
|
+
);
|
|
144091
|
+
return /* @__PURE__ */ React.createElement(
|
|
144092
|
+
WrappedDT,
|
|
144093
|
+
{
|
|
144094
|
+
topLeftItems: getVisFilter(
|
|
144095
|
+
createCommandMenu(
|
|
144096
|
+
isFunction$2(visSubmenu) ? visSubmenu(props) : visSubmenu,
|
|
144097
|
+
cmds,
|
|
144071
144098
|
{
|
|
144072
|
-
|
|
144073
|
-
|
|
144074
|
-
|
|
144075
|
-
|
|
144076
|
-
|
|
144077
|
-
|
|
144078
|
-
|
|
144079
|
-
|
|
144080
|
-
|
|
144081
|
-
|
|
144082
|
-
|
|
144083
|
-
|
|
144084
|
-
|
|
144085
|
-
|
|
144086
|
-
icon: "edit"
|
|
144087
|
-
}
|
|
144088
|
-
)
|
|
144089
|
-
), ["feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
144090
|
-
CmdButton,
|
|
144099
|
+
useTicks: true
|
|
144100
|
+
}
|
|
144101
|
+
)
|
|
144102
|
+
),
|
|
144103
|
+
annotationPropertiesSelectedEntities,
|
|
144104
|
+
leftOfSearchBarItems: /* @__PURE__ */ React.createElement(React.Fragment, null, !readOnly2 && /* @__PURE__ */ React.createElement(core.ButtonGroup, { style: { marginTop: 3, marginRight: 4 } }, /* @__PURE__ */ React.createElement(
|
|
144105
|
+
core.Tooltip,
|
|
144106
|
+
{
|
|
144107
|
+
position: "top",
|
|
144108
|
+
modifiers: popoverOverflowModifiers,
|
|
144109
|
+
content: "New"
|
|
144110
|
+
},
|
|
144111
|
+
/* @__PURE__ */ React.createElement(
|
|
144112
|
+
core.AnchorButton,
|
|
144091
144113
|
{
|
|
144092
|
-
|
|
144093
|
-
icon: "
|
|
144094
|
-
|
|
144095
|
-
|
|
144114
|
+
disabled: !sequenceLength,
|
|
144115
|
+
icon: "plus",
|
|
144116
|
+
className: "tgNewAnnBtn",
|
|
144117
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144118
|
+
showAddOrEditAnnotationDialog({
|
|
144119
|
+
type: annotationType,
|
|
144120
|
+
annotation: pick$1(
|
|
144121
|
+
selectionLayer2,
|
|
144122
|
+
"start",
|
|
144123
|
+
"end",
|
|
144124
|
+
"forward"
|
|
144125
|
+
)
|
|
144126
|
+
});
|
|
144127
|
+
}, "onClick")
|
|
144096
144128
|
}
|
|
144097
|
-
)
|
|
144098
|
-
|
|
144129
|
+
)
|
|
144130
|
+
), /* @__PURE__ */ React.createElement(
|
|
144131
|
+
core.Tooltip,
|
|
144132
|
+
{
|
|
144133
|
+
position: "top",
|
|
144134
|
+
modifiers: popoverOverflowModifiers,
|
|
144135
|
+
content: "Edit"
|
|
144136
|
+
},
|
|
144137
|
+
/* @__PURE__ */ React.createElement(
|
|
144138
|
+
core.AnchorButton,
|
|
144099
144139
|
{
|
|
144100
|
-
|
|
144101
|
-
|
|
144102
|
-
|
|
144103
|
-
|
|
144140
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144141
|
+
showAddOrEditAnnotationDialog({
|
|
144142
|
+
type: annotationType,
|
|
144143
|
+
annotation: annotationPropertiesSelectedEntities[0]
|
|
144144
|
+
});
|
|
144145
|
+
}, "onClick"),
|
|
144146
|
+
disabled: annotationPropertiesSelectedEntities.length !== 1,
|
|
144147
|
+
icon: "edit"
|
|
144104
144148
|
}
|
|
144105
|
-
)
|
|
144106
|
-
|
|
144149
|
+
)
|
|
144150
|
+
), ["feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
144151
|
+
CmdButton,
|
|
144152
|
+
{
|
|
144153
|
+
text: "",
|
|
144154
|
+
icon: "cog",
|
|
144155
|
+
"data-tip": "Configure Feature Types",
|
|
144156
|
+
cmd: cmds.onConfigureFeatureTypesClick
|
|
144157
|
+
}
|
|
144158
|
+
), ["part", "primer", "feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
|
|
144159
|
+
CmdButton,
|
|
144160
|
+
{
|
|
144161
|
+
text: "",
|
|
144162
|
+
icon: removeDuplicatesIcon,
|
|
144163
|
+
"data-tip": "Remove Duplicates",
|
|
144164
|
+
cmd: cmds[`showRemoveDuplicatesDialog${annotationTypeUpper + "s"}`]
|
|
144165
|
+
}
|
|
144166
|
+
), additionalFooterEls && additionalFooterEls(props), /* @__PURE__ */ React.createElement(
|
|
144167
|
+
core.Tooltip,
|
|
144168
|
+
{
|
|
144169
|
+
position: "top",
|
|
144170
|
+
modifiers: popoverOverflowModifiers,
|
|
144171
|
+
content: "Delete"
|
|
144172
|
+
},
|
|
144173
|
+
/* @__PURE__ */ React.createElement(
|
|
144174
|
+
core.AnchorButton,
|
|
144107
144175
|
{
|
|
144108
|
-
|
|
144109
|
-
|
|
144110
|
-
|
|
144111
|
-
|
|
144112
|
-
|
|
144113
|
-
|
|
144114
|
-
|
|
144115
|
-
|
|
144116
|
-
|
|
144117
|
-
|
|
144118
|
-
|
|
144119
|
-
|
|
144120
|
-
|
|
144121
|
-
|
|
144122
|
-
|
|
144123
|
-
|
|
144124
|
-
|
|
144125
|
-
|
|
144126
|
-
|
|
144127
|
-
|
|
144128
|
-
|
|
144129
|
-
|
|
144130
|
-
|
|
144131
|
-
|
|
144132
|
-
|
|
144133
|
-
|
|
144134
|
-
|
|
144135
|
-
|
|
144136
|
-
|
|
144137
|
-
|
|
144138
|
-
|
|
144139
|
-
|
|
144140
|
-
|
|
144141
|
-
|
|
144142
|
-
|
|
144143
|
-
|
|
144144
|
-
|
|
144145
|
-
|
|
144146
|
-
|
|
144147
|
-
|
|
144148
|
-
|
|
144149
|
-
|
|
144150
|
-
|
|
144151
|
-
isInfinite: true,
|
|
144152
|
-
withDisplayOptions: true,
|
|
144153
|
-
schema: this.schema,
|
|
144154
|
-
entities: annotationsToUse
|
|
144155
|
-
}
|
|
144156
|
-
);
|
|
144157
|
-
}
|
|
144158
|
-
};
|
|
144159
|
-
__name(_AnnotationProperties, "AnnotationProperties");
|
|
144160
|
-
let AnnotationProperties = _AnnotationProperties;
|
|
144176
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144177
|
+
deleteAnnotation(annotationPropertiesSelectedEntities);
|
|
144178
|
+
}, "onClick"),
|
|
144179
|
+
className: "tgDeleteAnnsBtn",
|
|
144180
|
+
intent: "danger",
|
|
144181
|
+
disabled: !annotationPropertiesSelectedEntities.length,
|
|
144182
|
+
icon: "trash"
|
|
144183
|
+
}
|
|
144184
|
+
)
|
|
144185
|
+
))),
|
|
144186
|
+
onDoubleClick: /* @__PURE__ */ __name((annotation) => {
|
|
144187
|
+
showAddOrEditAnnotationDialog({
|
|
144188
|
+
type: annotationType,
|
|
144189
|
+
annotation
|
|
144190
|
+
});
|
|
144191
|
+
}, "onDoubleClick"),
|
|
144192
|
+
withCheckboxes: true,
|
|
144193
|
+
showFeatureIndividual: props.showFeatureIndividual,
|
|
144194
|
+
hideFeatureIndividual: props.hideFeatureIndividual,
|
|
144195
|
+
showPartIndividual: props.showPartIndividual,
|
|
144196
|
+
hidePartIndividual: props.hidePartIndividual,
|
|
144197
|
+
showPrimerIndividual: props.showPrimerIndividual,
|
|
144198
|
+
hidePrimerIndividual: props.hidePrimerIndividual,
|
|
144199
|
+
annotationVisibility: annotationVisibility2,
|
|
144200
|
+
featureLengthsToHide: props.featureLengthsToHide,
|
|
144201
|
+
primerLengthsToHide: props.primerLengthsToHide,
|
|
144202
|
+
partLengthsToHide: props.partLengthsToHide,
|
|
144203
|
+
sequence: sequence2,
|
|
144204
|
+
noPadding: true,
|
|
144205
|
+
noFullscreenButton: true,
|
|
144206
|
+
onRowSelect,
|
|
144207
|
+
selectedIds: selectedAnnotationId,
|
|
144208
|
+
formName: "annotationProperties",
|
|
144209
|
+
noRouter: true,
|
|
144210
|
+
isProtein: isProtein2,
|
|
144211
|
+
compact: true,
|
|
144212
|
+
isInfinite: true,
|
|
144213
|
+
withDisplayOptions: true,
|
|
144214
|
+
schema: schema2,
|
|
144215
|
+
entities: annotationsToUse
|
|
144216
|
+
}
|
|
144217
|
+
);
|
|
144218
|
+
}, "AnnotationProperties");
|
|
144161
144219
|
return compose(
|
|
144162
144220
|
connectToEditor(
|
|
144163
144221
|
({
|