@teselagen/ove 0.8.5 → 0.8.6

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
@@ -109747,14 +109747,21 @@ function getAnnotationNameAndStartStopString({
109747
109747
  end2 = start2 - 1;
109748
109748
  start2 = oldEnd + 1;
109749
109749
  }
109750
- return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""} ${readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
109750
+ const interactionInstructions = readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
109751
109751
 
109752
- click --> top cut position
109753
- alt/option+click --> bottom cut position
109754
- cmd/ctrl+click --> recognition range` : `
109752
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109753
+ INTERACTIONS:
109754
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109755
+ click → top cut position
109756
+ alt/option+click → bottom cut position
109757
+ cmd/ctrl+click → recognition range` : `
109755
109758
 
109756
- alt/option+click --> jump row view to start/end
109757
- double click --> edit`}`;
109759
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109760
+ INTERACTIONS:
109761
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109762
+ alt/option+click → jump row view to start/end
109763
+ double click → edit`;
109764
+ return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""}${interactionInstructions}`;
109758
109765
  }
109759
109766
  __name(getAnnotationNameAndStartStopString, "getAnnotationNameAndStartStopString");
109760
109767
  const orfFrameToColorMap = {
@@ -116604,7 +116611,7 @@ function showFileDialog({ multiple = false, onSelect }) {
116604
116611
  input.click();
116605
116612
  }
116606
116613
  __name(showFileDialog, "showFileDialog");
116607
- const version = "0.8.4";
116614
+ const version = "0.8.5";
116608
116615
  const packageJson = {
116609
116616
  version
116610
116617
  };
@@ -143562,7 +143569,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143562
143569
  this.commands = getCommands(this);
143563
143570
  }
143564
143571
  render() {
143565
- var _a2;
143572
+ var _a2, _b2;
143566
143573
  const {
143567
143574
  readOnly: readOnly2,
143568
143575
  annotations = {},
@@ -143573,7 +143580,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143573
143580
  isProtein: isProtein2,
143574
143581
  allPartTags,
143575
143582
  annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
143576
- selectedAnnotationId
143583
+ selectedAnnotationId,
143584
+ PropertiesProps
143577
143585
  } = this.props;
143578
143586
  const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
143579
143587
  const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
@@ -143585,6 +143593,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143585
143593
  });
143586
143594
  });
143587
143595
  const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
143596
+ const additionalColumns = ((_b2 = PropertiesProps == null ? void 0 : PropertiesProps[annotationType]) == null ? void 0 : _b2.additionalColumns) || [];
143588
143597
  this.schema = {
143589
143598
  fields: [
143590
143599
  {
@@ -143670,7 +143679,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143670
143679
  }, "render")
143671
143680
  }
143672
143681
  ] : [],
143673
- { path: "strand", type: "number" }
143682
+ { path: "strand", type: "number" },
143683
+ ...additionalColumns
143674
143684
  ]
143675
143685
  };
143676
143686
  return /* @__PURE__ */ React$1.createElement(
@@ -143812,8 +143822,9 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143812
143822
  selectionLayer: selectionLayer2,
143813
143823
  featureLengthsToHide: featureLengthsToHide2,
143814
143824
  primerLengthsToHide: primerLengthsToHide2,
143815
- partLengthsToHide: partLengthsToHide2
143816
- }) => {
143825
+ partLengthsToHide: partLengthsToHide2,
143826
+ PropertiesProps
143827
+ }, ownProps) => {
143817
143828
  return {
143818
143829
  annotationVisibility: annotationVisibility2,
143819
143830
  selectionLayer: selectionLayer2,
@@ -143825,7 +143836,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143825
143836
  sequence: sequenceData2.sequence,
143826
143837
  annotations: sequenceData2[annotationType + "s"],
143827
143838
  [annotationType + "s"]: sequenceData2[annotationType + "s"],
143828
- sequenceLength: sequenceData2.sequence.length
143839
+ sequenceLength: sequenceData2.sequence.length,
143840
+ PropertiesProps: ownProps.PropertiesProps || PropertiesProps
143829
143841
  };
143830
143842
  }
143831
143843
  ),
