@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.es.js
CHANGED
|
@@ -17242,23 +17242,6 @@ const useTableEntities = /* @__PURE__ */ __name((tableFormName) => {
|
|
|
17242
17242
|
const { allOrderedEntities, selectedEntities } = useSelector(entitySelector);
|
|
17243
17243
|
return { selectTableEntities, allOrderedEntities, selectedEntities };
|
|
17244
17244
|
}, "useTableEntities");
|
|
17245
|
-
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
17246
|
-
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
17247
|
-
if (isFunction$2(val1) && isFunction$2(val2)) {
|
|
17248
|
-
return val1 === val2 || val1.toString() === val2.toString();
|
|
17249
|
-
}
|
|
17250
|
-
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
17251
|
-
return true;
|
|
17252
|
-
});
|
|
17253
|
-
return isEq;
|
|
17254
|
-
}, "isEqualIgnoreFunctions");
|
|
17255
|
-
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
17256
|
-
const ref2 = useRef();
|
|
17257
|
-
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
17258
|
-
ref2.current = value;
|
|
17259
|
-
}
|
|
17260
|
-
return ref2.current;
|
|
17261
|
-
}, "useDeepEqualMemo");
|
|
17262
17245
|
function rowClick(e, rowInfo, entities, {
|
|
17263
17246
|
reduxFormSelectedEntityIdMap,
|
|
17264
17247
|
isSingleSelect,
|
|
@@ -56552,6 +56535,33 @@ if (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "object") {
|
|
|
56552
56535
|
$mobx
|
|
56553
56536
|
});
|
|
56554
56537
|
}
|
|
56538
|
+
const isEqualIgnoreFunctions = /* @__PURE__ */ __name((o1, o2) => {
|
|
56539
|
+
const isEq = isEqualWith(o1, o2, function(val1, val2) {
|
|
56540
|
+
if (isFunction$2(val1) && isFunction$2(val2)) {
|
|
56541
|
+
return val1 === val2 || val1.toString() === val2.toString();
|
|
56542
|
+
}
|
|
56543
|
+
if (val1 && val1.constructor && val1.constructor.name === "FiberNode")
|
|
56544
|
+
return true;
|
|
56545
|
+
});
|
|
56546
|
+
return isEq;
|
|
56547
|
+
}, "isEqualIgnoreFunctions");
|
|
56548
|
+
const useDeepEqualMemoIgnoreFns = /* @__PURE__ */ __name((value) => {
|
|
56549
|
+
const ref2 = useRef();
|
|
56550
|
+
if (!isEqualIgnoreFunctions(value, ref2.current)) {
|
|
56551
|
+
ref2.current = value;
|
|
56552
|
+
}
|
|
56553
|
+
return ref2.current;
|
|
56554
|
+
}, "useDeepEqualMemoIgnoreFns");
|
|
56555
|
+
const useDeepEqualMemo = /* @__PURE__ */ __name((value) => {
|
|
56556
|
+
const ref2 = useRef();
|
|
56557
|
+
if (!isEqual$3(value, ref2.current)) {
|
|
56558
|
+
ref2.current = value;
|
|
56559
|
+
}
|
|
56560
|
+
return ref2.current;
|
|
56561
|
+
}, "useDeepEqualMemo");
|
|
56562
|
+
const useMemoDeepEqual = /* @__PURE__ */ __name((value, depsArray) => {
|
|
56563
|
+
return useMemo$1(value, useDeepEqualMemo(depsArray));
|
|
56564
|
+
}, "useMemoDeepEqual");
|
|
56555
56565
|
T();
|
|
56556
56566
|
const IS_LINUX = window.navigator.platform.toLowerCase().search("linux") > -1;
|
|
56557
56567
|
const itemSizeEstimators = {
|
|
@@ -56638,9 +56648,11 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56638
56648
|
"reduxFormSelectedEntityIdMap"
|
|
56639
56649
|
);
|
|
56640
56650
|
}, "dtFormParamsSelector"));
|
|
56641
|
-
const reduxFormCellValidation =
|
|
56642
|
-
|
|
56643
|
-
|
|
56651
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
56652
|
+
_reduxFormCellValidation
|
|
56653
|
+
);
|
|
56654
|
+
const reduxFormQueryParams = useDeepEqualMemoIgnoreFns(_reduxFormQueryParams);
|
|
56655
|
+
const reduxFormSelectedEntityIdMap = useDeepEqualMemoIgnoreFns(
|
|
56644
56656
|
_reduxFormSelectedEntityIdMap
|
|
56645
56657
|
);
|
|
56646
56658
|
let props = ownProps;
|
|
@@ -56715,7 +56727,7 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56715
56727
|
const tmp = (urlConnected ? getCurrentParamsFromUrl(history.location) : reduxFormQueryParams) || {};
|
|
56716
56728
|
return tmp;
|
|
56717
56729
|
}, [history, reduxFormQueryParams, urlConnected]);
|
|
56718
|
-
const currentParams =
|
|
56730
|
+
const currentParams = useDeepEqualMemoIgnoreFns(_currentParams);
|
|
56719
56731
|
const tableParams = useMemo$1(() => {
|
|
56720
56732
|
if (!isTableParamsConnected) {
|
|
56721
56733
|
const setNewParams2 = /* @__PURE__ */ __name((newParams) => {
|
|
@@ -56896,8 +56908,8 @@ const DataTable = /* @__PURE__ */ __name((_w) => {
|
|
|
56896
56908
|
() => ((reduxFormEntities == null ? void 0 : reduxFormEntities.length) ? reduxFormEntities : _origEntities) || [],
|
|
56897
56909
|
[_origEntities, reduxFormEntities]
|
|
56898
56910
|
);
|
|
56899
|
-
const entities =
|
|
56900
|
-
const entitiesAcrossPages =
|
|
56911
|
+
const entities = useDeepEqualMemoIgnoreFns(_entities);
|
|
56912
|
+
const entitiesAcrossPages = useDeepEqualMemoIgnoreFns(_entitiesAcrossPages);
|
|
56901
56913
|
useEffect(() => {
|
|
56902
56914
|
change$1("allOrderedEntities", entitiesAcrossPages);
|
|
56903
56915
|
if (entities.length === 0 || isEmpty$1(reduxFormSelectedEntityIdMap)) return;
|
|
@@ -61461,7 +61473,7 @@ const SimpleInsertDataDialog = compose(
|
|
|
61461
61473
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormEntities;
|
|
61462
61474
|
}
|
|
61463
61475
|
);
|
|
61464
|
-
const reduxFormEntities =
|
|
61476
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
61465
61477
|
useEffect(() => {
|
|
61466
61478
|
return () => dispatch(destroy$1(dataTableForm));
|
|
61467
61479
|
}, [dataTableForm, dispatch]);
|
|
@@ -61471,7 +61483,9 @@ const SimpleInsertDataDialog = compose(
|
|
|
61471
61483
|
return (_b2 = (_a3 = state2.form) == null ? void 0 : _a3[dataTableForm]) == null ? void 0 : _b2.values.reduxFormCellValidation;
|
|
61472
61484
|
}, "_reduxFormCellValidationSelector")
|
|
61473
61485
|
);
|
|
61474
|
-
const reduxFormCellValidation =
|
|
61486
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
61487
|
+
_reduxFormCellValidation
|
|
61488
|
+
);
|
|
61475
61489
|
const { entsToUse, validationToUse } = useMemo$1(
|
|
61476
61490
|
() => removeCleanRows(reduxFormEntities, reduxFormCellValidation),
|
|
61477
61491
|
[reduxFormEntities, reduxFormCellValidation]
|
|
@@ -61556,8 +61570,10 @@ const UploadCsvWizardDialogInner = reduxForm()(({
|
|
|
61556
61570
|
"reduxFormCellValidation"
|
|
61557
61571
|
);
|
|
61558
61572
|
}, "dtFormNameSelector"));
|
|
61559
|
-
const reduxFormEntities =
|
|
61560
|
-
const reduxFormCellValidation =
|
|
61573
|
+
const reduxFormEntities = useDeepEqualMemoIgnoreFns(_reduxFormEntities);
|
|
61574
|
+
const reduxFormCellValidation = useDeepEqualMemoIgnoreFns(
|
|
61575
|
+
_reduxFormCellValidation
|
|
61576
|
+
);
|
|
61561
61577
|
let inner2;
|
|
61562
61578
|
if (hasSubmitted) {
|
|
61563
61579
|
inner2 = /* @__PURE__ */ React__default.createElement(
|
|
@@ -61859,8 +61875,10 @@ const UploadCsvWizardDialog = compose(
|
|
|
61859
61875
|
};
|
|
61860
61876
|
}
|
|
61861
61877
|
});
|
|
61862
|
-
const reduxFormEntitiesArray =
|
|
61863
|
-
|
|
61878
|
+
const reduxFormEntitiesArray = useDeepEqualMemoIgnoreFns(
|
|
61879
|
+
_reduxFormEntitiesArray
|
|
61880
|
+
);
|
|
61881
|
+
const finishedFiles = useDeepEqualMemoIgnoreFns(_finishedFiles);
|
|
61864
61882
|
const [hasSubmittedOuter, setSubmittedOuter] = useState();
|
|
61865
61883
|
const [steps, setSteps] = useState(getInitialSteps(true));
|
|
61866
61884
|
const [focusedTab, setFocusedTab] = useState(0);
|
|
@@ -70365,12 +70383,21 @@ const _ResizableDraggableDialog = class _ResizableDraggableDialog extends React_
|
|
|
70365
70383
|
}, RndProps),
|
|
70366
70384
|
/* @__PURE__ */ React__default.createElement(
|
|
70367
70385
|
Dialog,
|
|
70368
|
-
__spreadValues({
|
|
70386
|
+
__spreadProps(__spreadValues({
|
|
70369
70387
|
enforceFocus: false,
|
|
70370
70388
|
hasBackdrop: false,
|
|
70371
70389
|
usePortal: false,
|
|
70372
70390
|
canEscapeKeyClose: true
|
|
70373
|
-
}, rest)
|
|
70391
|
+
}, rest), {
|
|
70392
|
+
title: /* @__PURE__ */ React__default.createElement("div", { style: { display: "flex", alignItems: "center", gap: 8 } }, /* @__PURE__ */ React__default.createElement(
|
|
70393
|
+
Icon,
|
|
70394
|
+
{
|
|
70395
|
+
size: "14",
|
|
70396
|
+
"data-tip": "I'm a resizable draggable dialog!",
|
|
70397
|
+
icon: "move"
|
|
70398
|
+
}
|
|
70399
|
+
), rest.title)
|
|
70400
|
+
})
|
|
70374
70401
|
)
|
|
70375
70402
|
)
|
|
70376
70403
|
);
|
|
@@ -73644,7 +73671,7 @@ const genbankFeatureTypes = [
|
|
|
73644
73671
|
{ name: "regulatory", color: "#3F6C51" },
|
|
73645
73672
|
{ name: "SecStr", color: "#7B4B94" },
|
|
73646
73673
|
{ name: "Site", color: "#7D82B8" },
|
|
73647
|
-
{ name: "telomere", color: "DE9151" },
|
|
73674
|
+
{ name: "telomere", color: "#DE9151" },
|
|
73648
73675
|
{ name: "tmRNA", color: "#B7E3CC" },
|
|
73649
73676
|
{ name: "unsure", color: "#C4FFB2" },
|
|
73650
73677
|
{ name: "V_segment", color: "#D6F7A3" },
|
|
@@ -83783,7 +83810,10 @@ function getOrfsFromSequence(options) {
|
|
|
83783
83810
|
return nonDuplicatedOrfRanges;
|
|
83784
83811
|
}
|
|
83785
83812
|
__name(getOrfsFromSequence, "getOrfsFromSequence");
|
|
83786
|
-
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2) {
|
|
83813
|
+
function findOrfsInPlasmid(sequence2, circular2, minimumOrfSize2, useAdditionalOrfStartCodons2, isProteinOrOligo) {
|
|
83814
|
+
if (isProteinOrOligo) {
|
|
83815
|
+
return [];
|
|
83816
|
+
}
|
|
83787
83817
|
const forwardOrfs = getOrfsFromSequence({
|
|
83788
83818
|
sequence: sequence2,
|
|
83789
83819
|
minimumOrfSize: minimumOrfSize2,
|
|
@@ -97272,7 +97302,7 @@ const temporaryAnnotations = createMergedDefaultStateReducer(
|
|
|
97272
97302
|
features: {},
|
|
97273
97303
|
primers: {},
|
|
97274
97304
|
parts: {},
|
|
97275
|
-
|
|
97305
|
+
searchLayers: []
|
|
97276
97306
|
}
|
|
97277
97307
|
);
|
|
97278
97308
|
const temporaryAnnotations$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -98068,6 +98098,10 @@ const orfsSelector = createSelector(
|
|
|
98068
98098
|
circularSelector,
|
|
98069
98099
|
minimumOrfSizeSelector,
|
|
98070
98100
|
(state2) => state2.useAdditionalOrfStartCodons,
|
|
98101
|
+
(state2) => {
|
|
98102
|
+
var _a2, _b2;
|
|
98103
|
+
return ((_a2 = state2.sequenceData) == null ? void 0 : _a2.isProtein) || ((_b2 = state2.sequenceData) == null ? void 0 : _b2.isOligo);
|
|
98104
|
+
},
|
|
98071
98105
|
findOrfsInPlasmid
|
|
98072
98106
|
);
|
|
98073
98107
|
function translationsRawSelector(sequenceData2) {
|
|
@@ -98075,9 +98109,10 @@ function translationsRawSelector(sequenceData2) {
|
|
|
98075
98109
|
}
|
|
98076
98110
|
__name(translationsRawSelector, "translationsRawSelector");
|
|
98077
98111
|
const translationsRawSelector$1 = createSelector(sequenceDataSelector, translationsRawSelector);
|
|
98078
|
-
function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed) {
|
|
98112
|
+
function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambiguousOrLiteral, dnaOrAA, isProtein2, proteinSequence, mismatchesAllowed, tempSearchLayers = []) {
|
|
98113
|
+
const toReturn = [...tempSearchLayers];
|
|
98079
98114
|
if (!searchString || !isOpen) {
|
|
98080
|
-
return
|
|
98115
|
+
return toReturn;
|
|
98081
98116
|
}
|
|
98082
98117
|
if (isProtein2) {
|
|
98083
98118
|
const searchingDna = dnaOrAA === "DNA";
|
|
@@ -98094,7 +98129,7 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98094
98129
|
).sort(({ start: start2 }, { start: start22 }) => {
|
|
98095
98130
|
return start2 - start22;
|
|
98096
98131
|
});
|
|
98097
|
-
|
|
98132
|
+
const r2 = searchingDna ? matches2 : matches2.map((_a2) => {
|
|
98098
98133
|
var _b2 = _a2, { start: start2, end: end2 } = _b2, rest = __objRest(_b2, ["start", "end"]);
|
|
98099
98134
|
return __spreadProps(__spreadValues({}, rest), {
|
|
98100
98135
|
isSearchLayer: true,
|
|
@@ -98102,6 +98137,7 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98102
98137
|
end: end2 * 3 + 2
|
|
98103
98138
|
});
|
|
98104
98139
|
});
|
|
98140
|
+
return [...toReturn, ...r2];
|
|
98105
98141
|
}
|
|
98106
98142
|
if (dnaOrAA === "DNA" && ambiguousOrLiteral === "LITERAL" && mismatchesAllowed > 0) {
|
|
98107
98143
|
const approxMatches = findApproxMatches(
|
|
@@ -98119,9 +98155,12 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98119
98155
|
isSearchLayer: true,
|
|
98120
98156
|
forward: true
|
|
98121
98157
|
})).sort((a2, b3) => a2.start - b3.start);
|
|
98122
|
-
return
|
|
98123
|
-
|
|
98124
|
-
|
|
98158
|
+
return [
|
|
98159
|
+
...toReturn,
|
|
98160
|
+
...matches2.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
98161
|
+
className: "veSearchLayer"
|
|
98162
|
+
}))
|
|
98163
|
+
];
|
|
98125
98164
|
}
|
|
98126
98165
|
const matches = findSequenceMatches(sequence2, searchString, {
|
|
98127
98166
|
isCircular,
|
|
@@ -98131,11 +98170,14 @@ function searchLayersSelector(sequence2, isCircular, isOpen, searchString, ambig
|
|
|
98131
98170
|
}).sort(({ start: start2 }, { start: start22 }) => {
|
|
98132
98171
|
return start2 - start22;
|
|
98133
98172
|
});
|
|
98134
|
-
return
|
|
98135
|
-
|
|
98136
|
-
|
|
98137
|
-
|
|
98138
|
-
|
|
98173
|
+
return [
|
|
98174
|
+
...toReturn,
|
|
98175
|
+
...matches.map((match) => __spreadProps(__spreadValues({}, match), {
|
|
98176
|
+
forward: !match.bottomStrand,
|
|
98177
|
+
className: "veSearchLayer " + (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
|
|
98178
|
+
isSearchLayer: true
|
|
98179
|
+
}))
|
|
98180
|
+
];
|
|
98139
98181
|
}
|
|
98140
98182
|
__name(searchLayersSelector, "searchLayersSelector");
|
|
98141
98183
|
const searchLayersSelector$1 = createSelector(
|
|
@@ -98148,6 +98190,10 @@ const searchLayersSelector$1 = createSelector(
|
|
|
98148
98190
|
(state2) => state2.sequenceData.isProtein,
|
|
98149
98191
|
(state2) => state2.sequenceData.proteinSequence,
|
|
98150
98192
|
(state2) => state2.findTool && state2.findTool.mismatchesAllowed,
|
|
98193
|
+
(state2) => {
|
|
98194
|
+
var _a2;
|
|
98195
|
+
return (_a2 = state2.temporaryAnnotations) == null ? void 0 : _a2.searchLayers;
|
|
98196
|
+
},
|
|
98151
98197
|
searchLayersSelector
|
|
98152
98198
|
);
|
|
98153
98199
|
const translationSearchMatchesSelector = createSelector(
|
|
@@ -116913,7 +116959,7 @@ function showFileDialog({ multiple = false, onSelect }) {
|
|
|
116913
116959
|
input.click();
|
|
116914
116960
|
}
|
|
116915
116961
|
__name(showFileDialog, "showFileDialog");
|
|
116916
|
-
const version = "0.8.
|
|
116962
|
+
const version = "0.8.23";
|
|
116917
116963
|
const packageJson = {
|
|
116918
116964
|
version
|
|
116919
116965
|
};
|
|
@@ -143876,12 +143922,29 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143876
143922
|
additionalFooterEls
|
|
143877
143923
|
}) => {
|
|
143878
143924
|
const annotationTypeUpper = upperFirst(annotationType);
|
|
143879
|
-
const
|
|
143880
|
-
|
|
143881
|
-
|
|
143882
|
-
|
|
143925
|
+
const AnnotationProperties = /* @__PURE__ */ __name((props) => {
|
|
143926
|
+
var _a2, _b2, _c;
|
|
143927
|
+
const {
|
|
143928
|
+
readOnly: readOnly2,
|
|
143929
|
+
annotations = {},
|
|
143930
|
+
annotationVisibility: annotationVisibility2,
|
|
143931
|
+
sequenceLength,
|
|
143932
|
+
selectionLayer: selectionLayer2,
|
|
143933
|
+
sequence: sequence2,
|
|
143934
|
+
isProtein: isProtein2,
|
|
143935
|
+
allPartTags,
|
|
143936
|
+
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
143937
|
+
selectedAnnotationId,
|
|
143938
|
+
PropertiesProps,
|
|
143939
|
+
dispatch,
|
|
143940
|
+
editorName
|
|
143941
|
+
} = props;
|
|
143942
|
+
const instanceRef = React__default.useRef({ props });
|
|
143943
|
+
instanceRef.current.props = props;
|
|
143944
|
+
const cmds = React__default.useMemo(() => getCommands(instanceRef.current), []);
|
|
143945
|
+
const onRowSelect = React__default.useCallback(
|
|
143946
|
+
([record]) => {
|
|
143883
143947
|
if (!record) return;
|
|
143884
|
-
const { dispatch, editorName } = this.props;
|
|
143885
143948
|
dispatch({
|
|
143886
143949
|
type: "SELECTION_LAYER_UPDATE",
|
|
143887
143950
|
payload: record,
|
|
@@ -143889,44 +143952,33 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143889
143952
|
editorName
|
|
143890
143953
|
}
|
|
143891
143954
|
});
|
|
143892
|
-
},
|
|
143893
|
-
|
|
143894
|
-
|
|
143895
|
-
|
|
143896
|
-
|
|
143897
|
-
|
|
143898
|
-
|
|
143899
|
-
annotations = {},
|
|
143900
|
-
annotationVisibility: annotationVisibility2,
|
|
143901
|
-
sequenceLength,
|
|
143902
|
-
selectionLayer: selectionLayer2,
|
|
143903
|
-
sequence: sequence2,
|
|
143904
|
-
isProtein: isProtein2,
|
|
143905
|
-
allPartTags,
|
|
143906
|
-
annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
|
|
143907
|
-
selectedAnnotationId,
|
|
143908
|
-
PropertiesProps
|
|
143909
|
-
} = this.props;
|
|
143910
|
-
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
143911
|
-
const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
|
|
143912
|
-
const annotationsToUse = map$3(annotations, (annotation) => {
|
|
143955
|
+
},
|
|
143956
|
+
[dispatch, editorName]
|
|
143957
|
+
);
|
|
143958
|
+
const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
|
|
143959
|
+
const deleteAnnotation = props[`delete${annotationTypeUpper}`];
|
|
143960
|
+
const annotationsToUse = React__default.useMemo(
|
|
143961
|
+
() => map$3(annotations, (annotation) => {
|
|
143913
143962
|
return __spreadProps(__spreadValues(__spreadValues({}, annotation), annotation.strand === void 0 && {
|
|
143914
143963
|
strand: annotation.forward ? 1 : -1
|
|
143915
143964
|
}), {
|
|
143916
143965
|
size: getRangeLength(annotation, sequenceLength)
|
|
143917
143966
|
});
|
|
143918
|
-
})
|
|
143919
|
-
|
|
143920
|
-
|
|
143921
|
-
|
|
143922
|
-
|
|
143923
|
-
|
|
143967
|
+
}),
|
|
143968
|
+
[annotations, sequenceLength]
|
|
143969
|
+
);
|
|
143970
|
+
const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
|
|
143971
|
+
const additionalColumns = ((_c = (_b2 = PropertiesProps == null ? void 0 : PropertiesProps.propertiesList) == null ? void 0 : _b2.find(
|
|
143972
|
+
(p2) => (p2.name || p2) === (pluralize(annotationType) || "")
|
|
143973
|
+
)) == null ? void 0 : _c.additionalColumns) || [];
|
|
143974
|
+
const schema2 = useMemoDeepEqual(
|
|
143975
|
+
() => ({
|
|
143924
143976
|
fields: [
|
|
143925
143977
|
{
|
|
143926
143978
|
path: "name",
|
|
143927
143979
|
type: "string",
|
|
143928
143980
|
render: /* @__PURE__ */ __name((name2, ann) => {
|
|
143929
|
-
const checked = !
|
|
143981
|
+
const checked = !annotationVisibility2[`${annotationType}IndividualToHide`][ann.id];
|
|
143930
143982
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
|
|
143931
143983
|
Icon,
|
|
143932
143984
|
{
|
|
@@ -143935,9 +143987,9 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143935
143987
|
e.stopPropagation();
|
|
143936
143988
|
const upperType = startCase(annotationType);
|
|
143937
143989
|
if (checked) {
|
|
143938
|
-
|
|
143990
|
+
props[`hide${upperType}Individual`]([ann.id]);
|
|
143939
143991
|
} else {
|
|
143940
|
-
|
|
143992
|
+
props[`show${upperType}Individual`]([ann.id]);
|
|
143941
143993
|
}
|
|
143942
143994
|
}, "onClick"),
|
|
143943
143995
|
style: {
|
|
@@ -143958,7 +144010,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143958
144010
|
render: /* @__PURE__ */ __name((bases, primer) => {
|
|
143959
144011
|
let bps = bases;
|
|
143960
144012
|
if (!bases) {
|
|
143961
|
-
bps = getSequenceWithinRange(primer,
|
|
144013
|
+
bps = getSequenceWithinRange(primer, sequence2);
|
|
143962
144014
|
if (!primer.forward) {
|
|
143963
144015
|
bps = getReverseComplementSequenceString(bps);
|
|
143964
144016
|
}
|
|
@@ -143983,8 +144035,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
143983
144035
|
}, "render")
|
|
143984
144036
|
}
|
|
143985
144037
|
],
|
|
143986
|
-
sizeSchema(
|
|
143987
|
-
...withTags &&
|
|
144038
|
+
sizeSchema(isProtein2),
|
|
144039
|
+
...withTags && allPartTags ? [
|
|
143988
144040
|
{
|
|
143989
144041
|
path: "tags",
|
|
143990
144042
|
type: "string",
|
|
@@ -144008,138 +144060,144 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
|
|
|
144008
144060
|
{ path: "strand", type: "number" },
|
|
144009
144061
|
...additionalColumns
|
|
144010
144062
|
]
|
|
144011
|
-
}
|
|
144012
|
-
|
|
144013
|
-
|
|
144014
|
-
|
|
144015
|
-
|
|
144016
|
-
|
|
144017
|
-
|
|
144018
|
-
|
|
144019
|
-
|
|
144020
|
-
|
|
144021
|
-
|
|
144022
|
-
|
|
144023
|
-
|
|
144024
|
-
|
|
144025
|
-
|
|
144026
|
-
|
|
144027
|
-
|
|
144028
|
-
position: "top",
|
|
144029
|
-
modifiers: popoverOverflowModifiers,
|
|
144030
|
-
content: "New"
|
|
144031
|
-
},
|
|
144032
|
-
/* @__PURE__ */ React__default.createElement(
|
|
144033
|
-
AnchorButton,
|
|
144034
|
-
{
|
|
144035
|
-
disabled: !sequenceLength,
|
|
144036
|
-
icon: "plus",
|
|
144037
|
-
className: "tgNewAnnBtn",
|
|
144038
|
-
onClick: /* @__PURE__ */ __name(() => {
|
|
144039
|
-
showAddOrEditAnnotationDialog({
|
|
144040
|
-
type: annotationType,
|
|
144041
|
-
annotation: pick$1(
|
|
144042
|
-
selectionLayer2,
|
|
144043
|
-
"start",
|
|
144044
|
-
"end",
|
|
144045
|
-
"forward"
|
|
144046
|
-
)
|
|
144047
|
-
});
|
|
144048
|
-
}, "onClick")
|
|
144049
|
-
}
|
|
144050
|
-
)
|
|
144051
|
-
), /* @__PURE__ */ React__default.createElement(
|
|
144052
|
-
Tooltip,
|
|
144063
|
+
}),
|
|
144064
|
+
[
|
|
144065
|
+
additionalColumns,
|
|
144066
|
+
allPartTags,
|
|
144067
|
+
annotationVisibility2,
|
|
144068
|
+
isProtein2,
|
|
144069
|
+
keyedPartTags,
|
|
144070
|
+
sequence2
|
|
144071
|
+
]
|
|
144072
|
+
);
|
|
144073
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
144074
|
+
WrappedDT,
|
|
144075
|
+
{
|
|
144076
|
+
topLeftItems: getVisFilter(
|
|
144077
|
+
createCommandMenu(
|
|
144078
|
+
isFunction$2(visSubmenu) ? visSubmenu(props) : visSubmenu,
|
|
144079
|
+
cmds,
|
|
144053
144080
|
{
|
|
144054
|
-
|
|
144055
|
-
|
|
144056
|
-
|
|
144057
|
-
|
|
144058
|
-
|
|
144059
|
-
|
|
144060
|
-
|
|
144061
|
-
|
|
144062
|
-
|
|
144063
|
-
|
|
144064
|
-
|
|
144065
|
-
|
|
144066
|
-
|
|
144067
|
-
|
|
144068
|
-
icon: "edit"
|
|
144069
|
-
}
|
|
144070
|
-
)
|
|
144071
|
-
), ["feature"].includes(annotationType) && /* @__PURE__ */ React__default.createElement(
|
|
144072
|
-
CmdButton,
|
|
144081
|
+
useTicks: true
|
|
144082
|
+
}
|
|
144083
|
+
)
|
|
144084
|
+
),
|
|
144085
|
+
annotationPropertiesSelectedEntities,
|
|
144086
|
+
leftOfSearchBarItems: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, !readOnly2 && /* @__PURE__ */ React__default.createElement(ButtonGroup, { style: { marginTop: 3, marginRight: 4 } }, /* @__PURE__ */ React__default.createElement(
|
|
144087
|
+
Tooltip,
|
|
144088
|
+
{
|
|
144089
|
+
position: "top",
|
|
144090
|
+
modifiers: popoverOverflowModifiers,
|
|
144091
|
+
content: "New"
|
|
144092
|
+
},
|
|
144093
|
+
/* @__PURE__ */ React__default.createElement(
|
|
144094
|
+
AnchorButton,
|
|
144073
144095
|
{
|
|
144074
|
-
|
|
144075
|
-
icon: "
|
|
144076
|
-
|
|
144077
|
-
|
|
144096
|
+
disabled: !sequenceLength,
|
|
144097
|
+
icon: "plus",
|
|
144098
|
+
className: "tgNewAnnBtn",
|
|
144099
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144100
|
+
showAddOrEditAnnotationDialog({
|
|
144101
|
+
type: annotationType,
|
|
144102
|
+
annotation: pick$1(
|
|
144103
|
+
selectionLayer2,
|
|
144104
|
+
"start",
|
|
144105
|
+
"end",
|
|
144106
|
+
"forward"
|
|
144107
|
+
)
|
|
144108
|
+
});
|
|
144109
|
+
}, "onClick")
|
|
144078
144110
|
}
|
|
144079
|
-
)
|
|
144080
|
-
|
|
144111
|
+
)
|
|
144112
|
+
), /* @__PURE__ */ React__default.createElement(
|
|
144113
|
+
Tooltip,
|
|
144114
|
+
{
|
|
144115
|
+
position: "top",
|
|
144116
|
+
modifiers: popoverOverflowModifiers,
|
|
144117
|
+
content: "Edit"
|
|
144118
|
+
},
|
|
144119
|
+
/* @__PURE__ */ React__default.createElement(
|
|
144120
|
+
AnchorButton,
|
|
144081
144121
|
{
|
|
144082
|
-
|
|
144083
|
-
|
|
144084
|
-
|
|
144085
|
-
|
|
144122
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144123
|
+
showAddOrEditAnnotationDialog({
|
|
144124
|
+
type: annotationType,
|
|
144125
|
+
annotation: annotationPropertiesSelectedEntities[0]
|
|
144126
|
+
});
|
|
144127
|
+
}, "onClick"),
|
|
144128
|
+
disabled: annotationPropertiesSelectedEntities.length !== 1,
|
|
144129
|
+
icon: "edit"
|
|
144086
144130
|
}
|
|
144087
|
-
)
|
|
144088
|
-
|
|
144131
|
+
)
|
|
144132
|
+
), ["feature"].includes(annotationType) && /* @__PURE__ */ React__default.createElement(
|
|
144133
|
+
CmdButton,
|
|
144134
|
+
{
|
|
144135
|
+
text: "",
|
|
144136
|
+
icon: "cog",
|
|
144137
|
+
"data-tip": "Configure Feature Types",
|
|
144138
|
+
cmd: cmds.onConfigureFeatureTypesClick
|
|
144139
|
+
}
|
|
144140
|
+
), ["part", "primer", "feature"].includes(annotationType) && /* @__PURE__ */ React__default.createElement(
|
|
144141
|
+
CmdButton,
|
|
144142
|
+
{
|
|
144143
|
+
text: "",
|
|
144144
|
+
icon: removeDuplicatesIcon,
|
|
144145
|
+
"data-tip": "Remove Duplicates",
|
|
144146
|
+
cmd: cmds[`showRemoveDuplicatesDialog${annotationTypeUpper + "s"}`]
|
|
144147
|
+
}
|
|
144148
|
+
), additionalFooterEls && additionalFooterEls(props), /* @__PURE__ */ React__default.createElement(
|
|
144149
|
+
Tooltip,
|
|
144150
|
+
{
|
|
144151
|
+
position: "top",
|
|
144152
|
+
modifiers: popoverOverflowModifiers,
|
|
144153
|
+
content: "Delete"
|
|
144154
|
+
},
|
|
144155
|
+
/* @__PURE__ */ React__default.createElement(
|
|
144156
|
+
AnchorButton,
|
|
144089
144157
|
{
|
|
144090
|
-
|
|
144091
|
-
|
|
144092
|
-
|
|
144093
|
-
|
|
144094
|
-
|
|
144095
|
-
|
|
144096
|
-
|
|
144097
|
-
|
|
144098
|
-
|
|
144099
|
-
|
|
144100
|
-
|
|
144101
|
-
|
|
144102
|
-
|
|
144103
|
-
|
|
144104
|
-
|
|
144105
|
-
|
|
144106
|
-
|
|
144107
|
-
|
|
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
|
-
isInfinite: true,
|
|
144134
|
-
withDisplayOptions: true,
|
|
144135
|
-
schema: this.schema,
|
|
144136
|
-
entities: annotationsToUse
|
|
144137
|
-
}
|
|
144138
|
-
);
|
|
144139
|
-
}
|
|
144140
|
-
};
|
|
144141
|
-
__name(_AnnotationProperties, "AnnotationProperties");
|
|
144142
|
-
let AnnotationProperties = _AnnotationProperties;
|
|
144158
|
+
onClick: /* @__PURE__ */ __name(() => {
|
|
144159
|
+
deleteAnnotation(annotationPropertiesSelectedEntities);
|
|
144160
|
+
}, "onClick"),
|
|
144161
|
+
className: "tgDeleteAnnsBtn",
|
|
144162
|
+
intent: "danger",
|
|
144163
|
+
disabled: !annotationPropertiesSelectedEntities.length,
|
|
144164
|
+
icon: "trash"
|
|
144165
|
+
}
|
|
144166
|
+
)
|
|
144167
|
+
))),
|
|
144168
|
+
onDoubleClick: /* @__PURE__ */ __name((annotation) => {
|
|
144169
|
+
showAddOrEditAnnotationDialog({
|
|
144170
|
+
type: annotationType,
|
|
144171
|
+
annotation
|
|
144172
|
+
});
|
|
144173
|
+
}, "onDoubleClick"),
|
|
144174
|
+
withCheckboxes: true,
|
|
144175
|
+
showFeatureIndividual: props.showFeatureIndividual,
|
|
144176
|
+
hideFeatureIndividual: props.hideFeatureIndividual,
|
|
144177
|
+
showPartIndividual: props.showPartIndividual,
|
|
144178
|
+
hidePartIndividual: props.hidePartIndividual,
|
|
144179
|
+
showPrimerIndividual: props.showPrimerIndividual,
|
|
144180
|
+
hidePrimerIndividual: props.hidePrimerIndividual,
|
|
144181
|
+
annotationVisibility: annotationVisibility2,
|
|
144182
|
+
featureLengthsToHide: props.featureLengthsToHide,
|
|
144183
|
+
primerLengthsToHide: props.primerLengthsToHide,
|
|
144184
|
+
partLengthsToHide: props.partLengthsToHide,
|
|
144185
|
+
sequence: sequence2,
|
|
144186
|
+
noPadding: true,
|
|
144187
|
+
noFullscreenButton: true,
|
|
144188
|
+
onRowSelect,
|
|
144189
|
+
selectedIds: selectedAnnotationId,
|
|
144190
|
+
formName: "annotationProperties",
|
|
144191
|
+
noRouter: true,
|
|
144192
|
+
isProtein: isProtein2,
|
|
144193
|
+
compact: true,
|
|
144194
|
+
isInfinite: true,
|
|
144195
|
+
withDisplayOptions: true,
|
|
144196
|
+
schema: schema2,
|
|
144197
|
+
entities: annotationsToUse
|
|
144198
|
+
}
|
|
144199
|
+
);
|
|
144200
|
+
}, "AnnotationProperties");
|
|
144143
144201
|
return compose(
|
|
144144
144202
|
connectToEditor(
|
|
144145
144203
|
({
|