@jbrowse/plugin-wiggle 2.18.0 → 3.0.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.
Files changed (144) hide show
  1. package/dist/BigWigAdapter/index.js +17 -7
  2. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +1 -2
  3. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +12 -47
  4. package/dist/CreateMultiWiggleExtension/index.js +17 -7
  5. package/dist/DensityRenderer/DensityRenderer.js +35 -2
  6. package/dist/GuessAdapter/index.d.ts +2 -0
  7. package/dist/GuessAdapter/index.js +25 -0
  8. package/dist/LinePlotRenderer/LinePlotRenderer.js +35 -2
  9. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +1 -2
  10. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +21 -57
  11. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +1 -2
  12. package/dist/LinearWiggleDisplay/components/Tooltip.js +5 -17
  13. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  14. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +9 -12
  15. package/dist/LinearWiggleDisplay/index.js +17 -7
  16. package/dist/LinearWiggleDisplay/model.d.ts +31 -8
  17. package/dist/LinearWiggleDisplay/model.js +37 -20
  18. package/dist/LinearWiggleDisplay/renderSvg.d.ts +1 -2
  19. package/dist/LinearWiggleDisplay/renderSvg.js +2 -5
  20. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +38 -3
  21. package/dist/MultiLineRenderer/MultiLineRenderer.js +35 -2
  22. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +2 -4
  23. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +5 -14
  24. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +7 -0
  25. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +17 -0
  26. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +7 -0
  27. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +15 -0
  28. package/dist/MultiLinearWiggleDisplay/components/LegendItem.d.ts +11 -0
  29. package/dist/MultiLinearWiggleDisplay/components/LegendItem.js +19 -0
  30. package/dist/MultiLinearWiggleDisplay/components/RectBg.d.ts +1 -2
  31. package/dist/MultiLinearWiggleDisplay/components/RectBg.js +2 -5
  32. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -2
  33. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.js +2 -4
  34. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -2
  35. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +18 -55
  36. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -2
  37. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.js +79 -85
  38. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -2
  39. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +7 -21
  40. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  41. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -4
  42. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -2
  43. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +7 -27
  44. package/dist/MultiLinearWiggleDisplay/index.js +17 -7
  45. package/dist/MultiLinearWiggleDisplay/model.d.ts +10 -7
  46. package/dist/MultiLinearWiggleDisplay/model.js +30 -8
  47. package/dist/MultiLinearWiggleDisplay/renderSvg.d.ts +1 -2
  48. package/dist/MultiLinearWiggleDisplay/renderSvg.js +2 -5
  49. package/dist/MultiLinearWiggleDisplay/util.d.ts +1 -0
  50. package/dist/MultiLinearWiggleDisplay/util.js +10 -0
  51. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +35 -2
  52. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +35 -2
  53. package/dist/MultiWiggleAdapter/index.js +17 -7
  54. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +3 -3
  55. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +61 -100
  56. package/dist/MultiWiggleAddTrackWorkflow/index.js +17 -7
  57. package/dist/MultiWiggleRendering.d.ts +1 -2
  58. package/dist/MultiWiggleRendering.js +4 -27
  59. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +35 -2
  60. package/dist/Tooltip.d.ts +1 -2
  61. package/dist/Tooltip.js +6 -32
  62. package/dist/WiggleBaseRenderer.d.ts +3 -3
  63. package/dist/WiggleRendering.d.ts +1 -2
  64. package/dist/WiggleRendering.js +4 -27
  65. package/dist/XYPlotRenderer/XYPlotRenderer.js +35 -2
  66. package/dist/index.d.ts +3 -3
  67. package/dist/index.js +19 -34
  68. package/dist/shared/SetMinMaxDialog.d.ts +1 -2
  69. package/dist/shared/SetMinMaxDialog.js +11 -41
  70. package/dist/shared/SharedWiggleMixin.d.ts +6 -6
  71. package/dist/shared/SharedWiggleMixin.js +17 -7
  72. package/dist/shared/YScaleBar.d.ts +1 -2
  73. package/dist/shared/YScaleBar.js +2 -5
  74. package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +1 -2
  75. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +12 -24
  76. package/esm/DensityRenderer/DensityRenderer.js +1 -1
  77. package/esm/GuessAdapter/index.d.ts +2 -0
  78. package/esm/GuessAdapter/index.js +22 -0
  79. package/esm/LinePlotRenderer/LinePlotRenderer.js +1 -1
  80. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +1 -2
  81. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +21 -34
  82. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +1 -2
  83. package/esm/LinearWiggleDisplay/components/Tooltip.js +5 -17
  84. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  85. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +9 -12
  86. package/esm/LinearWiggleDisplay/model.d.ts +31 -8
  87. package/esm/LinearWiggleDisplay/model.js +20 -13
  88. package/esm/LinearWiggleDisplay/renderSvg.d.ts +1 -2
  89. package/esm/LinearWiggleDisplay/renderSvg.js +2 -5
  90. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +4 -2
  91. package/esm/MultiLineRenderer/MultiLineRenderer.js +1 -1
  92. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +2 -4
  93. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +5 -14
  94. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +7 -0
  95. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +12 -0
  96. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +7 -0
  97. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +10 -0
  98. package/esm/MultiLinearWiggleDisplay/components/LegendItem.d.ts +11 -0
  99. package/esm/MultiLinearWiggleDisplay/components/LegendItem.js +14 -0
  100. package/esm/MultiLinearWiggleDisplay/components/RectBg.d.ts +1 -2
  101. package/esm/MultiLinearWiggleDisplay/components/RectBg.js +2 -2
  102. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -2
  103. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +2 -4
  104. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -2
  105. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +18 -32
  106. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -2
  107. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.js +62 -78
  108. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -2
  109. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +7 -21
  110. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -2
  111. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -4
  112. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -2
  113. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +8 -28
  114. package/esm/MultiLinearWiggleDisplay/model.d.ts +10 -7
  115. package/esm/MultiLinearWiggleDisplay/model.js +14 -2
  116. package/esm/MultiLinearWiggleDisplay/renderSvg.d.ts +1 -2
  117. package/esm/MultiLinearWiggleDisplay/renderSvg.js +2 -5
  118. package/esm/MultiLinearWiggleDisplay/util.d.ts +1 -0
  119. package/esm/MultiLinearWiggleDisplay/util.js +7 -0
  120. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -1
  121. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -1
  122. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +3 -3
  123. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +61 -76
  124. package/esm/MultiWiggleRendering.d.ts +1 -2
  125. package/esm/MultiWiggleRendering.js +4 -4
  126. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +1 -1
  127. package/esm/Tooltip.d.ts +1 -2
  128. package/esm/Tooltip.js +6 -9
  129. package/esm/WiggleBaseRenderer.d.ts +3 -3
  130. package/esm/WiggleRendering.d.ts +1 -2
  131. package/esm/WiggleRendering.js +4 -4
  132. package/esm/XYPlotRenderer/XYPlotRenderer.js +1 -1
  133. package/esm/index.d.ts +3 -3
  134. package/esm/index.js +2 -27
  135. package/esm/shared/SetMinMaxDialog.d.ts +1 -2
  136. package/esm/shared/SetMinMaxDialog.js +11 -18
  137. package/esm/shared/SharedWiggleMixin.d.ts +6 -6
  138. package/esm/shared/YScaleBar.d.ts +1 -2
  139. package/esm/shared/YScaleBar.js +2 -2
  140. package/package.json +12 -13
  141. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +0 -6
  142. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js +0 -62
  143. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +0 -6
  144. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js +0 -34
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -29,6 +39,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
39
  const react_1 = require("react");
