@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.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 = useDeepEqualMemo(_reduxFormCellValidation);
85691
- const reduxFormQueryParams = useDeepEqualMemo(_reduxFormQueryParams);
85692
- const reduxFormSelectedEntityIdMap = useDeepEqualMemo(
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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_entities);
85949
- const entitiesAcrossPages = useDeepEqualMemo(_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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_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 = useDeepEqualMemo(_reduxFormEntities);
90609
- const reduxFormCellValidation = useDeepEqualMemo(_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 = useDeepEqualMemo(_reduxFormEntitiesArray);
90912
- const finishedFiles = useDeepEqualMemo(_finishedFiles);
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
- selectionLayer: {}
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
- return searchingDna ? matches2 : matches2.map((_a2) => {
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 matches2.map((match) => __spreadProps(__spreadValues({}, match), {
126289
- className: "veSearchLayer"
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 matches.map((match) => __spreadProps(__spreadValues({}, match), {
126301
- forward: !match.bottomStrand,
126302
- className: "veSearchLayer " + (match.bottomStrand ? " veSearchLayerBottomStrand" : ""),
126303
- isSearchLayer: true
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.20";
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 _AnnotationProperties = class _AnnotationProperties extends React.Component {
170394
- constructor(props) {
170395
- super(props);
170396
- __publicField(this, "onRowSelect", /* @__PURE__ */ __name(([record]) => {
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
- }, "onRowSelect"));
170407
- this.commands = getCommands(this);
170408
- }
170409
- render() {
170410
- var _a2, _b2, _c2;
170411
- const {
170412
- readOnly: readOnly2,
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
- const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
170434
- const additionalColumns = ((_c2 = (_b2 = PropertiesProps == null ? void 0 : PropertiesProps.propertiesList) == null ? void 0 : _b2.find(
170435
- (p2) => (p2.name || p2) === (pluralize(annotationType) || "")
170436
- )) == null ? void 0 : _c2.additionalColumns) || [];
170437
- this.schema = {
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 = !this.props.annotationVisibility[`${annotationType}IndividualToHide`][ann.id];
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
- this.props[`hide${upperType}Individual`]([ann.id]);
170504
+ props[`hide${upperType}Individual`]([ann.id]);
170453
170505
  } else {
170454
- this.props[`show${upperType}Individual`]([ann.id]);
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, this.props.sequence);
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(this.props.isProtein),
170501
- ...withTags && this.props.allPartTags ? [
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
- return /* @__PURE__ */ React.createElement(
170527
- WrappedDT,
170528
- {
170529
- topLeftItems: getVisFilter(
170530
- createCommandMenu(
170531
- isFunction$1(visSubmenu) ? visSubmenu(this.props) : visSubmenu,
170532
- this.commands,
170533
- {
170534
- useTicks: true
170535
- }
170536
- )
170537
- ),
170538
- annotationPropertiesSelectedEntities,
170539
- leftOfSearchBarItems: /* @__PURE__ */ React.createElement(React.Fragment, null, !readOnly2 && /* @__PURE__ */ React.createElement(ButtonGroup, { style: { marginTop: 3, marginRight: 4 } }, /* @__PURE__ */ React.createElement(
170540
- Tooltip,
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
- position: "top",
170569
- modifiers: popoverOverflowModifiers,
170570
- content: "Edit"
170571
- },
170572
- /* @__PURE__ */ React.createElement(
170573
- AnchorButton,
170574
- {
170575
- onClick: /* @__PURE__ */ __name(() => {
170576
- showAddOrEditAnnotationDialog({
170577
- type: annotationType,
170578
- annotation: annotationPropertiesSelectedEntities[0]
170579
- });
170580
- }, "onClick"),
170581
- disabled: annotationPropertiesSelectedEntities.length !== 1,
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
- text: "",
170589
- icon: "cog",
170590
- "data-tip": "Configure Feature Types",
170591
- cmd: this.commands.onConfigureFeatureTypesClick
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
- ), ["part", "primer", "feature"].includes(annotationType) && /* @__PURE__ */ React.createElement(
170594
- CmdButton,
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
- text: "",
170597
- icon: removeDuplicatesIcon,
170598
- "data-tip": "Remove Duplicates",
170599
- cmd: this.commands[`showRemoveDuplicatesDialog${annotationTypeUpper + "s"}`]
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
- ), additionalFooterEls && additionalFooterEls(this.props), /* @__PURE__ */ React.createElement(
170602
- Tooltip,
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
- position: "top",
170605
- modifiers: popoverOverflowModifiers,
170606
- content: "Delete"
170607
- },
170608
- /* @__PURE__ */ React.createElement(
170609
- AnchorButton,
170610
- {
170611
- onClick: /* @__PURE__ */ __name(() => {
170612
- deleteAnnotation(annotationPropertiesSelectedEntities);
170613
- }, "onClick"),
170614
- className: "tgDeleteAnnsBtn",
170615
- intent: "danger",
170616
- disabled: !annotationPropertiesSelectedEntities.length,
170617
- icon: "trash"
170618
- }
170619
- )
170620
- ))),
170621
- onDoubleClick: /* @__PURE__ */ __name((annotation) => {
170622
- showAddOrEditAnnotationDialog({
170623
- type: annotationType,
170624
- annotation
170625
- });
170626
- }, "onDoubleClick"),
170627
- withCheckboxes: true,
170628
- showFeatureIndividual: this.props.showFeatureIndividual,
170629
- hideFeatureIndividual: this.props.hideFeatureIndividual,
170630
- showPartIndividual: this.props.showPartIndividual,
170631
- hidePartIndividual: this.props.hidePartIndividual,
170632
- showPrimerIndividual: this.props.showPrimerIndividual,
170633
- hidePrimerIndividual: this.props.hidePrimerIndividual,
170634
- annotationVisibility: annotationVisibility2,
170635
- featureLengthsToHide: this.props.featureLengthsToHide,
170636
- primerLengthsToHide: this.props.primerLengthsToHide,
170637
- partLengthsToHide: this.props.partLengthsToHide,
170638
- sequence: sequence2,
170639
- noPadding: true,
170640
- noFullscreenButton: true,
170641
- onRowSelect: this.onRowSelect,
170642
- selectedIds: selectedAnnotationId,
170643
- formName: "annotationProperties",
170644
- noRouter: true,
170645
- isProtein: isProtein2,
170646
- compact: true,
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
  ({