@@ -144447,7 +144459,8 @@ const PropertiesDialog = /* @__PURE__ */ __name((props) => {
144447
144459
  showReadOnly,
144448
144460
  showAvailability,
144449
144461
  disableSetReadOnly,
144450
- selectedAnnotationId
144462
+ selectedAnnotationId,
144463
+ PropertiesProps: props.PropertiesProps
144451
144464
  }), nameOrOverride.name && nameOrOverride))
144452
144465
  )
144453
144466
  }
@@ -145397,7 +145410,7 @@ const _panelMap = {
145397
145410
  pcrTool: PCRTool$1,
145398
145411
  properties: {
145399
145412
  comp: Properties,
145400
- panelSpecificPropsToSpread: ["PropertiesProps"]
145413
+ panelSpecificProps: ["PropertiesProps"]
145401
145414
  },
145402
145415
  mismatches: Mismatches$1
145403
145416
  };
package/index.es.js CHANGED
@@ -109729,14 +109729,21 @@ function getAnnotationNameAndStartStopString({
109729
109729
  end2 = start2 - 1;
109730
109730
  start2 = oldEnd + 1;
109731
109731
  }
109732
- return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""} ${readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
109732
+ const interactionInstructions = readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
109733
109733
 
109734
- click --> top cut position
109735
- alt/option+click --> bottom cut position
109736
- cmd/ctrl+click --> recognition range` : `
109734
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109735
+ INTERACTIONS:
109736
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109737
+ click → top cut position
109738
+ alt/option+click → bottom cut position
109739
+ cmd/ctrl+click → recognition range` : `
109737
109740
 
109738
- alt/option+click --> jump row view to start/end
109739
- double click --> edit`}`;
109741
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109742
+ INTERACTIONS:
109743
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109744
+ alt/option+click → jump row view to start/end
109745
+ double click → edit`;
109746
+ return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""}${interactionInstructions}`;
109740
109747
  }
109741
109748
  __name(getAnnotationNameAndStartStopString, "getAnnotationNameAndStartStopString");
109742
109749
  const orfFrameToColorMap = {
@@ -116586,7 +116593,7 @@ function showFileDialog({ multiple = false, onSelect }) {
116586
116593
  input.click();
116587
116594
  }
116588
116595
  __name(showFileDialog, "showFileDialog");
116589
- const version = "0.8.4";
116596
+ const version = "0.8.5";
116590
116597
  const packageJson = {
116591
116598
  version
116592
116599
  };
@@ -143544,7 +143551,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143544
143551
  this.commands = getCommands(this);
143545
143552
  }
143546
143553
  render() {
143547
- var _a2;
143554
+ var _a2, _b2;
143548
143555
  const {
143549
143556
  readOnly: readOnly2,
143550
143557
  annotations = {},
@@ -143555,7 +143562,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143555
143562
  isProtein: isProtein2,
143556
143563
  allPartTags,
143557
143564
  annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
143558
- selectedAnnotationId
143565
+ selectedAnnotationId,
143566
+ PropertiesProps
143559
143567
  } = this.props;
143560
143568
  const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
143561
143569
  const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
@@ -143567,6 +143575,7 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143567
143575
  });
143568
143576
  });
143569
143577
  const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
143578
+ const additionalColumns = ((_b2 = PropertiesProps == null ? void 0 : PropertiesProps[annotationType]) == null ? void 0 : _b2.additionalColumns) || [];
143570
143579
  this.schema = {
143571
143580
  fields: [
143572
143581
  {
@@ -143652,7 +143661,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143652
143661
  }, "render")
143653
143662
  }
143654
143663
  ] : [],
143655
- { path: "strand", type: "number" }
143664
+ { path: "strand", type: "number" },
143665
+ ...additionalColumns
143656
143666
  ]
143657
143667
  };