30
40
  const configuration_1 = require("@jbrowse/core/configuration");
31
41
  const util_1 = require("@jbrowse/core/util");
42
+ const Equalizer_1 = __importDefault(require("@mui/icons-material/Equalizer"));
43
+ const Palette_1 = __importDefault(require("@mui/icons-material/Palette"));
44
+ const Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
32
45
  const mobx_state_tree_1 = require("mobx-state-tree");
33
46
  const react_d3_axis_mod_1 = require("react-d3-axis-mod");
34
47
  const SharedWiggleMixin_1 = __importDefault(require("../shared/SharedWiggleMixin"));
@@ -142,8 +155,10 @@ function stateModelFactory(pluginManager, configSchema) {
142
155
  trackMenuItems() {
143
156
  return [
144
157
  ...superTrackMenuItems(),
158
+ { type: 'divider' },
145
159
  {
146
160
  label: 'Score',
161
+ icon: Equalizer_1.default,
147
162
  subMenu: self.scoreTrackMenuItems(),
148
163
  },
149
164
  ...(self.canHaveFill
@@ -161,18 +176,6 @@ function stateModelFactory(pluginManager, configSchema) {
161
176
  },
162
177
  ]
163
178
  : []),
164
- ...(self.needsScalebar
165
- ? [
166
- {
167
- type: 'checkbox',
168
- label: 'Draw cross hatches',
169
- checked: self.displayCrossHatchesSetting,
170
- onClick: () => {
171
- self.toggleCrossHatches();
172
- },
173
- },
174
- ]
175
- : []),
176
179
  ...(hasRenderings
177
180
  ? [
178
181
  {
@@ -189,7 +192,8 @@ function stateModelFactory(pluginManager, configSchema) {
189
192
  ]
190
193
  : []),
191
194
  {
192
- label: 'Set color',
195
+ label: 'Color',
196
+ icon: Palette_1.default,
193
197
  onClick: () => {
194
198
  (0, util_1.getSession)(self).queueDialog(handleClose => [
195
199
  SetColorDialog,
@@ -200,6 +204,19 @@ function stateModelFactory(pluginManager, configSchema) {
200
204
  ]);
201
205
  },
202
206
  },
207
+ ...(self.needsScalebar
208
+ ? [
209
+ {
210
+ type: 'checkbox',
211
+ icon: Visibility_1.default,
212
+ label: 'Show cross hatches',
213
+ checked: self.displayCrossHatchesSetting,
214
+ onClick: () => {
215
+ self.toggleCrossHatches();
216
+ },
217
+ },
218
+ ]
219
+ : []),
203
220
  ];
204
221
  },
205
222
  };
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { WiggleDisplayModel } from './model';
3
2
  import type { ExportSvgDisplayOptions } from '@jbrowse/plugin-linear-genome-view';
4
- export declare function renderSvg(self: WiggleDisplayModel, opts: ExportSvgDisplayOptions, superRenderSvg: (opts: ExportSvgDisplayOptions) => Promise<React.ReactNode>): Promise<React.JSX.Element>;
3
+ export declare function renderSvg(self: WiggleDisplayModel, opts: ExportSvgDisplayOptions, superRenderSvg: (opts: ExportSvgDisplayOptions) => Promise<React.ReactNode>): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderSvg = renderSvg;
7
- const react_1 = __importDefault(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const util_1 = require("@jbrowse/core/util");
9
9
  const mobx_1 = require("mobx");
10
10
  const YScaleBar_1 = __importDefault(require("../shared/YScaleBar"));
@@ -12,8 +12,5 @@ async function renderSvg(self, opts, superRenderSvg) {
12
12
  await (0, mobx_1.when)(() => !!self.stats && !!self.regionCannotBeRenderedText);
13
13
  const { needsScalebar, stats } = self;
14
14
  const { offsetPx } = (0, util_1.getContainingView)(self);
15
- return (react_1.default.createElement(react_1.default.Fragment, null,
16
- react_1.default.createElement("g", null, await superRenderSvg(opts)),
17
- needsScalebar && stats ? (react_1.default.createElement("g", { transform: `translate(${Math.max(-offsetPx, 0)})` },
18
- react_1.default.createElement(YScaleBar_1.default, { model: self, orientation: "left" }))) : null));
15
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("g", { children: await superRenderSvg(opts) }), needsScalebar && stats ? ((0, jsx_runtime_1.jsx)("g", { transform: `translate(${Math.max(-offsetPx, 0)})`, children: (0, jsx_runtime_1.jsx)(YScaleBar_1.default, { model: self, orientation: "left" }) })) : null] }));
19
16
  }
