@jbrowse/plugin-arc 2.11.0 → 2.11.1

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.
@@ -1,3 +1,3 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- export default class extends FeatureRendererType {
2
+ export default class ArcRenderer extends FeatureRendererType {
3
3
  }
@@ -4,6 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const FeatureRendererType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType"));
7
- class default_1 extends FeatureRendererType_1.default {
7
+ class ArcRenderer extends FeatureRendererType_1.default {
8
8
  }
9
- exports.default = default_1;
9
+ exports.default = ArcRenderer;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import { Feature, Region } from '@jbrowse/core/util';
4
- declare const ArcRendering: ({ features, config, regions, bpPerPx, height, exportSVG, displayModel: { selectedFeatureId }, }: {
4
+ declare const ArcRendering: ({ features, config, regions, bpPerPx, height, exportSVG, onFeatureClick, displayModel: { selectedFeatureId }, }: {
5
5
  features: Map<string, Feature>;
6
6
  config: AnyConfigurationModel;
7
7
  regions: Region[];
@@ -10,6 +10,7 @@ declare const ArcRendering: ({ features, config, regions, bpPerPx, height, expor
10
10
  displayModel: {
11
11
  selectedFeatureId: string;
12
12
  };
13
+ onFeatureClick: (event: React.MouseEvent, featureId: string) => void;
13
14
  exportSVG: boolean;
14
15
  }) => React.JSX.Element;
15
16
  export default ArcRendering;
@@ -46,15 +46,15 @@ function Arc({ selectedFeatureId, region, bpPerPx, config, onFeatureClick, featu
46
46
  const strokeWidth = (0, configuration_1.readConfObject)(config, 'thickness', { feature }) || 1;
47
47
  const height = (0, configuration_1.readConfObject)(config, 'height', { feature }) || 100;
48
48
  const ref = react_1.default.createRef();
49
- const t = 0.5;
50
49
  // formula: https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B%C3%A9zier_curves
50
+ const t = 0.5;
51
51
  const t1 = 1 - t;
52
52
  const textYCoord = 3 * (t1 * t1) * (t * height) + 3 * t1 * (t * t) * height;
53
53
  return (react_1.default.createElement("g", null,
54
- react_1.default.createElement("path", { d: `M ${left} 0 C ${left} ${height}, ${right} ${height}, ${right} 0`, stroke: stroke, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
54
+ react_1.default.createElement("path", { ref: ref, ...(0, util_1.getStrokeProps)(stroke), d: `M ${left} 0 C ${left} ${height}, ${right} ${height}, ${right} 0`, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), pointerEvents: "stroke" }),
55
55
  isMouseOvered ? react_1.default.createElement(ArcTooltip_1.default, { contents: caption }) : null,
56
- react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: 'white', strokeWidth: '0.6em' } }, label),
57
- react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: textStroke } }, label)));
56
+ react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: "white", strokeWidth: "0.6em" }, label),
57
+ react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: textStroke }, label)));
58
58
  }
59
59
  function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
60
60
  const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180;
@@ -96,16 +96,16 @@ function SemiCircles({ selectedFeatureId, region, bpPerPx, config, onFeatureClic
96
96
  const ref = react_1.default.createRef();
97
97
  const textYCoord = (right - left) / 2;
98
98
  return (react_1.default.createElement("g", null,
99
- react_1.default.createElement("path", { d: describeArc(left + (right - left) / 2, 0, (right - left) / 2, 90, 270), stroke: stroke, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
99
+ react_1.default.createElement("path", { d: describeArc(left + (right - left) / 2, 0, (right - left) / 2, 90, 270), ...(0, util_1.getStrokeProps)(stroke), strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
100
100
  isMouseOvered ? react_1.default.createElement(ArcTooltip_1.default, { contents: caption }) : null,
101
- react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: 'white', strokeWidth: '0.6em' } }, label),
102
- react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: textStroke } }, label)));
101
+ react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: "white", strokeWidth: "0.6em" }, label),
102
+ react_1.default.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: textStroke }, label)));
103
103
  }
