@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 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 = useDeepEqualMemo(_reduxFormCellValidation);
56660
- const reduxFormQueryParams = useDeepEqualMemo(_reduxFormQueryParams);
56661
- const reduxFormSelectedEntityIdMap = useDeepEqualMemo(
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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_entities);
56918
- const entitiesAcrossPages = useDeepEqualMemo(_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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_reduxFormEntities);
61578
- const reduxFormCellValidation = useDeepEqualMemo(_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 = useDeepEqualMemo(_reduxFormEntitiesArray);
61881
- const finishedFiles = useDeepEqualMemo(_finishedFiles);
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
- selectionLayer: {}
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
- return searchingDna ? matches2 : matches2.map((_a2) => {
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 matches2.map((match) => __spreadProps(__spreadValues({}, match), {
98141
- className: "veSearchLayer"
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 matches.map((match) => __spreadProps(__spreadValues({}, match), {
98153
- forward: !match.bottomStrand,
98154
- className: "veSearchLayer " + (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
98155
- isSearchLayer: true
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.20";
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 _AnnotationProperties = class _AnnotationProperties extends React.Component {
143898
- constructor(props) {
143899
- super(props);
143900
- __publicField(this, "onRowSelect", /* @__PURE__ */ __name(([record]) => {
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
- }, "onRowSelect"));
143911
- this.commands = getCommands(this);
143912
- }
143913
- render() {
143914
- var _a2, _b2, _c;
143915
- const {
143916
- readOnly: readOnly2,
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
- const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
143938
- const additionalColumns = ((_c = (_b2 = PropertiesProps == null ? void 0 : PropertiesProps.propertiesList) == null ? void 0 : _b2.find(
143939
- (p2) => (p2.name || p2) === (pluralize(annotationType) || "")
143940
- )) == null ? void 0 : _c.additionalColumns) || [];
143941
- this.schema = {
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 = !this.props.annotationVisibility[`${annotationType}IndividualToHide`][ann.id];
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
- this.props[`hide${upperType}Individual`]([ann.id]);
144008
+ props[`hide${upperType}Individual`]([ann.id]);
143957
144009
  } else {
143958
- this.props[`show${upperType}Individual`]([ann.id]);
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, this.props.sequence);
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(this.props.isProtein),
144005
- ...withTags && this.props.allPartTags ? [
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
- return /* @__PURE__ */ React.createElement(
144031
- WrappedDT,
144032
- {
144033
- topLeftItems: getVisFilter(
144034
- createCommandMenu(
144035
- isFunction$2(visSubmenu) ? visSubmenu(this.props) : visSubmenu,
144036
- this.commands,
144037
- {
144038
- useTicks: true
144039
- }
144040
- )
144041
- ),
144042
- annotationPropertiesSelectedEntities,
144043
- leftOfSearchBarItems: /* @__PURE__ */ React.createElement(React.Fragment, null, !readOnly2 && /* @__PURE__ */ React.createElement(core.ButtonGroup, { style: { marginTop: 3, marginRight: 4 } }, /* @__PURE__ */ React.createElement(
144044
- core.Tooltip,
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
- position: "top",
144073
- modifiers: popoverOverflowModifiers,
144074
- content: "Edit"
144075
- },
144076
- /* @__PURE__ */ React.createElement(
144077
- core.AnchorButton,
144078
- {
144079
- onClick: /* @__PURE__ */ __name(() => {
144080
- showAddOrEditAnnotationDialog({
144081
- type: annotationType,
144082
- annotation: annotationPropertiesSelectedEntities[0]
144083
- });
144084
- }, "onClick"),
144085
- disabled: annotationPropertiesSelectedEntities.length !== 1,
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
- text: "",
144093
- icon: "cog",
144094
- "data-tip": "Configure Feature Types",
144095
- cmd: this.commands.onConfigureFeatureTypesClick
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
- ), ["part", "primer", "feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
144098
- CmdButton,
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
- text: "",
144101
- icon: removeDuplicatesIcon,
144102
- "data-tip": "Remove Duplicates",
144103
- cmd: this.commands[`showRemoveDuplicatesDialog${annotationTypeUpper + "s"}`]
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
- ), additionalFooterEls && additionalFooterEls(this.props), /* @__PURE__ */ React.createElement(
144106
- core.Tooltip,
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
- position: "top",
144109
- modifiers: popoverOverflowModifiers,
144110
- content: "Delete"
144111
- },
144112
- /* @__PURE__ */ React.createElement(
144113
- core.AnchorButton,
144114
- {
144115
- onClick: /* @__PURE__ */ __name(() => {
144116
- deleteAnnotation(annotationPropertiesSelectedEntities);
144117
- }, "onClick"),
144118
- className: "tgDeleteAnnsBtn",
144119
- intent: "danger",
144120
- disabled: !annotationPropertiesSelectedEntities.length,
144121
- icon: "trash"
144122
- }
144123
- )
144124
- ))),
144125
- onDoubleClick: /* @__PURE__ */ __name((annotation) => {
144126
- showAddOrEditAnnotationDialog({
144127
- type: annotationType,
144128
- annotation
144129
- });
144130
- }, "onDoubleClick"),
144131
- withCheckboxes: true,
144132
- showFeatureIndividual: this.props.showFeatureIndividual,
144133
- hideFeatureIndividual: this.props.hideFeatureIndividual,
144134
- showPartIndividual: this.props.showPartIndividual,
144135
- hidePartIndividual: this.props.hidePartIndividual,
144136
- showPrimerIndividual: this.props.showPrimerIndividual,
144137
- hidePrimerIndividual: this.props.hidePrimerIndividual,
144138
- annotationVisibility: annotationVisibility2,
144139
- featureLengthsToHide: this.props.featureLengthsToHide,
144140
- primerLengthsToHide: this.props.primerLengthsToHide,
144141
- partLengthsToHide: this.props.partLengthsToHide,
144142
- sequence: sequence2,
144143
- noPadding: true,
144144
- noFullscreenButton: true,
144145
- onRowSelect: this.onRowSelect,
144146
- selectedIds: selectedAnnotationId,
144147
- formName: "annotationProperties",
144148
- noRouter: true,
144149
- isProtein: isProtein2,
144150
- compact: true,
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
  ({