@@ -1,21 +1,54 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  const util_1 = require("@jbrowse/core/util");
7
40
  const WiggleBaseRenderer_1 = __importDefault(require("../WiggleBaseRenderer"));
8
- const drawDensity_1 = require("../drawDensity");
9
41
  class MultiDensityPlotRenderer extends WiggleBaseRenderer_1.default {
10
42
  async draw(ctx, props) {
11
43
  const { sources, features } = props;
12
44
  const groups = (0, util_1.groupBy)(features.values(), f => f.get('source'));
13
45
  const height = props.height / sources.length;
14
46
  let feats = [];
47
+ const { drawDensity } = await Promise.resolve().then(() => __importStar(require('../drawDensity')));
15
48
  ctx.save();
16
49
  sources.forEach(source => {
17
50
  const features = groups[source.name] || [];
18
- const { reducedFeatures } = (0, drawDensity_1.drawDensity)(ctx, {
51
+ const { reducedFeatures } = drawDensity(ctx, {
19
52
  ...props,
20
53
  features,
21
54
  height,
@@ -24,7 +57,9 @@ class MultiDensityPlotRenderer extends WiggleBaseRenderer_1.default {
24
57
  feats = feats.concat(reducedFeatures);
25
58
  });
26
59
  ctx.restore();
27
- return { reducedFeatures: feats };
60
+ return {
61
+ reducedFeatures: feats,
62
+ };
28
63
  }
29
64
  }
30
65
  exports.default = MultiDensityPlotRenderer;
@@ -1,18 +1,51 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  const util_1 = require("@jbrowse/core/util");
7
40
  const WiggleBaseRenderer_1 = __importDefault(require("../WiggleBaseRenderer"));
8
- const drawLine_1 = require("../drawLine");
9
41
  class MultiLineRenderer extends WiggleBaseRenderer_1.default {
10
42
  async draw(ctx, props) {
11
43
  const { sources, features } = props;
12
44
  const groups = (0, util_1.groupBy)(features.values(), f => f.get('source'));
45
+ const { drawLine } = await Promise.resolve().then(() => __importStar(require('../drawLine')));
13
46
  let feats = [];
14
47
  sources.forEach(source => {
15
- const { reducedFeatures } = (0, drawLine_1.drawLine)(ctx, {
48
+ const { reducedFeatures } = drawLine(ctx, {
16
49
  ...props,
17
50
  features: groups[source.name] || [],
18
51
  colorCallback: () => source.color || 'blue',
@@ -1,9 +1,7 @@
1
- import React from 'react';
2
1
  import type { WiggleDisplayModel } from '../model';
3
- declare const ColorLegend: ({ model, rowHeight, labelWidth, exportSVG, }: {
2
+ declare const ColorLegend: ({ model, rowHeight, exportSVG, }: {
4
3
  model: WiggleDisplayModel;
5
4
  rowHeight: number;
6
- labelWidth: number;
7
5
  exportSVG?: boolean;
8
- }) => React.JSX.Element | null;
6
+ }) => import("react/jsx-runtime").JSX.Element | null;
9
7
  export default ColorLegend;
@@ -3,25 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const mobx_react_1 = require("mobx-react");
8
+ const LegendItem_1 = __importDefault(require("./LegendItem"));
8
9
  const RectBg_1 = __importDefault(require("./RectBg"));
9
- const ColorLegend = (0, mobx_react_1.observer)(function ({ model, rowHeight, labelWidth, exportSVG, }) {
10
- const { needsCustomLegend, needsScalebar, needsFullHeightScalebar, rowHeightTooSmallForScalebar, renderColorBoxes, sources, } = model;
11
- const svgFontSize = Math.min(rowHeight, 12);
12
- const canDisplayLabel = rowHeight > 11;
10
+ const ColorLegend = (0, mobx_react_1.observer)(function ({ model, rowHeight, exportSVG, }) {
11
+ const { needsScalebar, needsFullHeightScalebar, rowHeightTooSmallForScalebar, renderColorBoxes, sources, labelWidth, } = model;
13
12
  const colorBoxWidth = renderColorBoxes ? 15 : 0;
14
13
  const legendWidth = labelWidth + colorBoxWidth + 5;
15
14
  const svgOffset = exportSVG ? 10 : 0;
16
15
  const extraOffset = svgOffset || (needsScalebar && !rowHeightTooSmallForScalebar ? 50 : 0);
17
- return sources ? (react_1.default.createElement(react_1.default.Fragment, null,
18
- needsFullHeightScalebar ? (react_1.default.createElement(RectBg_1.default, { y: 0, x: extraOffset, width: legendWidth, height: (sources.length + 0.25) * rowHeight })) : null,
19
- sources.map((source, idx) => {
20
- const boxHeight = Math.min(20, rowHeight);
21
- return (react_1.default.createElement(react_1.default.Fragment, { key: `${source.name}-${idx}` },
22
- needsFullHeightScalebar ? null : (react_1.default.createElement(RectBg_1.default, { y: idx * rowHeight + 1, x: extraOffset, width: legendWidth, height: boxHeight })),
23
- source.color ? (react_1.default.createElement(RectBg_1.default, { y: idx * rowHeight + 1, x: extraOffset, width: colorBoxWidth, height: needsCustomLegend ? rowHeight : boxHeight, color: source.color })) : null,
24
- canDisplayLabel ? (react_1.default.createElement("text", { y: idx * rowHeight + 13, x: extraOffset + colorBoxWidth + 2, fontSize: svgFontSize }, source.name)) : null));
25
- }))) : null;
16
+ return sources ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [needsFullHeightScalebar ? ((0, jsx_runtime_1.jsx)(RectBg_1.default, { y: 0, x: extraOffset, width: legendWidth, height: (sources.length + 0.25) * rowHeight })) : null, sources.map((source, idx) => ((0, jsx_runtime_1.jsx)(LegendItem_1.default, { source: source, idx: idx, model: model, rowHeight: rowHeight, exportSVG: exportSVG, labelWidth: labelWidth }, `${source.name}-${idx}`)))] })) : null;
26
17
  });
27
18
  exports.default = ColorLegend;
@@ -0,0 +1,7 @@
1
+ import type { WiggleDisplayModel } from '../model';
2
+ declare const FullHeightScaleBar: ({ model, orientation, exportSVG, }: {
3
+ model: WiggleDisplayModel;
4
+ orientation?: string;
5
+ exportSVG?: boolean;
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ export default FullHeightScaleBar;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const util_1 = require("@jbrowse/core/util");
8
+ const mobx_react_1 = require("mobx-react");
9
+ const ColorLegend_1 = __importDefault(require("./ColorLegend"));
10
+ const util_2 = require("./util");
11
+ const YScaleBar_1 = __importDefault(require("../../shared/YScaleBar"));
12
+ const FullHeightScaleBar = (0, mobx_react_1.observer)(function ({ model, orientation, exportSVG, }) {
13
+ const { labelWidth } = model;
14
+ const { width: viewWidth } = (0, util_1.getContainingView)(model);
15
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("g", { transform: `translate(${!exportSVG ? (0, util_2.getOffset)(model) : 0},0)`, children: (0, jsx_runtime_1.jsx)(YScaleBar_1.default, { model: model, orientation: orientation }) }), (0, jsx_runtime_1.jsx)("g", { transform: `translate(${viewWidth - labelWidth - 100},0)`, children: (0, jsx_runtime_1.jsx)(ColorLegend_1.default, { exportSVG: exportSVG, model: model, rowHeight: 12 }) })] }));
16
+ });
17
+ exports.default = FullHeightScaleBar;
@@ -0,0 +1,7 @@
1
+ import type { WiggleDisplayModel } from '../model';
2
+ declare const IndividualScaleBars: ({ model, orientation, exportSVG, }: {
3
+ model: WiggleDisplayModel;
4
+ orientation?: string;
5
+ exportSVG?: boolean;
6
+ }) => import("react/jsx-runtime").JSX.Element | null;
7
+ export default IndividualScaleBars;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const mobx_react_1 = require("mobx-react");
8
+ const ColorLegend_1 = __importDefault(require("./ColorLegend"));
9
+ const ScoreLegend_1 = __importDefault(require("./ScoreLegend"));
10
+ const YScaleBar_1 = __importDefault(require("../../shared/YScaleBar"));
11
+ const IndividualScaleBars = (0, mobx_react_1.observer)(function ({ model, orientation, exportSVG, }) {
12
+ const { sources, rowHeight, rowHeightTooSmallForScalebar, needsCustomLegend, ticks, } = model;
13
+ return (sources === null || sources === void 0 ? void 0 : sources.length) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ColorLegend_1.default, { exportSVG: exportSVG, model: model, rowHeight: model.rowHeight }), rowHeightTooSmallForScalebar || needsCustomLegend ? ((0, jsx_runtime_1.jsx)(ScoreLegend_1.default, { model: model })) : (sources.map((_source, idx) => ((0, jsx_runtime_1.jsx)("g", { transform: `translate(0 ${rowHeight * idx})`, children: (0, jsx_runtime_1.jsx)(YScaleBar_1.default, { model: model, orientation: orientation }) }, `${JSON.stringify(ticks)}-${idx}`))))] })) : null;
14
+ });
15
+ exports.default = IndividualScaleBars;
@@ -0,0 +1,11 @@
1
+ import type { Source } from '../../util';
2
+ import type { WiggleDisplayModel } from '../model';
3
+ declare const LegendItem: ({ source, idx, rowHeight, labelWidth, model, exportSVG, }: {
4
+ source: Source;
5
+ idx: number;
6
+ rowHeight: number;
7
+ labelWidth: number;
8
+ model: WiggleDisplayModel;
9
+ exportSVG?: boolean;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export default LegendItem;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const RectBg_1 = __importDefault(require("./RectBg"));
8
+ const LegendItem = function ({ source, idx, rowHeight, labelWidth, model, exportSVG, }) {
9
+ const boxHeight = Math.min(20, rowHeight);
10
+ const { needsCustomLegend, needsScalebar, needsFullHeightScalebar, rowHeightTooSmallForScalebar, renderColorBoxes, } = model;
11
+ const svgFontSize = Math.min(rowHeight, 12);
12
+ const canDisplayLabel = rowHeight > 11;
13
+ const colorBoxWidth = renderColorBoxes ? 15 : 0;
14
+ const legendWidth = labelWidth + colorBoxWidth + 5;
15
+ const svgOffset = exportSVG ? 10 : 0;
16
+ const extraOffset = svgOffset || (needsScalebar && !rowHeightTooSmallForScalebar ? 50 : 0);
17
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [needsFullHeightScalebar ? null : ((0, jsx_runtime_1.jsx)(RectBg_1.default, { y: idx * rowHeight + 1, x: extraOffset, width: legendWidth, height: boxHeight })), source.color ? ((0, jsx_runtime_1.jsx)(RectBg_1.default, { y: idx * rowHeight + 1, x: extraOffset, width: colorBoxWidth, height: needsCustomLegend ? rowHeight : boxHeight, color: source.color })) : null, canDisplayLabel ? ((0, jsx_runtime_1.jsx)("text", { y: idx * rowHeight + 13, x: extraOffset + colorBoxWidth + 2, fontSize: svgFontSize, children: source.name })) : null] }));
18
+ };
19
+ exports.default = LegendItem;
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
1
  declare const RectBg: (props: {
3
2
  x: number;
4
3
  y: number;
5
4
  width: number;
6
5
  height: number;
7
6
  color?: string;
8
- }) => React.JSX.Element;
7
+ }) => import("react/jsx-runtime").JSX.Element;
9
8
  export default RectBg;
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
4
  const util_1 = require("@jbrowse/core/util");
8
5
  const RectBg = (props) => {
9
6
  const { color = 'rgb(255,255,255,0.8)' } = props;
10
- return react_1.default.createElement("rect", { ...props, ...(0, util_1.getFillProps)(color) });
7
+ return (0, jsx_runtime_1.jsx)("rect", { ...props, ...(0, util_1.getFillProps)(color) });
11
8
  };
12
9
  exports.default = RectBg;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import type { WiggleDisplayModel } from '../model';
3
2
  declare const ScoreLegend: ({ model }: {
4
3
  model: WiggleDisplayModel;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
6
5
  export default ScoreLegend;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const util_1 = require("@jbrowse/core/util");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const RectBg_1 = __importDefault(require("./RectBg"));
@@ -14,8 +14,6 @@ const ScoreLegend = (0, mobx_react_1.observer)(({ model }) => {
14
14
  const len = (0, util_1.measureText)(legend, 14);
15
15
  const padding = 25;
16
16
  const xpos = width - len - padding;
17
- return (react_1.default.createElement(react_1.default.Fragment, null,
18
- react_1.default.createElement(RectBg_1.default, { y: 0, x: xpos, width: len + 6, height: 16 }),
19
- react_1.default.createElement("text", { y: 13, x: xpos }, legend)));
17
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(RectBg_1.default, { y: 0, x: xpos, width: len + 6, height: 16 }), (0, jsx_runtime_1.jsx)("text", { y: 13, x: xpos, children: legend })] }));
20
18
  });