104
- const ArcRendering = (0, mobx_react_1.observer)(function ({ features, config, regions, bpPerPx, height, exportSVG, displayModel: { selectedFeatureId }, }) {
104
+ const ArcRendering = (0, mobx_react_1.observer)(function ({ features, config, regions, bpPerPx, height, exportSVG, onFeatureClick, displayModel: { selectedFeatureId }, }) {
105
105
  const [region] = regions;
106
106
  const width = (region.end - region.start) / bpPerPx;
107
107
  const semicircles = (0, configuration_1.readConfObject)(config, 'displayMode') === 'semicircles';
108
- return (react_1.default.createElement(Wrapper, { exportSVG: exportSVG, width: width, height: height }, [...features.values()].map(f => semicircles ? (react_1.default.createElement(SemiCircles, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, feature: f })) : (react_1.default.createElement(Arc, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, feature: f })))));
108
+ return (react_1.default.createElement(Wrapper, { exportSVG: exportSVG, width: width, height: height }, [...features.values()].map(f => semicircles ? (react_1.default.createElement(SemiCircles, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, onFeatureClick: onFeatureClick, feature: f })) : (react_1.default.createElement(Arc, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, onFeatureClick: onFeatureClick, feature: f })))));
109
109
  });
110
110
  function Wrapper({ exportSVG, width, height, children, }) {
111
111
  return exportSVG ? (children) : (react_1.default.createElement("svg", { width: width, height: height }, children));
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function ArcRendererF(pluginManager: PluginManager): void;
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ArcRendering_1 = __importDefault(require("./ArcRendering"));
7
7
  const configSchema_1 = __importDefault(require("./configSchema"));
8
8
  const ArcRenderer_1 = __importDefault(require("./ArcRenderer"));
9
- exports.default = (pluginManager) => {
9
+ function ArcRendererF(pluginManager) {
10
10
  pluginManager.addRendererType(() => new ArcRenderer_1.default({
11
11
  name: 'ArcRenderer',
12
12
  ReactComponent: ArcRendering_1.default,
13
13
  configSchema: configSchema_1.default,
14
14
  pluginManager,
15
15
  }));
16
- };
16
+ }
17
+ exports.default = ArcRendererF;
@@ -36,6 +36,7 @@ const ArcTooltip = (0, mobx_react_1.observer)(function ({ contents }) {
36
36
  const { theme, classes } = useStyles();
37
37
  const { refs, floatingStyles, context } = (0, react_2.useFloating)({
38
38
  placement: 'right',
39
+ strategy: 'fixed',
39
40
  });
40
41
  const clientPoint = (0, react_2.useClientPoint)(context);
41
42
  const { getFloatingProps } = (0, react_2.useInteractions)([clientPoint]);
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function LinearArcDisplayF(pluginManager: PluginManager): void;
@@ -4,7 +4,7 @@ const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
4
4
  const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
5
5
  const configSchema_1 = require("./configSchema");
6
6
  const model_1 = require("./model");
7
- exports.default = (pluginManager) => {
7
+ function LinearArcDisplayF(pluginManager) {
8
8
  pluginManager.addDisplayType(() => {
9
9
  const configSchema = (0, configSchema_1.configSchemaFactory)(pluginManager);
10
10
  return new pluggableElementTypes_1.DisplayType({
@@ -17,4 +17,5 @@ exports.default = (pluginManager) => {
17
17
  ReactComponent: plugin_linear_genome_view_1.BaseLinearDisplayComponent,
18
18
  });
19
19
  });
20
- };
20
+ }
21
+ exports.default = LinearArcDisplayF;
@@ -56,9 +56,9 @@ const Arc = (0, mobx_react_1.observer)(function ({ model, feature, alt, assembly
56
56
  const col = mouseOvered ? 'black' : c;
57
57
  const sw = 3;
58
58
  return absrad > 1 ? (react_1.default.createElement(react_1.default.Fragment, null,
59
- react_1.default.createElement("path", { d: `M ${left} 0 C ${left} ${destY}, ${right} ${destY}, ${right} 0`, ref: ref, stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), fill: "none", pointerEvents: "stroke" }),
60
- k1.mateDirection !== undefined ? (react_1.default.createElement("line", { stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: left, x2: left + k1.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
61
- k2.mateDirection !== undefined ? (react_1.default.createElement("line", { stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: right, x2: right + k2.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
59
+ react_1.default.createElement("path", { d: `M ${left} 0 C ${left} ${destY}, ${right} ${destY}, ${right} 0`, ref: ref, ...(0, util_1.getStrokeProps)(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), fill: "none", pointerEvents: "stroke" }),
60
+ k1.mateDirection !== undefined ? (react_1.default.createElement("line", { ...(0, util_1.getStrokeProps)(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: left, x2: left + k1.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
61
+ k2.mateDirection !== undefined ? (react_1.default.createElement("line", { ...(0, util_1.getStrokeProps)(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: right, x2: right + k2.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
62
62
  mouseOvered ? (react_1.default.createElement(ArcTooltip_1.default, { contents: (0, util_2.makeSummary)(feature, alt) })) : null)) : null;
63
63
  }
64
64
  return null;
@@ -1,3 +1,3 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- export default class extends FeatureRendererType {
2
+ export default class ArcRenderer extends FeatureRendererType {
3
3
  }
@@ -1,3 +1,3 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- export default class extends FeatureRendererType {
2
+ export default class ArcRenderer extends FeatureRendererType {
3
3
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import { Feature, Region } from '@jbrowse/core/util';
4
- declare const ArcRendering: ({ features, config, regions, bpPerPx, height, exportSVG, displayModel: { selectedFeatureId }, }: {
4
+ declare const ArcRendering: ({ features, config, regions, bpPerPx, height, exportSVG, onFeatureClick, displayModel: { selectedFeatureId }, }: {
5
5
  features: Map<string, Feature>;
6
6
  config: AnyConfigurationModel;
7
7
  regions: Region[];
@@ -10,6 +10,7 @@ declare const ArcRendering: ({ features, config, regions, bpPerPx, height, expor
10
10
  displayModel: {
11
11
  selectedFeatureId: string;
12
12
  };
13
+ onFeatureClick: (event: React.MouseEvent, featureId: string) => void;
13
14
  exportSVG: boolean;
14
15
  }) => React.JSX.Element;
15
16
  export default ArcRendering;
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from 'react';
2
2
  import { readConfObject, } from '@jbrowse/core/configuration';
3
- import { bpSpanPx } from '@jbrowse/core/util';
3
+ import { bpSpanPx, getStrokeProps } from '@jbrowse/core/util';
4
4
  import { observer } from 'mobx-react';
5
5
  // locals
6
6
  import ArcTooltip from '../ArcTooltip';
@@ -18,15 +18,15 @@ function Arc({ selectedFeatureId, region, bpPerPx, config, onFeatureClick, featu
18
18
  const strokeWidth = readConfObject(config, 'thickness', { feature }) || 1;
19
19
  const height = readConfObject(config, 'height', { feature }) || 100;
20
20
  const ref = React.createRef();
21
- const t = 0.5;
22
21
  // formula: https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B%C3%A9zier_curves
22
+ const t = 0.5;
23
23
  const t1 = 1 - t;
24
24
  const textYCoord = 3 * (t1 * t1) * (t * height) + 3 * t1 * (t * t) * height;
25
25
  return (React.createElement("g", null,
26
- React.createElement("path", { d: `M ${left} 0 C ${left} ${height}, ${right} ${height}, ${right} 0`, stroke: stroke, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
26
+ React.createElement("path", { ref: ref, ...getStrokeProps(stroke), d: `M ${left} 0 C ${left} ${height}, ${right} ${height}, ${right} 0`, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), pointerEvents: "stroke" }),
27
27
  isMouseOvered ? React.createElement(ArcTooltip, { contents: caption }) : null,
28
- React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: 'white', strokeWidth: '0.6em' } }, label),
29
- React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: textStroke } }, label)));
28
+ React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: "white", strokeWidth: "0.6em" }, label),
29
+ React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: textStroke }, label)));
30
30
  }
31
31
  function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
32
32
  const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180;
@@ -68,16 +68,16 @@ function SemiCircles({ selectedFeatureId, region, bpPerPx, config, onFeatureClic
68
68
  const ref = React.createRef();
69
69
  const textYCoord = (right - left) / 2;
70
70
  return (React.createElement("g", null,
71
- React.createElement("path", { d: describeArc(left + (right - left) / 2, 0, (right - left) / 2, 90, 270), stroke: stroke, strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
71
+ React.createElement("path", { d: describeArc(left + (right - left) / 2, 0, (right - left) / 2, 90, 270), ...getStrokeProps(stroke), strokeWidth: strokeWidth, fill: "transparent", onClick: e => onFeatureClick === null || onFeatureClick === void 0 ? void 0 : onFeatureClick(e, featureId), onMouseOver: () => setIsMouseOvered(true), onMouseLeave: () => setIsMouseOvered(false), ref: ref, pointerEvents: "stroke" }),
72
72
  isMouseOvered ? React.createElement(ArcTooltip, { contents: caption }) : null,
73
- React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: 'white', strokeWidth: '0.6em' } }, label),
74
- React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, style: { stroke: textStroke } }, label)));
73
+ React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: "white", strokeWidth: "0.6em" }, label),
74
+ React.createElement("text", { x: left + (right - left) / 2, y: textYCoord + 3, stroke: textStroke }, label)));
75
75
  }
76
- const ArcRendering = observer(function ({ features, config, regions, bpPerPx, height, exportSVG, displayModel: { selectedFeatureId }, }) {
76
+ const ArcRendering = observer(function ({ features, config, regions, bpPerPx, height, exportSVG, onFeatureClick, displayModel: { selectedFeatureId }, }) {
77
77
  const [region] = regions;
78
78
  const width = (region.end - region.start) / bpPerPx;
79
79
  const semicircles = readConfObject(config, 'displayMode') === 'semicircles';
80
- return (React.createElement(Wrapper, { exportSVG: exportSVG, width: width, height: height }, [...features.values()].map(f => semicircles ? (React.createElement(SemiCircles, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, feature: f })) : (React.createElement(Arc, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, feature: f })))));
80
+ return (React.createElement(Wrapper, { exportSVG: exportSVG, width: width, height: height }, [...features.values()].map(f => semicircles ? (React.createElement(SemiCircles, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, onFeatureClick: onFeatureClick, feature: f })) : (React.createElement(Arc, { key: f.id(), config: config, region: region, bpPerPx: bpPerPx, selectedFeatureId: selectedFeatureId, onFeatureClick: onFeatureClick, feature: f })))));
81
81
  });
82
82
  function Wrapper({ exportSVG, width, height, children, }) {
83
83
  return exportSVG ? (children) : (React.createElement("svg", { width: width, height: height }, children));
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function ArcRendererF(pluginManager: PluginManager): void;
@@ -1,11 +1,11 @@
1
1
  import ReactComponent from './ArcRendering';
2
2
  import configSchema from './configSchema';
3
3
  import ArcRenderer from './ArcRenderer';
4
- export default (pluginManager) => {
4
+ export default function ArcRendererF(pluginManager) {
5
5
  pluginManager.addRendererType(() => new ArcRenderer({
6
6
  name: 'ArcRenderer',
7
7
  ReactComponent,
8
8
  configSchema,
9
9
  pluginManager,
10
10
  }));
11
- };
11
+ }
package/esm/ArcTooltip.js CHANGED
@@ -31,6 +31,7 @@ const ArcTooltip = observer(function ({ contents }) {
31
31
  const { theme, classes } = useStyles();
32
32
  const { refs, floatingStyles, context } = useFloating({
33
33
  placement: 'right',
34
+ strategy: 'fixed',
34
35
  });
35
36
  const clientPoint = useClientPoint(context);
36
37
  const { getFloatingProps } = useInteractions([clientPoint]);
@@ -1,3 +1,2 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const _default: (pluginManager: PluginManager) => void;
3
- export default _default;
2
+ export default function LinearArcDisplayF(pluginManager: PluginManager): void;
@@ -2,7 +2,7 @@ import { DisplayType } from '@jbrowse/core/pluggableElementTypes';
2
2
  import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view';
3
3
  import { configSchemaFactory } from './configSchema';
4
4
  import { stateModelFactory } from './model';
5
- export default (pluginManager) => {
5
+ export default function LinearArcDisplayF(pluginManager) {
6
6
  pluginManager.addDisplayType(() => {
7
7
  const configSchema = configSchemaFactory(pluginManager);
8
8
  return new DisplayType({
@@ -15,4 +15,4 @@ export default (pluginManager) => {
15
15
  ReactComponent: BaseLinearDisplayComponent,
16
16
  });
17
17
  });
18
- };
18
+ }
@@ -1,6 +1,6 @@
1
1
  import React, { useRef, useState } from 'react';
2
2
  import { observer } from 'mobx-react';
3
- import { getContainingView, getSession, } from '@jbrowse/core/util';
3
+ import { getContainingView, getSession, getStrokeProps, } from '@jbrowse/core/util';
4
4
  import { getConf } from '@jbrowse/core/configuration';
5
5
  import ArcTooltip from '../../ArcTooltip';
6
6
  import { makeFeaturePair, makeSummary } from './util';
@@ -28,9 +28,9 @@ const Arc = observer(function ({ model, feature, alt, assembly, view, }) {
28
28
  const col = mouseOvered ? 'black' : c;
29
29
  const sw = 3;
30
30
  return absrad > 1 ? (React.createElement(React.Fragment, null,
31
- React.createElement("path", { d: `M ${left} 0 C ${left} ${destY}, ${right} ${destY}, ${right} 0`, ref: ref, stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), fill: "none", pointerEvents: "stroke" }),
32
- k1.mateDirection !== undefined ? (React.createElement("line", { stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: left, x2: left + k1.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
33
- k2.mateDirection !== undefined ? (React.createElement("line", { stroke: col, strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: right, x2: right + k2.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
31
+ React.createElement("path", { d: `M ${left} 0 C ${left} ${destY}, ${right} ${destY}, ${right} 0`, ref: ref, ...getStrokeProps(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), fill: "none", pointerEvents: "stroke" }),
32
+ k1.mateDirection !== undefined ? (React.createElement("line", { ...getStrokeProps(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: left, x2: left + k1.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
33
+ k2.mateDirection !== undefined ? (React.createElement("line", { ...getStrokeProps(col), strokeWidth: sw, onMouseOut: () => setMouseOvered(false), onMouseOver: () => setMouseOvered(true), onClick: () => model.selectFeature(feature), x1: right, x2: right + k2.mateDirection * 20, y1: 1.5, y2: 1.5 })) : null,
34
34
  mouseOvered ? (React.createElement(ArcTooltip, { contents: makeSummary(feature, alt) })) : null)) : null;
35
35
  }
36
36
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-arc",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "JBrowse 2 arc adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "3d43a820b9274a6160aa4dc15616147f390d9094"
56
+ "gitHead": "11b28d66d782eb06f92ccb993108bb6c3c82819e"
57
57
  }