143658
143668
  return /* @__PURE__ */ React__default.createElement(
@@ -143794,8 +143804,9 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143794
143804
  selectionLayer: selectionLayer2,
143795
143805
  featureLengthsToHide: featureLengthsToHide2,
143796
143806
  primerLengthsToHide: primerLengthsToHide2,
143797
- partLengthsToHide: partLengthsToHide2
143798
- }) => {
143807
+ partLengthsToHide: partLengthsToHide2,
143808
+ PropertiesProps
143809
+ }, ownProps) => {
143799
143810
  return {
143800
143811
  annotationVisibility: annotationVisibility2,
143801
143812
  selectionLayer: selectionLayer2,
@@ -143807,7 +143818,8 @@ const genericAnnotationProperties = /* @__PURE__ */ __name(({
143807
143818
  sequence: sequenceData2.sequence,
143808
143819
  annotations: sequenceData2[annotationType + "s"],
143809
143820
  [annotationType + "s"]: sequenceData2[annotationType + "s"],
143810
- sequenceLength: sequenceData2.sequence.length
143821
+ sequenceLength: sequenceData2.sequence.length,
143822
+ PropertiesProps: ownProps.PropertiesProps || PropertiesProps
143811
143823
  };
143812
143824
  }
143813
143825
  ),
@@ -144429,7 +144441,8 @@ const PropertiesDialog = /* @__PURE__ */ __name((props) => {
144429
144441
  showReadOnly,
144430
144442
  showAvailability,
144431
144443
  disableSetReadOnly,
144432
- selectedAnnotationId
144444
+ selectedAnnotationId,
144445
+ PropertiesProps: props.PropertiesProps
144433
144446
  }), nameOrOverride.name && nameOrOverride))
144434
144447
  )
144435
144448
  }
@@ -145379,7 +145392,7 @@ const _panelMap = {
145379
145392
  pcrTool: PCRTool$1,
145380
145393
  properties: {
145381
145394
  comp: Properties,
145382
- panelSpecificPropsToSpread: ["PropertiesProps"]
145395
+ panelSpecificProps: ["PropertiesProps"]
145383
145396
  },
145384
145397
  mismatches: Mismatches$1
145385
145398
  };
package/index.umd.js CHANGED
@@ -137895,14 +137895,21 @@ ${seq.sequence}
137895
137895
  end2 = start2 - 1;
137896
137896
  start2 = oldEnd + 1;
137897
137897
  }