21
19
  exports.default = ScoreLegend;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { Source } from '../../util';
3
2
  export default function SetColorDialog({ model, handleClose, }: {
4
3
  model: {
@@ -7,4 +6,4 @@ export default function SetColorDialog({ model, handleClose, }: {
7
6
  clearLayout: () => void;
8
7
  };
9
8
  handleClose: () => void;
10
- }): React.JSX.Element;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,76 +1,39 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.default = SetColorDialog;
30
- const react_1 = __importStar(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const DraggableDialog_1 = __importDefault(require("@jbrowse/core/ui/DraggableDialog"));
31
10
  const util_1 = require("@jbrowse/core/util");
32
11
  const material_1 = require("@mui/material");
33
12
  const mui_1 = require("tss-react/mui");
34
- const DraggableDialog_1 = __importDefault(require("./DraggableDialog"));
35
13
  const SourcesGrid_1 = __importDefault(require("./SourcesGrid"));
36
14
  const useStyles = (0, mui_1.makeStyles)()({
37
15
  content: {
38
16
  minWidth: 800,
39
17
  },
18
+ float: {
19
+ float: 'right',
20
+ },
40
21
  });
41
22
  function SetColorDialog({ model, handleClose, }) {
42
23
  const { classes } = useStyles();
43
24
  const { sources } = model;
44
25
  const [currLayout, setCurrLayout] = (0, react_1.useState)(structuredClone(sources || []));
45
26
  const [showTips, setShowTips] = (0, util_1.useLocalStorage)('multiwiggle-showTips', false);
46
- return (react_1.default.createElement(DraggableDialog_1.default, { open: true, onClose: handleClose, maxWidth: "xl", title: 'Multi-wiggle color/arrangement editor' },
47
- react_1.default.createElement(material_1.DialogContent, { className: classes.content },
48
- react_1.default.createElement(material_1.Button, { variant: "contained", style: { float: 'right' }, onClick: () => {
49
- setShowTips(!showTips);
50
- } }, showTips ? 'Hide tips' : 'Show tips'),
51
- react_1.default.createElement("br", null),
52
- showTips ? (react_1.default.createElement(react_1.default.Fragment, null,
53
- "Helpful tips",
54
- react_1.default.createElement("ul", null,
55
- react_1.default.createElement("li", null, "You can select rows in the table with the checkboxes"),
56
- react_1.default.createElement("li", null, "Multi-select is enabled with shift-click and control-click"),
57
- react_1.default.createElement("li", null, "The \"Move selected items up/down\" can re-arrange subtracks"),
58
- react_1.default.createElement("li", null, "Sorting the data grid itself can also re-arrange subtracks"),
59
- react_1.default.createElement("li", null, "Changes are applied when you hit Submit"),
60
- react_1.default.createElement("li", null, "You can click and drag the dialog box to move it on the screen"),
61
- react_1.default.createElement("li", null, "Columns in the table can be hidden using a vertical '...' menu on the right side of each column")))) : null,
62
- react_1.default.createElement(SourcesGrid_1.default, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })),
63
- react_1.default.createElement(material_1.DialogActions, null,
64
- react_1.default.createElement(material_1.Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
65
- model.clearLayout();
66
- setCurrLayout(model.sources || []);
67
- } }, "Clear custom settings"),
68
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
69
- handleClose();
70
- setCurrLayout([...(model.sources || [])]);
71
- } }, "Cancel"),
72
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
73
- model.setLayout(currLayout);
74
- handleClose();
75
- } }, "Submit"))));
27
+ return ((0, jsx_runtime_1.jsxs)(DraggableDialog_1.default, { open: true, onClose: handleClose, maxWidth: "xl", title: "Multi-wiggle color/arrangement editor", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { className: classes.content, children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", className: classes.float, onClick: () => {
28
+ setShowTips(!showTips);
29
+ }, children: showTips ? 'Hide tips' : 'Show tips' }), (0, jsx_runtime_1.jsx)("br", {}), showTips ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Helpful tips", (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "You can select rows in the table with the checkboxes" }), (0, jsx_runtime_1.jsx)("li", { children: "Multi-select is enabled with shift-click and control-click" }), (0, jsx_runtime_1.jsx)("li", { children: "The \"Move selected items up/down\" can re-arrange subtracks" }), (0, jsx_runtime_1.jsx)("li", { children: "Sorting the data grid itself can also re-arrange subtracks" }), (0, jsx_runtime_1.jsx)("li", { children: "Changes are applied when you hit Submit" }), (0, jsx_runtime_1.jsx)("li", { children: "You can click and drag the dialog box to move it on the screen" }), (0, jsx_runtime_1.jsx)("li", { children: "Columns in the table can be hidden using a vertical '...' menu on the right side of each column" })] })] })) : null, (0, jsx_runtime_1.jsx)(SourcesGrid_1.default, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
30
+ model.clearLayout();
31
+ setCurrLayout(model.sources || []);
32
+ }, children: "Clear custom settings" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
33
+ handleClose();
34
+ setCurrLayout([...(model.sources || [])]);
35
+ }, children: "Cancel" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
36
+ model.setLayout(currLayout);
37
+ handleClose();
38
+ }, children: "Submit" })] })] }));
76
39
  }
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { Source } from '../../util';
3
2
  declare function SourcesGrid({ rows, onChange, showTips, }: {
4
3
  rows: Source[];
5
4
  onChange: (arg: Source[]) => void;
6
5
  showTips: boolean;
7
- }): React.JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
8
7
  export default SourcesGrid;