137898
- return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""} ${readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
137898
+ const interactionInstructions = readOnly2 ? "" : annotationTypePlural === "cutsites" ? `
137899
137899
 
137900
- click --> top cut position
137901
- alt/option+click --> bottom cut position
137902
- cmd/ctrl+click --> recognition range` : `
137900
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
137901
+ INTERACTIONS:
137902
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
137903
+ click → top cut position
137904
+ alt/option+click → bottom cut position
137905
+ cmd/ctrl+click → recognition range` : `
137903
137906
 
137904
- alt/option+click --> jump row view to start/end
137905
- double click --> edit`}`;
137907
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
137908
+ INTERACTIONS:
137909
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
137910
+ alt/option+click → jump row view to start/end
137911
+ double click → edit`;
137912
+ return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${name2 ? name2 : ""} - Start: ${isProtein2 ? (start2 + 3) / 3 : start2 + 1} End: ${isProtein2 ? (end2 + 1) / 3 : end2 + 1} ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""}${interactionInstructions}`;
137906
137913
  }
137907
137914
  __name(getAnnotationNameAndStartStopString, "getAnnotationNameAndStartStopString");
137908
137915
  const orfFrameToColorMap = {
@@ -144702,7 +144709,7 @@ Part of ${annotation.translationType} Translation from BPs ${annotation.start +
144702
144709
  input.click();
144703
144710
  }
144704
144711
  __name(showFileDialog, "showFileDialog");
144705
- const version = "0.8.4";
144712
+ const version = "0.8.5";
144706
144713
  const packageJson = {
144707
144714
  version
144708
144715
  };
@@ -170058,7 +170065,7 @@ ${seqDataToCopy}\r
170058
170065
  this.commands = getCommands(this);
170059
170066
  }
170060
170067
  render() {
170061
- var _a2;
170068
+ var _a2, _b2;
170062
170069
  const {
170063
170070
  readOnly: readOnly2,
170064
170071
  annotations = {},
@@ -170069,7 +170076,8 @@ ${seqDataToCopy}\r
170069
170076
  isProtein: isProtein2,
170070
170077
  allPartTags,
170071
170078
  annotationPropertiesSelectedEntities: _annotationPropertiesSelectedEntities,
170072
- selectedAnnotationId
170079
+ selectedAnnotationId,
170080
+ PropertiesProps
170073
170081
  } = this.props;
170074
170082
  const annotationPropertiesSelectedEntities = _annotationPropertiesSelectedEntities.filter((a2) => annotations[a2.id]);
170075
170083
  const deleteAnnotation = this.props[`delete${annotationTypeUpper}`];
@@ -170081,6 +170089,7 @@ ${seqDataToCopy}\r
170081
170089
  });
170082
170090
  });
170083
170091
  const keyedPartTags = (_a2 = getKeyedTagsAndTagOptions(allPartTags)) != null ? _a2 : {};
170092
+ const additionalColumns = ((_b2 = PropertiesProps == null ? void 0 : PropertiesProps[annotationType]) == null ? void 0 : _b2.additionalColumns) || [];
170084
170093
  this.schema = {
170085
170094
  fields: [
170086
170095
  {
@@ -170166,7 +170175,8 @@ ${seqDataToCopy}\r
170166
170175
  }, "render")
170167
170176
  }
170168
170177
  ] : [],
170169
- { path: "strand", type: "number" }
170178
+ { path: "strand", type: "number" },
170179
+ ...additionalColumns
170170
170180
  ]
170171
170181
  };
170172
170182
  return /* @__PURE__ */ React$1.createElement(
@@ -170308,8 +170318,9 @@ ${seqDataToCopy}\r
170308
170318
  selectionLayer: selectionLayer2,
170309
170319
  featureLengthsToHide: featureLengthsToHide2,
170310
170320
  primerLengthsToHide: primerLengthsToHide2,
170311
- partLengthsToHide: partLengthsToHide2
170312
- }) => {
170321
+ partLengthsToHide: partLengthsToHide2,
170322
+ PropertiesProps
170323
+ }, ownProps) => {
170313
170324
  return {
170314
170325
  annotationVisibility: annotationVisibility2,
170315
170326
  selectionLayer: selectionLayer2,
@@ -170321,7 +170332,8 @@ ${seqDataToCopy}\r
170321
170332
  sequence: sequenceData2.sequence,
170322
170333
  annotations: sequenceData2[annotationType + "s"],
170323
170334
  [annotationType + "s"]: sequenceData2[annotationType + "s"],
170324
- sequenceLength: sequenceData2.sequence.length
170335
+ sequenceLength: sequenceData2.sequence.length,
170336
+ PropertiesProps: ownProps.PropertiesProps || PropertiesProps
170325
170337
  };
170326
170338
  }
170327
170339
  ),
@@ -170943,7 +170955,8 @@ ${seqDataToCopy}\r
170943
170955
  showReadOnly,
170944
170956
  showAvailability,
170945
170957
  disableSetReadOnly,
170946
- selectedAnnotationId
170958
+ selectedAnnotationId,
170959
+ PropertiesProps: props.PropertiesProps
170947
170960
  }), nameOrOverride.name && nameOrOverride))
170948
170961
  )
170949
170962
  }
@@ -171893,7 +171906,7 @@ ${seqDataToCopy}\r
171893
171906
  pcrTool: PCRTool$1,
171894
171907
  properties: {
171895
171908
  comp: Properties,
171896
- panelSpecificPropsToSpread: ["PropertiesProps"]
171909
+ panelSpecificProps: ["PropertiesProps"]
171897
171910
  },
171898
171911
  mismatches: Mismatches$1
171899
171912
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teselagen/ove",
3
- "version": "0.8.5",
3
+ "version": "0.8.6",
4
4
  "main": "./src/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -77,7 +77,7 @@ const _panelMap = {
77
77
  pcrTool: PCRTool,
78
78
  properties: {
79
79
  comp: Properties,
80
- panelSpecificPropsToSpread: ["PropertiesProps"]
80
+ panelSpecificProps: ["PropertiesProps"]
81
81
  },
82
82
  mismatches: Mismatches
83
83
  };
@@ -68,7 +68,8 @@ const genericAnnotationProperties = ({
68
68
  allPartTags,
69
69
  annotationPropertiesSelectedEntities:
70
70
  _annotationPropertiesSelectedEntities,
71
- selectedAnnotationId
71
+ selectedAnnotationId,
72
+ PropertiesProps
72
73
  } = this.props;
73
74
  const annotationPropertiesSelectedEntities =
74
75
  _annotationPropertiesSelectedEntities.filter(a => annotations[a.id]);
@@ -87,6 +88,9 @@ const genericAnnotationProperties = ({
87
88
 
88
89
  const keyedPartTags = getKeyedTagsAndTagOptions(allPartTags) ?? {};
89
90
 
91
+ const additionalColumns =
92
+ PropertiesProps?.[annotationType]?.additionalColumns || [];
93
+
90
94
  this.schema = {
91
95
  fields: [
92
96
  {
@@ -194,7 +198,8 @@ const genericAnnotationProperties = ({
194
198
  }
195
199
  ]
196
200
  : []),
197
- { path: "strand", type: "number" }
201
+ { path: "strand", type: "number" },
202
+ ...additionalColumns
198
203
  ]
199
204
  };
200
205
 
@@ -351,15 +356,19 @@ const genericAnnotationProperties = ({
351
356
 
352
357
  return compose(
353
358
  connectToEditor(
354
- ({
355
- readOnly,
356
- annotationVisibility = {},
357
- sequenceData,
358
- selectionLayer,
359
- featureLengthsToHide,
360
- primerLengthsToHide,
361
- partLengthsToHide
362
- }) => {
359
+ (
360
+ {
361
+ readOnly,
362
+ annotationVisibility = {},
363
+ sequenceData,
364
+ selectionLayer,
365
+ featureLengthsToHide,
366
+ primerLengthsToHide,
367
+ partLengthsToHide,
368
+ PropertiesProps
369
+ },
370
+ ownProps
371
+ ) => {
363
372
  return {
364
373
  annotationVisibility,
365
374
  selectionLayer,
@@ -371,7 +380,8 @@ const genericAnnotationProperties = ({
371
380
  sequence: sequenceData.sequence,
372
381
  annotations: sequenceData[annotationType + "s"],
373
382
  [annotationType + "s"]: sequenceData[annotationType + "s"],
374
- sequenceLength: sequenceData.sequence.length
383
+ sequenceLength: sequenceData.sequence.length,
384
+ PropertiesProps: ownProps.PropertiesProps || PropertiesProps
375
385
  };
376
386
  }
377
387
  ),
@@ -16,7 +16,8 @@ import { userDefinedHandlersAndOpts } from "../../Editor/userDefinedHandlersAndO
16
16
  import { pick } from "lodash-es";
17
17
 
18
18
  const PropertiesContainer = Comp => props => {
19
- const { additionalFooterEls, additionalHeaderEls, overrideEl, ...rest } = props;
19
+ const { additionalFooterEls, additionalHeaderEls, overrideEl, ...rest } =
20
+ props;
20
21
  return (
21
22
  <>
22
23
  {additionalHeaderEls}
@@ -113,6 +114,7 @@ export const PropertiesDialog = props => {
113
114
  showAvailability,
114
115
  disableSetReadOnly,
115
116
  selectedAnnotationId,
117
+ PropertiesProps: props.PropertiesProps,
116
118
  ...(nameOrOverride.name && nameOrOverride)
117
119
  }}
118
120
  />
@@ -40,22 +40,16 @@ export default function getAnnotationNameAndStartStopString(
40
40
  end = start - 1;
41
41
  start = oldEnd + 1;
42
42
  }
43
+
44
+ const interactionInstructions = readOnly
45
+ ? ""
46
+ : annotationTypePlural === "cutsites"
47
+ ? `\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n INTERACTIONS:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n click → top cut position\n alt/option+click → bottom cut position\n cmd/ctrl+click → recognition range`
48
+ : `\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n INTERACTIONS:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n alt/option+click → jump row view to start/end\n double click → edit`;
49
+
43
50
  return `${startText ? startText : ""} ${typeToUse ? typeToUse + " -" : ""} ${
44
51
  name ? name : ""
45
52
  } - Start: ${isProtein ? (start + 3) / 3 : start + 1} End: ${
46
53
  isProtein ? (end + 1) / 3 : end + 1
47
- } ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""} ${
48
- readOnly
49
- ? ""
50
- : annotationTypePlural === "cutsites"
51
- ? `
52
-
53
- click --> top cut position
54
- alt/option+click --> bottom cut position
55
- cmd/ctrl+click --> recognition range`
56
- : `
57
-
58
- alt/option+click --> jump row view to start/end
59
- double click --> edit`
60
- }`;
54
+ } ${overlapsSelf ? "(Overlaps Self) " : ""}${message ? "\n" + message : ""}${interactionInstructions}`;
61
55
  }